@charset "UTF-8";

body {
  background-color: #0f0f0f;
  color: #fff;
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-size: clamp(1rem, 0.9452rem + 0.2247vw, 1.125rem);
  font-weight: 400;
  font-style: normal;
}

.sawarabi-mincho-regular {
  font-family: "Sawarabi Mincho", serif;
  font-weight: 400;
}

.noto-serif-jp-regular {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
}

.league-spartan-400 {
  font-family: "League Spartan", serif;
  font-weight: 400;
}

h2, p {
  margin: 0;
}

a {
  display: inline-block;
  color: inherit;
}

a:focus-visible {
  color: inherit;
}
@media (any-hover: hover) {
  a:hover {
    color: inherit;
  }
}

img {
  max-width: 100%;
}

iframe {
  border: none;
}

.header {
  position: sticky;
  z-index: 2;
  top: 0;
  background-color: #0f0f0f;
}

.top-header {
  position: fixed;
  right: 0;
  left: 0;
  opacity: 1;
  transition: opacity 0.3s;
}

.top-header[inert] {
  opacity: 0 !important;
}

.header-container {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 1440px;
  min-height: 100px;
  margin-right: auto;
  margin-left: auto;
  padding-left: 4%;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.header-logo {
  width: min(20vw,100px);
}

.link-button a {
  display: inline-block;
  padding: 19px calc(59px + 1em) 19px 53px;
  border: 1px solid #fff;
  background: #fff url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/arrow-right.png) right 27px center / 1em auto no-repeat;
  color: #0f0f0f;
  font-weight: 500;
  line-height: 1.5 !important;
  letter-spacing: 0.06em;
  transition: background-color 0.3s, color 0.3s;
}

.link-button a:focus-visible {
  text-decoration: none;
  background-color: #0f0f0f;
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241226125611114258.svg);
  color: #fff;
}
@media (any-hover: hover) {
  .link-button a:hover {
    text-decoration: none;
    background-color: #0f0f0f;
    background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241226125611114258.svg);
    color: #fff;
  }
}

.link-button.bg-red a {
  padding-right: calc(75px + 1em);
  padding-left: 68px;
  border-color: #722b27;
  border-bottom-color: #fff;
  background-color: #722b27;
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241226125611114258.svg);
  color: #fff;
}

.link-button.bg-red a:focus-visible {
  border-bottom-color: currentColor;
  background-color: #fff;
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241230131755849379.png);
  color: #722b27;
}
@media (any-hover: hover) {
  .link-button.bg-red a:hover {
    border-bottom-color: currentColor;
    background-color: #fff;
    background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241230131755849379.png);
    color: #722b27;
  }
}

.link-button.return a {
  padding: 19px 68px 19px calc(74px + 1em);
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241226125535935645.svg);
  background-position: left 42px center;
}

.link-button.return a:focus-visible {
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241226152001878174.svg);
}
@media (any-hover: hover) {
  .link-button.return a:hover {
    background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241226152001878174.svg);
  }
}

h2 {
  font-size: clamp(1.25rem, 1.0789rem + 0.7018vw, 1.5rem);
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  letter-spacing: 0.05em;
  text-align: center;
}

.header-nav {
  display: flex;
  gap: 40px;
  font-size: 0.94em;
}

@media (width < 1366px) {
  .header-nav,
  .header .link-button {
    display: none;
  }
}

@media (width >= 1366px) {
  .navbar {
    display: none;
  }
}

.navbar {
  position: fixed;
  z-index: 1;
  top: 0;
  right: 0;
  padding: 0;
}

.navbar .link-button {
  display: block;
}

.navbar .link-button a {
  min-width: 245px;
}

.navbar-toggler {
  position: absolute;
  z-index: 1;
  top: 17px;
  right: 0;
  display: grid;
  place-content: center;
  gap: 10px;
  aspect-ratio: 1/1;
  margin-left: auto;
  padding: 1rem;
  border-radius: 0;
  border: none;
  background-color: #fff;
  color: #0f0f0f;
}

.navbar-toggler-icon {
  height: 2px;
  background-image: none;
  background-color: currentColor;
}

.navbar-collapse {
  position: fixed;
  top: 0;
  right: 0;
  background-color: #0f0f0f;
}

.navbar-nav {
  gap: 40px;
  padding: calc(5rem + 26px) 3rem 3rem;
}

@media (width < 640px) {
  .navbar-collapse {
    left: 0;
    max-height: 100dvh;
    overflow-y: auto;
  }
  .navbar-nav {
    min-height: 100dvh;
  }
}

.footer {
  max-width: 100%;
  padding-top: clamp(100px, 40.385px + 15.897vw, 193px);
  background-color: #0f0f0f;
}

.footer-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 1150px;
  margin-right: auto;
  margin-left: auto;
}

@media (width > 1024px) {
  .footer-inner {
    justify-content: space-between;
  }
}

.footer-address,
.footer-nav,
.footer .link-button {
  flex: 1 0 50%;
  max-width: 575px;
}

.footer-address {
  display: grid;
  gap: 4px;
  justify-items: center;
  text-align: center;
}

.footer-address p:not(.link-button) {
  line-height: 1.8;
  letter-spacing: 0.03em;
}

.footer-zip-address {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0.5em;
}

.footer-copyright {
  flex: 0 0 100%;
  margin-top: clamp(64px, 31.600px + 8.64vw, 118px);
  padding-top: 14px;
  padding-bottom: 14px;
  font-size: 0.6875rem;
  text-align: center;
}

.link-tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.link-tel a {
  font-size: clamp(1.25rem, 0.75rem + 1.25vw, 1.5rem);
  line-height: normal;
}

.footer .link-button {
  padding-top: clamp(32px, 9.564px + 5.983vw, 67px);
  text-align: center;
}

.footer .link-button a {
  min-width: 308px;
  border-bottom-color: #722b27;
}

.footer .link-button a:focus-visible {
  border-bottom-color: #722b27;
}
@media (any-hover: hover) {
  .footer .link-button a:hover {
    border-bottom-color: #722b27;
  }
}

.footer-nav {
  display: grid;
  gap: 31px;
  max-width: calc(10.5em + 240px);
  padding-top: clamp(48px, 25.564px + 5.983vw, 83px);
  padding-right: clamp(4px, -19.077px + 6.154vw, 40px);
  padding-left: clamp(4px, -19.077px + 6.154vw, 40px);
  font-size: 0.94em;
  letter-spacing: 0.2em;
  box-sizing: content-box;
}

.footer-nav p {
  writing-mode: vertical-rl;
  margin: 0;
}

@media (width < 640px) {
  .footer-nav {
    justify-content: center;
    letter-spacing: 0;
    text-align: center;
  }
  .footer-nav p {
    writing-mode: horizontal-tb;
  }
}

@media (width >= 640px) {
  .footer-nav {
    grid-template-columns: repeat(7, auto);
  }
}

.footer-logo {
  width: min(40vw,238px);
}

.page-main-container {
  max-width: 100%;
  background-color: #0f0f0f;
  overflow-x: clip;
}

.page-main-inner {
  position: relative;
  max-width: 1440px;
  padding-right: 0;
  padding-left: 0;
}

.page-main-inner > .container {
  padding-right: 0;
  padding-left: 0;
}

.page-main-inner > * {
  position: relative;
  z-index: 1;
  text-align: center;
  top: 100px;
}

.page-main-inner::before,
.page-main-inner::after {
  content: '';
  position: absolute;
  z-index: 0;
  background: transparent center / 100% auto no-repeat;
  pointer-events: none;
}

.news .page-main-inner::before {
  top: min(175px,18.23vw); /* 960px */
  left: min(1029px,71.46vw);
  width: min(598px,62.29vw);
  height: min(317px,33vw);
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241226190347512402.png);
}

.news-post .page-main-inner::before {
  top: min(108px,11.25vw);
  left: max(-171px,-17.81vw);
  width: min(528px,55vw);
  height: min(284px,29.58vw);
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241230073629850267.png);
}

.news-post .page-main-inner::after {
  bottom: min(44px,3vw);
  right: max(-134px,-13.95vw);
  width: min(563px,58.64vw);
  height: min(300px,31.25vw);
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241230073629889187.png);
}

.page-title {
  writing-mode: vertical-lr;
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  padding-top: min(100px,6.94vw);
}

:where(.news, .news-post, .page-menu) .page-title {
  padding-bottom: min(208px, 14.44vw);
}

.page-contact .page-title {
  padding-bottom: clamp(64px,11.11vw,160px);
}

:where(.page-recruit, .page-concept) .page-title {
  padding-bottom: min(238px,24.8vw);
}

.page-access .page-title {
  padding-bottom: min(242px,25.2vw);
}

.page-about .page-title {
  padding-bottom: min(200px,20.83vw);
}

.page-title h1 {
  position: relative;
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.25rem, 0.7368rem + 2.1053vw, 2rem);
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0.19em;
  white-space: nowrap;
}

.page-title::before {
  content: '';
  position: absolute;
  right: 0;
  left: 0;
  width: clamp(60px, calc(60px + 0.0877 * (100vw - 390px)), 110px);
  aspect-ratio: 11/7;
  margin-right: auto;
  margin-left: auto;
  background: transparent url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241225201404857967.svg) center / 100% auto no-repeat;
}

:where(.news, .news-post) .page-title::before {
  bottom: clamp(34px, -15.296px + 13.146vw, 174px);
}

.page-contact .page-title::before {
  bottom: clamp(40px,6.25vw,90px);
  width: clamp(60px, 43.451px + 4.413vw, 107px);
  aspect-ratio: 1/1;
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241230125952770327.png);
}

.page-recruit .page-title::before {
  bottom: min(107px,11.46vw);
  width: clamp(64px, -13.316px + 19.825vw, 177px);
  aspect-ratio: 1/1;
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241231144255488403.svg);
}

.page-access .page-title::before {
  bottom: min(110px,11.45vw);
  width: clamp(64px, -13.316px + 19.825vw, 177px);
  aspect-ratio: 177/153;
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20250101133705337386.svg);
}

.page-menu .page-title::before {
  bottom: min(67px,6.98vw);
  width: clamp(64px, -13.316px + 19.825vw, 177px);
  aspect-ratio: 1/1;
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20250102064633844134.svg);
}

.page-concept .page-title::before {
  bottom: min(126px,13.125vw);
  width: clamp(64px, -13.316px + 19.825vw, 177px);
  aspect-ratio: 177/153;
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20250101133705337386.svg);
}

.page-about .page-title::before {
  bottom: min(135px,14.06vw);
  width: clamp(64px, -13.316px + 19.825vw, 177px);
  aspect-ratio: 11/7;
}

.news-category-wrap {
  gap: 10px 2px;
  align-items: center;
  max-width: 640px;
  margin-right: auto;
  margin-left: auto;
  font-size: clamp(1rem, 0.9572rem + 0.1754vw, 1.0625rem);
  letter-spacing: 0.04em;
}

.news-category-wrap h2 {
  margin-right: 67px;
  font-size: inherit;
  font-weight: 500;
}

.news-category-wrap a {
  padding: 4px 18px;
  border-radius: 4px;
  font-size: clamp(0.875rem, 0.8322rem + 0.1754vw, 0.9375rem);
  font-weight: 500;
  letter-spacing: 0.04em;
}

.news-category-wrap .current-page a {
  pointer-events: none;
  background-color: #722b27;
  line-height: 1;
}

@media (width < 680px) {
  .news-category-wrap h2 {
    flex: 0 0 100%;
  }

  .news-category-wrap a {
    padding-right: 8px;
    padding-left: 8px;
  }
}

.news-list,
.news-post-article {
  max-width: 640px;
  padding-right: 0;
  padding-left: 0;
}

.news-list {
  margin-top: clamp(48px, -14.264px + 16.604vw, 92px);
  padding-bottom: clamp(100px, -16.038px + 30.943vw, 182px);
}

.webgene-item {
  display: grid;
  grid-template-columns: auto auto 1fr;
  gap: 0.5rem 1rem;
  align-items: center;
  padding-bottom: clamp(24px, -9.962px + 9.057vw, 48px);
  border-bottom: 1px solid #ddd;
  font-weight: 500;
}

.webgene-item + .webgene-item {
  margin-top: clamp(24px, -9.962px + 9.057vw, 48px);
}

.webgene-item > p {
  font-weight: 700;
}

.webgene-item > span {
  grid-column: 2/3;
  padding: 4px 12px;
  border-radius: 4px;
  background-color: #fff;
  color: #191919;
  line-height: 1;
}

.webgene-item > :where(p, span) {
  font-size: clamp(0.875rem, 0.75rem + 0.3125vw, 0.9375rem);
  letter-spacing: 0.04em;
}

.webgene-item a {
  grid-column: span 3;
  font-weight: 500;
  line-height: 2.2;
  letter-spacing: 0.04em;
}

.webgene-pagination {
  margin-top: clamp(24px, -9.962px + 9.057vw, 48px);
}

.webgene-pagination ul {
  list-style: none;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
}

.webgene-pagination a {
  display: grid;
  place-content: center;
  width: 1.56em;
  height: 1.56em;
  background-color: #bebebe;
  font-weight: 500;
  line-height: 1;
}

.webgene-pagination a:focus-visible {
  text-decoration: none;
}
@media (any-hover: hover) {
  .webgene-pagination a:hover {
    text-decoration: none;
  }
}

.webgene-pagination .selected a {
  background-color: #722b27;
  pointer-events: none;
}

.webgene-pagination :where(.prev, .next) {
  align-self: stretch;
}

.webgene-pagination :where(.prev, .next) a {
  display: block;
  width: 1.0625rem;
  height: 100%;
  background: transparent center / 100% auto no-repeat;
  color: transparent;
  font-size: 0;
}

.webgene-pagination .prev a {
  margin-right: 24px;
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241226125535935645.svg);
}

.webgene-pagination .next a {
  margin-left: 24px;
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241226125611114258.svg);
}

.news-post-article {
  padding-top: clamp(5px, calc(40px + (-0.0614) * (100vw - 390px)), 40px);
  padding-bottom: clamp(120px, -19.744px + 37.265vw, 338px);
}

.news-post-article .webgene-item {
  display: block;
  padding-bottom: 0;
  border-bottom: none;
  font-weight: 500;
}

.news-post-article .article-header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-bottom: 24px;
  border-bottom: 1px solid currentColor;
  font-size: 1rem;
  letter-spacing: 0.04em;
}

.news-post-article .article-time {
  font-weight: 700;
}

.news-post-article .article-category {
  padding: 4px 12px;
  border-radius: 4px;
  background-color: #fff;
  color: #191919;
  line-height: 1;
}

.news-post-article .article-body {
  margin-top: 36px;
  line-height: 2.2;
  letter-spacing: 0.04em;
}

.news-post-article .link-button {
  margin-top: clamp(80px, 22.308px + 15.385vw, 170px);
  text-align: center;
}

.page-contact p {
  text-align: center;
}

.contact-link {
  display: grid;
  justify-items: center;
  gap: 0.83em;
  font-size: clamp(1.25rem, 0.8962rem + 1.5094vw, 1.5rem);
}

.page-contact .contact-link {
  margin-top: clamp(40px, -30.755px + 18.868vw, 90px);
  margin-bottom: clamp(64px, -43.547px + 28.679vw, 140px);
}

.contact-link img {
  width: 2.875em;
  height: auto;
}

.contact-link a {
  margin-top: 5px;
  font-size: clamp(1.5rem, 0.5271rem + 4.1509vw, 2.1875rem);
  letter-spacing: 0.03em;
}

.page-contact .p1735531798093 {
  font-size: clamp(1rem, 0.2925rem + 3.0189vw, 1.5rem);
}

.page-contact .link-button {
  margin-top: clamp(24px, -8.547px + 8.679vw, 47px);
}

.contact-bg {
  position: relative;
  max-width: 1440px;
  height: min(624px,43.33vw);
  margin-top: min(187px,12.98vw);
  margin-bottom: clamp(64px, -40.717px + 27.925vw, 138px);
}

.contact-bg img{
  position: absolute;
  left: 50%;
  translate: -50% 0;
  width: min(1880px,130.56vw);
  max-width: initial;
}

.top-page {
  padding-right: 0;
  padding-left: 0;
}

.top-fv {
  position: relative;
  width: 100%;
  aspect-ratio: 375/812;
}

@media (width >= 640px) {
  .top-fv {
    aspect-ratio: 1440/900;
  }
}

.top-logo {
  display: none;
}

@media (width >= 960px) {
  .top-logo {
    position: absolute;
    top: 1.52vw;
    left: 2.36vw;
    display: block;
    width: 14.23vw;
    aspect-ratio: 1/1;
  }
}

.fv-bg {
  position: absolute;
  inset: 0;
}

.fv-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fv-bg__link {
  position: absolute;
  top: 0;
  right: 0;
  width: 40%;
  height: 100%;
  z-index: 2;
}

@media (width >= 640px) {
  .fv-bg .sp {
    display: none;
  }
}

@media (width < 640px) {
  .fv-bg .pc {
    display: none;
  }
  
  .fv-bg__link {
    top: 550px;
    right: 0;
    bottom: auto;
    left: 0;
    width: 100%;
    height: 40%;
  }
}

:where(.top-fv) > * {
  position: relative;
}

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

.fv-nav {
  position: absolute;
  bottom: 4.79vw;
  left: 4.86vw;
  display: grid;
  gap: 2vw;
  width: fit-content;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(0.875rem, 0.375rem + 0.8333vw, 1.125rem);
  font-weight: 900;
}

@media (width < 960px) {
  .fv-nav {
    display: none;
  }
}

.fv-nav::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  width: 120%;
  height: 119%;
  border-radius: 100vw;
  background-color: rgb(0 0 0 / 0.35);
  -webkit-filter: blur(50px);
  filter: blur(50px);
}

.fv-nav p {
  position: relative;
}

.top-page h2 {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.5rem, 1.1579rem + 1.4035vw, 2rem);
  font-weight: 400;
  letter-spacing: 0.19em;
  writing-mode: vertical-lr;
}

.top-page .link-button a {
  min-width: 255px;
}

.top-page :where(.top-news, .top-access, .top-contact) {
  position: relative;
  margin-right: auto;
  margin-left: auto;
}

:where(.top-page) :where(.page-main-inner) > div::before {
  content: '';
  position: absolute;
  pointer-events: none;
  background: transparent center / 100% auto no-repeat;
}

.page-main-inner *[class^="top-"] > * {
  position: relative;
}

.top-service {
  display: grid;
  gap: clamp(48px, 27.487px + 5.47vw, 80px);
  max-width: 1150px;
  margin-right: auto;
  margin-left: auto;
  padding-top: clamp(120px, 40.513px + 21.197vw, 244px);
}

.top-service h2 {
  line-height: 1.2;
  text-align: center;
  letter-spacing: 0;
  writing-mode: horizontal-tb;
}

.top-service .p1735593144509 {
  max-width: 752px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 15px;
  padding-left: 15px;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.top-service .link-button {
  margin-top: clamp(16px, 3.821px + 3.248vw, 35px);
  text-align: center;
}

.top-news {
  display: grid;
  gap: clamp(48px, 12.744px + 9.402vw, 103px) 0;
  justify-items: center;
  max-width: 1080px;
  padding-top: clamp(100px, 48.718px + 13.675vw, 180px);
  padding-right: 15px;
  padding-left: 15px;
}

@media (width < 960px) {
  .top-news h2 {
    justify-self: start;
    padding-left: clamp(60px, 25.789px + 8.772vw, 110px);
  }
}

@media (width > 960px) {
  .top-news {
    grid-template-columns: auto 1fr min(61%, 640px);
  }
}


.top-news .webgene-blog {
  max-width: 640px;
}

@media (width > 960px) {
  .top-news .webgene-blog {
    grid-column: 3/4;
    grid-row: span 3;
  }
}

@media (width > 960px) {
  .top-news .link-button {
    grid-column: 1/2;
  }
}

.top-news .link-button a {
  padding-left: 78px;
}

.top-access {
  max-width: 1080px;
  padding-top: clamp(100px, 35.897px + 17.094vw, 200px);
  padding-right: 15px;
  padding-left: 15px;
}

.map-container {
  position: relative;
  max-width: 720px;
  aspect-ratio: 720/444;
  margin-right: auto;
  margin-left: auto;
}

.map-container::after {
  content: '';
  position: absolute;
  inset: 0;
  background-color: rgb(25 25 25 / 0.4);
  pointer-events: none;
}

.map-container iframe {
  display: block;
  width: 100%;
  height: 100%;
}

.top-access .map-container {
  margin-top: clamp(-50px, calc(48px + (-0.5158) * (100vw - 960px)), 48px);
}

.top-access h2 {
  float: right;
  padding-right: 68px;
}

.top-access .clearfix {
  clear: both;
}

.top-access .text {
  margin-top: clamp(48px, 21.077px + 7.179vw, 90px);
  line-height: 1.8;
  letter-spacing: 0.03em;
  text-align: center;
}

.top-access .text p:nth-of-type(1) {
  margin-bottom: 23px;
}

.top-access .text p:nth-of-type(2) {
  margin-bottom: 9px;
}

.top-access .link-button {
  margin-top: clamp(48px, 37.744px + 2.735vw, 64px);
  text-align: center;
}

.top-contact {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  max-width: 1180px;
  padding-top: clamp(120px, 14.231px + 28.205vw, 285px);
}

@media (width > 960px) {
  .top-contact {
    flex-direction: row;
  }
}

.top-contact h2 {
  align-self: flex-start;
  padding-right: 71px;
  padding-left: 95px;
}

.top-contact .contact-link {
  flex: 0 0 auto;
  max-width: 463px;
  margin-top: clamp(64px, -188.632px + 26.316vw, 114px);
  margin-bottom: clamp(64px, -153.263px + 22.632vw, 107px);
}

@media (width > 960px) {
  .top-contact .contact-link {
    margin-left: auto;
  }
}

.top-contact .link-button {
  flex: 1 0 50%;
  max-width: 575px;
  text-align: center;
}

.top-news::before,
.top-access::before,
.top-contact::before {
  width: min(638px,66.46vw);
  height: min(337px,35.1vw);
}

.top-news::before {
  top: 50px;
  left: max(-466px,-32.36vw);
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20250101065526829522.png);
}

@media (width > 960px) {
  .top-news::before {
    top: -7px;
  }
}

.top-access::before {
  top: min(220px,22.9vw);
  right: max(-340px,-35.42vw);
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20250101091018999337.png);
}

.top-contact::before {
  top: min(313px,32.6vw);
  left: max(-227px,-23.64vw);
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20250101091018999337.png);
}

.top-about {
  padding-top: clamp(120px, 25.128px + 25.299vw, 268px);
}

.top-menu,
.top-recruit {
  padding-top: clamp(80px, 22.308px + 15.385vw, 170px);
}

.top-bg-wrap {
  height: min(790px,54.9vw);
}

.top-bg-wrap img {
  display: inline-block;
  width: min(888px,61.67vw);
  margin-top: min(130px,90.3vw);
  margin-left: min(625px,43.4vw);
}

:where(.top-about, .top-menu, .top-recruit)::after {
  content: '';
  display: block;
  clear: both;
}

:where(.top-about, .top-menu, .top-recruit) p:not(.link-button) {
  max-width: 722px;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.top-about h2 {
  float: left;
  display: flex;
  align-items: flex-start;
  flex-direction: column-reverse;
  margin-left: min(146px,10.13vw);
  padding-top: 2em;
  padding-left: 2.93em;
  background: transparent url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241231144255297239.svg) left top / 5.53em auto no-repeat;
}

.top-about h2::after {
  content: 'about';
  align-self: flex-end;
  margin-right: 10px;
  color: #787878;
  font-size: 0.5625em;
  font-family: "League Spartan", serif;
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.top-about h2 strong {
  padding-top: 1em;
  padding-bottom: 0.375em;
  font-weight: inherit;
  font-style: normal;
}

:where(.top-about, .top-menu, .top-recruit) img {
  display: inline-block;
  width: min(100%,640px);
}

.top-about img {
  float: right;
  margin-top: clamp(48px, 24.000px + 3.75vw, 60px);
}

@media (width > 960px) {
  .top-about img {
    width: min(1046px, calc(100% - 146px - 5.86rem - 6.875rem));
  }

  .top-menu img {
    width: min(1031px,71.6vw);
  }

  .top-recruit img {
    width: min(1059px,73.54vw);
  }
}

:where(.top-about, .top-menu, .top-recruit) .text-wrap {
  clear: both;
  max-width: 1180px;
}

:where(.top-about, .top-recruit) .text-wrap {
  display: grid;
  justify-items: end;
}

.top-about .text-wrap {
  gap: clamp(48px, 25.358px + 6.038vw, 64px);
}

.top-about .p1735592716216 {
  margin-top: 29px;
}

.top-menu h2 {
  float: right;
  display: flex;
  align-items: flex-start;
  flex-direction: column-reverse;
  margin-top: 26px;
  margin-bottom: clamp(48px, 24.000px + 3.75vw, 60px);
  margin-right: min(120px,8.33vw);
  padding-top: 2em;
  padding-right: 4.125em;
  background: transparent url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241231144255505712.svg) right top / 5.53em auto no-repeat;
}

.top-menu h2::after {
  content: 'menu';
  align-self: flex-end;
  margin-right: 7px;
  margin-bottom: -12px;
  color: #787878;
  font-size: 0.5625em;
  font-family: "League Spartan", serif;
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.top-menu .text-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(30px, -38.000px + 10.625vw, 64px);
  margin-top: clamp(48px, -16.000px + 10vw, 80px);
}

.top-menu .link-button {
  margin-top: 14px;
}

.top-recruit h2 {
  float: left;
  display: flex;
  align-items: flex-start;
  flex-direction: column-reverse;
  margin-left: min(119px,8.26vw);
  padding-top: 2.28em;
  padding-left: 3.3125em;
  background: transparent url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20241231144255488403.svg) left top / 5.53em auto no-repeat;
}

.top-recruit h2::after {
  content: 'recruit';
  align-self: flex-end;
  margin-right: 10px;
  margin-bottom: -27px;
  color: #787878;
  font-size: 0.5625em;
  font-family: "League Spartan", serif;
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.top-recruit img {
  float: right;
  margin-top: clamp(48px, 4.000px + 6.875vw, 70px);
}

.top-recruit .text-wrap {
  gap: clamp(48px, -42.000px + 14.063vw, 93px);
}

.top-recruit .p1735592883701 {
  margin-top: 48px;
}

.page-recruit p {
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.page-recruit .p1735702312027 {
  margin-top: clamp(48px, 31.579px + 4.211vw, 72px);
  margin-bottom: clamp(80px, 11.579px + 17.544vw, 180px);
  text-align: center;
}

.page-recruit .recruit-info {
  display: grid;
  gap: clamp(24px, 13.053px + 2.807vw, 40px);
  max-width: 663px;
  margin-top: clamp(48px, 28.158px + 5.088vw, 77px);
  padding-right: 0;
  padding-left: 0;
}

.page-recruit .recruit-info + .recruit-info {
  margin-top: clamp(72px, 25.474px + 11.93vw, 140px);
}

.recruit-info .row {
  gap: 0.5em;
  flex-wrap: nowrap;
  margin-right: 0;
  margin-left: 0;
}

.recruit-info .item-heading {
  flex: 0 0 26.69%;
}

@media (width > 640px) {
  .recruit-info .item-heading {
    flex-basis: 9.33em;
  }
}

.recriut-img-wrap {
  height: min(845px,58.68vw);
  padding-top: min(135px,9.375vw);
}

@media (width < 960px) {
  .recriut-img-wrap {
    margin-right: -9.5vw;
    margin-left: -9.5vw;
  }
}

.page-access {
  padding-bottom: clamp(64px, 18.842px + 11.579vw, 130px);
}

.page-access .page-main-inner > .container {
  max-width: 1150px;
}

.access-info {
  position: relative;
  text-align: center;
}

.access-info::after {
  content: '';
  display: block;
  width: min(883px,61.32vw);
  aspect-ratio: 883/651;
  margin-top: 48px;
  margin-bottom: 48px;
  margin-left: auto;
  background: transparent url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20250101142218603304.png) center / 100% auto no-repeat;
}

@media (width > 960px) {
  .access-info::after {
    position: absolute;
    top: 68px;
    right: max(-145px,-10.1vw);
    margin-top: 0;
    margin-bottom: 0;
    margin-left: 0;
  }
}

.access-info .container {
  max-width: 575px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 0;
  padding-left: 0;
}

.access-info .row {
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: center;
  gap: 8px;
  margin-right: 0;
  margin-left: 0;
}

.access-info > * {
  position: relative;
}

@media (width > 960px) {
  .access-info > * {
    max-width: 575px;
  }
  .access-info .container {
    margin-right: 0;
    margin-left: 0;
  }
}

.access-info h2 {
  margin-bottom: clamp(48px, 29.526px + 4.737vw, 75px);
}

.access-info p {
  line-height: 1.8;
  letter-spacing: 0.03em;
}

.access-info .p1735705977269 {
  margin-top: 16px;
  margin-bottom: 16px;
}

.access-info .hours {
  display: grid;
  justify-items: center;
  margin-top: 24px;
}

.access-info .budget {
  margin-top: clamp(48px, 32.947px + 3.86vw, 70px);
}

.access-info .budget p:nth-of-type(1) {
  margin-bottom: 18px;
}

.access-info .seats {
  margin-top: 32px;
}

.access-info .seats p:nth-of-type(1) {
  margin-bottom: 10px;
}

@media (width > 960px) {
  .page-access .map-container {
    margin-top: clamp(96px, 31.684px + 16.491vw, 190px);
  }
}

.page-menu {
  padding-bottom: 100px;
}

@media (width > 960px) {
  .page-menu {
    padding-bottom: clamp(160px, 90.543px + 17.81vw, 347px);
  }
}

.page-menu p {
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.page-menu .p1735766357460 {
  margin-bottom: clamp(32px, 11.474px + 5.263vw, 62px);
  text-align: center;
}

.menu-wrap {
  position: relative;
}

.menu-wrap + .menu-wrap {
  margin-top: clamp(64px, 39.368px + 6.316vw, 100px);
}

.menu-list {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 24px;
  max-width: 415px;
  margin-top: clamp(24px, 7.579px + 4.211vw, 48px);
  margin-right: auto;
  margin-left: auto;
  font-size: clamp(0.875rem, 0.485rem + 1.6vw, 1.125rem);
}

.menu-list .row {
  justify-content: space-between;
  gap: 0 1em;
}

.menu-name {
  flex: 1 0 auto;
}

.menu-price {
  flex: 1 0 auto;
  text-align: right;
}

.page-menu img {
  display: block;
  max-width: 100%;
  margin-top: clamp(64px, 39.368px + 6.316vw, 100px);
}

.menu-wrap:nth-of-type(odd) img {
  margin-left: -16px;
}

.menu-wrap:nth-of-type(even) img,
.menu-wrap:last-of-type img {
  margin-right: -16px;
  margin-left: auto;
}

@media (width > 960px) {
  .page-menu img {
    position: absolute;
    width: calc(50% - 195px);
  }

  .menu-wrap:nth-of-type(odd) img {
    margin-left: 0;
    left: -15px;
  }

  .menu-wrap:nth-of-type(even) img,
  .menu-wrap:last-of-type img {
    margin-right: 0;
    margin-left: 0;
    right: -15px;
  }

  .menu-wrap:last-of-type img {
    left: auto;
  }

  .menu-wrap:nth-of-type(2) img {
    top: -120px;
    max-width: 506px;
  }

  .menu-wrap:nth-of-type(3) img {
    top: 7px;
    max-width: 460px;
  }

  .menu-wrap:nth-of-type(4) img {
    top: 70px;
    max-width: 431px;
  }

  .menu-wrap:nth-of-type(5) img {
    top: -33.26vw;
    width: calc(50% - 156px);
    max-width: 551px;
  }

  .menu-wrap:nth-of-type(6) img {
    top: -33.4vw;
    max-width: 431px;
  }

  .menu-wrap:nth-of-type(7) img {
    top: -198px;
    max-width: 415px;
  }
}

.page-concept {
  padding-bottom: 63px;
}

.page-concept p {
  line-height: 1.6;
  letter-spacing: 0.04em;
}

@media (width <= 960px) {
  .concept-wrap p {
    margin-top: 1em;
  }
}

.page-concept .concept-lead .col {
  padding-right: 0;
  padding-left: 0;
}

.page-concept .p1735791730608,
.page-about .p1735798681590 {
  max-width: 1020px;
  margin-right: auto;
  margin-left: auto;
  margin-bottom: clamp(100px, 31.579px + 17.544vw, 200px);
  text-align: center;
}

.concept-lead h2 {
  text-align: left;
}

.concept-lead {
  gap: 44px 3%;
  margin-bottom: clamp(64px, 19.526px + 11.404vw, 129px);
  margin-right: 0;
  margin-left: 0;
}

.concept-lead .col {
  flex: 0 0 100%;
}

.concept-lead img {
  margin-left: auto;
}

@media (width < 960px) {
  .concept-lead img {
    margin-right: -15px;
  }
}

@media (width > 960px) {
  .concept-lead img {
    width: min(657px,45.625vw);
  }
}

@media (width > 1024px) {
  .concept-lead {
    flex-wrap: nowrap;
  }
  .concept-lead .col {
    flex: 0 0 59%;
    margin-right: -109px;
    padding-top: 19px;
    padding-right: 0;
  }
  .concept-lead img {
    flex: 0 0 auto;
  }
}

@media (width > 1280px) {
  .concept-lead .col {
    padding-left: min(186px,12.92vw);
  }
}

.concept-lead h2 {
  margin-bottom: 50px;
}

.concept-lead + h2 {
  margin-bottom: 46px;
}

.concept-wrap {
  max-width: 1300px;
  margin-right: auto;
  margin-left: auto;
}

.concept-wrap::after {
  content: '';
  display: block;
  clear: both;
}

@media (width > 960px) {
  .concept-wrap .right {
    float: right;
  }

  .concept-wrap .left {
    float: left;
  }
}

.concept-wrap .c3060 {
  margin-bottom: clamp(48px, -56.000px + 10.833vw, 100px);
}

@media (width > 640px) {
  .concept-wrap .c3060 {
    margin-top: clamp(48px, -16.000px + 6.667vw, 80px);
  }
}

.concept-wrap .container-2 {
  clear: left;
  max-width: 100%;
  margin-top: clamp(48px, 14.000px + 3.542vw, 65px);
  margin-bottom: clamp(48px, -30.000px + 8.125vw, 87px);
  padding-bottom: 48px;
}

.concept-wrap .container-2 + img {
  margin-top: -48px;
}

.concept-wrap .container-3 {
  clear: right;
  max-width: 100%;
  margin-top: clamp(48px, -88.000px + 14.167vw, 116px);
  margin-bottom: clamp(48px, 16.000px + 3.333vw, 64px);
}

@media (width > 960px) {
  .concept-wrap .c3060 {
    max-width: 650px;
  }
  .concept-wrap .container-2 {
    max-width: 691px;
  }
  .concept-wrap .container-3 {
    max-width: 582px;
  }
}

.concept-wrap .container {
  padding-right: 0;
  padding-left: 0;
}

.concept-wrap h3 {
  margin-bottom: 0;
  font-size: clamp(1.125rem, 0.9539rem + 0.7018vw, 1.375rem);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.concept-wrap h3 + p {
  padding-left: 0;
}

.concept-wrap .row {
  align-items: flex-end;
  gap: 106px;
  margin-right: 0;
  margin-left: 0;
}

.concept-wrap .c2621 {
  clear: both;
  float: right;
  width: min(513px,35.625vw);
  margin-top: -20px;
  margin-right: calc(-50vw + 50%);
}

@media (width <= 640px) {
  .concept-wrap .row {
    justify-content: space-between;
    gap: 1em;
  }
  .concept-wrap .c2621 {
    margin-top: 48px;
    margin-right: -15px;
  }
}

@media (width <= 960px) {
  .concept-wrap .row p {
    margin-top: 0;
  }
}

@media (width > 960px) {
  .concept-wrap .c3060 {
    padding-right: 3.15%;
  }

  .concept-wrap .container-2 {
    padding-left: 11.25%;
  }

  .concept-wrap .container-3 {
    padding-right: 24px;
  }

  .concept-wrap p,
  .concept-wrap .c3060 p {
    padding-left: 2.78em;
  }

  .concept-wrap .c3060 p {
    padding-right: 1.89em;
  }

  .concept-wrap .container-3 + img {
    margin-left: 6.15%;
  }

  .concept-wrap .container-3 + img {
    margin-top: -48px;
  }
}

.page-about h1 {
  display: flex;
  align-items: flex-start;
  flex-direction: column-reverse;
}

.page-about h1 em {
  padding-top: 1em;
  padding-bottom: 0.375em;
  font-weight: inherit;
  font-style: normal;
}

.page-about p {
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.page-about .p1735798681590 {
  margin-top: clamp(48px, 31.579px + 4.211vw, 72px);
}

.page-about .concept-lead {
  margin-bottom: clamp(48px, 13.105px + 8.947vw, 99px);
}

.page-about .concept-lead .col {
  padding-top: 37px;
}

.page-about .concept-lead .p1735798738292 {
  margin-bottom: 22px;
}

.page-about .concept-lead strong {
  font-style: normal;
  font-weight: inherit;
}

.page-about .h1735798786844 {
  text-align: left;
}

.about-row {
  justify-content: space-between;
  gap: 48px;
  max-width: 1344px;
  margin-right: auto;
  margin-left: auto;
}

.about-row .col {
  flex: 0 0 100%;
  padding-top: clamp(48px, 35.000px + 3.333vw, 67px);
  padding-right: 0;
  padding-left: 0;
}

.about-row h2 {
  margin-bottom: clamp(48px, 30.211px + 4.561vw, 74px);
}

.page-about .img-wrap {
  margin: clamp(120px, 34.474px + 21.93vw, 245px) -15px clamp(72px, 28.211px + 11.228vw, 136px);;
  text-align: center;
}

@media (width > 960px) {
  .about-row {
    flex-direction: row-reverse;
    flex-wrap: nowrap;
  }
  .about-row .col {
    flex: 1 1 auto;
    max-width: 50%;
  }
  .about-row .col p {
    max-width: 627px;
  }
  .about-row img {
    width: min(587px, 43.67vw);
  }
  .page-about .concept-lead img {
    width: min(635px,44.1vw);
  }
}

.page-service h1 {
  margin-top: clamp(28px, 52px - 4vw, 42px);
  margin-bottom: clamp(48px, 22.684px + 6.491vw, 85px);
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.25rem, 0.7368rem + 2.1053vw, 2rem);
  font-weight: 400;
  letter-spacing: 0.12em;
  text-align: center;
}

.page-service .c2582 {
  display: block;
  width: min(1041px,100%);
  margin-right: auto;
  margin-left: auto;
}

.page-service .h1736825028207 {
  margin-top: clamp(64px, 32.526px + 8.07vw, 110px);
  margin-bottom: clamp(32px, 7.368px + 6.316vw, 68px);
}

.page-service .p1736825042236 {
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-align: center;
}

.page-service .point {
  margin-right: -15px;
  margin-left: -15px;
  padding-top: clamp(140px, 60.632px + 20.351vw, 256px);
  padding-bottom: 240px;
  padding-right: 15px;
  padding-left: 15px;
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20250114141406816006.jpg), url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20250114125225983065.png);
  background-position: right 15px top clamp(50px, -97.105px + 37.719vw, 265px), center bottom;
  background-repeat: no-repeat;
  background-size: min(478px,33.19vw) auto, 100% auto;
}

@media (width > 640px) {
  .page-service .point {
    padding-bottom: 500px;
  }
}

@media (width > 1024px) {
  .page-service .point {
    padding-bottom: 600px;
  }
}

@media (width > 1280px) {
  .page-service .point {
    padding-bottom: min(594px,41.25vw);
    background-size: min(478px,33.19vw) auto, 100% auto;
  }
}

.page-service .point-inner {
  max-width: 1150px;
  margin-top: clamp(48px, 17.211px + 7.895vw, 93px);
  margin-right: auto;
  margin-left: auto;
  counter-reset: number;
}

.page-service .point .container {
  display: flex;
  align-items: flex-start;
  gap: 32px;
  max-width: 100%;
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0;
  font-size: 1rem;
  counter-increment: number;
}

@media (width > 1024px) {
  .page-service .point .container {
    padding-left: 7.7%;
  }
}

.page-service .point .container + .container {
  margin-top: clamp(64px, 24.316px + 10.175vw, 122px);
}

.page-service .point .container:nth-of-type(even) {
  max-width: calc(745px + 7.7%);
  margin-left: auto;
}

.page-service .point .container::before {
  content: '0'counter(number);
  font-family: "Noto Serif JP", serif;
  font-size: 3rem;
  letter-spacing: 0.05em;
}

.page-service h3 {
  font-size: clamp(1.125rem, 0.9539rem + 0.7018vw, 1.375rem);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.page-service .point h3 {
  margin-top: 6px;
}

.page-service h3 + p {
  letter-spacing: 0.04em;
}

.page-service .point h3 + p {
  margin-top: 20px;
}

@media (width > 960px) {
  .page-service .point h3 + p {
    padding-left: min(120px,10.43vw);
  }
}

.page-service .plan {
  margin-right: -15px;
  margin-left: -15px;
  padding-top: clamp(96px, 38.526px + 14.737vw, 180px);
  padding-bottom: clamp(100px, 19.263px + 20.702vw, 218px);
  padding-right: 15px;
  padding-left: 15px;
  background-image: url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20250114125225281380.jpg), url(https://sakanadokoro-shikenbaru.jp/system_panel/uploads/images/20250114144850325288.jpg);
  background-position: right clamp(0px, -34.211px + 8.772vw, 50px) top clamp(40px, -85.211px + 32.105vw, 223px), left 14px bottom;
  background-repeat: no-repeat;
  background-size: 26.59% auto, 27.43% auto;
}

.page-service .plan h2 {
  margin-bottom: clamp(32px, 4.632px + 7.018vw, 72px);
}

.page-service .plan .container {
  max-width: 496px;
  padding-right: 0;
  padding-left: 0;
}

.page-service .plan .container + .container {
  margin-top: clamp(32px, 15.579px + 4.211vw, 56px);
}

.page-service .plan h3 + p {
  margin-top: 10px;
  padding-left: 20.16%;
}

.page-service .access {
  padding-top: clamp(64px, 25.000px + 10vw, 121px);
  /* padding-bottom: clamp(100px, 21.316px + 20.175vw, 215px); */
}

.page-service .access p {
  letter-spacing: 0.04em;
  line-height: 1.6;
  text-align: center;
}

.page-service .access .p1736825220115 {
  margin-top: clamp(48px, 39.105px + 2.281vw, 61px);
  margin-bottom: clamp(54px, 24.579px + 7.544vw, 97px);
}

.page-service .access .link-button a {
  padding: 19px calc(64px + 1em) 19px 58px;
  border-bottom-color: #722b27;
}

.page-service .access .link-button a:focus-visible {
  border-bottom-color: #722b27;
}
@media (any-hover: hover) {
  .page-service .access .link-button a:hover {
    border-bottom-color: #722b27;
  }
}

.page-service .p1736825329825 {
  margin-bottom: clamp(64px, 70.000px + 10vw, 120px);
  letter-spacing: 0.04em;
  line-height: 1.6;
  text-align: center;
}

.service-img {
  margin-bottom: clamp(100px, 24.737px + 19.298vw, 210px);
  text-align: center;
}
