@charset "utf-8";
/* 一般 */
div,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video,input,textarea {
  margin: 0;
  padding: 0;
  border: none;
  font-size: 100%;
}
.town-attractions {
  position: relative;
  text-align: center;
  width: 100%;
  margin: 10px auto 0;
  padding: 0;
  box-sizing: border-box;
}
.background-graphic {
  position: absolute;
  top: 15%;
  left: 50%;
  transform: translateX(-50%);
  width: clamp(100px, 20vw, 150px);
  height: auto;
  object-fit: contain;
  z-index: 0;
}
.main-title {
  position: relative;
  font-size: clamp(22px, 16.545px + 1.455vw, 34px);
  font-family: var(--kaisei);
  font-weight: 700;
  color: #38535b;
  margin: 0;
  letter-spacing: 0.1em;
  z-index: 1;
}
.sub-title {
  position: relative;
  font-size: clamp(15px, 13.800px + 0.32vw, 17px);
  color: #38535b;
  margin: 0;
  font-family: var(--gill);
  font-weight: 400;
  z-index: 1;
}
.pin-wrapper {
  width: 100%;
  max-width: 600px;
  height: auto;
  position: relative;
  padding-top: 10px; 
  margin: 0 auto;
}
.tekuteku-container {
  width: 100%;
  height: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  position: relative;
}
.tekuteku-text {
  position: relative;
  text-align: center;
  font-family: var(--mincho);
  font-weight: 400;
  font-size: clamp(0.875rem, 0.805rem + 0.31vw, 1rem);
  margin: 10px 0 0;
  padding: 0;
  line-height: 1.6;
  color: #011e27;
  z-index: 2;
}
.tekuteku-text p {
  margin: 16px 0 0;
  padding: 0;
}
.fujisan {
  width: 100%;
  max-width: 800px;
  height: auto;
  margin: 0 auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  overflow: hidden;
  object-fit: contain;
  object-position: center center;
}
/* 丸枠 */
.circle-container {
  width: 100%;
  max-width: 500px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 400px auto;
  overflow: hidden;
}
.circle-box {
  width: clamp(320px, 241.250px + 21.875vw, 460px);
  height: clamp(320px, 241.250px + 21.875vw, 460px);
  border-radius: 50%;
  background-color: #f5ecd7;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}
.text-content {
  text-align: center;
  line-height: 2;
}
.text-content p {
  margin: 0;
  padding: 0;
  font-size: clamp(15px, 13.875px + 0.313vw, 17px);
  font-family: var(--gosik);
  font-weight: 400;
  color: #1a5465;
}
/* 画像ギャラリー */
.gallery {
  position: relative;
  width: 100%;
  max-width: 1000px;
  height: auto;
  margin: 0 auto;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  box-sizing: border-box;
}
.gallery-img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}
.hedding-title {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: 0;
  padding: 0;
  transform: translate(-50%, -50%);
  font-family: Georgia, 'Times New Roman', Times, serif;
  font-size: clamp(1.375rem, 0.807rem + 2.424vw, 2.625rem);
  color: white;
  mix-blend-mode: difference;
  text-shadow: 0 3px 5px rgb(0 0 0 / 1);
}
/* 仲間との出会い */
.nakama-box {
  background-color: var(--bodycolor);
  width: 100%;
  text-align: center;
}
.nakama-container {
  width: 100%;
  max-width: 800px;
  box-sizing: border-box;
  margin: 0 auto;
}
.nakama-title {
  font-family: var(--kaisei);
  font-weight: 700;
  font-size: clamp(18px, 16.182px + 0.485vw, 22px);
  color: #38535b;
  text-align: left;
  padding-left: 15px;
}
.nakama-subtitle {
  font-family: var(--gill);
  font-weight: 400;
  font-size: clamp(14px, 12.800px + 0.32vw, 16px);
  color: #577179;
  text-align: left;
  padding-left: 15px;
}
.nakama-text {
  width: 100%;
  max-width: 800px;
  margin: 20px auto;
  padding: 0 10px;
  text-align: left;
}
.nakama-text p {
  font-family: var(--mincho);
  font-weight: 400;
  font-size: clamp(0.875rem, 0.805rem + 0.31vw, 1rem);
  margin: 10px 0 0;
  padding: 0;
  line-height: 1.6;
  color: #011e27;
}
.svg-box {
  width: 80%;
  max-width: 600px;
  margin: 0 auto;
}
.tozansha {
  fill: #111;
  stroke: #111;
  stroke-width: 0.5px;
  opacity: 0;
  stroke-dasharray: 2000;
  stroke-dashoffset: 2000;
}

/* h2タイトル */
.h2-title, .h2-title2 {
  font-family: var(--gill);
  font-size: clamp(22px, 15.400px + 1.76vw, 33px);
  font-weight: 700;
  color: #38535b;
  margin: 0;
  padding: 0;
  position: relative;
  display: inline-block;
}
.h2-title2 {
  border-top: 2px solid #5ba9f7;
  border-bottom: 2px solid #5ba9f7;
}

/* インスタ */
.insta-title {
  display: flex;
  width: 95%;
  max-width: 600px;
  margin: 0 auto;
  align-items: end;
}
.insta-title img {
  width: clamp(30px, -3.333px + 8.889vw, 50px);
  height: auto;
  object-fit: contain;
  margin-right: 10px;
}
.insta-container {
  width: 100%;
  box-sizing: border-box;
}
.insta_list {
  width: clamp(310px, 116.667px + 60.417vw, 600px);
  height: clamp(320px, 120.000px + 62.5vw, 620px);
  margin: 0 auto;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: clamp(5px, 1.667px + 1.042vw, 10px);
  box-sizing: border-box;
}
.insta_list li {
  aspect-ratio: 1 / 1;
  position: relative;
  padding-top: 100%;
  box-shadow: 0 0 5px rgb(0 0 0 / .5);
  border-radius: clamp(5px, -3.333px + 2.222vw, 10px);
}
.insta_list .square-content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.insta_list img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: clamp(5px, -3.333px + 2.222vw, 10px);
}
.insta_btn {
  background: black;
  padding: .5em 1em;
  width: fit-content;
  margin: 10px auto;
  cursor: pointer;
  transition: .3s;
  border-radius: 5px;
  user-select: none;
}
.insta_btn a {
  color: white;
  font-size: clamp(13px, 12.091px + 0.242vw, 15px);
  font-weight: 400;
  text-decoration: none;
}
 @media (any-hover: hover) {
  .insta_btn:hover {
    background: #555;
  }
}
/* メニュー */
.menu-box {
  width: 90%;
  max-width: 800px;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
}
.menu-img {
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 20px;
  box-shadow: 0 0 5px rgb(0 0 0 / .5);
  transform-origin: left;
}
.menu-img-box {
  visibility: hidden;
  position: relative;
  width: 100%;
  height: auto;
  max-width: 800px;
  overflow: hidden;
}
img.menu-number {
  position: absolute;
  top: clamp(5px, -4.000px + 2.4vw, 20px);
  left: clamp(5px, -4.000px + 2.4vw, 20px);
  width: auto;
  height: clamp(30px, 12.000px + 4.8vw, 60px);
  object-fit: contain;
  object-position: center center;
}
img.menu-number2 {
  position: absolute;
  top: clamp(5px, -4.000px + 2.4vw, 20px);
  right: clamp(5px, -4.000px + 2.4vw, 20px);
  width: auto;
  height: clamp(30px, 12.000px + 4.8vw, 60px);
  object-fit: contain;
}
.title-box {
  width: 90%;
  max-width: 350px;
  position: absolute;
  top: 10%;
  left: 80%;
  transform: translate(-50%, 0);
  box-sizing: border-box;
}
.title-box2 {
  width: 90%;
  max-width: 350px;
  position: absolute;
  top: 10%;
  left: 10%;
  box-sizing: border-box;
}
.menu-title {
  font-size: clamp(20px, 12.800px + 1.92vw, 32px);
  font-family: var(--kaisei);
  font-weight: 700;
  color: white;
  text-shadow: 0 2px 3px rgb(0 0 0 / .8);
  margin: 0;
  padding: 0;
  text-align: left;
}
.menu-text {
  margin: clamp(5px, -1.000px + 1.6vw, 15px) 0 0 clamp(5px, 2.000px + 0.8vw, 10px);
  padding: 0;
  font-size: clamp(14px, 12.800px + 0.32vw, 16px);
  font-family: var(--gosik);
  font-weight: 400;
  color: white;
  text-shadow: 0 2px 3px rgb(0 0 0 / .8);
  line-height: 1.6;
  text-align: left;
}

@property --gradient-angle-with {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}
.color-button {
  display: flex;
  margin: 0 auto;
  position: absolute;
  padding: clamp(10px, 8.800px + 0.32vw, 12px) clamp(18px, 12.000px + 1.6vw, 28px);
  font-family: var(--gill);
  font-weight: 400;
  font-size: clamp(0.875rem, 0.762rem + 0.48vw, 1.063rem);
  line-height: 1.6;
  letter-spacing: 0.2em;
  border: 1px solid transparent;
  border-radius: 50px;
  color: white;
  background: 
    linear-gradient(#4098ff, #4058ff) padding-box,
    conic-gradient(
      from var(--gradient-angle-with),
      transparent,
      gold 5%,
      white 10%,
      gold 15%,
      transparent 20%
    ) border-box;
  cursor: pointer;
  animation: rotate-with 3s linear infinite;
  overflow: hidden;
}
.no-1 {
  bottom: clamp(10px, -14.000px + 6.4vw, 50px);
  right: clamp(10px, -14.000px + 6.4vw, 50px);
}
.no-2 {
  bottom: clamp(10px, -14.000px + 6.4vw, 50px);
  left: clamp(10px, -14.000px + 6.4vw, 50px);
}
@keyframes rotate-with {
  to { --gradient-angle-with: 360deg; }
}
.color-button:active { translate: 0 1px; }
.color-button::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  z-index: 0;
  width: 100%;
  aspect-ratio: 1;
  background: linear-gradient(-50deg, transparent, gold, transparent);
  mask-image: radial-gradient(circle at bottom, transparent 40%, black);
  opacity: 0.6;
  pointer-events: none;
  animation: 
    rotate-element 3s linear infinite,
    rotate-element calc(3s / 0.4) linear infinite reverse paused;
  animation-composition: add;
}
@keyframes rotate-element { to { rotate: 360deg; } }
.color-button span {
  position: relative;
  z-index: 1;
}
/* 案内人 */
.guide-blob {
  width: 100%;
  max-width: 300px;
  margin: 0 auto;
}
.guide-box {
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  box-sizing: border-box;
}
.guide-box img {
  width: 160px;
  height: auto;
  object-fit: contain;
}
.guide-text {
  text-align: left;
  font-family: var(--mincho);
  font-weight: 400;
  font-size: clamp(14px, 12.800px + 0.32vw, 16px);
  color: #104252;
  padding: 0 15px;
}

/* フッター */
.gazou-waku {
  margin: 80px auto 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
}
.noasobi-footer-logo {
  width: clamp(120px, 83.636px + 9.697vw, 200px);
  height: auto;
  object-fit: contain;
}
.footer {
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 20px 0 0;
  background-color: var(--bodycolor);
}
.link-container {
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: var(--gosik);
  font-weight: 400;
  font-size: 14px;
  color: #011e27;
}
.link-list {
  list-style: none;
  padding: 0;
}
.link-list li {
  position: relative;
  padding-left: 15px;
  margin-bottom: 5px;
  line-height: 1.6;
  transition: all 0.3s ease;
}
.link-list li a {
  color: #011e27;
}
@media (hover: hover) {
  .link-list li:hover {
    transform: translateX(-5px);
  }
}
.link-list li::before {
  content: "→";
  position: absolute;
  left: 0;
}
.footer-copyright {
  width: 100%;
  height: 50px;
  background: #000;
  display: flex;
  align-items: center;
}
.footer-copyright p {
  font-family: var(--gosik);
  font-weight: 400;
  color: white;
  font-size: 13px;
  margin-left: auto;
  margin-right: 5px;
}
/* スペース */
.space-5 { margin-top: -5px; }
.space-10 { margin-top: -10px; }
.space-15 { margin-top: -15px; }
.space-20 { margin-top: -20px; }
.space-30 { margin-top: -30px; }
.space-40 { margin-top: -40px; }
.space-50 { margin-top: -50px; }
.space-60 { margin-top: -60px; }
.space10 { margin-top: 10px; }
.space20 { margin-top: 20px; }
.space30 { margin-top: 30px; }
.space40 { margin-top: 40px; }
.space50 { margin-top: 50px; }
.space60 { margin-top: 60px; }
.space80 { margin-top: 80px; }
.space100 { margin-top: 100px; }
.space200 { margin-top: 200px; }
.space300 { margin-top: 300px; }
.space400 { margin-top: 400px; }
.botomu10 { margin-bottom: 10px; }

/* 画像大きさ */
.haba90 { width: 90%; }
.haba80 { width: 80%; }
.haba70 { width: 70%; }
.haba60 { width: 60%; }
.haba50 { width: 50%; }
.haba45 { width: 45%; }
.haba40 { width: 40%; }
.haba30 { width: 30%; }
.haba20 { width: 20%; }
.haba15 { width: 15%; }
.haba10 { width: 10%; }

/* フォント */
@font-face {
    src: url("/fonts/NotoSansJP-Regular.woff2") format("woff2");
    font-family: "Noto Sans JP";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    src: url("/fonts/GIL_____.woff2") format("woff2");
    font-family: "Gill sans";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    src: url("/fonts/GILB____.woff2") format("woff2");
    font-family: "Gill sans";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}
@font-face {
    src: url("/wp-content/themes/diver_child/custom-fonts/cocokara-hike-kaisei-700.woff2") format("woff2");
    font-family: "Kaisei Opti";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}