@charset "UTF-8";
/*
Theme Name: wubokinawa
Theme URI:
Author: NOIPLUS
Author URI:
Description: WUB沖縄 公式サイト（np2026ベース）
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: np2026
*/
/* CSS Document */
/*=================================================
 *  リセット
 * ================================================= */
html, body, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, header, hgroup, section, article, aside, hgroup, footer, figure, figcaption, nav {
  font-size: 100%;
  padding: 0;
  margin: 0;
  font-weight: inherit;
}
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
  display: block;
}
img {
  border: 0;
  vertical-align: bottom;
}
ul, ol {
  list-style: none;
}
table {
  border-spacing: 0;
  border-collapse: collapse;
  empty-cells: show;
}
p {
  margin: auto;
}
button {
  font-family: inherit;
  cursor: pointer;
}
[hidden] {
  display: none !important;
}
.wp-caption {
  width: 100% !important;
  height: auto;
}
/*=================================================
 * ロールオーバー
 * ================================================= */
a {
  transition: 0.3s ease-in-out;
  color: inherit;
  text-decoration: none;
}
a:hover {
  opacity: 0.6;
}
/* マウス操作時の枠線は消し、キーボード操作時は表示する */
*:focus:not(:focus-visible) {
  outline: none;
}
/*=================================================
 * サイト全体
 * ================================================= */
:root {
  --tc: #6e2683;
  --tc-light: #bcb0e6;
  --lavender: #ebe3fa;
  --lavender2: #e2d7f9;
  --line: #cbbcd0;
}
body {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.17vw;
  color: var(--tc);
  line-height: 1.8;
  letter-spacing: 0.06em;
  background-color: var(--lavender2);
}
.en {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 400;
  letter-spacing: 0.06em;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
.mainWrap {
  width: 90vw;
  margin: 0 auto;
  position: relative;
}
.colWrap {
  width: 47.6vw;
  margin-left: auto;
  margin-right: auto;
}
.fullWrap {
  width: 100%;
}
.sp {
  display: none !important;
}
.flex {
  display: flex;
}
.flex-sb {
  display: flex;
  justify-content: space-between;
}
img {
  width: 100%;
  height: auto;
}
.rel {
  position: relative;
}
.abs {
  position: absolute;
}
.shadow {
  box-shadow: 0 0.3vw 1vw 0 rgb(0 0 0 / 20%);
}
.t-shadow {
  text-shadow: 1px 2px 3px #0000004d;
}
.dotstyle {
  list-style: disc;
  margin-left: 1.5vw;
}
/*=================================================
 * gridセット
 * ================================================= */
.grid2,
.grid3,
.grid4,
.grid7-3,
.grid6-4,
.grid8-2,
.grid3-7,
.grid4-6,
.grid2-8{
  display:grid;
  gap:var(--grid-gap, 4vw);
}
.grid2{
  grid-template-columns:repeat(2, 1fr);
}
.grid3{
  grid-template-columns:repeat(3, 1fr);
}
.grid4{
  grid-template-columns:repeat(4, 1fr);
}
.grid7-3{
  grid-template-columns:7fr 3fr;
}
.grid6-4{
  grid-template-columns:6fr 4fr;
}
.grid8-2{
  grid-template-columns:8fr 2fr;
}
.grid3-7{
  grid-template-columns:3fr 7fr;
}
.grid4-6{
  grid-template-columns:4fr 6fr;
}
.grid2-8{
  grid-template-columns:2fr 8fr;
}
.grid-center{
  align-items:center;
}
.grid-start{
  align-items:start;
}
.grid-end{
  align-items:end;
}
.gap-s{
  --grid-gap:2vw;
}
.gap-m{
  --grid-gap:4vw;
}
.gap-l{
  --grid-gap:6vw;
}
@media screen and (max-width:768px){
  .grid2,
  .grid3,
  .grid4,
  .grid7-3,
  .grid6-4,
  .grid8-2,
  .grid3-7,
  .grid4-6,
  .grid2-8{
    grid-template-columns:1fr;
  }
  .gap-s{
    --grid-gap:5vw;
  }
  .gap-m{
    --grid-gap:7vw;
  }
  .gap-l{
    --grid-gap:9vw;
  }
}
/*=================================================
 * 背景色・色
 * ================================================= */
.bg-tc {
  background-color: var(--tc);
}
.bg-w {
  background-color: #fff;
}
.tc {
  color: var(--tc);
}
.white {
  color: #fff;
}
.white a {
  color: #fff;
}
.white .tc a,
.tc .white a {
  color: inherit;
}
/*=================================================
 * ボーダー
 * ================================================= */
.bd-t {
  border-top: 1px solid var(--line);
}
.bd-b {
  border-bottom: 1px solid var(--line);
}
/*=================================================
 * font
 * ================================================= */
.bold {
  font-weight: bold;
}
.right {
  text-align: right;
}
.center {
  text-align: center;
}
.f12{font-size:.9vw;}
.f14{font-size:1vw;}
.f16{font-size:1.2vw;}
.f18{font-size:1.3vw;}
.f20{font-size:1.4vw;}
.f22{font-size:1.6vw;}
.f24{font-size:1.7vw;}
.f26{font-size:1.9vw;}
.f28{font-size:2vw;}
.f30{font-size:2.2vw;}
.f32{font-size:2.3vw;}
.f34{font-size:2.5vw;}
.f36{font-size:2.6vw;}
.f38{font-size:2.7vw;}
.f40{font-size:2.9vw;}
.f42{font-size:3vw;}
.f44{font-size:3.2vw;}
.f46{font-size:3.3vw;line-height:1.3;}
.f48{font-size:3.5vw;line-height:1.3;}
.f50{font-size:3.6vw;line-height:1.2;}
.f52{font-size:3.8vw;line-height:1.2;}
.f56{font-size:4vw;line-height:1.2;}
.f60{font-size:4.3vw;line-height:1.2;}
.f70{font-size:5.1vw;line-height:1.1;}
.f80{font-size:5.8vw;line-height:1;}
.f90{font-size:6.5vw;line-height:1;}
@media screen and (max-width:768px){
.f12{font-size:3vw;}
.f14{font-size:3.5vw;}
.f16{font-size:3.6vw;}
.f18{font-size:3.7vw;}
.f20{font-size:4vw;}
.f22{font-size:5vw;}
.f24{font-size:4.2vw;}
.f26{font-size:4.5vw;}
.f28{font-size:4.5vw;}
.f30{font-size:4.5vw;}
.f32{font-size:4.5vw;}
.f34{font-size:4.5vw;}
.f36{font-size:5vw;}
.f38{font-size:5vw;}
.f40{font-size:5.2vw;}
.f42{font-size:5.3vw;}
.f44{font-size:5.4vw;}
.f46{font-size:5.5vw;line-height:1.3;}
.f48{font-size:6vw;line-height:1.3;}
.f50{font-size:9vw;line-height:1.2;}
.f52{font-size:9.2vw;line-height:1.2;}
.f56{font-size:9.5vw;line-height:1.2;}
.f60{font-size:9.8vw;line-height:1.2;}
.f70{font-size:10vw;line-height:1.1;}
.f80{font-size:11vw;line-height:1;}
.f90{font-size:12vw;line-height:1;}
}
/*=================================================
 * 背景（ページ全体のグラデーション）・白いセクション
 * ================================================= */
.pageBg {
  background: linear-gradient(180deg, #6e2683 0%, #bcb0e6 100%);
  overflow: hidden;
}
.sec-white {
  background-color: rgba(255,255,255,0.9);
}
/*=================================================
 * header
 * ================================================= */
#header {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 100%;
  height: 0;
}
.hd-logo {
  position: absolute;
  top: 0;
  left: 0;
  width: 13.2vw;
  height: 13.2vw;
  background-color: rgba(255,255,255,0.9);
  border-bottom-right-radius: 2.9vw;
  transition: 0.3s;
}
.hd-logo a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.hd-logo img {
  width: 8.1vw;
}
.hd-nav {
  position: absolute;
  top: 0;
  right: 0;
  width: 72vw;
  height: 5.5vw;
  display: flex;
  justify-content: flex-end;
  background-color: rgba(255,255,255,0.9);
  border-bottom-left-radius: 3.7vw;
  font-size: 1.24vw;
  font-weight: 500;
  white-space: nowrap;
}
.hd-nav > ul {
  display: flex;
  align-items: stretch;
  margin-right: 1.5vw;
}
.hd-nav > ul > li {
  position: relative;
  display: flex;
}
.hd-nav > ul > li > a {
  display: flex;
  align-items: center;
  padding: 0 0.75vw;
}
.hd-nav li.sns a {
  font-size: 2.05vw;
  padding: 0 1.2vw;
}
.hd-nav li.has-child ul {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 10.8vw;
  background-color: rgba(255,255,255,0.9);
  font-size: 1.17vw;
  text-align: center;
  visibility: hidden;
  opacity: 0;
  transition: 0.3s;
}
.hd-nav li.has-child:hover > ul,
.hd-nav li.has-child:focus-within > ul {
  visibility: visible;
  opacity: 1;
}
.hd-nav li.has-child ul li a {
  display: block;
  padding: 0.6vw 0;
  border-bottom: 1px solid var(--line);
}
.hd-nav li.has-child ul li:last-child a {
  border-bottom: none;
}
.hd-contact {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 10.5vw;
  background: linear-gradient(90deg, #dc78be 0%, #bcb0e6 100%);
  color: #fff;
  font-size: 1.7vw;
  letter-spacing: 0.1em;
}
/*=================================================
 * 矢印・ボタン
 * ================================================= */
.arw {
  display: inline-block;
  position: relative;
  width: 2.3vw;
  height: 0.6vw;
  margin-left: 0.8vw;
  border-bottom: 1px solid currentColor;
  vertical-align: middle;
  top: -0.3vw;
  transition: 0.3s;
}
.arw::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  width: 0.7vw;
  border-top: 1px solid currentColor;
  transform: rotate(35deg);
  transform-origin: right center;
}
a:hover .arw {
  transform: translateX(0.4vw);
}
.btn-oval {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16.3vw;
  height: 6.5vw;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 1.17vw;
}
.btn-grad {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 7.3vw;
  background: linear-gradient(90deg, #6e2683 0%, #bcb0e6 100%);
  color: #fff;
  font-size: 1.32vw;
}
.btn-line {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 23.8vw;
  height: 4.9vw;
  border: 1px solid #fff;
  background: none;
  color: #fff;
  font-size: 1.32vw;
  letter-spacing: 0.06em;
  transition: 0.3s;
}
.btn-line:hover {
  background-color: rgba(255,255,255,0.15);
}
.btn-pdf {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 6.1vw;
  border: 1px solid var(--tc);
  font-size: 1.32vw;
}
.btn-pdf i {
  font-size: 1.9vw;
  margin-right: 0.7vw;
}
.btn-pdf.is-empty {
  opacity: 0.4;
  pointer-events: none;
}
.btn-fill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 47.6vw;
  height: 7.3vw;
  background-color: var(--tc);
  color: #fff;
  font-size: 1.46vw;
}
.link-arw {
  font-size: 1.32vw;
}
/*=================================================
 * 見出し
 * ================================================= */
/* 下層ページの大見出し */
.fv-page {
  padding-top: 7.6vw;
}
.pankuzu ul {
  justify-content: flex-end;
  flex-wrap: wrap;
  font-size: 0.88vw;
}
.pankuzu li:after {
  content: "＞";
  margin: 0 0.4vw;
}
.pankuzu li:last-child:after {
  content: none;
}
.pageTtl {
  margin-top: 0.7vw;
}
.pageTtl h2 {
  font-size: 4.9vw;
  line-height: 1.25;
}
.pageTtl p {
  font-size: 1.46vw;
}
/* セクション見出し（中央・下線） */
.secTtl {
  margin-bottom: 4.5vw;
}
.secTtl h2 {
  display: inline-block;
  min-width: 12.8vw;
  font-size: 3.66vw;
  line-height: 1.4;
  border-bottom: 1px solid currentColor;
}
.secTtl p {
  font-size: 1.46vw;
  margin-top: 0.6vw;
}
/* セクション見出し（左寄せ） */
.secTtl-l h2 {
  font-size: 4.39vw;
  line-height: 1.2;
}
.secTtl-l p {
  display: flex;
  align-items: center;
  font-size: 1.17vw;
}
.secTtl-l p::before {
  content: "";
  width: 3.2vw;
  border-top: 1px solid currentColor;
  margin-right: 1.6vw;
}
/* 見出し（左に英語・右に日本語） */
.secTtl-row {
  align-items: flex-end;
  padding-bottom: 0.9vw;
  border-bottom: 1px solid var(--line);
}
.secTtl-row h2 {
  font-size: 2.93vw;
  line-height: 1.2;
}
.secTtl-row p {
  font-size: 1.46vw;
  margin: 0;
}
.lead-ttl {
  font-size: 1.68vw;
  margin-bottom: 1.5vw;
}
.lead-txt {
  font-size: 1.32vw;
  line-height: 2.05;
}
.txt {
  font-size: 1.32vw;
  line-height: 2.05;
}
.txt p + p {
  margin-top: 2.2em;
}
/*=================================================
 * 楕円カード・アイコンリスト
 * ================================================= */
.circles {
  --grid-gap: 1.7vw;
}
.circles li {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 22.2vw;
  border-radius: 50%;
  border: 1px solid currentColor;
  text-align: center;
  padding: 0 4.8vw;
}
.circles.is-fill li {
  background-color: #fff;
  border-color: var(--line);
}
.circles h4 {
  font-size: 1.46vw;
  white-space: nowrap;
}
.circles i {
  font-size: 2.6vw;
  margin: 0.9vw 0 1.4vw;
}
.circles p {
  margin: 0;
  font-size: 1.17vw;
  text-align: left;
  line-height: 1.75;
}
.iconList {
  width: 40vw;
  margin: 0 auto;
}
.iconList li {
  display: flex;
  align-items: center;
  height: 4.83vw;
  padding-left: 3.8vw;
  margin-bottom: 1.25vw;
  background-color: rgba(255,255,255,0.8);
  font-size: 1.46vw;
}
.iconList li i {
  width: 2.6vw;
  font-size: 2.2vw;
  margin-right: 2vw;
  text-align: center;
}
.iconList.is-center li {
  justify-content: center;
  padding-left: 0;
}
/*=================================================
 * top
 * ================================================= */
.top-fv {
  position: relative;
  height: 103.8vw;
}
.top-map {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0.7;
  pointer-events: none;
}
.top-catch {
  position: absolute;
  left: 4.98vw;
  top: 40.2vw;
}
.top-catch h2 {
  font-size: 4.39vw;
  line-height: 1.17;
  opacity: 0.7;
}
.top-catch p {
  font-size: 1.76vw;
  margin-top: 1.5vw;
}
.top-intro {
  position: absolute;
  left: 4.98vw;
  top: 65.2vw;
}
.top-intro p {
  font-size: 1.32vw;
  line-height: 2.05;
}
.top-intro .btns {
  gap: 1.8vw;
  margin-top: 3.8vw;
}
.top-bigtxt {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  text-align: center;
  font-size: 3.22vw;
  line-height: 0.72;
  white-space: nowrap;
  opacity: 0.7;
}
.top-beyond {
  padding: 5.8vw 0 8.4vw;
}
.top-join {
  align-items: center;
  margin: 4.4vw 0 4.6vw;
}
.top-join h3 {
  font-size: 2.2vw;
  margin-bottom: 1.4vw;
}
.top-join p {
  font-size: 1.32vw;
  line-height: 2.2;
}
.top-news {
  padding: 5.5vw 0 6.5vw;
}
.top-news-head {
  align-items: flex-start;
  margin-bottom: 3.6vw;
}
.top-news-head .link-arw {
  margin-top: 1vw;
}
/* 沖縄“平和経済”宣言バナー */
.bnr-peace {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 5.5vw;
  padding: 2.2vw 4vw;
  background: linear-gradient(90deg, #6e2683 0%, #bcb0e6 100%);
}
.bnr-peace .txt {
  display: flex;
  flex-direction: column;
}
.bnr-peace .en {
  font-size: 1.46vw;
  line-height: 1.4;
}
.bnr-peace .ttl {
  font-size: 2.2vw;
  line-height: 1.5;
}
.bnr-peace .more {
  font-size: 1.32vw;
}
/*=================================================
 * 沖縄“平和経済”宣言（本文は管理画面で入力）
 * ================================================= */
.peace {
  padding: 5vw 0 6.6vw;
}
.pageContent {
  font-size: 1.32vw;
  line-height: 2.05;
}
.pageContent p {
  margin: 0 0 1.6em;
}
.pageContent h2 {
  font-size: 2.2vw;
  line-height: 1.5;
  text-align: center;
  margin: 0 0 2.5vw;
}
.pageContent h3 {
  font-size: 1.68vw;
  line-height: 1.5;
  padding-bottom: 0.7vw;
  margin: 3.5vw 0 1.6vw;
  border-bottom: 1px solid var(--line);
}
.pageContent h4 {
  font-size: 1.46vw;
  margin: 2.5vw 0 1vw;
}
.pageContent ol,
.pageContent ul {
  margin: 0 0 1.6em 1.6em;
}
.pageContent ol {
  list-style: decimal;
}
.pageContent ul {
  list-style: disc;
}
.pageContent li + li {
  margin-top: 0.6em;
}
.pageContent hr {
  border: none;
  border-top: 1px solid var(--line);
  margin: 4vw 0;
}
.pageContent img {
  max-width: 100%;
  height: auto;
}
.pageContent a {
  border-bottom: 1px solid currentColor;
}
.pageContent .alignright,
.pageContent .has-text-align-right {
  text-align: right;
}
.pageContent .aligncenter,
.pageContent .has-text-align-center {
  text-align: center;
}
/*=================================================
 * お知らせカード
 * ================================================= */
.news-cards {
  --grid-gap: 1.8vw;
}
.top-news .news-cards {
  --grid-gap: 2.2vw;
}
.news-card a {
  display: block;
  height: 100%;
  background-color: var(--lavender);
}
.news-card .thumb {
  aspect-ratio: 285 / 177;
  overflow: hidden;
}
.news-card .thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.news-card .txt {
  padding: 1.2vw 1.4vw 1.4vw;
  font-size: 1.17vw;
  line-height: 1.6;
}
.news-card time {
  display: block;
  font-size: 1.02vw;
  margin-bottom: 0.3vw;
}
/*=================================================
 * WUBについて
 * ================================================= */
.about-lead {
  padding: 4.6vw 0 5.3vw;
}
.about-img {
  width: 47.6vw;
  margin: 0 auto 4.5vw;
  aspect-ratio: 650 / 411;
}
.about-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.about-lead .colWrap {
  margin-bottom: 5vw;
}
.greeting {
  align-items: center;
  margin-top: 5.3vw;
  padding: 1.6vw 7vw 1.6vw 4.4vw;
  background-color: var(--lavender);
}
.greeting .photo {
  width: 14.6vw;
  flex-shrink: 0;
  margin-right: 6.5vw;
}
.greeting .photo img {
  border-radius: 50%;
}
.greeting h3 {
  font-size: 1.46vw;
  padding-bottom: 0.6vw;
  margin-bottom: 1.2vw;
  border-bottom: 1px solid var(--line);
}
.greeting p {
  font-size: 1.17vw;
  line-height: 1.75;
}
.about-act,
.about-org,
.join-req {
  padding: 5vw 0 5.6vw;
}
.about-act .iconList {
  margin-bottom: 3.5vw;
}
.about-history {
  padding: 5vw 0 6.6vw;
}
.about-history .center {
  margin-top: 4vw;
}
.history-more {
  margin-top: 2.2em;
  padding-top: 2.6vw;
  border-top: 1px solid rgba(255,255,255,0.8);
}
.history-head {
  margin-bottom: 2.2em;
}
.history-head .ttl {
  font-size: 1.46vw;
}
.history-head .author {
  font-size: 1.02vw;
}
.history-more h4 {
  font-size: 1.17vw;
  margin-top: 2.2em;
}
.history-more p {
  font-size: 1.17vw;
  line-height: 2.2;
}
.infoTable .row {
  display: flex;
  padding: 1.6vw 0;
  border-bottom: 1px solid var(--line);
  font-size: 1.17vw;
  line-height: 1.9;
}
.infoTable .row:first-child {
  border-top: 1px solid var(--line);
}
.infoTable dt {
  width: 7.4vw;
  flex-shrink: 0;
}
.pdfBtns {
  --grid-gap: 2.2vw;
  margin-top: 2.6vw;
}
.pdfBtns.is-white .btn-pdf {
  border-color: #fff;
  color: #fff;
}
/*=================================================
 * 会員情報
 * ================================================= */
.member {
  padding: 3vw 0 6.6vw;
}
.member-total {
  font-size: 1.46vw;
  margin-bottom: 4vw;
}
.memberWrap {
  width: 79.1vw;
  margin: 0 auto;
}
.memberWrap + .memberWrap {
  margin-top: 6vw;
}
.member .secTtl-row {
  border-color: rgba(255,255,255,0.6);
}
.memberTable {
  width: 100%;
  font-size: 1.17vw;
  line-height: 1.5;
}
.memberTable th {
  font-weight: 400;
  font-size: 1.32vw;
  text-align: left;
  padding: 1.5vw 0;
}
.memberTable td {
  vertical-align: top;
  padding: 1.3vw 1vw 1.4vw 0;
}
.memberTable tr {
  border-bottom: 1px solid rgba(255,255,255,0.6);
}
.memberTable td a {
  text-decoration: underline;
  text-underline-offset: 0.25em;
}
.memberTable.is-director th:nth-child(1) { width: 26.4%; }
.memberTable.is-director th:nth-child(2) { width: 23%; }
.memberTable.is-member th:nth-child(1) { width: 13.5%; }
.memberTable.is-member th:nth-child(2) { width: 16.1%; }
.memberTable.is-member th:nth-child(3) { width: 25.4%; }
.member-asof {
  font-size: 1.32vw;
  margin-top: 3.5vw;
}
/*=================================================
 * WUBネットワーク
 * ================================================= */
.network-lead {
  padding: 3.4vw 0 6.7vw;
}
.network-lead .globe {
  width: 25.3vw;
  margin: 0 auto 2.5vw;
}
.network-list {
  padding: 10.5vw 0 5.3vw;
}
.network-area + .network-area {
  margin-top: 5.7vw;
}
.network-cards {
  --grid-gap: 1.9vw 1.76vw;
  margin-top: 1.9vw;
}
.network-cards li a,
.network-cards li span {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 5.5vw;
  background-color: rgba(255,255,255,0.8);
  font-size: 1.32vw;
}
.network-cards li i {
  font-size: 1.1vw;
  margin-left: 1.5vw;
}
.network-pdf {
  padding: 5.5vw 0 5.3vw;
}
.network-pdf .pdfBtns {
  margin-top: 0;
  --grid-gap: 1.76vw;
}
/*=================================================
 * 入会案内
 * ================================================= */
.join-lead {
  padding: 3.6vw 0 7vw;
}
.join-lead .lead-txt {
  margin-bottom: 4.3vw;
}
.join-req .note {
  font-size: 1.32vw;
  margin-top: 2.5vw;
}
.join-req .note a,
.flowList p a {
  border-bottom: 1px solid currentColor;
}
.join-flow {
  padding: 5vw 0 6.6vw;
}
.flowList li {
  position: relative;
  display: flex;
  padding: 1.6vw 2vw 2.2vw;
  background-color: var(--lavender);
}
.flowList li + li {
  margin-top: 2.6vw;
}
.flowList li + li::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -2.6vw;
  height: 2.6vw;
  border-left: 1px solid rgba(255,255,255,0.8);
}
.flowList .num {
  width: 5vw;
  flex-shrink: 0;
  font-size: 2.93vw;
  line-height: 1.2;
}
.flowList h4 {
  font-size: 1.46vw;
  margin-top: 0.8vw;
  margin-bottom: 0.4vw;
}
.flowList p {
  font-size: 1.17vw;
}
.join-cta {
  padding: 4.8vw 0;
}
/*=================================================
 * お知らせ
 * ================================================= */
.news {
  padding: 4.5vw 0 6.6vw;
}
.news-main {
  width: 66.9vw;
}
.archive-ttl {
  font-size: 1.46vw;
  margin-bottom: 1.5vw;
}
.sidebar {
  width: 15.1vw;
}
.side-block + .side-block {
  margin-top: 5vw;
}
.side-block h4 {
  font-size: 1.46vw;
  padding-bottom: 0.8vw;
  border-bottom: 1px solid rgba(255,255,255,0.8);
}
.side-cat {
  padding: 1.5vw 0;
  border-bottom: 1px solid rgba(255,255,255,0.8);
}
.side-cat li {
  font-size: 1.17vw;
  line-height: 2.3;
}
.side-select {
  position: relative;
  margin-top: 2vw;
}
.side-select::after {
  content: "";
  position: absolute;
  right: 1.4vw;
  top: 50%;
  width: 0.45vw;
  height: 0.45vw;
  border-right: 1px solid #fff;
  border-bottom: 1px solid #fff;
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}
.side-select select {
  width: 100%;
  padding: 1vw 1.5vw 1vw 2vw;
  border: 1px solid #fff;
  background: none;
  color: #fff;
  font-family: inherit;
  font-size: 1.17vw;
  -webkit-appearance: none;
  appearance: none;
}
.side-select option {
  color: #333;
}
.pager {
  justify-content: center;
  gap: 0.5vw;
  margin: 3.5vw auto 0;
  width: fit-content;
}
.pager .page-numbers {
  display: inline-block;
  min-width: 2.4em;
  padding: 0.2em 0.5em;
  border: 1px solid #fff;
  text-align: center;
  color: #fff;
  font-size: 1.17vw;
}
.pager .page-numbers.current {
  background-color: #fff;
  color: var(--tc);
}
.pager .page-numbers.dots {
  border: none;
}
.news-single {
  padding: 3vw 6.3vw 4vw;
  background-color: var(--lavender);
}
.news-single .head {
  padding-bottom: 1vw;
  margin-bottom: 2.4vw;
  border-bottom: 1px solid var(--line);
}
.news-single time {
  font-size: 1.17vw;
}
.news-single h1 {
  font-size: 1.32vw;
  margin-top: 0.6vw;
}
.news-single .eyecatch {
  margin-bottom: 2.4vw;
}
.news-single .entry {
  font-size: 1.17vw;
  line-height: 1.9;
}
.news-single .entry p {
  margin: 0 0 1.5em;
}
.news-single .entry img {
  max-width: 100%;
  height: auto;
}
.news-single .entry a {
  border-bottom: 1px solid currentColor;
}
.single_pager {
  margin-top: 3vw;
  padding-top: 1.6vw;
  border-top: 1px solid var(--line);
  font-size: 1.17vw;
}
.single_pager > div {
  width: 33%;
}
.single_pager .back {
  text-align: center;
}
.single_pager .next {
  text-align: right;
}
.contentNone {
  font-size: 1.32vw;
}
/*=================================================
 * お問い合わせ・申し込み（Contact Form 7）
 * ================================================= */
.page-body {
  padding: 4.6vw 0 6.6vw;
}
.page-body .lead-txt {
  margin-bottom: 3vw;
}
.formBox {
  width: 51.3vw;
  margin: 0 auto;
  padding: 0.8vw;
  background-color: var(--lavender);
  color: #333;
}
.formBox iframe {
  display: block;
  width: 100%;
  min-height: 70vw;
  border: 0;
}
.formBox .wpcf7 {
  padding: 1.5vw 1.4vw;
  color: var(--tc);
}
.wpcf7-form {
  display: flex;
  flex-direction: column;
}
.wpcf7-form .hidden-fields-container {
  display: none;
}
.wpcf7-form > .form-row {
  order: 0;
}
.wpcf7-form > .form-consent {
  order: 1;
}
.wpcf7-form > .wpcf7-turnstile {
  order: 2;
  align-self: center;
  margin-top: 1.5vw;
}
.wpcf7-form > .btns {
  order: 3;
}
.wpcf7-form > .wpcf7-response-output {
  order: 4;
}
.form-row {
  margin-bottom: 1.2vw;
  padding: 1.8vw 2.2vw 2vw;
  background-color: #fff;
}
.form-label {
  display: flex;
  align-items: center;
  font-size: 1.17vw;
  margin-bottom: 0.8vw;
}
.form-label .req {
  margin-left: 0.8vw;
  padding: 0.1vw 0.6vw;
  background-color: var(--tc);
  color: #fff;
  font-size: 0.8vw;
  line-height: 1.6;
}
.form-row .wpcf7-form-control-wrap {
  display: block;
}
.form-row input[type="text"],
.form-row input[type="email"],
.form-row input[type="tel"],
.form-row textarea {
  width: 100%;
  padding: 0.6vw 0.2vw;
  border: none;
  border-bottom: 1px solid var(--line);
  background: none;
  font-family: inherit;
  font-size: 1.17vw;
  color: #333;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
}
.form-row textarea {
  height: 13vw;
  padding: 0.8vw;
  border: 1px solid var(--line);
  resize: vertical;
}
.form-row input:focus,
.form-row textarea:focus {
  outline: none;
  border-color: var(--tc);
}
.form-row ::placeholder {
  color: #b5aabd;
}
.form-consent {
  margin-top: 0.6vw;
  font-size: 1.02vw;
  line-height: 1.7;
  text-align: center;
}
.form-consent .wpcf7-list-item {
  margin: 0;
}
.form-consent input[type="checkbox"] {
  width: 1.1vw;
  height: 1.1vw;
  margin-right: 0.6vw;
  vertical-align: -0.15vw;
  accent-color: var(--tc);
}
.wpcf7-form .btns {
  margin-top: 2vw;
  text-align: center;
}
.wpcf7-form input[type="submit"] {
  width: 26vw;
  height: 5vw;
  border: none;
  background-color: var(--tc);
  color: #fff;
  font-family: inherit;
  font-size: 1.32vw;
  letter-spacing: 0.1em;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: 0.3s;
}
.wpcf7-form input[type="submit"]:hover {
  opacity: 0.7;
}
.wpcf7-form input[type="submit"]:disabled {
  opacity: 0.4;
  cursor: default;
}
.wpcf7-form .wpcf7-spinner {
  display: block;
  margin: 1vw auto 0;
}
.wpcf7-not-valid-tip {
  font-size: 0.95vw;
  margin-top: 0.4vw;
  color: #c0392b;
}
.wpcf7 form .wpcf7-response-output {
  margin: 1.5vw 0 0;
  padding: 1vw 1.4vw;
  font-size: 1.02vw;
  text-align: center;
}
/*=================================================
 * 404
 * ================================================= */
#p404 {
  padding: 4vw 0 8vw;
}
#p404 p {
  margin-bottom: 2vw;
}
/*=================================================
 * footer
 * ================================================= */
.ft-top {
  padding: 6.6vw 0 3.6vw;
  background-color: var(--lavender2);
}
.ft-btns {
  --grid-gap: 2.2vw;
}
.ft-office {
  align-items: flex-end;
  margin-top: 5.8vw;
}
.ft-logo {
  width: 7.3vw;
  margin-right: 3.3vw;
}
.ft-address {
  padding-top: 1.2vw;
}
.ft-address .ttl {
  font-size: 1.46vw;
  margin-bottom: 0.6vw;
}
.ft-address p {
  font-size: 1.17vw;
  line-height: 1.75;
}
.ft-sns {
  font-size: 2.6vw;
  line-height: 1;
}
.ft-btm {
  padding: 3.7vw 0 1.3vw;
  background-color: var(--tc);
}
.ft-links {
  --grid-gap: 2.3vw;
}
.ft-links a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 5.64vw;
  background-color: var(--lavender);
  font-size: 1.46vw;
  font-weight: 500;
}
.ft-links .okinawa a {
  background-color: #fff;
}
.ft-links .okinawa img {
  width: auto;
  height: 100%;
}
.copyright {
  font-size: 0.88vw;
  margin-top: 2.6vw;
}
/*=================================================
 * スクロールで表示
 * ================================================= */
.block {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.block.show {
  opacity: 1;
  transform: translateY(0);
}
/*=================================================
 * レスポンシブ
 * ================================================= */
@media screen and (max-width: 768px) {
  .sp {
    display: block !important;
  }
  .pc {
    display: none !important;
  }
  body {
    font-size: 3.7vw;
    line-height: 1.9;
    letter-spacing: 0.04em;
  }
  a:hover {
    opacity: 1;
  }
  .mainWrap {
    width: 90%;
  }
  .colWrap {
    width: 100%;
  }
  /* header */
  .hd-logo {
    width: 20vw;
    height: 22vw;
    border-bottom-right-radius: 5vw;
  }
  .hd-logo img {
    width: 13vw;
  }
  .spmenuWrap button {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1001;
    width: 16vw;
    height: 16vw;
    padding: 3vw 3.5vw 2vw;
    border: none;
    border-bottom-left-radius: 5vw;
    background-color: rgba(255,255,255,0.9);
    color: var(--tc);
    font-size: 2.6vw;
    text-align: center;
  }
  .spmenuWrap button span.bar {
    display: block;
    height: 1px;
    background-color: var(--tc);
    margin: 0 0 1.8vw;
    transition: all 0.2s;
    transform-origin: center;
  }
  .spmenuWrap button .close {
    display: none;
  }
  .spmenuWrap button.active .bar1 {
    transform: translateY(calc(1.8vw + 1px)) rotate(30deg);
  }
  .spmenuWrap button.active .bar2 {
    opacity: 0;
  }
  .spmenuWrap button.active .bar3 {
    transform: translateY(calc(-1.8vw - 1px)) rotate(-30deg);
  }
  .spmenuWrap button.active .menu {
    display: none;
  }
  .spmenuWrap button.active .close {
    display: block;
  }
  .spmenu {
    position: absolute;
    top: 18vw;
    right: 5vw;
    z-index: 1000;
    width: 90vw;
    max-height: calc(100vh - 22vw);
    overflow-y: auto;
    padding: 3vw 6vw;
    background-color: rgba(255,255,255,0.97);
    color: var(--tc);
    font-size: 4vw;
    opacity: 0;
    visibility: hidden;
    transition: all 0.2s;
  }
  .spmenu.open {
    opacity: 1;
    visibility: visible;
  }
  .menublock {
    position: relative;
    padding: 3vw 0;
    border-bottom: 1px solid var(--line);
  }
  .menublock:last-child {
    border-bottom: none;
  }
  .menublock .inner {
    display: none;
    padding: 1vw 0 0 4vw;
    font-size: 3.7vw;
  }
  .menublock .inner p {
    padding: 1.2vw 0;
  }
  .menu_bt i {
    position: absolute;
    right: 0;
    top: 4.5vw;
    font-size: 3.4vw;
  }
  .menu_bt .fa-chevron-up {
    display: none;
  }
  .menu_bt.active .fa-chevron-up {
    display: block;
  }
  .menu_bt.active .fa-chevron-down {
    display: none;
  }
  /* 矢印・ボタン */
  .arw {
    width: 7vw;
    height: 1.8vw;
    margin-left: 2.5vw;
    top: -0.9vw;
  }
  .arw::after {
    width: 2vw;
  }
  .btn-oval {
    width: 44vw;
    height: 17vw;
    font-size: 3.5vw;
  }
  .btn-grad {
    height: 16vw;
    font-size: 4vw;
  }
  .btn-line {
    width: 70vw;
    height: 13vw;
    font-size: 4vw;
  }
  .btn-pdf {
    height: 15vw;
    font-size: 4vw;
  }
  .btn-pdf i {
    font-size: 5.5vw;
    margin-right: 2vw;
  }
  .btn-fill {
    width: 100%;
    height: 17vw;
    font-size: 4vw;
  }
  .link-arw {
    font-size: 3.7vw;
  }
  /* 見出し */
  .fv-page {
    padding-top: 24vw;
  }
  .pankuzu ul {
    font-size: 2.8vw;
  }
  .pankuzu li:after {
    margin: 0 1vw;
  }
  .pageTtl {
    margin-top: 4vw;
  }
  .pageTtl h2 {
    font-size: 11vw;
  }
  .pageTtl p {
    font-size: 4vw;
  }
  .secTtl {
    margin-bottom: 9vw;
  }
  .secTtl h2 {
    min-width: 38vw;
    font-size: 9.5vw;
  }
  .secTtl p {
    font-size: 4vw;
    margin-top: 2vw;
  }
  .secTtl-l h2 {
    font-size: 10.5vw;
  }
  .secTtl-l p {
    font-size: 3.7vw;
  }
  .secTtl-l p::before {
    width: 8vw;
    margin-right: 3vw;
  }
  .secTtl-row {
    padding-bottom: 2vw;
  }
  .secTtl-row h2 {
    font-size: 8vw;
  }
  .secTtl-row p {
    font-size: 4vw;
  }
  .lead-ttl {
    font-size: 4.6vw;
    margin-bottom: 4vw;
  }
  .lead-txt,
  .txt {
    font-size: 3.7vw;
    line-height: 2;
  }
  .lead-txt br {
    display: none;
  }
  /* 楕円カード・アイコンリスト */
  .circles {
    --grid-gap: 4vw;
  }
  .circles li {
    width: 84vw;
    height: 68vw;
    margin: 0 auto;
    padding: 0 13vw;
  }
  .circles h4 {
    font-size: 4.4vw;
  }
  .circles i {
    font-size: 7vw;
    margin: 2vw 0 3vw;
  }
  .circles p {
    font-size: 3.5vw;
  }
  .iconList {
    width: 100%;
  }
  .iconList li {
    height: auto;
    min-height: 15vw;
    padding: 3vw 4vw;
    margin-bottom: 3vw;
    font-size: 3.9vw;
    line-height: 1.6;
  }
  .iconList li i {
    width: 8vw;
    font-size: 6vw;
    margin-right: 4vw;
    flex-shrink: 0;
  }
  .iconList.is-center li {
    padding: 3vw 4vw;
    text-align: center;
  }
  /* top */
  .top-fv {
    height: auto;
    padding: 50vw 0 16vw;
  }
  .top-map {
    width: 180%;
    left: -40%;
  }
  .top-catch,
  .top-intro {
    position: relative;
    left: auto;
    top: auto;
    width: 90%;
    margin: 0 auto;
  }
  .top-catch h2 {
    font-size: 9.5vw;
  }
  .top-catch p {
    font-size: 4vw;
    margin-top: 3vw;
  }
  .top-intro {
    margin-top: 18vw;
  }
  .top-intro p {
    font-size: 3.6vw;
    line-height: 2;
  }
  .top-intro p br {
    display: none;
  }
  .top-intro .btns {
    gap: 2vw;
    margin-top: 8vw;
    justify-content: center;
  }
  .top-bigtxt {
    font-size: 4.2vw;
    letter-spacing: 0;
    white-space: normal;
    line-height: 1;
    bottom: 3vw;
  }
  .top-beyond {
    padding: 14vw 0 16vw;
  }
  .top-join {
    display: block;
    margin: 9vw 0 10vw;
  }
  .top-join h3 {
    font-size: 5.4vw;
    margin-bottom: 3vw;
  }
  .top-join p {
    font-size: 3.7vw;
    line-height: 2;
    margin-bottom: 6vw;
  }
  .top-join .btn-oval {
    display: flex;
    margin: 0 auto;
  }
  .top-news {
    padding: 14vw 0;
  }
  .top-news-head {
    margin-bottom: 7vw;
  }
  /* 平和経済宣言 */
  .bnr-peace {
    display: block;
    margin-bottom: 12vw;
    padding: 6vw 6vw 5vw;
  }
  .bnr-peace .en {
    font-size: 3.6vw;
  }
  .bnr-peace .ttl {
    font-size: 5.6vw;
  }
  .bnr-peace .more {
    display: block;
    margin-top: 3vw;
    font-size: 3.6vw;
    text-align: right;
  }
  .peace {
    padding: 10vw 0 14vw;
  }
  .pageContent {
    font-size: 3.7vw;
    line-height: 2;
  }
  .pageContent h2 {
    font-size: 5.2vw;
    margin-bottom: 6vw;
  }
  .pageContent h3 {
    font-size: 4.6vw;
    padding-bottom: 2vw;
    margin: 10vw 0 4vw;
  }
  .pageContent h4 {
    font-size: 4.2vw;
    margin: 7vw 0 3vw;
  }
  .pageContent hr {
    margin: 10vw 0;
  }
  /* お知らせカード */
  .news-cards,
  .top-news .news-cards {
    grid-template-columns: repeat(2, 1fr);
    --grid-gap: 4vw;
  }
  .news-card .txt {
    padding: 3vw;
    font-size: 3.4vw;
  }
  .news-card time {
    font-size: 3vw;
  }
  /* WUBについて */
  .about-lead {
    padding: 8vw 0 12vw;
  }
  .about-img {
    width: 100%;
    margin-bottom: 9vw;
  }
  .about-lead .colWrap {
    margin-bottom: 10vw;
  }
  .greeting {
    display: block;
    margin-top: 12vw;
    padding: 8vw 6vw;
  }
  .greeting .photo {
    width: 36vw;
    margin: 0 auto 6vw;
  }
  .greeting h3 {
    font-size: 4.4vw;
    padding-bottom: 2vw;
    margin-bottom: 3vw;
  }
  .greeting p {
    font-size: 3.6vw;
  }
  .about-act,
  .about-org,
  .join-req,
  .about-history,
  .join-flow {
    padding: 14vw 0;
  }
  .about-act .iconList {
    margin-bottom: 8vw;
  }
  .about-history .center {
    margin-top: 9vw;
  }
  .history-more {
    padding-top: 7vw;
  }
  .history-head .ttl {
    font-size: 4.2vw;
  }
  .history-head .author {
    font-size: 3.2vw;
  }
  .history-more h4,
  .history-more p {
    font-size: 3.6vw;
  }
  .infoTable .row {
    display: block;
    padding: 4vw 0;
    font-size: 3.6vw;
  }
  .infoTable dt {
    width: auto;
    font-weight: 500;
    margin-bottom: 1vw;
  }
  .pdfBtns {
    --grid-gap: 4vw;
    margin-top: 8vw;
  }
  /* 会員情報 */
  .member {
    padding: 8vw 0 14vw;
  }
  .member-total {
    font-size: 4.2vw;
    margin-bottom: 9vw;
  }
  .memberWrap {
    width: 100%;
  }
  .memberWrap + .memberWrap {
    margin-top: 14vw;
  }
  .memberTable,
  .memberTable tbody,
  .memberTable tr,
  .memberTable td {
    display: block;
    width: 100%;
  }
  .memberTable thead {
    display: none;
  }
  .memberTable {
    font-size: 3.6vw;
  }
  .memberTable tr {
    padding: 4vw 0;
  }
  .memberTable td {
    padding: 0.5vw 0;
  }
  .memberTable td:first-child {
    font-size: 3.2vw;
    opacity: 0.85;
  }
  .memberTable td:nth-child(2) {
    font-size: 4.2vw;
    margin-bottom: 1.5vw;
  }
  .member-asof {
    font-size: 3.6vw;
    margin-top: 6vw;
  }
  /* WUBネットワーク */
  .network-lead {
    padding: 8vw 0 14vw;
  }
  .network-lead .globe {
    width: 60vw;
    margin-bottom: 7vw;
  }
  .network-list {
    padding: 14vw 0;
  }
  .network-area + .network-area {
    margin-top: 12vw;
  }
  .network-cards {
    grid-template-columns: repeat(2, 1fr);
    --grid-gap: 3vw;
    margin-top: 5vw;
  }
  .network-cards li a,
  .network-cards li span {
    height: auto;
    min-height: 14vw;
    padding: 2vw;
    font-size: 3.4vw;
    text-align: center;
    line-height: 1.4;
  }
  .network-cards li i {
    font-size: 3vw;
    margin-left: 2vw;
  }
  .network-pdf {
    padding: 12vw 0;
  }
  /* 入会案内 */
  .join-lead {
    padding: 8vw 0 14vw;
  }
  .join-lead .lead-txt {
    margin-bottom: 10vw;
  }
  .join-req .note {
    font-size: 3.6vw;
    margin-top: 6vw;
  }
  .flowList li {
    padding: 5vw;
  }
  .flowList li + li {
    margin-top: 7vw;
  }
  .flowList li + li::before {
    top: -7vw;
    height: 7vw;
  }
  .flowList .num {
    width: 13vw;
    font-size: 8vw;
  }
  .flowList h4 {
    font-size: 4.4vw;
    margin-top: 1.5vw;
  }
  .flowList p {
    font-size: 3.6vw;
  }
  .join-cta {
    padding: 12vw 0;
  }
  /* お知らせ */
  .news {
    padding: 8vw 0 14vw;
  }
  .newsWrap {
    display: block;
  }
  .news-main,
  .sidebar {
    width: 100%;
  }
  .sidebar {
    margin-top: 14vw;
  }
  .archive-ttl {
    font-size: 4.4vw;
    margin-bottom: 4vw;
  }
  .side-block + .side-block {
    margin-top: 10vw;
  }
  .side-block h4 {
    font-size: 4.4vw;
    padding-bottom: 2vw;
  }
  .side-cat {
    padding: 3vw 0;
  }
  .side-cat li {
    font-size: 3.7vw;
  }
  .side-select {
    margin-top: 4vw;
  }
  .side-select::after {
    right: 4vw;
    width: 2vw;
    height: 2vw;
  }
  .side-select select {
    padding: 3vw 4vw;
    font-size: 3.7vw;
  }
  .pager {
    gap: 1.5vw;
    margin-top: 9vw;
  }
  .pager .page-numbers {
    font-size: 3.7vw;
  }
  .news-single {
    padding: 7vw 5vw;
  }
  .news-single .head {
    padding-bottom: 3vw;
    margin-bottom: 6vw;
  }
  .news-single time {
    font-size: 3.4vw;
  }
  .news-single h1 {
    font-size: 4.4vw;
    margin-top: 1.5vw;
  }
  .news-single .eyecatch {
    margin-bottom: 6vw;
  }
  .news-single .entry {
    font-size: 3.7vw;
  }
  .single_pager {
    margin-top: 8vw;
    padding-top: 4vw;
    font-size: 3.4vw;
  }
  .contentNone {
    font-size: 3.7vw;
  }
  /* お問い合わせ */
  .page-body {
    padding: 8vw 0 14vw;
  }
  .formBox {
    width: 100%;
    padding: 2vw;
  }
  .formBox iframe {
    min-height: 220vw;
  }
  .formBox .wpcf7 {
    padding: 3vw 2vw;
  }
  .form-row {
    margin-bottom: 3vw;
    padding: 5vw 5vw 6vw;
  }
  .form-label {
    font-size: 3.8vw;
    margin-bottom: 2vw;
  }
  .form-label .req {
    margin-left: 2vw;
    padding: 0.3vw 1.5vw;
    font-size: 2.8vw;
  }
  .form-row input[type="text"],
  .form-row input[type="email"],
  .form-row input[type="tel"],
  .form-row textarea {
    padding: 2vw 1vw;
    font-size: 16px;
  }
  .form-row textarea {
    height: 45vw;
    padding: 2.5vw;
  }
  .form-consent {
    font-size: 3.4vw;
    text-align: left;
  }
  .form-consent input[type="checkbox"] {
    width: 4vw;
    height: 4vw;
    margin-right: 2vw;
    vertical-align: -0.6vw;
  }
  .wpcf7-form > .wpcf7-turnstile {
    margin-top: 5vw;
  }
  .wpcf7-form .btns {
    margin-top: 6vw;
  }
  .wpcf7-form input[type="submit"] {
    width: 100%;
    height: 15vw;
    font-size: 4.2vw;
  }
  .wpcf7-not-valid-tip {
    font-size: 3.2vw;
  }
  .wpcf7 form .wpcf7-response-output {
    font-size: 3.4vw;
    padding: 3vw;
  }
  #p404 {
    padding: 8vw 0 16vw;
  }
  #p404 p {
    margin-bottom: 6vw;
  }
  /* footer */
  .ft-top {
    padding: 14vw 0 10vw;
  }
  .ft-btns {
    --grid-gap: 3vw;
  }
  .ft-office {
    display: block;
    margin-top: 12vw;
  }
  .ft-office > .flex {
    align-items: flex-start;
  }
  .ft-logo {
    width: 18vw;
    flex-shrink: 0;
    margin-right: 5vw;
  }
  .ft-address {
    padding-top: 0;
  }
  .ft-address .ttl {
    font-size: 3.6vw;
    margin-bottom: 2vw;
  }
  .ft-address p {
    font-size: 3.2vw;
  }
  .ft-sns {
    display: block;
    margin-top: 6vw;
    font-size: 9vw;
    text-align: right;
  }
  .ft-btm {
    padding: 10vw 0 4vw;
  }
  .ft-links {
    grid-template-columns: repeat(2, 1fr);
    --grid-gap: 3vw;
  }
  .ft-links a {
    height: 14vw;
    font-size: 3.8vw;
  }
  .copyright {
    font-size: 2.8vw;
    margin-top: 8vw;
  }
}
