@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: #f49600;
  --c-orange: #f49600;
  --c-txt: #282828;
  --c-black: #000;
  --c-dark: #333;
  --c-bar: #4c4c4c;
  --c-beige: #beb7af;
  --c-brown: #6b551c;
  --c-gray: #e5e5e5;
  --f-ja: "Noto Sans JP", sans-serif;
  --f-mincho: "Zen Old Mincho", serif;
  --f-cardo: "Cardo", serif;
  --f-oswald: "Oswald", sans-serif;
  --f-outfit: "Outfit", sans-serif;
  --f-satisfy: "Satisfy", cursive;
  --f-josefin: "Josefin Sans", sans-serif;
}
body{
  font-family: var(--f-ja);
  font-weight: 400;
  font-size: 14px;
  line-height: 1.6;
  color: var(--c-txt);
  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,
.c_link,
.lineup_item,
.news_link,
.insta_link,
.gnav_item,
.hdr_contact,
.hdr_menu_btn,
.ftr_contact_btn,
.footer_fix a{
  transition: color 0.3s, background-color 0.3s, border-color 0.3s, opacity 0.3s;
}

/* ---------- 見出し（英字＋下線） ---------- */
.c_ttl{
  padding-bottom: 10px;
  border-bottom: 1px solid #000;
}
.c_ttl_en{
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0;
}
.c_ttl_white{
  border-bottom-color: #fff;
  color: #fff;
}
.c_ttl_row{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
.c_ttl_row .c_ttl{
  flex: 1;
  margin-right: 20px;
}

/* ---------- リード見出し ---------- */
.c_lead{
  margin-top: 24px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 0;
}

/* ---------- 本文 ---------- */
.c_txt{
  margin-top: 16px;
}
.c_txt p{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
}

/* ---------- ボタン（オレンジ） ---------- */
.c_btn{
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 287px;
  padding: 0 50px 0 20px;
  background: var(--c-orange);
  color: #fff;
}
.c_btn:after{
  content: "\2192";
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 17px;
  font-size: 16px;
  line-height: 1;
  transform: translateY(-50%);
  transition: right 0.3s;
}
.c_btn p{
  font-weight: 500;
  font-size: 15px;
  line-height: 50px;
  letter-spacing: 0;
}
.c_btn:hover{
  background: #ffad2e;
  color: #fff;
}
.c_btn:hover:after{
  right: 12px;
}
.c_btn_s{
  display: inline-block;
  width: auto;
  max-width: none;
  min-width: 243px;
  padding: 0 50px 0 19px;
}
.c_btn_s p{
  line-height: 41px;
}

/* ---------- テキストリンク（下線＋丸矢印） ---------- */
.c_link_wrap{
  margin-top: 20px;
  text-align: right;
}
.c_link{
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  padding: 0 5px 8px;
  border-bottom: 2px solid var(--c-orange);
}
.c_link p{
  font-weight: 500;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.075em;
}
.c_link:after{
  content: "\f138";
  margin-left: 16px;
  font-family: FontAwesome;
  font-size: 16px;
  line-height: 1;
}
.c_link:hover{
  color: var(--c-orange);
}

@media (min-width:768px){
  body{
    font-size: 16px;
  }
  .c_ttl{
    padding-bottom: 11px;
  }
  .c_ttl_en{
    font-size: 21px;
    letter-spacing: 0.12em;
  }
  .c_lead{
    margin-top: 30px;
    font-size: 32px;
  }
  .c_txt{
    margin-top: 20px;
  }
  .c_txt p{
    font-size: 16px;
    line-height: 2.25;
  }
  .c_btn p{
    font-size: 16px;
    line-height: 53px;
  }
  .c_btn_s p{
    line-height: 41px;
  }
  .c_link p{
    font-size: 15px;
  }
  .c_ttl_row .c_ttl{
    margin-right: 44px;
  }
}

/* ==========================================================================
   ヘッダー
   ========================================================================== */
.header{
  position: absolute;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
}
.hdr_logo{
  position: absolute;
  z-index: 2;
  top: 16px;
  left: 15px;
  width: 110px;
}
.hdr_logo a:hover{
  opacity: 0.7;
}
.hdr_nav,
.hdr_contact,
.hdr_menu_btn{
  display: none;
}
/* 言語切り替え（中身の一覧は script.js で作る）：スマホは右上の小さいボタン */
.hdr_lang{
  position: absolute;
  z-index: 120;
  top: 10px;
  right: 10px;
}
.hdr_lang_btn{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 54px;
  height: 46px;
  background: rgba(0,0,0,0.6);
  font-family: var(--f-josefin);
  font-weight: 400;
  font-size: 9px;
  line-height: 1;
  letter-spacing: 0;
  color: #fff;
  cursor: pointer;
}
.hdr_lang_btn i{
  margin-bottom: 5px;
  font-size: 16px;
}
.hdr_lang_select{
  display: none;
  position: absolute;
  z-index: 1;
  top: 100%;
  right: 0;
  min-width: 150px;
  background: #111;
  border: 1px solid #333;
}
.hdr_lang.is_open .hdr_lang_select{
  display: block;
}
.hdr_lang_select_btn{
  display: block;
  padding: 12px 16px;
  color: #fff;
}
.hdr_lang_select_btn + .hdr_lang_select_btn{
  border-top: 1px solid #333;
}
.hdr_lang_select_btn p{
  font-family: var(--f-josefin);
  font-weight: 400;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.05em;
}
.hdr_lang_select_btn:hover,
.hdr_lang_select_btn.is_current{
  color: var(--c-orange);
}
/* 管理画面では一覧を開いた状態で見せない（ボタンだけ） */
.gjs-dashed .hdr_lang{
  position: relative;
}
@media (min-width:768px){
  .hdr_logo{
    top: 25px;
    left: 25px;
    width: 159px;
  }
  .hdr_menu{
    display: flex;
    justify-content: flex-end;
  }
  .hdr_contact,
  .hdr_menu_btn{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 2;
    width: 82px;
    height: 82px;
    background: #000;
    color: #fff;
  }
  .hdr_menu_btn{
    z-index: 110;
    background: #404040;
  }
  .hdr_contact i,
  .hdr_menu_btn i{
    font-size: 18px;
    line-height: 1;
  }
  .hdr_contact p,
  .hdr_menu_btn p{
    margin-top: 6px;
    font-family: var(--f-josefin);
    font-weight: 400;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0;
  }
  .hdr_contact:hover,
  .hdr_menu_btn:hover{
    background: var(--c-orange);
    color: #fff;
  }
  /* 言語切り替え：CONTACT の左に同じ高さのボタン */
  .hdr_lang{
    position: relative;
    z-index: 2;
    top: auto;
    right: auto;
  }
  .hdr_lang_btn{
    width: 64px;
    height: 82px;
    background: #262626;
    font-size: 11px;
  }
  .hdr_lang_btn i{
    margin-bottom: 7px;
    font-size: 18px;
  }
  .hdr_lang_btn:hover,
  .hdr_lang.is_open .hdr_lang_btn{
    background: var(--c-orange);
  }
}
/* 横並びのナビは8項目あるため1440px以上（それ未満は CONTACT＋MENUボタン） */
@media (min-width:1440px){
  .hdr_nav{
    display: flex;
    align-items: center;
    height: 82px;
    padding: 0 22px 0 24px;
    background: #404040;
  }
  .hdr_nav a{
    margin-left: 20px;
    font-weight: 500;
    font-size: 15px;
    line-height: 1.5;
    letter-spacing: 0.075em;
    color: #fff;
  }
  .hdr_nav a:first-child{
    margin-left: 0;
  }
  .hdr_nav a:hover{
    color: var(--c-orange);
  }
  .hdr_lang_btn,
  .hdr_contact{
    width: 96px;
  }
  .hdr_lang_btn{
    font-size: 15px;
  }
  .hdr_contact i{
    font-size: 16px;
  }
  .hdr_contact p{
    margin-top: 7px;
    font-size: 15px;
  }
  .hdr_menu_btn{
    display: none;
  }
  
}
@media (min-width:1520px){
  .hdr_nav{
    padding: 0 28px 0 30px;
  }
  .hdr_nav a{
    margin-left: 26px;
  }
}
@media (min-width:1720px){
  .hdr_nav a{
    margin-left: 48px;
  }
}
/* スクロールしたら固定（is_hdr_fixed は script.js で付与。スマホは固定フッターがあるため固定しない） */
@media (min-width:768px){
  .is_hdr_fixed .header{
    position: fixed;
    background: rgba(0,0,0,0.92);
    animation: hdr_slide_down 0.4s ease-out;
  }
  /* ページ内リンクの移動先が固定ヘッダーに隠れないように */
  [id]{
    scroll-margin-top: 82px;
  }
}
@keyframes hdr_slide_down{
  from{ transform: translateY(-100%); }
  to{ transform: translateY(0); }
}

/* ---------- グローバルナビ（展開時） ---------- */
.gnav{
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 40px 20px 90px;
  background: rgba(0,0,0,0.94);
  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;
  text-align: center;
}
.gnav_logo img{
  width: 150px;
}
.gnav_info{
  margin-top: 20px;
}
.gnav_info p{
  font-weight: 500;
  font-size: 13px;
  line-height: 1.8;
  letter-spacing: 0.075em;
  color: #fff;
}
.gnav_list{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.gnav_item{
  display: block;
  position: relative;
  z-index: 1;
  width: 47%;
  padding: 30px 20px 6px 0;
  border-bottom: 1px solid rgba(255,255,255,0.5);
  color: #fff;
}
/* スマホはリンクの右端に矢印（768px以上は非表示） */
.gnav_item:after{
  content: "\f105";
  position: absolute;
  z-index: 1;
  right: 2px;
  bottom: 8px;
  font-family: FontAwesome;
  font-size: 16px;
  line-height: 1;
}
.gnav_item:nth-child(3),
.gnav_item:last-child{
  width: 100%;
}
.gnav_en{
  display: none;
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 20px;
  line-height: 1;
  letter-spacing: 0.03em;
}
.gnav_ja{
  font-weight: 500;
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 0.075em;
}
.gnav_item:hover{
  border-bottom-color: var(--c-orange);
  color: var(--c-orange);
}
@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: space-between;
    flex-shrink: 0;
    width: 270px;
    margin-top: 0;
    padding: 0 30px 0 0;
    border-top: none;
    border-right: 1px solid rgba(255,255,255,0.4);
    text-align: left;
  }
  .gnav_info{
    padding-top: 16px;
    border-top: 1px solid rgba(255,255,255,0.4);
  }
  .gnav_list{
    display: block;
    flex: 1;
    padding-left: 30px;
  }
  .gnav_item,
  .gnav_item:nth-child(3),
  .gnav_item:last-child{
    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;
    white-space: nowrap;
  }
  .gnav_ja{
    margin-left: 10px;
    font-size: 13px;
    white-space: nowrap;
  }
}
@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,
  .gnav_item:nth-child(3),
  .gnav_item:last-child{
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    width: 30%;
    margin-bottom: 50px;
    padding-bottom: 10px;
  }
  .gnav_en{
    font-size: 22px;
    white-space: nowrap;
  }
  .gnav_ja{
    margin-top: 10px;
    margin-left: 0;
  }
}

/* ==========================================================================
   メインビジュアル
   ========================================================================== */
.mv{
  position: relative;
  z-index: 1;
  height: 560px;
  overflow: hidden;
  background: #000;
}
.mv_bg{
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.mv_bg:before{
  display: none;
}
.mv_bg:after{
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.4);
  pointer-events: none;
}
.mv_bg img{
  object-position: 58% center;
}
.mv_catch{
  position: absolute;
  z-index: 3;
  top: 42%;
  left: 20px;
  right: 20px;
  color: #fff;
}
.mv_catch_ja{
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 34px;
  line-height: 1.4;
  letter-spacing: 0.075em;
}
.mv_catch_en{
  display: inline-block;
  margin: 8px 0 0 130px;
  font-family: var(--f-satisfy);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.3;
  letter-spacing: 0;
  transform: rotate(-6deg);
  transform-origin: left center;
}
@media (min-width:768px){
  .mv{
    height: 640px;
  }
  .mv_bg img{
    object-position: center;
  }
  .mv_catch{
    top: 44%;
    left: 10.42vw;
    right: auto;
  }
  .mv_catch_ja{
    font-size: 54px;
  }
  .mv_catch_en{
    margin: 4px 0 0 330px;
    font-size: 30px;
  }
}
@media (min-width:1200px){
  .mv{
    height: 45.84vw;
    min-height: 660px;
  }
  .mv_catch_ja{
    font-size: 62px;
  }
  .mv_catch_en{
    margin: -2px 0 0 380px;
    font-size: 33px;
  }
}
@media (min-width:1440px){
  .mv_catch_ja{
    font-size: 70px;
  }
  .mv_catch_en{
    margin-left: 430px;
    font-size: 36px;
  }
}

/* ==========================================================================
   BRAND CONCEPT
   ========================================================================== */
.sec_concept{
  padding: 50px 0 60px;
}
/* 動画（.concept_ttl_video）。スマホは横幅いっぱい */
.concept_ttl_img{
  width: 100%;
  margin: 0 auto;
}
.concept_ttl_video{
  display: block;
  width: 100%;
  height: auto;
}
.concept_txtarea{
  margin-top: 40px;
}
.concept_sub{
  margin-top: 22px;
  font-family: var(--f-oswald);
  font-weight: 400;
  font-size: 15px;
  line-height: 1;
  letter-spacing: 0.05em;
}
.concept_txt{
  margin-top: 6px;
}
.concept_txt p{
  letter-spacing: 0.075em;
}
@media (min-width:768px){
  .concept_inner{
    display: flex;
    align-items: flex-start;
  }
  .concept_ttl_img{
    flex-shrink: 0;
    width: 240px;
    margin: 0;
  }
  .concept_txtarea{
    flex: 1;
    margin: 80px 0 0 50px;
  }
  .concept_sub{
    margin-top: 28px;
    font-size: 16px;
  }
  .concept_txt{
    margin-top: 4px;
  }
}
@media (min-width:1024px){
  .sec_concept{
    padding: 44px 0 98px;
  }
  .concept_ttl_img{
    width: 300px;
  }
  .concept_txtarea{
    margin-top: 100px;
  }
}
@media (min-width:1200px){
  .concept_ttl_img{
    width: 352px;
  }
  .concept_txtarea{
    margin-top: 108px;
  }
}

/* ---------- 区切りの写真 ---------- */
.scene_photo:before{
  padding-top: 56%;
}
/* スマホは被写体（左の釣り人）が切れないよう左寄せ */
.scene_photo.img_fit img{
  object-position: left;
}
@media (min-width:768px){
  .scene_photo:before{
    padding-top: 32.2%;
  }
  .scene_photo.img_fit img{
    object-position: center;
    filter: grayscale(1);
  }
}

/* ==========================================================================
   PRODUCTS
   ========================================================================== */
.sec_products{
  padding: 50px 0 70px;
  background: #000;
  color: #fff;
}
/* スマホはボタンを中央寄せ（768px以上は左寄せ） */
.products_intro_btn,
.products_btn,
.after_contact_btn{
  text-align: center;
}
.products_intro_btn .c_btn,
.after_contact_btn .c_btn{
  margin: 0 auto;
}
.products_intro_btn .c_btn,
.products_btn .c_btn,
.after_contact_btn .c_btn{
  text-align: left;
}
.products_intro_btn{
  margin-top: 26px;
}
.products_list{
  margin-top: 50px;
}
.products_col + .products_col{
  margin-top: 40px;
}
.products_item{
  display: flex;
  flex-direction: column;
  background: var(--c-dark);
}
.products_body{
  padding: 18px 20px 30px;
}
.products_num{
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 15px;
  line-height: 1;
  letter-spacing: 0;
  color: var(--c-orange);
}
.products_ttl{
  margin-top: 20px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 32px;
  line-height: 1.3;
  letter-spacing: 0.075em;
}
.products_sub{
  margin-top: 8px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: 0.075em;
}
.products_txt{
  margin-top: 18px;
}
.products_txt p{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0.075em;
}
.products_btn{
  margin-top: 24px;
}
.products_photo:before{
  padding-top: 46.7%;
}
/* スマホはどのカードも写真が上（768px以上は1つ目だけ写真が下） */
.products_photo{
  order: -1;
}
/* 2つ目のカードは写真が上・ベージュ */
.products_col:nth-child(even) .products_item{
  background: var(--c-beige);
  color: var(--c-txt);
}
.products_col:nth-child(even) .products_photo{
  order: -1;
}
.products_col:nth-child(even) .products_num{
  color: var(--c-brown);
}
.products_catch{
  margin-top: 40px;
}
.products_catch_en{
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.24;
  letter-spacing: 0;
}
.products_catch_ja{
  margin-top: 8px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.075em;
}
@media (min-width:768px){
  .sec_products{
    padding: 57px 0 100px;
  }
  .products_intro{
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
  }
  .products_intro_txtarea{
    flex: 1;
    margin-right: 30px;
  }
  .products_intro_btn,
  .products_btn,
  .after_contact_btn{
    text-align: left;
  }
  .products_intro_btn .c_btn,
  .after_contact_btn .c_btn{
    margin: 0;
  }
  .products_intro_btn{
    flex-shrink: 0;
    width: 260px;
    margin: 0 0 8px;
  }
  .products_list{
    margin-top: 70px;
  }
  .products_col:nth-child(odd) .products_photo{
    order: 0;
  }
  .products_body{
    padding: 18px 21px 30px;
  }
  .products_num{
    font-size: 16px;
  }
  .products_ttl{
    margin-top: 28px;
    font-size: 46px;
  }
  .products_sub{
    font-size: 24px;
  }
  .products_txt{
    margin-top: 24px;
  }
  .products_txt p{
    font-size: 16px;
    line-height: 1.875;
  }
  .products_col:nth-child(even) .products_txt p{
    line-height: 2.25;
  }
  /* エギング（左の列）は本文の上・ボタンの下を広めに（PSD） */
  .products_col:nth-child(odd) .products_txt{
    margin-top: 30px;
  }
  .products_col:nth-child(odd) .products_body{
    padding-bottom: 40px;
  }
  .products_btn{
    margin-top: 27px;
  }
  .products_catch{
    margin-top: 41px;
  }
  .products_catch_en{
    font-size: 42px;
  }
  .products_catch_ja{
    font-size: 21px;
  }
}
@media (min-width:1024px){
  .products_list{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
  .products_col{
    width: 48.8%;
  }
  .products_col + .products_col{
    margin-top: 100px;
  }
  .products_sub{
    font-size: 20px;
  }
  .products_catch_en{
    font-size: 36px;
  }
}
@media (min-width:1200px){
  .sec_products{
    padding-bottom: 120px;
  }
  .products_intro_btn{
    width: 287px;
  }
  .products_sub{
    font-size: 24px;
  }
  .products_catch_en{
    font-size: 42px;
  }
}

/* ==========================================================================
   FEATURE
   ========================================================================== */
.sec_feature{
  padding: 50px 0 70px;
  background: var(--c-gray);
}
.feature_intro{
  margin-top: 26px;
}
.feature_lead{
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 40px;
  line-height: 1.4;
  letter-spacing: 0;
}
.feature_list{
  margin-top: 40px;
}
.feature_item + .feature_item{
  margin-top: 40px;
}
.feature_photo:before{
  padding-top: 50.2%;
}
.feature_txtarea{
  margin-top: 20px;
}
.feature_num{
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 17px;
  line-height: 1;
  letter-spacing: 0;
}
.feature_ttl{
  margin-top: 8px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.3;
  letter-spacing: 0.075em;
}
.feature_sub{
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 19px;
  line-height: 1.5;
  letter-spacing: 0.075em;
}
.feature_txt{
  margin-top: 14px;
}
.feature_txt p{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0.075em;
}
.feature_catch{
  margin-top: 40px;
  text-align: center;
}
.feature_catch_en{
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: calc((100vw - 30px) / 12.7);
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
  color: #fff;
}
.feature_catch_ja{
  margin-top: 8px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 0;
}
@media (min-width:768px){
  .sec_feature{
    padding: 97px 0 100px;
  }
  .feature_intro{
    display: flex;
    align-items: flex-start;
    margin-top: 0;
  }
  .feature_lead{
    flex-shrink: 0;
    width: 260px;
    margin-top: 42px;
    font-size: 54px;
    line-height: 1.412;
  }
  .feature_intro_txt{
    flex: 1;
    margin-top: 49px;
  }
  .feature_list{
    margin-top: 62px;
  }
  .feature_ttl{
    margin-top: 10px;
    font-size: 36px;
  }
  .feature_sub{
    font-size: 24px;
  }
  .feature_txt{
    margin-top: 17px;
  }
  .feature_txt p{
    font-size: 16px;
    line-height: 2.25;
  }
  .feature_catch{
    margin-top: 50px;
  }
  .feature_catch_en{
    font-size: calc(690px / 12.7);
  }
  .feature_catch_ja{
    font-size: 38px;
  }
}
@media (min-width:992px){
  .feature_catch_en{
    font-size: calc(930px / 12.7);
  }
}
@media (min-width:1024px){
  .feature_item{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
  .feature_item:nth-child(even){
    flex-direction: row-reverse;
  }
  .feature_item + .feature_item{
    margin-top: 32px;
  }
  .feature_photo{
    flex-shrink: 0;
    width: 60.1%;
  }
  /* 本文が写真の下端をはみ出しても行間隔がずれないようにする */
  .feature_txtarea{
    width: 34.3%;
    margin: -2px 0 -12px;
  }
  .feature_num{
    font-size: 20px;
  }
  .feature_catch_ja{
    font-size: 46px;
  }
}
@media (min-width:1200px){
  .sec_feature{
    padding-bottom: 96px;
  }
  .feature_lead{
    width: 378px;
    font-size: 68px;
  }
  .feature_catch{
    margin-top: 36px;
  }
  .feature_catch_en{
    font-size: 88px;
  }
  .feature_catch_ja{
    font-size: 56px;
  }
}

/* ==========================================================================
   LINE UP
   ========================================================================== */
.sec_lineup{
  padding: 50px 0 70px;
  background: #000;
  color: #fff;
}
.lineup_cate{
  margin-top: 30px;
}
.lineup_cate + .lineup_cate{
  margin-top: 28px;
}
.lineup_cate_ttl{
  padding: 0 11px;
  background: var(--c-bar);
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 14px;
  line-height: 36px;
  letter-spacing: 0.075em;
  color: var(--c-orange);
}
.lineup_item{
  display: block;
  position: relative;
  z-index: 1;
  padding: 14px 40px 13px 11px;
  border-bottom: 1px solid #b1b1b1;
  color: #fff;
}
.lineup_item:after{
  content: "\f138";
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 14px;
  font-family: FontAwesome;
  font-size: 16px;
  line-height: 1;
  transform: translateY(-50%);
  transition: right 0.3s;
}
.lineup_name{
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.lineup_model{
  font-family: var(--f-outfit);
  font-weight: 300;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.075em;
}
.lineup_item:hover{
  color: var(--c-orange);
}
.lineup_item:hover:after{
  right: 10px;
}
.sec_lineup .c_link_wrap{
  margin-top: 23px;
  padding-right: 11px;
}
@media (min-width:768px){
  .sec_lineup{
    padding: 48px 0 153px;
  }
  .lineup_cate{
    margin-top: 31px;
  }
  .lineup_cate_ttl{
    font-size: 16px;
    line-height: 40px;
  }
  .lineup_item{
    display: flex;
    align-items: center;
    padding: 17px 40px 16px 11px;
  }
  .lineup_name{
    width: 65.9%;
    padding-right: 20px;
    font-size: 24px;
    line-height: 42px;
    letter-spacing: 0.075em;
  }
  .lineup_model{
    flex: 1;
    font-size: 18px;
  }
}
@media (min-width:1024px){
  .lineup_name{
    font-size: 28px;
  }
}

/* ==========================================================================
   ABOUT LEGAME
   ========================================================================== */
.sec_about{
  background: var(--c-beige);
}
.about_photo:before{
  padding-top: 70.6%;
}
.about_txtarea{
  padding: 50px 0 60px;
}
@media (min-width:768px){
  .about_txtarea{
    padding: 77px 0 100px;
  }
  .about_lead{
    margin-top: 29px;
  }
}
@media (min-width:1024px){
  .about_photo{
    position: absolute;
    z-index: 1;
    top: 0;
    left: 50%;
    width: 50%;
    height: 100%;
  }
  .about_photo:before{
    display: none;
  }
  .about_txtarea{
    width: 48.8%;
    min-height: 683px;
    padding: 77px 0 120px;
  }
}

/* ==========================================================================
   NEWS
   ========================================================================== */
.sec_news{
  padding-top: 60px;
}
.news_list{
  margin-top: 30px;
}
/* スマホは1列のカード（画像の下に日付・タイトル） */
.news_list .webgene-item + .webgene-item{
  margin-top: 35px;
}
.news_link{
  display: block;
}
.news_link .img:before{
  padding-top: 74.7%;
}
.news_meta{
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 12px;
}
.news_date{
  font-family: var(--f-outfit);
  font-weight: 400;
  font-size: 15px;
  line-height: 1;
  letter-spacing: 0;
}
.news_cate{
  min-width: 80px;
  padding: 0 8px;
  background: var(--c-orange);
  font-weight: 500;
  font-size: 13px;
  line-height: 27px;
  letter-spacing: 0;
  text-align: center;
  color: #fff;
}
.news_ttl{
  margin-top: 8px;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0.075em;
}
.news_link:hover{
  color: var(--c-orange);
}
@media (min-width:768px){
  .sec_news{
    padding-top: 114px;
  }
  .news_list{
    margin-top: 47px;
  }
  .news_list .webgene-blog{
    display: flex;
    flex-wrap: wrap;
    column-gap: 2.5%;
  }
  .news_list .webgene-item{
    width: 31.66%;
  }
  .news_list .webgene-item + .webgene-item{
    margin-top: 0;
  }
  .news_meta{
    margin-top: 10px;
  }
  .news_date{
    font-size: 16px;
  }
  .news_cate{
    min-width: 105px;
    padding: 0 10px;
    font-size: 14px;
  }
  .news_ttl{
    margin-top: 15px;
    font-size: 16px;
  }
}

/* ==========================================================================
   INSTAGRAM
   ========================================================================== */
.sec_insta{
  padding: 60px 0 80px;
}
.insta_list{
  margin-top: 30px;
}
.insta_list .webgene-blog{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
}
/* スマホは3件のみ表示 */
.insta_list .webgene-item:nth-child(n+4){
  display: none;
}
.insta_link{
  display: block;
}
.insta_link .img:before{
  padding-top: 131.5%;
}
.insta_link .img video{
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  z-index: 1;
  left: 0;
  top: 0;
}
.insta_link:hover{
  opacity: 0.8;
}
@media (min-width:768px){
  .sec_insta{
    padding: 110px 0 202px;
  }
  .insta_list{
    margin-top: 33px;
  }
  .insta_list .webgene-blog{
    grid-template-columns: repeat(5, 1fr);
  }
  .insta_list .webgene-item:nth-child(n+4){
    display: block;
  }
}

/* ==========================================================================
   フッター
   ========================================================================== */
.ftr_contact{
  padding: 50px 0 60px;
  background: var(--c-orange);
}
.ftr_contact .c_ttl{
  border-bottom-color: #000;
}
.ftr_contact_lead{
  margin-top: 26px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 30px;
  line-height: 1.4;
  letter-spacing: 0;
}
.ftr_contact_txt{
  margin-top: 16px;
}
.ftr_contact_btns{
  margin-top: 30px;
}
.ftr_contact_btn{
  display: block;
  position: relative;
  z-index: 1;
  padding: 0 50px 0 20px;
  background: #000;
  border: 1px solid #000;
  color: #fff;
}
.ftr_contact_btn + .ftr_contact_btn{
  margin-top: 5px;
}
.ftr_contact_btn:after{
  content: "\2192";
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 26px;
  font-weight: 500;
  font-size: 16px;
  line-height: 1;
  transform: translateY(-50%);
  transition: right 0.3s;
}
.ftr_contact_btn p{
  font-weight: 500;
  font-size: 15px;
  line-height: 60px;
  letter-spacing: 0;
}
.ftr_contact_btn_line{
  background: transparent;
  color: var(--c-txt);
}
.ftr_contact_btn:hover{
  background: #fff;
  border-color: #fff;
  color: var(--c-txt);
}
.ftr_contact_btn:hover:after{
  right: 20px;
}
.ftr_main{
  padding-bottom: 60px;
  background: #000;
  color: #fff;
}
.ftr_logo a:hover{
  opacity: 0.8;
}
.ftr_info{
  margin-top: 30px;
  text-align: center;
}
.ftr_name{
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.075em;
}
.ftr_address{
  margin-top: 8px;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.075em;
}
.ftr_nav{
  display: none;
}
.ftr_bottom{
  margin-top: 30px;
  padding: 24px 15px;
  border-top: 1px solid #fff;
  text-align: center;
}
.ftr_copy{
  font-weight: 400;
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.075em;
}
@media (min-width:768px){
  .ftr_contact{
    padding: 91px 0 85px;
  }
  .ftr_contact_lead{
    margin-top: 46px;
    font-size: 40px;
    letter-spacing: 0.08em;
  }
  .ftr_contact_txt{
    margin-top: 29px;
  }
  .ftr_contact_btn p{
    font-size: 16px;
    line-height: 69px;
  }
  .ftr_contact_btn_line p{
    line-height: 68px;
  }
  .ftr_main{
    padding-bottom: 0;
  }
  .ftr_info{
    margin-top: 52px;
  }
  .ftr_name{
    font-size: 18px;
    letter-spacing: 0;
  }
  .ftr_address{
    margin-top: 11px;
    font-size: 16px;
    letter-spacing: 0;
  }
  .ftr_nav{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 14px;
    margin-top: 43px;
  }
  .ftr_nav a{
    margin: 0 20px;
    font-weight: 500;
    font-size: 15px;
    line-height: 1.5;
    letter-spacing: 0.075em;
  }
  .ftr_nav a:hover{
    color: var(--c-orange);
  }
  .ftr_bottom{
    margin-top: 76px;
    padding: 32px 15px 34px;
  }
  .ftr_copy{
    font-size: 15px;
    letter-spacing: 0;
  }
}
@media (min-width:1024px){
  .ftr_contact_inner{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
  .ftr_contact_txtarea{
    flex: 1;
    margin-right: 30px;
  }
  .ftr_contact_btns{
    flex-shrink: 0;
    width: 43%;
    margin-top: 58px;
  }
}
@media (min-width:1200px){
  .ftr_contact_lead{
    font-size: 48px;
  }
}

/* ==========================================================================
   ページトップ / スマホ固定フッター
   ========================================================================== */
.pagetop_btn{
  display: flex;
  justify-content: center;
  align-items: center;
  position: fixed;
  z-index: 80;
  right: 15px;
  bottom: 75px;
  width: 46px;
  height: 46px;
  background: var(--c-orange);
  font-size: 26px;
  color: #fff;
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
}
.pagetop_btn.is_show{
  opacity: 1;
  visibility: visible;
}
.pagetop_btn:hover{
  background: #fff;
  color: var(--c-orange);
}
.footer_fix{
  display: flex;
  position: fixed;
  z-index: 110;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 60px;
}
.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 a p{
  margin-top: 5px;
  font-weight: 500;
  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: #404040;
  color: #fff;
}
.footer_fix_item_2:hover{
  color: #fff;
}
.footer_fix_item_2 p{
  font-family: var(--f-josefin);
}
@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 を付けた瞬間に下へ動くのを防ぐ） */
.js_fade{
  opacity: 0;
  transform: translateY(30px);
}
.js_fade.is_show{
  opacity: 1;
  transform: none;
  transition: opacity 0.8s, transform 0.8s;
}

/* ==========================================================================
   下層ページ共通
   ========================================================================== */
/* 記事リンクの移動先（#head） */
.anchor{
  display: block;
  position: relative;
  z-index: 1;
  top: -20px;
}
.pg_body{
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.pg_dark{
  background: #080808;
  color: #fff;
}
.pg_black{
  background: #050505;
  color: #fff;
}

/* ---------- 下層ページヘッダー ---------- */
.pg_header{
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: 110px 0 50px;
  background: #000;
  color: #fff;
}
.pg_header_bg{
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.pg_header_bg:before{
  display: none;
}
.pg_header_bg:after{
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(0,0,0,0.7), rgba(0,0,0,0.3));
  pointer-events: none;
}
.pg_header_bg img{
  object-position: center;
}
.pg_header .container{
  position: relative;
  z-index: 2;
}
.pg_header_en{
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.2;
  letter-spacing: 0.12em;
  color: #f39800;
}
.pg_header_ja{
  margin-top: 14px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 32px;
  line-height: 1.4;
  letter-spacing: 0.13em;
}
.pg_header_txt{
  margin-top: 14px;
}
.pg_header_txt p{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
}
/* 製品カテゴリページ（大きいキャッチコピー） */
.pg_header_l{
  padding: 120px 0 60px;
}
.pg_header_l .pg_header_bg:after{
  background: linear-gradient(90deg, rgba(0,0,0,0.7), rgba(0,0,0,0.05));
}
.pg_header_l .pg_header_en{
  font-size: 13px;
}
.pg_header_l .pg_header_ja{
  margin-top: 8px;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.15em;
}
.pg_header_catch{
  margin-top: 14px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 46px;
  line-height: 1.4;
  letter-spacing: 0.13em;
}
.pg_header_l .pg_header_txt{
  max-width: 560px;
}
@media (min-width:768px){
  .pg_header{
    min-height: 380px;
    padding: 150px 0 90px;
  }
  .pg_header_en{
    font-size: 21px;
  }
  .pg_header_ja{
    margin-top: 20px;
    font-size: 48px;
    line-height: 1.5;
  }
  .pg_header_txt{
    margin-top: 25px;
  }
  .pg_header_txt p{
    font-size: 16px;
    line-height: 2;
  }
  .pg_header_l{
    min-height: 650px;
    padding: 140px 0 100px;
  }
  .pg_header_l .pg_header_en{
    font-size: 14px;
  }
  .pg_header_l .pg_header_ja{
    font-size: 18px;
  }
  .pg_header_catch{
    margin-top: 22px;
    font-size: 76px;
  }
  .pg_header_l .pg_header_txt{
    margin-top: 26px;
  }
  .pg_header_l .pg_header_txt p{
    line-height: 2.3;
  }
}

/* ---------- セクション見出し（上線＋英字＋和文） ---------- */
.c_head{
  padding-top: 16px;
  border-top: 1px solid #282828;
}
.c_head_en{
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.2;
  letter-spacing: 0.12em;
}
.c_head_ja{
  margin-top: 18px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 26px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
/* 黒背景用 */
.c_head_dark{
  border-top-color: #fff;
}
.c_head_dark .c_head_en{
  color: var(--c-orange);
}
/* 英語の見出しがないときは、日本語の見出しを上に詰める */
.c_head_ja:first-child{
  margin-top: 0;
}
@media (min-width:768px){
  .c_head{
    padding-top: 20px;
  }
  .c_head_en{
    font-size: 21px;
  }
  .c_head_ja{
    margin-top: 25px;
    font-size: 34px;
  }
}

/* ---------- パンくず ---------- */
.c_breadcrumb{
  display: flex;
  flex-wrap: wrap;
  color: #aaa;
}
.c_breadcrumb > *{
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0;
}
.c_breadcrumb > * + *:before{
  content: "/";
  margin: 0 14px;
  color: #aaa;
}
.c_breadcrumb a:hover{
  color: var(--c-orange);
}
/* リンク内の文字（p）を区切りの「/」と同じ行に並べる */
.c_breadcrumb_txt{
  display: inline;
}

/* ---------- 戻るボタン（枠線） ---------- */
.c_back_wrap{
  text-align: center;
}
.c_back{
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 420px;
  padding: 20px;
  border: 1px solid #555;
  transition: color 0.3s, border-color 0.3s;
}
.c_back:before{
  content: "\2190";
  margin-right: 25px;
  font-size: 15px;
  line-height: 1;
}
.c_back p{
  font-weight: 500;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0;
}
.c_back:hover{
  border-color: var(--c-orange);
  color: #a96300;
}
.pg_dark .c_back:hover{
  color: var(--c-orange);
}@media (min-width:768px){
  .c_back{
    padding: 24px 20px;
  }
  .c_back p{
    font-size: 15px;
  }
}

/* ---------- 画像の拡大（company.js で lightbox を設定） ---------- */
.c_zoom{
  display: block;
  position: relative;
  z-index: 1;
  cursor: zoom-in;
}
.c_zoom:after{
  content: "+";
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  z-index: 3;
  right: 8px;
  bottom: 8px;
  width: 30px;
  height: 30px;
  border: 1px solid #fff;
  background: rgba(0,0,0,0.75);
  font-family: sans-serif;
  font-size: 22px;
  line-height: 1;
  color: #fff;
}
/* 画像が登録されていないときは＋を出さない */
.c_zoom:not(:has(img)):after{
  display: none;
}
@media (min-width:768px){
  .c_zoom:after{
    right: 15px;
    bottom: 15px;
    width: 36px;
    height: 36px;
    font-size: 26px;
  }
}

/* ==========================================================================
   製品カテゴリ（エギングロッド／アジング・ライトゲームロッド）
   ========================================================================== */
.rod_intro{
  padding: 50px 0 40px;
  text-align: center;
}
.rod_intro_en{
  padding-top: 18px;
  border-top: 1px solid #aaa;
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 13px;
  line-height: 1.2;
  letter-spacing: 0.12em;
}
.rod_intro_ttl{
  margin-top: 22px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
/* スマホは両端そろえ（768px以上は中央） */
.rod_intro_txt{
  margin-top: 20px;
  text-align: justify;
}
.rod_intro_txt p{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
}
/* 導入文に動画（.rod_feature_video）があるとき：TOPの BRAND CONCEPT と同じレイアウト
   スマホは動画が文章の下、768px以上は文章が左・動画が右（.rod_intro_txt を display: contents にして並べ替える） */
.rod_intro .container:has(.rod_feature_video){
  display: flex;
  flex-direction: column;
}
.rod_intro .container:has(.rod_feature_video) .rod_intro_txt{
  display: contents;
}
.rod_intro .container:has(.rod_feature_video) .rod_intro_txt > p{
  margin-top: 20px;
}
.rod_feature_video{
  margin-top: 30px;
}
.rod_feature_video video{
  display: block;
  width: 100%;
  height: auto;
}
@media (min-width:768px){
  .rod_intro .container:has(.rod_feature_video){
    display: grid;
    grid-template-columns: minmax(0, 1fr) 240px;
    grid-template-rows: auto auto auto 1fr;
    column-gap: 50px;
    align-items: start;
    text-align: left;
  }
  .rod_intro .container:has(.rod_feature_video) .rod_intro_txt{
    text-align: left;
  }
  .rod_intro .container:has(.rod_feature_video) > *,
  .rod_intro .container:has(.rod_feature_video) .rod_intro_txt > p{
    grid-column: 1;
  }
  .rod_intro .container:has(.rod_feature_video) .rod_intro_en{
    margin-top: 80px;
  }
  .rod_intro .container:has(.rod_feature_video) .rod_intro_txt > p{
    margin-top: 26px;
  }
  .rod_intro .container:has(.rod_feature_video) .rod_feature_video{
    grid-column: 2;
    grid-row: 1 / 5;
    margin-top: 0;
  }
}
@media (min-width:1024px){
  .rod_intro .container:has(.rod_feature_video){
    grid-template-columns: minmax(0, 1fr) 300px;
  }
  .rod_intro .container:has(.rod_feature_video) .rod_intro_en{
    margin-top: 100px;
  }
}
@media (min-width:1200px){
  .rod_intro .container:has(.rod_feature_video){
    grid-template-columns: minmax(0, 1fr) 352px;
  }
  .rod_intro .container:has(.rod_feature_video) .rod_intro_en{
    margin-top: 108px;
  }
}
.rod_feature{
  padding-bottom: 60px;
}
.rod_feature_list{
  display: grid;
  grid-template-columns: 1fr;
  gap: 45px;
}
.rod_feature_item{
  min-width: 0;
  padding-top: 22px;
  border-top: 1px solid #aaa;
}
.rod_feature_photo:before{
  padding-top: 50%;
}
.rod_feature_photos{
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px;
}
.rod_feature_photos .img_fit:before{
  padding-top: 59.2%;
}
.rod_feature_ttl{
  margin-top: 20px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 21px;
  line-height: 1.6;
  letter-spacing: 0.08em;
}
.rod_feature_txt{
  margin-top: 12px;
}
.rod_feature_txt > *{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
}
.rod_feature_txt > * + *{
  margin-top: 20px;
}
.rod_feature_note{
  margin-top: 20px;
}
.rod_feature_note p{
  font-size: 12px;
  line-height: 1.875;
  letter-spacing: 0;
  color: #666;
}
.rod_feature_sub{
  margin-top: 30px;
  padding-top: 20px;
  border-top: 1px solid #aaa;
}
.rod_feature_sub_ttl{
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 19px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
.rod_feature_sub .rod_feature_txt{
  margin-top: 16px;
}
@media (min-width:768px){
  .rod_intro{
    padding: 100px 0 92px;
  }
  .rod_intro_en{
    font-size: 14px;
  }
  .rod_intro_ttl{
    margin-top: 28px;
    font-size: 44px;
  }
  .rod_intro_txt{
    margin-top: 26px;
    text-align: center;
  }
  .rod_intro_txt p{
    font-size: 16px;
    line-height: 2.3;
  }
  .rod_feature{
    padding-bottom: 100px;
  }
  .rod_feature_list{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 50px 32px;
  }
  /* 写真が3枚並ぶ項目は1行全体を使う */
  .rod_feature_item_wide{
    grid-column: 1 / -1;
  }
  .rod_feature_photos{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
  }
  .rod_feature_item{
    padding-bottom: 20px;
  }
  .rod_feature_ttl{
    font-size: 24px;
    letter-spacing: 0;
  }
  .rod_feature_txt{
    margin-top: 20px;
  }
  .rod_feature_txt > *{
    line-height: 2.1;
  }
  .rod_feature_sub_ttl{
    font-size: 22px;
    letter-spacing: 0;
  }
}

/* ---------- ラインナップ ---------- */
.rod_lineup{
  padding: 50px 0 80px;
  background: #050505;
  color: #fff;
}
.rod_lineup_en{
  padding-top: 18px;
  border-top: 1px solid #555;
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 13px;
  line-height: 1.2;
  letter-spacing: 0.12em;
  color: var(--c-orange);
}
.rod_lineup_ttl{
  margin-top: 22px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.6;
  letter-spacing: 0.08em;
}
.rod_lineup_txt{
  margin-top: 16px;
}
.rod_lineup_txt p{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
  color: #bdbdbd;
}
.rod_list{
  display: grid;
  grid-template-columns: 1fr;
  gap: 45px;
  margin-top: 40px;
}
.rod_item{
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.rod_item_photo{
  display: block;
  background: #e1e8e9;
}
.rod_item_photo:before{
  padding-top: 75%;
}
.rod_item_photo:hover{
  opacity: 0.85;
}
.rod_item_series{
  margin-top: 22px;
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: var(--c-orange);
}
.rod_item_name{
  margin-top: 10px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.6;
  letter-spacing: 0.04em;
}
.rod_item_model{
  font-family: var(--f-outfit);
  font-weight: 300;
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0.12em;
  color: #aaa;
}
.rod_item_txt{
  margin: 14px 0 22px;
}
.rod_item_txt p{
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0;
  color: #ccc;
}
.rod_item_link{
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 60px;
  margin-top: auto;
  border-top: 1px solid #444;
  border-bottom: 1px solid #444;
  transition: color 0.3s;
}
.rod_item_link:after{
  content: "\2197";
  font-size: 19px;
  line-height: 1;
  color: var(--c-orange);
}
.rod_item_link p{
  font-weight: 500;
  font-size: 13px;
  line-height: 1.4;
  letter-spacing: 0;
}
.rod_item_link:hover{
  color: var(--c-orange);
}
@media (min-width:768px){
  .rod_lineup{
    padding: 105px 0 200px;
  }
  .rod_lineup_en{
    font-size: 14px;
  }
  .rod_lineup_ttl{
    margin-top: 28px;
    font-size: 42px;
  }
  .rod_lineup_txt{
    margin-top: 20px;
  }
  .rod_lineup_txt p{
    font-size: 16px;
    line-height: 2.3;
  }
  .rod_list{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 65px 50px;
    margin-top: 65px;
  }
  .rod_item_series{
    margin-top: 26px;
  }
  .rod_item_name{
    font-size: 26px;
    letter-spacing: 0;
  }
  .rod_item_txt{
    min-height: 56px;
    margin: 18px 0 22px;
  }
  .rod_item_link{
    min-height: 64px;
  }
}

/* ---------- 商品一覧をデータブロック（商品管理 property）で出すとき ---------- */
.rod_list:has(> .webgene-blog){
  display: block;
}
.rod_list .webgene-blog{
  display: grid;
  grid-template-columns: 1fr;
  gap: 45px;
}
.rod_list .webgene-item{
  display: flex;
  min-width: 0;
}
.rod_list .webgene-item > .rod_item{
  flex: 1;
}
@media (min-width:768px){
  .rod_list .webgene-blog{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 65px 50px;
  }
}

/* ==========================================================================
   製品詳細
   ========================================================================== */
.rod_detail{
  padding: 100px 0 100px;
}
.rod_detail .c_breadcrumb{
  margin-bottom: 35px;
}
.rod_detail_kicker{
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: 0.08em;
  color: var(--c-orange);
}
.rod_detail_head{
  margin-top: 14px;
  padding-bottom: 24px;
  border-bottom: 1px solid #fff;
}
.rod_detail_name{
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 26px;
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.rod_detail_model{
  margin-top: 10px;
  font-family: var(--f-outfit);
  font-weight: 300;
  font-size: 18px;
  line-height: 1.2;
  letter-spacing: 0.12em;
  white-space: nowrap;
  color: #aaa;
}
.rod_detail_photo{
  margin-top: 30px;
  background: #c9c7c3;
}
.rod_detail_photo:before{
  padding-top: 31.12%;
}
.rod_detail_photo img{
  object-fit: contain;
}
.rod_detail_lead{
  margin-top: 35px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.65;
  letter-spacing: 0.02em;
}
.rod_detail_txt{
  margin-top: 22px;
}
.rod_detail_txt > *{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
  color: #d7d7d7;
}
.rod_detail_txt > * + *{
  margin-top: 20px;
}
.rod_detail_shop{
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 475px;
  min-height: 60px;
  margin-top: 30px;
  padding: 14px 24px;
  background: var(--c-orange);
  color: #000;
}
.rod_detail_shop:after{
  content: "\2197";
  font-size: 16px;
  line-height: 1;
}
.rod_detail_shop p{
  font-weight: 500;
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0;
}
.rod_detail_shop:hover{
  background: #ffa822;
  color: #000;
}
.rod_detail_sec{
  margin-top: 65px;
}
.rod_detail_sec_body{
  margin-top: 30px;
}
/* スペック表（スマホは th・td を縦に並べて横幅いっぱい、768px以上は表組み） */
.rod_spec{
  border-top: 1px solid #555;
}
.rod_spec_th,
.rod_spec_td{
  padding: 12px 14px;
  border: 1px solid #555;
  border-top: none;
}
.rod_spec_th{
  padding-top: 8px;
  padding-bottom: 8px;
  background: #1b1b1b;
}
.rod_spec_td{
  background: #101010;
}
.rod_spec_th p,
.rod_spec_td p{
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0;
}
/* スペック表の下の注記 */
.rod_spec_note{
  margin-top: 16px;
}
.rod_spec_note > *{
  font-size: 12px;
  line-height: 1.8;
  letter-spacing: 0;
  color: #aaa;
}
.rod_spec_th p{
  font-weight: 500;
}
/* グリップ長・ベントカーブ */
.rod_detail_wideimg img{
  width: 100%;
}
/* 追加の画像セクション（予備項目6 から script.js で作る。元の文字は非表示） */
.rod_extra_src{
  display: none;
}
.rod_extra_txt{
  margin-top: 20px;
}
.rod_extra_txt > *{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
}
@media (min-width:768px){
  .rod_extra_txt{
    margin-top: 24px;
  }
  .rod_extra_txt > *{
    font-size: 16px;
    line-height: 2;
  }
}
/* 特徴 */
.rod_detail_list{
  display: grid;
  grid-template-columns: 1fr;
  gap: 45px;
}
.rod_detail_item{
  min-width: 0;
  padding-top: 22px;
  border-top: 1px solid #aaa;
}
.rod_detail_item_photo:before{
  padding-top: 75%;
}
.rod_detail_item_photo img{
  object-position: center 55%;
}
.rod_detail_item_ttl{
  margin-top: 22px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: 0.08em;
}
.rod_detail_item_txt{
  margin-top: 12px;
}
.rod_detail_item_txt > *{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
  color: #ccc;
}
.rod_detail_back{
  margin-top: 55px;
}
.rod_detail_back a{
  display: inline-flex;
  align-items: center;
  padding-bottom: 10px;
  border-bottom: 1px solid #666;
  color: #ccc;
}
.rod_detail_back a:before{
  content: "\2190";
  margin-right: 20px;
  font-size: 13px;
  line-height: 1;
}
.rod_detail_back a p{
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0;
}
.rod_detail_back a:hover{
  color: var(--c-orange);
}
@media (min-width:768px){
  .rod_detail{
    padding: 125px 0 200px;
  }
  .rod_detail .c_breadcrumb{
    margin-bottom: 65px;
  }
  .rod_detail_kicker{
    font-size: 18px;
  }
  .rod_detail_head{
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 18px;
    padding-bottom: 30px;
  }
  .rod_detail_name{
    flex: 1;
    margin-right: 30px;
    font-size: 38px;
  }
  .rod_detail_model{
    margin: 0 0 6px;
    font-size: 24px;
  }
  .rod_detail_photo{
    margin-top: 45px;
  }
  .rod_detail_lead{
    margin-top: 55px;
    font-size: 38px;
  }
  .rod_detail_txt{
    margin-top: 24px;
  }
  .rod_detail_txt > *{
    font-size: 16px;
    line-height: 2.1;
  }
  .rod_detail_shop{
    min-height: 64px;
    margin-top: 35px;
  }
  .rod_detail_sec{
    margin-top: 100px;
  }
  .rod_detail_sec_body{
    margin-top: 40px;
  }
  .rod_spec{
    display: table;
    width: 100%;
    border-top: none;
    border-collapse: collapse;
  }
  .rod_spec_tr{
    display: table-row;
  }
  .rod_spec_th,
  .rod_spec_td{
    display: table-cell;
    padding: 18px 25px;
    border: 1px solid #555;
    vertical-align: top;
  }
  .rod_spec_th{
    width: 35%;
  }
  .rod_spec_th p,
  .rod_spec_td p{
    font-size: 16px;
  }
  .rod_spec_note{
    margin-top: 20px;
  }
  .rod_spec_note > *{
    font-size: 13px;
  }
  .rod_detail_list{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 50px 32px;
  }
  .rod_detail_item_ttl{
    margin-top: 25px;
    font-size: 24px;
  }
  .rod_detail_item{
    padding-bottom: 20px;
  }
  .rod_detail_item_txt{
    margin-top: 20px;
  }
  .rod_detail_item_txt > *{
    line-height: 2.1;
  }
  .rod_detail_back{
    margin-top: 60px;
  }
}

/* ---------- 商品詳細をデータブロックで出すとき：未登録の項目は表示しない ---------- */
.rod_detail_sec_img:not(:has(img)),
.rod_detail_item:has(.rod_detail_item_ttl:empty),
.rod_detail_sec:has(.rod_detail_list):not(:has(.rod_detail_item_ttl:not(:empty))),
.rod_detail_lead:empty,
.rod_spec_tr:has(.rod_spec_td p:empty),
.rod_detail_shop[href=""]{
  display: none;
}
.rod_detail_item_photo:not(:has(img)){
  display: none;
}

/* ==========================================================================
   ユーザーレポート（一覧）
   ========================================================================== */
.report_main{
  padding: 55px 0 100px;
}
.report_intro_ttl{
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.report_intro_txt{
  margin-top: 16px;
}
.report_intro_txt p{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
  color: #ccc;
}
.report_post_btn{
  margin-top: 26px;
}
.report_post_btn a{
  display: block;
  position: relative;
  z-index: 1;
  max-width: 350px;
  padding: 0 55px 0 26px;
  background: var(--c-orange);
  border: 1px solid var(--c-orange);
  color: #111;
}
.report_post_btn a:after{
  content: "\2192";
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 20px;
  font-size: 24px;
  line-height: 1;
  transform: translateY(-50%);
}
.report_post_btn a p{
  font-weight: 500;
  font-size: 16px;
  line-height: 62px;
  letter-spacing: 0;
}
.report_post_btn a:hover{
  background: #fff;
  border-color: #fff;
  color: #111;
}
.report_list{
  margin-top: 40px;
  border-top: 1px solid #fff;
}
.report_row{
  display: grid;
  grid-template-columns: 1fr 25px;
  gap: 10px;
  padding: 24px 0;
  border-bottom: 1px solid #555;
  color: #fff;
}
.report_row:after{
  content: "\2197";
  grid-row: 2;
  grid-column: 2;
  align-self: center;
  font-size: 22px;
  line-height: 1;
  color: var(--c-orange);
}
.report_date{
  grid-column: 1 / -1;
  font-family: var(--f-outfit);
  font-weight: 400;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0;
  color: #bbb;
}
.report_body{
  min-width: 0;
}
.report_ttl{
  font-weight: 500;
  font-size: 17px;
  line-height: 1.7;
  letter-spacing: 0;
  transition: color 0.3s;
}
/* 説明文（釣行データの元の文字）は表示しない。script.js が .report_meta・.report_data_ に振り分ける */
.report_src{
  display: none;
}
.report_meta{
  display: grid;
  gap: 4px;
  margin-top: 12px;
}
.report_meta p{
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0;
  color: #bbb;
}
.report_row:hover{
  color: #fff;
}
.report_row:hover .report_ttl{
  color: var(--c-orange);
}
@media (min-width:768px){
  .report_main{
    padding: 90px 0 200px;
  }
  .report_intro{
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .report_intro_txtarea{
    flex: 1;
    margin-right: 40px;
  }
  .report_intro_ttl{
    font-size: 32px;
  }
  .report_intro_txt{
    margin-top: 20px;
  }
  .report_intro_txt p{
    font-size: 16px;
    line-height: 2;
  }
  .report_post_btn{
    flex-shrink: 0;
    width: 300px;
    margin-top: 0;
  }
  .report_post_btn a p{
    font-size: 17px;
    line-height: 66px;
  }
  .report_list{
    margin-top: 65px;
  }
  .report_row{
    grid-template-columns: 170px 1fr 30px;
    gap: 35px;
    padding: 35px 0;
  }
  .report_row:after{
    grid-row: 1;
    grid-column: 3;
    font-size: 24px;
  }
  .report_date{
    grid-column: auto;
    padding-top: 7px;
    font-size: 16px;
  }
  .report_ttl{
    font-size: 21px;
  }
  .report_meta{
    display: flex;
    flex-wrap: wrap;
    gap: 6px 28px;
    margin-top: 14px;
  }
  .report_meta p{
    font-size: 13px;
  }
}

/* ---------- 記事のページ送り（CMSが出力） ---------- */
.webgene-pagination{
  width: 100%;
  margin-top: 45px;
  grid-column: 1 / -1;
}
.webgene-pagination ul{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.webgene-pagination li a{
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  border: 1px solid #555;
  font-family: var(--f-outfit);
  font-size: 14px;
  line-height: 1;
}
.webgene-pagination li.selected a{
  background: var(--c-orange);
  border-color: var(--c-orange);
  color: #111;
}
.webgene-pagination li a:hover{
  border-color: var(--c-orange);
}
.news_list_archive .webgene-pagination li a{
  border-color: #ccc;
}
@media (min-width:768px){
  .webgene-pagination{
    margin-top: 60px;
  }
  .webgene-pagination ul{
    gap: 15px;
  }
  .webgene-pagination li a{
    min-width: 46px;
    height: 46px;
    font-size: 16px;
  }
}

/* ---------- フォームのあるセクション ---------- */
.c_form_sec{
  margin-top: 80px;
}
.c_form_lead{
  margin-top: 26px;
}
.c_form_lead p{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
}
.pg_dark .c_form_lead p{
  color: #ccc;
}
.report_note{
  margin-top: 30px;
  padding: 22px 20px;
  border: 1px solid #555;
  border-left: 4px solid var(--c-orange);
  background: #191919;
}
.report_note_ttl{
  font-weight: 500;
  font-size: 19px;
  line-height: 1.5;
  letter-spacing: 0;
  color: #fff;
}
.report_note_txt{
  margin-top: 14px;
}
.report_note_txt p{
  font-size: 13px;
  line-height: 1.875;
  letter-spacing: 0;
  color: #ddd;
}
.c_form{
  margin-top: 30px;
}
@media (min-width:768px){
  .c_form_sec{
    margin-top: 120px;
  }
  .c_form_lead{
    margin-top: 35px;
  }
  .c_form_lead p{
    font-size: 16px;
    line-height: 2;
  }
  .report_note{
    margin-top: 40px;
    padding: 30px 35px;
  }
  .report_note_ttl{
    font-size: 23px;
  }
  .report_note_txt{
    margin-top: 20px;
  }
  .report_note_txt p{
    font-size: 14px;
    line-height: 2;
  }
  .c_form{
    margin-top: 45px;
  }
}

/* ---------- フォーム（共通サンプルの構造） ---------- */
.formTbl{
  color: var(--c-txt);
}
.formTbl .container{
  max-width: none;
  padding: 0;
}
.formRow{
  margin: 0;
  border: 1px solid #a5a7a6;
  border-top: none;
  background: #fff;
}
.formRow:first-child{
  border-top: 1px solid #a5a7a6;
}
.formTh{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  align-content: flex-start;
  padding: 10px 14px;
  background: #eaeaea;
}
.formTh .labelText01{
  margin: 0;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.8125;
  letter-spacing: 0.04em;
}
.requiredText{
  flex-shrink: 0;
  width: 55px;
  margin: 2px 0 0 10px;
  border: 1px solid #b80000;
  background: #b80000;
  font-weight: 500;
  font-size: 13px;
  line-height: 26px;
  letter-spacing: 0.12em;
  text-align: center;
  color: #fff;
}
.requiredText.nini{
  background: #fff;
  color: #b80000;
}
.formTh_hint{
  flex-basis: 100%;
  margin-top: 8px;
}
.formTh_hint p{
  font-size: 13px;
  line-height: 1.8;
  letter-spacing: 0;
  color: #666;
}
.formTd{
  padding: 12px 14px 14px;
}
.formTbl .input,
.formTbl .select,
.formTbl .textarea{
  width: 100%;
  max-width: 100%;
  height: 42px;
  padding: 0 13px;
  border: 1px solid #c8c8c8;
  border-radius: 0;
  background: #fff;
  font-family: var(--f-ja);
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0.04em;
  color: var(--c-txt);
}
.formTbl .input::placeholder,
.formTbl .textarea::placeholder{
  font-weight: 400;
  color: #aaa;
}
.formTbl .textarea{
  display: block;
  height: 283px;
  padding: 10px 15px;
  line-height: 1.8;
}
.formTbl .input_s{
  max-width: 228px;
}
/* ラジオボタン */
.radioArea{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 25px;
  padding: 8px 0;
}
.radioArea > div{
  display: flex !important;
  align-items: center;
}
.radioArea .labelText02{
  margin: 0 0 0 8px;
  font-size: 14px;
  line-height: 1.6;
  cursor: pointer;
}
.formTbl .radio{
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  margin: 0;
  border: 1px solid #555;
  border-radius: 0;
  background: #fff;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}
.formTbl .radio:checked{
  background: var(--c-orange);
  box-shadow: inset 0 0 0 2px #fff;
}
/* 住所 */
.addArea{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.addArea + .addArea{
  margin-top: 12px;
}
.addArea .labelText02{
  width: 100%;
  margin: 0 0 5px;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.8;
  white-space: nowrap;
}
.addArea .zipcode_i{
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: 30px;
  height: 42px;
  margin: 0;
  border: 1px solid #c8c8c8;
  border-right: none;
  background: #d5d5d5;
}
.formTbl .addArea .zipInput{
  width: calc((100% - 57px) / 2);
}
.addArea .zipInput + .label{
  margin: 0 8px;
}
/* ファイル添付 */
.fileArea{
  display: flex;
  align-items: center;
}
.fileArea + .fileArea{
  margin-top: 10px;
}
.fileArea_num{
  flex-shrink: 0;
  width: 26px;
  font-family: var(--f-outfit);
  font-size: 16px;
  line-height: 1;
  color: #555;
}
.fileArea_box{
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
  padding: 4px 8px 4px 4px;
  border: 1px solid #c8c8c8;
  background: #fff;
}
.formTbl .fileInput{
  flex: 1;
  min-width: 0;
  height: auto;
  min-height: 42px;
  padding: 5px;
  border: none;
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0;
}
.fileArea_limit{
  flex-shrink: 0;
  margin-left: 8px;
  font-size: 12px;
  line-height: 1.5;
  white-space: nowrap;
  color: #666;
}
.fileArea_note{
  margin-top: 10px;
}
.fileArea_note p{
  font-size: 13px;
  line-height: 1.8;
  color: #666;
}
@media (min-width:768px){
  .formTh{
    flex: 0 0 28.15%;
    max-width: 28.15%;
    padding: 14px 13px 14px 22px;
  }
  .formTh .labelText01{
    font-size: 16px;
  }
  .formTh_hint{
    margin-top: 16px;
  }
  .formTd{
    flex: 0 0 71.85%;
    max-width: 71.85%;
    padding: 8px 15px;
  }
  .formTbl .input,
  .formTbl .select{
    width: 464px;
  }
  .formTbl .input_l{
    width: 100%;
  }
  .addArea{
    flex-wrap: nowrap;
  }
  .addArea + .addArea{
    margin-top: 7px;
  }
  .addArea .labelText02{
    flex: 0 0 76px;
    width: 76px;
    margin: 0;
  }
  .formTbl .addArea .zipInput{
    width: 160px;
  }
  .addArea .zipInput + .label{
    margin: 0 10px;
  }
  .formTbl .addArea .select{
    width: 228px;
  }
  .formTbl .addArea .input:not(.zipInput){
    width: 428px;
  }
  .radioArea .labelText02{
    font-size: 15px;
  }
}

/* ---------- 同意・送信 ---------- */
.formNote{
  margin-top: 25px;
}
.formNote p{
  font-weight: 500;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0;
  color: #c00000;
}
.formAgree{
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 40px;
}
.formAgree .checkbox{
  width: 20px;
  height: 20px;
  accent-color: var(--c-orange);
}
.formAgree .privacyLabel{
  margin: 0 0 0 14px;
  font-size: 14px;
  line-height: 1.6;
}
.formAgree .privacyLabel a{
  text-decoration: underline;
  text-underline-offset: 5px;
}
.formSendWrap{
  margin-top: 30px;
}
.formBtn.formSend{
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  padding: 0 60px 0 30px;
  border: 1px solid var(--c-orange);
  border-radius: 0;
  background: var(--c-orange);
  font-family: var(--f-ja);
  font-weight: 500;
  font-size: 16px;
  line-height: 66px;
  letter-spacing: 0;
  text-align: left;
  color: #111;
  cursor: pointer;
  transition: background-color 0.3s, border-color 0.3s;
}
.formBtn.formSend:after{
  content: "\2192";
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 30px;
  font-size: 18px;
  line-height: 1;
  transform: translateY(-50%);
}
.formBtn.formSend:hover{
  background: #ffad2e;
  border-color: #ffad2e;
}
@media (min-width:768px){
  .formNote{
    margin-top: 30px;
  }
  .formNote p{
    font-size: 16px;
  }
  .formAgree{
    margin-top: 45px;
  }
}

/* ---------- プライバシーポリシー ---------- */
.privacy_sec{
  margin-top: 80px;
}
.privacy_item_box{
  max-height: 500px;
  margin-top: 30px;
  padding: 25px 20px;
  border: 1px solid #a5a7a6;
  background: #fff;
  overflow-y: auto;
  color: #444;
}
.pg_dark .privacy_item_box{
  border-color: #555;
  background: #111;
  color: #ccc;
}
.privacy_item + .privacy_item{
  margin-top: 30px;
}
.privacy_ttl{
  font-weight: 500;
  font-size: 17px;
  line-height: 1.6;
  letter-spacing: 0;
  color: var(--c-txt);
}
.pg_dark .privacy_ttl{
  color: #fff;
}
.privacy_ttl + .privacy_txt{
  margin-top: 14px;
}
.privacy_txt p,
.privacy_txt li{
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0;
}
.privacy_txt * + p,
.privacy_txt * + ol,
.privacy_txt * + ul{
  margin-top: 12px;
}
.privacy_txt ol,
.privacy_txt ul{
  padding-left: 1.7em;
}
.privacy_txt ol li{
  list-style: decimal;
}
.privacy_txt ul li{
  list-style: disc;
}
.privacy_txt li{
  font-size: 13px;
  line-height: 1.9;
}
.privacy_txt a{
  color: #a96300;
  text-decoration: underline;
  overflow-wrap: anywhere;
}
.pg_dark .privacy_txt a{
  color: var(--c-orange);
}
.privacy_date{
  text-align: right;
}
@media (min-width:768px){
  .privacy_sec{
    margin-top: 150px;
  }
  .pg_dark .privacy_item_box{
    max-height: 560px;
  }
  .privacy_item_box{
    margin-top: 40px;
    padding: 35px 40px;
  }
  .privacy_ttl{
    font-size: 18px;
  }
  .privacy_txt p{
    font-size: 16px;
    line-height: 2.3;
  }
  .privacy_txt li{
    font-size: 14px;
    line-height: 2;
  }
}

/* ==========================================================================
   ユーザーレポート（詳細）
   ========================================================================== */
.report_detail{
  padding: 100px 0 100px;
}
.report_detail .c_breadcrumb{
  margin-bottom: 40px;
}
.report_detail_head{
  padding-bottom: 24px;
  border-bottom: 1px solid #fff;
}
.report_detail_kicker{
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.2;
  letter-spacing: 0.08em;
  color: var(--c-orange);
}
.report_detail_ttl{
  margin-top: 16px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.report_detail_meta{
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
  margin-top: 14px;
}
.report_detail_meta p{
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0;
  color: #bbb;
}
.report_detail_date{
  font-family: var(--f-outfit);
}
.report_detail_summary{
  margin-top: 30px;
}
/* 写真のスライド（Swiper の設定は script.js） */
.report_slider_main{
  position: relative;
  z-index: 1;
}
.report_slide{
  background: #1a1a1a;
}
.report_slide:before{
  padding-top: 103.4%;
}
.report_slide img{
  padding: 30px;
  object-fit: contain;
}
.report_slider_prev,
.report_slider_next{
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  z-index: 2;
  top: 50%;
  width: 40px;
  height: 40px;
  margin-top: -20px;
  border-radius: 50%;
  background: rgba(0,0,0,0.6);
  color: #fff;
  cursor: pointer;
  transition: background 0.3s;
}
.report_slider_prev{
  left: 10px;
}
.report_slider_next{
  right: 10px;
}
.report_slider_prev:before,
.report_slider_next:before{
  font-family: FontAwesome;
  font-size: 22px;
  line-height: 1;
}
.report_slider_prev:before{
  content: "\f104";
  margin-right: 2px;
}
.report_slider_next:before{
  content: "\f105";
  margin-left: 2px;
}
.report_slider_prev:hover,
.report_slider_next:hover{
  background: var(--c-orange);
}
.report_slider_prev.swiper-button-disabled,
.report_slider_next.swiper-button-disabled{
  opacity: 0.3;
  cursor: default;
}
.report_slider_thumbs{
  margin-top: 10px;
}
.report_thumb{
  border: 1px solid #222;
  background: #1a1a1a;
  cursor: pointer;
}
.report_thumb.swiper-slide-thumb-active{
  border-color: var(--c-orange);
}
/* 写真が1枚のときは矢印・サムネイルを出さない（is_single は script.js で付与） */
.report_gallery.is_single .report_slider_prev,
.report_gallery.is_single .report_slider_next,
.report_gallery.is_single .report_slider_thumbs{
  display: none;
}
/* Swiper を読み込むまでは1枚目だけ表示する */
.report_slider_main:not(.swiper-initialized) .report_slide + .report_slide{
  display: none;
}
.report_slider_thumbs:not(.swiper-initialized) .swiper-wrapper{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}
.report_slider_thumbs:not(.swiper-initialized) .report_thumb:not(:has(img)){
  display: none;
}
.report_data{
  margin-top: 40px;
}
.report_data_en{
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.2;
  letter-spacing: 0.08em;
  color: var(--c-orange);
}
.report_data_ttl{
  margin-top: 16px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.report_data_rows{
  display: table;
  width: 100%;
  margin-top: 24px;
  border-top: 1px solid #444;
}
.report_data_tr{
  display: table-row;
}
.report_data_th,
.report_data_td{
  display: table-cell;
  padding: 20px 0;
  border-bottom: 1px solid #444;
  vertical-align: top;
}
.report_data_th{
  width: 120px;
  padding-right: 15px;
}
.report_data_th p{
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0;
  color: #aaa;
}
.report_data_td p{
  font-weight: 500;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0;
}
.report_detail_body{
  margin-top: 45px;
}
.report_detail_body > *{
  font-weight: 500;
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
}
.report_detail_body > * + *{
  margin-top: 20px;
}
.report_detail .c_back_wrap{
  margin-top: 50px;
}
.report_detail .c_back{
  border-color: #555;
}
@media (min-width:768px){
  .report_detail{
    padding: 125px 0 200px;
  }
  .report_detail .c_breadcrumb{
    margin-bottom: 105px;
  }
  .report_detail_head{
    padding-bottom: 50px;
  }
  .report_detail_kicker{
    font-size: 21px;
  }
  .report_detail_ttl{
    margin-top: 22px;
    font-size: 40px;
  }
  .report_detail_meta{
    margin-top: 22px;
  }
  .report_detail_summary{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-top: 55px;
  }
  .report_gallery{
    width: 47.1%;
  }
  .report_data{
    width: 47.1%;
    margin-top: 0;
  }
  .report_data_en{
    font-size: 21px;
  }
  .report_data_ttl{
    margin-top: 18px;
    font-size: 28px;
  }
  .report_data_th,
  .report_data_td{
    padding: 24px 0 23px;
  }
  .report_data_rows{
    margin-top: 34px;
  }
  .report_data_th{
    width: 136px;
  }
  .report_detail_body{
    max-width: 830px;
    margin: 80px auto 0;
  }
  .report_detail_body > *{
    font-size: 16px;
    line-height: 2.4;
  }
  .report_detail_body > * + *{
    margin-top: 28px;
  }
  .report_detail .c_back_wrap{
    margin-top: 65px;
  }
}

/* ==========================================================================
   お知らせ（一覧・詳細）
   ========================================================================== */
.news_main{
  padding: 55px 0 100px;
}
.news_heading_ja{
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 26px;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.news_heading_en{
  margin-top: 10px;
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.2;
  letter-spacing: 0.12em;
}
.news_layout{
  margin-top: 35px;
}
.news_side{
  margin-top: 60px;
}
/* 一覧（お知らせページ）：スマホは1列のカード */
.news_list_archive{
  margin-top: 0;
}
.news_list_archive .webgene-blog{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 35px;
}
.news_list_archive .webgene-item{
  width: auto;
  min-width: 0;
}
.news_list_archive .webgene-item + .webgene-item{
  margin-top: 0;
}
.news_list_archive .news_link{
  display: block;
}
.news_list_archive .news_link .img{
  width: auto;
  background: #b3b3b3;
}
.news_list_archive .news_link .img:before{
  padding-top: 74.3%;
}
.news_list_archive .news_body{
  padding-left: 0;
}
.news_list_archive .news_meta{
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
}
.news_list_archive .news_date{
  font-size: 14px;
}
.news_list_archive .news_cate{
  min-width: 76px;
  font-size: 12px;
  line-height: 24px;
}
.news_list_archive .news_ttl{
  margin-top: 12px;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
}
.news_list_archive .news_link:hover{
  color: #a96300;
}
/* サイドの絞り込み */
.news_side_box + .news_side_box{
  margin-top: 30px;
}
.news_side_ttl{
  background: #000;
  font-weight: 500;
  font-size: 16px;
  line-height: 51px;
  letter-spacing: 0;
  text-align: center;
  color: #fff;
}
.news_side_list{
  margin-top: 17px;
}
.news_side_list .webgene-item a{
  display: inline-block;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.875;
  letter-spacing: 0;
}
.news_side_list .webgene-item a:before{
  content: "\25A0";
  margin-right: 1em;
}
.news_side_list .webgene-item a:hover,
.news_side_list .webgene-item a.on{
  color: #a96300;
}
/* 月別の絞り込み・スマホのカテゴリ（script.js でセレクトボックスにする） */
.archive_select,
.cate_select{
  position: relative;
  z-index: 1;
}
.archive_select:after,
.cate_select:after{
  content: "\f107";
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 16px;
  font-family: FontAwesome;
  font-size: 16px;
  line-height: 1;
  transform: translateY(-50%);
  pointer-events: none;
}
.archive_select select,
.cate_select select{
  display: block;
  width: 100%;
  height: 48px;
  padding: 0 40px 0 15px;
  border: 1px solid #aaa;
  border-radius: 0;
  background: #fff;
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0;
  color: #282828;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
}
/* スマホの一覧ページ：記事一覧の上のカテゴリ（768px以上は非表示。サイドのカテゴリはスマホでは非表示） */
.cate_select_sp{
  margin-bottom: 30px;
}
.cate_select_sp_ttl{
  margin-bottom: 15px;
  background: #000;
  font-weight: 500;
  font-size: 16px;
  line-height: 51px;
  letter-spacing: 0;
  text-align: center;
  color: #fff;
}
body:has(.cate_select_sp) .news_side_box:has(#wgc-side-category){
  display: none;
}
@media (min-width:768px){
  .cate_select_sp{
    display: none;
  }
  body:has(.cate_select_sp) .news_side_box:has(#wgc-side-category){
    display: block;
  }
}
/* 詳細 */
.news_detail_head{
  padding-bottom: 15px;
  border-bottom: 1px solid #aaa;
}
.news_detail_meta{
  display: flex;
  align-items: center;
}
.news_detail_meta .news_cate{
  min-width: 110px;
  font-size: 13px;
  line-height: 24px;
}
.news_detail_meta .news_date{
  margin-left: 15px;
}
.news_detail_ttl{
  margin-top: 14px;
  font-weight: 500;
  font-size: 19px;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.news_detail_photo{
  margin-top: 25px;
}
.news_detail_photo img{
  width: 100%;
  max-width: 600px;
}
/* 画像が登録されていない場合は枠ごと非表示 */
.news_detail_photo:not(:has(img)){
  display: none;
}
.news_detail_body{
  margin-top: 25px;
}
.news_detail_body p{
  font-size: 15px;
  line-height: 1.875;
  letter-spacing: 0;
}
@media (min-width:768px){
  .news_detail_body p{
    font-size: 16px;
  }
}
.news_detail_body p + p{
  margin-top: 20px;
}
.news_detail_body img{
  height: auto;
}
.post_pdf{
  margin-top: 30px;
}
.post_pdf a{
  display: inline-flex;
  align-items: center;
  padding-bottom: 6px;
  border-bottom: 2px solid var(--c-orange);
  font-weight: 500;
  font-size: 15px;
  line-height: 1.5;
}
.post_pdf a:before{
  content: "\f1c1";
  margin-right: 10px;
  font-family: FontAwesome;
  font-size: 18px;
  line-height: 1;
  color: #c00000;
}
.post_pdf:has(a[href=""]), .post_pdf:has(a:not([href])), .post_pdf a[href=""]{ display: none; }
.news_detail_bottom{
  margin-top: 50px;
  padding-top: 40px;
  border-top: 1px solid #282828;
}
@media (min-width:768px){
  .news_main{
    padding: 90px 0 200px;
  }
  .news_heading_ja{
    font-size: 34px;
  }
  .news_heading_en{
    margin-top: 14px;
    font-size: 21px;
  }
  .news_layout{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-top: 50px;
  }
  .pg_news_detail .news_layout{
    margin-top: 0;
  }
  .news_layout_main{
    width: 74.5%;
  }
  .news_side{
    width: 23.2%;
    margin-top: 0;
  }
  .news_side_box + .news_side_box{
    margin-top: 48px;
  }
  .news_side_box:first-child .news_side_list{
    min-height: 120px;
  }
  .news_side_list .webgene-item a{
    font-size: 16px;
  }
  .news_list_archive .webgene-blog{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 45px 24px;
  }
  .news_list_archive .news_meta{
    flex-wrap: nowrap;
  }
  .news_list_archive .news_cate{
    padding: 0 8px;
  }
  .news_list_archive .news_ttl{
    margin-top: 17px;
    font-size: 15px;
    line-height: 1.9;
  }
  .news_detail_meta .news_cate{
    min-width: 150px;
  }
  .news_detail_meta .news_date{
    margin-left: 24px;
    font-size: 15px;
  }
  .news_detail_ttl{
    font-size: 22px;
  }
  .news_detail_photo{
    margin-top: 40px;
  }
  .news_detail_body{
    margin-top: 35px;
  }
  .news_detail_body p{
    font-size: 16px;
    line-height: 2.2;
  }
  .news_detail_bottom{
    margin-top: 70px;
    padding-top: 55px;
  }
}

/* ==========================================================================
   会社概要（販売店・お問い合わせ・会社概要）
   ========================================================================== */
.company_main{
  padding: 55px 0 100px;
}
.company_sec + .company_sec{
  margin-top: 80px;
}
/* オンラインショップ */
.company_online{
  margin-bottom: 60px;
  padding: 30px 20px;
  background: #111;
  color: #fff;
}
.company_online_photo:before{
  padding-top: 59%;
}
.company_online_txtarea{
  margin-top: 25px;
}
.company_online_en{
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.2;
  letter-spacing: 0.12em;
  color: var(--c-orange);
}
.company_online_ttl{
  margin-top: 16px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
.company_online_txt{
  margin-top: 14px;
}
.company_online_txt p{
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0;
}
.company_online_btn{
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 22px;
  padding: 18px 25px;
  background: var(--c-orange);
  color: #111;
}
.company_online_btn:after{
  content: "\2197";
  font-size: 15px;
  line-height: 1;
}
.company_online_btn p{
  font-weight: 500;
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0;
}
.company_online_btn:hover{
  background: #ffad2e;
  color: #111;
}
/* 取扱店舗 */
.company_lead{
  margin-top: 26px;
}
.company_lead p{
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0;
}
.dealer_list{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px 15px;
  margin-top: 30px;
}
.dealer_item{
  min-width: 0;
  padding-bottom: 20px;
  border-bottom: 1px solid #aaa;
}
.dealer_photo{
  background: #f4f4f4;
}
.dealer_photo:before{
  padding-top: 57.1%;
}
.dealer_photo img{
  object-fit: contain;
}
.dealer_name{
  margin-top: 16px;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0;
}
.dealer_address{
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.8;
  letter-spacing: 0;
}
.dealer_link{
  margin-top: 12px;
}
.dealer_link a{
  font-size: 12px;
  line-height: 1.6;
  text-decoration: underline;
  text-underline-offset: 5px;
}
.dealer_link a:after{
  content: " \2197";
}
.dealer_link_txt,
.cp_map_link_txt{
  display: inline;
}
.dealer_link a:hover{
  color: #a96300;
}
/* テスター紹介 */
.tester_list{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  margin-top: 30px;
}
.tester_item{
  display: flex;
  background: #111;
  color: #fff;
}
.tester_photo{
  flex-shrink: 0;
  width: 36%;
}
.tester_photo:before{
  padding-top: 133.33%;
}
.tester_body{
  flex: 1;
  min-width: 0;
  padding: 16px 15px 18px;
}
.tester_label{
  display: inline-block;
  padding: 4px 8px 3px;
  background: var(--c-orange);
  color: #111;
  font-family: var(--f-cardo);
  font-size: 11px;
  line-height: 1.2;
  letter-spacing: 0.1em;
}
.tester_name{
  margin-top: 12px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.4;
  letter-spacing: 0.1em;
}
.tester_profile{
  margin-top: 6px;
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0;
  color: #aaa;
}
.tester_txt{
  margin-top: 10px;
}
.tester_txt > *{
  font-size: 13px;
  line-height: 1.875;
  letter-spacing: 0;
}
.tester_sns{
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin-top: 14px;
}
.tester_sns_link{
  display: flex;
  align-items: center;
  color: #fff;
}
.tester_sns_link i{
  margin-right: 6px;
  font-size: 16px;
  color: var(--c-orange);
}
.tester_sns_txt{
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.tester_sns_link:hover{
  color: var(--c-orange);
}
/* アフターサービス */
.after_box{
  margin-top: 30px;
  padding: 24px 18px 28px;
  border: 1px solid #a5a7a6;
}
.after_box_ttl{
  padding-bottom: 14px;
  border-bottom: 1px solid #a5a7a6;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
.after_item{
  margin-top: 24px;
}
.after_item_ttl{
  padding-left: 12px;
  border-left: 3px solid var(--c-orange);
  font-weight: 500;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.04em;
}
.after_item_txt{
  margin-top: 10px;
}
.after_item_txt > *{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
}
.after_item_txt > * + *{
  margin-top: 6px;
}
.after_item_txt > .after_note{
  font-size: 13px;
  color: #666;
}
.after_item_txt > .after_dot{
  position: relative;
  z-index: 1;
  padding-left: 1.1em;
}
.after_item_txt > .after_dot:before{
  content: "・";
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
}
.after_item_txt > .after_dot + .after_dot{
  margin-top: 2px;
}
.after_contact{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 15px;
  margin-top: 30px;
}
.after_contact_item{
  padding: 24px 20px 28px;
  background: #111;
  color: #fff;
}
.after_contact_en{
  font-family: var(--f-cardo);
  font-weight: 400;
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 0.12em;
  color: var(--c-orange);
}
.after_contact_ttl{
  margin-top: 10px;
  font-family: var(--f-mincho);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
.after_contact_txt{
  margin-top: 10px;
}
.after_contact_txt > *{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
}
.after_contact_tel{
  display: inline-flex;
  align-items: center;
  margin-top: 14px;
  color: #fff;
}
.after_contact_tel i{
  margin-right: 8px;
  font-size: 18px;
  color: var(--c-orange);
}
.after_contact_tel_txt{
  font-family: var(--f-outfit);
  font-weight: 400;
  font-size: 22px;
  line-height: 1;
  letter-spacing: 0.04em;
}
.after_contact_tel:hover{
  color: var(--c-orange);
}
.after_contact_btn{
  margin-top: 18px;
}
/* ユーザー登録の案内 */
.reg_note{
  margin-top: 24px;
  padding: 20px 18px;
  background: #f4f4f4;
}
.reg_note_ttl{
  font-weight: 500;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.04em;
}
.reg_note_txt{
  margin-top: 8px;
}
.reg_note_txt > *{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
}
.reg_note_txt > * + *{
  margin-top: 6px;
}
/* 会社概要の表 */
/* スマホは th・td を縦に並べて横幅いっぱいにする（768px以上は表組み） */
.company_table{
  margin-top: 30px;
  border-top: 1px solid #a5a7a6;
}
.company_table_th,
.company_table_td{
  padding: 12px 15px;
  border: 1px solid #a5a7a6;
  border-top: none;
}
.company_table_th{
  padding-top: 8px;
  padding-bottom: 8px;
  background: #eaeaea;
}
.company_table_th p,
.company_table_td p{
  font-weight: 500;
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0.04em;
}
.company_table_td a{
  text-decoration: underline;
  text-underline-offset: 5px;
}
.cp_map{
  margin-top: 35px;
}
.cp_map iframe{
  display: block;
  width: 100%;
  height: 360px;
  border: none;
}
.cp_map_link{
  margin-top: 16px;
  text-align: right;
}
.cp_map_link a{
  font-size: 13px;
  line-height: 1.6;
  text-decoration: underline;
  text-underline-offset: 5px;
}
.cp_map_link a:after{
  content: " \2197";
}
@media (min-width:768px){
  .company_main{
    padding: 90px 0 200px;
  }
  .company_sec + .company_sec{
    margin-top: 100px;
  }
  .company_sec + .company_sec_l{
    margin-top: 200px;
  }
  .company_online{
    display: flex;
    align-items: center;
    margin-bottom: 70px;
    padding: 50px;
  }
  .company_online_photo{
    flex-shrink: 0;
    width: 48%;
  }
  .company_online_photo:before{
    padding-top: 54%;
  }
  .company_online_txtarea{
    flex: 1;
    margin: 0 0 0 50px;
  }
  .company_online_en{
    font-size: 21px;
  }
  .company_online_ttl{
    margin-top: 20px;
    font-size: 30px;
  }
  .company_online_txt{
    margin-top: 20px;
  }
  .company_online_txt p{
    font-size: 16px;
  }
  .company_online_btn{
    margin-top: 25px;
    padding: 20px 25px;
  }
  .company_lead{
    margin-top: 35px;
  }
  .company_lead p{
    font-size: 16px;
  }
  .dealer_list{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 45px 30px;
    margin-top: 35px;
  }
  .dealer_item{
    padding-bottom: 25px;
  }
  .dealer_name{
    margin-top: 22px;
    font-size: 18px;
  }
  .dealer_address{
    min-height: 54px;
    margin-top: 16px;
    font-size: 14px;
    line-height: 1.9;
  }
  .dealer_link{
    margin-top: 15px;
  }
  .dealer_link a{
    font-size: 13px;
  }
  .tester_list{
    gap: 30px;
    margin-top: 35px;
  }
  .tester_photo{
    width: 34%;
  }
  .tester_body{
    padding: 24px 22px 26px;
  }
  .tester_name{
    margin-top: 14px;
    font-size: 24px;
  }
  .tester_profile{
    font-size: 12px;
  }
  .tester_txt{
    margin-top: 14px;
  }
  .tester_txt > *{
    font-size: 14px;
  }
  .tester_sns{
    margin-top: 18px;
  }
  .after_box{
    margin-top: 40px;
    padding: 40px 50px 46px;
  }
  .after_box_ttl{
    padding-bottom: 18px;
    font-size: 24px;
  }
  .after_item{
    margin-top: 30px;
  }
  .after_item_ttl{
    font-size: 17px;
  }
  .after_item_txt{
    padding-left: 15px;
  }
  .after_item_txt > *{
    font-size: 16px;
  }
  .after_item_txt > .after_note{
    font-size: 14px;
  }
  .after_contact{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
    margin-top: 40px;
  }
  .after_contact_item{
    padding: 36px 40px 40px;
  }
  .after_contact_en{
    font-size: 16px;
  }
  .after_contact_ttl{
    font-size: 24px;
  }
  .after_contact_txt > *{
    font-size: 16px;
  }
  .after_contact_tel_txt{
    font-size: 26px;
  }
  .after_contact_btn{
    margin-top: 22px;
  }
  .reg_note{
    margin-top: 30px;
    padding: 28px 32px;
  }
  .reg_note_ttl{
    font-size: 16px;
  }
  .reg_note_txt > *{
    font-size: 16px;
  }
  .company_table{
    display: table;
    width: 100%;
    margin-top: 40px;
    border-top: none;
    border-collapse: collapse;
  }
  .company_table_tr{
    display: table-row;
  }
  .company_table_th,
  .company_table_td{
    display: table-cell;
    padding: 20px;
    border: 1px solid #a5a7a6;
    vertical-align: top;
  }
  .company_table_th{
    width: 25.8%;
    border-right: none;
  }
  .company_table_td{
    padding-left: 38px;
    border-left: none;
  }
  .company_table_th p,
  .company_table_td p{
    font-size: 16px;
  }
  .cp_map{
    margin-top: 45px;
  }
  .cp_map iframe{
    height: 450px;
  }
  .cp_map_link{
    margin-top: 20px;
  }
}

@media (min-width:1024px){
  .tester_list{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .tester_photo{
    width: 40%;
  }
}

/* ==========================================================================
   管理画面（ビルダー）での表示
   ========================================================================== */
/* 開閉するメニューは開いた状態で、その場に展開する */
.gjs-dashed .gnav{
  position: relative;
  height: auto;
  opacity: 1;
  visibility: visible;
}

/* ==========================================================================
   フォーム送信完了（thanks_report / thanks_registration / thanks_contact）
   ========================================================================== */
.thanks_main{
  padding: 70px 0 90px;
  text-align: center;
}
.thanks_ttl{
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.thanks_txt{
  margin-top: 30px;
  text-align: left;
}
.thanks_txt > *{
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0.05em;
}
.thanks_btn{
  margin-top: 45px;
}
.thanks_btn .c_btn{
  margin: 0 auto;
}
@media (min-width:768px){
  .thanks_main{
    padding: 110px 0 140px;
  }
  .thanks_ttl{
    font-size: 28px;
  }
  .thanks_txt{
    margin-top: 40px;
    text-align: center;
  }
  .thanks_txt > *{
    font-size: 16px;
    line-height: 2;
  }
  .thanks_btn{
    margin-top: 60px;
  }
}

/* ==========================================================================
   翻訳中のページ（translate.goog）：フォームの代わりに出す案内（script.js で作る）
   ========================================================================== */
.lang_form_note{
  margin-top: 30px;
  padding: 30px 20px;
  border: 1px solid #aaa;
  text-align: center;
}
.lang_form_note_txt{
  font-weight: 500;
  font-size: 14px;
  line-height: 1.875;
  letter-spacing: 0;
}
.lang_form_note_btn{
  margin-top: 20px;
}
/* 翻訳で文字が長くなっても収まるよう、幅は文字に合わせ、折り返しても行間を詰める */
.lang_form_note_btn .c_btn{
  display: inline-block;
  width: auto;
  max-width: 100%;
  padding: 14px 50px 14px 24px;
  text-align: left;
}
.lang_form_note_btn .c_btn p{
  line-height: 1.5;
}
@media (min-width:768px){
  .lang_form_note{
    padding: 40px;
  }
  .lang_form_note_txt{
    font-size: 16px;
  }
}

/* 翻訳中のページ（translate.goog）：上に出る Google翻訳のバーを隠し、その分の余白も消す */
#gt-nvframe{
  display: none !important;
}
body:has(> #gt-nvframe){
  margin-top: 0 !important;
}

/* FontAwesome 4.7.0 のフォントを CDN からも読み込む（翻訳ページ translate.goog では、CMSの
   /plugins/font-awesome/ のフォントがドメイン違いで読み込めずアイコンが□になるため。同じフォントなので通常のページの見た目は変わらない） */
@font-face{
  font-family: 'FontAwesome';
  src: url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),
       url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}
