@charset "UTF-8";
:root {
  --white: #fff;
  --black: #333;
  --gray10: #333333;
  --gray20: #474747;
  --gray30: #5c5c5c;
  --gray40: #757575;
  --gray50: #9e9e9e;
  --gray60: #c2c2c2;
  --gray70: #e0e0e0;
  --gray80: #f4f4f4;
  --gray90: #fbfbfb;
  --blue-primary: #2375cd;
  --blue-secondary: #c8dcf2;
  --blue-tertiary: #2e7ccf;
  --green-primary: #398632;
  --orange-primary: #ff931e;
  --red-primary: #eb0008;
  --purple-primary: #662d91;
  /* ===== 2026-03-12 accessibility fix start ===== */
  --active-primary: var(--blue-tertiary); /* 設定がなかったので仮 */
  /* ===== 2026-03-12 accessibility fix end ===== */
  --border: var(--gray60);
  --accent: var(--orange-primary);
  --inactive: var(--gray60);
  --disabled: var(--gray60);
  --japanese-sans-serif:
    "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック Medium",
    "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ Pro W3",
    "Hiragino Kaku Gothic Pro", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo,
    Arial, sans-serif;
  --english-sans-serif: "lato", var(--japanese-sans-serif);
  --japanese-serif:
    "Noto Serif JP", "游明朝体", YuMincho, "Yu Mincho", "ヒラギノ明朝 Pro W3",
    "Hiragino Mincho Pro", "Hiragino Mincho ProN", "Times New Roman", serif;
  --space-xs: clamp(1.25rem, 0.1389rem + 2.3148vw, 1.875rem);
  --space-sm: calc(var(--space-xs) * 1.5);
  --space-md: calc(var(--space-xs) * 2);
  --space-lg: calc(var(--space-xs) * 3);
  --space-xl: calc(var(--space-xs) * 4);
  --easeOutQuint: cubic-bezier(0.22, 1, 0.36, 1);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-family: sans-serif;
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
  color: var(--black);
  font-feature-settings: "palt";
  font-family: var(--japanese-sans-serif);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.8;
  line-break: strict;
  text-align: left;
  margin: 0;
  background-color: #ffffff;
}

/* ===== 2026-03-12 accessibility fix start ===== */
article,
aside,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
picture {
  display: block;
}
/*article, aside, figcaption, figure, footer, header, hgroup, main, nav, section, a, picture {
  display: block;
}*/
/* ===== 2026-03-12 accessibility fix end ===== */

/* ===== 2026-03-12 accessibility fix start ===== */
h1 {
  margin: 0;
}
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  line-height: 1.6;
  font-weight: 500;
  letter-spacing: 0.04em;
}
h2 {
  font-size: 24px;
}
h3 {
  font-size: 22px;
}
h4 {
  font-size: 22px;
}
h5 {
  font-size: 20px;
}
h6 {
  font-size: 18px;
}

@media screen and (min-width: 1024px) {
  h2 {
    font-size: 28px;
  }
  h3 {
    font-size: 26px;
  }
  h4 {
    font-size: 24px;
  }
  h5 {
    font-size: 22px;
  }
  h6 {
    font-size: 18px;
  }
}

/*h1, h2, h3, h4, h5, h6 {
  margin: 0;
}*/
/* ===== 2026-03-12 accessibility fix end ===== */

p {
  margin: 0;
}
/* ===== 2026-03-12 accessibility fix start ===== */
/*p a {
  display: inline-block;
}*/
/* ===== 2026-03-12 accessibility fix end ===== */

abbr[title],
abbr[data-original-title] {
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
  cursor: help;
  border-bottom: 0;
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
}

address {
  font-style: normal;
  line-height: inherit;
  margin: 0;
}

/* ===== 2026-03-12 accessibility fix start ===== */
ol,
ul,
dl {
  padding: 0;
  margin: 0;
}

/*ol,
ul,
dl,
ol ol,
ul ul,
ol ul,
ul ol {
  padding: 0;
  margin: 0;
}

ol li,
ul li {
  list-style-position: inside;
  padding: 0;
}*/
/* ===== 2026-03-12 accessibility fix end ===== */

ul li,
ol li {
  list-style: none;
}

dt {
  font-weight: 700;
}

dd {
  margin: 0;
}

blockquote {
  margin: 0 0 1rem;
}

b,
strong {
  font-weight: bolder;
}

small {
  font-size: 80%;
}

sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}

/* ===== 2026-03-12 accessibility fix start ===== */
a {
  color: #0000ee;
  text-decoration: none;
  background-color: transparent;
}
/*a, p a {
  color: #0000ee;
  display: block;
  text-decoration: none;
  background-color: transparent;
}

a,
a:hover,
a:visited,
a:focus,
a:active {
  cursor: pointer !important;
}
*/
/* ===== 2026-03-12 accessibility fix end ===== */

/* ===== 2026-03-12 accessibility fix start ===== */
a:hover,
a:focus {
  color: var(--active);
}
/*a:hover {
  color: var(--active);
}*/
/* ===== 2026-03-12 accessibility fix end ===== */

a:not([href]):not([class]) {
  color: inherit;
  text-decoration: none;
  cursor: default;
}

a:not([href]):not([class]):hover {
  color: inherit;
  text-decoration: none;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

pre,
code,
kbd,
samp {
  font-family:
    SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
    monospace;
  font-size: 1em;
}

pre {
  margin: 0;
  overflow: auto;
}

figure {
  margin: 0;
}

img {
  width: 100%;
  max-width: 100%;
  height: auto;
  vertical-align: top;
  border-style: none;
}

svg {
  overflow: hidden;
  vertical-align: middle;
}

table {
  width: 100%;
  border-collapse: collapse;
}

caption {
  color: var(--black);
  text-align: left;
  caption-side: bottom;
}

th {
  text-align: inherit;
  text-align: -webkit-match-parent;
}

label {
  display: inline-block;
  margin: 0;
}

button {
  border-radius: 0;
}

button:focus:not(:focus-visible) {
  outline: 0;
}

input,
button,
select,
optgroup,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

button,
input {
  overflow: visible;
  vertical-align: top;
  padding: 0.2rem 0.5rem;
}

button,
select {
  text-transform: none;
}

[role="button"] {
  cursor: pointer;
}

select {
  word-wrap: normal;
}

/* ===== 2026-03-12,14 accessibility fix start ===== */

button:not(.c-button):not(.c-menu__button):not(.c-searchSubmit):not(.c-buttonSubmit__text),
[type="button"]:not(.c-button):not(.c-menu__button):not(.c-searchSubmit):not(.c-buttonSubmit__text),
[type="reset"]:not(.c-button):not(.c-menu__button):not(.c-searchSubmit),
[type="submit"]:not(.c-button):not(.c-menu__button):not(.c-searchSubmit):not(.c-buttonSubmit__text) {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  outline: none;
  background: none;
}

/*button:not(.c-button),
[type=button]:not(.c-button),
[type=reset]:not(.c-button),
[type=submit]:not(.c-button) {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  outline: none;
  background: none;
  appearance: none;
}*/
/* ===== 2026-03-12 accessibility fix end ===== */

button,
select,
input {
  color: var(--black);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border-radius: 0;
}
button::-moz-placeholder,
select::-moz-placeholder,
input::-moz-placeholder {
  color: var(--black);
}
button::placeholder,
select::placeholder,
input::placeholder {
  color: var(--black);
}

button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
  cursor: pointer;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  padding: 0;
  border-style: none;
}

input[type="radio"],
input[type="checkbox"] {
  box-sizing: border-box;
  padding: 0;
}

input[type="text"],
input[type="tel"],
input[type="email"],
input[type="search"],
input[type="submit"] {
  outline: none;
  border: 1px solid var(--border);
}

textarea {
  overflow: auto;
  resize: vertical;
}

fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}

legend {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin: 0 0 0.5rem;
  font-size: 1.5rem;
  line-height: inherit;
  color: inherit;
  white-space: normal;
}

progress {
  vertical-align: baseline;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

[type="search"] {
  outline-offset: -2px;
  -webkit-appearance: none;
}

input[type="search"]::-webkit-search-cancel-button {
  cursor: pointer;
}

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}

output {
  display: inline-block;
}

summary {
  display: list-item;
  cursor: pointer;
}

template {
  display: none;
}

[tabindex="-1"]:focus:not(:focus-visible) {
  outline: 0 !important;
}

.l-header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  transition: all 0.8s var(--easeOutQuint);
}
.l-header__container {
  display: flex;
  align-items: center;
}
.l-header__container.u-container {
  padding-left: 0;
}

/* ===== 2026-03-12 accessibility fix start ===== */
.l-header__logo {
  width: auto;
}
/*.l-header__logo {
  width: 235px;
  line-height: 1;
  position: relative;
  z-index: 2002;
  margin: 0 auto 0 0;
}*/
.l-header__logo img {
  width: auto;
  height: 50px; /* スマホ用 */
}
@media screen and (min-width: 1024px) {
  .l-header__logo img {
    height: 96px; /* PC用 */
  }
}
/* ===== 2026-03-12 accessibility fix end ===== */

.l-header__content {
  width: 57%;
  max-width: 570px;
  display: none;
  margin: 0 0 0 auto;
}
.l-header__contact {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-top: 20px;
}
@media screen and (min-width: 1024px) {
  .l-header {
    position: relative;
    padding: 17px 0;
  }
  .l-header__container.u-container {
    padding-left: 15px;
  }
  .l-header__logo {
    width: 38.2%;
  }
  .l-header__content {
    display: flex;
    flex-direction: column;
  }
}

.l-footer {
  position: relative;
  z-index: 99;
  background-color: var(--white);
}
.l-footer__body {
  display: flex;
  flex-direction: column;
  padding-top: 60px;
  padding-bottom: 60px;
}
.l-footer__content {
  max-width: 600px;
  margin: 0 auto;
}
.l-footer__title {
  line-height: 1;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0;
  white-space: nowrap;
  color: var(--black);
}
.l-footer__description {
  line-height: 1;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0;
  white-space: nowrap;
  margin-top: 0.7em;
  color: var(--black);
}
.l-footer__address {
  line-height: 1.4;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--black);
  margin-top: 1.2em;
}
.l-footer__address span {
  display: block;
  font-size: 11px;
  letter-spacing: 0.05em;
}
.l-footer__tel {
  line-height: 1;
  display: block;
  /* ===== 2026-03-12 accessibility fix start ===== */
  /*align-items: center;*/
  /* ===== 2026-03-12 accessibility fix end ===== */
  font-family: "Lato", sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-top: 0.2em;
  color: var(--black);
}
.l-footer__tel a {
  display: inline-block;
  margin-left: 0.5em;
  transition: all 0.35s ease;
}
.l-footer__tel a:hover {
  color: var(--blue-primary);
}
.l-footer__buttons {
  display: flex;
  align-items: center;
  margin-top: 18px;
}
.l-footer__access {
  width: 100%;
  max-width: 172px;
}
.l-footer__sns {
  display: none;
  margin: 0 0 0 auto;
}
.l-footer__nav {
  width: 100%;
  max-width: -webkit-fit-content;
  max-width: -moz-fit-content;
  max-width: fit-content;
  display: flex;
  flex-direction: column;
  margin: 55px auto 0;
}
.l-footer__snsSP {
  display: flex;
  justify-content: center;
  margin-top: 60px;
}
.l-footer__copy {
  line-height: 1;
  text-align: center;
  padding: 6.5px 0;
  background-color: var(--blue-primary);
}
.l-footer__copy small {
  font-family: "Lato", sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--white);
}
@media screen and (min-width: 1024px) {
  .l-footer__body {
    flex-direction: row;
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .l-footer__content {
    width: 44%;
    max-width: none;
    margin: 0;
  }
  .l-footer__title {
    font-size: 18px;
    letter-spacing: 0.06em;
  }
  .l-footer__description {
    font-size: 14px;
    letter-spacing: 0.05em;
  }
  .l-footer__address {
    font-size: 16px;
    letter-spacing: 0.05em;
    margin-top: 1.6em;
  }
  .l-footer__address span {
    font-size: 14px;
  }
  .l-footer__buttons {
    margin-top: 35px;
  }
  .l-footer__access {
    max-width: 212px;
  }
  .l-footer__sns {
    display: block;
  }
  .l-footer__nav {
    width: 56%;
    flex-direction: row;
    justify-content: flex-end;
    margin: 0 0 0 auto;
  }
  .l-footer__tel {
    font-size: 16px;
    margin-top: 0.8em;
  }
  .l-footer__snsSP {
    display: none;
  }
  .l-footer__copy {
    padding: 21.5px 0;
  }
  .l-footer__copy small {
    font-size: 14px;
  }
}

.c-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  height: 66px;
  padding: 0 20px 0 15px;
  background: #fff;
  border-radius: 0 0 15px 0;
}
@media screen and (min-width: 1024px) {
  .c-logo {
    max-width: 382px;
    height: auto;
    padding: 0;
    background-color: transparent;
    border-radius: none;
  }
}

a.c-logo {
  transition: all 0.35s ease;
}
a.c-logo:hover {
  opacity: 0.5;
}

.c-globalNav {
  display: none;
  width: 100%;
  background-color: var(--blue-primary);
}
.c-globalNav__container {
  width: 100%;
  padding: 5px 0;
}
.c-globalNav__list {
  display: flex;
  justify-content: space-evenly;
}
.c-globalNav__item {
  width: 16.66666%;
  padding: 2px 7px;
  border-left: 1px solid var(--white);
}
.c-globalNav__item:last-child {
  border-right: 1px solid var(--white);
}
.c-globalNav__item a {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 56px;
  line-height: 1;
  position: relative;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.1em;
  white-space: nowrap;
  color: var(--white);
  transition: all 0.35s ease;
}
.c-globalNav__item a:hover {
  color: var(--blue-primary);
}
.c-globalNav__item a:hover::after {
  opacity: 1;
}
.c-globalNav__item a::after {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 3px;
  background-color: var(--white);
  transition: opacity 0.35s ease;
}
@media screen and (min-width: 1024px) {
  .c-globalNav {
    display: block;
  }
}

.c-buttons__list {
  display: flex;
  flex-wrap: wrap;
  margin: -5px -5px;
  justify-content: flex-end;
}
.c-buttons__item {
  width: calc(50% - 10px);
  margin: 5px 5px;
}
.c-buttons__link {
  position: relative;
  width: 100%;
  line-height: 1;
  height: 35px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--black);
  border: 2px solid var(--blue-primary);
  border-radius: 6px;
  transition: all 0.35s ease;
}
.c-buttons__link:hover {
  border-color: var(--orange-primary);
  color: var(--orange-primary);
}
.c-buttons__link:hover svg path {
  fill: var(--orange-primary);
}
.c-buttons__link svg path {
  transition: all 0.35s ease;
}
.c-buttons__icon {
  margin-right: 8px;
}
.c-buttons__label {
  line-height: 0.8;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.12em;
  color: inherit;
  white-space: nowrap;
}
@media screen and (min-width: 1024px) {
  .c-buttons__list {
    flex-wrap: nowrap;
    margin: 0 -6px;
  }
  .c-buttons__item {
    width: calc(25% - 12px);
    margin: 0 6px;
  }
  .c-buttons__label {
    font-size: 18px;
  }
}

.c-buttonContact {
  position: relative;
  width: 100%;
  line-height: 1;
  height: 45px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  border: 2px solid var(--blue-primary);
  border-radius: 6px;
  background-color: var(--blue-primary);
  transition: all 0.35s ease;
}
.c-buttonContact:hover {
  border-color: var(--orange-primary);
  background-color: var(--orange-primary);
  color: var(--white);
}
.c-buttonContact:hover svg path {
  fill: var(--white);
}
.c-buttonContact svg path {
  transition: all 0.35s ease;
}
.c-buttonContact__icon {
  margin-right: 8px;
}
.c-buttonContact__label {
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: inherit;
}
@media screen and (min-width: 1024px) {
  .c-buttonContact {
    height: 35px;
  }
}

.c-searchForm {
  line-height: 1;
  display: flex;
  align-items: center;
  width: 100%;
}
.c-searchForm input[type="text"] {
  width: 100%;
  line-height: 1;
  height: 35px;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.05em;
  padding: 0 15px;
  border: 2px solid var(--blue-primary);
  border-right: none;
  border-radius: 6px 0 0 6px;
  color: var(--black);
  background-color: var(--blue-secondary);
  transition: all 0.35s ease;
}
.c-searchForm input[type="text"]::-moz-placeholder {
  color: var(--white);
}
.c-searchForm input[type="text"]::placeholder {
  color: var(--white);
}
.c-searchForm input[type="text"]:focus {
  outline: none;
}
.c-searchForm input[type="submit"] {
  line-height: 0.8;
  height: 35px;
  width: 100%;
  max-width: 70px;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  color: var(--white);
  border: 2px solid var(--blue-primary);
  border-left: none;
  border-radius: 0 6px 6px 0;
  background-color: var(--blue-primary);
  cursor: pointer;
  transition: all 0.35s ease;
}
.c-searchForm input[type="submit"]:hover {
  background-color: var(--orange-primary);
  border-color: var(--orange-primary);
}
.c-menu {
  width: 100%;
  height: 100%;
}
.c-menu.is-active .c-menu__button {
  background-color: #333;
}
.c-menu.is-active .c-menu__hamburger {
  background-color: transparent;
}
.c-menu.is-active .c-menu__hamburger::before {
  width: 25px;
  transform: translate(-50%, 0) rotate(135deg);
}
.c-menu.is-active .c-menu__hamburger::after {
  width: 25px;
  transform: translate(-50%, 0) rotate(-135deg);
}
.c-menu.is-active .c-menu__body {
  right: 0;
}
.c-menu__button {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  width: 66px;
  height: 66px;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2003;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0 0 0 15px;
  background-color: var(--blue-primary);
  transition: all 0.35s var(--easeOutQuint);
}
.c-menu__button:hover {
  opacity: 0.8;
}
.c-menu__hamburger {
  display: block;
  width: 36px;
  height: 2px;
  margin: auto;
  background-color: var(--white);
  transition: all 0.35s var(--easeOutQuint);
  transform-origin: center;
}
.c-menu__hamburger::before,
.c-menu__hamburger::after {
  display: block;
  content: "";
  width: 36px;
  height: 2px;
  background-color: var(--white);
  transform-origin: center;
  transition: all 0.35s ease 0.1s;
  position: absolute;
  top: calc(50% - 1px);
  left: 50%;
}
.c-menu__hamburger::before {
  transform: translate(-50%, 8px);
}
.c-menu__hamburger::after {
  transform: translate(-50%, -8px);
}
.c-menu__body {
  width: 100%;
  height: calc(100svh - 66px);
  display: flex;
  flex-direction: column;
  padding: 20px 0 30px;
  background: var(--white);
  box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.2);
  transition: all 0.5s ease;
  position: fixed;
  right: -100%;
  top: 66px;
  z-index: 2002;
  overflow: auto;
}
.c-menu__buttons {
  padding: 0 15px;
  margin-top: 10px;
}
.c-menu__list {
  display: flex;
  flex-direction: column;
  margin: 30px 0 0;
  list-style: none;
}
.c-menu__item {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.12em;
  list-style: none;
  padding: 0;
}
.c-menu__item:last-child a {
  border-bottom: 1px solid #ccc;
}
.c-menu__item a {
  display: block;
  position: relative;
  padding: 0.4em 1em;
  color: var(--black);
  border-top: 1px solid #ccc;
  background-color: #f2f2f2;
  transition: all 0.35s ease;
}
.c-menu__item a:hover {
  opacity: 0.5;
}
.c-menu__item a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 15px 15px;
  border-color: transparent transparent #ccc transparent;
  transform: rotate(0deg);
}
.c-menu__subList {
  padding: 0 15px;
  margin: 20px 0 0;
  list-style: none;
}
.c-menu__subItem {
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.06em;
}
.c-menu__subItem + .c-menu__subItem {
  margin-top: 0.4em;
}
.c-menu__subItem a {
  display: inline-block;
  position: relative;
  padding: 0 0 0 0.8em;
  color: var(--black);
  transition: all 0.35s ease;
}
.c-menu__subItem a:hover {
  opacity: 0.5;
}
.c-menu__subItem a::before {
  display: block;
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 100%;
  background-color: var(--blue-primary);
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.c-menu__contact {
  padding: 0 15px;
  margin: 20px 0 0;
}
.c-menu__search {
  padding: 0 15px;
  margin: 20px 0 0;
}
.c-menu__sns {
  padding: 0 15px;
  margin: 30px auto 0;
}
.c-menu__overlay {
  opacity: 0;
  visibility: hidden;
  cursor: pointer;
  width: 100%;
  height: 100vh;

  /* ===== 2026-03-16 accessibility fix start ===== */
  background: rgba(0, 0, 0, 0.5);
  transition: opacity 0.5s visibility 0.5s ease;
  /*background: rgb(255, 255, 255);
  transition: all 0.5s ease;*/
  /* ===== 2026-03-16 accessibility fix start ===== */
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2001;
}
.c-menu__overlay.is-visible {
  opacity: 1;
  visibility: visible;
}
@media screen and (min-width: 768px) {
  .c-menu__body {
    max-width: 375px;
  }
}
@media screen and (min-width: 1024px) {
  .c-menu {
    display: none;
  }
}

.c-buttonAccess {
  position: relative;
  width: 100%;
  max-width: 212px;
  line-height: 1;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  border: 2px solid var(--blue-primary);
  border-radius: 20px;
  background-color: var(--blue-primary);
  transition: all 0.35s ease;
}
.c-buttonAccess:hover {
  border-color: var(--orange-primary);
  background-color: var(--orange-primary);
  color: var(--white);
}
.c-buttonAccess:hover svg path {
  fill: var(--white);
}
.c-buttonAccess svg path {
  transition: all 0.35s ease;
}
.c-buttonAccess__icon {
  display: flex;
  align-items: center;
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
}
.c-buttonAccess__label {
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.12em;
  color: inherit;
}
@media screen and (min-width: 1024px) {
  .c-buttonAccess__label {
    font-size: 18px;
  }
}

.c-snsLinks {
  display: inline-flex;
  align-items: center;
  gap: 30px;
}
.c-snsLinks__icon {
  transition: opacity 0.35s ease;
}
.c-snsLinks__icon:hover {
  opacity: 0.5;
}
.c-footerNav {
  display: flex;
  flex-direction: column;
}
.c-footerNav__list {
  display: flex;
  flex-direction: column;
}
.c-footerNav__list + * {
  margin-top: 1.7em;
}
.c-footerNav__item {
  line-height: 1;
  font-size: 16px;
  margin: 0;
}
.c-footerNav__item:not(:first-child) {
  margin-top: 1.7em;
}
.c-footerNav__item a {
  display: inline-block;
  position: relative;
  font-size: inherit;
  font-weight: 400;
  letter-spacing: 0.06em;
  white-space: nowrap;
  color: var(--black);
  transition: opacity 0.35s ease;
}
.c-footerNav__item a:hover {
  opacity: 0.5;
}
@media screen and (min-width: 1024px) {
  .c-footerNav {
    flex-direction: row;
  }
  .c-footerNav__list + * {
    margin-top: 0;
    margin-left: 30px;
  }
  .c-footerNav__item:not(:first-child) {
    margin-top: auto;
  }
}

.c-buttonBlueRounded {
  position: relative;
  width: 100%;
  min-height: 46px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5em 2em;
  color: var(--white);
  border-radius: 50px;
  border: 2px solid var(--blue-primary);
  background-color: var(--blue-primary);
  transition: all 0.35s ease;
}
.c-buttonBlueRounded:hover {
  border-color: var(--orange-primary);
  background-color: var(--orange-primary);
  color: var(--white);
}
.c-buttonBlueRounded:hover svg path {
  fill: var(--white);
}
.c-buttonBlueRounded svg {
  transition: all 0.35s ease;
}
.c-buttonBlueRounded__icon {
  pointer-events: none;
  display: flex;
  align-items: center;
  position: absolute;
  top: 50%;
  right: 22px;
  transform: translateY(-50%);
}
.c-buttonBlueRounded__label {
  line-height: 1.4;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  color: inherit;
}
.c-buttonBlueRounded__label br {
  display: block;
}
@media screen and (min-width: 1024px) {
  .c-buttonBlueRounded {
    min-height: 60px;
    padding: 0.834em 2em;
  }
  .c-buttonBlueRounded__label {
    line-height: 1;
    font-size: 21px;
  }
  .c-buttonBlueRounded__label br {
    display: none;
  }
}
/* 相談詳細：「〇〇の一覧に戻る」ボタンは文字幅に合わせる */
.p-consultation__actions .c-buttonBlueRounded {
  width: fit-content;
}

.c-buttonIntroNav {
  display: block;
  width: 100%;
  height: 110px;
  padding: 9px;
  border: 1px solid #ccc;
  background-color: var(--white);
  transition: all 0.35s ease;
}
.c-buttonIntroNav:hover {
  border-color: var(--orange-primary);
  box-shadow: 0 6px 6px 0px rgba(0, 0, 0, 0.2);
}
.c-buttonIntroNav:hover .c-buttonIntroNav__inner {
  border-color: var(--orange-primary);
}
.c-buttonIntroNav:hover .c-buttonIntroNav__inner::after {
  border-color: transparent transparent var(--orange-primary) transparent;
}
.c-buttonIntroNav:hover .c-buttonIntroNav__label::after {
  background-color: var(--orange-primary);
}
.c-buttonIntroNav__inner {
  width: 100%;
  height: 100%;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ccc;
  background-color: #f2f2f2;
  transition: all 0.35s ease;
}
.c-buttonIntroNav__inner::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 15px 15px;
  border-color: transparent transparent #ccc transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonIntroNav__label {
  position: relative;
  display: block;
  line-height: 1;
  font-size: 21px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  color: var(--black);
}
.c-buttonIntroNav__label:has(> span)::after {
  background-color: var(--green-primary);
}
.c-buttonIntroNav__label::after {
  content: "";
  display: block;
  width: 60px;
  height: 2px;
  margin: 15px auto 0;
  background-color: var(--blue-primary);
  transition: background-color 0.35s ease;
}
.c-buttonIntroNav__label > span {
  display: block;
  margin-top: 7px;
  font-size: 14px;
  font-weight: 400;
}
@media screen and (min-width: 768px) {
  .c-buttonIntroNav {
    height: 120px;
  }
}
@media screen and (min-width: 1024px) {
  .c-buttonIntroNav {
    height: 140px;
  }
  .c-buttonIntroNav__label {
    letter-spacing: 0.06em;
    text-indent: 0.06em;
  }
}

.c-metaCategory {
  display: inline-block;
  width: fit-content;
  line-height: 1;
  font-size: inherit;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-align: center;
  padding: 0.4em 0.6em;
  border-radius: 3px;
  color: var(--white);
  background-color: var(--blue-primary);
}
.c-metaCategory__prefix {
  display: inline-block;
}
.c-metaCategory__prefix::before {
  content: "#";
  display: block;
  font-size: 14px;
  font-style: normal;
  line-height: 1;
  color: var(--white);
}
.c-iconNew {
  display: inline-block;
  line-height: 1;
  font-size: 14px;
  font-weight: 500;
  font-style: normal;
  text-align: center;
  letter-spacing: 0.1em;
  padding: 0.3em 0.4em;
  border-radius: 3px;
  margin-left: 0.8em;
  color: var(--white);
  background-color: var(--red-primary);
}
.c-buttonOrangeRounded {
  position: relative;
  width: 100%;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1em 2em;
  color: var(--white);
  border-radius: 50px;
  border: 2px solid var(--orange-primary);
  background-color: var(--orange-primary);
  transition: all 0.35s ease;
}
.c-buttonOrangeRounded:hover {
  border-color: var(--blue-primary);
  background-color: var(--blue-primary);
  color: var(--white);
}
.c-buttonOrangeRounded:hover svg path {
  fill: var(--white);
}
.c-buttonOrangeRounded svg {
  transition: all 0.35s ease;
}
.c-buttonOrangeRounded__icon {
  position: absolute;
  top: 50%;
  right: 22px;
  transform: translateY(-50%);
}
.c-buttonOrangeRounded__label {
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: inherit;
}
.c-cardTopics {
  display: flex;
  position: relative;
  padding: 10px 10px;
  border-radius: 6px;
  background-color: var(--white);
  transition: all 0.35s ease;
}
.c-cardTopics:hover {
  box-shadow: 0 6px 6px 0px rgba(0, 0, 0, 0.2);
}
.c-cardTopics:hover::after {
  border-color: transparent transparent var(--orange-primary) transparent;
}
.c-cardTopics::after {
  content: "";
  position: absolute;
  right: 6px;
  bottom: 6px;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 15px 15px;
  border-color: transparent transparent var(--blue-primary) transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-cardTopics__thumbnail img {
  width: 100%;
  min-width: 145px;
  min-height: 122px;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  aspect-ratio: 145/122;
}
.c-cardTopics__content {
  margin: 0 0 0 15px;
}
.c-cardTopics__title {
  display: block;
  line-height: 1.5;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-align: justify;
  color: var(--black);
}
@media screen and (min-width: 768px) {
  .c-cardTopics {
    flex-direction: column;
    padding: 15px 15px 20px;
  }
  .c-cardTopics__thumbnail {
    aspect-ratio: 250/210;
  }
  .c-cardTopics__content {
    margin: 12px 0 0;
  }
  .c-cardTopics__title {
    line-height: 2;
  }
}
.c-buttonBanner {
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  height: 140px;
  padding: 9px;
  border: 1px solid var(--white);
  background-color: #3480d1;
  transition: all 0.35s ease;
}
.c-buttonBanner:hover {
  border-color: var(--orange-primary);
  background-color: #fffaf4;
  box-shadow: 0 6px 6px 0px rgba(0, 0, 0, 0.2);
}
.c-buttonBanner:hover::after {
  border-color: transparent transparent #fff4e6 transparent;
}
.c-buttonBanner:hover .c-buttonBanner__inner {
  border-color: var(--orange-primary);
}
.c-buttonBanner:hover .c-buttonBanner__inner::after {
  border-color: transparent transparent var(--orange-primary) transparent;
}
.c-buttonBanner:hover .c-buttonBanner__label {
  color: var(--black);
}
.c-buttonBanner:hover .c-buttonBanner__label::after {
  background-color: var(--orange-primary);
}
.c-buttonBanner::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 46px 46px;
  border-color: transparent transparent #2375cd transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonBanner__inner {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--white);
  background-color: transparent;
  transition: all 0.35s ease;
}
.c-buttonBanner__inner::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 15px 15px;
  border-color: transparent transparent var(--white) transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonBanner__icon {
  width: 100%;
  max-width: 100px;
  height: auto;
  aspect-ratio: 1/1;
  margin: 0 auto 0 6%;
}
.c-buttonBanner__icon img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
}
.c-buttonBanner__label {
  position: relative;
  display: block;
  line-height: 1.5;
  font-size: 21px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.06em;
  text-indent: 0.06em;
  white-space: nowrap;
  margin: 0 auto 0 0;
  color: var(--white);
  transition: all 0.35s ease;
}
.c-buttonBanner__label::after {
  content: "";
  display: block;
  width: 60px;
  height: 2px;
  margin: 10px auto 0;
  background-color: var(--white);
  transition: background-color 0.35s ease;
}
.c-buttonBanner__label > span {
  display: block;
  margin-top: 7px;
  font-size: 14px;
  font-weight: 400;
}
.c-bannerImage {
  /* ===== 2026-03-14 accessibility fix start ===== */
  display: block;
  /* ===== 2026-03-14 accessibility fix end ===== */
  border: 1px solid var(--black);
  transition: all 0.35s ease;
}
.c-bannerImage:hover {
  border-color: var(--orange-primary);
  box-shadow: 0 6px 6px 0px rgba(0, 0, 0, 0.2);
}
.c-breadcrumb {
  margin-top: 66px;
  background-color: #e9f1fa;
}
.c-breadcrumb__list {
  display: flex;
  padding: 0.638rem 0 0.738rem;
  margin: 0 auto;
  box-sizing: border-box;
}
.c-breadcrumb__item {
  color: var(--black);
  line-height: 1;
  display: flex;
  align-items: center;
  position: relative;
  font-size: 12px;
  font-size: 0.75rem;
  font-size: clamp(0.75rem, 0.6931818182rem + 0.2840909091vw, 0.875rem);
  letter-spacing: 0.05em;
  padding: 0;
  margin: 0;
}
.c-breadcrumb__item i {
  margin: 0 2px 0 0;
}
.c-breadcrumb__item:not(:first-of-type):before {
  color: var(--black);
  content: "";
  display: block;
  width: 4px;
  height: 8px;
  line-height: 1;
  text-align: center;
  background: url("../img/icon-bc-arrow.svg") no-repeat center center/contain;
  margin: 0 0.5em;
}
.c-breadcrumb__item a {
  line-height: 1;
  overflow: inherit;
  position: relative;
  transition: all 0.35s ease;
}
.c-breadcrumb__item a:hover {
  opacity: 0.8;
  text-decoration: underline;
}
.c-breadcrumb__link {
  color: var(--black);
}
@media screen and (min-width: 1024px) {
  .c-breadcrumb {
    margin-top: 0;
  }
}

.c-pageTitle {
  overflow: hidden;
  width: 100%;
  min-height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(
    135deg,
    rgb(255, 255, 255) 0%,
    rgb(237, 243, 251) 70%,
    rgb(237, 243, 251) 100%
  );
}
.c-pageTitle--green {
  background: linear-gradient(
    135deg,
    rgb(254, 254, 255) 0%,
    rgb(235, 243, 234) 70%,
    rgb(235, 243, 234) 100%
  );
}
.c-pageTitle--green .c-pageTitle__container::after {
  background-color: #eaf2e9;
}
.c-pageTitle--green h1 {
  color: var(--green-primary);
}
.c-pageTitle__centered .c-pageTitle__container {
  justify-content: center;
}
.c-pageTitle__centered h1 {
  letter-spacing: 0.02em;
  text-indent: 0.02em;
  text-align: center;
}
.c-pageTitle__container {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 150px;
  display: flex;
  align-items: center;
}
.c-pageTitle__container::after {
  content: "";
  position: absolute;
  top: 0;
  left: 80%;
  transform: skew(-35deg);
  width: 100%;
  height: 100%;
  background-color: #e4eef9;
}
h1 {
  position: relative;
  z-index: 2;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.06em;
  padding: 1.3335em 0;
  color: var(--blue-primary);
  transform: translateY(-4px);
}
@media screen and (min-width: 1024px) {
  .c-pageTitle {
    min-height: auto;
  }
  .c-pageTitle__centered {
    text-align: center;
  }
  .c-pageTitle__centered h1 {
    letter-spacing: 0.2em;
    text-indent: 0.2em;
  }
  .c-pageTitle__container {
    min-height: auto;
  }
  .c-pageTitle__container::after {
    left: 88%;
  }
  h1 {
    font-size: 36px;
  }
}

.c-buttonIndexNav {
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  height: 140px;
  padding: 9px;
  border: 1px solid #ccc;
  background-color: #3480d1;
  transition: all 0.35s ease;
}
.c-buttonIndexNav:hover {
  border-color: var(--orange-primary);
  background-color: #fffaf4;
  box-shadow: 0 6px 6px 0px rgba(0, 0, 0, 0.2);
}
.c-buttonIndexNav:hover::after {
  border-color: transparent transparent #fff4e6 transparent;
}
.c-buttonIndexNav:hover .c-buttonIndexNav__inner {
  border-color: var(--orange-primary);
}
.c-buttonIndexNav:hover .c-buttonIndexNav__inner::after {
  border-color: transparent transparent var(--orange-primary) transparent;
}
.c-buttonIndexNav:hover .c-buttonIndexNav__label {
  color: var(--black);
}
.c-buttonIndexNav:hover .c-buttonIndexNav__label::after {
  background-color: var(--orange-primary);
}
.c-buttonIndexNav::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 46px 46px;
  border-color: transparent transparent #2375cd transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonIndexNav__inner {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--white);
  background-color: transparent;
  transition: all 0.35s ease;
}
.c-buttonIndexNav__inner::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 15px 15px;
  border-color: transparent transparent var(--white) transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonIndexNav__label {
  position: relative;
  display: block;
  line-height: 1.35;
  font-size: 21px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  color: var(--white);
  transition: all 0.35s ease;
}
.c-buttonIndexNav__label::after {
  content: "";
  display: block;
  width: 60px;
  height: 2px;
  margin: 12px auto 0;
  background-color: var(--white);
  transition: background-color 0.35s ease;
}
@media screen and (min-width: 1024px) {
  .c-buttonIndexNav__label {
    letter-spacing: 0.06em;
    text-indent: 0.06em;
  }
}

.c-relationLinks {
  padding-top: 60px;
  padding-bottom: 60px;
  margin-top: 60px;
  background-color: #f4f8fc;
}
.c-relationLinks__header {
  margin: 0 auto 40px;
}
.c-relationLinks__heading {
  display: block;
  line-height: 1;
  font-size: 24px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.15em;
  color: var(--blue-primary);
}
.c-relationLinks__body {
  max-width: 500px;
  margin: 0 auto;
}
.c-relationLinks__list {
  display: flex;
  flex-direction: column;
}
.c-relationLinks__item {
  width: 100%;
}
.c-relationLinks__item + * {
  margin-top: 20px;
}
.c-relationLinks__button {
  width: 100%;
  height: 75px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50px;
  background-color: var(--blue-primary);
  transition: background-color 0.35s ease;
}
.c-relationLinks__button:hover {
  background-color: var(--orange-primary);
}
.c-relationLinks__button::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 30px;
  width: 15px;
  height: 15px;
  background: url("../../assets/img/icon-external.svg") no-repeat center
    center/cover;
  transform: translateY(-50%);
}
.c-relationLinks__label {
  line-height: 1.4;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  text-align: center;
  color: var(--white);
}
.c-relationLinks__label > span {
  font-size: 14px;
}
@media screen and (min-width: 768px) {
  .c-relationLinks__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .c-relationLinks {
    padding-top: 80px;
    padding-bottom: 80px;
    margin-top: 80px;
  }
  .c-relationLinks__heading {
    font-size: 30px;
    letter-spacing: 0.18em;
    text-indent: 0.18em;
  }
  .c-relationLinks__body {
    max-width: none;
  }
  .c-relationLinks__list {
    flex-direction: row;
    margin: 0 -10px;
  }
  .c-relationLinks__item {
    width: calc(50% - 20px);
    margin: 0 10px;
  }
  .c-relationLinks__label {
    font-size: 18px;
  }
  .c-relationLinks__label > span {
    font-size: 16px;
  }
}

.c-endingNav {
  padding-top: 60px;
}
.c-endingNav__header {
  margin: 0 auto 40px;
}
.c-endingNav__heading {
  display: block;
  line-height: 1;
  font-size: 24px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.15em;
  color: var(--blue-primary);
}
.c-endingNav__body {
  max-width: 500px;
  margin: 0 auto;
}
.c-endingNav__list {
  display: flex;
  flex-direction: column;
  margin: 0;
}
.c-endingNav__item {
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}
.c-endingNav__item + * {
  margin-top: 20px;
}
@media screen and (min-width: 768px) {
  .c-endingNav__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .c-endingNav {
    padding-top: 80px;
  }
  .c-endingNav__heading {
    font-size: 30px;
    letter-spacing: 0.18em;
    text-indent: 0.18em;
  }
  .c-endingNav__body {
    max-width: none;
  }
  .c-endingNav__list {
    flex-direction: row;
    flex-wrap: wrap;
    margin: -10px -10px;
  }
  .c-endingNav__list--centered {
    justify-content: center;
  }
  .c-endingNav__item {
    width: calc(33.3333% - 20px);
    max-width: none;
    margin: 10px 10px;
  }
}

.c-buttonEndingNav {
  display: block;
  width: 100%;
  height: 140px;
  padding: 9px;
  border: 1px solid #ccc;
  background-color: var(--white);
  transition: all 0.35s ease;
}
.c-buttonEndingNav:hover {
  border-color: var(--orange-primary);
  box-shadow: 0 6px 6px 0px rgba(0, 0, 0, 0.2);
}
.c-buttonEndingNav:hover .c-buttonEndingNav__inner {
  border-color: var(--orange-primary);
}
.c-buttonEndingNav:hover .c-buttonEndingNav__inner::after {
  border-color: transparent transparent var(--orange-primary) transparent;
}
.c-buttonEndingNav:hover .c-buttonEndingNav__label::after {
  background-color: var(--orange-primary);
}
.c-buttonEndingNav__inner {
  width: 100%;
  height: 100%;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ccc;
  background-color: #f2f2f2;
  transition: all 0.35s ease;
}
.c-buttonEndingNav__inner::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 15px 15px;
  border-color: transparent transparent #ccc transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonEndingNav__label {
  position: relative;
  display: block;
  line-height: 1.35;
  font-size: 21px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  color: var(--black);
}
.c-buttonEndingNav__label:has(> span) {
  line-height: 1;
}
.c-buttonEndingNav__label:has(> span)::after {
  background-color: var(--green-primary);
}
.c-buttonEndingNav__label::after {
  content: "";
  display: block;
  width: 60px;
  height: 2px;
  margin: 12px auto 0;
  background-color: var(--blue-primary);
  transition: background-color 0.35s ease;
}
.c-buttonEndingNav__label > span {
  display: block;
  margin-top: 7px;
  font-size: 14px;
  font-weight: 400;
}
@media screen and (min-width: 1024px) {
  .c-buttonEndingNav__label {
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }
}

.c-buttonProgramNav {
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100px;
  padding: 9px;
  border: 1px solid var(--white);
  background-color: #3480d1;
  transition: all 0.35s ease;
}
.c-buttonProgramNav:hover {
  border-color: var(--orange-primary);
  background-color: #fffaf4;
  box-shadow: 0 6px 6px 0px rgba(0, 0, 0, 0.2);
}
.c-buttonProgramNav:hover::after {
  border-color: transparent transparent #fff4e6 transparent;
}
.c-buttonProgramNav:hover .c-buttonProgramNav__inner {
  border-color: var(--orange-primary);
}
.c-buttonProgramNav:hover .c-buttonProgramNav__inner::after {
  border-color: transparent transparent var(--orange-primary) transparent;
}
.c-buttonProgramNav:hover .c-buttonProgramNav__label {
  color: var(--black);
}
.c-buttonProgramNav:hover .c-buttonProgramNav__label::after {
  background-color: var(--orange-primary);
}
.c-buttonProgramNav::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 44px 44px;
  border-color: transparent transparent #2375cd transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonProgramNav__inner {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--white);
  background-color: transparent;
  transition: all 0.35s ease;
}
.c-buttonProgramNav__inner::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 15px 15px;
  border-color: transparent transparent var(--white) transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonProgramNav__label {
  position: relative;
  display: block;
  line-height: 1.35;
  font-size: 21px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.18em;
  text-indent: 0.18em;
  color: var(--white);
  transition: all 0.35s ease;
}
.c-buttonProgramNav__label::after {
  content: "";
  display: block;
  width: 60px;
  height: 2px;
  margin: 12px auto 0;
  background-color: var(--white);
  transition: background-color 0.35s ease;
}
.c-map {
  padding-top: 60px;
}
.c-map__header {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column-reverse;
  margin: 0 auto 35px;
}
.c-map__heading {
  display: block;
  line-height: 1.5;
  font-size: 24px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  margin: 0 auto;
  color: var(--blue-primary);
}
.c-map__heading br {
  display: block;
}
.c-map__subheading {
  display: block;
  line-height: 1.5;
  font-size: 18px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  margin: 0 auto;
  margin-bottom: 0.65em;
  color: var(--blue-primary);
}
.c-map__body {
  max-width: 500px;
  margin: 0 auto;
}
.c-map__map {
  position: relative;
  width: 100%;
  border-radius: 8px;
  box-shadow: 0 6px 6px 0px rgba(0, 0, 0, 0.2);
  aspect-ratio: 345/242;
}
.c-map__map iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
@media screen and (min-width: 768px) {
  .c-map__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .c-map {
    padding-top: 80px;
  }
  .c-map__heading {
    line-height: 1;
    font-size: 30px;
    letter-spacing: 0.12em;
    text-indent: 0.12em;
  }
  .c-map__heading br {
    display: none;
  }
  .c-map__subheading {
    line-height: 1;
    font-size: 22px;
    letter-spacing: 0.12em;
    text-indent: 0.12em;
    margin-bottom: 1em;
  }
  .c-map__body {
    max-width: none;
  }
  .c-map__map {
    aspect-ratio: 1000/700;
  }
}

.c-buttonSupportNav {
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  height: 140px;
  padding: 9px;
  border: 1px solid var(--white);
  background-color: #3480d1;
  transition: all 0.35s ease;
}
.c-buttonSupportNav:hover {
  border-color: var(--orange-primary);
  background-color: #fffaf4;
  box-shadow: 0 6px 6px 0px rgba(0, 0, 0, 0.2);
}
.c-buttonSupportNav:hover::after {
  border-color: transparent transparent #fff4e6 transparent;
}
.c-buttonSupportNav:hover .c-buttonSupportNav__inner {
  border-color: var(--orange-primary);
}
.c-buttonSupportNav:hover .c-buttonSupportNav__inner::after {
  border-color: transparent transparent var(--orange-primary) transparent;
}
.c-buttonSupportNav:hover .c-buttonSupportNav__label {
  color: var(--black);
}
.c-buttonSupportNav:hover .c-buttonSupportNav__label::after {
  background-color: var(--orange-primary);
}
.c-buttonSupportNav::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 46px 46px;
  border-color: transparent transparent #2375cd transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonSupportNav__inner {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--white);
  background-color: transparent;
  transition: all 0.35s ease;
}
.c-buttonSupportNav__inner::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 15px 15px;
  border-color: transparent transparent var(--white) transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonSupportNav__label {
  position: relative;
  display: block;
  line-height: 1.35;
  font-size: 21px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  color: var(--white);
  transition: all 0.35s ease;
}
.c-buttonSupportNav__label::after {
  content: "";
  display: block;
  width: 60px;
  height: 2px;
  margin: 12px auto 0;
  background-color: var(--white);
  transition: background-color 0.35s ease;
}
.c-buttonSupportNav__label > span {
  display: block;
  font-size: 16px;
  margin-top: 0.2em;
}
@media screen and (min-width: 1024px) {
  .c-buttonSupportNav__label {
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }
}

.c-aboutNav {
  padding-top: 48px;
}
.c-aboutNav__header {
  margin: 0 auto 35px;
}
.c-aboutNav__lead {
  display: block;
  line-height: 2;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.06em;
  color: var(--black);
}
.c-aboutNav__body {
  max-width: 500px;
  margin: 0 auto;
}
.c-aboutNav__list {
  display: flex;
  flex-direction: column;
  margin: 0;
}
.c-aboutNav__item {
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}
.c-aboutNav__item + * {
  margin-top: 20px;
}
@media screen and (min-width: 768px) {
  .c-aboutNav__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .c-aboutNav {
    padding-top: 68px;
  }
  .c-aboutNav__heading {
    font-size: 30px;
    letter-spacing: 0.18em;
    text-indent: 0.18em;
  }
  .c-aboutNav__body {
    max-width: none;
  }
  .c-aboutNav__list {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    margin: -10px -10px;
  }
  .c-aboutNav__list--centered {
    justify-content: center;
  }
  .c-aboutNav__item {
    width: calc(33.3333% - 20px);
    max-width: none;
    margin: 10px 10px;
  }
}

.c-buttonAboutNav {
  display: block;
  width: 100%;
  height: 140px;
  padding: 9px;
  border: 1px solid #ccc;
  background-color: var(--white);
  transition: all 0.35s ease;
}
.c-buttonAboutNav:hover {
  border-color: var(--orange-primary);
  box-shadow: 0 6px 6px 0px rgba(0, 0, 0, 0.2);
}
.c-buttonAboutNav:hover .c-buttonAboutNav__inner {
  border-color: var(--orange-primary);
}
.c-buttonAboutNav:hover .c-buttonAboutNav__inner::after {
  border-color: transparent transparent var(--orange-primary) transparent;
}
.c-buttonAboutNav:hover .c-buttonAboutNav__label::after {
  background-color: var(--orange-primary);
}
.c-buttonAboutNav__inner {
  width: 100%;
  height: 100%;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ccc;
  background-color: #f2f2f2;
  transition: all 0.35s ease;
}
.c-buttonAboutNav__inner::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 15px 15px;
  border-color: transparent transparent #ccc transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonAboutNav__label {
  position: relative;
  display: block;
  line-height: 1.35;
  font-size: 19px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.06em;
  text-indent: 0.06em;
  color: var(--black);
}
.c-buttonAboutNav__label:has(> span) {
  line-height: 1.5;
}
.c-buttonAboutNav__label::after {
  content: "";
  display: block;
  width: 60px;
  height: 2px;
  margin: 12px auto 0;
  background-color: var(--blue-primary);
  transition: background-color 0.35s ease;
}
.c-buttonAboutNav__label > span {
  display: block;
  line-height: 1.5;
  margin-top: 7px;
  font-size: 14px;
  font-weight: 400;
}
@media screen and (min-width: 1024px) {
  .c-buttonAboutNav__label {
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }
}

.c-buttonGreenRounded {
  position: relative;
  width: 100%;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5em 2em;
  color: var(--white);
  border-radius: 50px;
  border: 2px solid var(--green-primary);
  background-color: var(--green-primary);
  transition: all 0.35s ease;
}
.c-buttonGreenRounded:hover {
  border-color: var(--orange-primary);
  background-color: var(--orange-primary);
  color: var(--white);
}
.c-buttonGreenRounded:hover svg path {
  fill: var(--white);
}
.c-buttonGreenRounded svg {
  transition: all 0.35s ease;
}
.c-buttonGreenRounded__icon {
  pointer-events: none;
  display: flex;
  align-items: center;
  position: absolute;
  top: 50%;
  right: 22px;
  transform: translateY(-50%);
}
.c-buttonGreenRounded__label {
  line-height: 1.4;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  color: inherit;
}
.c-buttonGreenRounded__label br {
  display: block;
}
@media screen and (min-width: 1024px) {
  .c-buttonGreenRounded {
    padding: 1em 2em;
  }
  .c-buttonGreenRounded__label {
    line-height: 1;
    font-size: 21px;
  }
  .c-buttonGreenRounded__label br {
    display: none;
  }
}

.c-formContact {
  margin-top: -10px;
}
.c-formContact__table {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
  padding: 0;
}
.c-formContact__table tbody th,
.c-formContact__table tbody td {
  width: 100%;
  display: block;
  text-align: left;
}
.c-formContact__table tbody th {
  min-width: 270px;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.06em;
}
.c-formContact__table tbody th > label {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.c-formContact__table tbody th > label br {
  display: none;
}
.c-formContact__table tbody td {
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.06em;
  padding: 10px 0 28px;
}
.c-formContact__table tbody tr:last-child td {
  padding-bottom: 0;
}
.c-formContact__table tbody input[type="text"],
.c-formContact__table tbody input[type="tel"],
.c-formContact__table tbody input[type="email"],
.c-formContact__table tbody textarea {
  width: 100%;
  padding: 8px;
  border: 1px solid #333;
  border-radius: 5px;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.06em;
  padding: 1em 1em;
  color: var(--black);
  background-color: #f4f8fc;
  transition: all 0.35s ease;
}
.c-formContact__table tbody input[type="text"]:focus,
.c-formContact__table tbody input[type="tel"]:focus,
.c-formContact__table tbody input[type="email"]:focus,
.c-formContact__table tbody textarea:focus {
  border-color: var(--orange-primary);
  background-color: #fff4e6;
  outline: none;
}
.c-formContact__table tbody input[type="text"]::-moz-placeholder,
.c-formContact__table tbody input[type="tel"]::-moz-placeholder,
.c-formContact__table tbody input[type="email"]::-moz-placeholder,
.c-formContact__table tbody textarea::-moz-placeholder {
  color: #b3b3b3;
}
.c-formContact__table tbody input[type="text"]::placeholder,
.c-formContact__table tbody input[type="tel"]::placeholder,
.c-formContact__table tbody input[type="email"]::placeholder,
.c-formContact__table tbody textarea::placeholder {
  color: #b3b3b3;
}
.c-formContact__table tbody textarea {
  resize: vertical;
  min-height: 240px;
}
.c-formContact__required {
  line-height: 1;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-align: center;
  padding: 0.2em 0.6em;
  margin-left: auto;
  border-radius: 3px;
  color: #fff;
  background-color: #eb0008;
}
.c-formContact__any {
  line-height: 1;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-align: center;
  padding: 0.2em 0.6em;
  margin-left: auto;
  border-radius: 3px;
  color: #fff;
  background-color: #646464;
}
@media screen and (min-width: 1024px) {
  .c-formContact__table tbody th,
  .c-formContact__table tbody td {
    width: auto;
    display: table-cell;
    vertical-align: top;
    padding: 10px 0;
  }
  .c-formContact__table tbody th {
    padding: calc(10px + 1em) 0;
  }
  .c-formContact__table tbody th > label br {
    display: block;
  }
  .c-formContact__table tbody td {
    padding-left: 30px;
  }
}

/* DN登録フォーム用スタイル */
.p-dnRegistration {
  padding: var(--space-md) 0;
}
.p-dnRegistration__container {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 1rem;
}
.p-dnRegistration__body {
  background-color: var(--white);
  padding: var(--space-md);
  border-radius: 8px;
}

.c-form {
  width: 100%;
}
.c-form__section {
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--gray70);
}
.c-form__section:last-child {
  border-bottom: none;
}
.c-form__sectionTitle {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: var(--space-md);
  color: var(--blue-primary);
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--blue-primary);
}
.c-form__subsectionTitle {
  font-size: 22px;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.06em;
  padding: 0 15px 0.4em;
  margin: 30px 0 var(--space-md) 0;
  color: #2375cd;
  border-bottom: 2px solid #2375cd;
  display: block;
  width: 100%;
}

@media (min-width: 1024px) {
  .c-form__subsectionTitle {
    font-size: 26px;
  }
}
.c-form__group {
  margin-bottom: var(--space-md);
}
.c-form__label {
  display: block;
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 0.5rem;
  color: var(--black);
}
.c-form__label--small {
  font-size: 14px;
  font-weight: 400;
  margin-bottom: 0.25rem;
}
.c-form__required {
  display: inline-block;
  font-size: 12px;
  font-weight: 500;
  color: var(--white);
  background-color: var(--red-primary);
  padding: 0.2em 0.6em;
  border-radius: 3px;
  margin-left: 0.5em;
  vertical-align: middle;
}
.c-form__input,
.c-form__select,
.c-form__textarea {
  width: 100%;
  padding: 0.75em 1em;
  font-size: 16px;
  font-family: var(--japanese-sans-serif);
  color: var(--black);
  background-color: var(--white);
  border: 1px solid var(--gray60);
  border-radius: 4px;
  transition: all 0.3s ease;
  box-sizing: border-box;
}
.c-form__input::-webkit-input-placeholder,
.c-form__textarea::-webkit-input-placeholder {
  color: #b3b3b3;
  opacity: 1;
}
.c-form__input::-moz-placeholder,
.c-form__textarea::-moz-placeholder {
  color: #b3b3b3;
  opacity: 1;
}
.c-form__input::placeholder,
.c-form__textarea::placeholder {
  color: #b3b3b3;
  opacity: 1;
}
.c-form__input:focus,
.c-form__select:focus,
.c-form__textarea:focus {
  outline: none;
  border-color: var(--orange-primary);
  background-color: #fff4e6;
  box-shadow: 0 0 0 3px rgba(255, 147, 30, 0.1);
}
.c-form__input:invalid:not(:placeholder-shown),
.c-form__select:invalid:not(:placeholder-shown),
.c-form__textarea:invalid:not(:placeholder-shown) {
  border-color: var(--red-primary);
  background-color: #fff5f5;
}
.c-form__input:valid:not(:placeholder-shown):not([type="email"]),
.c-form__select:valid:not(:placeholder-shown),
.c-form__textarea:valid:not(:placeholder-shown) {
  border-color: var(--green-primary);
}
.c-form__input[type="number"] {
  -moz-appearance: textfield;
}
.c-form__input[type="number"]::-webkit-inner-spin-button,
.c-form__input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.c-form__select {
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='9' viewBox='0 0 12 9'%3E%3Cpath fill='%23333' d='M6 9L0 0h12z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1em center;
  padding-right: 3em;
}
.c-form__textarea {
  resize: vertical;
  min-height: 120px;
  line-height: 1.6;
}
.c-form__row {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.c-form__col {
  flex: 1;
  min-width: 200px;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.c-form__unit {
  font-size: 16px;
  color: var(--black);
  white-space: nowrap;
}
.c-form__radioGroup,
.c-form__checkboxGroup {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 0.5rem;
}
.c-form__radio,
.c-form__checkbox {
  display: flex;
  align-items: center;
  cursor: pointer;
  font-size: 16px;
  user-select: none;
  margin: 0;
  padding: 0;
}
.c-form__radio input[type="radio"],
.c-form__checkbox input[type="checkbox"] {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  min-height: 20px !important;
  margin-right: 0.5rem;
  margin-left: 0;
  margin-top: 0;
  margin-bottom: 0;
  padding: 0 !important;
  cursor: pointer;
  accent-color: var(--orange-primary);
  flex-shrink: 0;
  display: inline-block !important;
  opacity: 1 !important;
  visibility: visible !important;
  appearance: auto !important;
  -webkit-appearance: auto !important;
  -moz-appearance: auto !important;
  border: 1px solid var(--gray60);
  background-color: var(--white);
  box-sizing: border-box;
}
.c-form__radio input[type="radio"] {
  border-radius: 50%;
}
.c-form__checkbox input[type="checkbox"] {
  border-radius: 3px;
}
.c-form__radio input[type="radio"]:checked,
.c-form__checkbox input[type="checkbox"]:checked {
  border-color: var(--orange-primary);
  background-color: var(--orange-primary);
}
.c-form__radio span,
.c-form__checkbox span {
  line-height: 1.5;
  margin-left: 0;
}
.c-form__help {
  font-size: 14px;
  color: var(--gray40);
  margin-top: 0.25rem;
  line-height: 1.5;
}
.c-form__error {
  font-size: 14px;
  color: var(--red-primary);
  margin-top: 0.25rem;
  display: block;
  line-height: 1.5;
}
.c-form__error::before {
  content: "※ ";
}
.c-form__note {
  font-size: 14px;
  color: var(--gray40);
  margin-top: 0.5rem;
  display: block;
  line-height: 1.5;
}
.c-form__note--error {
  color: var(--red-primary);
  font-weight: 500;
}
.c-form__divider {
  border: none;
  border-top: 1px dashed var(--gray60);
  margin: 1.5rem 0;
  width: 100%;
}
.c-form__checkboxGroup--inline {
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.c-form__checkboxGroup--inline .c-form__input {
  flex: 1;
  min-width: 200px;
  max-width: 400px;
}
/* 希望診療科セクション4: [その他+入力の塊] → [宿日直] の順を固定（.c-form__input の flex:1 による折り返し錯乱を防ぐ） */
.c-form__desiredDepartmentOtherGroup {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.75rem;
  flex: 0 1 auto;
  min-width: 0;
  direction: ltr;
}
.c-form__desiredDepartmentOtherGroup .c-form__checkbox {
  flex-shrink: 0;
}
.c-form__checkboxGroup--inline .c-form__desiredDepartmentOtherGroup .c-form__input {
  flex: 0 1 280px;
  min-width: 12rem;
  max-width: 400px;
}
@media screen and (max-width: 480px) {
  .c-form__desiredDepartmentOtherGroup {
    flex-wrap: wrap;
  }
  .c-form__checkboxGroup--inline .c-form__desiredDepartmentOtherGroup .c-form__input {
    flex: 1 1 100%;
    min-width: 0;
    max-width: none;
  }
}
.c-form__actions {
  display: flex;
  gap: 1rem;
  justify-content: center;
  margin-top: var(--space-lg);
  padding-top: var(--space-md);
  border-top: 1px solid var(--gray70);
}
@media screen and (min-width: 1024px) {
  .p-dnRegistrationConfirm .c-form__actions {
    flex-direction: row-reverse;
  }
}
.c-form__actions .c-button {
  width: auto !important;
  min-width: 200px;
  max-width: 300px;
}
.c-button {
  position: relative;
  width: 100%;
  min-height: 46px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75em 2em;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  border-radius: 50px;
  border: 2px solid transparent;
  transition: all 0.35s ease;
  cursor: pointer;
  text-decoration: none;
  box-sizing: border-box;
  background-color: transparent;
  -webkit-appearance: none;
  appearance: none;
}
button.c-button:not(.c-button--primary):not(.c-button--secondary):not(
    .c-button--danger
  ) {
  background-color: transparent;
}
.c-button--primary {
  color: var(--white);
  background-color: var(--blue-primary);
  border-color: var(--blue-primary);
}
button.c-button--primary,
a.c-button--primary {
  background-color: var(--blue-primary);
  color: var(--white);
  border-color: var(--blue-primary);
}
.c-button--primary:hover {
  background-color: var(--orange-primary);
  border-color: var(--orange-primary);
  color: var(--white);
}
button.c-button--primary:hover {
  background-color: var(--orange-primary);
  border-color: var(--orange-primary);
  color: var(--white);
}
.c-button--secondary {
  color: var(--blue-primary);
  background-color: var(--white);
  border-color: var(--blue-primary);
}
button.c-button--secondary,
a.c-button--secondary {
  color: var(--blue-primary);
  background-color: var(--white);
  border-color: var(--blue-primary);
}
.c-button--secondary:hover {
  background-color: var(--blue-primary);
  border-color: var(--blue-primary);
  color: var(--white);
}
button.c-button--secondary:hover,
a.c-button--secondary:hover {
  background-color: var(--blue-primary);
  border-color: var(--blue-primary);
  color: var(--white);
}
.c-button--danger {
  color: var(--red-primary);
  background-color: var(--white);
  border-color: var(--red-primary);
}
button.c-button--danger,
a.c-button--danger {
  color: var(--red-primary);
  background-color: var(--white);
  border-color: var(--red-primary);
}
.c-button--danger:hover {
  background-color: var(--red-primary);
  border-color: var(--red-primary);
  color: var(--white);
}
button.c-button--danger:hover,
a.c-button--danger:hover {
  background-color: var(--red-primary);
  border-color: var(--red-primary);
  color: var(--white);
}
.c-button:disabled,
button.c-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
button.c-button--primary:disabled {
  background-color: var(--gray60);
  border-color: var(--gray60);
  color: var(--white);
}
@media screen and (min-width: 1024px) {
  .c-button {
    min-height: 50px;
    padding: 0.834em 2.5em;
    font-size: 18px;
  }
}
.c-form__loading {
  display: none;
  text-align: center;
  padding: var(--space-md);
  color: var(--gray40);
}
.c-form__loading.is-active {
  display: block;
}

/* エラー状態のスタイル */
.c-form__group.has-error .c-form__input,
.c-form__group.has-error .c-form__select,
.c-form__group.has-error .c-form__textarea {
  border-color: var(--red-primary);
  background-color: #fff5f5;
}
.c-form__group.has-success .c-form__input,
.c-form__group.has-success .c-form__select,
.c-form__group.has-success .c-form__textarea {
  border-color: var(--green-primary);
}

/* アラート表示 */
.c-alert {
  padding: 1rem;
  border-radius: 4px;
  margin-bottom: var(--space-md);
}
.c-alert--error {
  background-color: #fff5f5;
  border: 1px solid var(--red-primary);
  color: var(--red-primary);
}
.c-alert--success {
  background-color: #f0f9f0;
  border: 1px solid var(--green-primary);
  color: var(--green-primary);
}
.c-alert--info {
  background-color: #e6f3ff;
  border: 1px solid var(--blue-primary);
  color: var(--blue-primary);
  font-weight: 500;
}
.c-alert__list {
  margin: 0;
  padding-left: 1.5rem;
  list-style-type: disc;
}
.c-alert__list li {
  margin-bottom: 0.25rem;
}

/* レスポンシブ対応 */
@media screen and (max-width: 1023px) {
  .p-dnRegistration__body {
    padding: var(--space-sm);
  }
  .c-form__sectionTitle {
    font-size: 18px;
  }
  .c-form__subsectionTitle {
    font-size: 16px;
  }
  .c-form__row {
    flex-direction: column;
  }
  .c-form__col {
    min-width: 100%;
  }
  .birth-date-container {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
  .birth-year-wrapper {
    margin-bottom: 1rem;
    width: auto;
    display: flex !important;
    flex-direction: column !important;
  }
  .birth-year-wrapper .c-form__input {
    width: 100px !important;
  }
  .birth-date-container .birth-month-day-container {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 1rem !important;
    align-items: flex-end !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .birth-month-day-container .birth-month-wrapper,
  .birth-month-day-container .birth-day-wrapper {
    flex: 0 0 auto !important;
    min-width: auto !important;
    width: auto !important;
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .birth-month-wrapper .c-form__input,
  .birth-day-wrapper .c-form__input {
    width: 80px !important;
  }
  .c-form__radioGroup,
  .c-form__checkboxGroup {
    flex-direction: column;
    gap: 0.75rem;
  }
  .c-form__actions {
    flex-direction: column;
  }
  .c-form__actions .c-button {
    width: 100%;
    min-width: auto;
  }
}

/* DNログイン画面用スタイル */
.p-dnLogin {
  padding: var(--space-md) 0;
}
.p-dnLogin__container {
  max-width: 600px;
  margin: 0 auto;
  padding: 0 1rem;
}
.p-dnLogin__body {
  background-color: var(--white);
  padding: var(--space-lg);
  border-radius: 8px;
}
.p-dnLogin__registerLead {
  margin-bottom: var(--space-xl);
  text-align: center;
}
.p-dnLogin__links {
  margin-top: var(--space-lg);
  padding-top: var(--space-md);
  border-top: 1px solid var(--gray70);
  text-align: center;
}
.p-dnLogin__linkItem {
  margin-bottom: 0.75rem;
}
.p-dnLogin__linkItem:last-child {
  margin-bottom: 0;
}
.p-dnLogin__registerLead .c-link,
.p-dnLogin__links .c-link {
  color: var(--blue-primary);
  text-decoration: underline;
  font-size: 16px;
  transition: color 0.35s ease;
  display: inline-block;
}
.p-dnLogin__registerLead .c-link:hover,
.p-dnLogin__links .c-link:hover {
  color: var(--orange-primary);
  text-decoration: underline;
}

/* DN登録確認画面用スタイル */
.p-dnRegistrationConfirm {
  padding: var(--space-md) 0;
}
.p-dnRegistrationConfirm__container {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 1rem;
}
.p-dnRegistrationConfirm__body {
  background-color: var(--white);
  padding: var(--space-lg);
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* DNマイページ用スタイル */
.p-dnMypage {
  padding: var(--space-md) 0;
}
.p-dnMypage__container {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 1rem;
}
.p-dnMypage__body {
  background-color: var(--white);
  padding: var(--space-lg);
  border-radius: 8px;
}
.p-dnMypage__welcome {
  text-align: center;
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--gray70);
}
.p-dnMypage__name {
  font-size: 24px;
  font-weight: 600;
  color: var(--black);
  margin-bottom: 0.5rem;
}
.p-dnMypage__email {
  font-size: 16px;
  color: var(--gray40);
}
.p-dnMypage__menu {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}
.p-dnMypage__menuItem {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.p-dnMypage__menuItem .c-button {
  width: auto;
  min-width: 280px;
  max-width: 400px;
  margin-bottom: 1rem;
}
.p-dnMypage__menuDescription {
  font-size: 14px;
  color: var(--gray40);
  line-height: 1.6;
  margin-top: 0.5rem;
}
.p-dnMypage__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding-top: var(--space-md);
  border-top: 1px solid var(--gray70);
}
.p-dnMypage__logoutForm {
  display: inline-block;
}
.p-dnMypage__logoutForm button[type="submit"].c-button.c-button--secondary {
  width: auto !important;
  min-width: 200px !important;
  max-width: 300px !important;
  color: var(--blue-primary) !important;
  background-color: var(--white) !important;
  border: 2px solid var(--blue-primary) !important;
  border-radius: 50px !important;
  padding: 0.75em 2em !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
  text-indent: 0.12em !important;
  min-height: 46px !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  transition: all 0.35s ease !important;
}
.p-dnMypage__logoutForm
  button[type="submit"].c-button.c-button--secondary:hover {
  background-color: var(--blue-primary) !important;
  border-color: var(--blue-primary) !important;
  color: var(--white) !important;
}
@media screen and (min-width: 1024px) {
  .p-dnMypage__logoutForm button[type="submit"].c-button.c-button--secondary {
    min-height: 50px !important;
    padding: 0.834em 2.5em !important;
    font-size: 18px !important;
  }
}
.p-dnMypage__actions .c-button {
  width: auto;
  min-width: 200px;
  max-width: 300px;
}
.p-dnMypage__actions .c-link {
  font-size: 14px;
}

@media screen and (min-width: 768px) {
  .p-dnMypage__menu {
    flex-direction: row;
    justify-content: center;
    gap: var(--space-lg);
  }
  .p-dnMypage__menuItem {
    flex: 1;
    max-width: 400px;
  }
  .p-dnMypage__actions {
    flex-direction: row;
    justify-content: center;
  }
}

.c-confirmDisplay {
  margin-top: var(--space-md);
}
.c-confirmDisplay__section {
  margin-bottom: var(--space-lg);
}
.c-confirmDisplay__section:last-child {
  margin-bottom: 0;
}
.c-confirmDisplay__title {
  font-size: 20px;
  font-weight: 600;
  color: var(--blue-primary);
  margin: 0 0 var(--space-md);
  padding: 0.75rem 1rem;
  background-color: #f0f7ff;
  border-left: 4px solid var(--blue-primary);
  border-radius: 4px;
}
.c-confirmDisplay__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 0;
  padding: var(--space-md);
  background-color: #fafafa;
  border-radius: 6px;
  border: 1px solid var(--gray70);
}
.c-confirmDisplay__list dt {
  font-size: 14px;
  font-weight: 600;
  color: var(--gray40);
  margin-bottom: 0.25rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px dotted var(--gray70);
  letter-spacing: 0.05em;
}
.c-confirmDisplay__list dd {
  font-size: 16px;
  font-weight: 400;
  color: var(--black);
  margin: 0 0 0.75rem 0;
  padding-left: 0;
  line-height: 1.6;
  word-break: break-word;
}
.c-confirmDisplay__list dd:last-child {
  margin-bottom: 0;
}
@media screen and (min-width: 768px) {
  .c-confirmDisplay__list {
    grid-template-columns: 200px 1fr;
    gap: 1rem;
  }
  .c-confirmDisplay__list dt {
    padding-right: 1rem;
    border-bottom: none;
    border-right: 1px solid var(--gray70);
    margin-bottom: 0;
    padding-bottom: 0.5rem;
  }
  .c-confirmDisplay__list dd {
    margin-bottom: 0.5rem;
    padding-left: 1rem;
  }
}
@media screen and (max-width: 767px) {
  .p-dnRegistrationConfirm__body {
    padding: var(--space-md);
  }
  .c-confirmDisplay__title {
    font-size: 18px;
    padding: 0.5rem 0.75rem;
  }
  .c-confirmDisplay__list {
    padding: var(--space-sm);
  }
  .c-confirmDisplay__list dt {
    font-size: 13px;
  }
  .c-confirmDisplay__list dd {
    font-size: 15px;
  }
}

/* DN登録完了画面用スタイル */
.p-dnRegistrationComplete {
  padding: var(--space-md) 0;
}
.p-dnRegistrationComplete__container {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 1rem;
}
.p-dnRegistrationComplete__body {
  background-color: var(--white);
  padding: var(--space-lg);
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.p-dnRegistrationComplete__message {
  margin-top: var(--space-md);
  margin-bottom: var(--space-lg);
  font-size: 16px;
  line-height: 1.6;
}
.p-dnRegistrationComplete__actions {
  display: flex;
  justify-content: center;
  margin-top: var(--space-lg);
}
.p-dnRegistrationComplete__actions .c-button {
  width: auto !important;
  min-width: 200px;
  max-width: 300px;
}

.c-selectCustom {
  width: 100%;
  height: 60px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  padding: 0;
  border: 1px solid #333;
  border-radius: 30px;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-align: center;
  color: var(--black);
  background-color: var(--white);
}
.c-selectCustom select {
  text-align: center;
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
  background: transparent;
}
.c-selectCustom__icon {
  position: absolute;
  right: 20px;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 12px;
  height: 9px;
}
.c-checkbox {
  padding: 0;
  margin-top: 0.5rem;
}
.c-checkbox input {
  display: none;
}
.c-checkbox label {
  box-sizing: border-box;
  cursor: pointer;
  display: inline-block;
  padding: 0 0 0 2em;
  position: relative;
  width: auto;
}
.c-checkbox label::before {
  background: #fff;
  border: 1px solid #333;
  border-radius: 3px;
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  left: 0;
  margin-top: -9px;
  position: absolute;
  top: 50%;
}
.c-checkbox label::after {
  opacity: 0;
  content: "";
  display: block;
  width: 8px;
  height: 13px;
  margin-top: -7px;
  border-right: 3px solid var(--blue-primary);
  border-bottom: 3px solid var(--blue-primary);
  position: absolute;
  top: 50%;
  left: 6px;
  transform: rotate(45deg) translate3d(0, 2px, 0) scale3d(0.7, 0.7, 1);
  transition:
    transform 0.2s ease-in-out,
    opacity 0.2s ease-in-out;
}
input[type="checkbox"]:checked + label::before {
  border-color: var(--blue-primary);
}

input[type="checkbox"]:checked + label::after {
  opacity: 1;
  transform: rotate(45deg) scale3d(1, 1, 1);
}

.c-buttonSubmit {
  position: relative;
  width: 100%;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.c-buttonSubmit:hover input {
  border-color: var(--orange-primary);
  background-color: var(--orange-primary);
  color: var(--white);
}
.c-buttonSubmit:hover svg path {
  fill: var(--white);
}
.c-buttonSubmit input {
  width: 100%;
  height: 60px;
  line-height: 1;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 2em;
  color: var(--white);
  border-radius: 50px;
  border: 2px solid var(--blue-primary);
  background-color: var(--blue-primary);
  transition: all 0.35s ease;
}
.c-buttonSubmit svg {
  transition: all 0.35s ease;
}
.c-buttonSubmit__icon {
  pointer-events: none;
  display: flex;
  align-items: center;
  position: absolute;
  top: 50%;
  right: 22px;
  transform: translateY(-50%);
}
@media screen and (min-width: 1024px) {
  .c-buttonSubmit input {
    font-size: 21px;
  }
}
/* 相談コーナー・お問い合わせ：「入力内容を確認する」ボタン初期表示は青（tmp.cssの[type=submit]より優先） */
.p-consultation-form .c-buttonSubmit input,
.p-contact .c-buttonSubmit input {
  border: 2px solid var(--blue-primary);
  background-color: var(--blue-primary);
  color: var(--white);
}
/* c-buttonSubmit 系ボタン：ホバー時はオレンジ（相談フォーム・お問い合わせ等すべて共通） */
.p-consultation-form .c-buttonSubmit:hover input,
.p-contact .c-buttonSubmit:hover input {
  border-color: var(--orange-primary);
  background-color: var(--orange-primary);
  color: var(--white);
}

.c-heading2 {
  line-height: 1.2;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0.06em;
  padding: 10px 15px 14px;
  border-radius: 5px;
  color: #1b1464;
  background-color: #e9f1fa;
}
@media screen and (min-width: 1024px) {
  .c-heading2 {
    font-size: 30px;
  }
}

.c-heading3 {
  display: block;
  width: 100%;
  line-height: 1.2;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0.06em;
  padding: 0 5px 8px;
  margin-top: 30px;
  color: #2375cd;
  border-bottom: 2px solid #2375cd;
}
.c-heading3 span {
  display: block;
  font-size: 16px;
  margin-bottom: 8px;
}
@media screen and (min-width: 1024px) {
  .c-heading3 {
    padding: 0 15px 10px;
  }
  .c-heading3 span {
    display: inline-block;
    font-size: 18px;
    margin-bottom: 0;
    margin-right: 0.5em;
  }
}

.c-snsNav {
  padding-top: 40px;
}
.c-snsNav__header {
  max-width: 500px;
  margin: 0 auto 40px;
}
.c-snsNav__heading {
  display: block;
  line-height: 1;
  font-size: 24px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  margin: 0 auto;
  color: var(--blue-primary);
}
.c-snsNav__body {
  max-width: 500px;
  margin: 0 auto;
}
.c-snsNav__list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  margin: -7.5px -7.5px;
}
.c-snsNav__item {
  width: calc(50% - 15px);
  margin: 7.5px 7.5px;
}
.c-snsNav__button {
  max-width: 320px;
  text-align: center;
  margin: 40px auto 0;
}
@media screen and (min-width: 768px) {
  .c-snsNav__header,
  .c-snsNav__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .c-snsNav {
    padding-top: 60px;
  }
  .c-snsNav__header {
    max-width: none;
  }
  .c-snsNav__heading {
    font-size: 30px;
    letter-spacing: 0.12em;
    text-indent: 0.12em;
  }
  .c-snsNav__body {
    max-width: none;
  }
  .c-snsNav__list {
    margin: -10px -10px;
  }
  .c-snsNav__item {
    width: calc(25% - 20px);
    margin: 10px 10px;
  }
  .c-snsNav__button {
    max-width: 490px;
    margin: 60px auto 0;
  }
}

.c-buttonSnsNav {
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  height: 116px;
  padding: 9px;
  border: 1px solid #ccc;
  background-color: #3480d1;
  transition: all 0.35s ease;
}
.c-buttonSnsNav:hover {
  border-color: var(--orange-primary);
  background-color: #fffaf4;
  box-shadow: 0 6px 6px 0px rgba(0, 0, 0, 0.2);
}
.c-buttonSnsNav:hover::after {
  border-color: transparent transparent #fff4e6 transparent;
}
.c-buttonSnsNav:hover .c-buttonSnsNav__inner {
  border-color: var(--orange-primary);
}
.c-buttonSnsNav:hover .c-buttonSnsNav__inner::after {
  border-color: transparent transparent var(--orange-primary) transparent;
}
.c-buttonSnsNav:hover .c-buttonSnsNav__icon svg path {
  fill: var(--orange-primary);
}
.c-buttonSnsNav:hover .c-buttonSnsNav__label {
  color: var(--orange-primary);
}
.c-buttonSnsNav::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 64px 64px;
  border-color: transparent transparent #2375cd transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonSnsNav__inner {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 2;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--white);
  background-color: transparent;
  transition: all 0.35s ease;
}
.c-buttonSnsNav__inner::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 15px 15px;
  border-color: transparent transparent var(--white) transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonSnsNav__icon {
  line-height: 1;
  min-height: 37px;
  margin-bottom: 8px;
}
.c-buttonSnsNav__icon svg {
  display: block;
  width: 100%;
  height: auto;
}
.c-buttonSnsNav__icon svg path {
  transition: all 0.35s ease;
}
.c-buttonSnsNav__label {
  position: relative;
  display: block;
  line-height: 1.2;
  font-size: 16px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0;
  text-indent: 0;
  color: var(--white);
  transition: all 0.35s ease;
}
@media screen and (min-width: 1024px) {
  .c-buttonSnsNav {
    height: 140px;
  }
  .c-buttonSnsNav__icon {
    margin-bottom: 15px;
  }
  .c-buttonSnsNav__label {
    line-height: 1.5;
    font-size: 18px;
    letter-spacing: 0.06em;
    text-indent: 0.06em;
  }
}

.c-tableTypeA {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: var(--black);
  border-bottom: 1px solid #7fa1c4;
}
.c-tableTypeA th,
.c-tableTypeA td {
  display: block;
  border: 1px solid #7fa1c4;
  padding: 6px 8px;
  text-align: left;
}
.c-tableTypeA th {
  background-color: #e9f1fa;
  font-size: 18px;
  font-weight: 400;
}
.c-tableTypeA td {
  font-weight: 300;
  color: var(--black);
  border-top: none;
  border-bottom: none;
  background-color: #fff;
}
.c-tableTypeA td > p {
  color: inherit;
}
.c-tableTypeA td a {
  color: var(--blue-primary);
  display: inline;
  word-break: break-all;
  transition: all 0.35s ease;
}
.c-tableTypeA td a:hover {
  opacity: 0.5;
}
.c-tableTypeA caption {
  caption-side: top;
  line-height: 1;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.06em;
  padding-left: 0.5em;
  margin-bottom: 0.8em;
  color: var(--blue-primary);
  border-left: 3px solid var(--blue-primary);
}
@media screen and (min-width: 1024px) {
  .c-tableTypeA {
    width: calc(100% - 15px);
    margin: 0 15px;
  }
  .c-tableTypeA th,
  .c-tableTypeA td {
    display: table-cell;
    border: 1px solid #7fa1c4;
    padding: 6px 20px;
    text-align: left;
    vertical-align: top;
  }
  .c-tableTypeA th {
    max-width: 260px;
    text-align: center;
  }
  .c-tableTypeA caption {
    font-size: 24px;
    transform: translateX(-15px);
  }
}

.c-listGallery {
  max-width: 300px;
  margin: 0 auto;
}
.c-listGallery__list {
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
.c-listGallery__item {
  width: 100%;
}
.c-listGallery__item:not(:first-of-type) {
  margin-top: 30px;
}
.c-listGallery__title {
  line-height: 2;
  font-size: 16px;
  font-weight: 300;
  letter-spacing: 0;
  text-align: justify;
  word-break: break-all;
  margin-top: 0.75em;
  color: var(--black);
}
@media screen and (min-width: 768px) {
  .c-listGallery {
    max-width: 640px;
  }
  .c-listGallery__list {
    flex-wrap: wrap;
    flex-direction: row;
    margin: -28px -20px;
  }
  .c-listGallery__item {
    width: calc(50% - 40px);
    margin: 28px 20px;
  }
  .c-listGallery__item:not(:first-of-type) {
    margin-top: 28px;
  }
}
@media screen and (min-width: 1024px) {
  .c-listGallery {
    max-width: none;
  }
  .c-listGallery__list {
    margin: -28px -25px;
  }
  .c-listGallery__item {
    width: calc(33.3333% - 50px);
    margin: 28px 25px;
  }
  .c-listGallery__item:not(:first-of-type) {
    margin-top: 28px;
  }
}

.c-listDisc > * {
  position: relative;
  line-height: 2;
  font-size: 16px;
  font-weight: 300;
  letter-spacing: 0.06em;
  padding: 0 0 0 1em;
  list-style: none;
  list-style-position: inside;
}
.c-listDisc > *:before {
  content: "";
  position: absolute;
  top: calc(1em - 2px);
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 100%;
  background-color: var(--black);
}
.c-listDisc > * + * {
  margin-top: 1em;
}
@media screen and (min-width: 1024px) {
  .c-listDisc > * + * {
    margin-top: 0;
  }
}

.c-tableTypeB {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: var(--black);
  border-bottom: 1px solid #7fa1c4;
  margin-top: 20px;
}
.c-tableTypeB th,
.c-tableTypeB td {
  display: block;
  border: 1px solid #7fa1c4;
  padding: 6px 8px;
  text-align: left;
}
.c-tableTypeB th {
  background-color: #e9f1fa;
  font-size: 18px;
  font-weight: 400;
}
.c-tableTypeB td {
  font-weight: 300;
  color: var(--black);
  border-top: none;
  border-bottom: none;
  background-color: #fff;
}
.c-tableTypeB td > p {
  color: inherit;
}
.c-tableTypeB td a {
  color: var(--blue-primary);
  display: inline;
  word-break: break-all;
  transition: all 0.35s ease;
}
.c-tableTypeB td a:hover {
  opacity: 0.5;
}
.c-tableTypeB caption {
  caption-side: top;
  line-height: 1;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.06em;
  padding-left: 0.5em;
  margin-bottom: 0.8em;
  color: var(--blue-primary);
  border-left: 3px solid var(--blue-primary);
}
@media screen and (min-width: 1024px) {
  .c-tableTypeB {
    width: calc(100% - 15px);
    margin: 0 15px;
  }
  .c-tableTypeB th,
  .c-tableTypeB td {
    display: table-cell;
    border: 1px solid #7fa1c4;
    padding: 6px 20px;
    text-align: left;
    vertical-align: top;
  }
  .c-tableTypeB th {
    width: 150px;
    text-align: center;
  }
  .c-tableTypeB caption {
    font-size: 24px;
    transform: translateX(-15px);
  }
}

.c-unitConsul {
  margin-top: 40px;
}
.c-unitConsul__contentTop {
  display: flex;
  flex-direction: column;
}
.c-unitConsul__button {
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}
.c-unitConsul__search {
  width: calc(100% + 30px);
  min-height: 185px;
  overflow: hidden;
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0 40px;
  margin: 60px 0 0;
  background: linear-gradient(135deg, #dfebf7 0%, #e9f1fa 70%, #e9f1fa 100%);
  transform: translateX(-15px);
}
.c-unitConsul__search > p {
  position: relative;
  z-index: 2;
  line-height: 1;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-indent: 0.06em;
  text-align: center;
  margin: 0 auto 1em;
}
.c-unitConsul__search::after {
  content: "";
  position: absolute;
  top: 0;
  left: 78%;
  z-index: 1;
  transform: skew(-35deg);
  width: 100%;
  height: 100%;
  background-color: #e5eff9;
}
.c-unitConsul__searchForm {
  width: 100%;
  position: relative;
}
.c-unitConsul__searchForm > input[type="text"] {
  width: 100%;
  position: relative;
  z-index: 2;
  line-height: 1;
  font-size: 18px;
  font-weight: 300;
  letter-spacing: 0;
  padding: 0.5em 1.2em;
  border: 1px solid #333;
  border-radius: 50px;
}
.c-unitConsul__searchForm > input[type="submit"] {
  width: 100px;
  height: calc(100% - 10px);
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  line-height: 1;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.5em;
  text-indent: 0.5em;
  text-align: center;
  padding: 0;
  margin: 5px 0;
  border: none;
  border-left: 1px solid #333;
  color: var(--black);
  cursor: pointer;
  transition: opacity 0.35s ease;
}
.c-unitConsul__searchForm > input[type="submit"]:hover {
  opacity: 0.8;
}
.c-unitConsul__contentBottom {
  margin-top: 60px;
}
.c-unitConsul__list {
  display: flex;
  flex-direction: column;
  margin: 0;
}
.c-unitConsul__item {
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}
.c-unitConsul__item + * {
  margin-top: 20px;
}
@media screen and (min-width: 1024px) {
  .c-unitConsul__contentTop {
    flex-direction: row;
    margin: -10px -10px;
  }
  .c-unitConsul__button {
    width: calc(33.3333% - 20px);
    max-width: none;
    margin: 10px 10px;
  }
  .c-unitConsul__search {
    width: calc(66.6666% - 20px);
    min-height: auto;
    margin: 10px 10px;
    transform: none;
  }
  .c-unitConsul__search > p {
    font-size: 21px;
  }
  .c-unitConsul__searchForm > input[type="text"] {
    font-size: 21px;
  }
  .c-unitConsul__contentBottom {
    margin-top: 10px;
  }
  .c-unitConsul__list {
    flex-direction: row;
    flex-wrap: wrap;
    margin: -10px -10px;
  }
  .c-unitConsul__item {
    width: calc(33.3333% - 20px);
    max-width: none;
    margin: 10px 10px;
  }
}

.c-buttonConsul {
  display: block;
  width: 100%;
  height: 140px;
  padding: 9px;
  border: 1px solid #ccc;
  background-color: var(--white);
  transition: all 0.35s ease;
}
.c-buttonConsul:hover {
  border-color: var(--orange-primary);
  box-shadow: 0 6px 6px 0px rgba(0, 0, 0, 0.2);
}
.c-buttonConsul:hover .c-buttonConsul__inner {
  border-color: var(--orange-primary);
}
.c-buttonConsul:hover .c-buttonConsul__inner::after {
  border-color: transparent transparent var(--orange-primary) transparent;
}
.c-buttonConsul:hover .c-buttonConsul__label::after {
  background-color: var(--orange-primary);
}
.c-buttonConsul__inner {
  width: 100%;
  height: 100%;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ccc;
  background-color: #f2f2f2;
  transition: all 0.35s ease;
}
.c-buttonConsul__inner::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 0 0 15px 15px;
  border-color: transparent transparent #ccc transparent;
  transform: rotate(0deg);
  transition: border-color 0.35s ease;
}
.c-buttonConsul__label {
  position: relative;
  display: block;
  line-height: 1.35;
  font-size: 21px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  color: var(--black);
}
.c-buttonConsul__label--orange::after {
  background-color: var(--orange-primary);
}
.c-buttonConsul__label--blue::after {
  background-color: var(--blue-primary);
}
.c-buttonConsul__label--purple::after {
  background-color: var(--purple-primary);
}
.c-buttonConsul__label::after {
  content: "";
  display: block;
  width: 60px;
  height: 2px;
  margin: 12px auto 0;
  transition: background-color 0.35s ease;
}
@media screen and (min-width: 1024px) {
  .c-buttonConsul__label {
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }
}

.c-format {
  margin-top: 48px;
}
.c-format__body {
  margin-top: 48px;
}
.c-format__content + .c-format__content {
  margin-top: 48px;
}
.c-format__content > * + * {
  margin-top: 1em;
}

/* ===== 2026-03-12 accessibility fix start ===== */
/*h2 {
  line-height: 1.7;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0.06em;
  padding: 10px 15px 14px;
  border-radius: 5px;
  color: #1b1464;
  background-color: #e9f1fa;
}
h3 {
  display: block;
  width: 100%;
  line-height: 1.7;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.06em;
  padding: 0 15px 0.4em;
  margin-top: 30px;
  color: #2375cd;
}
.c-format h3 {
  border-bottom: 2px solid #2375cd;
}
h3 span {
  display: block;
  font-size: 16px;
  margin-bottom: 8px;
}
h4 {
  display: block;
  line-height: 1.7;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.06em;
  padding-left: 13px;
  color: var(--blue-primary);
  border-left: 3px solid var(--blue-primary);
}
h5 {
  display: block;
  line-height: 1.7;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.06em;
  padding: 0.2em 15px;
  color: #2375cd;
}
h6 {
  position: relative;
  display: block;
  line-height: 1.7;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.06em;
  padding-left: 1em;
  margin-left: 15px;
  color: var(--black);
}
h6:before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
  width: 1em;
  height: 1em;
  color: var(--black);
}*/
/* ===== 2026-03-12 accessibility fix end ===== */
.c-format__content > p {
  line-break: strict;
  line-height: 2;
  word-break: break-all;
  font-size: 16px;
  font-weight: 300;
  letter-spacing: 0;
  text-align: justify;
  padding: 0 15px;
  color: var(--black);
}

/* ===== 2026-03-12 accessibility fix start ===== */
@media screen and (min-width: 1024px) {
  .c-format {
    margin-top: 68px;
  }
  .c-format__body {
    margin-top: 68px;
  }
  .c-format__content > * + * {
    margin-top: 1em;
  }
}
/* ===== 2026-03-12 accessibility fix end ===== */

/* ===== 2026-03-12 accessibility fix start ===== */
/*@media screen and (min-width: 1024px) {
  .c-format {
    margin-top: 68px;
  }
  .c-format__body {
    margin-top: 68px;
  }
  .c-format__content > * + * {
    margin-top: 1em;
  }

  h2 {
    font-size: 30px;
  }
  h3 {
    font-size: 26px;
  }
  h4 {
    font-size: 24px;
  }
  h5 {
    font-size: 22px;
  }
  h6 {
    font-size: 18px;
  }
}*/
/* ===== 2026-03-12 accessibility fix end ===== */

/* ===== 2026-03-14,16 accessibility fi start ===== */
/* =================================
   Hero
================================= */

.p-hero {
  position: relative;
  z-index: 1;
  background: #e9edf2;
}

.p-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.05),
    rgba(0, 0, 0, 0.25)
  );
}

.p-hero__inner {
  position: relative;
  width: 100%;
  min-height: 450px;
}

/* =================================
   Image
================================= */

.p-hero__image {
  position: relative;
  z-index: 1;
  height: 450px;
  overflow: hidden;
}

.p-hero__image picture {
  display: block;
  width: 100%;
  height: 100%;
}

.p-hero__image img {
  display: block;
  height: 450px;
  max-width: none;
}

/* 768px以上：PC画像 */
@media screen and (min-width: 768px) {
  .p-hero__image img {
    width: auto;
    min-width: 1440px;
    object-fit: cover;
    object-position: center left;
  }
}

/* 767px以下：スマホ画像 */
@media screen and (max-width: 767px) {
  .p-hero__inner {
    min-height: 450px;
  }

  .p-hero__image {
    height: 450px;
    overflow: hidden;
  }

  .p-hero__image picture,
  .p-hero__image img {
    display: block;
    width: 100%;
    height: 100%;
  }

  .p-hero__image img {
    object-fit: cover;
    object-position: left top;
  }
}

/* 1440px以上：縦横とも拡大 */
@media screen and (min-width: 1440px) {
  .p-hero__inner {
    height: calc(100vw * 450 / 1440);
    min-height: 450px;
  }

  .p-hero__image {
    height: calc(100vw * 450 / 1440);
    min-height: 450px;
  }

  .p-hero__image img {
    width: 100%;
    height: 100%;
    min-width: 1440px;
    min-height: 450px;
  }
}

/* =================================
   Text
================================= */

.p-hero__body {
  position: absolute;
  z-index: 2;
  width: auto;
  max-width: 88%;
  display: flex;
  flex-direction: column;
  gap: 0.2em;
  transform: none;
}

.p-hero__title {
  display: block;
  width: fit-content;
  margin: 0;
  padding: 0.15em 0.8em;
  max-width: min(90vw, 32ch); /* 背景最大サイズ */
  line-height: 1.45;
  font-family: var(--japanese-serif);
  font-size: clamp(1.65rem, 1.1rem + 2.4vw, 3.6rem); /* タイトルの文字サイズ */
  font-weight: 500;
  letter-spacing: 0.01em;
  /*white-space: nowrap;
  overflow-wrap: anywhere;*/
  color: var(--blue-primary);
  background: rgba(255, 255, 255, 0.72);
  border-radius: 2px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.p-hero__subtitle {
  display: block;
  width: fit-content;
  margin: 0;
  padding: 0.15em 0.8em;
  max-width: 100%;
  line-height: 1.2;
  font-size: clamp(0.95rem, 0.72rem + 0.7vw, 1.25rem);
  font-weight: 400;
  letter-spacing: 0.06em;
  /*white-space: nowrap;*/
  color: var(--blue-primary);
  background: rgba(230, 230, 230, 0.6);
  border-radius: 2px;
}

/* 白背景を端につけるここから */
/* 右の上下タイトル */
.p-hero--body-bottom-right .p-hero__title,
.p-hero--body-top-right .p-hero__title {
  padding: 0.15em 4rem 0.15em 1.2rem;
}
/* 右の上下サブタイトル */
.p-hero--body-bottom-right .p-hero__subtitle,
.p-hero--body-top-right .p-hero__subtitle {
  padding: 0.25em 4.2rem 0.25em 1.2rem;
}
/* 左の上下タイトル */
.p-hero--body-bottom-left .p-hero__title,
.p-hero--body-top-left .p-hero__title {
  padding: 0.15em 1.2rem 0.15em 4rem;
}
/* 左の上下サブタイトル */
.p-hero--body-bottom-left .p-hero__subtitle,
.p-hero--body-top-left .p-hero__subtitle {
  padding: 0.25em 1.2rem 0.25em 4.2rem;
}

.p-hero__title {
  padding-top: 0.18em;
  padding-bottom: 0.18em;
}

/* 白背景を端につけるここまで */

/* 文字の微調整 */
@media screen and (min-width: 1024px) {
  .p-hero__title {
    line-height: 1.4;
    letter-spacing: 0.06em;
  }

  .p-hero__subtitle {
    letter-spacing: 0.12em;
  }
}

/* 1440px以上：画像拡大に追随 */
@media screen and (min-width: 1440px) {
  .p-hero__title {
    font-size: calc(3.6rem * 100vw / 1440);
  }

  .p-hero__subtitle {
    font-size: calc(1.25rem * 100vw / 1440);
  }
}

/* =================================
   Button
================================= */

.p-hero__button {
  position: absolute;
  bottom: -35px;
  left: 50%;
  z-index: 3;
  width: 100%;
  max-width: 490px;
  padding: 0 15px;
  transform: translateX(-50%);
  font-size: 21px;
  text-align: center;
}

/* タブレットとPC */
@media screen and (min-width: 768px) {
  .p-hero__button .c-buttonBlueRounded {
    width: 490px;
    min-height: 60px;
  }
  .p-hero__button .c-buttonBlueRounded__label {
    font-size: 21px;
  }
}

@media screen and (max-width: 767px) {
  .p-hero__button .c-buttonBlueRounded {
    width: auto;
    max-width: 490px;
  }
  .p-hero__button .c-buttonBlueRounded__label {
    padding: 0;
    line-height: 1.4;
  }
}

/* =================================
   Body position - default
================================= */

/* 左下 */
.p-hero--body-bottom-left .p-hero__body {
  left: 0;
  right: auto;
  top: auto;
  bottom: 6%;
  align-items: flex-start;
}

/* 右下 */
.p-hero--body-bottom-right .p-hero__body {
  right: 0;
  left: auto;
  top: auto;
  bottom: 6%;
  align-items: flex-end;
}

/* 左上 */
.p-hero--body-top-left .p-hero__body {
  left: 0;
  right: auto;
  top: 15%; /* スマホで上からの距離 */
  bottom: auto;
  align-items: flex-start;
}

/* 右上 */
.p-hero--body-top-right .p-hero__body {
  right: 0;
  left: auto;
  top: 15%;
  bottom: auto;
  align-items: flex-end;
}

/* 白背景を端につけるここから */
/* 右の上下タイトル */
/* ★タブレットとPC */
@media screen and (min-width: 768px) {
  .p-hero--body-bottom-right .p-hero__title,
  .p-hero--body-top-right .p-hero__title {
    padding: 0.15em 2.6rem 0.15em 1rem;
  }
  /* 右の上下サブタイトル */
  .p-hero--body-bottom-right .p-hero__subtitle,
  .p-hero--body-top-right .p-hero__subtitle {
    padding: 0.25em 2.8rem 0.25em 1.2rem;
  }
  /* 左の上下タイトル */
  .p-hero--body-bottom-left .p-hero__title,
  .p-hero--body-top-left .p-hero__title {
    padding: 0.15em 1rem 0.15em 2.6rem;
  }
  /* 左の上下サブタイトル */
  .p-hero--body-bottom-left .p-hero__subtitle,
  .p-hero--body-top-left .p-hero__subtitle {
    padding: 0.25em 1.2rem 0.25em 2.8rem;
  }
}
/* 白背景を端につけるここから ★スマホ用★*/
/* 右の上下タイトル */
@media screen and (max-width: 767px) {
  .p-hero--body-bottom-right .p-hero__title,
  .p-hero--body-top-right .p-hero__title {
    padding: 0.15em 1.2rem 0.15em 1rem;
  }
  /* 右の上下サブタイトル */
  .p-hero--body-bottom-right .p-hero__subtitle,
  .p-hero--body-top-right .p-hero__subtitle {
    padding: 0.25em 1.3rem 0.25em 1.2rem;
  }
  /* 左の上下タイトル */
  .p-hero--body-bottom-left .p-hero__title,
  .p-hero--body-top-left .p-hero__title {
    padding: 0.15em 1rem 0.15em 1.2rem;
  }
  /* 左の上下サブタイトル */
  .p-hero--body-bottom-left .p-hero__subtitle,
  .p-hero--body-top-left .p-hero__subtitle {
    padding: 0.25em 1.2rem 0.25em 1.3rem;
  }
}

/* =================================
   Body position - 1024px以上
================================= */
@media screen and (min-width: 1024px) {
  /* 左下 */
  .p-hero--body-bottom-left .p-hero__body {
    top: 72%;
    left: 1%;
    right: auto;
    bottom: auto;
    transform: translateY(-50%);
    align-items: flex-start;
  }

  /* 右下 */
  .p-hero--body-bottom-right .p-hero__body {
    top: 72%;
    right: 1%;
    left: auto;
    bottom: auto;
    transform: translateY(-50%);
    align-items: flex-end;
  }

  /* 左上 */
  .p-hero--body-top-left .p-hero__body {
    top: 2%; /* PCで上からの距離 */
    left: 1%;
    right: auto;
    bottom: auto;
    transform: none;
    align-items: flex-start;
  }

  /* 右上 */
  .p-hero--body-top-right .p-hero__body {
    top: 2%;
    right: 1%;
    left: auto;
    bottom: auto;
    transform: none;
    align-items: flex-end;
  }
}

/* =================================
   Text tuning - PC
================================= */

@media screen and (min-width: 1024px) {
  .p-hero__title {
    line-height: 1.4; /* PC用のタイトル行間 */
    letter-spacing: 0.06em;
  }

  .p-hero__subtitle {
    letter-spacing: 0.12em;
  }
}

/* =================================
   Large PC text follow image scale
================================= */

@media screen and (min-width: 1440px) {
  .p-hero__title {
    font-size: calc(3.6rem * 100vw / 1440);
  }

  .p-hero__subtitle {
    font-size: calc(1.25rem * 100vw / 1440);
  }
}

/* ===== 2026-03-14,16 accessibility fix end ===== */

/* ===== 2026-03-14 accessibility fix start ===== */
/*.p-hero {
  position: relative;
  z-index: 1;
}
.p-hero__container {
  width: 100%;
  height: auto;
  aspect-ratio: 1440/450;
}
.p-hero__body {
  width: 88%;
  position: absolute;
  font-size: clamp(1.75rem, 1.125rem + 3.125vw, 3.125rem);
  bottom: 2.5em;
  left: 50%;
  z-index: 2;
  transform: translate(-50%, 0%);
}
.p-hero__title {
  line-height: 1.667;
  font-family: var(--japanese-serif);
  font-size: 28px;
  font-size: clamp(1.75rem, 1.125rem + 3.125vw, 3.125rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  white-space: nowrap;
  margin: 0;
  color: var(--blue-primary);
}
.p-hero__subtitle {
  line-height: 1;
  font-size: 13px;
  font-size: clamp(0.8125rem, 0.6704545455rem + 0.7102272727vw, 1.125rem);
  font-weight: 500;
  letter-spacing: 0.25em;
  white-space: nowrap;
  margin-top: 0.6em;
  color: var(--blue-primary);
}
.p-hero__button {
  width: 100%;
  max-width: 490px;
  position: absolute;
  bottom: -35px;
  left: 50%;
  z-index: 2;
  transform: translateX(-50%);
  font-size: 21px;
  text-align: center;
  padding: 0 15px;
}
.p-hero__image {
  position: relative;
  z-index: 1;
}
.p-hero__image img {
  min-height: 450px;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center left;
     object-position: center left;
}
@media screen and (min-width: 500px) {
  .p-hero__body {
    width: auto;
  }
}
@media screen and (min-width: 1024px) {
  .p-hero__body {
    font-size: 16px;
    left: 65%;
    top: 50%;
    bottom: inherit;
    transform: translate(-50%, -55%);
  }
  .p-hero__title {
    font-size: 60px;
    letter-spacing: 0.1em;
  }
  .p-hero__subtitle {
    font-size: 24px;
    letter-spacing: 0.4em;
    margin-top: 1.2em;
  }
  .p-hero__button {
    padding: 0;
  }
}
*/
/* メインイメージ文章の表示位置：左下 */
/*.p-hero--body-bottom-left .p-hero__body {
  left: 5%;
  right: auto;
  bottom: 2.5em;
  top: auto;
  transform: none;
}
@media screen and (min-width: 1024px) {
  .p-hero--body-bottom-left .p-hero__body {
    left: 5%;
    right: auto;
    top: auto;
    bottom: 2.5em;
    transform: none;
  }
}
*/
/* メインイメージ文章の表示位置：右下 */
/*.p-hero--body-bottom-right .p-hero__body {
  left: auto;
  right: 5%;
  bottom: 2.5em;
  top: auto;
  transform: none;
}
@media screen and (min-width: 1024px) {
  .p-hero--body-bottom-right .p-hero__body {
    left: auto;
    right: 5%;
    top: auto;
    bottom: 2.5em;
    transform: none;
  }
}*/
/* ===== 2026-03-14 accessibility fix end ===== */

.p-introNav {
  padding-top: 70px;
}
.p-introNav__body {
  max-width: 500px;
  margin: 0 auto;
}
.p-introNav__list {
  display: flex;
  flex-direction: column;
  margin: 0;
}
.p-introNav__item {
  width: 100%;
}
.p-introNav__item + * {
  margin-top: 20px;
}
@media screen and (min-width: 768px) {
  .p-introNav__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .p-introNav {
    padding-top: 90px;
  }
  .p-introNav__body {
    max-width: none;
  }
  .p-introNav__list {
    flex-direction: row;
    margin: 0 -10px;
  }
  .p-introNav__item {
    width: calc(25% - 20px);
    margin: 0 10px;
  }
}

.p-news {
  margin-top: 60px;
}
.p-news__heading {
  display: block;
  line-height: 0.8;
  font-size: 24px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.15em;
  text-indent: 0.15em;
  margin: 0 auto;
  color: var(--blue-primary);
}
.p-news__body {
  max-width: 500px;
  margin: 40px auto 0;
}
.p-news__list {
  border-top: 1px dotted var(--blue-primary);
}
.p-news__item {
  border-bottom: 1px dotted var(--blue-primary);
}
.p-news__item > a {
  color: var(--black);
  position: relative;
  display: inline-flex;
  flex-direction: column;
  padding: 1em 0;
  transition: all 0.35s ease;
}
.p-news__item > a:hover {
  color: #808080;
}
.p-news__item > a:hover .p-news__title {
  text-decoration: underline;
}
.p-news__meta {
  display: flex;
  align-items: center;
}
.p-news__meta > * + * {
  margin-left: 1em;
}
.p-news__date {
  display: block;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--blue-primary);
}
.p-news__category {
  display: block;
  line-height: 1;
  font-size: 14px;
}
.p-news__title {
  line-height: 1.4;
  max-height: 2.8em;
  overflow: hidden;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-align: left;
  margin: 0.2em 0 0 0;
  transition: all 0.35s ease;
}
.p-news__button {
  width: 100%;
  margin: 60px auto 0;
}
@media screen and (min-width: 768px) {
  .p-news__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .p-news {
    margin-top: 80px;
  }
  .p-news__body {
    max-width: none;
    margin: 40px 0 0;
  }
  .p-news__heading {
    font-size: 30px;
    letter-spacing: 0.18em;
    text-indent: 0.18em;
  }
  .p-news__item > a {
    flex-direction: row;
    align-items: center;
    padding: 0.95em 1em;
  }
  .p-news__title {
    text-align: justify;
    margin: 0.2em 0 0 1em;
  }
  .p-news__button {
    max-width: 490px;
    margin: 40px auto 0;
  }
}

/* フロント一覧共通：ページング（お知らせ・相談・専門研修・トピックス・求人検索など） */
.p-news__pagination,
.p-tmp3__pagination,
.p-topics__pagination,
.c-pagination {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  text-align: center;
}
.p-news__pagination .p-news-pagination-list,
.p-news__pagination nav ul.pagination,
.p-tmp3__pagination .p-news-pagination-list,
.p-tmp3__pagination nav ul.pagination,
.p-topics__pagination .p-news-pagination-list,
.p-topics__pagination nav ul.pagination,
.c-pagination .p-news-pagination-list,
.c-pagination nav ul.pagination {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.p-news__pagination nav,
.p-tmp3__pagination nav,
.p-topics__pagination nav,
.c-pagination nav {
  display: block;
}
.p-news__pagination .pagination li,
.p-tmp3__pagination .pagination li,
.p-topics__pagination .pagination li,
.c-pagination .pagination li {
  display: block !important;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
}
.p-news__pagination .pagination a,
.p-news__pagination .pagination span,
.p-tmp3__pagination .pagination a,
.p-tmp3__pagination .pagination span,
.p-topics__pagination .pagination a,
.p-topics__pagination .pagination span,
.c-pagination .pagination a,
.c-pagination .pagination span {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.05em;
  text-decoration: none !important;
  color: var(--blue-primary);
  border: 2px solid var(--blue-primary);
  border-radius: 6px;
  background-color: var(--white);
  transition: all 0.35s ease;
  box-sizing: border-box;
}
.p-news__pagination .pagination a:hover,
.p-tmp3__pagination .pagination a:hover,
.p-topics__pagination .pagination a:hover,
.c-pagination .pagination a:hover {
  border-color: var(--orange-primary);
  background-color: var(--orange-primary);
  color: var(--white);
}
.p-news__pagination .pagination li.active span,
.p-tmp3__pagination .pagination li.active span,
.p-topics__pagination .pagination li.active span,
.c-pagination .pagination li.active span {
  border-color: var(--blue-primary);
  background-color: var(--blue-primary);
  color: var(--white);
  font-weight: 700;
  cursor: default;
}
.p-news__pagination .pagination li.disabled span,
.p-tmp3__pagination .pagination li.disabled span,
.p-topics__pagination .pagination li.disabled span,
.c-pagination .pagination li.disabled span {
  color: var(--gray50);
  border-color: var(--gray70);
  background-color: var(--gray90);
  cursor: not-allowed;
}
@media screen and (min-width: 1024px) {
  .p-news__pagination,
  .p-tmp3__pagination,
  .p-topics__pagination,
  .c-pagination {
    margin-top: 3rem;
    padding-top: 2rem;
  }
  .p-news__pagination .p-news-pagination-list,
  .p-news__pagination nav ul.pagination,
  .p-tmp3__pagination .p-news-pagination-list,
  .p-tmp3__pagination nav ul.pagination,
  .p-topics__pagination .p-news-pagination-list,
  .p-topics__pagination nav ul.pagination,
  .c-pagination .p-news-pagination-list,
  .c-pagination nav ul.pagination {
    gap: 10px;
  }
  .p-news__pagination .pagination a,
  .p-news__pagination .pagination span,
  .p-tmp3__pagination .pagination a,
  .p-tmp3__pagination .pagination span,
  .p-topics__pagination .pagination a,
  .p-topics__pagination .pagination span,
  .c-pagination .pagination a,
  .c-pagination .pagination span {
    min-width: 44px;
    height: 44px;
    font-size: 18px;
  }
}

.p-topics {
  padding-top: 60px;
  padding-bottom: 60px;
  margin-top: 60px;
  background-color: #e9f1fa;
  overflow: hidden;
}
.p-topics__heading {
  display: block;
  line-height: 1;
  font-size: 24px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.15em;
  margin: 0 auto;
  color: var(--blue-primary);
}
.p-topics__body {
  max-width: 345px;
  margin: 40px auto 0;
}
.p-topics__list {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  margin: 0;
}
.p-topics__item {
  width: 100%;
}
.p-topics__item + * {
  margin-top: 20px;
}
@media screen and (min-width: 768px) {
  .p-topics__body {
    max-width: 600px;
  }
  .p-topics__list {
    flex-direction: row;
    margin: -25px -25px;
  }
  .p-topics__item {
    width: calc(50% - 50px);
    margin: 25px 25px;
  }
}
@media screen and (min-width: 1024px) {
  .p-topics {
    padding-top: 80px;
    padding-bottom: 80px;
    margin-top: 80px;
  }
  .p-topics__heading {
    font-size: 30px;
  }
  .p-topics__body {
    max-width: none;
    margin: 40px 0 0;
  }
  .p-topics__list {
    margin: -25px -40px;
  }
  .p-topics__item {
    width: calc(33.3333% - 80px);
    margin: 25px 40px;
  }
}

.p-banner {
  padding-top: 60px;
  background-color: var(--white);
}
.p-banner__listButtons {
  max-width: 320px;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  margin: 0 auto;
}
.p-banner__itemButtons {
  width: 100%;
}
.p-banner__itemButtons + * {
  margin-top: 20px;
}
.p-banner__listImages {
  max-width: 320px;
  display: none;
  flex-wrap: wrap;
  flex-direction: column;
  margin: 40px auto 0;
}
.p-banner__itemImages {
  width: 100%;
}

/* ===== 2026-03-14 accessibility fix start ===== */
/*.p-banner__itemImages + * {
  margin-top: 20px;
}*/
/* ===== 2026-03-14 accessibility fix end ===== */

@media screen and (min-width: 1024px) {
  .p-banner {
    padding-top: 80px;
  }
  .p-banner__listButtons {
    max-width: none;
    flex-direction: row;
    margin: -10px -10px;
  }
  .p-banner__itemButtons {
    width: calc(33.3333% - 20px);
    margin: 10px 10px;
  }
  .p-banner__listImages {
    max-width: 900px;
    display: flex;
    flex-direction: row;
    margin: 60px auto -10px;
  }
  .p-banner__itemImages {
    width: calc(33.3333% - 20px);
    margin: 10px 10px;
  }
}

.p-sns {
  display: none;
  padding-top: 60px;
  padding-bottom: 60px;
  margin-top: 60px;
  background-color: #e9f1fa;
}
.p-sns__heading {
  display: block;
  line-height: 1;
  font-size: 30px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.15em;
  margin: 0 auto;
  color: var(--blue-primary);
}
.p-sns__body {
  margin-top: 40px;
}
.p-sns__apiFb {
  max-width: -webkit-fit-content;
  max-width: -moz-fit-content;
  max-width: fit-content;
  margin: 0 auto;
  border-radius: 15px;
  box-shadow: 0 6px 6px 0px rgba(0, 0, 0, 0.2);
}
.p-sns__links {
  max-width: -webkit-fit-content;
  max-width: -moz-fit-content;
  max-width: fit-content;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 60px auto 0;
}
.p-sns__linkTitle {
  display: inline-block;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  margin-right: 2em;
  color: var(--black);
}
@media screen and (min-width: 1024px) {
  .p-sns {
    display: block;
    padding-top: 80px;
    margin-top: 80px;
  }
}

.p-indexNav {
  padding-top: 70px;
}
.p-indexNav__heading {
  display: block;
  line-height: 1;
  font-size: 24px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.15em;
  margin: 0 auto 40px;
  color: var(--blue-primary);
}
.p-indexNav__body {
  max-width: 500px;
  margin: 0 auto;
}
.p-indexNav__list {
  display: flex;
  flex-direction: column;
  margin: 0;
}
.p-indexNav__item {
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}
.p-indexNav__item + * {
  margin-top: 20px;
}
@media screen and (min-width: 768px) {
  .p-indexNav__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .p-indexNav {
    padding-top: 90px;
  }
  .p-indexNav__heading {
    font-size: 30px;
    letter-spacing: 0.18em;
    text-indent: 0.18em;
  }
  .p-indexNav__body {
    max-width: none;
  }
  .p-indexNav__list {
    flex-direction: row;
    flex-wrap: wrap;
    margin: -10px -10px;
  }
  .p-indexNav__item {
    width: calc(33.3333% - 20px);
    max-width: none;
    margin: 10px 10px;
  }
}

.p-programNav {
  padding-top: 60px;
}
.p-programNav__header {
  max-width: 500px;
  margin: 0 auto 40px;
}
.p-programNav__heading {
  display: block;
  line-height: 1;
  font-size: 24px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  margin: 0 auto;
  color: var(--blue-primary);
}
.p-programNav__body {
  max-width: 500px;
  margin: 0 auto;
}
.p-programNav__list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  margin: -7.5px -7.5px;
}
.p-programNav__item {
  width: calc(50% - 15px);
  margin: 7.5px 7.5px;
}
@media screen and (min-width: 768px) {
  .p-programNav__header,
  .p-programNav__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .p-programNav {
    padding-top: 80px;
  }
  .p-programNav__header {
    max-width: none;
  }
  .p-programNav__heading {
    font-size: 30px;
    letter-spacing: 0.12em;
    text-indent: 0.12em;
  }
  .p-programNav__body {
    max-width: none;
  }
  .p-programNav__list {
    margin: -10px -10px;
  }
  .p-programNav__item {
    width: calc(20% - 20px);
    margin: 10px 10px;
  }
}

.p-supportNav {
  padding-top: 48px;
}
.p-supportNav__header {
  max-width: 500px;
  margin: 0 auto 35px;
}
.p-supportNav__lead {
  display: block;
  line-height: 2;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.06em;
  text-indent: 0.06em;
  margin: 0 auto;
  color: var(--black);
}
.p-supportNav__body {
  max-width: 500px;
  margin: 0 auto;
}
.p-supportNav__list {
  display: flex;
  flex-direction: column;
  margin: 0;
}
.p-supportNav__item {
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}
.p-supportNav__item + * {
  margin-top: 20px;
}
.p-supportNav__description {
  font-size: 16px;
  line-height: 2;
  text-align: center;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  margin-top: 0.8em;
  color: var(--black);
}
@media screen and (min-width: 768px) {
  .p-supportNav__header,
  .p-supportNav__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .p-supportNav {
    padding-top: 68px;
  }
  .p-supportNav__header,
  .p-supportNav__body {
    max-width: none;
  }
  .p-supportNav__list {
    flex-direction: row;
    flex-wrap: wrap;
    margin: -15px -10px;
  }
  .p-supportNav__item {
    width: calc(33.3333% - 20px);
    max-width: none;
    margin: 15px 10px;
  }
}

.p-support {
  padding-top: 60px;
}
.p-support__header {
  max-width: 500px;
  margin: 0 auto 40px;
}
.p-support__heading {
  display: block;
  line-height: 0.8;
  font-size: 24px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.15em;
  text-indent: 0.15em;
  margin: 0 auto;
  color: var(--blue-primary);
}
.p-support__subheading {
  display: block;
  line-height: 1.5;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.06em;
  text-indent: 0.06em;
  margin: 30px auto 0;
  color: var(--black);
}
.p-support__body {
  max-width: 500px;
  margin: 0 auto;
}
.p-support__list {
  display: flex;
  flex-direction: column;
  margin: 0;
}
.p-support__item {
  width: 100%;
}
.p-support__item + * {
  margin-top: 60px;
}
.p-support__thumbnail {
  max-width: 140px;
  text-align: center;
  margin: 0 auto;
}
.p-support__content {
  margin-top: 20px;
}
.p-support__title {
  display: block;
  line-height: 1;
  font-size: 21px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  color: var(--blue-primary);
}
.p-support__description {
  font-size: 16px;
  line-height: 2;
  text-align: center;
  white-space: nowrap;
  letter-spacing: 0;
  margin-top: 0.8em;
  color: var(--black);
}
.p-support__button {
  max-width: 490px;
  margin: 55px auto 0;
}
@media screen and (min-width: 768px) {
  .p-support__header,
  .p-support__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .p-support {
    padding-top: 80px;
  }
  .p-support__header {
    max-width: none;
  }
  .p-support__heading {
    font-size: 30px;
    letter-spacing: 0.18em;
    text-indent: 0.18em;
  }
  .p-support__subheading {
    letter-spacing: 0.12em;
    text-indent: 0.12em;
    margin: 40px auto 0;
  }
  .p-support__body {
    max-width: none;
  }
  .p-support__list {
    flex-direction: row;
    flex-wrap: wrap;
    margin: -20px -10px;
  }
  .p-support__item {
    width: calc(33.3333% - 20px);
    margin: 20px 10px;
  }
}

.p-information {
  padding-top: 60px;
}
.p-information__body {
  max-width: 500px;
  margin: 0 auto;
}
.p-information__list {
  display: flex;
  flex-direction: column;
}
.p-information__item + .p-information__item {
  margin-top: 38px;
}
.p-information__title {
  width: 100%;
  display: inline-block;
  vertical-align: middle;
  line-height: 1.5;
  font-size: 22px;
  font-weight: 400;
  letter-spacing: 0.1em;
  padding-left: 5px;
  padding-bottom: 0.4em;
  color: var(--blue-primary);
  border-bottom: 2px solid var(--blue-primary);
  transition: all 0.35s ease;
}
.p-information__title:hover {
  opacity: 0.5;
}
.p-information__title::after {
  content: "";
  display: inline-block;
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 6px 0 6px 10px;
  border-color: transparent transparent transparent #2375cd;
  transform: rotate(0deg) translateY(-2px);
  margin-left: 10px;
}
.p-information__description {
  line-height: 2;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  padding-left: 5px;
  margin-top: 1.1em;
  color: var(--black);
}
@media screen and (min-width: 768px) {
  .p-information__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .p-information {
    padding-top: 80px;
  }
  .p-information__body {
    max-width: none;
  }
  .p-information__item + .p-information__item {
    margin-top: 45px;
  }
  .p-information__title {
    line-height: 1;
    font-size: 26px;
    padding-left: 15px;
  }
  .p-information__description {
    padding-left: 15px;
  }
}

.p-interview {
  padding-top: 55px;
}
.p-interview__header {
  max-width: 500px;
  margin: 0 auto 35px;
}
.p-interview__heading {
  display: block;
  line-height: 1.5;
  font-size: 24px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.15em;
  text-indent: 0.15em;
  margin: 0 auto;
  color: var(--blue-primary);
}
.p-interview__heading br {
  display: block;
}
.p-interview__body {
  max-width: 500px;
  margin: 0 auto;
}
.p-interview__list {
  display: flex;
  flex-direction: column;
  margin: 0;
}
.p-interview__item {
  width: 100%;
}
.p-interview__item + * {
  margin-top: 60px;
}
.p-interview__thumbnail {
  max-width: 140px;
  text-align: center;
  margin: 0 auto;
}
.p-interview__content {
  margin-top: 20px;
}
.p-interview__title {
  display: block;
  line-height: 1;
  font-size: 21px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  color: var(--blue-primary);
}
.p-interview__description {
  font-size: 16px;
  line-height: 2;
  text-align: center;
  white-space: nowrap;
  letter-spacing: 0.06em;
  text-indent: 0.06em;
  margin-top: 0.8em;
  color: var(--black);
}
.p-interview__button {
  max-width: 360px;
  margin: 35px auto 0;
}
@media screen and (min-width: 768px) {
  .p-interview__header,
  .p-interview__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .p-interview {
    padding-top: 80px;
  }
  .p-interview__header {
    max-width: none;
    margin: 0 auto 70px;
  }
  .p-interview__heading {
    line-height: 0.8;
    font-size: 30px;
    letter-spacing: 0.18em;
    text-indent: 0.18em;
  }
  .p-interview__heading br {
    display: none;
  }
  .p-interview__body {
    max-width: 870px;
  }
  .p-interview__list {
    flex-direction: row;
    justify-content: center;
    margin: 0 -75px;
  }
  .p-interview__item {
    width: calc(50% - 150px);
    margin: 0 75px;
  }
}

.p-forMedical {
  padding-top: 60px;
}
.p-forMedical__header {
  max-width: 500px;
  margin: 0 auto 40px;
}
.p-forMedical__heading {
  display: block;
  line-height: 0.8;
  font-size: 24px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.15em;
  text-indent: 0.15em;
  margin: 0 auto;
  color: var(--green-primary);
}
.p-forMedical__body {
  max-width: 500px;
  margin: 0 auto;
}
.p-forMedical__list {
  display: flex;
  flex-direction: column;
  margin: 0;
}
.p-forMedical__item {
  width: 100%;
}
.p-forMedical__item + * {
  margin-top: 60px;
}
.p-forMedical__thumbnail {
  max-width: 140px;
  text-align: center;
  margin: 0 auto;
}
.p-forMedical__content {
  margin-top: 20px;
}
.p-forMedical__title {
  display: block;
  line-height: 1;
  font-size: 19px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  color: var(--green-primary);
}
.p-forMedical__description {
  font-size: 16px;
  line-height: 2;
  text-align: center;
  white-space: nowrap;
  letter-spacing: 0.06em;
  text-indent: 0.06em;
  margin-top: 0.8em;
  color: var(--black);
}
.p-forMedical__button {
  max-width: 360px;
  margin: 35px auto 0;
}
@media screen and (min-width: 768px) {
  .p-forMedical__header,
  .p-forMedical__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .p-forMedical {
    padding-top: 80px;
  }
  .p-forMedical__header {
    max-width: none;
    margin: 0 auto 70px;
  }
  .p-forMedical__heading {
    font-size: 30px;
    letter-spacing: 0.18em;
    text-indent: 0.18em;
  }
  .p-forMedical__body {
    max-width: 920px;
  }
  .p-forMedical__list {
    flex-direction: row;
    justify-content: center;
    margin: 0 -60px;
  }
  .p-forMedical__item {
    width: calc(50% - 120px);
    margin: 0 60px;
  }
}

.p-contact {
  padding-top: 48px;
}
.p-contact__header {
  max-width: 500px;
  margin: 0 auto 48px;
}
.p-contact__lead {
  display: block;
  line-height: 2;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-align: justify;
  margin: 0;
  color: var(--black);
}
.p-contact__lead span,
.p-contact__lead strong {
  display: inline;
  font-weight: 500;
  color: var(--blue-primary);
}
.p-contact__body {
  max-width: 500px;
  margin: 0 auto;
}
.p-contact__agreement {
  width: 100%;
  padding: 8px;
  border: 1px solid #333;
  border-radius: 5px;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.06em;
  padding: 1em 1em;
  color: var(--black);
  background-color: #f4f8fc;
}
.p-contact__agreement > p {
  position: relative;
  padding: 0 0 0 1em;
  line-height: 2;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-align: justify;
}
.p-contact__agreement > p::before {
  content: "※";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--black);
}
.p-contact__agreement > p a {
  display: inline;
  text-decoration: underline;
  color: var(--blue-primary);
}
.p-contact__button {
  max-width: 490px;
  text-align: center;
  margin: 60px auto 0;
}
@media screen and (min-width: 768px) {
  .p-contact__header,
  .p-contact__body {
    max-width: 600px;
  }
}
@media screen and (min-width: 1024px) {
  .p-contact {
    padding-top: 68px;
  }
  .p-contact__header {
    max-width: none;
    margin: 0 auto 68px;
  }
  .p-contact__lead {
    text-align: left;
  }
  .p-contact__heading {
    font-size: 30px;
    letter-spacing: 0.18em;
    text-indent: 0.18em;
  }
  .p-contact__body {
    max-width: none;
  }
  .p-contact__button {
    margin: 50px auto 0;
  }
}

.u-container {
  width: 100%;
  max-width: 1030px;
  padding-left: 15px;
  padding-right: 15px;
  margin-left: auto;
  margin-right: auto;
}
.u-container--wide {
  max-width: 1210px;
}
.u-container--narrow {
  max-width: 800px;
}
.u-hr {
  width: 100%;
  display: block;
  border-top: 2px solid var(--blue-primary);
  margin: 60px 0;
}
@media screen and (min-width: 1024px) {
  .u-hr {
    margin: 80px 0;
  }
}

.u-mg-sp\[20\] {
  margin-top: 20px;
}
.u-mg-sp\[40\] {
  margin-top: 40px;
}
.u-mg-sp\[60\] {
  margin-top: 60px;
}
.u-mg-sp\[80\] {
  margin-top: 80px;
}
.u-mg-sp\[100\] {
  margin-top: 100px;
}
@media screen and (min-width: 1024px) {
  .u-mg-sp\[20\] {
    margin-top: 0;
  }
  .u-mg-sp\[40\] {
    margin-top: 0;
  }
  .u-mg-sp\[60\] {
    margin-top: 0;
  }
  .u-mg-sp\[80\] {
    margin-top: 0;
  }
  .u-mg-sp\[100\] {
    margin-top: 0;
  }
  .u-mg-pc\[20\] {
    margin-top: 20px;
  }
  .u-mg-pc\[40\] {
    margin-top: 40px;
  }
  .u-mg-pc\[60\] {
    margin-top: 60px;
  }
  .u-mg-pc\[80\] {
    margin-top: 80px;
  }
  .u-mg-pc\[100\] {
    margin-top: 100px;
  }
}

.u-pg-sp\[20\] {
  padding-top: 20px;
}
.u-pg-sp\[40\] {
  padding-top: 40px;
}
.u-pg-sp\[60\] {
  padding-top: 60px;
}
.u-pg-sp\[80\] {
  padding-top: 80px;
}
.u-pg-sp\[100\] {
  padding-top: 100px;
}
@media screen and (min-width: 1024px) {
  .u-pg-pc\[20\] {
    padding-top: 20px;
  }
  .u-pg-pc\[40\] {
    padding-top: 40px;
  }
  .u-pg-pc\[60\] {
    padding-top: 60px;
  }
  .u-pg-pc\[80\] {
    padding-top: 80px;
  }
  .u-pg-pc\[100\] {
    padding-top: 100px;
  }
}

/* プレビューコンテナ内のpタグにデフォルトスタイルを適用 */
.u-previewContainer p {
  margin-top: 1em;
  margin-bottom: 1em;
}
.u-previewContainer p:first-child {
  margin-top: 0;
}
.u-previewContainer p:last-child {
  margin-bottom: 0;
}

/* 求人検索結果一覧用スタイル */
.c-jobList {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-jobList__item {
  background-color: var(--white);
  border: 1px solid var(--gray70);
  border-radius: 8px;
  padding: 1.5rem;
  transition: all 0.3s ease;
}
.c-jobList__item:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  border-color: var(--blue-primary);
}
.c-jobList__image {
  margin-bottom: 1rem;
  border-radius: 6px;
  overflow: hidden;
  background-color: #f5f5f5;
}
.c-jobList__image img {
  width: 100%;
  height: auto;
  max-height: 200px;
  object-fit: cover;
  display: block;
}
.c-jobList__header {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid #f0f7ff;
}
.c-jobList__title {
  font-size: 20px;
  font-weight: 600;
  color: var(--blue-primary);
  margin: 0 0 0.75rem 0;
  line-height: 1.4;
}
.c-jobList__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.c-jobList__details {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
}
.c-jobList__details dt {
  font-size: 14px;
  font-weight: 600;
  color: var(--gray40);
  margin-bottom: 0.25rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px dotted var(--gray70);
  letter-spacing: 0.05em;
}
.c-jobList__details dd {
  font-size: 16px;
  font-weight: 400;
  color: var(--black);
  margin: 0 0 0.75rem 0;
  padding-left: 0;
  line-height: 1.6;
  word-break: break-word;
}
.c-jobList__details dd:last-child {
  margin-bottom: 0;
}
.c-jobList__actions {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--gray70);
  text-align: center;
}
.c-jobList__actions .c-button {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  text-decoration: none;
  width: auto;
  min-width: 150px;
}
@media screen and (min-width: 768px) {
  .c-jobList__details {
    grid-template-columns: 150px 1fr;
    gap: 1rem;
  }
  .c-jobList__details dt {
    padding-right: 1rem;
    border-bottom: none;
    border-right: 1px solid var(--gray70);
    margin-bottom: 0;
    padding-bottom: 0.5rem;
  }
  .c-jobList__details dd {
    margin-bottom: 0.5rem;
    padding-left: 1rem;
  }
}
@media screen and (max-width: 767px) {
  .c-jobList__item {
    padding: 1rem;
  }
  .c-jobList__title {
    font-size: 18px;
  }
  .c-jobList__details dt {
    font-size: 13px;
  }
  .c-jobList__details dd {
    font-size: 15px;
  }
}

/* バッジスタイル */
.c-badge {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  border-radius: 4px;
  letter-spacing: 0.05em;
}
.c-badge--info {
  color: var(--white);
  background-color: var(--blue-primary);
}
.c-badge--secondary {
  color: var(--white);
  background-color: #6c757d;
}
.c-badge--success {
  color: var(--white);
  background-color: #28a745;
}

/* ===== 2026-03-12 accessibility fix start ===== */
/* 全リンクにカーソル: pointerを適用 */
/*a[href],
a[href]:hover,
a[href]:visited,
a[href]:focus,
a[href]:active,
.c-breadcrumb__link,
.c-breadcrumb__link:hover,
.c-breadcrumb__link:visited,
.c-jobList__item a,
.c-jobList__item a:hover,
.c-confirmDisplay__list a,
.c-confirmDisplay__list a:hover,
.p-jobSearchDetail__actions a,
.p-jobSearchDetail__actions a:hover {
  cursor: pointer !important;
}*/
/* ===== 2026-03-12 accessibility fix end ===== */

/* 求人詳細ページ用スタイル */
.p-jobSearchDetail {
  padding: var(--space-md) 0;
}
.p-jobSearchDetail__container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 1rem;
}
.p-jobSearchDetail__body {
  background-color: var(--white);
  padding: var(--space-lg);
  border-radius: 8px;
}
.p-jobSearchDetail__image {
  margin-top: 1rem;
  border-radius: 6px;
  overflow: hidden;
  background-color: #f5f5f5;
  text-align: center;
}
.p-jobSearchDetail__image img {
  width: 100%;
  max-width: 600px;
  height: auto;
  max-height: 400px;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}
.p-jobSearchDetail__actions {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--gray70);
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
}
.p-jobSearchDetail__actions .c-button {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  text-decoration: none;
  width: auto;
  min-width: 200px;
}
@media screen and (min-width: 768px) {
  .p-jobSearchDetail__actions {
    flex-direction: row;
    justify-content: center;
  }
}

/* 求職登録：旧サイト求人登録フォームに準じた個人情報同意ブロック */
.c-form__section--consentLegacy {
  padding: 1.25rem 1rem;
  background-color: #f5f5f5;
  background-image: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(0, 0, 0, 0.02) 2px,
    rgba(0, 0, 0, 0.02) 4px
  );
  border: 1px solid var(--gray60);
  border-radius: 4px;
}
.c-form__consentPrivacyLink {
  margin: 0 0 0.75rem;
  font-size: 16px;
  line-height: 1.6;
}
.c-form__consentPrivacyLink a {
  color: #0066cc;
  text-decoration: underline;
}
.c-form__consentPrivacyLink a:hover {
  text-decoration: underline;
  opacity: 0.85;
}
.c-form__consentBox--yellow {
  background-color: #fff9c4;
  border: 1px solid #333;
  padding: 1rem 1.15rem;
  border-radius: 2px;
}
.c-form__consentBox--yellow .c-form__group {
  margin-bottom: 0;
}
.c-form__consentPolicyLinks {
  margin: 0.85rem 0 0;
  font-size: 14px;
  line-height: 1.6;
}
.c-form__consentPolicyLinks a {
  color: #0066cc;
  text-decoration: underline;
}
.c-form__consentPolicyLinks a:hover {
  opacity: 0.85;
}
