@charset "UTF-8";
/*----------------------------------------------------------------------------------------------------
 *
 * Theme Name: sastainable-cluising, Inc ver1.0
 * Theme URI: 
 * Author: kinjo aimi
 * Author URI: 
 * Description:sastainable-cluisingのLP用のテーマ
 * Version: 1.0
 * License: GNU General Public License v2 or later
 * License URI: http://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain: wellblue
 *
 *--------------------------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------
 *
 *
 * リセット
 *
 *
--------------------------------------------------------------------------------*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin:0; padding:0; border:0; font:inherit; font-size:100%; vertical-align:baseline; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display:block; }
html, body { width:100%; height:100%; line-height:1; }
ol, ul { list-style:none; }
blockquote, q {quotes:none; }
blockquote:before, blockquote:after, q:before, q:after { content:''; content:none; }
table { border-collapse:collapse; border-spacing:0; }
* { -webkit-box-sizing:border-box; -moz-box-sizing:border-box; -o-box-sizing:border-box; -ms-box-sizing:border-box; box-sizing:border-box; word-wrap: break-word;}

/*--------------------------------------------------

   Clearfix

--------------------------------------------------*/
.cf { zoom:1; } .cf:before,.cf:after { content:""; display:table; } .cf:after { clear:both; }

/*--------------------------------------------------------------------------------
 *
 *
 *
 *
 * 基本設定
 *
 *
 *
 *
--------------------------------------------------------------------------------*/
html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* スクロールロック中は smooth を無効化（ここが大事） */
html.is-scroll-locked {
  scroll-behavior: auto;
}
html.is-scroll-restoring {
  scroll-behavior: auto !important;
}

/* スクロールロック（基本形） */
html.is-scroll-locked,
body.is-scroll-locked {
  height: 100%;
  /* overflow: hidden; */
}

/* iOSで暴れるなら（どっちかに統一してね） */
body.is-scroll-locked {
  touch-action: none;
}
@media screen and (max-width:1000px){ body { width:1000px; } }
@media screen and (max-width:766px){ body { width:100%; background:#fff; } }
body {min-height: 100vh; 
font-family: "Zen Kaku Gothic New", sans-serif;
font-weight: 400;
font-style: normal;
	display:-webkit-box; display:-ms-flexbox; display: flex;
  -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
a {overflow-wrap: break-word;  line-height: 1.3;} 
a:link,
a:visited {color: var(--blue) ; text-decoration:none; transition:.3s ease;}
a:hover,
a:active {text-decoration:none; transition:.3s ease; }
img { max-width:100%; height:auto; vertical-align:top; backface-visibility:hidden; }
a:link img,
a:visited img {opacity:1.0; transition:.3s ease; }
a:hover img,
a:active img {
  /* opacity: 0.6;  */
  transition: .3s ease; }
video::-webkit-media-controls-enclosure { overflow:hidden; }
video::-webkit-media-controls-panel { width: calc(100% + 30px); }
.fa, .far, .fas {font-family: "Font Awesome 5 Free";}

/* ------------------------------小見出し属性------------------------------　*/
h1 , h2 ,h3 ,h4 ,h5 { margin:0; padding:0; line-height:1.7; margin:0 0 20px 0;}
h1 { font-size:30px; }
h2 { font-size:26px; }
h3 { font-size:24px; }
h4 { font-size:18px; }
h5 { font-size:16px; }

@media screen and (max-width:766px){
	h1 { font-size:24px;}
	h2 { font-size:22px; }
	h3 { font-size:20px; }
	h4 { font-size:18px; }
	h5 { font-size:16px; }
}
p { font-size:14px; margin: 0; padding:0; line-height:1.7; display:block; color: var(--black); font-weight: 500; text-align: justify;}
ul { margin:0; padding:0; }
li { margin:0; padding:0; font-size:14px; text-align: justify;}
img { max-width:100%; height:auto; display:block; }
@media screen and (max-width:766px){
	p { font-size:3.2vw; }
	li { font-size:3.2vw; }
}
img.center,.aligncenter { margin:0 auto; display:block; }
img.left { float:left; margin:0 30px 30px 0; }
img.right { float:right; margin:0 0 30px 30px; }
img.photo00 { background:#ffffff; padding:5px; box-shadow:0px 0px 5px 5px rgba(0,0,0,0.05); }
img.photo-left { transform:rotate(-4deg); -moz-transform:rotate(-4deg); -webkit-transform:rotate(-4deg); background:#ffffff; padding:5px; box-shadow:0px 0px 5px 5px rgba(0,0,0,0.05); }
img.photo-right { transform:rotate(4deg); -moz-transform:rotate(4deg); -webkit-transform:rotate(4deg); background:#ffffff; padding:5px; box-shadow:0px 0px 5px 5px rgba(0,0,0,0.05); }
.bold { font-weight:bold; }
.underline { text-decoration:underline; font-weight:bold; }
.red { color:#cd4a38; font-weight:bold; }
.red_underline { background:linear-gradient(transparent 60%, #ff9999 60%); }
.yellow { color:#000000; font-weight:bold; background:linear-gradient(transparent 60%, #ffff00 60%); }
.center { text-align:center; }
.big { font-size:20px; }
.sp00 { margin-top:0 !important; }
.sp10 { margin-top:10px !important; }
.sp20 { margin-top:20px !important; }
.sp30 { margin-top:30px !important; }
.sp50 { margin-top:50px !important; }
.sp70 { margin-top:70px !important; }
.sp100 { margin-top:100px !important; }
.align_left { text-align:left; }
.align_right { text-align:right; }
.align_center { text-align:center; }
.ffffff { background:#ffffff!important; }
.f7f7f7 { background:#f7f7f7!important; }
@media screen and (max-width:766px){
	img.left , img.right  { float:none; margin:0 auto 20px auto; display:block; }
	.big { font-size:16px; }
}
.pc { display:block!important; }
.sp { display:none!important; }
.anchor-02 {
    display: block;
    padding-top: 70px;
    margin-top: -70px;
}
@media screen and (max-width:766px){
	.pc { display:none!important; }
	.sp { display:block!important; }
	.anchor {
    display: block;
    padding-top: 70px;
    margin-top: -70px;
	}
}

/* ------------------------------フォント------------------------------　*/
.wf-noto {font-family: 'Noto Sans JP', sans-serif;}
.wf-moda {font-family: 'Bodoni Moda', serif;}
/* .wf-zen {font-family: 'Zen Old Mincho', serif;} */
.wf-oswald {font-family: 'Oswald', sans-serif;}
.wf-shippori {font-family: "Shippori Mincho", serif;}



:root{
/* color */
--black: #272727;
  --blue: #009cc1;
  --blue2: #00aad4;
  --black: #272727;
  --dark_blue: #05428a;
  --light_blue: #d9ecf3;
  
  
  /* --c-bg: #fff;
  --c-primary: #0a66ff; */
}


/*--------------------------------------------------------------------------------
 *
 *
 *
 *
 * ヘッダー
 *
 *
 *
 *
--------------------------------------------------------------------------------*/
/* ------------------------------ロゴ・メニューバーエリア------------------------------　*/
header { width: 100%;
  height: 100vh;
  /* position: fixed; */
  position: absolute;
  z-index: 100;
  top:0;
  left: 0;
  /* background: #fff; */
}
.header__inner {
  /* display: flex;
  align-items: center;
  width: 100%;
  justify-content: space-between;
  padding: 0 80px 0 30px;
  height: 90px; */
}
.header-left ul {display: flex; align-items: center;}
.header-left ul li:first-of-type {padding: 20px 6px 20px 0;}
.header-left ul li {font-weight: 900;color: #fff;}


.header-left ul li a {display: block; padding: 20px 7px; color: #B1B1B1;}
.header-left .current a {
	color: #fff;
}
.header-right ol {
  display: flex;
  align-items: center;
}
.nav-wrapper h1 span {display: block; font-size: 1.7vw; margin-bottom: 2%; color: #fff;}
.nav-wrapper h1 {font-size: 5.2vw; line-height: 1.2; color: #fff;}
.nav-wrapper p {letter-spacing: .2em; font-size: 1.3vw; color: #fff;}
header .inner {width: 100%; margin: 0 auto; 
	display:-webkit-box; display:-ms-flexbox; display: flex;
  -webkit-box-align: center; -ms-flex-align: center; align-items: center; 
  justify-content: space-between;}  

@media screen and (max-width:768px){
	header {height: 13vw;}
	header .inner { width:100%; height:auto; }
	#h1 {width: 50%; max-width: 220px; margin-left: 0;}
	#h1 img {width: 100%; opacity: 0;}
}

/*--------------------------------------------------------------------------------
 *
 *
 *
 *
 * グローバルナビゲーション
 *
 *
 *
 *
--------------------------------------------------------------------------------*/

/*ハンバーガーメニュー*/
@media screen and (min-width:767px){
  .navi_list {
    display: flex;
    justify-content: center;
    max-width: 1000px;
    width: 100%;
    margin: 0 auto;
    position: absolute;
    bottom: 7%;
    /* top: 93%; */
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    height: auto;
    align-items: center;
  }
  .navi_list li {
    position: relative;
    
  }
  .navi_list li:not(:last-of-type):after {
    content: '';
    
    background-size: 20px;
    
    
    display: inline-block;
    width: 2px;
    height: 28px;
    background-color: #fff;
    position: absolute;
    /* top: calc(50% - 38px); */
    top: 50%;
    right: 0;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
  }
  
  .navi_list a {
    color: #fff;
    padding: 1rem 2rem;
  }
  .navi_list a:hover {
    color: var(--blue);
  }
  .header-left {
    position: absolute;
    right: 30px;
    top: 13px;
  }
}
@media screen and (max-width:766px){
  
  .menu,
  .menu span {
    display: inline-block;
    -webkit-transition:all .4s;
    transition: all .4s;
    box-sizing: border-box;
  }
  .menu {
    display: block;
    height: 50px;
    margin-left: auto;
    position: relative;
    z-index: 100;
    width: 50px;
    border: none;
    background-color: transparent;
    cursor: pointer;
    position: absolute;
    top: 10px;
    left: 40px;
    transform: translateX(-50%);
    
  }
  .hamburger__text {
    position: relative;
    left: 45px;
    top: -5px;
  }
  .hamburger__text::after {
    content: "MENU";
    text-align: center;
    color: #000;
    font-size: 15px;
    font-weight: 900;
    font-family: 'Bodoni Moda', serif;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform : translate(-50%,-50%);
    transform : translate(-50%,-50%);
  }
  .hamburger__line {
    display: block;
    height: 2px;
    background-color: #fff;
    transition: 0.4s;
    width: 50px;
    position: absolute;
    left: 0;
  }
  .hamburger__line:before,
  .hamburger__line:after {
    content: "";
    display: block;
    height: 2px;
    position: absolute;
    width: 100%;
    background-color: #fff;
    transition: inherit;
  }
  .hamburger__line:before {
    top: -10px;
    /* width: 18px; */
    height: 2px;
  }
  .hamburger__line:after {
    top: 12px;
    /* width: 6px; */
  }
  
  /* ナビ開いてる時のボタン */
  /* .menu.active {
      right: 0;
  } */
  .menu.active .hamburger__line {
    background-color: transparent;
  }
  /* .menu.active .hamburger__text::after {
    content: 'CLOSE';
    color: #fff;
  } */
  .menu.active.hamburger__line {
    background-color: transparent;
  }
  .menu.active .hamburger__line::before {
    top: 0;
    transform: rotate(45deg);
    background-color: #000; 
  }
  .menu.active .hamburger__line::after {
    top: 0;
    transform: rotate(-45deg);
    background-color: #000; 
  }
  #nav {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 10;
    width: 100%;
    height: 100vh;
    opacity: 0;
    background-color: #858585;
    transition: all 0.3s ease-in-out;
    visibility:hidden;
    }
  
  #nav.active{
    right: 0;
    opacity: 1;
    -moz-transform: translateX(0);
    -webkit-transform: translateX(0);
    transform: translateX(0);
    visibility: visible;
    justify-content: space-between;
    align-items: center;
    pointer-events: auto;
  }
  #nav .nav-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 75px 5% 65px;
    height: 100%;
  }
  ul.navi_list {width: 35%;}
  ul.navi_list li {padding-bottom: 20px; transition: .4s all;}
  ul.navi_list li  + li {margin-top: 20px;}
  .global-navigation {
    width: 35%;
  }
  .global-navigation__list > li {
    padding-bottom: 20px;
  }
  .global-navigation__list > li + li {
    margin-top: 20px;
  }
  a.global-navigation__link {
    color: var(--black) !important;
    font-weight: 700;
    font-size: 1.8vw;
    position: relative;
  }
  a.global-navigation__link::after {
  position: absolute;
  left: 0;
  content: '';
  width: 100%;
  height: 1px;
  background: #fff;
  bottom: -0.45em;               
  transform: scale(0, 1);     
  transform-origin: left top; 
  transition: transform 0.3s; 
  }
  a.global-navigation__link:hover::after {
  transform: scale(1, 1);
  }
  .global-navigation__link.-accordion {
    position: relative;
    background: none;
    border: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 100%;
    padding: 0;
  }
  .global-navigation__link.-accordion::after {
    content: '';
    display: block;
    height: 12px;
    position: absolute;
    top: 50%;
    right: 5px;
    width: 2px;
    background-color: #ed3242;
    transform: translateY(-50%);
    transition: transform 0.4s;
  }
  .global-navigation__link.-accordion::before {
    content: '';
    display: block;
    height: 2px;
    position: absolute;
    top: 50%;
    right: 0;
    width: 12px;
    background-color: #ed3242;
    transform: translateY(-50%);
  }
  .global-navigation__link.-active::after {
    transform: translateY(-50%) rotate(-90deg);
  }
  .header-left {
    position: absolute;
    right: 30px;
    top: 13px;
  }
  
}
    
/* ------------------------------グローバルナビゲーション（モバイル）------------------------------　*/
@media screen and (max-width:766px){
	.header__inner {
		height: 13vw;
		padding: 0 4vw;
	}
	#nav .nav-wrapper {
		flex-direction: column-reverse;
      justify-content: center;
      padding: 15% 5%;
      background: #fff;
	}
	ul.navi_list {
    width: 85%;
	}
	ul.navi_list li + li {
    margin-top: 0.5em;
	}
	a.global-navigation__link {
    font-size: 5.6vw;
    display: block;
    text-align: center;
    padding: 2vw;
	}
	#nav .txt-wrapper {
    width: 85%;
    margin-top: 10%;
	}
	#nav .nav-wrapper h1 {
    font-size: 10.5vw;
	}
	#nav .nav-wrapper h1 span {
    font-size: 5vw;
	}
	#nav .nav-wrapper p {
    font-size: 3vw;
	}
  .header-left {
    right: 2vw;
    top: 1.5vw;
  }
  
  
  .header-left ul li {
    font-size: 3.5vw;
  }
}

/*--------------------------------------------------------------------------------
 *
 *
 *
 *
 * メインビジュアル
 *
 *
 *
 *
--------------------------------------------------------------------------------*/
/* main {
  margin-top: 90px;
} */
#kv {
	height: 100vh;
  position: relative;
  background-image: url(../img/kv.jpg);
  background-position: 50% 50%;
  background-size: cover;
  
}
#kv #kv_inner {
	width: 90%;
  margin: 0 auto;
  height: 100vh;
}
.kv-wrapper {
	height: 100vh;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* .kv-wrapper .catch-wrapper h1 span {
	display: block;
  font-size: 1.7vw; 
  margin-bottom: 2%;
  color: #fff;
} */
.kv-wrapper .catch-wrapper {
    margin-bottom: 60px;
}
.kv-wrapper .catch-wrapper h1 {
	font-size: 40px;
  text-align: center;
  line-height: 1.5;
  color: #fff;
}
.kv-wrapper .catch-wrapper p {
	font-size: 30px;
  text-align: center;
  color: #fff;
  letter-spacing: .2rem;
}


@media screen and (max-width:766px){
	/* main {
    margin-top: 70px;
	} */
	#kv {
		height: auto;
	}
	#kv #kv_inner {
	   width: 100%;  
      height: auto;  
      padding: 35vw 0 25vw;
	}
  
	.kv-wrapper {
		height: 100%;
		flex-wrap: wrap;
	}
	.kv-img {
		object-fit: cover;
		margin-bottom: 3%;
	}
	.kv-wrapper .catch-wrapper {
      margin-bottom: 0px;
      }
	.kv-wrapper .catch-wrapper h1 {
		font-size: 7.5vw;
		margin-bottom: 8vw;
	}
	/* .kv-wrapper .catch-wrapper h1 span {
		font-size: 5.5vw;
	} */
	.kv-wrapper .catch-wrapper p {
		font-size: 4.8vw;
	}
	#kv nav.bottom-nav {
		margin: 0 auto 5%;
	}
	#kv nav.bottom-nav p {
		font-size: 2.1vw;
    text-align: center;
  }
	.kv-wrapper .btn-wrapper {
		width: 85%;
		margin: 0 auto;
	}
}


/*--------------------------------------------------------------------------------
 *
 *
 *
 *
 * コンテンツ
 *
 *
 *
 *
--------------------------------------------------------------------------------*/
/* ------------------------------共通------------------------------　*/
section { width:100%; }
section .inner {max-width:1000px; width: 90%; margin:0 auto; padding: 100px 0;}
.ttl {text-align: center; margin-bottom: 70px;}
.ttl h2 {text-align: center; letter-spacing: .1em; margin-bottom: 0; font-size: 40px;}
.ttl h2 span {
   display: block;
   font-size: 30px;
}
.ttl p {font-size: 16px; letter-spacing: .1em;}
.lead {
  text-align: center;
}
.lead p {
  display: inline-block;
  font-size: 18px;
  margin-top: 30px;
  text-align: center;
}
section .catch h2 {letter-spacing: 0.4em;
  -ms-writing-mode: horizontal-tb;
  writing-mode: vertical-rl;
  font-size: 24px;
  color: #fff;
  display: block;
  text-align: center;
  margin: 0 auto;
}
.btn-wrapper {margin: 50px auto 0; text-align: center;}
.btn {
	border: 1px solid var(--blue);
  border-radius: 12px;
  text-decoration: none;
  color: var(--blue);
  min-width: 250px;
  display: inline-block;
  padding: 20px 18px;
  background: #fff;
  /* width: 100%; */
  text-align: center;
  font-weight: bold;
} 
.btn:hover {background: var(--blue); color:#fff !important; 
  /* border: 1px solid #000; */
} 
.page-anchor {
  display: block;
  padding-top: 100px;
  margin-top: -100px;
}

a.link {
  text-decoration: underline;
  padding: 14px;
  display: inline-block;
}

ul.notes {
  display: table;
  width: 100%;
  margin: 8px 0 0;
  padding-left: 0;
}
ul.notes li {
  list-style: none;
  line-height: 1.6;
}
ul.notes li .notes_head {
  display: table-cell;
  vertical-align: top;
  white-space: nowrap;
  /* padding-right: 0.5em; */
}
ul.notes li .notes_body {
  display: table-cell;
  vertical-align: top;
}


@media screen and (max-width:766px) {
  section .inner {
    width: 90%; 
    padding: 12% 0;
  }
  .ttl h2 {
    font-size: 6vw;
      letter-spacing: 0;
  }
  .ttl h2 span {
    font-size: 5.2vw;
  }
  .lead p {
    font-size: 3.6vw;
  }
  .btn-wrapper {
    max-width: 500px;
    width: 75%;
  }
  .btn {
    width: 100%;
      padding: 1em;
      font-size: 4vw;
  }
}

/*--------------------------------------------------------------------------------
 * message
--------------------------------------------------------------------------------*/
.message {
  background-image: url(../img/message_bg.png);
  background-size: contain;
  background-position: 50% 100%;
  background-repeat: no-repeat;
  padding-bottom: 240px;
  
  
  position: relative;
  min-height: 720px;
  
  overflow: hidden; /* 画面外へ出る動きのはみ出しを隠す */
}
.message .ttl h2 {
  color: var(--blue);
}
.message .ttl h2 span {
  color: var(--black);
  margin-bottom: 50px;
}

.message .txt-wrapper p {
  text-align: center;
  line-height: 3;
  font-size: 18px;
}
.message .txt-wrapper p:not(:last-of-type){
  margin-bottom: 50px;
} 

.message .btn-wrapper {
  display: flex;
  justify-content: space-evenly;
}
.message .btn-wrapper li p {
  font-size: 16px;
  margin-bottom: 10px;
  position: relative;
  text-align: center;
}
.message .btn-wrapper li p:before {
  content: '';
  background-size: 20px;
  display: inline-block;
  width: 1px;
  height: 35px;
  background-color: #000;
  position: absolute;
  top: calc(50% - 18px);
  /* top: 50%; */
  left: 0;
  /* -webkit-transform: translate(-50%, -50%); */
  /* transform: translate(-50%, -50%); */
  transform: rotate(-30deg);
}
.message .btn-wrapper li p:after {
  content: '';
  background-size: 20px;
  display: inline-block;
  width: 1px;
  height: 35px;
  background-color: #000;
  position: absolute;
  top: calc(50% - 18px);
  /* top: 50%; */
  right: 0;
  /* -webkit-transform: translate(-50%, -50%); */
  /* transform: translate(-50%, -50%); */
  transform: rotate(30deg);
}
.message .btn-wrapper li p span {
  font-size: 13px;
  display: block;
}


.diver{
  position: absolute;
  /* width: clamp(120px, 12vw, 200px); */
  height: auto;
  pointer-events: none;
  will-change: transform;
  transform-origin: 50% 50%;
}

/* 右上のダイバー：右→左に泳ぐ（ゆらぎ＋少し傾き） */
.diver--a{
  max-width: 270px;
  width: 15vw;
  top: 3%;
  right: 5%;
  animation: swimA 9s ease-in-out infinite;
}

/* 左下のダイバー：左→右に泳ぐ（ゆらぎ＋少し傾き） */
.diver--b{
  max-width: 270px;
  width: 16vw;
  top: 25%;
  left: 8%;
  animation: swimB 11s ease-in-out infinite;
}

.diver--c{
  max-width: 265px;
  width: 17vw;
  top: 63%;
  right: 4%;
  animation: swimC 11s ease-in-out infinite;
}

/* 泳ぐ動き（直線じゃなく、少し上下と角度をつける） */
@keyframes swimA{
  0%   { transform: translate(0, 0) rotate(8deg); }
  20%  { transform: translate(-1vw, 8px) rotate(4deg); }
  45%  { transform: translate(-2vw, -10px) rotate(10deg); }
  70%  { transform: translate(-3vw, 6px) rotate(6deg); }
  100% { transform: translate(-4vw, 0) rotate(8deg); }
} 

@keyframes swimB{
  0%   { transform: translate(0, 0) rotate(-6deg); }
  25%  { transform: translate(1vw, -8px) rotate(-10deg); }
  55%  { transform: translate(2vw, 10px) rotate(-4deg); }
  80%  { transform: translate(3vw, -6px) rotate(-8deg); }
  100% { transform: translate(4vw, 0) rotate(-6deg); }
}  

@keyframes swimC{
  0%   { transform: translate(0, 0) rotate(-6deg); }
  25%  { transform: translate(-1vw, -8px) rotate(-10deg); }
  55%  { transform: translate(-2vw, 10px) rotate(-4deg); }
  80%  { transform: translate(-3vw, -6px) rotate(-8deg); }
  100% { transform: translate(-4vw, 0) rotate(-6deg); }
}  


.fish {
  position: absolute;
  /* width: clamp(120px, 9vw, 200px); */
  height: auto;
  pointer-events: none;
  will-change: transform;
  transform-origin: 50% 50%;
}
.fish--a {
  top: 10%;
  left: 8%;
  /* width: clamp(120px, 9.5vw, 200px); */
  max-width: 135px;
  width: 9vw;
}

.fish--b {
  top: 40%;
  right: 8%;
  /* width: clamp(120px, 13.5vw, 200px); */
  max-width: 130px;
  width: 10vw;
}


.fuwafuwa {
  animation: fuwafuwa 3s ease-in-out infinite alternate;
  display: inline-block;
  transition: 1.5s ease-in-out;
}

 @keyframes fuwafuwa {
  0% {
    transform:translate(0, 0) rotate(-7deg);
  }
  50% {
    transform:translate(0, -7px) rotate(0deg);
  }
  100% {
    transform:translate(0, 0) rotate(7deg);
  }
} 

.bubbles{
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(120, 200, 220, .55);
  filter: blur(.2px);
  opacity: .9;
  pointer-events: none;
}

.bubbles--a{
  top: 35%;
  left: 78%;
  animation: bubble 2.8s ease-in-out infinite;
}

.bubbles--b{
  top: 80%;
  left: 16%;
  animation: bubble 3.2s ease-in-out infinite;
}

@keyframes bubble{
  0%   { transform: translate(0, 0) scale(.9); opacity: 0; }
  15%  { opacity: .9; }
  100% { transform: translate(-10px, -90px) scale(1.25); opacity: 0; }
}

@media (prefers-reduced-motion: reduce){
  .diver, 
  .bubbles{ animation: none !important; }
}

@media screen and (max-width:1024px) {
  .diver--b {
    left: 1%;
  }
  .diver--c {
    top: 65%;
  }
  .fish--a {
    left: 5%;
  }
}

@media screen and (max-width:766px) {
  .message {
    background-size: 152vw;
    padding-bottom: 33vw;
  }
  .message .txt-wrapper p {
    font-size: 3.4vw;
    line-height: 2.3;
  }
  .message ul.btn-wrapper {
    flex-wrap: wrap;
  }
  .message ul.btn-wrapper li {
    flex-basis: 100%;
    max-width: 500px;
    padding: 3vw 0;
    text-align: center;
  }
  .message ul.btn-wrapper li p {
    font-size: 4vw;
    text-align: center;
    display: inline-block;
    padding: 0 5vw;
  }
  .message ul.btn-wrapper li p span {
    font-size: 3.2vw;
  }
  .message .btn-wrapper li p:before {
    width: 0.2vw;
    height: 7vw;
  }
  .message .btn-wrapper li p:after {
    width: 0.2vw;
    height: 7vw;
  }
  .diver--a {
    top: 12%;
    right: 2vw;
    width: 17vw;
  }
  .diver--b {
    top: 30.5%;
    left: 0;
    width: 20vw;
  }
  
  .diver--c {
    width: 21vw;
    bottom: 29vw;
    top: auto;
    right: 9vw;
  }
  
  .fish--a {
    top: 50vw;
    left: 4%;
    width: 10vw;
  }
  .fish--b {
    width: 13vw;
    top: 61%;
    right: 3%;
  }
}



/*--------------------------------------------------------------------------------
 * sustainable
--------------------------------------------------------------------------------*/
.sustainable {
  background-image: url(../img/bg_sustainable.jpg);
  background-size: cover;
  background-position: 50% 50%;
  background-repeat: no-repeat;
}
.sustainable .ttl h2 {
  color: #fff;
}

.sustainable .lead p {
  color: #fff;
 
}
.sustainable .txt-wrapper {
  background: #fff;
  max-width: 715px;
  margin: 0 auto 40px;
  padding: 30px;
}
.sustainable .txt-wrapper p {
  color: var(--dark_blue);
  font-size: 18px;
  font-weight: bold;
}

.img_sustainable {
    max-width: 600px;
    width: 100%;
    margin: 0 auto 60px;
}

.sustainable address {
  font-size: 13px;
  text-align: center;
  color: #fff;
}

@media screen and (max-width:766px) {
  .sustainable .txt-wrapper p {
    font-size: 3.6vw;
  }
  .sustainable address {
    font-size: 2.4vw;
  }
}



/*--------------------------------------------------------------------------------
 * attempt
--------------------------------------------------------------------------------*/

.attempt-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    max-width: 715px;
    margin: 0 auto;
    justify-content: space-between;
}
.attempt-wrapper > li {
  flex-basis: 48%;
}
.attempt-wrapper > li img {
  margin-bottom: 20px;
}
.attempt-wrapper > li h3 {
  font-size: 20px;
  text-align: center;
  color: var(--blue);
  margin-bottom: 10px;
  font-weight: bold;
}

.attempt-wrapper > li p {
  font-size: 16px;
}

.know {
  background-color: var(--light_blue);
  padding: 35px;
  margin: 100px auto 80px;
}
.know .ttl {
  margin-bottom: 5px;
}
.know .ttl h3 {
  background-color: var(--dark_blue);
  color: #fff;
  font-size: 30px;
  display: inline-block;
  padding: 0 20px;
}
.know-wrapper {
  display: flex;
  justify-content: space-between;
  margin-bottom: 50px;
}
.know-box {
  flex-basis: 49%;
}
.know-ttl {
  font-size: 30px;
  color: var(--dark_blue);
  text-align: left;
  line-height: 1.3;
  font-weight: bold;
  margin-bottom: 15px;
}
.know-cont {
    display: flex;
    position: relative;
    align-items: self-start;
    justify-content: space-between;
}
.know-cont .txt-wrapper {
  flex-basis: 65%;
}
.know-cont .txt-wrapper p {
  font-size: 16px;
}
.img_attempt_01 {
    position: absolute;
    right: 0;
    bottom: 10%;
}

.img_attempt_02 {
  /* position: absolute;
  right: 0;
  bottom: 24%; */
}

.know a.link {
  text-align: left;
}

.know address {
  text-align: center;
  color: var(--black);
}


.cooperation .ttl h3 {
  color: var(--blue);
  font-size: 33px;
  font-weight: bold;
}

@media screen and (max-width:766px) {
  .attempt-wrapper {
    flex-wrap: wrap;
  }
  .attempt-wrapper > li {
    flex-basis: 100%;
    margin-bottom: 7vw;
  }
  .attempt-wrapper > li h3 {
    font-size: 4.5vw;
  }
  .attempt-wrapper > li p {
    font-size: 3.6vw;
  }
  .img_attempt_01 {
    position: relative;
    margin: 5vw auto;
    width: 20vw;
  }
  .img_attempt_02 {
    margin: 5vw auto;
    width: 28vw;
    
  }
  .know {
    padding: 6vw;
  }
  .know .ttl h3 {
    display: block;
    font-size: 4.5vw;
    padding: 2vw;
  }
  .know-wrapper {
    flex-wrap: wrap;
    margin: 0;
  }
  .know-box {
      flex-basis: 100%;
      margin: 5vw 0;
  }
  .know-ttl {
    text-align: center;
    font-size: 5vw;
  }
  .know-cont {
    flex-direction: column-reverse;
  }
  
  .know-cont .txt-wrapper {
    flex-basis: 100%;
  }
  .know-cont .txt-wrapper p {
    font-size: 3.4vw;
  }
  .know a.link {
     font-size: 3.4vw;
     padding: 2vw 2vw 2vw 0;
  }
  .cooperation .ttl h3 {
    font-size: 6vw;
  }
  .cooperation .lead p {
    text-align: left;
  }
}

/*--------------------------------------------------------------------------------
 * map
--------------------------------------------------------------------------------*/
.group_map {
  background-color: var(--blue2);
  position: relative;
}

.group_map .ttl h2 {
  color: #fff;
}
.group_map .ttl {
  margin-bottom: 40px;
}

.group_map .lead p {
  color: #fff;
}

.group_map .note {
  color: #fff;
  text-align: center;
  font-size: 14px;
  margin-top: 10px;
}

.group_map .txt-wrapper {
  background-color: #007fb2;
  max-width: 810px;
  margin: 0 auto 70px;
  border-radius: 10px;
  padding: 15px;
}
.group_map .txt-wrapper p {
  font-size: 14px;
  color: #fff;
  text-align: center;
}

.group_map .diver--a {
  top: 40%;
  right: 5%;
}

.group_map  .diver--b {
  top: 47%;
  left: 0;
}
.group_map .diver--c {
  top: 85%;
  right: 10%;
}

.group_map .fish--a {
  top: 32%;
  left: 8%;
}
.group_map .fish--b {
  top: 70%;
  right: 5%;
}



#okinawa-map .cls-1,
.mapSvg .cls-1 {
  fill: #b2e1ec;
  stroke: #b2e1ec;
  stroke-width: 1;
}

/* PCだけ hover で白（スマホはhoverなしなので実質PC用） */
@media (hover: hover) and (pointer: fine) {
  #okinawa-map g.pref:hover .cls-1 {
    fill: #fff;
    stroke: #fff;
  }
}

/* キーボード操作でも同じ見え方にしたいなら */
#okinawa-map g.pref:focus-visible .cls-1 {
  fill: #fff;
  stroke: #fff;
}

/* .cls-1 {
  background-color: #b2e1ec;
} */

  /* SVGのホバー・フォーカス */
  #okinawa-map g.pref { cursor: pointer; }
  #okinawa-map g.pref:focus { outline: none; }
  #okinawa-map g.pref:focus-visible { filter: drop-shadow(0 0 0.4rem rgba(0,0,0,.25)); }
  
  /* popover */
  .areaPopover {
    border: 0;
    padding: 0;
    margin: 0;
    background: transparent;
  }
  
  .areaPopover::backdrop { background: rgba(0,0,0,.15); }
  
  /* .areaPopover__inner{
    background: #fff;
    border-radius: 12px;
    padding: 14px 14px 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,.18);
    min-width: 260px;
    max-width: 340px;
  } */
  
  /* .areaPopover__close{
    appearance: none;
    border: 0;
    background: transparent;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    position: absolute;
    top: 10px;
    right: 10px;
  } */
  
  .areaPopover__title{
    font-weight: 700;
    margin: 0 28px 6px 0;
  }
  
  .areaPopover__desc{
    margin: 0 0 10px 0;
    font-size: 14px;
    line-height: 1.5;
  }

.areaPopover {
  padding: 0;
  border: 0;
  background: transparent;
}

.areaPopover::backdrop {
  background: rgba(0,0,0,.45);
}
.areaPopover__links {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}







.mapWrap { position: relative; max-width: 580px;
  margin: 0 auto;}
.areaPopover {
  padding: 0;
  border: 0;
  background: transparent;
}
.areaPopover__inner{
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0,0,0,.15);
  padding: 8px 40px 22px 16px;
 min-width: 260px;
 max-width: 360px;
 
}
.areaPopover__close{
  position: absolute;
  right: 8px; top: 8px;
  width: 32px; height: 32px;
  background-color: var(--dark_blue);
  border-radius: 30px;
  color: #fff;
  
  
  appearance: none;
  border: 0;
  
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  
  
}
.areaPopover__links{ display:flex; flex-direction:column; gap:8px; margin-top:12px; }

.areaPath{ cursor: pointer; }
.areaPath.is-active{ opacity: .85; }
.areaPopover__lists {
  list-style: disc;
  padding-left: 20px;
}
.areaPopover__list::marker {
  color: var(--dark_blue);
}
a.areaPopover__link {
  color: var(--dark_blue);
  text-decoration: underline;
  padding: 3px;
  line-height: 1.2;
  display: inline-block;
  font-size: 14px;
}
a.areaPopover__link:hover {
  color: var(--blue);
}

p.areaPopover__link {
  color: var(--dark_blue);
  text-decoration: none;
  padding: 3px;
  line-height: 1.2;
  display: inline-block;
  font-size: 14px;
  font-weight: normal;
}

.mapLabel{
  position:absolute;
  transform: translate(-50%, -50%);
  z-index: 2;

  /* 見た目（お好み） */
  font-size: 12px;
  line-height: 1;
  color: #fff;

  /* 重要：ラベルがSVGクリックを邪魔しない */
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}

.mapSvg {
  position: relative;
}
.areaBtn {
    position: absolute;
    display: block;
    font-size: 22px;
    background-color: #007fb2;
    border: none;
    color: #fff;
    border: none;
    background: none;
    cursor:pointer;
} 

.areaBtn .Btn {
    font-size: 14px;
    background-color: #007fb2;
    border: none;
    color: #fff;
    padding: 6px 11px;
    display: block;
}

.areaBtn .Txt {
    font-size: 18px;
    border: none;
    color: #fff100;
    display: block;
    
}
.northBtn {
  top: 9.5%;
  right: 14%;
}
.centralBtn {
  top: 20%;
  right: 33%;
}
.southBtn {
  top: 41%;
  right: 16%;
}
.keramaBtn {
 top: 35%;
 left: 14%;
}
.miyakoBtn {
  bottom: 32%;
  left: 59%;
}
.yaeyamaBtn {
  bottom: 6%;
  left: 4%;
}

.mapLabel {
  font-size: 18px;
}
.label-okinawa {
  right: 0%;
  top: 28%;
}
.label-kumejima {
  left: 9%;
  top: 27%;
}
.label-aguni {
  left: 35%;
  top: 19%;
}
.label-tonaki {
  left: 30%;
  top: 27%;
}

.label-minamidaito {
  right: -8%;
  top: 62%;
}
.label-kitadaito {
  right: -11%;
  top: 51%;
}

.label-miyako {
  left: 56%;
  top: 58%;
}
.label-irabu {
  left: 33%;
  top: 56%;
}
.label-tarama {
  left: 3%;
  top: 66%;
}

.label-ishigaki{
  left: 58%;
  top: 78%;
}
.label-iriomote{
  left: 27%;
  top: 85%;
}
.label-hateruma{
  left: 38%;
  top: 102%;
}
.label-yonaguni{
  left: 3%;
  top: 79%;
}






@media screen and (max-width:766px) {
  
  .group_map .lead p {
    text-align: left;
  }
  
  .group_map .note {
    text-align: left;
    font-size: 2.4vw;
  }
  .group_map .txt-wrapper p {
    font-size: 2.8vw;
  }
  
  .mapWrap {
    max-width: 100%;
  }
  .mapWrap.sp svg { pointer-events: none; }
  .map-area {
    padding: 8vw 0;
  }
  .map-area:not(:last-of-type) {
    border-bottom:1px solid #fff;
  }
  .mapWrap  h3 {
    font-size: 5.3vw;
    text-align: center;
    color: #fff;
    margin-bottom: 5vw;
  }
  
  /* .okinawa-area h3 {
    margin-bottom: 10vw;
  } */
  
  .okinawa-area svg {
      width: 53vw;
      margin: 0 auto;
      display: block;
      padding: 0vw 0 13vw 0;
  }
  .kerama-area svg {
    width: 56.5vw;
    margin:0 auto;
    display: block;
    padding: 11vw 0 0vw;
  }  
  .minamidaito-kitadaito-area {
    padding: 15vw 0;
  }
  .minamidaito-kitadaito-area svg {
    width: 8.5vw;
    margin: 0 43vw 0 auto;
    display: block;
  } 
  .miyako-area {
    padding: 7vw 0 15vw;
  } 
  
  
  .miyako-area svg {
    width: 60vw;
    margin: 0 2vw 0 20vw;
    display: block;
    padding: 10vw 0px 0;
  }  
  .yaeyama-area {
    padding: 7vw 0 15vw;
  }
  .yaeyama-area svg {
    margin: 0 auto;
    display: block;
    width: 85vw;
  }  
  
  .map-area {
    position: relative;
  }
  .areaBtn {
    position: absolute;
  }
  .areaBtn .Btn{
    font-size: 3.3vw;
    padding: 2vw 3vw;
      
  }
  .areaBtn .Txt {
    font-size: 4.3vw;
  }
  .northBtn {
    right: 37%;
    top: 31%;
  }
  .centralBtn {
    top: 48%;
    right: 67%;
  }
  .southBtn {
    top: 82%;
    right: 42%;
  }
  .keramaBtn {
    bottom: -35%;
    left: 30%;
  }
  .miyakoBtn {
    bottom: 10%;
    left: 36%;
  }
  .yaeyamaBtn {
    bottom: 15%;
    left: 0;
  }
  
  .mapLabel {
    font-size: 4.3vw;
  }
  
  .label-kumejima {
    left: 19vw;
    top: 45vw;
  }
  .label-aguni {
    right: 19vw;
    top: 27vw;
    left: auto;
  }
  .label-tonaki {
    right: 21vw;
    top: 44vw;
    left: auto;
  }
  
  .label-minamidaito {
    right: 32vw;
    top: 31vw;
  }
  .label-kitadaito {
    right: 27vw;
    top: 11vw;
  }
  
  .label-miyako {
    top: 38vw;
    left: 79vw;
  }
  .label-irabu {
    top: 32vw;
    left: 50vw;
  }
  .label-tarama {
    left: 8vw;
    top: 44vw;
  }
  
  .label-ishigaki{
    right: 1vw;
    top: 25vw;
  }
  .label-iriomote{
    left: 27vw;
    top: 41vw;
  }
  .label-hateruma{
    left: 43vw;
    top: 72vw;
  }
  .label-yonaguni{
    left: 8vw;
    top: 29vw;
  }
  	
  
  .areaPopover {
    width: 80%;
    top: 50% !important;
    left: 50% !important;
    -webkit-transform: translate(-50%, -50%) !important;
    transform: translate(-50%, -50%) !important;
  }
  .areaPopover__inner {
    width: 100%;
    padding: 4vw 5vw 5vw;
    max-width: 100%;
  }
  a.areaPopover__link {
    line-height: 1.5;
    font-size: 3.4vw;
  }
  p.areaPopover__link {
    line-height: 1.5;
    font-size: 3.4vw;
  }
  .areaPopover__close {
    width: 8vw;
    height: 8vw;
    font-size: 5vw;
    right: 10px;
    top: 10px;
  }
  
  .group_map .diver--a {
    width: 26vw;
    top: 33%;
  }
  .group_map .diver--b {
    width: 26.5vw;
    top: 69.5%;
  }
  .group_map .diver--c {
    width: 32vw;
    top: 62%;
    right: 2%;
  }
  
  .group_map .fish--a {
    top: 20%;
    width: 20vw;
  }
  .group_map .fish--b {
    top: 45%;
    right: 72%;
    width: 20vw;
  }
} 



/*--------------------------------------------------------------------------------
 * information 
--------------------------------------------------------------------------------*/
.information .ttl {
  margin-bottom: 40px;
}

.dots-list {
  list-style: disc;
  padding-left: 20px;
  max-width: 500px;
  margin: 0 auto;
}
.dots-list li {
  line-height: 1.5;
  text-align: left;
  padding: 5px;
}
.logo_marineLeisure {
  display: block;
  margin: 0 auto 10px;
}
.logo-wrapper {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin-top: 50px;
}

@media screen and (max-width:766px){
  .dots-list {
    max-width: 100%;
  }
  .logo_marineLeisure {
    width: 100%;
  }
  .logo-wrapper {
     flex-wrap: wrap;
  }
  .logo {
    flex-basis: 100%;
  }
  .logo a img {
    width: 100%;
  }
}








/*--------------------------------------------------------------------------------
 *
 *
 *
 *
 * フッター
 *
 *
 *
 *
--------------------------------------------------------------------------------*/
.footer {
  background: #fff;
  border-top: 1px solid #808080;
  padding-top: 40px;
  width: 90%;
  margin: 0 auto;
} 
.footer-wrapper {
	max-width: 1000px;
  width: 100%;
  margin: 0 auto 40px;
  display: flex;
  align-items: flex-start;
  justify-content: space-around;
}
.footer h2 {
  font-size: 18px;
  margin-bottom: 0px;
}
.footer p {
  font-size: 12px;
  color: #666666;
}

nav.footer_nav {
  display: flex;
  /* gap: 20px; */
  justify-content: space-evenly;
}
ul.footer_nav_list {
  flex-basis: 85%;
}
li.f_nav {
  padding: 5px;
}

li.f_nav a.global-navigation__link {
  padding: 10px;
  color: var(--black);
  display: block;
  font-weight: 400;
}

.right-wrapper {
    flex-basis: 50%;
}


address {
	font-size: 12px;
  text-align: center;
  padding: 30px 0;
}

@media screen and (max-width:766px){
	.footer .inner {
		margin-bottom: 0;
	}
	.footer-wrapper {
		flex-wrap: wrap;
		padding: 3% 0 0% 0;
	}
	.footer-wrapper .left-wrapper {
      flex-basis: 100%;
      text-align: center;
      margin-bottom: 7vw;
	}	
	.footer-wrapper .right-wrapper {
		flex-basis: 100%;
	}
    .footer h2 {
      font-size: 5.5vw;
    }
	.footer p {
		font-size: 4vw;
      text-align: center;
	}
	
	nav.footer_nav {
      justify-content: space-between;
    }
    li.f_nav a.global-navigation__link {
      font-size: 3.2vw;
      text-align: left;
    }
	address {
		font-size: 2.4vw; 
		padding: 5.4% 0;
		text-align: center;
	}
}

/* ------------------------------グローバルナビ上部固定------------------------------　*/
.fixed { position:fixed; top:0; width:100%; z-index:10000; }
@media screen and (max-width:766px){
.fixed { position:static; }
}

/* ------------------------------ページ下部固定CTA_SP------------------------------　*/
#buttonTow , #buttonTow a { display:none; }

/* ------------------------------ページトップへ戻る------------------------------　*/

#pageTop {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 99;
} 
#pageTop.is-stop{
  position: absolute;
}
#pageTop a {
	display: inline-block;
	/* padding: 10px; */
}
#pageTop a img {
  display: block;
  margin-left: auto;
}
#pageTop a:hover { text-decoration:none;}

@media screen and (max-width:766px){
  #pageTop {
    ight: 10px;
  }
  #pageTop a img { 
    width: 15vw;
    height: 15vw;
  }
}

/* ------------------------------フェードインアニメーション------------------------------　*/
.sa {opacity: 0; transition: all .9s ease; } /* ノーマル */
.sa.show {opacity: 1; transform: none; } /* ノーマル */
.sa-lr {transform: translate(-100px, 0); overflow: hidden;} /* 右から */
.sa-rl {transform: translate(100px, 0); overflow: hidden;} /* 左から */
.sa-up {transform: translate(0, 100px); } /* 下から */
.sa-down {transform: translate(0, -100px); } /* 上から */
.sa-scaleUp {transform: scale(.5); } /* 縮小→拡大 */
.sa-scaleDown {transform: scale(1.5); } /* 拡大→縮小 */
.sa-rotateL {transform: rotate(180deg); } /* 左回転 */
.sa-rotateR {transform: rotate(-180deg); } /* 右回転 */


@media screen and (max-width:768px){
	.sa-lr,
	.sa-rl {transform: translate(0, 100px); } 
}