@charset "utf-8";

/* 共通トークン */
:root{
  --acc:#1e4ea8;      /* アクセント（サイトの青） */
  --acc2:#60a5fa;     /* 明るい青 */
  --ink:#0f172a;      /* 文字色 */
  --line:#e5e7eb;     /* ライン色 */
}

/* ベース（既存 ti-d をリセットして土台に） */
.ti-d{
  margin:48px 0 24px;
  font:700 clamp(18px,2.2vw,22px)/1.25 "Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;
  color:var(--ink);
  text-align:center;
  position:relative;
}

/* ================================
   A) ピル（カプセル）見出し ✦モダン
   ================================ */
.h2-pill{
  display:inline-block;
  padding:10px 20px;
  border-radius:999px;
  background:
    radial-gradient(120% 220% at 0% 0%, rgba(255,255,255,.9), rgba(255,255,255,.6)),
    linear-gradient(180deg, #ffffff, #f3f8ff);
  box-shadow: 0 8px 24px rgba(2,6,23,.08), inset 0 1px 0 rgba(255,255,255,.6);
  border:1px solid #dbe6ff;
}
.h2-pill::after{
  content:"";
  display:block;
  height:2px; width:120px;
  margin:10px auto 0;
  background: linear-gradient(90deg, var(--acc) 0%, var(--acc2) 60%, rgba(96,165,250,0) 100%);
  border-radius:2px;
}

/* =================================
   B) リボン（左寄せアクセント）✦上品
   ================================= */
.h2-ribbon{
  text-align:left;
  padding-left:16px;
}
.h2-ribbon::before{
  content:"";
  position:absolute;
  left:0; top:50%;
  transform:translateY(-50%);
  width:8px; height:28px;
  border-radius:6px;
  background: linear-gradient(180deg, var(--acc), var(--acc2));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.5);
}
.h2-ribbon::after{
  content:"";
  display:block;
  height:1px; margin:10px 0 0;
  background: linear-gradient(90deg, var(--acc), rgba(30,78,168,0));
}

/* ========================================
   C) スプリット（線が文字を貫く）✦ミニマル
   ======================================== */
.h2-split{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
  gap:14px;
}
.h2-split::before,
.h2-split::after{
  content:"";
  height:1px; background:linear-gradient(90deg, transparent, var(--line));
}
.h2-split::after{
  background:linear-gradient(90deg, var(--line), transparent);
}

/* レスポンシブ微調整 */
@media (max-width:768px){
  .ti-d{ margin:36px 0 18px; }
  .h2-ribbon{ padding-left:14px; }
}

.kv-card .kv-img{
  aspect-ratio: 4/3;      /* 全画像の枠サイズを揃える */
  overflow: hidden;
  border-radius: 10px;
}
.kv-card .kv-img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 写真ごとに微調整 */
.pos-fish   { object-position: 0 -73px; }  /* 中央から上に40pxずらす */
.pos-boat   { object-position: 0 0; }  /* 中央から下に20pxずらす */
.pos-market { object-position: 0 0; }  /* 横を少し左、縦を上に10px */

/* スコープ */
.tawaramono_area{
  --accent:#1e4ea8;
  --border:#e5e7eb;
  --shadow:0 8px 24px rgba(0,0,0,.06);
  padding: 20px 0 80px;
  background:#fff; /* 背景柄をやめて白基調にする場合 */
}
.tawaramono_area .container{
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 16px;
}



/* H2（/aboutと統一：中央＋小さな波＋下線） */
.tawaramono_area .ti-d{
  position:relative;
  text-align:center;
  margin:56px 0 18px;
  font-size: clamp(18px,2.2vw,22px);
  font-weight:700;
  color:#0f172a;
}
.tawaramono_area .ti-d::before{
  content:"";
  display:block;
  width:60px;height:18px;margin:0 auto 6px;
  background:url("/bd/images/ti-b.png") no-repeat center/contain;
  opacity:.9;
}
.tawaramono_area .ti-d::after{
  content:"";display:block;width:80px;height:2px;margin:8px auto 0;
  background:linear-gradient(90deg,var(--accent),rgba(30,78,168,0));
  border-radius:2px;
}

/* リード文カード */
.tawaramono_area .lead-card{
  background:#f8fbff;border:1px solid #e6eefc;border-left:4px solid var(--accent);
  border-radius:12px;padding:16px 18px; box-shadow:var(--shadow);
}

/* 画像×本文カード */
.tawaramono_area .kv-card{
  display:grid; grid-template-columns: 1.1fr 1fr; gap:28px; align-items:center;
  background:#fff; border:1px solid var(--border); border-radius:14px;
  padding:18px; margin:28px 0; box-shadow:var(--shadow);
}
.tawaramono_area .kv-card.is-reverse{ grid-template-columns: 1fr 1.1fr; }
.tawaramono_area .kv-card.is-reverse .kv-img{ order:2; }
.tawaramono_area .kv-card.is-reverse .kv-body{ order:1; }

.tawaramono_area .kv-img img{
  width:100%; height:auto; border-radius:10px; display:block;
}

.tawaramono_area .kv-body h3{
  font-size: clamp(18px,2vw,20px); margin:0 0 8px; font-weight:800;
}
.tawaramono_area .kv-body p{ margin:0 0 10px; line-height:1.9; }

/* CTAボタン（/aboutの雰囲気と揃える） */
.tawaramono_area .btn-primary{
  display:inline-block; padding:12px 24px; border:1px solid #0f172a;
  color:#0f172a; text-decoration:none; border-radius:10px; transition:.25s;
}
.tawaramono_area .btn-primary:hover{ background:#0f172a; color:#fff; }
.tawaramono_area .center{ text-align:center; }
.tawaramono_area .mt-l{ margin-top:40px; }

/* スマホ */
@media (max-width: 768px){
  .tawaramono_area .kv-card,
  .tawaramono_area .kv-card.is-reverse{
    grid-template-columns: 1fr;
  }
}

.gri6530{
  display:grid;
  grid-template-columns: 2fr 1fr;
  gap:5%;
  align-items:start;
  margin-bottom: 32px;
}

.gri6530 > p{
  margin:0;
  line-height:1.9;
}

.gri6530 > div{
  text-align:center;
}

.gri6530 > div img{
  max-width:240px;
  width:100%;
  height:auto;
  border-radius:8px;
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  margin-bottom:8px;
}

.gri6530 > div p{
  font-size:14px;
  color:#444;
  margin:0;
  line-height:1.6;
}

/* スマホ時は縦並び */
@media (max-width:768px){
  .gri6530{
    grid-template-columns:1fr;
    gap:20px;
  }
  .gri6530 > div img{ max-width:200px; }
}

/* ===== /about 用の装飾（タイトル以外） ===== */
.about_area .box01 .in2{
  --accent:#1e4ea8;      /* サイトの青に寄せたアクセント */
  --border:#e5e7eb;
  --muted:#64748b;

  max-width: 960px;
  margin: 0 auto;
  padding: 24px 16px 80px;
  line-height: 2;
  color:#0f172a;
}

/* 見出し直下の段落を読みやすい淡色カードに */
.about_area .box01 .in2 h2.ti-d + p{
  background:#f8fbff;
  border:1px solid #e6eefc;
  border-left:4px solid var(--accent);
  border-radius:12px;
  padding:16px 18px;
  margin-top: 8px;
}
/* 内部の改行調整（PCのみ br を活かしたい場合） */
@media (max-width: 768px){
  .about_area .box01 .in2 .sp_off{ display:none; }
}

/* 法人概要の表：.table.table-bordered を上書き */
.about_area .box01 .in2 table.table.table-bordered{
  width:100%;
  border-collapse: separate;
  border-spacing:0;
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  box-shadow: 0 6px 20px rgba(0,0,0,.04);
  margin-top: 12px;
}

/* 旧 <font size> を無効化して基準に揃える */
.about_area .box01 .in2 table.table.table-bordered font[size]{
  font-size: inherit !important;
}

/* セル */
.about_area .box01 .in2 table.table.table-bordered th,
.about_area .box01 .in2 table.table.table-bordered td{
  padding:12px 14px;
  border-bottom:1px solid var(--border);
  vertical-align: top;
  line-height: 1.9;
}
.about_area .box01 .in2 table.table.table-bordered th{
  width:11em;              /* 見出し列の幅 */
  background:#f9fafb;
  font-weight:700;
  color:#0f172a;
}
.about_area .box01 .in2 table.table.table-bordered tr:last-child th,
.about_area .box01 .in2 table.table.table-bordered tr:last-child td{
  border-bottom:none;
}

/* アクセス（Google Map）カード化 */
.about_area .box01 .in2 iframe{
  display:block;
  width:100% !important;
  height: clamp(280px, 56vw, 520px) !important; /* 16:9相当で自動調整 */
  border:1px solid var(--border) !important;
  border-radius:12px;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
  margin-top: 10px;
}

/* 段落の補足テキスト */
.about_area .box01 .in2 p small{ color:var(--muted); }

/* セクション区切りを使うなら（任意） */
.about_area .box01 .in2 hr{
  border:0; height:1px;
  width:min(720px,80%);
  margin:48px auto;
  background: linear-gradient(90deg, rgba(30,78,168,.25), rgba(30,78,168,0));
}

/* スマホの余白最適化 */
@media (max-width:560px){
  .about_area .box01 .in2{ padding: 12px 14px 64px; }
  .about_area .box01 .in2 h2.ti-d{ margin: 44px 0 12px; }
}

.gri21 .ti-a {
    text-align: left;
    margin-top: 0;
    margin-bottom:30px;
}

.gri21 {
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-column-gap: 4%;
    margin-bottom: 30px;
}

.ti-c {
  position: relative;
  text-align: center;
    margin: 40px auto 60px;
    color: #000000;
    font-size: 160%;
    font-weight: bold;
    font-family: 'Playfair Display', 游明朝, "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    line-height: 1.6em;
    letter-spacing: 0.02em;
}

.ti-c::before {
  content: "";
  display: block;
  width: 70px;
    height: 36px;
  margin: 0 auto 8px;         /* 中央寄せ＆下に余白 */
  background: url("../images/ti-c.png") no-repeat center/contain;
}

.ti-b {
  position: relative;
  text-align: center;
    margin: 40px auto 60px;
    color: #000000;
    font-size: 160%;
    font-weight: bold;
    font-family: 'Playfair Display', 游明朝, "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    line-height: 1.6em;
    letter-spacing: 0.02em;
}

.ti-b::before {
  content: "";
  display: block;
  width: 60px;                /* 飾り画像の幅 */
  height: 20px;               /* 飾り画像の高さ */
  margin: 0 auto 8px;         /* 中央寄せ＆下に余白 */
  background: url("../images/ti-b.png") no-repeat center/contain;
}

.site-banner {
    display: block;
    text-align: center;
}

.bl02 h3 {
    margin-bottom: 15px;
}

.bl02 .di02 {
    width: 85%;
    margin-bottom: 20px;
}

.bl02 .di01 {
    width: 15%;
    margin-bottom: 20px;
}

.top_area .bl02 {
    background-color: #efefef;
    padding: 60px 0 50px;
    margin-bottom: 0;
}

.top_area .box01 .in7 {
    background:url(../images/bg01.jpg) no-repeat ;
    background-position-x: center;
}


.top_area .gri03 dd {
    font-family: 'Playfair Display', 游明朝, "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    text-align: center;
}

.parent {
    border-right: 1px solid #c6c6c6;
    padding-right: 15px;
}

.bu-a {
  text-align: center; /* 中央寄せ */
  margin: 40px 0 60px;
}

.btn {
  display: inline-block;
  padding: 12px 40px;
  border: 1px solid #000;  /* 枠線 */
  color: #000;
  text-decoration: none;
  font-size: 16px;
  font-weight: 500;
  position: relative;
  transition: all 0.3s ease;
}

/* 矢印を疑似要素で追加 */
.btn::after {
  content: "＞";
  font-size: 16px;
  margin-left: 12px;
  position: relative;
  top: -1px;
}

/* ホバー時の効果 */
.btn:hover {
  background: #000;
  color: #fff;
}

.bu-a dd {
    text-align: center; 
    align-items: center;
	width: 250px;
    display: grid;
}

.bg-blue {
    background-color: #53BFE5;
    width: 35%;
    text-align: center;
    align-self: center;
    font-size: 110%;
    font-weight: bold;
    margin-right: 5%;
    padding: 10px 0;
    margin-bottom: 30px;
}

footer ul li {
    list-style: none;
    text-align: left;
}

#gNav .parent .child a {
    color: #000;
	text-align: left;
    font-size: 110%;
    font-weight: bold;
}

.right {
    text-align: right;
}

.tbJ table tr:first-of-type {
	background-color: #EEEBE0;
}

.tbJ table tr td:first-of-type {
    border-right: 2px solid #DCDAD4;
	border-bottom: 2px solid #DCDAD4;
	width: 130px;
	text-align: center;
}

.tbJ table tr td:nth-last-of-type(2) {
    border-right: 2px solid #DCDAD4;
	border-bottom: 2px solid #DCDAD4;
	width: 130px;
	text-align: center;
}

.tbJ table tr td:nth-last-of-type(3) {
    border-right: 2px solid #DCDAD4;
	border-bottom: 2px solid #DCDAD4;
	width: 130px;
	text-align: center;
}

.tbJ table tr td:last-of-type {
	border-bottom: 2px solid #DCDAD4;
	width: 130px;
	text-align: center;
}

.tbJ table {
    border: 2px solid #DCDAD4;
}

.fle6035 {
    display: flex;
    align-items: center;
	margin-bottom: 15px;
}

.fle6035 dl:first-of-type {
    width: 60%;
	margin-right: 5%;
}

.fle6035 dl:last-of-type {
    width: 35%;
}

.fle3560 {
    display: flex;
    align-items: center;
	margin-bottom: 15px;
}

.fle3560 dl:first-of-type {
    width: 35%;
	margin-right: 5%;
}

.fle3560 dl:last-of-type {
    width: 60%;
}

.list02 {
    margin: 50px 0;
}

.list02 li {
    list-style: none;
}

footer.pc a {
    color: #fff;
}

footer.pc {
    background-color: #003893;
    padding: 30px 0 15px;
    color: #fff;
}

.buB {
    margin: 20px 0 30px;
	display: inherit;
    flex-wrap: wrap;
    justify-content: initial;
    width: 100%;
}

.buB a {
    color: #fff;
    background-color: #000;
    padding: 10px 60px 10px;
    display: inline-block;
	width: initial;
    margin-right: 0;
    border: initial;
    text-decoration: none;
    box-sizing: border-box;
}

.top_area .bl01 {
    padding: 15px 0 30px;
}

.buA {
    text-align: center;
    margin: 15px 0 30px;
}

.buA a {
    color: #000;
    background-color: initial;
    padding: 10px 10px 5px;
    display: inline-block;
    border: none;
    border-bottom: 2px solid #000;
}

.bl02 .di01 {
    border-bottom: 1px solid #000;
}

.bl02 .di02 {
    border-bottom: 1px solid #000;
}

/*--------------------*
ヘッダー
*-------------------*/

ul#gNav .parent .child {
    list-style: none;
}

@media screen and (max-width: 768px) {
 header {
      display: none;
      float: none; 
} 
}
header a#logo {
    margin-right: auto; 
}
header ul#gNav {
    list-style: none; 
}

header ul#gNav li {
    font-size: 90%;
    font-weight: bold;
    letter-spacing: 0.1em;
}

header ul#gNav li span {
    letter-spacing: 0.15em;
    font-size: 85%;
    color: #777;
}

header ul#gNav li.parent {
    display: inline-block;
    margin-right: 15px;
    position: relative;
}

header ul#gNav li.parent a {
    text-decoration: none;
	color: #fff;
    text-align: center;
    display: block;
}

header ul#gNav li.parent a span {
    text-align: center;
    display: block;
    margin-bottom: -5px;
}

header ul#gNav li.parent > ul.child, 
header ul#gNav li.parent > div.child {
        position: absolute;
        top: 50px;
        left: 0;
        min-width: 200px;
        text-align: left;
        background: #fff;
        padding: 20px;
		  margin-left: 0;
}

header ul#gNav li.parent > ul.child.col2 {
	column-count: 2;
    column-gap: 40px; 
}

header ul#gNav li.parent > ul.child li {
    white-space: nowrap;
    ont-size: 15px;
    height: 40px;
    line-height: 40px; 
}

header img#telnum {
    width: 170px;
    height: 66px; 
}

header#sp_header {
    background: none;
    padding: 5px 0 0 10px; 
}

header#sp_header img {
    height: 50px; 
}

header ul#gNav li.parent-contact {
	font-size:17px;
	display: inline-block;
}

header ul#gNav li.parent-contact a {
	background: #FEFF03;
	color: #000;
	display: block;
	border-radius: 20px;
	height: 40px;
	line-height: 40px;
	padding: 0 20px;
	box-shadow: 0 2px 0 #EC9421;
	transition: box-shadow position 0.5s;
	position: relative;
	top:0;
}

header ul#gNav li.parent-contact a:hover {
	box-shadow: none;
	top:2px;
}



/* -----------------------------------title-- */

.ti-a {
    text-align: center;
    margin: 40px auto 40px;
    color: #000000;
    font-size: 160%;
    font-weight: bold;
    font-family: 'Playfair Display', 游明朝, "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    line-height: 1.6em;
    letter-spacing: 0.02em;
}

/* -----------------------------------p-- */

p.p-a {
    font-size: 100%;
    line-height: initial;
    letter-spacing: initial;
    margin-bottom: 40px;
    text-align: center;
}

/*  -PCend-  */


/* ---------------------------------------------------------------------
    レスポンシブ 1440px
--------------------------------------------------------------------- */
@media screen and (max-width:1440px){

}

/* ---------------------------------------------------------------------
    レスポンシブ 1200
--------------------------------------------------------------------- */
@media screen and (max-width:1200px){

.main-text {
        min-height: 370px;
}

.main-contents {
            padding-top: 76px;
        }

.h01 .logo {
    width: 300px;
    margin-top: 10px;
    margin-left: 10px;
}

.globalMenuSp span {
    padding-right: 20px;
    color: #CCC;
}

.humburger_wrapper {
    border-radius: 10px;
    padding: 2px;
}
	
.humburger span.humburger_bar {
    left: 0;
    top: 0;
    background: #fff;
}
.humburger span.humburger_bar {
    display: block;
    width: 100%;
    margin: 10px auto 9px;
    height: 2px;
    background: #fff
    -webkit-transition: all .2s ease-in-out;
    -o-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out;
}
	
.humburger {
    cursor: pointer;
    cursor: hand;
    width: 35px;
    height: 35px;
    position: absolute;
    right: 15px;
    top: 5px;
}

.humburger:hover {
    opacity:0.7;
    filter: alpha(opacity=70);
}

nav.globalMenuSp {
    position: fixed;
    z-index: 5;
    top: 0;
    left: 0;
    color: #fff;
    background-color: #003893;
    text-align: left;
    width: 100%;
    opacity: 0;
    transform: translateX(100vw);
    transition: opacity 0.7s ease, visibility 0.7s ease;
    font-size: 100%;
    /* font-weight: bold; */
    height: 100%;
    padding-top: 20px;
}

nav.globalMenuSp ul {
    margin: 0 auto;
    padding: 0;
    width: 100%;
    height: 95%;
    overflow: auto;
     -webkit-overflow-scrolling: touch;
}

nav.globalMenuSp ul li {
  list-style-type: none;
  padding: 0;
  width: 100%;
  transition: 0.4s all;
}
nav.globalMenuSp ul li:last-child {
  padding-bottom: 0;
}
nav.globalMenuSp ul li:hover {
  background: rgba(97, 178, 55, 0.2);
}

nav.globalMenuSp ul li a {
    display: block;
    color: #fff;
    padding: 8px 0 8px 40px;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.3);
}

/* このクラスを、jQueryで付与・削除する */
nav.globalMenuSp.active {
    opacity: 1;
  transform: translateX(0);
  z-index: 5;
  transition: opacity 0.7s ease, visibility 0.7s ease;
}

.batsu {
    display: block;
    width: 35px;/*枠の大きさ*/
    height: 35px;/*枠の大きさ*/
    background: #FFF;
    position: absolute;
    z-index: 10;
    top: 15px;
    right: 15px;
    cursor: pointer;
    cursor: hand;
    border-radius: 10px;
}

.batsu::before, .batsu::after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: #000;
    transform: rotate(45deg);
    transform-origin: 0% 50%;
    position: absolute;
    top: 5px;
    left: 14%;
}

.batsu::after {
    transform: rotate(-45deg);
    transform-origin:100% 50%;
    left: auto;
    right: 14%;
}

.batsu:hover {
    filter: alpha(opacity=70);
    opacity:0.7;
}

}

/* ---------------------------------------------------------------------
    レスポンシブ 1024　※1200がそれに当たるので要らないかも
--------------------------------------------------------------------- */
@media screen and (max-width:1024px){
  
}

/* ---------------------------------------------------------------------
    レスポンシブ 860
--------------------------------------------------------------------- */
@media screen and (max-width:860px){

.main-text {
        min-height: 290px;
        font-size: 130%;
}

}

/* ---------------------------------------------------------------------
    レスポンシブ 768
--------------------------------------------------------------------- */
@media screen and (max-width:768px){

.tawaramono_area .kv-card.is-reverse .kv-body {
    order: 2;
}

}

/* ---------------------------------------------------------------------
    レスポンシブ 500
--------------------------------------------------------------------- */
@media screen and (max-width:500px){

.fair_area .gri03 img{
    margin-bottom: 30px;
}

.gri03 {
        display: grid
;
        grid-template-columns: 1fr;
    }

.gri21 img {
    margin-bottom: 30px;;
}

.gri21 div {
    order: 2;
}

.gri21 {
    grid-template-columns: 1fr;
}

.bl02 .di02 {
    width: 100%;
}

.bl02 .di01 {
    border-bottom: none;
    display: block;
    width: 100%;
    margin-bottom: 5px;
}

.top_area > .box02 .gri03 dl {
    margin-bottom: 30px;
}

.main-text {
    position: relative;
    top: 0;
    transform: initial;
    display: block;
    margin: 40px auto 30px;
    left: 0;
}

.main-contents {
  padding-top: 67px;
}

.di02 {
    margin: 0 auto;
}
	
.f02 {
    display: none;
}
	
.f03 {
    display: none;
}
	
footer.pc .fle01 {
    justify-content: center;
}
	
.top_area .box01 {
    margin-top: 0;
}
	
.bl01 dt img {
    height: 160px;
}
	
.bl01 .cc6 dl:nth-of-type(3n) {
    margin: 0 4% 30px 0;
}
	
.bl01 .cc6 dl:nth-of-type(2n) {
    margin: 0 0 30px 0;
}
	
.bl01 .cc6 dl {
    width: 48%;
    margin: 0 4% 30px 0;
}

}

