@charset "UTF-8";
/* default */
/* スタッキング */
:root {
  --stack-level1: 10;
  --stack-level2: 100;
  --stack-level3: 1000;
  --stack-header: 9900;
  --stack-overlay: 9910;
  --stack-nav: 9930;
  --stack-max: calc(infinity);
}

/* 共通*/
:root {
  --height-header: 110px;
}

@media (width < 80rem) {
  :root {
    --height-header: 70px;
  }
}
.site-inner {
  display: flex;
  flex-direction: column;
}

.site-inner .site-content {
  flex: 1;
}

.site-content .wrapper {
  max-width: 1250px;
  margin: auto;
}

/* header */
#header {
  position: sticky;
  display: flex;
  align-items: center;
  --hamb-size: 70px;
  --hamb-area: 90px;
  --hamb-inset: 10px;
  background: var(--color-light);
  z-index: var(--stack-header);
  top: 0;
  left: 0;
  width: 100%;
}

@media (width < 36rem) {
  #header {
    --hamb-size: 62px;
    --hamb-area: 62px;
    --hamb-inset: 12px;
  }
}
#header .header-container {
  width: 100%;
  height: var(--height-header);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-inline: clamp(10px, 4.0625vw - 42px, 36px) 0;
  position: relative;
}

#header .header-logo {
  width: clamp(420px, 0.184375 * 100vw - -125px, 479px);
}
#header .header-logo {
}
#header .header-logo a {
  display: block;
}

#header .linksitem {
  height: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-right: var(--hamb-area);
}

#header .linksitem .box {
  text-align: left;
  display: inline-block;
}

#header .linksitem .grand-menu {
  margin-right: clamp(30px, 0.0576923077 * 100vw - 50.7692307692px, 60px);
}

#header .linksitem .grand-menu ul {
  list-style-type: none;
  display: flex;
  padding: 0;
  justify-content: flex-end;
  gap: min(2.5vw, 48px);
  gap: clamp(24px, 0.0461538462 * 100vw - 40.6153846154px, 48px);
}

#header .linksitem .grand-menu ul li a {
  font-size: clamp(12px, 0.9375vw, 0.9375rem);
  display: flex;
  align-items: center;
  position: relative;
  font-weight: bold;
}

#header .linksitem .grand-menu ul li a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: inline-block;
  background: var(--color-body);
  margin-inline: auto;
  transition: all ease 0.3s;
  border-radius: 100%;
  transform: translateY(calc(100% + 8px)) scale(0);
  width: min(1.25vw, 1.25rem);
  height: min(1.25vw, 1.25rem);
}

@media (any-hover: hover) {
  #header .linksitem .grand-menu ul li a:hover::after,
  #header .linksitem .grand-menu ul li a[aria-current="page"]::after {
    opacity: 1;
    transform: translateY(calc(100% + 8px)) scale(1);
  }
}

#header .linksitem .box02 {
  height: 100%;
  position: relative;
  font-weight: bold;
}

#header .linksitem .box02::after,
#header .linksitem .box02:nth-child(2 of .box02)::before {
  content: "";
  height: 82px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin-block: auto;
}

#header .linksitem .box02::before,
#header .linksitem .box02::after {
  content: "";
  left: -1px;
  height: 85px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin-block: auto;
  border-right: 1px dashed var(--color-body);
}
#header .linksitem .box02::before {
  content: unset;
  left: unset;
  right: -1px;
}
#header .linksitem .box02:nth-child(2 of .box02)::before {
  border-left: 1px dashed var(--color-body);
  right: -1px;
}

#header .linksitem .box02 a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  position: relative;
  padding-inline: 10px;
  height: 100%;
}

#header .linksitem .box02 a::after {
  content: "";
  border-radius: 100%;
  width: 0;
  aspect-ratio: 1/1;
  background: #d0edd4;
  position: absolute;
  transition: 0.3s;
  z-index: calc(var(--stack-level1) * -1);
}

#header .linksitem .box02 .label {
  font-size: clamp(8px, 0.8125vw, 0.8125rem);
  line-height: 1.4;
  margin-top: 8px;
}

@media (any-hover: hover) {
  #header .linksitem a:hover::after {
    opacity: 1;
    width: 80%;
  }
}
@media (width < 80rem) {
  #header .linksitem .box02.contact {
    display: none;
  }
  #header .linksitem .login a {
    padding-inline: 8px;
  }
  #header .linksitem .login img {
    width: 22px;
  }
  #header .linksitem .box02 .label {
    margin-top: 4px;
  }
  #header .linksitem .login::before,
  #header .linksitem .login::after {
    height: 100%;
    content: "";
  }

  #header .header-container {
    padding-inline: 16px 0;
    padding-bottom: 0;
    gap: 16px;
  }
}

@media (width < 36rem) {
  #header .header-logo {
    flex: 1;
    /* width:calc(280 / 16 * 1rem); */
    max-width: calc(409 / 16 * 1rem);
  }
  #header .header-container {
    padding-inline: 8px 0;
  }
}

/* ===== HAMBURGER BUTTON ===== */
#header .hambtn .btn-inner {
  width: 100%;
  height: 100%;
  position: relative;
  display: block;
}

.hamburger-btn {
  width: var(--hamb-size);
  right: max(0px, (var(--hamb-area) - var(--hamb-size)) / 2);
  height: var(--hamb-size);
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  margin-block: auto;
  z-index: var(--stack-max);
  padding-inline: var(--hamb-inset);
  background-color: transparent;
  border: none;
}

.hamburger-btn::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: calc(var(--stack-level1) * -1);
}

.hamburger-btn .btn-inner span {
  display: block;
  position: absolute;
  right: 0;
  margin-block: auto;
  top: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: #000;
  transition: 0.35s ease-in-out;
}

.hamburger-btn .bar:nth-child(1) {
  transform: translateY(-16px);
}

.hamburger-btn .bar:nth-child(2) {
  width: 72%;
}

.hamburger-btn .bar:nth-child(3) {
  width: 46%;
  transform: translateY(16px);
}

.hamburger-btn:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.hamburger-btn[aria-expanded="true"] .bar:nth-child(1) {
  transform: translateY(0) rotate(45deg);
  width: 100%;
}

.hamburger-btn[aria-expanded="true"] .bar:nth-child(2) {
  opacity: 0;
}

.hamburger-btn[aria-expanded="true"] .bar:nth-child(3) {
  width: 100%;
  transform: translateY(0) rotate(-45deg);
}

.hamburger-btn[aria-expanded="true"]::after {
  background: none;
}

/* ===== OVERLAY (SP only) ===== */
.overlay {
  position: fixed;
  inset: 0;
  left: 0;
  width: 100%;
  background: rgba(0, 0, 0, 0.4);
  z-index: var(--stack-overlay);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

/* ===== SHARED CLOSE BUTTON ===== */
.close-btn {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: fixed !important;
  width: 1px;
  word-wrap: normal !important;
  top: 35px;
  right: 20px;
}

.close-btn:focus-visible {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  -webkit-clip-path: none;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  line-height: normal;
  text-decoration: none;
  width: auto;
  z-index: 100000;
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
  width: var(--hamb-size, 60px);
  height: var(--hamb-size, 60px);
}

@media (width < 36rem) {
  .close-btn:focus-visible {
    right: 0px;
    top: calc(var(--height-header) / 2);
    transform: translateY(-50%);
  }
}
/* ===== SHARED BUTTON STYLES ===== */
.header .menu .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 6px 16px;
  height: 4.6875rem;
  border-radius: 8px;
  font-weight: 500;
  font-family: inherit;
  text-decoration: none;
  cursor: pointer;
  transition:
    background 0.2s,
    color 0.2s;
  border: 1.5px solid var(--color-btn);
  background: var(--color-base);
  color: var(--color-btn);
  width: 100%;
  white-space: nowrap;
}

.header .menu .btn:not(.btn-tel):hover,
.header .menu .btn:not(.btn-tel):focus-visible {
  background: var(--color-btn);
  color: #fff;
  outline: none;
}

.header .menu .btn :focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.btn .icon {
  mask-repeat: no-repeat;
  mask-size: contain;
  background: var(--color-btn);
  display: inline-block;
}

.btn:not(.btn-tel):focus-visible .icon {
  background: var(--color-light);
}

@media (any-hover: hover) {
  .btn:not(.btn-tel):hover .icon {
    background: var(--color-light);
  }
}
.header .menu svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.icon {
  flex-shrink: 0;
}
.btn-login .icon {
  mask-image: url(../img/common/icon-user.svg);
  width: 40px;
  height: 40px;
}

.btn-contact .icon {
  mask-image: url(../img/common/icon-mail.svg);
  width: 35px;
  height: 36px;
}

.btn-tel .icon {
  mask-image: url(../img/common/icon-tel.svg);
  width: 25px;
  height: 25px;
}

/* ===== NAV LINK SHARED ===== */
.nav-link {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--color-body);
  font-size: 1.1875rem;
  transition: background 0.3s;
}

.nav-link::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-accent);
  flex-shrink: 0;
}

@media (any-hover: hover) {
  .header .menu .nav .nav-link:hover {
    background: var(--color-accent);
    color: var(--color-base);
  }
  .nav-link:hover::before {
    background: var(--color-base);
  }
}
.nav-link:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: -2px;
}

/* ===== PRIVACY LINK ===== */
.privacy-link {
  align-items: center;
  gap: 4px;
  font-size: 0.9375rem;
  text-decoration: none;
  position: relative;
}

.privacy-link::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 100%;
  border-top: 1px solid var(--color-body);
  transform: scale(0);
  transform-origin: left;
  transition: all 0.2s ease-in-out;
}

@media (any-hover: hover) {
  .privacy-link:hover::before {
    transform: scale(1);
  }
}
.privacy-link .icon {
  width: 12px;
  height: 12px;
}

@media (width < 80rem) {
  .sub-links {
    text-align: center;
  }
}
/* ===== INFO ===== */
.info-contact-table {
  font-size: 0.9375rem;
}

.info-contact-table :is(.title, .data) {
  vertical-align: top;
}

.info-contact-table .title {
  padding-right: 1rem;
}

.info-contact-table .day {
  width: 5rem;
  flex-shrink: 0;
}

.info-contact-table .data {
  display: flex;
}

@media (width < 80rem) {
  .info-contact-table {
    margin-inline: auto;
  }
}
@media (width < 36rem) {
  .info-contact-table {
    font-size: 0.8125rem;
  }
}
/* ============================================================
       PC MENU (≥ 768px): ヘッダー直下にフルワイドで展開
       ============================================================ */
.header .menu {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: var(--color-menu-bg);
  z-index: var(--stack-nav);
  border-bottom: 2px solid var(--color-border);
  /* 初期状態: 上に隠す */
  clip-path: inset(0 0 100% 0);
  opacity: 0;
  pointer-events: none;
  transition:
    clip-path 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.25s ease;
  overflow: auto;
  visibility: hidden;
}

.header .menu ul {
  padding-inline: 0;
  margin: 0;
}

.header .menu.is-open {
  clip-path: inset(0 0 0% 0);
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}

/* PC メニュー内レイアウト */
.header .menu .inner {
  max-width: min(83.3333333333vw, 1600px);
  min-width: 1200px;
  margin: 0 auto;
  padding: 163px 40px 28px;
  display: grid;
  grid-template-columns: 17.7083333333vw min(55.9895833333vw, 960px);
  justify-content: space-between;
  align-items: start;
}

/* PC: 左カラム（ロゴ） */
.header .menu .logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding-top: 4px;
}

.header .menu .logo .text {
  margin-top: 20px;
  line-height: 1.5;
}

/* PC: 右カラム */
.header .menu .right {
  display: flex;
  flex-direction: column;
  gap: 50px 0px;
}

/* PC: ナビ 2列グリッド */
.header .menu .nav ul {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 30px;
}

.header .menu .nav .nav-link {
  padding: 10px 16px;
  display: flex;
  border-radius: 5px;
  font-weight: bold;
  background: var(--color-menu-link-bg);
}

/* ============================================================
       SP MENU (< 768px): 右からスライドインするパネル
       ============================================================ */
@media (width < 80rem) {
  .header .menu {
    left: unset;
    right: 0;
    height: 100vh;
    width: 100%;
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    -webkit-overflow-scrolling: touch;
  }
  .header .menu.is-open {
    transform: translateX(0);
  }
  .header .menu .nav ul {
    grid-template-columns: 100%;
  }
  .header .menu .inner {
    padding-top: 72px;
    max-width: 600px;
    justify-content: center;
    grid-template-columns: 100%;
    min-width: unset;
  }
  .header .menu .right {
    margin-top: 30px;
  }
  .header .menu .logo .text {
    display: none;
  }
}
@media (width < 48rem) {
  .header .menu .inner {
    padding-inline: var(--side);
  }
}
/* PC: アクション群 */
.header .menu .actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 90px;
  border-top: 1px dotted var(--color-body);
}

.header .menu .btn-login {
  font-size: 1.5625rem;
}

.header .menu .pc-btn-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.header .menu .pc-btn-row .btn + * {
  margin-top: 8px;
}

.header .menu .btn-tel {
  font-size: min(2rem, 32px);
  font-weight: 700;
  letter-spacing: 0.04em;
  cursor: unset;
}

.header .menu .btn-contact {
  font-size: 1.5625rem;
}

.header .menu .actions .btn {
  font-weight: bold;
}

@media (width < 80rem) {
  .header .menu .pc-btn-row {
    grid-template-columns: unset;
  }
  .header .menu .actions {
    padding-top: 45px;
  }
}
@media (width < 36rem) {
  .header .menu .btn-login {
    font-size: calc(20 / 16 * 1rem);
  }
  .header .menu .btn-tel {
    font-size: calc(26 / 16 * 1rem);
  }

  .header .menu .btn-contact {
    font-size: calc(20 / 16 * 1rem);
  }
}
/* ============================================================
       表示制御：SP / PC の切り替え
       ============================================================ */
@media (width > 80rem) {
  /* PCではオーバーレイを半透明に（クリック閉じ対応のため表示はするが薄く） */
  .overlay.is-open {
    background: rgba(0, 0, 0, 0.15);
  }
}
@media (width < 80rem) {
  #header .linksitem .grand-menu,
  #header .linksitem .contactBtn {
    display: none;
  }
}

@media (width < 62rem) {
  #header .hambtn .nav-menu::before {
    display: none;
  }
}
@media (width < 36rem) {
  #header .hambtn .nav-menu .nav-container {
    padding-inline: 20px;
  }
}
/* フッター */
.footer .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 6px 16px;
  height: 3.75rem;
  border-radius: 8px;
  font-weight: 500;
  font-family: inherit;
  text-decoration: none;
  cursor: pointer;
  transition:
    background 0.2s,
    color 0.2s;
  border: 1.5px solid var(--color-btn);
  background: var(--color-base);
  color: var(--color-btn);
  width: 100%;
  white-space: nowrap;
}

@media (any-hover: hover) {
  .footer .btn:hover,
  .footer .btn:focus-visible {
    background: var(--color-btn);
    color: #fff;
    outline: none;
  }
}
.footer .sp {
  display: none;
}

@media (width < 80rem) {
  .footer .btn {
    margin-inline: auto;
  }
  .footer .sp.btn {
    display: flex;
  }
  .footer .pc {
    display: none;
  }
}
.footer {
  position: relative;
  margin-inline-end: clamp(60px, 0.28125 * 100vw - 390px, 150px);
}

.footer .container {
  background: #eeeeee;
  padding-inline: clamp(60px, 0.40625 * 100vw - 590px, 190px)
    clamp(36px, 3.125vw, 50px);
  padding-block: 70px 0;
  max-width: none;
  border-radius: 0px 28px 28px 0;
}

.footer ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

.footer-content {
  display: grid;
  grid-template-columns:
    minmax(min(482 / 1600 * 100vw, 482px), 1fr)
    1fr min(320 / 16 * 1rem, 320px);
  /* gap: 60px; */
  padding-bottom: 40px;
  max-width: 1920px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

@media (width > 1920px) {
  .footer-content {
    margin-inline: auto;
  }
}

@media (width < 100rem) {
  .footer-content {
    grid-template-columns:
      min(482 / 1600 * 100vw, 482px)
      auto min(320 / 1600 * 100vw, 320px);
    gap: 0 30px;
  }
}
@media (width < 80rem) {
  .footer {
    margin: 0;
  }
  .footer .container {
    border-radius: 0;
  }
}
@media (width < 48rem) {
  .footer .container {
    padding-inline: var(--side);
  }
}
.footer-logo {
  margin-bottom: 25px;
}

.footer-address {
  font-style: normal;
  font-size: 14px;
  line-height: 1.8;
  margin-bottom: 20px;
  margin-inline-start: clamp(16px, 0.2 * 100vw - 304px, 80px);
}

.footer-address .list .row {
  display: flex;
  gap: 16px;
}

.footer-address .list .title {
  flex-shrink: 0;
  font-weight: bold;
}

.footer-phone {
  margin-top: 16px;
}

.footer-phone a {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 24px;
  font-weight: bold;
}

/* ===== お問い合わせ時間 ===== */
.footer .tel-info {
  font-size: 0.9375rem;
}

.footer .tel-info :is(.title, .data) {
  vertical-align: top;
}

.footer .tel-info .title {
  padding-right: 1rem;
}

.footer .tel-info .day {
  width: 5rem;
  flex-shrink: 0;
}

.footer .tel-info .data {
  display: flex;
}

@media (width < 80rem) {
  .footer .tel-info {
    margin-inline: auto;
  }
}
@media (width < 36rem) {
  .footer .tel-info {
    font-size: 0.8125rem;
  }
}
/* ===== フッターナビ ===== */
.footer-nav .menu {
  display: grid;
  grid-template-columns: 12rem 12rem;
  gap: 1em min(77 / 1920 * 100vw, 77px);
  padding-inline: min(36 / 1920 * 100vw, 36px);
}

.footer-nav-col ul {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.footer-nav a {
  font-size: 14px;
  transition: color 0.3s;
  position: relative;
}
.footer-nav li {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.footer-nav li:before {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--color-body);
  flex-shrink: 0;
  position: relative;
  top: 0.666em;
}

.footer-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  border-top: 1px solid var(--color-body);
  transform: scale(0);
  transform-origin: left;
  transition: transform 0.2s ease-in-out;
}

@media (any-hover: hover) {
  .footer-nav a:hover::after {
    transform: scale(1);
  }
}
@media (width < 80rem) {
  .footer-nav {
    border-top: 1px dotted #555;
    border-bottom: 1px dotted #555;
    padding-block: 20px;
    padding-inline: var(--side);
  }
  .footer-nav .menu {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

@media (width < 100rem) {
  .footer-nav .menu {
    column-gap: 0;
  }
}

@media (width < 48rem) {
  .footer-nav .menu {
    grid-template-columns: 1fr 1fr;
  }
}
.footer-buttons {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.footer-actions .links {
  margin-top: 20px;
}

.footer-actions .links a {
  position: relative;
}

.footer-actions .links a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  border-top: 1px solid var(--color-body);
  transform: scale(0);
  transform-origin: left;
  transition: transform 0.2s ease-in-out;
}

@media (any-hover: hover) {
  .footer-actions .links a:hover::after {
    transform: scale(1);
  }
}
.footer-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 20px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 4px;
  font-size: 13px;
  transition: all 0.3s;
  white-space: nowrap;
}

.footer-btn:hover {
  background: rgba(255, 255, 255, 0.2);
}

.footer-bottom {
  padding-block: 25px 10px;
  padding-inline: 0 80px;
  text-align: right;
  font-size: 12px;
  color: #999;
}

/* ===== ページトップボタン ===== */
.pagetop {
  position: absolute;
  left: clamp(8px, 100% + 40px, 100vw - (var(--scroll-bar) + 48px));
  top: 0;
  display: block;
  text-align: center;
  --grow-y: 16px;
  --arrow-size: 47px;
  transition: 0.2s all;
  line-height: 1.4;
}

.pagetop .text {
  text-transform: uppercase;
}

.pagetop .arrow::after {
  width: 14px;
  display: block;
  content: "";
  height: var(--arrow-size);
  border-top: 1px solid var(--color-body);
  border-right: 1px solid var(--color-body);
  transform: skewY(135deg) translateX(-50%);
  margin: 6px auto 0 auto;
  transition: height 0.2s;
}

@media (any-hover: hover) {
  .pagetop:hover {
    transform: translateY(calc(var(--grow-y) * -1));
  }
}
@media (any-hover: hover) and (width < 80rem) {
  .pagetop:hover {
    transform: translateY(-100%);
  }
}
@media (any-hover: hover) {
  .pagetop:hover .arrow::after {
    height: calc(var(--arrow-size) + var(--grow-y));
  }
}

@media (width < 80rem) {
  .footer-content {
    max-width: 572px;
    margin-inline: auto;
    grid-template-columns: 100%;
    gap: 30px;
  }
  .footer-main {
    display: contents;
  }
  .footer-logo {
    order: -1;
    margin-bottom: 0;
    text-align: center;
  }
  .footer-nav {
    order: 2;
  }
  .footer-address {
    order: 3;
    margin-left: 0;
  }
  .footer-actions {
    order: 4;
    text-align: center;
  }
  .footer-bottom {
    text-align: center;
  }
  .pagetop {
    left: unset;
    right: 40px;
    top: 0;
    transform: translateY(-100%);
  }
  .footer-phone {
    text-align: center;
  }
  .footer-phone a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 6px 16px;
    height: 3.75rem;
    border-radius: 8px;
    font-weight: 500;
    font-family: inherit;
    text-decoration: none;
    cursor: pointer;
    transition:
      background 0.2s,
      color 0.2s;
    border: 1.5px solid var(--color-btn);
    background: var(--color-base);
    color: var(--color-btn);
    width: 100%;
    white-space: nowrap;
  }
}
@media (width < 48rem) {
  .footer-bottom {
    padding: 25px 20px;
  }
}

@media (width < 36rem) {
  .pagetop {
    font-size: 12px;
    line-height: 1.125;
    right: var(--side);
  }
}
/* page-title */
#entry-title {
  max-width: 1665px;
  margin: 0 auto 10px;
}

#entry-title .inContentTop {
  color: #fff;
  border-radius: 25px;
  padding: 42px 24px 42px 24px;
}

#entry-title .page-title_container {
  max-width: 1565px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto;
}

#entry-title .title {
  font-family: "M PLUS 1 Code", monospace;
  font-size: 50px;
  text-indent: 0.25em;
}

#entry-title .subtitle {
  display: flex;
  align-items: center;
  gap: 48px;
}

#entry-title .subtitle .jp {
  font-size: 20px;
  line-height: 1.6;
  font-family: "M PLUS 1 Code", monospace;
}

#entry-title .subtitle .en {
  font-family: "TwCenMT";
  font-size: 18px;
  letter-spacing: 0.25em;
  line-height: 1.2;
}

#entry-title .seminar {
  background-color: #eb6932;
}

#entry-title .specialist,
#entry-title .form {
  background-color: #998659;
}

#entry-title .networking,
#entry-title .special {
  background-color: #993342;
}

#entry-title .info,
#entry-title .privacy {
  color: #000;
  background-color: #dddddd;
}

#entry-title .seminar .br,
#entry-title .privacy .br {
  display: none;
}

@media screen and (max-width: 768px) {
  #header .hambtn .nav-menu .site-title {
    margin-bottom: 32px;
  }
  #entry-title .inContentTop {
    padding: 21px 12px 21px 12px;
  }
  #entry-title .title {
    font-size: 40px;
  }
  #entry-title .subtitle {
    gap: 24px;
  }
  #entry-title .subtitle .jp {
    font-size: 18px;
  }
  #entry-title .subtitle .en {
    font-size: 16px;
  }
}
@media screen and (max-width: 640px) {
  #entry-title .title {
    font-size: 30px;
  }
  #entry-title .subtitle {
    gap: 12px;
  }
  #entry-title .subtitle .jp {
    font-size: 16px;
  }
  #entry-title .subtitle .en {
    font-size: 14px;
  }
  #entry-title .privacy .title {
    text-indent: 0;
  }
  #entry-title .seminar .dot {
    display: none;
  }
  #entry-title .seminar .br,
  #entry-title .privacy .br {
    display: inherit;
  }
}
@media screen and (max-width: 500px) {
  #entry-title .title {
    font-size: 20px;
    text-indent: 0;
  }
  #entry-title .subtitle .jp {
    font-size: 12px;
  }
  #entry-title .subtitle .en {
    font-size: 10px;
  }
}
/* breadcrumbs */
.breadcrumbs {
  max-width: 1665px;
  font-size: 13px;
  margin: 0 auto 46px;
  padding-inline: 5.25em;
}

@media (any-hover: hover) {
  .breadcrumbs a:hover {
    text-decoration: underline;
    text-underline-offset: 5px;
    text-decoration-color: color-mix(in srgb, currentcolor, transparent 40%);
  }
}
@media screen and (max-width: 640px) {
  .breadcrumbs {
    padding-inline: 3.25em;
  }
}
@media screen and (max-width: 500px) {
  .breadcrumbs {
    font-size: 11px;
    padding-inline: 1.25em;
  }
}
.map {
  display: inline-block;
  vertical-align: middle;
  margin-left: 16px;
}

.map a {
  font-size: 22px;
  color: #fff;
  font-weight: 500;
  background-color: #000;
  border: 1px solid #000;
  border-radius: 30px;
  padding-inline: 1.25em;
  transition: 0.2s;
  cursor: pointer;
}

.map a:hover {
  color: #000;
  background-color: #fff;
}

.map-content {
  display: none;
  margin-top: 10px;
}

.map-content iframe {
  width: 100%;
}

.pdf a img {
  border: 1px solid #d1d1d1;
}
