@charset "UTF-8";
/* ==========================================================================
   共通設定として組み込むCSS（D:\案件\_common\共通設定として組み込むCSS.txt）
   ========================================================================== */
p,
h1, h2, h3, h4, h5, h6{
  margin: 0;
  /*letter-spacing: 0.075em;*/
  letter-spacing: inherit;
}
p{
  
}
h1, h2, h3, h4, h5, h6{
  line-height: 1.5;
}
 
a{
  color: inherit;
  transition: 0.3s;
}
a:hover{
  text-decoration: none;
  /*opacity: 0.7;*/
  /*color: inherit;*/
  color: var(--main-color);
}
img{
  max-width: 100%;
  width: auto;
}
 
ul, ol, li{
  margin: 0;
  padding: 0;
  list-style: none;
}
 
u{
  display: inline-block;
  text-decoration: none;
  font-style: normal;
}
 
 
.img_fit{
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.img_fit:before{
  content: "";
  display: block;
  padding-top: 100%;
}
.img_fit img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  font-family: 'object-fit: cover';
  position: absolute;
  z-index: 1;
  left: 0;
  top: 0;
}
 
a.img_fit{
  display: block;
}
a .img.img_fit img{
  transition: 0.2s all;
}
a:hover .img.img_fit img{
  transform: scale(1.05);
}
 
/* 動画埋め込みのレスポンシブ対応 */
iframe{
  max-width: 100%;
}
.responsive_video {
  position: relative;
}
 
.responsive_video:before{
  content: "";
  display: block;
  padding-top:56.25%;
}
.responsive_video video,
.responsive_video iframe,
.responsive_video object,
.responsive_video embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
 
.gjs-dashed .responsive_video:before{
  display: none;
}
.gjs-dashed .responsive_video [data-gjs-type="video"]:before{
  content: "";
  display: block;
  padding-top:56.25%;
  pointer-events: none;
}
 
 
/* 指定デバイスのみで表示するclass */
@media (min-width:1200px){
  .md:not(.pc){
    display: none!important;
  }
  .tb:not(.pc){
    display: none!important;
  }
  .sp:not(.pc){
    display: none!important;
  }
}
@media (min-width:1024px) and (max-width:1199px){
  .pc:not(.md){
    display: none!important;
  }
  .tb:not(.md){
    display: none!important;
  }
  .sp:not(.md){
    display: none!important;
  }
}
@media (min-width:768px) and (max-width:1023px){
  .pc:not(.tb){
    display: none!important;
  }
  .md:not(.tb){
    display: none!important;
  }
  .sp:not(.tb){
    display: none!important;
  }
}
@media (max-width:767px){
  .pc:not(.sp){
    display: none!important;
  }
  .md:not(.sp){
    display: none!important;
  }
  .tb:not(.sp){
    display: none!important;
  }
}
 
 
/* 指定デバイスで改行を消す */
@media (min-width:1720px){
  .fw_nobr br{
    display: none !important;
  }
}
@media (min-width:1520px){
  .lg_nobr br{
    display: none !important;
  }
}
@media (min-width:1200px){
  .pc_nobr br{
    display: none !important;
  }
}
 
@media (min-width:1024px) and (max-width:1199px){
  .md_nobr br{
    display: none !important;
  }
}
@media (min-width:768px) and (max-width:1023px){
  .tb_nobr br{
    display: none !important;
  }
}
@media (max-width:767px){
  .sp_nobr br{
    display: none !important;
  }
}
 
 
/* 指定した行数での切り取り */
.txt_ellipsis_line1,
.txt_ellipsis_line2,
.txt_ellipsis_line3,
.txt_ellipsis_line4,
.txt_ellipsis_line5,
.txt_ellipsis_line6,
.txt_ellipsis_line7,
.txt_ellipsis_line8,
.txt_ellipsis_line9,
.txt_ellipsis_line10{
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
}
.txt_ellipsis_line1{
  -webkit-line-clamp: 1;
}
.txt_ellipsis_line2{
  -webkit-line-clamp: 2;
}
.txt_ellipsis_line3{
  -webkit-line-clamp: 3;
}
.txt_ellipsis_line4{
  -webkit-line-clamp: 4;
}
.txt_ellipsis_line5{
  -webkit-line-clamp: 5;
}
/* ==========================================================================
   ワイドコンテナの仕様（D:\案件\_common\ワイドコンテナの仕様.txt）
   ========================================================================== */
/* ******************************
   コンテナ設定＋画面端までの距離
   ****************************** */
:root {
 
  /* 画面端までの距離（通常） */
  --margin-for-device-side: -15px;
 
  /* 画面端までの距離（ワイド） */
  --margin-for-device-side-w: -15px;
 
}
@media (min-width:768px){
  :root {
    --margin-for-device-side: calc(345px - 50vw);
    --margin-for-device-side-w: calc(345px - 50vw);
  }
}
@media (min-width:992px){
  :root {
    --margin-for-device-side: calc(465px - 50vw);
    --margin-for-device-side-w: calc(465px - 50vw);
  }
}
@media (min-width:1200px){
  :root {
    --margin-for-device-side: calc(555px - 50vw);
    --margin-for-device-side-w: calc(555px - 50vw);
  }
}
@media (min-width:1366px){
 
  /* コンテナサイズ:1286px */
  .container.wide{
    max-width: calc(1286px + 80px);
    padding-left: 40px;
    padding-right: 40px;
  }
 
  :root {
    --margin-for-device-side-w: calc(643px - 50vw);
  }
 
}
@media (min-width:1470px){
 
  /* コンテナサイズ:1370px */
  .container.wide{
    max-width: calc(1370px + 100px);
    padding-left: 50px;
    padding-right: 50px;
  }
  :root {
    --margin-for-device-side-w: calc(685px - 50vw);
  }
 
}
@media (min-width:1720px){
 
  /* コンテナサイズ:1520px */
  .container.wide{
    max-width: calc(1520px + 200px);
    padding-left: 100px;
    padding-right: 100px;
  }
  :root {
    --margin-for-device-side-w: calc(760px - 50vw);
  }
}

/* ==========================================================================
   サイト共通
   ========================================================================== */
:root{
  --main-color: #f39800;
  --c-black: #000;
  --c-orange: #f39800;
  --c-navy: #00489d;
  --c-green: #90c320;
  --c-beige: #f0e7d8;
  --c-gray: #e5e5e5;
  --txt-shadow: 1px 2px 5px rgba(0,0,0,0.35);
  --f-ja: "Noto Sans JP", sans-serif;
  --f-maru: "Zen Maru Gothic", sans-serif;
  --f-en: "Outfit", sans-serif;
  --f-josefin: "Josefin Sans", sans-serif;
}
body{
  font-family: var(--f-ja);
  font-weight: 500;
  font-size: 15px;
  line-height: 1.6;
  color: var(--c-black);
  background: #fff;
  overflow-x: hidden;
}
img{
  vertical-align: top;
}
.pg_home{
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.section{
  position: relative;
  z-index: 1;
}
/* リンクパーツはレイアウト系プロパティをアニメーションさせない */
.c_btn,
.work_item,
.mv_bnr,
.c_post,
.insta_link,
.gnav_item,
.ftr_sns_item,
.hdr_menu_btn,
.footer_fix a{
  transition: color 0.3s, background-color 0.3s, opacity 0.3s;
}

/* ---------- 吹き出しラベル ---------- */
.c_balloon{
  display: inline-block;
  position: relative;
  z-index: 1;
  min-width: 130px;
  padding: 0 12px;
  background: #fff;
  border-radius: 20px;
  text-align: center;
}
.c_balloon:after{
  content: "";
  position: absolute;
  z-index: 1;
  left: 50%;
  bottom: -7px;
  margin-left: -4px;
  border-top: 8px solid #fff;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
}
.c_balloon_en,
.c_balloon_ja{
  font-family: var(--f-en);
  font-weight: 600;
  font-size: 14px;
  line-height: 30px;
  letter-spacing: 0;
  color: var(--c-black);
}
.c_balloon_ja{
  font-family: var(--f-ja);
  font-weight: 700;
}
.c_balloon_green{
  background: var(--c-green);
}
.c_balloon_green:after{
  border-top-color: var(--c-green);
}
.c_balloon_green .c_balloon_ja{
  color: #fff;
}

/* ---------- 見出し ---------- */
.c_ttl{
  text-align: center;
}
.c_ttl_en{
  margin-top: 6px;
  font-family: var(--f-en);
  font-weight: 600;
  font-size: 52px;
  line-height: 1;
  letter-spacing: 0;
  color: var(--c-black);
}
.c_ttl_ja{
  margin-top: 12px;
  font-family: var(--f-maru);
  font-weight: 900;
  font-size: 26px;
  line-height: 1.39;
  letter-spacing: 0.075em;
  color: #fff;
  text-shadow: var(--txt-shadow);
}

/* ---------- 本文 ---------- */
.c_txt{
  margin-top: 20px;
}
.c_txt > *{
  font-weight: 700;
  font-size: 15px;
  line-height: 1.875;
  letter-spacing: 0.075em;
  color: #fff;
  text-shadow: var(--txt-shadow);
}
.c_txt > * + *{
  margin-top: 1.875em;
}

/* ---------- ボタン ---------- */
.c_btn_wrap{
  margin-top: 30px;
  text-align: center; /* SPはボタンをすべて中央寄せ */
}
.c_btn_wrap_center{
  text-align: center;
}
.c_btn{
  display: inline-block;
  position: relative;
  z-index: 1;
  width: 260px;
  height: 60px;
  padding: 0 60px 0 20px;
  background: var(--c-orange);
  border-radius: 10px;
  text-align: left;
}
.c_btn:after{
  content: "\2192";
  position: absolute;
  z-index: 1;
  top: 6px;
  right: 6px;
  width: 48px;
  height: 48px;
  background: #fff;
  border-radius: 8px;
  font-family: var(--f-ja);
  font-weight: 900;
  font-size: 18px;
  line-height: 48px;
  text-align: center;
  color: var(--c-black);
  transition: 0.3s;
}
.c_btn_txt{
  font-weight: 700;
  font-size: 18px;
  line-height: 60px;
  letter-spacing: 0.075em;
  color: #fff;
  text-shadow: var(--txt-shadow);
}
.c_btn:hover{
  background: #ffae2b;
}
.c_btn:hover:after{
  right: 3px;
}

@media (min-width:768px){
  .c_balloon{
    min-width: 174px;
    padding: 0 14px;
  }
  .c_balloon:after{
    bottom: -9px;
    margin-left: -5px;
    border-top-width: 10px;
    border-left-width: 5px;
    border-right-width: 5px;
  }
  .c_balloon_en,
  .c_balloon_ja{
    font-size: 20px;
    line-height: 38px;
  }
  .c_ttl_en{
    margin-top: 8px;
    font-size: 64px;
  }
  .c_ttl_ja{
    margin-top: 14px;
    font-size: 32px;
  }
  .c_txt{
    margin-top: 32px;
  }
  .c_txt > *{
    font-size: 16px;
    line-height: 2;
  }
  .c_txt > * + *{
    margin-top: 2em;
  }
  .c_btn_wrap{
    margin-top: 42px;
  }
  .c_btn_wrap:not(.c_btn_wrap_center){
    text-align: left;
  }
  .c_btn{
    width: 332px;
    height: 78px;
    padding: 0 80px 0 26px;
  }
  .c_btn:after{
    top: 6px;
    right: 7px;
    width: 66px;
    height: 66px;
    border-radius: 10px;
    font-size: 20px;
    line-height: 66px;
  }
  .c_btn_txt{
    font-size: 24px;
    line-height: 78px;
  }
}
@media (min-width:1024px){
  .c_ttl_en{
    font-size: 76px;
  }
}
@media (min-width:1200px){
  .c_ttl_en{
    font-size: 84px;
  }
  .c_ttl_ja{
    font-size: 38px;
  }
}
@media (min-width:1440px){
  .c_ttl_en{
    font-size: 100px;
  }
  .c_ttl_ja{
    font-size: 42px;
  }
  .c_txt > *{
    font-size: 18px;
  }
}
@media (min-width:1720px){
  .c_ttl_ja{
    font-size: 46px;
  }
}

/* ==========================================================================
   ヘッダー（MENUボタン）
   ========================================================================== */
.hdr_menu_btn{
  display: none;
}
@media (min-width:768px){
  .hdr_menu_btn{
    display: block;
    position: fixed;
    z-index: 110;
    /* 0.75倍に縮小するため、はみ出し量も0.75倍にする（1200px以上は等倍で -91px / -82px） */
    top: -68px;
    right: -61.5px;
    width: 242px;
    height: 242px;
    background: #fff;
    border-radius: 50%;
    color: var(--c-black);
    transform: scale(0.75);
    transform-origin: right top;
    box-shadow: 0 0 10px rgba(0,0,0,0.08);
  }
  .hdr_menu_btn i{
    position: absolute;
    z-index: 1;
    top: 126px;
    left: 64px;
    width: 44px;
    font-size: 50px;
    line-height: 1;
    text-align: center;
  }
  /* ハンバーガーはデザインに合わせてCSSで描画（幅44px・太さ7px・16px間隔の3本線） */
  .hdr_menu_btn i.fa-bars{
    height: 39px;
    font-size: 0;
  }
  .hdr_menu_btn i.fa-bars:before{
    content: "";
    display: block;
    width: 44px;
    height: 7px;
    background: currentColor;
    border-radius: 1px;
    box-shadow: 0 16px 0 currentColor, 0 32px 0 currentColor;
  }
  .hdr_menu_btn_txt{
    position: absolute;
    z-index: 1;
    top: 176px;
    left: 56px;
    width: 62px;
    font-family: var(--f-josefin);
    font-weight: 600;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
  }
  .hdr_menu_btn:hover{
    color: var(--c-orange);
  }
}
@media (min-width:1200px){
  .hdr_menu_btn{
    top: -91px;
    right: -82px;
    transform: none;
  }
}

/* ---------- グローバルナビ（展開時） ---------- */
.gnav{
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 50px 20px 90px;
  background: linear-gradient(160deg, rgba(0,180,200,0.97) 0%, rgba(20,215,160,0.97) 100%);
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transition: 0.4s;
}
.is_gnav_open{
  overflow: hidden;
}
.is_gnav_open .gnav{
  opacity: 1;
  visibility: visible;
}
.gnav_inner{
  display: flex;
  flex-direction: column-reverse;
  max-width: 1250px;
  margin: 0 auto;
}
.gnav_side{
  margin-top: 40px;
  padding-top: 30px;
  border-top: 1px solid rgba(255,255,255,0.6);
  text-align: center;
}
.gnav_logo img{
  width: 150px;
}
.gnav_info{
  margin-top: 20px;
}
.gnav_info > *{
  font-weight: 700;
  font-size: 13px;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: #fff;
}
.gnav_list{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.gnav_item{
  display: block;
  width: 47%;
  padding: 26px 0 8px;
  border-bottom: 1px solid rgba(255,255,255,0.7);
  color: #fff;
}
.gnav_en{
  display: none;
  font-family: var(--f-en);
  font-weight: 600;
  font-size: 22px;
  line-height: 1;
  letter-spacing: 0.03em;
}
.gnav_ja{
  font-weight: 700;
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
.gnav_item:hover{
  color: #fff;
  opacity: 0.7;
}
/* SP：右向きの矢印（＞） */
.gnav_item{
  position: relative;
  z-index: 1;
  padding-right: 20px;
}
.gnav_item:after{
  content: "\f105";
  position: absolute;
  z-index: 1;
  right: 4px;
  bottom: 9px;
  font-family: FontAwesome;
  font-size: 18px;
  line-height: 1;
  color: #fff;
}
@media (min-width:768px){
  .gnav{
    padding: 140px 40px 60px;
  }
  .gnav_inner{
    flex-direction: row;
    align-items: stretch;
  }
  .gnav_side{
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    flex-shrink: 0;
    width: 240px;
    margin-top: 0;
    padding: 0 30px 0 0;
    border-top: none;
    border-right: 1px solid rgba(255,255,255,0.6);
    text-align: left;
  }
  .gnav_info{
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid rgba(255,255,255,0.6);
  }
  .gnav_list{
    display: block;
    flex: 1;
    padding-left: 30px;
  }
  .gnav_item{
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    width: 100%;
    margin-bottom: 22px;
    padding: 0 0 4px;
  }
  .gnav_item:after{
    display: none;
  }
  .gnav_en{
    display: block;
  }
  .gnav_ja{
    font-size: 13px;
  }
}
@media (min-width:1200px){
  .gnav{
    display: flex;
    align-items: center;
    padding: 80px 60px;
  }
  .gnav_inner{
    width: 100%;
  }
  .gnav_side{
    width: 300px;
    min-height: 500px;
  }
  .gnav_logo img{
    width: 190px;
  }
  .gnav_list{
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-content: flex-start;
    column-gap: 5%;
    padding-left: 60px;
  }
  .gnav_item{
    width: 30%;
    margin-bottom: 90px;
  }
  .gnav_en{
    font-size: 26px;
  }
  .gnav_ja{
    font-size: 14px;
  }
}

/* ==========================================================================
   メインビジュアル
   ========================================================================== */
.mv{
  position: relative;
  z-index: 2;
  overflow: hidden;
  padding-top: 24px;
  background: linear-gradient(180deg, #27f0a0 0%, #0ddcbb 100%);
  text-align: center;
}
.mv_head{
  position: relative;
  z-index: 2;
}
.mv_sub{
  font-family: var(--f-maru);
  font-weight: 900;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.1em;
  color: #fff;
  text-shadow: var(--txt-shadow);
}
.mv_logo{
  width: 86vw;
  margin: 10px auto 0;
}
.mv_logo img{
  width: 100%;
  filter: drop-shadow(1px 2px 2.5px rgba(0,0,0,0.35));
}
.mv_catch{
  margin-top: 12px;
  font-weight: 900;
  font-size: 5.2vw;
  line-height: 1;
  letter-spacing: 0;
  color: #fff;
  text-shadow: var(--txt-shadow);
}
/* SPは両端が見切れないよう画面幅に収める */
.mv_illust{
  position: relative;
  z-index: 1;
  width: 100%;
  margin: 8px 0 0;
}
.mv_illust img{
  width: 100%;
}

/* 福井を代表する企業100選 バナー */
.mv .container{
  position: relative;
  z-index: 3;
}
.mv_bnr{
  display: flex;
  flex-direction: column;
  margin-top: -3vw;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.mv_bnr_img{
  padding: 10px;
}
.mv_bnr_img img{
  width: 100%;
}
.mv_bnr_btn{
  display: flex;
  justify-content: center;
  align-items: center;
  height: 40px;
  background: var(--c-navy);
  color: #fff;
  transition: 0.3s;
}
.mv_bnr_btn_txt{
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.075em;
}
.mv_bnr_btn i{
  margin-left: 8px;
  font-size: 18px;
}
.mv_bnr:hover .mv_bnr_btn{
  background: #1d63b8;
}
/* ホバーで少し拡大（マウス操作の端末のみ） */
@media (hover: hover){
  .mv_bnr{
    transition: scale 0.3s ease, color 0.3s, background-color 0.3s, opacity 0.3s;
  }
  .mv_bnr:hover{
    scale: 1.03;
  }
}
@media (min-width:768px){
  .mv{
    padding-top: min(1.72vw, 33px);
  }
  .mv_sub{
    font-size: min(1.5625vw, 30px);
  }
  .mv_logo{
    width: min(68.8vw, 1321px);
    margin-top: min(0.625vw, 12px);
  }
  .mv_catch{
    margin-top: min(0.73vw, 14px);
    font-size: min(3.02vw, 58px);
  }
  .mv_illust{
    width: min(98.28vw, 1887px);
    margin: max(-5.52vw, -106px) auto 0;
  }
  .mv_bnr{
    flex-direction: row;
    margin-top: max(-3.54vw, -68px);
    box-shadow: none;
  }
  .mv_bnr_img{
    display: flex;
    align-items: center;
    flex: 1;
    padding: 8px 28px;
  }
  .mv_bnr_btn{
    flex-direction: column;
    flex-shrink: 0;
    width: 144px;
    height: auto;
  }
  .mv_bnr_btn_txt{
    font-size: 18px;
  }
  .mv_bnr_btn i{
    margin: 10px 0 0;
    font-size: 26px;
  }
}

/* ==========================================================================
   ABOUT YUKARI
   ========================================================================== */
.sec_about{
  z-index: 3;
  padding: 60px 0;
  background: linear-gradient(180deg, #0ddcbb 0%, #01cfcb 100%);
}
/* 動物のイラスト：SP/TBは写真の横（右側）に、写真の下端にそろえて配置（PCと同じく写真の横） */
.about_deco{
  position: absolute;
  z-index: 3;
  right: -3vw;
  bottom: 60px;
  width: 42vw;
  height: 57.1vw;
}
.about_deco img{
  position: absolute;
  z-index: 1;
}
.about_deco_cow{
  left: 13.84%;
  top: 0;
  width: 86.16%;
}
.about_deco_leopard{
  left: 0;
  top: 35.67%;
  width: 87.71%;
}
.about_deco_pig{
  left: 25.03%;
  top: 66.78%;
  width: 62.9%;
}
.about_photo{
  width: 55%;
  margin-top: 40px;
  border-radius: 30px;
}
.about_photo.img_fit:before{
  padding-top: 101.92%;
}
@media (min-width:768px){
  .sec_about{
    padding-bottom: 80px;
  }
  .about_photo{
    width: 56%;
    border-radius: 40px;
  }
  .about_deco{
    right: -2vw;
    bottom: 80px;
    width: 39vw;
    height: 53vw;
  }
}
@media (min-width:1024px){
  .sec_about{
    padding: 146px 0 60px;
  }
  .about_inner{
    display: flex;
    align-items: flex-start;
  }
  .about_txtarea{
    position: relative;
    z-index: 2;
    width: 45%;
  }
  .about_photo{
    width: 37.7%;
    margin: 144px 0 0 3.9%;
    border-radius: 50px;
  }
  .about_deco{
    top: 4.01vw;
    left: 65.68vw;
    right: auto;
    bottom: auto;
    width: 47.03vw;
    height: 63.96vw;
  }
}

/* ==========================================================================
   OUR PHILOSOPHY
   ========================================================================== */
.sec_philosophy{
  z-index: 2;
  padding: 50px 0 60px;
  background: linear-gradient(180deg, #01cfcb 0%, #00c2dd 100%);
}
.philosophy_inner{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.philosophy_txtarea{
  order: -1;
  width: 100%;
  margin-bottom: 40px;
  text-align: center;
}
/* SPは本文のみ左寄せ（TB以上は中央） */
.sec_philosophy .c_txt{
  text-align: left;
}
@media (min-width:768px){
  .sec_philosophy .c_txt{
    text-align: center;
  }
}
.sec_philosophy .c_ttl_ja{
  letter-spacing: 0;
}
@media (min-width:768px){
  .sec_philosophy .c_ttl_ja,
  .sec_work .c_ttl_ja{
    margin-top: 7px;
  }
}
.philosophy_photo{
  width: 47%;
  border-radius: 20px;
}
.philosophy_photo.img_fit:before{
  padding-top: 139.04%;
}
.philosophy_photo_02{
  margin-top: 40px;
}
@media (min-width:1024px){
  .sec_philosophy{
    padding: 57px 0 88px;
  }
  .philosophy_inner{
    flex-wrap: nowrap;
    align-items: flex-start;
  }
  .philosophy_txtarea{
    order: 0;
    flex: 1;
    margin-bottom: 0;
    padding: 0 10px;
  }
  .philosophy_photo{
    flex-shrink: 0;
    width: 26.1%;
    border-radius: 30px;
  }
  .philosophy_photo_01{
    margin-top: 47px;
  }
  .philosophy_photo_02{
    margin-top: 218px;
  }
  .sec_philosophy .c_txt > *{
    font-size: 15px;
  }
}
@media (min-width:1200px){
  .sec_philosophy .c_txt > *{
    font-size: 16px;
  }
}
@media (min-width:1440px){
  .sec_philosophy .c_txt > *{
    font-size: 18px;
  }
}

/* ==========================================================================
   OUR WORK
   ========================================================================== */
.sec_work{
  z-index: 1;
  padding: 50px 0 70px;
  background: var(--c-beige);
}
/* ゴリラのイラスト：SP/TBは見出しの上に配置 */
.work_bg{
  position: relative;
  z-index: 1;
  width: 72vw;
  margin: 0 0 10px -4vw;
}
.work_bg img{
  width: 100%;
}
.sec_work .c_ttl_ja{
  letter-spacing: 0;
  color: var(--c-black);
  text-shadow: none;
}
.sec_work .c_txt > *{
  color: var(--c-black);
  text-shadow: none;
}
.work_intro{
  display: flex;
  flex-direction: column-reverse;
}
.work_intro_deco{
  margin-top: 30px;
  text-align: center;
}
.work_intro_deco img{
  width: 80%;
  max-width: 400px;
}
.work_area{
  position: relative;
  z-index: 1;
  margin-top: 40px;
}
.work_list{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px;
}
.work_item{
  --c: #e975bf;
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 363px;
  padding: 40px 30px 30px;
  background: #fff;
  border-radius: 80px;
  text-align: center;
  color: var(--c-black);
}
.work_item:nth-child(1){ --c: #e975bf; }
.work_item:nth-child(2){ --c: #8fc31f; }
.work_item:nth-child(3){ --c: #009d95; }
.work_item:nth-child(4){ --c: #eb6100; }
.work_item:nth-child(5){ --c: #f39700; }
.work_item:nth-child(6){ --c: #e3007f; }
.work_item:nth-child(7){ --c: #0067b7; }
.work_item:after{
  content: "\2192";
  display: block;
  width: 53px;
  height: 53px;
  margin: 21px auto 0;
  background: var(--c);
  border-radius: 10px;
  font-family: var(--f-ja);
  font-weight: 900;
  font-size: 20px;
  line-height: 53px;
  color: #fff;
  transition: 0.3s;
}
.work_item:hover{
  color: var(--c-black);
}
.work_item:hover:after{
  opacity: 0.75;
}
/* ホバー：カードが少し浮き上がり、矢印ボタンが右に動く（マウス操作の端末のみ）
   ※1520px以上はカードごとに transform で上下をずらしているため、個別プロパティ translate を使う */
@media (hover: hover){
  .work_item{
    transition: translate 0.3s, box-shadow 0.3s;
  }
  .work_item:hover{
    translate: 0 -8px;
    box-shadow: 0 14px 28px rgba(0,0,0,0.12);
  }
  .work_item:hover:after{
    opacity: 1;
    translate: 6px 0;
  }
}
.work_item_en{
  font-family: var(--f-en);
  font-weight: 600;
  font-size: 30px;
  line-height: 1;
  letter-spacing: 0;
}
.work_item_ja{
  display: inline-block;
  width: 144px; /* ラベルの幅は文字数に関わらず統一（デザインどおり） */
  margin-top: 6px;
  text-align: center;
  background: var(--c);
  border-radius: 18px;
  font-weight: 700;
  font-size: 15px;
  line-height: 32px;
  letter-spacing: 0;
  color: #fff;
}
.work_item_catch{
  margin-top: 10px;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.417;
  letter-spacing: 0;
  color: var(--c);
}
.work_item_txt{
  margin-top: 12px;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0.05em;
  text-align: left;
}
/* カードのステッカー：SP/TBはカード右下に重ねて配置 */
.work_item_deco{
  position: absolute;
  z-index: 2;
  right: -12px;
  bottom: -30px;
  width: 38%;
}
.work_item:nth-child(6) .work_item_deco{
  width: 52%;
}
.work_deco img{
  display: block;
  width: 70%;
  max-width: 340px;
  margin: 50px auto 0;
}
@media (min-width:768px){
  .sec_work{
    padding-top: 60px;
  }
  .work_bg{
    width: 62vw;
  }
  .work_list{
    gap: 50px 23px;
  }
  .work_item{
    width: calc(50% - 12px);
  }
}
@media (min-width:1024px){
  .sec_work{
    padding: 120px 0 100px;
  }
  .work_bg{
    position: absolute;
    z-index: 1;
    top: 3.02vw;
    left: -2.5vw;
    width: 44.58vw;
    margin: 0;
  }
  .sec_work .container{
    position: relative;
    z-index: 2;
  }
  .work_intro{
    flex-direction: row;
    align-items: flex-end;
  }
  .work_intro_deco{
    position: relative;
    z-index: 2;
    flex-shrink: 0;
    align-self: stretch;
    width: 55.2%;
    margin-top: 0;
  }
  .work_intro_deco img{
    position: absolute;
    z-index: 1;
    left: 0;
    bottom: -96px;
    width: 78.4%;
    max-width: none;
  }
  .work_intro_txtarea{
    width: 45%;
  }
  .work_area{
    margin-top: 92px;
  }
  .work_item{
    width: calc((100% - 47px) / 3);
    max-width: none;
    padding: 44px 24px 32px;
    border-radius: 90px;
  }
  .work_item_en{
    font-size: 26px;
  }
  .work_item_ja{
    width: 172px;
    margin-top: 5px;
    border-radius: 17px;
    font-size: 18px;
    line-height: 36px;
  }
  .work_item_catch{
    margin-top: 11px;
    font-size: 24px;
  }
  .work_item_txt{
    margin-top: 13px;
    font-size: 16px;
  }
}
@media (min-width:1520px){
  .sec_work{
    padding-bottom: 245px;
  }
  .work_list{
    gap: 117px 1.5%;
  }
  .work_item{
    width: 23.85%;
    padding: 48px 30px 34px;
    border-radius: 120px;
  }
  .work_item_en{
    font-size: 30px;
  }
  /* カードを互い違いに配置（ステッカーが隣のカードの上に乗るよう重なり順も調整） */
  .work_item:nth-child(1){ z-index: 3; transform: translateY(19px); }
  .work_item:nth-child(2){ z-index: 2; transform: translateY(120px); }
  .work_item:nth-child(3){ z-index: 3; transform: translateY(59px); }
  .work_item:nth-child(4){ z-index: 4; }
  .work_item:nth-child(5){ z-index: 1; transform: translateY(29px); }
  .work_item:nth-child(6){ z-index: 1; }
  .work_item:nth-child(7){ z-index: 2; transform: translateY(49px); }

  /* ステッカー：デザインデータの位置（カード基準） */
  .work_item_deco{
    right: auto;
    bottom: auto;
  }
  .work_item:nth-child(1) .work_item_deco{ left: 57.3%;  top: 344px;  width: 55.1%; }
  .work_item:nth-child(2) .work_item_deco{ left: 51.5%;  top: -141px; width: 53.4%; }
  .work_item:nth-child(3) .work_item_deco{ left: 56.7%;  top: 343px;  width: 58.1%; }
  .work_item:nth-child(4) .work_item_deco{ left: -25.1%; top: 11px;   width: 48.5%; }
  .work_item:nth-child(5) .work_item_deco{ left: -53.4%; top: 73px;   width: 66.9%; }
  .work_item:nth-child(6) .work_item_deco{ left: 0;      top: 402px;  width: 94.8%; }
  .work_item:nth-child(7) .work_item_deco{ left: 92.8%;  top: 228px;  width: 58.4%; }

  .work_deco img{
    position: absolute;
    z-index: 2;
    left: -0.2%;
    top: 979px;
    width: 28.25%;
    max-width: none;
    margin: 0;
  }
}
@media (min-width:1720px){
  .work_item{
    min-height: 413px;
    padding: 48px 38px 34px;
  }
  .work_item_en{
    font-size: 32px;
  }
}

/* ==========================================================================
   PEOPLE / FOR FAMILY
   ========================================================================== */
.sec_people{
  z-index: 2;
  padding: 60px 0 40px;
  background: linear-gradient(180deg, #00aaf2 0%, #00b5e8 100%);
}
.sec_family{
  z-index: 1;
  padding: 40px 0 70px;
  background: linear-gradient(180deg, #00b5e8 0%, #00c1dd 100%);
}
.people_txtarea,
.family_txtarea{
  position: relative;
  z-index: 2;
}
.people_photo_wrap,
.family_photo_wrap{
  position: relative;
  z-index: 1;
  margin-top: 40px;
}
.people_photo_wrap{
  margin-top: 90px;
  margin-right: var(--margin-for-device-side-w);
}
.family_photo_wrap{
  margin-left: var(--margin-for-device-side-w);
}
.people_photo{
  border-radius: 30px 0 0 30px;
}
.family_photo{
  border-radius: 0 30px 30px 0;
}
.people_photo.img_fit:before,
.family_photo.img_fit:before{
  padding-top: 74.37%;
}
.family_inner{
  display: flex;
  flex-direction: column;
}
.family_txtarea{
  order: -1;
}
/* 人物イラスト：SP/TBはボタン横・写真の角・見出し横に配置 */
.people_deco_01,
.people_deco_02,
.family_deco_01,
.family_deco_02{
  position: absolute;
  z-index: 3;
}
.people_deco_01 img,
.people_deco_02 img,
.family_deco_01 img,
.family_deco_02 img{
  width: 100%;
}
.people_deco_01{
  right: 0;
  bottom: -30px;
  width: 70px;
}
/* 写真に被らないよう、写真の上端にのせる */
.people_deco_02{
  left: 0;
  bottom: 100%;
  width: 110px;
}
.family_deco_01{
  right: 0;
  top: -40px;
  width: 100px;
}
.family_deco_02{
  right: 10px;
  bottom: -40px;
  width: 80px;
}
@media (min-width:768px){
  .people_photo_wrap{
    margin-top: 130px;
  }
  .people_deco_01{
    right: 5%;
    bottom: -40px;
    width: 100px;
  }
  .people_deco_02{
    width: 160px;
  }
  .family_deco_01{
    top: -50px;
    width: 140px;
  }
  .family_deco_02{
    right: 20px;
    bottom: -60px;
    width: 110px;
  }
}
@media (min-width:1024px){
  .sec_people{
    padding: 117px 0 48px;
  }
  .sec_family{
    padding: 48px 0 118px;
  }
  .people_inner,
  .family_inner{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
  .people_txtarea,
  .family_txtarea{
    order: 0;
    width: 45%;
  }
  .people_photo_wrap{
    width: calc(38.6% - var(--margin-for-device-side-w));
    margin-top: 142px;
  }
  .family_photo_wrap{
    width: calc(38.6% - var(--margin-for-device-side-w));
    margin-top: 144px;
  }
  .people_photo{
    border-radius: 50px 0 0 50px;
  }
  .family_photo{
    border-radius: 0 50px 50px 0;
  }
  .people_deco_01{
    left: 57%;
    top: calc(100% - 29px);
    right: auto;
    bottom: auto;
    width: 175px;
  }
  /* 写真との間隔は画面幅に比例させる（1920pxで約65px：デザインどおり） */
  .people_deco_02{
    left: -1%;
    bottom: calc(100% + 3.4vw);
    width: 40.1%;
  }
  .family_deco_01{
    right: -2%;
    top: -50px;
    width: 28%;
  }
  .family_deco_02{
    left: calc(100% + 10px);
    right: auto;
    bottom: -60px;
    width: 120px;
  }
}
@media (min-width:1440px){
  .family_deco_01{
    right: -6%;
    top: -60px;
    width: 30%;
  }
  .family_deco_02{
    left: calc(100% + 41px);
    bottom: -111px;
    width: 172px;
  }
}
@media (min-width:1720px){
  .family_deco_01{
    left: 62.4%;
    right: auto;
    top: -27px;
    width: 40.1%;
  }
}

/* ==========================================================================
   NEWS / COLUMN（記事一覧）
   ========================================================================== */
.sec_news{
  padding: 60px 0;
  background: var(--c-gray);
}
.sec_column{
  z-index: 2;
  padding: 60px 0 40px;
  background: linear-gradient(180deg, #01ccd0 0%, #00d6c4 100%);
}
.c_post_list{
  margin-top: 24px;
}
.c_post_list .webgene-blog{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px 15px;
}
.c_post{
  display: block;
  color: var(--c-black);
}
.c_post:hover{
  color: var(--c-black);
}
.c_post .img{
  background: #c9c9c9;
  border-radius: 10px;
}
.c_post .img.img_fit:before{
  padding-top: 77.11%;
}
.c_post_meta{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 4px;
  margin-top: 8px;
}
.c_post_date{
  font-family: var(--f-en);
  font-weight: 500;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.05em;
}
.c_post_cate{
  min-width: 70px;
  padding: 0 8px;
  background: #009943;
  border-radius: 15px;
  font-weight: 500;
  font-size: 11px;
  line-height: 22px;
  letter-spacing: 0.05em;
  text-align: center;
  color: #fff;
}
.column_list .c_post_cate{
  background: #e70012;
}
.c_post_ttl{
  margin-top: 8px;
  font-weight: 500;
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.sec_news .c_btn_wrap,
.sec_column .c_btn_wrap{
  margin-top: 40px;
}
.column_btn_area{
  position: relative;
  z-index: 1;
  padding-bottom: 110px;
}
/* 人物イラスト：SP/TBはボタンの下に左右に配置 */
.column_deco_01,
.column_deco_02{
  position: absolute;
  z-index: 2;
}
.column_deco_01 img,
.column_deco_02 img{
  width: 100%;
}
.column_deco_01{
  left: 3%;
  bottom: 0;
  width: 90px;
}
.column_deco_02{
  right: 0;
  bottom: 0;
  width: 125px;
}
@media (min-width:768px){
  .column_btn_area{
    padding-bottom: 150px;
  }
  .column_deco_01{
    width: 125px;
  }
  .column_deco_02{
    width: 175px;
  }
}
@media (min-width:768px){
  .c_post_list .webgene-blog{
    gap: 40px 18px;
  }
  .c_post .img{
    border-radius: 20px;
  }
  .c_post_meta{
    margin-top: 10px;
  }
  .c_post_date{
    font-size: 16px;
  }
  .c_post_cate{
    padding: 0 12px;
    font-size: 13px;
    line-height: 28px;
    white-space: nowrap;
  }
  .c_post_ttl{
    margin-top: 12px;
    font-size: 16px;
    line-height: 1.667;
  }
}
@media (min-width:1024px){
  .sec_news{
    padding: 120px 0 125px;
  }
  .sec_column{
    padding: 117px 0 60px;
  }
  .c_post_list{
    margin-top: 42px;
  }
  .c_post_list .webgene-blog{
    grid-template-columns: repeat(4, 1fr);
  }
  .sec_news .c_btn_wrap,
  .sec_column .c_btn_wrap{
    margin-top: 66px;
  }
  .column_btn_area{
    padding-bottom: 0;
  }
  .column_deco_01{
    left: -0.2%;
    top: 24px;
    bottom: auto;
    width: 15.3%;
  }
  .column_deco_02{
    left: 76.1%;
    right: auto;
    top: -2px;
    bottom: auto;
    width: 24%;
  }
}
@media (min-width:1440px){
  .c_post_cate{
    width: 44%;
    min-width: 0;
    padding: 0 8px;
    font-size: 15px;
    line-height: 32px;
  }
  /* 詳細ページのカテゴリは一覧（44%）の半分の幅 */
  .post_detail_meta .c_post_cate{
    width: 22%;
  }
  .c_post_ttl{
    font-size: 18px;
  }
}

/* ==========================================================================
   INSTAGRAM
   ========================================================================== */
.sec_insta{
  z-index: 1;
  padding: 40px 0 60px;
  background: linear-gradient(180deg, #00d6c4 0%, #0edebc 100%);
}
.insta_list{
  margin-top: 20px;
}
.insta_list .webgene-blog{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4px;
}
.insta_link{
  display: block;
}
/* CMSのInstagram機能の出力（.webgene-item > .img > img / video）に合わせる */
.insta_list .webgene-item .img{
  display: block;
  position: relative;
  z-index: 1;
  overflow: hidden;
  background-color: #ccc;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  border-radius: 6px;
}
.insta_list .webgene-item .img:before{
  content: "";
  display: block;
  padding-top: 131.73%;
}
.insta_list .webgene-item .img video{
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  background: #000;
}
@media (min-width:768px){
  .insta_list .webgene-blog{
    grid-template-columns: repeat(6, 1fr);
    gap: 6px;
  }
  .insta_list .webgene-item .img{
    border-radius: 10px;
  }
}
@media (min-width:1024px){
  .sec_insta{
    padding: 57px 0 100px;
  }
  .insta_list{
    margin-top: 21px;
  }
}

/* ==========================================================================
   フッター
   ========================================================================== */
.footer{
  padding-top: 60px;
  background: linear-gradient(180deg, #0edebc 0%, #2af29c 100%);
  text-align: center;
}
.ftr_contact{
  padding-bottom: 60px;
  border-bottom: 1px solid rgba(255,255,255,0.8);
}
.ftr_contact_box{
  padding: 20px 15px 30px;
  background: #fff;
  border-radius: 24px;
}
.ftr_contact_lead{
  margin-top: 10px;
  font-family: var(--f-maru);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.4;
  letter-spacing: 0;
}
.ftr_contact_txt{
  margin-top: 16px;
  text-align: left; /* SPは左寄せ（TB以上は中央） */
}
.ftr_contact_txt > *{
  font-weight: 500;
  font-size: 13px;
  line-height: 1.875;
  letter-spacing: 0;
}
.ftr_contact_txt > * + *{
  margin-top: 1.875em;
}
/* 最初の段落（短い3行）はSPでも中央寄せ */
.ftr_contact_txt > :first-child{
  text-align: center;
}
.ftr_contact .c_btn_wrap{
  margin-top: 24px;
}
.ftr_main{
  padding-top: 60px;
}
.ftr_logo img{
  width: 220px;
}
.ftr_sub{
  margin-top: 20px;
  font-family: var(--f-maru);
  font-weight: 900;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.1em;
  color: #fff;
  text-shadow: var(--txt-shadow);
}
.ftr_info{
  margin-top: 20px;
}
.ftr_info > *{
  font-weight: 700;
  font-size: 13px;
  line-height: 1.75;
  letter-spacing: 0.1em;
  color: #fff;
}
/* スマホは固定フッターメニューがあるため非表示 */
.ftr_nav{
  display: none;
  max-width: 1112px;
  margin: 0 auto;
  background: #fff;
}
.ftr_nav a{
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--c-black);
}
.ftr_nav a:hover{
  color: var(--c-orange);
}
.ftr_sns{
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 24px;
}
.ftr_sns_item{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 160px;
  height: 42px;
  background: #fef89a;
  border-radius: 23px;
  color: var(--c-black);
}
.ftr_sns_item img{
  width: 24px;
  margin-right: 10px;
}
.ftr_sns_item_txt{
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.05em;
}
.ftr_sns_item:hover{
  background: #fff;
  color: var(--c-black);
}
.ftr_bottom{
  margin-top: 30px;
  padding-bottom: 80px;
}
/* イラストを文字より前面に */
.ftr_catch{
  position: relative;
  z-index: 1;
  font-family: var(--f-maru);
  font-weight: 900;
  font-size: 7.4vw;
  line-height: 1;
  letter-spacing: 0;
  color: #fff;
  text-shadow: var(--txt-shadow);
}
.ftr_illust{
  position: relative;
  z-index: 2;
  width: 96vw;
  margin: -1.5vw auto 0;
}
.ftr_illust img{
  width: 100%;
}
.ftr_copy{
  margin-top: 8px;
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0;
}
@media (min-width:768px){
  .footer{
    padding-top: 97px;
  }
  .ftr_contact{
    padding-bottom: 96px;
  }
  .ftr_contact_box{
    padding: 27px 30px 45px;
    border-radius: 50px;
  }
  .ftr_contact_lead{
    margin-top: 9px;
    font-size: 30px;
  }
  .ftr_contact_txt{
    margin-top: 19px;
    text-align: center;
  }
  .ftr_contact_txt > *{
    font-size: 15px;
    line-height: 2;
  }
  .ftr_contact_txt > * + *{
    margin-top: 2em;
  }
  .ftr_contact .c_btn_wrap{
    margin-top: 26px;
  }
  .ftr_main{
    padding-top: 103px;
  }
  .ftr_logo img{
    width: 366px;
  }
  .ftr_sub{
    margin-top: 28px;
    font-size: 18px;
  }
  .ftr_info{
    margin-top: 28px;
  }
  .ftr_info > *{
    font-size: 18px;
    line-height: 1.667;
  }
  .ftr_nav{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0 18px;
    margin-top: 53px;
    padding: 4px 20px;
    border-radius: 23px;
  }
  .ftr_nav a{
    font-size: 14px;
    line-height: 37px;
  }
  .ftr_sns{
    gap: 28px;
    margin-top: 21px;
  }
  .ftr_sns_item{
    width: 257px;
    height: 49px;
  }
  .ftr_sns_item img{
    width: 34px;
    margin-right: 22px;
  }
  .ftr_sns_item_txt{
    font-size: 20px;
  }
  .ftr_bottom{
    margin-top: 31px;
    padding-bottom: 34px;
  }
  .ftr_catch{
    font-size: min(5.73vw, 110px);
  }
  .ftr_illust{
    width: min(87.7vw, 1684px);
    margin-top: max(-1.72vw, -33px);
  }
  .ftr_copy{
    margin-top: 5px;
    font-size: 16px;
  }
}
@media (min-width:1200px){
  .ftr_nav{
    flex-wrap: nowrap;
    gap: 0 52px;
    padding: 0;
  }
  .ftr_nav a{
    font-size: 16px;
    line-height: 45px;
  }
  .ftr_contact_lead{
    font-size: 36px;
  }
  .ftr_contact_txt > *{
    font-size: 18px;
  }
}

/* ==========================================================================
   ページトップ / スマホ固定フッター
   ========================================================================== */
.pagetop_btn{
  display: flex;
  justify-content: center;
  align-items: center;
  position: fixed;
  z-index: 80;
  right: 15px;
  bottom: 75px;
  width: 46px;
  height: 46px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  font-size: 26px;
  color: #0bc9c2;
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
}
.pagetop_btn.is_show{
  opacity: 1;
  visibility: visible;
}
.pagetop_btn:hover{
  color: var(--c-orange);
}
.footer_fix{
  display: flex;
  position: fixed;
  z-index: 110;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 60px;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.1);
}
.footer_fix a{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.footer_fix a i{
  font-size: 20px;
  line-height: 1;
}
.footer_fix_txt{
  margin-top: 5px;
  font-weight: 700;
  font-size: 11px;
  line-height: 1;
  letter-spacing: 0.05em;
}
.footer_fix_item_1{
  flex: 2;
  background: var(--c-orange);
  color: #fff;
}
.footer_fix_item_1:hover{
  color: #fff;
}
.footer_fix_item_2{
  flex: 1;
  background: #fff;
  color: var(--c-black);
}
.footer_fix_item_2 .footer_fix_txt{
  font-family: var(--f-josefin);
}
/* ---------- チャットボット（CMSが出力する iframe#chatbot-btn） ----------
   位置・サイズはCMSのJSがstyle属性で指定するため、閉じている状態（style に top: initial を含む）だけ !important で上書きする
   （スマホでチャットを開くと全画面表示になり top が変わるので、開いた状態には影響しない） */
/* ページ最上部では非表示、スクロールしたらフェードイン（is_chatbot_show は script.js で付与） */
body #chatbot-btn{
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s, visibility 0.4s;
}
body.is_chatbot_show #chatbot-btn{
  opacity: 1;
  visibility: visible;
}
/* メニューを開いたときは、メニュー（.gnav：z-index 100）より後ろにする */
body.is_gnav_open #chatbot-btn{
  z-index: 90 !important;
}
/* スマホ：画面下の固定メニュー（.footer_fix：高さ60px）の上に配置 */
#chatbot-btn[style*="top: initial"]{
  bottom: 66px !important;
}
/* ページトップボタンは、チャットボットに重ならないようその上に配置 */
body:has(#chatbot-btn) .pagetop_btn{
  bottom: 186px;
}
@media (min-width:768px){
  #chatbot-btn[style*="top: initial"]{
    bottom: 20px !important;
  }
  body:has(#chatbot-btn) .pagetop_btn{
    bottom: 150px;
  }
}
@media (min-width:768px){
  .footer_fix{
    display: none;
  }
  .pagetop_btn{
    right: 20px;
    bottom: 20px;
    width: 54px;
    height: 54px;
    font-size: 30px;
  }
}

/* ==========================================================================
   アニメーション（animation.js で付与）
   ========================================================================== */
.js_fade{
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s, transform 0.8s;
}
.js_fade.is_show{
  opacity: 1;
  transform: none;
}

/* ---------- イラストの動き ----------
   既存の配置・transform を上書きしないよう、個別プロパティ（translate / scale / rotate）で動かす */
/* 大きな写真：下から上にスライドしながら表示 */
.js_slideup{
  opacity: 0;
  translate: 0 120px;
}
.js_slideup.is_show{
  opacity: 1;
  translate: 0 0;
  transition:
    opacity 1.6s ease-out var(--delay, 0s),
    translate 2s cubic-bezier(.22, 1, .36, 1) var(--delay, 0s);
}
/* MVのキャッチコピー下のイラスト：下から上にフェードイン（ロゴ・キャッチの後に少し遅れて） */
.js_mvfade{
  opacity: 0;
  translate: 0 60px;
}
.js_mvfade.is_show{
  opacity: 1;
  translate: 0 0;
  transition:
    opacity 1.4s ease-out 0.3s,
    translate 1.6s cubic-bezier(.22, 1, .36, 1) 0.3s;
}
/* 画面の端からピョコッ：--peek-x（隠れる距離）・--peek-dir（左:-1／右:1）はJSで設定 */
.js_peek{
  translate: var(--peek-x, 0) 0;
}
.js_peek.is_show{
  animation:
    motion_peek 0.9s cubic-bezier(.25, .8, .35, 1) var(--delay, 0s) both,
    motion_wobble 3.6s ease-in-out calc(var(--delay, 0s) + 0.9s) infinite;
}
/* ポンッと出て、ときどきぷるん */
.js_pop{
  scale: 0;
}
.js_pop.is_show{
  animation:
    motion_pop 0.7s cubic-bezier(.3, 1.6, .5, 1) var(--delay, 0s) both,
    motion_jelly 4s ease-in-out calc(var(--delay, 0s) + 2s) infinite;
}
/* ふわっと出て、それぞれの動きをくり返す */
.js_swing,
.js_float,
.js_spin,
.js_twinkle{
  opacity: 0;
}
.js_swing.is_show{
  transform-origin: 50% 100%;
  animation:
    motion_appear 0.7s ease-out var(--delay, 0s) both,
    motion_swing 3.2s ease-in-out var(--delay, 0s) infinite;
}
.js_float.is_show{
  animation:
    motion_appear 0.7s ease-out var(--delay, 0s) both,
    motion_float 3.4s ease-in-out var(--delay, 0s) infinite;
}
.js_spin.is_show{
  animation:
    motion_appear 0.7s ease-out var(--delay, 0s) both,
    motion_spin 18s linear infinite;
}
.js_twinkle.is_show{
  animation:
    motion_appear 0.7s ease-out var(--delay, 0s) both,
    motion_twinkle 1.6s ease-in-out var(--delay, 0s) infinite;
}
@keyframes motion_peek{
  0%{ translate: var(--peek-x, 0) 0; }
  60%{ translate: calc(var(--peek-dir, 1) * -24px) 0; }
  80%{ translate: calc(var(--peek-dir, 1) * 8px) 0; }
  100%{ translate: 0 0; }
}
@keyframes motion_wobble{
  0%, 100%{ rotate: 0deg; }
  50%{ rotate: calc(var(--peek-dir, 1) * -3deg); }
}
@keyframes motion_pop{
  0%{ scale: 0; }
  100%{ scale: 1; }
}
@keyframes motion_jelly{
  0%, 14%, 100%{ scale: 1; }
  4%{ scale: 1.12 0.9; }
  8%{ scale: 0.94 1.08; }
  11%{ scale: 1.03 0.98; }
}
@keyframes motion_appear{
  0%{ opacity: 0; scale: 0.8; }
  100%{ opacity: 1; scale: 1; }
}
@keyframes motion_swing{
  0%, 100%{ rotate: -3deg; }
  50%{ rotate: 3deg; }
}
@keyframes motion_float{
  0%, 100%{ translate: 0 0; }
  50%{ translate: 0 -10px; }
}
@keyframes motion_spin{
  0%{ rotate: 0deg; }
  100%{ rotate: 360deg; }
}
@keyframes motion_twinkle{
  0%, 100%{ scale: 1; filter: brightness(1); }
  50%{ scale: 1.15; filter: brightness(1.25); }
}
/* 「視差効果を減らす」設定の環境では動かさない */
@media (prefers-reduced-motion: reduce){
  .js_mvfade,
  .js_slideup,
  .js_peek,
  .js_pop,
  .js_swing,
  .js_float,
  .js_spin,
  .js_twinkle{
    animation: none !important;
    translate: none;
    scale: none;
    rotate: none;
    opacity: 1;
  }
}

/* ==========================================================================
   下層ページ共通：ページヘッダー（波形の写真＋タイトル）
   ========================================================================== */
.pg_header{
  position: relative;
  z-index: 1;
  background: #1de7ab;
}
.pg_header_photo{
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1920 600%22 preserveAspectRatio=%22none%22%3E%3Cpath d=%22M0,0 L1920,0 L1920,600 L1912,600 L1904,599 L1896,599 L1888,598 L1880,597 L1872,596 L1864,595 L1856,594 L1848,593 L1840,591 L1832,590 L1824,588 L1816,585 L1808,583 L1800,580 L1792,577 L1784,574 L1776,572 L1768,570 L1760,568 L1752,567 L1744,566 L1736,565 L1728,564 L1720,563 L1712,563 L1704,563 L1696,563 L1688,563 L1680,563 L1672,564 L1664,564 L1656,565 L1648,565 L1640,566 L1632,567 L1624,568 L1616,570 L1608,571 L1600,573 L1592,574 L1584,576 L1576,578 L1568,580 L1560,581 L1552,583 L1544,584 L1536,585 L1528,586 L1520,587 L1512,588 L1504,589 L1496,589 L1488,590 L1480,590 L1472,590 L1464,590 L1456,590 L1448,590 L1440,590 L1432,589 L1424,589 L1416,588 L1408,588 L1400,587 L1392,586 L1384,585 L1376,583 L1368,582 L1360,580 L1352,579 L1344,577 L1336,575 L1328,573 L1320,572 L1312,570 L1304,569 L1296,567 L1288,566 L1280,565 L1272,565 L1264,564 L1256,564 L1248,563 L1240,563 L1232,563 L1224,563 L1216,563 L1208,563 L1200,563 L1192,564 L1184,564 L1176,565 L1168,565 L1160,566 L1152,567 L1144,568 L1136,570 L1128,571 L1120,573 L1112,574 L1104,576 L1096,578 L1088,580 L1080,581 L1072,583 L1064,584 L1056,585 L1048,587 L1040,587 L1032,588 L1024,589 L1016,589 L1008,590 L1000,590 L992,590 L984,590 L976,590 L968,590 L960,590 L952,589 L944,589 L936,588 L928,588 L920,587 L912,586 L904,585 L896,583 L888,582 L880,580 L872,579 L864,577 L856,575 L848,573 L840,572 L832,570 L824,569 L816,567 L808,566 L800,565 L792,565 L784,564 L776,564 L768,563 L760,563 L752,563 L744,563 L736,563 L728,563 L720,563 L712,564 L704,564 L696,565 L688,565 L680,566 L672,567 L664,568 L656,570 L648,571 L640,573 L632,574 L624,576 L616,578 L608,580 L600,581 L592,583 L584,584 L576,585 L568,587 L560,587 L552,588 L544,589 L536,589 L528,590 L520,590 L512,590 L504,590 L496,590 L488,590 L480,590 L472,589 L464,589 L456,588 L448,588 L440,587 L432,586 L424,585 L416,583 L408,582 L400,580 L392,579 L384,577 L376,575 L368,573 L360,572 L352,570 L344,569 L336,567 L328,566 L320,565 L312,565 L304,564 L296,564 L288,563 L280,563 L272,563 L264,563 L256,563 L248,563 L240,564 L232,564 L224,565 L216,566 L208,568 L200,569 L192,571 L184,574 L176,576 L168,579 L160,581 L152,584 L144,587 L136,590 L128,593 L120,595 L112,597 L104,598 L96,599 L88,600 L80,600 L72,600 L64,599 L56,598 L48,597 L40,595 L32,593 L24,591 L16,589 L8,583 L0,582 Z%22 fill=%22%23000%22/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1920 600%22 preserveAspectRatio=%22none%22%3E%3Cpath d=%22M0,0 L1920,0 L1920,600 L1912,600 L1904,599 L1896,599 L1888,598 L1880,597 L1872,596 L1864,595 L1856,594 L1848,593 L1840,591 L1832,590 L1824,588 L1816,585 L1808,583 L1800,580 L1792,577 L1784,574 L1776,572 L1768,570 L1760,568 L1752,567 L1744,566 L1736,565 L1728,564 L1720,563 L1712,563 L1704,563 L1696,563 L1688,563 L1680,563 L1672,564 L1664,564 L1656,565 L1648,565 L1640,566 L1632,567 L1624,568 L1616,570 L1608,571 L1600,573 L1592,574 L1584,576 L1576,578 L1568,580 L1560,581 L1552,583 L1544,584 L1536,585 L1528,586 L1520,587 L1512,588 L1504,589 L1496,589 L1488,590 L1480,590 L1472,590 L1464,590 L1456,590 L1448,590 L1440,590 L1432,589 L1424,589 L1416,588 L1408,588 L1400,587 L1392,586 L1384,585 L1376,583 L1368,582 L1360,580 L1352,579 L1344,577 L1336,575 L1328,573 L1320,572 L1312,570 L1304,569 L1296,567 L1288,566 L1280,565 L1272,565 L1264,564 L1256,564 L1248,563 L1240,563 L1232,563 L1224,563 L1216,563 L1208,563 L1200,563 L1192,564 L1184,564 L1176,565 L1168,565 L1160,566 L1152,567 L1144,568 L1136,570 L1128,571 L1120,573 L1112,574 L1104,576 L1096,578 L1088,580 L1080,581 L1072,583 L1064,584 L1056,585 L1048,587 L1040,587 L1032,588 L1024,589 L1016,589 L1008,590 L1000,590 L992,590 L984,590 L976,590 L968,590 L960,590 L952,589 L944,589 L936,588 L928,588 L920,587 L912,586 L904,585 L896,583 L888,582 L880,580 L872,579 L864,577 L856,575 L848,573 L840,572 L832,570 L824,569 L816,567 L808,566 L800,565 L792,565 L784,564 L776,564 L768,563 L760,563 L752,563 L744,563 L736,563 L728,563 L720,563 L712,564 L704,564 L696,565 L688,565 L680,566 L672,567 L664,568 L656,570 L648,571 L640,573 L632,574 L624,576 L616,578 L608,580 L600,581 L592,583 L584,584 L576,585 L568,587 L560,587 L552,588 L544,589 L536,589 L528,590 L520,590 L512,590 L504,590 L496,590 L488,590 L480,590 L472,589 L464,589 L456,588 L448,588 L440,587 L432,586 L424,585 L416,583 L408,582 L400,580 L392,579 L384,577 L376,575 L368,573 L360,572 L352,570 L344,569 L336,567 L328,566 L320,565 L312,565 L304,564 L296,564 L288,563 L280,563 L272,563 L264,563 L256,563 L248,563 L240,564 L232,564 L224,565 L216,566 L208,568 L200,569 L192,571 L184,574 L176,576 L168,579 L160,581 L152,584 L144,587 L136,590 L128,593 L120,595 L112,597 L104,598 L96,599 L88,600 L80,600 L72,600 L64,599 L56,598 L48,597 L40,595 L32,593 L24,591 L16,589 L8,583 L0,582 Z%22 fill=%22%23000%22/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}
.pg_header_photo.img_fit:before{
  padding-top: 60%;
}
.pg_header_inner{
  position: absolute;
  z-index: 2;
  top: 32%;
  left: 0;
  width: 100%;
}
.pg_header_ja{
  font-family: var(--f-maru);
  font-weight: 900;
  font-size: 15px;
  line-height: 1;
  letter-spacing: 0.1em;
  color: #fff;
  text-shadow: var(--txt-shadow);
}
.pg_header_en{
  margin-top: 10px;
}
.pg_header_en img{
  width: auto;
  height: 30px;
  filter: drop-shadow(1px 2px 2.5px rgba(0,0,0,0.35));
}
@media (min-width:768px){
  .pg_header_photo.img_fit:before{
    padding-top: 42%;
  }
  .pg_header_inner{
    top: 35%;
  }
  .pg_header_ja{
    font-size: 22px;
  }
  .pg_header_en{
    margin-top: 14px;
  }
  .pg_header_en img{
    height: 44px;
  }
}
@media (min-width:1024px){
  .pg_header_photo.img_fit:before{
    padding-top: 36%;
  }
  .pg_header_ja{
    font-size: 26px;
  }
  .pg_header_en img{
    height: 52px;
  }
}
@media (min-width:1440px){
  .pg_header_photo.img_fit:before{
    padding-top: 31.25%;
  }
  .pg_header_ja{
    font-size: 30px;
  }
  .pg_header_en{
    margin-top: 19px;
  }
  .pg_header_en img{
    height: 59px;
  }
}

/* ==========================================================================
   縁について（about.html）
   ========================================================================== */
.pg_about{
  position: relative;
  z-index: 2;
  overflow-x: clip;
}
.pg_about .c_txt > *{
  font-weight: 600;
}

/* ---------- ABOUT YUKARI ---------- */
.sec_ab_intro{
  z-index: 2;
  padding: 50px 0 130px;
  background: linear-gradient(180deg, #1de7ab 0%, #07d9be 100%);
}
.ab_intro_photo_wrap{
  position: relative;
  z-index: 2;
  margin-top: 30vw;
}
.ab_intro_photo{
  border-radius: 30px;
}
.ab_intro_photo.img_fit:before{
  padding-top: 101.92%;
}
/* イラスト：SP/TBは写真の周りに配置 */
.ab_intro_deco01{
  position: absolute;
  z-index: 0;
  left: 2%;
  top: -32%;
  width: 26%;
}
.ab_intro_deco02{
  position: absolute;
  z-index: 2;
  right: -6%;
  bottom: -22%;
  width: 48%;
  max-width: none;
}
.ab_intro_deco03{
  position: absolute;
  z-index: 3;
  right: -2%;
  top: -18%;
  width: 36%;
}
@media (min-width:768px){
  .sec_ab_intro{
    padding: 70px 0 180px;
  }
  .ab_intro_photo_wrap{
    margin-top: 26vw;
  }
  .ab_intro_deco01{
    top: -24%;
    width: 20%;
  }
}
@media (min-width:1024px){
  .sec_ab_intro{
    padding: 148px 0 144px;
  }
  .ab_intro_inner{
    display: flex;
    align-items: flex-start;
  }
  .ab_intro_txtarea{
    position: relative;
    z-index: 3;
    width: 45%;
  }
  .ab_intro_photo_wrap{
    width: 37.7%;
    margin: 144px 0 0 3.9%;
  }
  .ab_intro_photo{
    border-radius: 50px;
  }
  .ab_intro_deco01{ left: 2.96%;  top: -45.47%; width: 56.79%; }
  .ab_intro_deco02{ left: 62.54%; top: -47.18%; right: auto; bottom: auto; width: 114.98%; }
  .ab_intro_deco03{ left: 57.84%; top: -62.22%; right: auto; width: 59.23%; }
}
@media (min-width:1440px){
  .sec_ab_intro .c_ttl_ja{
    letter-spacing: 0.05em;
  }
}
@media (min-width:1720px){
  .sec_ab_intro .c_ttl_ja{
    letter-spacing: 0.075em;
  }
}

/* ---------- ABOUT TYPE B ---------- */
/* 右下の人物イラストが次のFEATUREに重なるため、FEATURE（z-index 4）より前面にする */
.sec_ab_typeb{
  z-index: 5;
  padding: 40px 0 80px;
  background: var(--c-beige);
}
.ab_typeb_ttlimg{
  position: relative;
  z-index: 2;
  text-align: center;
}
/* 画像は白フチ（18px）込みで497×191。フチの分を負のマージンで相殺し、文字部分の位置・大きさを461px幅のときと同じにする */
.ab_typeb_ttlimg img{
  width: 66.84%;
  max-width: 497px;
  margin: max(-2.421%, -18px) 0;
}
.ab_typeb_box{
  position: relative;
  z-index: 1;
  margin-top: -16px;
  padding: 30px 20px 50px;
  background: #fff;
  border-radius: 24px;
  text-align: center;
}
.ab_typeb_en{
  font-family: var(--f-en);
  font-weight: 600;
  font-size: 28px;
  line-height: 1;
  letter-spacing: 0;
}
.ab_typeb_ja{
  display: inline-block;
  margin-top: 10px;
  padding: 0 20px;
  background: #e975bf;
  border-radius: 18px;
  font-weight: 700;
  font-size: 15px;
  line-height: 32px;
  letter-spacing: 0.05em;
  color: #fff;
}
.ab_typeb_catch{
  margin-top: 16px;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.4;
  letter-spacing: 0;
  color: #e975bf;
}
.ab_typeb_txt{
  max-width: 1100px;
  margin: 16px auto 0;
  text-align: left;
}
.ab_typeb_txt > *{
  font-weight: 500;
  font-size: 15px;
  line-height: 1.875;
  letter-spacing: 0.05em;
}
.ab_typeb_deco01,
.ab_typeb_deco02,
.ab_typeb_deco03{
  position: absolute;
  z-index: 2;
}
.ab_typeb_deco01{
  left: -3%;
  top: -105px;
  width: 21%;
}
.ab_typeb_deco02{
  right: -3%;
  top: -100px;
  width: 19%;
}
.ab_typeb_deco03{
  right: -4%;
  bottom: -60px;
  width: 24%;
}
@media (min-width:768px){
  .sec_ab_typeb{
    padding: 50px 0 110px;
  }
  .ab_typeb_box{
    margin-top: -24px;
    padding: 40px 40px 80px;
    border-radius: 50px;
  }
  .ab_typeb_en{
    font-size: 38px;
  }
  .ab_typeb_ja{
    min-width: 360px;
    font-size: 18px;
    line-height: 36px;
  }
  .ab_typeb_catch{
    margin-top: 21px;
    font-size: 30px;
  }
  .ab_typeb_txt{
    margin-top: 22px;
  }
  .ab_typeb_txt > *{
    font-size: 16px;
    line-height: 2;
  }
  .ab_typeb_deco01{ left: -2%; top: -150px; width: 18%; }
  .ab_typeb_deco02{ right: -2%; top: -140px; width: 15%; }
  .ab_typeb_deco03{ right: -3%; bottom: -90px; width: 18%; }
}
@media (min-width:1024px){
  .sec_ab_typeb{
    padding: 55px 0 121px;
  }
  .ab_typeb_ttlimg img{
    transform: translateX(30px);
  }
  .ab_typeb_box{
    margin-top: -30px;
    padding: 40px 60px 90px;
  }
  .ab_typeb_en{
    font-size: 45px;
  }
  .ab_typeb_catch{
    font-size: 34px;
  }
  .ab_typeb_deco01{ left: 0.39%; top: -245px; width: 19.57%; }
  .ab_typeb_deco02{ left: 82.8%; right: auto; top: -207px; width: 17.4%; }
  .ab_typeb_deco03{ left: 75.7%; right: auto; bottom: -125px; width: 20.29%; }
}
@media (min-width:1440px){
  .ab_typeb_catch{
    font-size: 40px;
  }
  .ab_typeb_txt > *{
    font-size: 18px;
  }
}

/* ---------- FEATURE ---------- */
.sec_ab_feature{
  z-index: 4;
  padding: 50px 0 80px;
  background: linear-gradient(180deg, #00c9d3 0%, #03a0fd 100%);
}
.ab_feature_deco03{
  position: absolute;
  z-index: 3;
}
.ab_feature_deco03{
  right: 4vw;
  top: 30px;
  width: 14vw;
}
.ab_feature_list{
  margin-top: 40px;
}
.ab_feature_item{
  display: flex;
  flex-direction: column;
}
.ab_feature_item + .ab_feature_item{
  margin-top: 70px;
}
.ab_feature_txtarea{
  position: relative;
  z-index: 2;
  order: -1;
}
.ab_feature_photo_wrap{
  position: relative;
  z-index: 1;
  margin-top: 40px;
}
.ab_feature_photo.img_fit:before{
  padding-top: 74.24%;
}
/* 写真は交互に左右の画面端まで広げる */
.ab_feature_item:nth-child(odd) .ab_feature_photo_wrap{
  margin-left: var(--margin-for-device-side-w);
}
.ab_feature_item:nth-child(odd) .ab_feature_photo{
  border-radius: 0 30px 30px 0;
}
.ab_feature_item:nth-child(even) .ab_feature_photo_wrap{
  margin-top: 90px;
  margin-right: var(--margin-for-device-side-w);
}
.ab_feature_item:nth-child(even) .ab_feature_photo{
  border-radius: 30px 0 0 30px;
}
/* 写真に重ねるイラスト：各写真の枠（.ab_feature_photo_wrap）を基準に配置する
   left・width は写真の幅に対する％、top は写真の高さに対する％（どの画面幅でも写真との位置関係が変わらない）
   PC（1024px以上）はデザインの位置そのまま、SP/TBは約0.55倍の大きさ */
.ab_feature_photo_wrap > img{
  position: absolute;
  z-index: 2;
  max-width: none;
}
.ab_feature_deco01{ left: -8%;  top: -41%; width: 46%; }  /* クジラ：写真1の左上 */
.ab_feature_deco02{ left: 34%;  top: -48%; width: 15%; }  /* OK! */
.ab_feature_deco04{ left: 74%;  top: 66%;  width: 22%; }  /* ビーズの人：写真1の右下 */
.ab_feature_deco05{ left: 10%;  top: -14%; width: 19%; }  /* 雲：写真2の左上 */
.ab_feature_deco06{ left: -2%;  top: -7%;  width: 16%; }
.ab_feature_deco09{ left: 48%;  top: 62%;  width: 62%; }  /* ウーパールーパー：写真2の右下 */
.ab_feature_deco07{ left: 46%;  top: -18%; width: 18%; }  /* 畑の人：写真3の右上 */
.ab_feature_deco08{ left: 70%;  top: -15%; width: 16%; }
.ab_feature_deco10{ left: 0;    top: -9%;  width: 12%; }  /* ハート：写真4の左上 */
.ab_feature_deco11{ left: 40%;  top: -21%; width: 19%; }  /* パソコンの人：写真4の上 */
/* SP/TB：写真1の上にクジラが乗るぶんの余白 */
.ab_feature_item:first-child .ab_feature_photo_wrap{
  margin-top: 30vw;
}
.ab_feature_item:nth-child(3) .ab_feature_photo_wrap{
  margin-top: 60px;
}
.ab_feature_btn_area{
  position: relative;
  z-index: 1;
  margin-top: 100px;
}
.ab_feature_btn_area .c_btn_wrap{
  margin-top: 0;
}
.ab_feature_fish{
  position: absolute;
  z-index: 1;
  left: 0;
  top: -70px;
  width: 150px;
  height: 60px;
}
.ab_feature_fish img{
  position: absolute;
  z-index: 1;
}
.ab_feature_deco12{
  left: 0;
  top: 30px;
  width: 60px;
}
.ab_feature_deco13{
  left: 70px;
  top: 0;
  width: 68px;
}
@media (min-width:768px){
  .sec_ab_feature{
    padding: 70px 0 110px;
  }
  .ab_feature_deco03{ width: 10vw; }
  .ab_feature_item + .ab_feature_item{
    margin-top: 90px;
  }
  .ab_feature_photo_wrap{
    margin-top: 60px;
  }
  .ab_feature_item:nth-child(odd) .ab_feature_photo{
    border-radius: 0 50px 50px 0;
  }
  .ab_feature_item:nth-child(even) .ab_feature_photo_wrap{
    margin-top: 130px;
  }
  .ab_feature_item:nth-child(even) .ab_feature_photo{
    border-radius: 50px 0 0 50px;
  }
  .ab_feature_item:nth-child(3) .ab_feature_photo_wrap{
    margin-top: 100px;
  }
  .ab_feature_fish{
    top: -40px;
    width: 300px;
    height: 135px;
  }
  .ab_feature_deco12{ top: 63px; width: 100px; }
  .ab_feature_deco13{ left: 116px; width: 112px; }
}
@media (min-width:1024px){
  .sec_ab_feature{
    padding: 137px 0 147px;
  }
  .ab_feature_deco03{ left: 79.01vw; right: auto; top: 138px; width: 8.44vw; }
  .ab_feature_list{
    margin-top: 63px;
  }
  .ab_feature_item{
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
  .ab_feature_item:nth-child(even){
    flex-direction: row-reverse;
  }
  .ab_feature_item + .ab_feature_item{
    margin-top: 97px;
  }
  .ab_feature_txtarea{
    order: 0;
    width: 45%;
  }
  .ab_feature_photo_wrap,
  .ab_feature_item:nth-child(n) .ab_feature_photo_wrap{
    width: calc(38.6% - var(--margin-for-device-side-w));
    margin-top: 143px;
  }
  /* デザイン（1920px）での写真に対する位置 */
  .ab_feature_deco01{ left: -29.3%; top: -75.2%; width: 84.1%; }
  .ab_feature_deco02{ left: 48.1%;  top: -86.7%; width: 27.3%; }
  .ab_feature_deco04{ left: 85.8%;  top: 62.7%;  width: 32.6%; }
  .ab_feature_deco05{ left: 0.8%;   top: -25.3%; width: 34.1%; }
  .ab_feature_deco06{ left: -16%;   top: -12.8%; width: 29.6%; }
  .ab_feature_deco09{ left: 27.4%;  top: 52.6%;  width: 129.3%; }
  .ab_feature_deco07{ left: 51.6%;  top: -32.9%; width: 29.4%; }
  .ab_feature_deco08{ left: 83.4%;  top: -27.1%; width: 25.6%; }
  .ab_feature_deco10{ left: -13.7%; top: -16.4%; width: 20.2%; }
  .ab_feature_deco11{ left: 43.1%;  top: -38.6%; width: 31.9%; }
  .ab_feature_btn_area{
    margin-top: 119px;
  }
  .ab_feature_fish{
    left: 0.46%;
  }
  .ab_feature_deco12{ width: 130px; }
  .ab_feature_deco13{ left: 151px; width: 146px; }
}

/* ---------- FOR FAMILY ---------- */
.sec_ab_family{
  z-index: 6;
  padding: 60px 0 100px;
  background: var(--c-beige);
}
.ab_family_head{
  position: relative;
  z-index: 2;
}
/* オオハシ：白枠の右上に重ねる（下端を白枠の上端より少し下にそろえる。見出しとの距離に左右されないよう下端基準） */
.ab_family_deco01{
  position: absolute;
  z-index: 1;
  right: -10px;
  bottom: -60px; /* 白枠までの余白30px＋重なり30px */
  width: 26%;
}
.ab_family_box{
  position: relative;
  z-index: 1;
  margin-top: 30px;
  padding: 30px 20px;
  background: #fff;
  border-radius: 24px;
}
.ab_family_inner{
  max-width: 1100px;
  margin: 0 auto;
}
.ab_family_photo{
  border-radius: 30px;
}
.ab_family_photo.img_fit:before{
  padding-top: 127.41%;
}
.ab_family_txtarea{
  margin-top: 24px;
}
.ab_family_ttl{
  font-weight: 700;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 0;
  color: var(--c-orange);
}
.ab_family_txt{
  margin-top: 16px;
}
.ab_family_txt > *{
  font-weight: 600;
  font-size: 15px;
  line-height: 1.875;
  letter-spacing: 0.075em;
}
@media (min-width:768px){
  .sec_ab_family{
    padding: 100px 0 150px;
  }
  .ab_family_deco01{
    right: 0;
    bottom: -90px; /* 余白50px＋重なり40px */
    width: 22%;
  }
  .ab_family_box{
    margin-top: 50px;
    padding: 60px 40px;
    border-radius: 50px;
  }
  .ab_family_inner{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
  .ab_family_photo{
    flex-shrink: 0;
    width: 40%;
    border-radius: 50px;
  }
  .ab_family_txtarea{
    width: 54%;
    margin-top: 0;
  }
  .ab_family_ttl{
    font-size: 28px;
  }
  .ab_family_txt{
    margin-top: 24px;
  }
  .ab_family_txt > *{
    font-size: 16px;
    line-height: 2;
  }
}
@media (min-width:1024px){
  .sec_ab_family{
    padding: 121px 0 200px;
  }
  .ab_family_deco01{
    left: 76%;
    right: auto;
    bottom: -110px; /* 余白62px＋重なり48px（デザインどおり） */
    width: 24%;
  }
  .ab_family_box{
    margin-top: 62px;
    padding: 81px 30px 70px;
  }
  .ab_family_photo{
    width: 43.45%;
  }
  .ab_family_txtarea{
    width: 50.9%;
  }
  .ab_family_ttl{
    font-size: 34px;
  }
  .ab_family_txt{
    margin-top: 33px;
  }
}
@media (min-width:1440px){
  .ab_family_deco01{
    left: 69.7%;
    width: 30.5%;
  }
  .ab_family_ttl{
    font-size: 40px;
  }
  .ab_family_txt > *{
    font-size: 18px;
  }
}

/* ==========================================================================
   仕事を知る（work.html）
   ========================================================================== */
.pg_work{
  position: relative;
  z-index: 2;
  overflow-x: clip;
}
.pg_work .c_txt > *{
  font-weight: 600;
}

/* ---------- FIND YOUR WORK ---------- */
.sec_wk_intro{
  z-index: 2;
  padding: calc(24vw + 30px) 0 20px;
  background: linear-gradient(180deg, #1de7ab 0%, #04d8c2 100%);
}
.wk_intro_deco01,
.wk_intro_deco02,
.wk_intro_deco03{
  position: absolute;
  z-index: 3;
}
/* 牛 */
.wk_intro_deco01{
  z-index: 3;
  right: -6vw;
  top: -22vw;
  width: 40vw;
}
/* モンスター（写真の後ろ） */
.wk_intro_deco02{
  z-index: 0;
  left: -4vw;
  top: -6vw;
  width: 34vw;
}
/* GO! */
.wk_intro_deco03{
  z-index: 3;
  left: 26vw;
  top: -2vw;
  width: 14vw;
}
.wk_intro_inner{
  display: flex;
  flex-direction: column-reverse;
}
.wk_intro_photo{
  position: relative;
  z-index: 1;
  margin-top: 40px;
  border-radius: 30px;
}
.wk_intro_photo.img_fit:before{
  padding-top: 102.09%;
}
.wk_intro_txtarea{
  position: relative;
  z-index: 2;
}
@media (min-width:768px){
  .sec_wk_intro{
    padding: calc(18vw + 30px) 0 30px;
  }
  .wk_intro_deco01{ top: -18vw; width: 32vw; }
  .wk_intro_deco02{ width: 26vw; }
  .wk_intro_deco03{ left: 20vw; width: 11vw; }
}
@media (min-width:1024px){
  .sec_wk_intro{
    padding: 158px 0 189px;
  }
  .wk_intro_deco01{ left: 72.55vw; right: auto; top: -16.35vw; width: 39.84vw; }
  .wk_intro_deco02{ left: 8.7vw; top: -0.94vw; width: 31.82vw; }
  .wk_intro_deco03{ left: 35.36vw; top: 2.19vw; width: 10.73vw; }
  .wk_intro_inner{
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
  .wk_intro_photo{
    flex-shrink: 0;
    width: 37.7%;
    margin: 134px 0 0 13.4%;
    border-radius: 50px;
  }
  .wk_intro_txtarea{
    width: 45%;
  }
}
/* 3人のイラスト（SP/TBは本文と写真の間、PCは本文の下） */
.wk_intro_deco04{
  width: 80%;
  margin: 30px auto 0;
}
.wk_intro_deco04 img{
  width: 100%;
}
@media (min-width:768px){
  .wk_intro_deco04{
    width: 60%;
  }
}
@media (min-width:1024px){
  .wk_intro_deco04{
    position: absolute;
    z-index: 3;
    left: 14.5%;
    top: calc(100% + 70px);
    width: 86%;
    margin: 0;
  }
}
@media (min-width:1440px){
  .sec_wk_intro .c_ttl_ja{
    letter-spacing: 0.05em;
  }
}
@media (min-width:1720px){
  .sec_wk_intro .c_ttl_ja{
    letter-spacing: 0.075em;
  }
}

/* ---------- OUR WORK（仕事一覧） ---------- */
.sec_wk_list{
  z-index: 1;
  padding: 70px 0 120px;
  background: var(--c-beige);
}
.wk_list{
  margin-top: 90px;
}
.wk_card{
  --c: #e975bf;
  position: relative;
  z-index: 1;
  padding: 30px 20px 30px;
  background: #fff;
  border-radius: 24px;
}
.wk_card + .wk_card{
  margin-top: 60px;
}
/* 仕事ごとの色（TOPの仕事カードと同じ順番） */
.wk_card:nth-child(1){ --c: #e975bf; z-index: 7; }
.wk_card:nth-child(2){ --c: #8fc31f; z-index: 6; }
.wk_card:nth-child(3){ --c: #009d95; z-index: 5; }
.wk_card:nth-child(4){ --c: #eb6100; z-index: 4; }
.wk_card:nth-child(5){ --c: #f39700; z-index: 3; }
.wk_card:nth-child(6){ --c: #e3007f; z-index: 2; }
.wk_card:nth-child(7){ --c: #0067b7; z-index: 1; }
.wk_card_inner{
  max-width: 1112px;
  margin: 0 auto;
}
.wk_card_en{
  font-family: var(--f-en);
  font-weight: 600;
  font-size: 36px;
  line-height: 1;
  letter-spacing: 0;
}
.wk_card_ja{
  margin-top: 10px;
  padding: 0 16px;
  background: var(--c);
  border-radius: 12px;
  font-weight: 700;
  font-size: 18px;
  line-height: 44px;
  letter-spacing: 0;
  color: #fff;
}
.wk_card_catch{
  margin-top: 18px;
  font-weight: 700;
  font-size: 19px;
  line-height: 1.4;
  letter-spacing: 0;
  color: var(--c);
}
.wk_card_txt{
  margin-top: 16px;
}
.wk_card_txt > *{
  font-weight: 600;
  font-size: 15px;
  line-height: 1.875;
  letter-spacing: 0.075em;
}
.wk_card_photo{
  margin-top: 24px;
  border-radius: 24px;
}
.wk_card_photo.img_fit:before{
  padding-top: 127.67%;
}
.wk_ex{
  margin-top: 30px;
  padding: 24px 16px 26px;
  background: var(--c);
  border-radius: 24px;
  color: #fff;
}
.wk_ex_head{
  font-weight: 700;
  font-size: 17px;
  line-height: 1.4;
  letter-spacing: 0;
  text-align: center;
}
.wk_ex_list{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px 12px;
  margin-top: 18px;
}
.wk_ex_img.img_fit:before{
  padding-top: 72.77%;
}
.wk_ex_ttl{
  margin-top: 10px;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: 0.075em;
  text-align: center;
}
.wk_ex_txt{
  margin-top: 6px;
  font-weight: 600;
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
/* カード周りのイラスト：SP/TBはカードの角に重ねて配置 */
.wk_deco01,
.wk_deco02,
.wk_deco03,
.wk_deco04,
.wk_deco05,
.wk_deco06,
.wk_deco07,
.wk_deco08,
.wk_deco09{
  position: absolute;
  z-index: 2;
}
.wk_deco01{ left: -2%;  top: -70px;  width: 20%; }
.wk_deco02{ right: 2%;  top: -40px;  width: 14%; }
.wk_deco03,
.wk_deco04,
.wk_deco06,
.wk_deco07{
  right: -10px;
  bottom: -70px;
  width: 26%;
}
/* LET'S TRY!・FIGHT! はデザインどおり左側（全デバイス） */
.wk_deco04,
.wk_deco06{
  left: -10px;
  right: auto;
}
.wk_deco05{ right: -8%; bottom: -70px; width: 22%; }
.wk_deco08{ right: 24%; bottom: -40px; width: 9%; }
.wk_deco09{ left: -3%; bottom: -70px; width: 24%; }
@media (min-width:768px){
  .sec_wk_list{
    padding: 100px 0 160px;
  }
  .wk_card{
    padding: 50px 40px;
    border-radius: 50px;
  }
  .wk_card + .wk_card{
    margin-top: 77px;
  }
  .wk_card_en{
    font-size: 50px;
  }
  .wk_card_ja{
    border-radius: 17px;
    font-size: 24px;
    line-height: 54px;
  }
  .wk_card_catch{
    font-size: 30px;
  }
  .wk_card_txt > *{
    font-size: 16px;
    line-height: 2;
  }
  .wk_card_photo{
    width: 70%;
    margin: 30px auto 0;
    border-radius: 50px;
  }
  .wk_ex{
    padding: 36px 40px 40px;
    border-radius: 50px;
  }
  .wk_ex_head{
    font-size: 24px;
  }
  .wk_ex_list{
    gap: 30px 28px;
  }
  .wk_ex_ttl{
    font-size: 17px;
  }
  .wk_ex_txt{
    font-size: 15px;
  }
  .wk_deco01{ top: -110px; width: 16%; }
  .wk_deco02{ top: -60px; width: 11%; }
  .wk_deco03,
  .wk_deco04,
  .wk_deco06,
  .wk_deco07{ width: 22%; bottom: -80px; }
  .wk_deco05{ width: 20%; bottom: -90px; }
  .wk_deco09{ width: 20%; bottom: -90px; }
}
@media (min-width:1024px){
  .sec_wk_list{
    padding: 120px 0 200px;
  }
  .wk_list{
    margin-top: 72px;
  }
  .wk_card{
    padding: 73px 30px 69px;
  }
  /* FIGHT!のイラスト分、5枚目の上だけ間隔を広げる */
  .wk_card:nth-child(5){
    margin-top: 108px;
  }
  /* おばけ・ドラゴン：カード内の文字に被らないよう、カードの下の余白側に寄せる（1440px以上はデザインの位置） */
  .wk_deco05{ bottom: -170px; }
  .wk_deco09{ bottom: -160px; width: 20%; }
  .wk_card_main{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
  .wk_card_txtarea{
    width: 51.1%;
  }
  .wk_card_photo{
    flex-shrink: 0;
    width: 42.9%;
    margin: 7px 0 0;
  }
  .wk_card_en{
    font-size: 56px;
  }
  .wk_card_ja{
    margin-top: 11px;
    padding: 0 21px;
    font-size: 26px;
    line-height: 61px;
  }
  .wk_card_catch{
    margin-top: 26px;
    font-size: 28px;
    line-height: 1.35;
  }
  .wk_card_txt{
    margin-top: 39px;
  }
  .wk_ex{
    margin-top: 67px;
    padding: 38px 40px 46px;
  }
  .wk_ex_head{
    font-size: 26px;
    line-height: 1;
  }
  .wk_ex_list{
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
    margin-top: 43px;
  }
  .wk_ex_ttl{
    margin-top: 13px;
    font-size: 18px;
    line-height: 1;
  }
  .wk_ex_txt{
    margin-top: 13px;
    font-size: 15px;
    line-height: 1.5625;
    letter-spacing: 0.075em;
  }
}
@media (min-width:1440px){
  /* イラスト：デザインデータの位置（カード基準） */
  .wk_deco01{ left: 2.3%;   top: -240px; width: 16.28%; }
  .wk_deco02{ left: 85.55%; right: auto; top: -55px; width: 10.77%; }
  .wk_deco03{ left: 78.1%;  right: auto; bottom: -214px; width: 22.98%; }
  .wk_deco04{ left: 0.33%;  right: auto; bottom: -115px; width: 23.64%; }
  .wk_deco05{ left: 83.9%;  right: auto; bottom: -340px; width: 29.15%; max-width: none; }
  .wk_deco06{ left: -0.79%; right: auto; bottom: -172px; width: 25.4%; }
  .wk_deco07{ left: 70.2%;  right: auto; bottom: -144px; width: 32.57%; }
  .wk_deco08{ left: 90.94%; right: auto; bottom: 198px; width: 7.22%; }
  .wk_deco09{ left: -7.22%; bottom: -218px; width: 25.28%; }
  .wk_card_en{
    font-size: 65px;
  }
  .wk_card_ja{
    font-size: 30px;
  }
  .wk_card_catch{
    font-size: 40px;
  }
  .wk_card_txt > *{
    font-size: 18px;
  }
  .wk_ex{
    padding: 38px 65px 46px;
  }
  .wk_ex_head{
    font-size: 30px;
  }
  .wk_ex_txt{
    font-size: 16px;
  }
}

/* ==========================================================================
   人を知る（people.html）
   ========================================================================== */
.pg_people{
  position: relative;
  z-index: 2;
}
.st_q_num,
.mb_q_num,
.mb_fav_label{
  font-style: normal;
}
.c_ttl_sub{
  margin-top: 12px;
  font-family: var(--f-maru);
  font-weight: 700;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0;
  color: #fff;
  text-shadow: var(--txt-shadow);
}
.sec_pp_staff{
  padding: 50px 0 80px;
  background: linear-gradient(180deg, #1de7ab 0%, #00c4db 100%);
}
.sec_pp_voices{
  padding: 0 0 80px;
  background: linear-gradient(180deg, #00c4db 0%, #02a2fa 100%);
}

/* ---------- スタッフ ---------- */
.st_list{
  margin-top: 40px;
}
.st_item{
  position: relative;
  z-index: 1;
}
.st_item + .st_item{
  margin-top: 40px;
}
.st_photo{
  position: relative;
  z-index: 2;
  border-radius: 20px;
}
.st_photo.img_fit:before{
  padding-top: 77.46%;
}
/* 白いカードは写真から20pxずらして重ねる（左右は交互） */
.st_box{
  position: relative;
  z-index: 1;
  margin: -20px 0 0 20px;
  padding: 44px 20px 26px;
  background: #fff;
  border-radius: 20px;
}
.st_item:nth-child(even) .st_box{
  margin: -20px 20px 0 0;
}
.st_name{
  display: flex;
  align-items: flex-end;
  padding-bottom: 8px;
  border-bottom: 1px solid #000;
}
.st_name img{
  width: 26px;
  margin-right: 14px;
}
.st_name_txt{
  font-weight: 700;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: 0;
}
.st_qa{
  margin-top: 16px;
}
.st_qa_item + .st_qa_item{
  margin-top: 10px;
}
.st_q{
  position: relative;
  z-index: 1;
  padding-left: 18px;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.st_q:before{
  content: "";
  position: absolute;
  z-index: 1;
  left: 0;
  top: 0.45em;
  width: 12px;
  height: 12px;
  background: #f517de;
  border-radius: 50%;
}
.st_a{
  padding-left: 18px; /* SP：質問の文字（●の右）に頭をそろえる */
  font-weight: 500;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
@media (min-width:768px){
  .c_ttl_sub{
    font-size: 18px;
  }
  .st_list{
    margin-top: 60px;
  }
  .st_photo{
    border-radius: 30px;
  }
  .st_box{
    padding: 50px 40px 36px;
    border-radius: 30px;
  }
  .st_name img{
    width: 33px;
    margin-right: 28px;
  }
  .st_name_txt{
    font-size: 24px;
  }
  .st_q,
  .st_a{
    font-size: 16px;
  }
  .st_a{
    padding-left: 0;
  }
}
@media (min-width:1024px){
  .sec_pp_staff{
    padding: 158px 0 120px;
  }
  .sec_pp_voices{
    padding: 77px 0 193px;
  }
  .c_ttl_sub{
    margin-top: 16px;
    font-size: 20px;
  }
  .st_list{
    margin-top: 157px;
  }
  .st_item{
    padding-top: 20px;
  }
  .st_item + .st_item{
    margin-top: 57px;
  }
  /* PC：写真をカードの左上（偶数は右上）に重ねる（比率はデザインどおり固定。カードの高さに合わせて伸ばさない） */
  .st_photo{
    position: absolute;
    z-index: 2;
    left: 0;
    top: 0;
    width: 36.7%;
  }
  .st_item:nth-child(even) .st_photo{
    left: auto;
    right: 0;
  }
  .st_box{
    margin: 0 0 0 20px;
    padding: 39px 5.5% 52px 42.5%;
    min-height: 433px;
  }
  .st_item:nth-child(even) .st_box{
    margin: 0 20px 0 0;
    padding: 39px 41.9% 52px 6%;
  }
  .st_qa{
    margin-top: 28px;
  }
  .st_q,
  .st_a{
    font-size: 17px;
    line-height: 1.76;
    letter-spacing: 0.075em;
  }
  .st_qa_item + .st_qa_item{
    margin-top: 4px;
  }
}

/* ---------- ご利用者様の声 ---------- */
.mb_list{
  margin-top: 40px;
}
.mb_item + .mb_item{
  margin-top: 50px;
}
.mb_name{
  display: flex;
  align-items: flex-end;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(255,255,255,0.9);
}
.mb_name img{
  width: 36px;
  margin-right: 12px;
}
.mb_name_txt{
  font-weight: 700;
  font-size: 18px;
  line-height: 1.3;
  letter-spacing: 0;
  color: #fff;
  text-shadow: var(--txt-shadow);
}
.mb_photo{
  margin-top: 12px;
  border-radius: 20px;
}
.mb_photo.img_fit:before{
  padding-top: 68.96%;
}
.mb_fav{
  margin-top: 16px;
}
.mb_fav > *{
  font-weight: 700;
  font-size: 15px;
  line-height: 1.875;
  letter-spacing: 0.075em;
  color: #fff;
}
.mb_qa{
  margin-top: 16px;
}
.mb_q,
.mb_a{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0.075em;
  color: #fff;
}
.mb_q{
  font-weight: 700;
}
.mb_a{
  font-weight: 500;
}
@media (min-width:768px){
  .mb_list{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 60px 0;
    margin-top: 60px;
  }
  .mb_item{
    width: 47%;
  }
  .mb_item + .mb_item{
    margin-top: 0;
  }
  .mb_name img{
    width: 40px;
    margin-right: 12px;
  }
  .mb_name_txt{
    font-size: 17px;
  }
  .mb_photo{
    border-radius: 30px;
  }
  .mb_q,
  .mb_a{
    font-size: 15px;
    line-height: 2;
  }
}
@media (min-width:1024px){
  .mb_list{
    gap: 72px 0;
    margin-top: 167px;
  }
  .mb_item{
    width: 44.85%;
  }
  .mb_name img{
    width: 48px;
    margin-right: 16px;
  }
  .mb_name_txt{
    font-size: 21px;
  }
  .mb_photo{
    margin-top: 12px;
  }
  .mb_fav{
    margin-top: 10px;
  }
  .mb_fav > *{
    font-size: 18px;
    line-height: 2;
  }
  .mb_qa{
    margin-top: 12px;
  }
  .mb_q,
  .mb_a{
    font-size: 16px;
    line-height: 2.25;
  }
}
@media (min-width:1440px){
  .mb_name_txt{
    font-size: 24px;
  }
}

/* ==========================================================================
   会社概要（company.html）
   ========================================================================== */
.pg_company{
  position: relative;
  z-index: 2;
}
.sec_cp{
  padding: 50px 0 80px;
  background: linear-gradient(180deg, #1de7ab 0%, #00c7d6 100%);
}
.cp_info{
  max-width: 1112px;
  margin: 40px auto 0;
}
/* 表（tableタグは使えないため div + display:table で再現） */
.cp_table{
  display: table;
  width: 100%;
  background: #fff;
}
.cp_table .table_rows_tr{
  display: table-row;
}
.cp_table .table_rows_th,
.cp_table .table_rows_td{
  display: table-cell;
  vertical-align: middle;
  padding: 14px 12px;
  border-bottom: 1px solid #bbb8b1;
}
.cp_table .table_rows_tr:last-child .table_rows_th,
.cp_table .table_rows_tr:last-child .table_rows_td{
  border-bottom: none;
}
.cp_table .table_rows_th{
  width: 30%;
  background: #f3f7fa;
}
.cp_table .table_rows_th > *,
.cp_table .table_rows_td > *{
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.075em;
  color: #333;
}
.cp_table .table_rows_th > *{
  font-weight: 500;
}
.cp_table .table_rows_td > *{
  font-weight: 400;
}
.cp_map{
  margin-top: 20px;
}
.cp_map iframe{
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  border: 0;
}
.company_gallery_items{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-top: 50px;
}
.company_gallery_item_img{
  background: #ccc;
}
.company_gallery_item_img.img_fit:before{
  padding-top: 80.98%;
}
@media (min-width:768px){
  .cp_table .table_rows_th,
  .cp_table .table_rows_td{
    height: 61px;
    padding: 10px 27px;
  }
  .cp_table .table_rows_th{
    width: 23.2%;
  }
  .cp_table .table_rows_td{
    padding-left: 34px;
  }
  .cp_table .table_rows_th > *,
  .cp_table .table_rows_td > *{
    font-size: 16px;
  }
  .cp_map{
    margin-top: 27px;
  }
  .cp_map iframe{
    aspect-ratio: 100 / 36.69;
  }
  .company_gallery_items{
    grid-template-columns: repeat(4, 1fr);
    gap: 17px 18px;
    margin-top: 80px;
  }
}
@media (min-width:1024px){
  .sec_cp{
    padding: 158px 0 199px;
  }
  .cp_info{
    margin-top: 97px;
  }
  .company_gallery_items{
    margin-top: 116px;
  }
}

/* ==========================================================================
   お問い合わせ（contact.html）
   ========================================================================== */
.pg_contact{
  position: relative;
  z-index: 2;
}
.sec_ct{
  padding: 50px 0 80px;
  background: linear-gradient(180deg, #1de7ab 0%, #00c7d6 100%);
}
.ct_form{
  max-width: 1112px;
  margin: 40px auto 0;
}

/* ---------- フォーム表 ---------- */
.formTbl{
  background: #fff;
  border: 1px solid #7f7d8b;
}
.formTbl .container{
  max-width: none;
  padding: 0;
}
.formTbl .formRow{
  margin: 0;
  border-bottom: 1px solid #7f7f7f;
}
.formTbl .formRow:last-child{
  border-bottom: none;
}
.formTh{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 12px 15px;
  background: #f3f7fa;
}
.formTd{
  padding: 12px 15px 14px;
}
.formTh .labelText01{
  margin: 0;
  font-weight: 500;
  font-size: 14px;
  line-height: 26px;
  letter-spacing: 0.075em;
}
.requiredText{
  flex-shrink: 0;
  width: 52px;
  margin: 2px 0 0;
  background: #b70000;
  border: 1px solid #b70000;
  font-weight: 400;
  font-size: 12px;
  line-height: 22px;
  letter-spacing: 0.12em;
  text-align: center;
  color: #fff;
}
.requiredText.nini{
  background: #fff;
  color: #b70000;
}
.formInput,
.formTd .select,
.formTextArea{
  width: 100%;
  height: 40px;
  padding: 0 12px;
  background: #fff;
  border: 1px solid #b6b6b6;
  border-radius: 0;
  font-size: 15px;
  letter-spacing: 0.16em; /* デザイン：トラッキング160 */
  color: #333;
}
.formInput::placeholder,
.zipInput::placeholder,
.formTextArea::placeholder{
  color: #aaa;
}
.formTextArea{
  display: block;
  height: 220px;
  padding: 10px 12px;
}
/* お問い合わせ種別 */
.radioArea .d-inline-block{
  margin: 0 22px 4px 0;
}
.radioArea .labelText02{
  margin: 0 0 0 6px;
  font-size: 14px;
  line-height: 26px;
  letter-spacing: 0.16em;
}
/* 住所 */
.addArea{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.addArea + .addArea{
  margin-top: 10px;
}
.addArea .labelText02{
  width: 100%;
  margin: 0 0 4px;
  font-size: 14px;
  letter-spacing: 0.1em;
}
.addArea .zipcode_i{
  width: 28px;
  height: 40px;
  margin: 0;
  background: #ccc;
  border: 1px solid #b6b6b6;
  border-right: none;
  font-size: 14px;
  line-height: 38px;
  text-align: center;
}
.addArea .zipInput{
  width: 96px;
  height: 40px;
  padding: 0 10px;
  border: 1px solid #b6b6b6;
  border-left: none;
  font-size: 15px;
  letter-spacing: 0.1em;
}
.addArea .select{
  width: 100%;
}
/* 郵便番号の区切り「‐」 */
.addArea .zipInput + .label{
  margin: 0 6px;
  font-size: 14px;
}
.addArea .zipInput + .label + .zipInput{
  border-left: 1px solid #b6b6b6;
}
/* 同意・送信 */
.ct_agree{
  margin-top: 30px;
}
.ct_agree .privacyLabel{
  margin: 0 0 0 6px;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.075em;
}
.ct_agree a{
  color: #f517de;
}
.ct_agree a:hover{
  color: #f517de;
  text-decoration: none;
  opacity: 0.7;
}
.ct_submit{
  margin-top: 26px;
}
/* 送信ボタン（.c_btn と同じ見た目） */
.formSend{
  position: relative;
  z-index: 1;
  width: 260px;
  height: 60px;
  padding: 0 60px 0 20px;
  background: var(--c-orange);
  border: none;
  border-radius: 10px;
  font-family: var(--f-ja);
  font-weight: 700;
  font-size: 18px;
  line-height: 60px;
  letter-spacing: 0.075em;
  text-align: left;
  color: #fff;
  text-shadow: var(--txt-shadow);
  cursor: pointer;
  transition: background-color 0.3s;
}
.formSend:after{
  content: "\2192";
  position: absolute;
  z-index: 1;
  top: 6px;
  right: 6px;
  width: 48px;
  height: 48px;
  background: #fff;
  border-radius: 8px;
  font-weight: 900;
  font-size: 18px;
  line-height: 48px;
  text-align: center;
  color: var(--c-black);
  text-shadow: none;
}
.formSend:hover{
  background: #ffae2b;
}
/* プライバシーポリシー */
.anchor{
  position: relative;
  z-index: 1;
  top: -40px;
}
.ct_privacy{
  height: 300px;
  margin-top: 40px;
  padding: 24px 20px;
  background: #fff;
  overflow-y: auto;
}
.ct_privacy_head{
  font-weight: 500;
  font-size: 17px;
  line-height: 1.5;
  letter-spacing: 0.2em;
  text-align: center;
}
.privacy_item{
  margin-top: 24px;
}
.privacy_ttl{
  margin-bottom: 12px;
  padding-left: 14px;
  border-left: 3px solid #bed4eb;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
.privacy_txt p,
.privacy_txt li{
  font-weight: 500;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.05em;
}
.privacy_txt ol,
.privacy_txt ul{
  margin: 6px 0;
}
.privacy_txt a{
  color: #0067b7;
  text-decoration: underline;
  word-break: break-all;
}
@media (min-width:768px){
  /* TBは見出しと入力欄を縦に並べる（PCで横並び） */
  .formTh{
    flex: 0 0 100%;
    max-width: 100%;
    padding: 14px 22px;
  }
  .formTd{
    flex: 0 0 100%;
    max-width: 100%;
    padding: 14px 22px;
  }
  .formTh .requiredText{
    margin-left: 16px;
  }
  .formTh .labelText01{
    font-size: 16px;
  }
  .formInput{
    max-width: 464px;
  }
  .addArea{
    flex-wrap: nowrap;
  }
  .addArea .labelText02{
    flex-shrink: 0;
    width: 76px;
    margin: 0;
    font-size: 16px;
  }
  .addArea .zipcode_i{
    width: 27px;
  }
  .addArea .zipInput{
    width: 110px;
  }
  .addArea .zipInput + .label + .zipInput{
    width: 100px;
  }
  .addArea .select{
    width: 225px;
  }
  .addArea .formInput{
    max-width: 425px;
  }
  .formTextArea{
    height: 280px;
  }
  .radioArea .labelText02{
    font-size: 15px;
  }
  .radioArea .d-inline-block{
    margin-right: 50px;
  }
  .ct_agree{
    margin-top: 48px;
  }
  .ct_agree .privacyLabel{
    font-size: 16px;
  }
  .ct_submit{
    margin-top: 28px;
  }
  .formSend{
    width: 332px;
    height: 78px;
    padding: 0 80px 0 26px;
    font-size: 24px;
    line-height: 78px;
  }
  .formSend:after{
    top: 6px;
    right: 7px;
    width: 66px;
    height: 66px;
    border-radius: 10px;
    font-size: 20px;
    line-height: 66px;
  }
  .ct_privacy{
    height: 400px;
    margin-top: 70px;
    padding: 34px 50px 34px 28px;
  }
  .ct_privacy_head{
    font-size: 21px;
  }
  .privacy_item{
    margin-top: 32px;
  }
  .privacy_ttl{
    font-size: 17px;
  }
  .privacy_txt p,
  .privacy_txt li{
    font-size: 15px;
  }
}
@media (min-width:1024px){
  .formTh{
    flex: 0 0 28.15%;
    max-width: 28.15%;
    padding: 17px 18px 17px 22px;
  }
  .formTd{
    flex: 0 0 71.85%;
    max-width: 71.85%;
    padding: 10px 17px 10px 17px;
  }
  .formTh .requiredText{
    margin-left: 0;
  }
  .formRow_kind .formTd{
    padding-top: 17px;
  }
  .sec_ct{
    padding: 158px 0 199px;
  }
  .ct_form{
    margin-top: 97px;
  }
}

/* ==========================================================================
   コラム・お知らせ（一覧／詳細）
   ========================================================================== */
.pg_post{
  position: relative;
  z-index: 2;
}
.sec_post{
  padding: 50px 0 80px;
  background: linear-gradient(180deg, #1de7ab 0%, #00c7d6 100%);
}
.sec_post_detail{
  background: linear-gradient(180deg, #1de7ab 0%, #00bfe0 100%);
}
.post_list{
  margin-top: 0;
}
/* SP：記事一覧は1列 */
.post_list .webgene-blog{
  grid-template-columns: 1fr;
}
/* 記事一覧・詳細へのリンク（#head）で移動したとき、上に少し余白を残す */
#head{
  scroll-margin-top: 40px;
}
/* 詳細：タイトル上の日付・カテゴリ */
.post_detail_meta{
  margin-bottom: 12px;
      justify-content: flex-start;
}
/* ---------- サイドバー（カテゴリ・日付） ---------- */
.post_side{
  margin-top: 60px;
}
.post_side_box + .post_side_box{
  margin-top: 40px;
}
.post_side_ttl{
  background: #ab5ba0;
  border-radius: 10px;
  font-weight: 500;
  font-size: 15px;
  line-height: 46px;
  letter-spacing: 0.025em;
  text-align: center;
  color: #fff;
}
.post_side_list{
  margin-top: 18px;
}
.post_side_list .webgene-item + .webgene-item{
  margin-top: 1px;
}
.post_side_list .webgene-item a{
  display: inline-block;
  position: relative;
  z-index: 1;
  padding-left: 28px;
  font-weight: 500;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.025em;
  color: #000;
}
.post_side_list .webgene-item a:before{
  content: "";
  position: absolute;
  z-index: 1;
  left: 0;
  top: 50%;
  width: 11px;
  height: 11px;
  margin-top: -6px;
  background: #000;
}
.post_side_list .webgene-item a:hover{
  color: #ab5ba0;
}
.post_side_list .webgene-item a.on{
  font-weight: 700;
}
/* ---------- ページ送り ---------- */
.post_list .webgene-pagination{
  grid-column: 1 / -1;
  margin-top: 40px;
}
.webgene-pagination ul{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
}
.webgene-pagination li a{
  display: block;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  background: #fff;
  border: 1px solid #ccc;
  font-weight: 500;
  font-size: 15px;
  line-height: 38px;
  text-align: center;
  color: #000;
}
.webgene-pagination li.selected a,
.webgene-pagination li a:hover{
  background: #5d57a1;
  border-color: #5d57a1;
  color: #fff;
}
.webgene-pagination li.next a:after{
  content: "\f101";
  margin-left: 6px;
  font-family: FontAwesome;
}
.webgene-pagination li.prev a:before{
  content: "\f100";
  margin-right: 6px;
  font-family: FontAwesome;
}
/* ---------- 詳細 ---------- */
.post_detail_ttl{
  padding-bottom: 14px;
  border-bottom: 1px solid #fff;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: 0.025em;
  color: #000;
}
.post_detail_body{
  padding: 30px 0 40px;
  border-bottom: 1px solid #fff;
}
.post_detail_body img{
  max-width: 100%;
  height: auto;
}
.post_detail_body p{
  font-weight: 500;
  font-size: 14px;
  line-height: 2.25;
  letter-spacing: 0.025em;
}
.post_detail_body p + p,
.post_detail_body h3 + p{
  margin-top: 20px;
}
.post_detail_body h2,
.post_detail_body h3{
  margin-top: 40px;
  padding: 14px 12px;
  background: #fff59d;
  border-radius: 10px;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.025em;
}
/* PDF資料リンク（hrefが空＝PDF未登録の場合は非表示） */
.post_pdf{
  margin-top: 30px;
}
.post_pdf:has(a[href=""]),
.post_pdf:has(a:not([href])),
.post_pdf a[href=""]{
  display: none;
}
.post_pdf a{
  display: inline-flex;
  align-items: center;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.025em;
  color: #000;
  text-decoration: underline;
}
.post_pdf a:before{
  content: "\f1c1";
  margin-right: 8px;
  font-family: FontAwesome;
  font-weight: normal;
  font-size: 20px;
  color: var(--main-color);
  text-decoration: none;
}
.post_pdf a:hover{
  color: var(--main-color);
}
.post_back{
  margin-top: 40px;
}
/* 小さいボタン */
.c_btn.c_btn_s{
  width: 219px;
  height: 53px;
  padding: 0 52px 0 19px;
}
.c_btn.c_btn_s:after{
  top: 5px;
  right: 4px;
  width: 44px;
  height: 44px;
  font-size: 14px;
  line-height: 44px;
}
.c_btn.c_btn_s .c_btn_txt{
  font-size: 16px;
  line-height: 53px;
}
@media (min-width:768px){
  .post_list .webgene-blog{
    grid-template-columns: repeat(3, 1fr);
  }
  .post_detail_ttl{
    font-size: 20px;
  }
  .post_detail_body{
    padding: 40px 0 56px;
  }
  .post_detail_body p{
    font-size: 15px;
  }
  .post_detail_body h2,
  .post_detail_body h3{
    margin-top: 47px;
    font-size: 17px;
  }
  .post_detail_body p + p,
  .post_detail_body h3 + p{
    margin-top: 28px;
  }
  .c_btn.c_btn_s .c_btn_txt{
    font-size: 16px;
  }
}
@media (min-width:1024px){
  .sec_post{
    padding: 198px 0 199px;
  }
  .sec_post_detail{
    padding: 158px 0 199px;
  }
  .post_layout{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
  .post_main{
    flex: 1;
    min-width: 0;
  }
  .post_side{
    flex-shrink: 0;
    width: 17.9%;
    margin: 0 0 0 5%;
  }
  .sec_post_detail .post_side{
    width: 23.1%;
    margin-left: 2.5%;
  }
  .post_side_box + .post_side_box{
    margin-top: 154px;
  }
  .post_list .webgene-blog{
    gap: 62px 30px;
  }
  .post_list .webgene-pagination{
    margin-top: 33px;
  }
  .post_detail_body{
    padding-right: 3%;
  }
  .post_detail_body > p:first-child img{
    width: 72.8%;
  }
}

/* ---------- 日付（月別）の絞り込み：プルダウン（script.js で生成・全デバイス） ---------- */
.post_side_list.is_select .webgene-blog{
  display: none;
}
.post_select .select_wrap{
  position: relative;
  z-index: 1;
}
.post_select .select_wrap:after{
  content: "\f107";
  position: absolute;
  z-index: 2;
  top: 50%;
  right: 14px;
  font-family: FontAwesome;
  font-size: 18px;
  line-height: 1;
  color: #333;
  transform: translateY(-50%);
  pointer-events: none;
}
.post_select select{
  width: 100%;
  height: 46px;
  padding: 0 40px 0 14px;
  background: #fff;
  border: 1px solid #b6b6b6;
  border-radius: 0;
  font-size: 15px;
  letter-spacing: 0.05em;
  color: #000;
  -webkit-appearance: none;
  appearance: none;
}

/* ---------- スマホ用カテゴリ絞り込み（script.js で生成） ---------- */
.posts_category_sp{
  margin-bottom: 30px;
}
.posts_side_title{
  background: #ab5ba0;
  border-radius: 10px;
  font-weight: 500;
  font-size: 15px;
  line-height: 46px;
  letter-spacing: 0.025em;
  text-align: center;
  color: #fff;
}
.posts_category_sp .select_wrap{
  position: relative;
  z-index: 1;
  margin-top: 12px;
}
.posts_category_sp .select_wrap:after{
  content: "\f107";
  position: absolute;
  z-index: 2;
  top: 50%;
  right: 14px;
  font-family: FontAwesome;
  font-size: 18px;
  line-height: 1;
  color: #333;
  transform: translateY(-50%);
  pointer-events: none;
}
.posts_category_sp select{
  width: 100%;
  height: 46px;
  padding: 0 40px 0 14px;
  background: #fff;
  border: 1px solid #b6b6b6;
  border-radius: 0;
  font-size: 15px;
  letter-spacing: 0.05em;
  color: #000;
  -webkit-appearance: none;
  appearance: none;
}
/* スマホではサイドバーのカテゴリを非表示（プルダウンに置き換え） */
.has_cate_sp .post_side_box:first-child{
  display: none;
}
@media (min-width:768px){
  .posts_category_sp{
    display: none;
  }
  .has_cate_sp .post_side_box:first-child{
    display: block;
  }
}

/* ---------- DAILY SCHEDULE（仕事を知る） ---------- */
.sec_wk_schedule{
  z-index: 1;
  padding: 90px 0 70px;
  background: linear-gradient(180deg, #04d8c2 0%, #00bce1 100%);
}
.sc_box{
  margin-top: 30px;
  padding: 24px 15px 26px;
  background: #fff;
  border-radius: 24px;
}
.sc_start,
.sc_list{
  max-width: 1113px;
  margin: 0 auto;
}
.sc_start{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.sc_start_item{
  --c: #e975bf;
  --t: #f7daec;
  overflow: hidden;
  border-radius: 12px;
  text-align: center;
}
.sc_start_item:nth-child(2){ --c: #009d95; --t: #dbf9f7; }
.sc_start_item:nth-child(3){ --c: #f39800; --t: #feedd1; }
.sc_start_time{
  background: var(--c);
  font-weight: 700;
  font-size: 18px;
  line-height: 40px;
  letter-spacing: 0;
  color: #fff;
}
.sc_start_txt{
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 40px;
  padding: 4px 8px;
  background: var(--t);
}
.sc_start_label{
  font-weight: 700;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0;
}
.sc_list{
  margin-top: 30px;
}
.sc_item{
  --c: #e975bf;
  display: flex;
  align-items: center;
  padding: 12px;
  background: var(--c-beige);
  border-radius: 12px;
}
.sc_item + .sc_item{
  margin-top: 10px;
}
/* 時刻の色（デザインデータの並び順どおり） */
.sc_item:nth-child(1){ --c: #e975bf; }
.sc_item:nth-child(2){ --c: #009d95; }
.sc_item:nth-child(3){ --c: #f39800; }
.sc_item:nth-child(4){ --c: #f53252; }
.sc_item:nth-child(5){ --c: #009d95; }
.sc_item:nth-child(6){ --c: #f39800; }
.sc_item:nth-child(7){ --c: #e975bf; }
.sc_time{
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: 84px;
  min-height: 56px;
  padding: 4px;
  background: var(--c);
  border-radius: 8px;
  text-align: center;
}
.sc_time_txt{
  font-weight: 700;
  font-size: 15px;
  line-height: 1.1;
  letter-spacing: 0;
  color: #fff;
  text-align: left; /* 2行の時刻（10:15〜／10:30）は行頭をそろえる。ボックス内での位置は中央のまま */
}
.sc_body{
  padding-left: 14px;
}
.sc_ttl{
  font-weight: 700;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0;
}
.sc_txt{
  margin-top: 4px;
  font-weight: 600;
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
@media (min-width:768px){
  .sc_box{
    margin-top: 40px;
    padding: 40px 30px;
    border-radius: 50px;
  }
  .sc_start{
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
  .sc_start_item{
    border-radius: 17px;
  }
  .sc_start_time{
    font-size: 22px;
    line-height: 52px;
  }
  .sc_start_txt{
    min-height: 52px;
  }
  .sc_start_label{
    font-size: 18px;
  }
  .sc_start_item:nth-child(3) .sc_start_label{
    font-size: 14px;
  }
  .sc_list{
    margin-top: 44px;
  }
  .sc_item{
    padding: 16px 20px;
    border-radius: 17px;
  }
  .sc_item + .sc_item{
    margin-top: 17px;
  }
  .sc_time{
    width: 140px;
    min-height: 70px;
    border-radius: 12px;
  }
  .sc_time_txt{
    font-size: 22px;
    line-height: 1;
  }
  .sc_body{
    padding-left: 24px;
  }
  .sc_ttl{
    font-size: 22px;
    line-height: 1.3;
  }
  .sc_txt{
    font-size: 15px;
    letter-spacing: 0.075em;
  }
}
@media (min-width:1024px){
  .sec_wk_schedule{
    padding: 107px 0 117px;
  }
  .sc_box{
    margin-top: 74px;
    padding: 51px 30px;
  }
  .sc_start{
    gap: 27px;
  }
  .sc_start_time{
    font-size: 30px;
    line-height: 61px;
  }
  .sc_start_txt{
    min-height: 58px;
    padding: 0 8px;
  }
  .sc_start_label{
    font-size: 30px;
    line-height: 1.2;
  }
  .sc_start_item:nth-child(3) .sc_start_label{
    font-size: 18px;
  }
  .sc_list{
    margin-top: 57px;
  }
  .sc_item{
    min-height: 123px;
    padding: 19px 20px;
  }
  .sc_time{
    width: 183px;
    min-height: 83px;
  }
  .sc_time_txt{
    font-size: 30px;
    line-height: 0.85;
  }
  .sc_body{
    padding-left: 28px;
  }
  .sc_ttl{
    font-size: 30px;
    line-height: 1.2;
  }
  .sc_txt{
    margin-top: 6px;
    font-size: 18px;
    line-height: 1.4;
  }
}
@media (min-width:1440px){
  .sc_start_item:nth-child(3) .sc_start_label{
    font-size: 20px;
  }
}

/* ---------- フッターSNS（3つ並び） ---------- */
.ftr_sns{
  flex-wrap: wrap;
}
@media (min-width:768px){
  .ftr_sns_item{
    width: 220px;
  }
}
@media (min-width:1024px){
  .ftr_sns_item{
    width: 257px;
  }
}

/* ---------- ハンバーガーメニュー内のSNS ---------- */
.gnav_sns{
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 20px;
}
.gnav_sns_item{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 46px;
  height: 46px;
  background: #fef89a;
  border-radius: 50%;
}
.gnav_sns_item img{
  width: 24px;
}
.gnav_sns_item:hover{
  background: #fff;
}
.thanks_text{
  text-align:justify;
  margin-top:30px;
}
@media (min-width:768px){
  .gnav_sns{
    justify-content: flex-start;
    margin-top: 16px;
  }
}
@media (min-width:1024px){
.thanks_text{
  text-align:center;
}
}


/* ==========================================================================
   CMS管理画面（編集ページ）用：body.gjs-dashed
   開閉する要素は開いた状態で表示し、クライアントが編集できるようにする
   ========================================================================== */
/* ハンバーガーメニュー：全画面の固定表示をやめ、ページ上部にそのまま展開 */
.gjs-dashed .gnav{
  position: relative;
  z-index: 1;
  height: auto;
  opacity: 1;
  visibility: visible;
  overflow: visible;
}
/* スクロール連動アニメーション：最初から表示 */
.gjs-dashed .js_fade{
  opacity: 1;
  transform: none;
}
