@charset "UTF-8";

/*==========================================
 PC  1920px-1024px
 Tab 1024px-768px
 SP  768px-
===========================================*/

/*-----------
共通
-----------*/
:root {
  /* z-index */
  --z-index-minus: -1;
  --z-index-default: 1;
  --z-index-nav: 10;
  --z-index-hamburger: 15;
  --z-index-header: 50;
  --z-index-modal: 100;
  --z-index-max: 999;

  /* main color */
  --color-main: #254CA4;
  --color-main-sub: #E8F0FF;
  --color-main-sub-2: #BAD1FF;
  --color-accent-m-gray: #C9CACA;
  --color-accent-lt-gray: #F5F5F5;
  --color-accent-white: #fff;
  --color-black: #333;

  /* sub color */
  --color-moritan-main: #7F64B2;
  --color-moritan-main-sub: #F0EDFF;
  --color-miyatan-main: #0085C9;
  --color-miyatan-main-sub: #DDF0F6;
  --color-beige-sub: #FFF7E6; /*追加*/

  /* other color */
  --color-other-lt-beige: #faf6ed; /*追加*/
  --color-other-lt-yellow: #fefbeb; /*追加*/
  --color-other-lt-pink: #f9f3f0; /*追加*/

  /* transition */
  --transition-default: 0.5s;

  /* width */
  --contents-width: min(100%, 1040px);

  /* font */
  --base-font-family: "Noto Sans JP", sans-serif;
}

/* font */
/* noto-sans-jp-regular - japanese */
@font-face {
  font-display: swap;
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/noto-sans-jp-v55-japanese-regular.woff2') format('woff2');
}

/* noto-sans-jp-700 - japanese */
@font-face {
  font-display: swap;
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/noto-sans-jp-v55-japanese-700.woff2') format('woff2');
}

/* keyframes フェードイン */
@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/*-----------
共通（color,テキスト,ボタン,inner,共通boxなど）
-----------*/
html {
  scroll-behavior: smooth;
}

body {
  position: relative;
  width: 100%;
  margin: 0;
  color: var(--color-black);
  font-family: var(--base-font-family);
  font-size: clamp(0.875rem, 0.815rem + 0.25vw, 1rem);
  /* 14-16px 幅390〜1200px */
  font-weight: 400;
  font-style: normal;
  line-height: 1.8;
  letter-spacing: 0.01em;
  word-break: normal;
  overflow-wrap: anywhere;
  line-break: strict;
  -webkit-text-size-adjust: 100%;
  -webkit-animation: fadeIn 1.5s ease 0s 1 normal;
  animation: fadeIn 1.5s ease 0s 1 normal;
}

/* ブロック */
main {
  position: relative;
  overflow: clip;
}

.wrapper {
  width: var(--contents-width);
  margin-inline: auto;
  padding-inline: 20px;
}

.wrapper-contents {
  margin-block-end: 2.5rem;
  /* 40px */
}

.pc-on {
  display: none;
}

.tab-on,
.sp-on {
  display: block;
}

.group {
  margin: 2.5rem 0;
}

.group-min {
  margin: 1.5rem 0;
}

.space-left {
  padding-left: 1em;
}

.space-right {
  padding-right: 1em;
}

.block {
  display: block;
}

.inline-block {
  display: inline-block;
}

/* カラム */
[class^=column] {
  margin-bottom: 1em;
}

[class^=column] a {
  display: block;
}

.column2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.column3 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.column4 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.column2pc {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}

.column3pc {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}

.column4pc {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}

.flexcolumn2 {
  display: flex;
  justify-content: center;
  gap: 20px;
}

.textImageBoxMin {
  display: grid;
  grid-template-columns: 20% minmax(0, 1fr);
  gap: 20px;
}

.textImageBoxMin.voice {
  align-items: center;
  padding-block-end: 1rem;
  margin-block-end: 1rem;
  border-bottom: 1px solid var(--color-accent-m-gray);
}

.textImageBox {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}

.imageTextBox {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}

.mainColumnBox {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}

.align-center {
  align-items: center;
}

.align-end {
  align-items: end;
}

/* サイズ */
.w10 {
  width: 10%;
}

.w15 {
  width: 15%;
}

.w18 {
  width: 18%;
}

.w20 {
  width: 20%;
}

.w25 {
  width: 25%;
}

.w30 {
  width: 30%;
}

.w33 {
  width: 33.3%;
}

.w35 {
  width: 35%;
}

.w40 {
  width: 40%;
}

.w45 {
  width: 45%;
}

.w50 {
  width: 50%;
}

.w500pc {
  width: min(80%, 500px);
}

/* マージン */
.mb0 {
  margin-block-end: 0;
}

.mbhf1 {
  margin-block-end: 0.5rem;
}

.mb1 {
  margin-block-end: 1rem;
}

.mb2 {
  margin-block-end: 2rem;
}

.mb3 {
  margin-block-end: 3rem;
}

.mb4 {
  margin-block-end: 4rem;
}

.mb5 {
  margin-block-end: 5rem;
}

.mauto {
  margin-inline: auto;
}

/* 見出し・テキスト */
h1,
h2,
h3,
h4,
h5 {
  font-weight: 700;
  line-height: 1.4;
  margin-block-end: 0.75em;
}

h1 {
  color: var(--color-main);
  font-size: clamp(1.75rem, 1.568rem + 0.91vw, 2.25rem);
  /* 28-36px */
}

h2 {
  font-size: clamp(1.375rem, 1.193rem + 0.91vw, 1.875rem);
  /* 22-30px */
}

h3 {
  color: var(--color-main);
  font-size: clamp(1.25rem, 1.159rem + 0.45vw, 1.5rem);
  /* 20-24px */
}

h4 {
  font-size: clamp(1.125rem, 1.08rem + 0.23vw, 1.25rem);
  /* 18-20px */
}

h5 {
  font-size: clamp(1rem, 0.955rem + 0.23vw, 1.125rem);
  /* 16-18px */
}

h6 {
  font-size: clamp(0.875rem, 0.815rem + 0.25vw, 1rem);
  /* 14-16px */
  font-weight: 700;
}

.mainHeading {
  display: grid;
  align-items: center;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 0.625rem;
  color: var(--color-main);
}

.mainHeading::before {
  content: '';
  display: block;
  width: 20px;
  height: 1px;
  background-color: var(--color-main);
}

.contentsHeading {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  /* 10px */
  color: var(--color-black);
  font-size: clamp(1.25rem, 1.159rem + 0.45vw, 1.5rem);
  /* 20-24px */
}

.contentsHeading::before {
  content: '';
  display: block;
  width: 1.5rem;
  aspect-ratio: 25 / 17;
  -webkit-mask-image: url("../images/icon-list.svg");
  mask-image: url("../images/icon-list.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: var(--color-main);
}

.borderHeading {
  padding-block-end: 0.5rem;
  border-bottom: 1px solid var(--color-accent-m-gray);
}

.numberHeading {
  color: var(--color-main);
  font-size: clamp(1.25rem, 1.159rem + 0.45vw, 1.5rem);
  /* 20-24px */
}

.numberHeading span {
  display: inline-block;
  font-size: 135%;
  margin-inline-end: 0.5em;
  border-bottom: 2px solid var(--color-main);
}

main p {
  margin-block-end: 1rem;
}

strong,
.text-strong {
  font-weight: 700;
}

small,
.text-small {
  font-weight: 400;
  font-size: 0.75rem;
}

.text-large {
  display: inline-block;
  font-size: 150%;
  font-weight: 700;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.text-block {
  display: block;
}

.text-bg-lt-blue {
  position: relative;
  background: linear-gradient(90deg, rgb(209, 224, 255) 0%, rgb(209, 224, 255) 100%);
  background-size: 100% 30%;
  background-position: 0 100%;
  background-repeat: no-repeat;
}

.text-bg-blue {
  padding-inline: 0.5rem;
  padding-block: 0.125rem;
  margin-inline-start: 0.5em;
  color: var(--color-accent-white);
  background-color: var(--color-main);
}

.text-first::first-letter {
  font-size: 150%;
}

.color-blue {
  color: var(--color-main);
}

figcaption {
  font-size: clamp(0.75rem, 0.69rem + 0.25vw, 0.875rem);
  /* 12-14px */
}

/* リスト */
main ul {
  margin-block: 1.5rem;
}

main ul li {
  position: relative;
  padding-inline-start: 1.2em;
}

main ul li:not(:last-of-type) {
  margin-block-end: 0.75rem;
}

main ul:not(.note):not(.shareList):not(.contentsIndexList):not(.snsList) li::before {
  content: '';
  display: block;
  position: absolute;
  display: inline-block;
  top: calc(0.5em + 0.1em);
  left: 0;
  width: 0.625em;
  height: 0.625em;
  background-color: var(--color-main);
  border-radius: 50%;
}

_::-webkit-full-page-media,
_:future,
:root main ul:not(.note):not(.shareList):not(.contentsIndexList):not(.snsList) li::before {
  top: calc(0.5em + 0.05em);
}

ul.none {
  margin-block: 0;
}

ul.none li {
  padding-inline-start: 0;
  margin-block-end: 0;
}

ul.none li::before {
  display: none !important;
}

ul.note {
  margin-block: 0;
}

ul.note li::before {
  content: '※';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}

ol {
  margin-block: 1.5rem;
}

ol li {
  position: relative;
  margin-block-end: 0.5rem;
  padding-left: 1.7rem;
}

ol li:before {
  content: counter(my-counter);
  counter-increment: my-counter;
  display: block;
  position: absolute;
  top: 0.6em;
  left: 0;
  line-height: 1rem;
  text-align: center;
  font-size: 0.75rem;
  height: 1.2rem;
  width: 1.2rem;
  border: 1px solid var(--color-black);
  border-radius: 50%;
}

/* 定義リスト */
dl div {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

dl dt {
  padding: 0.5em 0 0;
}

dl dd {
  padding: 0.5em 0;
}

dl dd>ul {
  list-style: disc;
  margin-block: 0;
  margin-inline-start: 1em;
}

/* 表組み */
table td ul {
  margin-block: 0;
}

table td > ol {
  margin-block: 0;
}


/* リンク・ボタン */
* a,
a img,
a::before,
a::after,
button,
button::after {
  -webkit-transition: var(--transition-default);
  transition: var(--transition-default);
}

header a:focus {
  color: var(--color-main);
}

main a {
  text-decoration: underline;
}

main a:focus {
  color: var(--color-main);
}

footer a:focus {
  color: var(--color-main);
}

a[href^=https]::after,
a[href^=http]::after,
a[href^="//"]::after {
  content: "";
  display: inline-block;
  width: 0.875rem;
  height: 0.875rem;
  margin-inline-start: 0.675rem;
  vertical-align: middle;
  -webkit-mask-image: url("../images/icon-external.svg");
  mask-image: url("../images/icon-external.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: var(--color-black);
}

a[href^="https://www.iwate-pu.ac.jp/"]::after,
a[href^="http://www.iwate-pu.ac.jp/"]::after,
a[href^="https://test.media-crew.co.jp/web-ipu/"]::after,
a[href^="http://test.media-crew.co.jp/web-ipu/"]::after,
a[href^="https://x.com/"]::after,
a[href^="https://twitter.com/"]::after,
a[href^="https://www.facebook.com/"]::after,
a[href^="https://www.instagram.com/"]::after,
a[href^="https://www.youtube.com/"]::after,
a[href^="https://note.com/"]::after,
a[href^="https://social-plugins.line.me/"]::after {
  display: none;
  margin-inline-start: 0;
}

a.text-link::after {
  content: '';
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  margin-inline-start: 0.5rem;
  vertical-align: middle;
  -webkit-mask-image: url("../images/icon-frame-arrow-right.svg");
  mask-image: url("../images/icon-frame-arrow-right.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: var(--color-main);
  border-radius: 5px;
}

a.text-link:focus::after {
  transform: translateX(3px);
}

/* a[href$=".pdf"]::before,
a[href$=".xls"]::before,
a[href$=".xlsx"]::before,
a[href$=".xlsm"]::before,
a[href$=".doc"]::before,
a[href$=".docx"]::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 20px;
  margin-right: 0.5em;
  vertical-align: middle;
}

a[href$=".pdf"]::before {
  background: url(../images/icon-pdf.svg) no-repeat center/cover;
}

a[href$=".xls"]::before,
a[href$=".xlsx"]::before,
a[href$=".xlsm"]::before {
  background: url(../images/icon-excel.svg) no-repeat center/cover;
}

a[href$=".doc"]::before,
a[href$=".docx"]::before {
  background: url(../images/icon-word.svg) no-repeat center/cover;
} */

/* ボタン */
button {
  font-family: var(--base-font-family);
  font-style: normal;
  background-color: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
}

.buttonBox {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: min(90%, 320px);
  margin-inline: auto;
}

.buttonAlign {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  width: min(90%, 320px);
  margin-inline: auto;
}

.button {
  margin-inline: auto;
  margin-block-end: 1em;
}

.buttonBox .button,
.buttonAlign .button,
.newFeatureItem .button {
  margin-block-end: 0;
}

.buttonBox .button,
.buttonAlign .button,
.buttonBox .button a,
.buttonAlign .button a {
  width: 100%;
}

.button.min {
  width: min(95%, 300px);
}

.button a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
  width: fit-content;
  border-radius: 5px;
  font-weight: 700;
  text-decoration: none;
}

.button a {
  padding-block: 0.75em;
  padding-inline-start: 0.75em;
}

.buttonAlign .button a {
  padding-block: 1em;
  padding-inline-start: 1em;
}

.button a {
  border: 1px solid var(--color-main);
}

.button.blue a {
  color: var(--color-accent-white);
  background-color: var(--color-main);
}

.button.sub-blue a {
  color: var(--color-block);
  background-color: var(--color-main-sub);
  border: none;
}

.button.white a {
  color: var(--color-main);
  background-color: var(--color-accent-white);
}

.button a::after {
  content: "";
  display: block;
  width: 25px;
  height: 30px;
  margin-inline-end: 13px;
  -webkit-mask-image: url("../images/icon-button-arrow-right.svg");
  mask-image: url("../images/icon-button-arrow-right.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.button.blue a::after {
  background-color: var(--color-accent-white);
}

.button.sub-blue a::after,
.button.white a::after {
  background-color: var(--color-main);
}

.buttonInner {
  display: flex;
  align-items: center;
  gap: 8px;
}

.icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 100%;
  aspect-ratio: 1/1;
  padding-inline: 10px;
  padding-block: 10px;
  border-radius: 50%;
  background-color: var(--color-main-sub);
}

.icon::after {
  content: "";
  display: block;
  width: 20px;
  aspect-ratio: 1/1;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: var(--color-main);
}

.icon-doc::after {
  -webkit-mask-image: url("../images/icon-document.svg");
  mask-image: url("../images/icon-document.svg");
}

.icon-book::after {
  -webkit-mask-image: url("../images/icon-book.svg");
  mask-image: url("../images/icon-book.svg");
}

.icon-dl::after {
  -webkit-mask-image: url("../images/icon-dl.svg");
  mask-image: url("../images/icon-dl.svg");
}

/* 画像 */
picture {
  display: block;
}

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

/* 動画埋め込み */
.movie {
  width: min(100%, 560px);
  aspect-ratio: 16 / 9;
}

.movie iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

button.movie-play {
  display: block !important;
  position: relative;
  width: 100%;
  padding-block: 0 !important;
  padding-inline: 0 !important;
  background-color: transparent !important;
  border-radius: 0 !important;
}

button.movie-play::after {
  content: '';
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60px;
  height: 60px;
  -webkit-mask-image: url("../images/icon-play.svg");
  mask-image: url("../images/icon-play.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: var(--color-accent-white);
}

/* noscript */
.noscriptMessage {
  display: block;
  padding: 1.25rem;
  background-color: var(--color-accent-lt-gray);
}

.noscriptMessage a {
  text-decoration: underline;
}

@media print,
screen and (min-width: 768px) {

  /* ブロック */
  .tab-on {
    display: none;
  }

  /* カラム */
  .column3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

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

  .column3pc {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

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

  .textImageBox {
    grid-template-columns: minmax(0, 1fr) 40%;
  }

  .imageTextBox {
    grid-template-columns: 40% minmax(0, 1fr);
  }

  .mainColumnBox {
    grid-template-columns: 38% minmax(0, 1fr);
    gap: 30px;
  }

  /* ボタン */
  .buttonBox {
    flex-direction: row;
    gap: 1.25rem;
    width: 100%;
  }
}

@media print,screen and (min-width: 1024px) {

  /* ブロック */
  .wrapper-contents {
    margin-block-end: 6.25rem;
    /* 100px */
  }

  .pc-on {
    display: block;
  }

  .sp-on {
    display: none;
  }

  .group {
    margin: 5rem 0;
  }

  .group-min {
    margin: 3rem 0;
  }

  /* カラム */
  .column2 {
    gap: 60px;
  }

  .column3 {
    gap: 60px;
  }

  .column4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 60px;
  }

  .column2pc {
    gap: 40px 60px;
  }

  .column3pc {
    gap: 40px;
  }

  .column4pc {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
  }

  .textImageBox {
    gap: 40px;
  }

  .imageTextBox {
    gap: 40px;
  }

  .mainColumnBox {
    gap: 80px;
  }

  /* 見出し・テキスト */
  .mainHeading {
    grid-template-columns: 30px minmax(0, 1fr);
  }
  
  .mainHeading::before {
    width: 30px;
  }

  .text-lead {
    text-align: center;
  }

  /* 定義リスト */
  dl div {
    grid-template-columns: minmax(0, 15em) minmax(0, 1fr);
  }

  dl.min div {
    grid-template-columns: minmax(0, 10em) minmax(0, 1fr);
  }

  dl.long div {
    grid-template-columns: minmax(0, 22em) minmax(0, 1fr) !important;
    align-items: center;
  }

  dl dt,
  dl dd {
    padding: 1em;
  }

  /* リンク・ボタン */
  .buttonInner {
    gap: 1rem;
  }

  .icon {
    width: 40px;
  }

  .buttonInner {
    gap: 1em;
  }
}

@media (any-hover: hover) {

  a:hover img {
    opacity: 0.7;
  }

  main a:hover {
    color: var(--color-main);
  }

  .text-link:hover::after {
    transform: translateX(3px);
  }

  .button.blue a:hover {
    color: var(--color-main);
    background-color: var(--color-accent-white);
  }

  .button.sub-blue a:hover,
  .button.white a:hover {
    color: var(--color-accent-white);
    background-color: var(--color-main);
  }

  .button a:hover::after {
    transform: translateX(2px);
  }

  .button.blue a:hover::after {
    background-color: var(--color-main);
  }

  .button.sub-blue a:hover::after,
  .button.white a:hover::after {
    background-color: var(--color-accent-white);
  }

  button.movie-play:hover {
    transform: translateY(0) !important;
    opacity: 0.7;
  }
}


/*-----------
header
-----------*/
#skipLink a {
  position: absolute;
  z-index: var(--z-index-header);
  top: -2rem;
  left: 0;
  display: block;
  padding: 2px 10px;
  color: var(--color-accent-white);
  text-align: left;
  font-size: clamp(0.75rem, 0.69rem + 0.25vw, 0.875rem);
  /*12-14px*/
  overflow: hidden;
  background-color: var(--color-black);
  -webkit-transition: top 0.5s ease;
  transition: top 0.5s ease;
}

#skipLink a:focus {
  top: 0;
}

.headerWrapper {
  display: flex;
  align-items: center;
  gap: 1em;
  width: 100%;
  padding-inline: 15px;
  padding-block: 15px;
  border-bottom: 1px solid var(--color-accent-m-gray);
}

.siteName {
  width: min(40%, 220px);
}

.siteTitle {
  width: min(23%, 100px);
}

@media print,screen and (min-width: 1024px) {

  .headerWrapper {
    gap: 20px;
    padding-inline: 20px;
    padding-block: 30px;
  }

}


/*-----------
シェア　SNSリスト
-----------*/
.share {
  width: var(--contents-width);
}

.share h2 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-block-end: 1.75em;
  color: var(--color-black);
  font-size: 0.875rem;
  /* 14px */
}

.share h2::before,
.share h2::after {
  content: '';
  display: block;
  width: 1rem;
  height: 1px;
  background-color: var(--color-black);
}

.share h2::before {
  transform: rotate(45deg);
}

.share h2::after {
  transform: rotate(-45deg);
}

.share ul,
.snsList {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 25px;
  margin-block: 0;
  list-style-type: none;
}

.snsList {
  margin-block: 1.25rem;
  justify-content: flex-start;
  align-items: center;
}

.share ul li,
.snsList li {
  padding-inline-start: 0;
  margin-block-end: 0 !important;
}

.share ul li a,
.snsList li a {
  display: flex;
  align-items: center;
  width: fit-content;
  height: 40px;
}

.snsList li.long a {
  height: 45px;
}

.share ul li a img,
.snsList li a img {
  width: auto;
  height: 100%;
}

@media print,screen and (min-width: 1024px) {

  .share ul li a,
  .snsList li a {
    height: 30px;
  }

}


/*-----------
footer
-----------*/
#pageTop {
  position: absolute;
  top: -48px;
  right: 0;
}

#pageTop a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 48px;
  padding-block: 0.5rem;
  padding-inline: 1rem;
  font-weight: 700;
  color: var(--color-accent-white);
  background-color: var(--color-main);
  border-top-left-radius: 5px;
}

#pageTop a:focus {
  background-color: var(--color-black);
}

#pageTop a::before {
  content: "";
  display: block;
  width: 0.875rem;
  height: 0.875rem;
  -webkit-mask-image: url("../images/icon-arrow-top.svg");
  mask-image: url("../images/icon-arrow-top.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: var(--color-accent-white);
}

#pageTop .pageTopText {
  display: block;
}

#siteFooter {
  position: relative;
  margin-block-start: 5rem;
  border-block-start: 1px solid var(--color-accent-m-gray);
}

.footerWrapper {
  position: relative;
  padding-inline: 20px;
  background-color: var(--color-accent-lt-gray);
  padding-block: 2.5rem;
  /* 40px */
}

.footerName {
  display: block;
  width: min(50%, 230px);
  margin-inline: auto;
}

.footerSns {
  margin-block: 1.25rem;
  /* 20px */
}

.footerSns ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
  list-style-type: none;
}

.footerSns li a {
  display: block;
  width: fit-content;
  height: 30px;
}

.footerSns li a img {
  width: auto;
  height: 100%;
}

.copyRight {
  text-align: center;
}

.copyRight small {
  letter-spacing: 0.05em;
}

@media print,screen and (min-width: 1024px) {

  #pageTop {
    top: -58px;
  }

  #pageTop a {
    height: 58px;
  }

  #siteFooter {
    position: relative;
    margin-block-start: 10rem;
  }

  .footerWrapper {
    padding-block: 5rem;
    /* 80px */
  }

  .footerSns {
    margin-block: 2.5rem;
    /* 40px */
  }
}

@media (any-hover: hover) {
  #pageTop a:hover {
    background-color: var(--color-black);
  }
}


/*-----------
パンくずリスト
-----------*/
.breadcrumbs {
  display: none;
  padding-block: 1em;
}

.breadcrumbs ol {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8px;
  margin-block: 0;
}

.breadcrumbs ol li {
  margin-block-end: 0;
  padding-left: 0;
  font-size: 0.75rem;
  /* 1px */
}

.breadcrumbs ol li::before {
  display: none;
}

.breadcrumbs ol li:not(:last-of-type)::after {
  content: "";
  display: inline-block;
  width: 0.4rem;
  height: 0.4rem;
  margin-inline-start: 8px;
  border-inline-end: 1px solid var(--color-black);
  border-block-end: 1px solid var(--color-black);
  transform: rotate(-45deg);
}

@media print,screen and (min-width: 768px) {

  .breadcrumbs {
    display: block;
  }

}


/*-----------
アコーディオン
-----------*/
.accordion summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 26px;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  transition: var(--transition-default);
}

.accordion summary {
  border-block-start: 1px solid var(--color-accent-m-gray);
}

.accordion:last-of-type summary {
  border-block-end: 1px solid var(--color-accent-m-gray);
}

.accordion summary > * {
  margin-block-end: 0;
}

.accordion .summaryIcon {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 26px;
  height: 26px;
  background-color: var(--color-main);
  border-radius: 50%;
}

.accordion .summaryIcon::after {
  content: '';
  display: block;
  width: 10px;
  aspect-ratio: 13 / 8;
  -webkit-mask-image: url(../images/icon-simple-arrow-bottom.svg);
  mask-image: url(../images/icon-simple-arrow-bottom.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: var(--color-accent-white);
  transition: var(--transition-default);
}

.accordionDetail a {
  font-weight: 700;
}

/* アコーディオンが開いた時 */
.accordion.is-opened summary {
  border-block-end: 1px solid var(--color-accent-m-gray);
}

.accordion.is-opened summary h2,
.accordion.is-opened summary h3,
.accordion.is-opened summary h4 {
  color: var(--color-main);
}

.accordion.is-opened .summaryIcon {
  background-color: var(--color-main-sub);
}

.accordion.is-opened .summaryIcon::after {
  background-color: var(--color-main);
  transform: rotate(180deg);
}

@media print,screen and (min-width: 1024px) {
  .accordion summary {
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) 30px;
  }

  .accordion .summaryIcon {
    width: 30px;
    height: 30px;
  }

}

@media (any-hover: hover) {

  .accordion summary:hover {
    background-color: var(--color-accent-lt-gray);
  }

}