@charset "UTF-8";


:root {
  --blue: #333462;
  --gray: #303030;
}
html{ overflow: hidden;
	
}

/* ===== pc.css（メディアクエリ無し） ===== */

/* 基本 */
* { box-sizing: border-box; }
.site-header { position: relative; z-index: 10; background: #fff; }
.header-inner {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 12px 16px;
}
.logo a { display: inline-block; color: inherit; text-decoration: none; }
.logo dl { display: flex; align-items: center; gap: 10px; margin: 0; }
.logo dt img { display: block; max-height: 42px; }
.header-cta { display: flex; align-items: center; gap: 12px; }
.tel a { text-decoration: none; font-weight: 600; }

/* PCはナビ表示＋ハンバーガー常設（TAB/SPで上書き非表示にする） */
.gnav { display: block; }
.gnav-list {
  display: flex; align-items: center; gap: 8px;
  list-style: none; margin: 0; padding: 0;
}
.gnav-list > li { position: relative; }
.gnav a { display: block; padding: 10px 14px; text-decoration: none; }

/* ドロップダウン（ぬるっと表示） */
.sub-menu {
  position: absolute;
  left: 0;
  top: 100%;
  min-width: 220px;
  list-style: none;
  margin: 0;
  padding: 6px 0;
  background: #fff;
  border: 1px solid #e4e4e4;
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  pointer-events: none;
  z-index: 20;
}
.sub-menu a { padding: 10px 14px; white-space: nowrap; }
.has-sub:hover > .sub-menu,
.has-sub:focus-within > .sub-menu {
  opacity: 1; visibility: visible; transform: translateY(0);
  pointer-events: auto;
}

/* ハンバーガー（アイコン） */
.hamburger {
  width: 44px; height: 44px; padding: 0; border: 0; background: transparent;
  position: relative; cursor: pointer;
}
.hamburger .bar {
  position: absolute; left: 9px; right: 9px; height: 2px; background: currentColor;
  transition: transform .25s ease, opacity .2s ease;
}
.hamburger .bar:nth-child(1){ top: 14px; }
.hamburger .bar:nth-child(2){ top: 21px; }
.hamburger .bar:nth-child(3){ top: 28px; }

/* 全画面オーバーレイ（フェード＋スライド） */
.menu-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.6); backdrop-filter: blur(2px);
  z-index: 10000;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .22s ease, visibility .22s ease;
}
.menu-open .menu-overlay {
  opacity: 1; visibility: visible; pointer-events: auto;
}

/* 白パネル：下から少し持ち上がる */
.overlay-panel {
  position: absolute;
  inset: 0;
  background: #ffffffdb;
  padding: 80px 24px 24px;
  overflow: auto;
  transform: translateY(8px);
  transition: transform .22s ease;
}
.menu-open .menu-overlay .overlay-panel { transform: translateY(0); }

.overlay-head {
  position: fixed; top: 16px; right: 16px; left: 16px;
  display: flex; justify-content: flex-end;
}
.overlay-close {
  width: 40px; height: 40px; border: none; background: #eee;
  font-size: 20px; cursor: pointer; border-radius: 4px;
}
.overlay-nav { max-width: 1000px; margin: 0 auto; }
.overlay-list { list-style: none; margin: 0; padding: 0; }
.overlay-list > li { border-bottom: 1px solid #eee; }
.overlay-list a {display: block;padding: 16px 4px;text-decoration: none;color: var(--blue);font-weight: 600;}

/* オーバーレイ内サブメニュー（アコーディオン前提・初期閉） */
.overlay-list .sub-menu {
  position: static; display: none; padding: 0 0 8px; border: 0; box-shadow: none;
}
.overlay-list .has-sub > a::after { content: "＋"; float: right; }
.overlay-list .has-sub.open > a::after { content: "－"; }

/* スクロールロック＆アイコン変形 */
.menu-open { overflow: hidden; }
.menu-open .hamburger .bar:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.menu-open .hamburger .bar:nth-child(2){ opacity: 0; }
.menu-open .hamburger .bar:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* アクセシビリティ */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); border: 0;
}


/* === PC：スクロールしたら右上にポコッと出る === */
.hamburger {
  /* 普段はヘッダー内にいる（positionはそのまま） */
  transition: transform .22s ease, opacity .22s ease, box-shadow .2s ease, background .2s ease;
}

@keyframes hbPop {
  from { transform: translateY(-6px) scale(.96); opacity: 0; }
  to   { transform: translateY(0)    scale(1);    opacity: 1; }
}

.hb-float .hamburger {
  position: fixed;
  top: 16px;
  right: 16px;
  z-index: 9000;
  /* border-radius: 9999px; */
  background: #fff;
  box-shadow: 0 8px 20px rgba(0,0,0,.16);
  animation: hbPop .22s ease;
}

.hb-float .hamburger .bar { left: 12px; right: 12px; }
.hb-float .hamburger:hover { box-shadow: 0 12px 28px rgba(0,0,0,.2); }





header.site-header {
}
header.site-header div.header-inner {margin: 0 5%;position: absolute;background: #fff;width: 90%;padding: 1rem 2rem;}
header.site-header div.header-inner h1.logo {
}
header.site-header div.header-inner h1.logo a {
}
header.site-header div.header-inner h1.logo a dl {
    align-items: center;
}
header.site-header div.header-inner h1.logo a dl dt {
}
header.site-header div.header-inner h1.logo a dl dt img {margin: 0.2em 0 0 0;}
header.site-header div.header-inner h1.logo a dl dd {color: var(--blue);line-height: 0.5;font-size: var(--fs-10);}
header.site-header div.header-inner h1.logo a dl dd span {
    color: var(--blue);
    font-size: var(--fs-5);
    display: block;
}

/*============================
#global-nav
============================*/
header.site-header div.header-inner nav#global-nav.gnav {
}
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list {
}
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li {
}
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li a {color: var(--gray);font-weight: 700;font-size: var(--fs-6);}
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub {
}
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub a {
}
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu {
}
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li {
}
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a {color: var(--blue);font-weight: 600;font-size: var(--fs-5);display: flex;align-items: center;}

header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a i{
    font-size: var(--fs-1);
    margin: 0 0.5em 0 0;
}

header.site-header div.header-inner div.header-cta {
}
header.site-header div.header-inner div.header-cta p.tel {
}
header.site-header div.header-inner div.header-cta p.tel a {font-size: var(--fs-8);color: var(--blue);}

/*============================
#hamburger
============================*/
header.site-header div.header-inner div.header-cta button#hamburger.hamburger {background: var(--blue);}
header.site-header div.header-inner div.header-cta button#hamburger.hamburger span.bar {color: #fff;}


/* ===== オーバーレイ専用：PCグロナビCSSの強制打ち消し ===== */
#menu-overlay .sub-menu {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

.menu-overlay,
.menu-overlay * {
  transition: none !important;
  animation: none !important;
  transform: none !important;
}





div.top01 {
}
div.top01 img {object-fit: cover;width: 100%;height: 65vh;}
div.top02 {background: url(../images/top02_bg.webp) no-repeat right;padding: 1rem 0 4rem 0;}
div.top02 h2.mnc {text-align: center;color: var(--blue);margin: 1rem;font-size: var(--fs-15);}
div.top02 h2.mnc span {font-size: var(--fs-18);}
div.top02 p {text-align: center;font-size: var(--fs-6);line-height: 2;}
div.top03 {background: url(../images/top03_bg.webp) no-repeat;background-position: center;background-size: cover;position: relative;}
div.top03 div.inner {width: 80%;margin: 0 auto;padding: 5rem 0 0 0;max-width: 1500px;}
div.top03 div.inner span.montsterrat {background: var(--blue);color: #fff;padding: 0.2em 1em;}
div.top03 div.inner h2 {color: #fff;width: 50%;font-size: var(--fs-12);margin: 1rem 0;}
div.top03 div.inner p {color: #fff;font-size: var(--fs-6);width: 50%;}
div.top03 div.inner a {color: #fff;border: 1px solid #fff;display: block;max-width: 300px;width: 50%;text-align: center;padding: 1em 0;margin: 1em 0 0 0;font-size: var(--fs-6);}
div.top03 div.inner a i.fa-regular.fa-circle-right {
}
div.top03 ul.zoom-cards {width: 80%;margin: 0 auto 0 auto;position: relative;top: 3rem;max-width: 1500px;}
div.top03 ul.zoom-cards li {
}
div.top03 ul.zoom-cards li a.zoom-card {
    box-shadow: 2px 3px 5px 0px #000000b8;
}
div.top03 ul.zoom-cards li a.zoom-card span.zoom-card__label.label--triple {
}
div.top03 ul.zoom-cards li a.zoom-card span.zoom-card__label.label--triple span.label-en {font-weight: 100;}
div.top03 ul.zoom-cards li a.zoom-card span.zoom-card__label.label--triple span.label-sub {
}
div.top03 ul.zoom-cards li a.zoom-card span.zoom-card__label.label--triple span.label-title {
}













/* リスト配置 */
.zoom-cards{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:16px; list-style:none; margin:0; padding:0;
}

/* 枠 */
.zoom-card{
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 16/9;               /* or 固定高さにしたいなら height: 220px; */
  /* border-radius: 12px; */
  text-decoration: none;
  color: #fff;

  /* ← ここがポイント：a 要素の背景に画像を書いてOK */
  background-size: cover;           /* inherit で使うため */
  background-position: center;
}

/* 背景レイヤー（ズーム対象） */
.zoom-card::before{
  content: "";
  position: absolute;
  inset: 0;

  /* ← ここがポイント：a 要素の背景をそのまま継承 */
  background: inherit;
  transform: scale(1);
  transition: transform .4s ease;
  will-change: transform;
  z-index: 0;                       /* テキストより下 */
}

/* 文字可読用のグラデ */
.zoom-card::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.55) 100%);
  z-index: 0;
}

/* テキスト（3段のまま使える） */
.zoom-card__label{ position:absolute; left:14px; right:14px; bottom:12px; z-index:1; display:grid; gap:4px; color:#fff; }

/* hover/focus で“背景だけ”ズーム（枠は不変） */
.zoom-card:hover::before,
.zoom-card:focus-visible::before{
  transform: scale(1.08);
}




.zoom-card:hover{ box-shadow:0 8px 24px rgba(0,0,0,.18); }

/* テキスト3段レイアウト（下寄せ） */
.zoom-card__label.label--triple{
  position: absolute; left: 14px; right: 14px; bottom: 12px; z-index: 1;
  display: grid; gap: 4px; color: #fff;
}

/* 読ませるための下部グラデ（少し強め） */
.zoom-card::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.55) 100%);
}

/* EN（小さくトラッキング広め） */
.label--triple .label-en{
  font-size: clamp(.62rem, .48rem + .35vw, .8rem);
  letter-spacing: .12em; font-weight: 700; opacity: .9;
  text-transform: uppercase;
}

/* サブタイトル（中・読みやすく） */
.label--triple .label-sub{
  font-size: clamp(.8rem, .66rem + .5vw, 1rem);
  line-height: 1.35; font-weight: 500; opacity: .95;
  text-shadow: 0 2px 6px rgba(0,0,0,.35);
}

/* タイトル（大・太め） */
.label--triple .label-title{
  font-size: clamp(1rem, .8rem + 1vw, 1.6rem);
  line-height: 1.15; font-weight: 800;
  text-shadow: 0 3px 10px rgba(0,0,0,.4);
}

/* 長文でも崩れないように最大2行で省略（必要なら） */
.label--triple .label-sub,
.label--triple .label-title{
  display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden;
  -webkit-line-clamp: 2; /* 行数調整可 */
}


/* テキストを上下左右ど真ん中に配置する */
.zoom-card__label.label--centered{
  position: absolute;
  inset: 0;                    /* カード全面をラベル領域に */
  z-index: 1;
  display: flex;               /* 中央寄せの基本 */
  align-items: center;         /* 縦中央 */
  justify-content: center;     /* 横中央 */
  text-align: center;          /* テキスト中央揃え */
  padding: 16px;               /* 端の余白（好みで調整） */
}

/* 3段テキストを縦に積む（既存の label--triple の gridを上書き） */
.zoom-card__label.label--triple.label--centered{
  display: flex;
  flex-direction: column;
  gap: 6px;                    /* 行間の感覚 */
  /* 長文対策：幅を絞って読みやすく */
  max-width: min(92%, 26ch);
  margin: 0 auto;
}

/* 省略が要らないなら、以前の -webkit-line-clamp を外す */
.label--triple.label--centered .label-sub,
.label--triple.label--centered .label-title{
  -webkit-line-clamp: unset;
}




div.top04 {width: 80%;margin: 0 auto 5em auto;max-width: 1500px;}
div.top04 div.inner {margin: 6em 0 0 0;display: flex;gap: 3em;}
div.top04 div.inner div.title {width: 15%;}
div.top04 div.inner div.title span.montsterrat {color: var(--blue);font-size: var(--fs-6);font-weight: 600;border-bottom: 1px solid;display: inline-block;margin: 0 0 1em 0;}
div.top04 div.inner div.title h3 {}
div.top04 div.inner div.title h3 a {display: flex;align-items: center;color: var(--blue);}
div.top04 div.inner div.title h3 a p {margin: 0 0 0.3em 0;font-size: var(--fs-8);}
div.top04 div.inner div.title h3 a i.fa-solid.fa-circle-chevron-right {margin: 0 0 0 2em;}


div.news_dl {width: 85%;}
div.news_dl a {padding: 2em 0;display: block;border-bottom: 1px solid #c3c3c3;}
div.news_dl a dl {font-size: var(--fs-6);
    font-weight: 700;
    display: flex;
    align-items: flex-start;
}
div.news_dl a dl dt {padding: 0 1em 0 0;}
div.news_dl a dl dd {
}



footer {
  background: url(../images/footer_bg.webp) no-repeat;
  background-size: cover;
  color: #ffff;
  padding: 4rem 10%;
  display: flex;
  justify-content: space-between;
}
footer div.f_info {
}
footer div.f_info dl {display: flex;}
footer div.f_info dl dt {
}
footer div.f_info dl dt img {
}
footer div.f_info dl dd {padding: 0 0 0 1em;}
footer div.f_info dl dd span {font-size: var(--fs-5);}
footer div.f_info dl dd p {font-size: var(--fs-8);}
footer div.f_info p.add {margin: 0.5em 0;}
footer div.f_info a {display: block;font-size: var(--fs-15);font-weight: 800;}
footer div.f_info a.mail {font-size: var(--fs-5);font-weight: 500;}
footer div.f_info a.contact {background: yellow;border-radius: 500px;text-align: center;color: var(--blue);font-size: var(--fs-6);padding: 0.5em 0;margin: 1em 0;}
footer div.f_info img.z_technica {
}
footer div.f_menu {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
footer div.f_menu div.inner {display: flex;}
footer div.f_menu div.inner ul {
    margin: 0 1em;
}
footer div.f_menu div.inner ul li {margin: 1em 0;}
footer div.f_menu div.inner ul li a {font-size: var(--fs-6);}
footer div.f_menu div.inner ul li a.small {font-weight: 200;}
footer div.f_menu p {font-size: var(--fs-3);font-weight: 100;text-align: right;}

/*hover*/
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li a {
  position: relative;
  display: inline-block;
  transition: color 0.3s ease;
}

header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0%;
  height: 2px;
  background: currentColor;
  transition: width 0.3s ease;
}

header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li a:hover {
  color: var(--blue);
}

header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li a:hover::after {
  width: 100%;
}



/* ベース強化（サブメニュー専用） */
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a {
  position: relative;
  gap: .5em;                 /* アイコン/矢印があれば間隔確保 */
  padding: .5em .9em .5em 1.1em;
  border-radius: .5em;
  transition: background-color .25s ease, color .25s ease, transform .25s ease;
}

/* 左アクセントバー（初期は非表示） */
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a::before {
  content: "";
  position: absolute;
  left: .4em;
  top: 50%;
  translate: 0 -50%;
  width: .18em;
  height: 0%;
  border-radius: 2px;
  background: currentColor; /* = var(--blue) と同調 */
  transition: height .25s ease;
  opacity: .6;
}

/* ホバー／フォーカス時の挙動 */
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a:hover,
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a:focus-visible {
  background-color: color-mix(in srgb, var(--blue) 12%, transparent); /* 薄い色面 */
  color: var(--blue);
}

/* バーが下→上に伸びる */
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a:hover::before,
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a:focus-visible::before {
  height: 70%;
}

/* もし右端に矢印アイコン（.arrow）などが居るなら、わずかにスライド */
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a .arrow {
  transition: transform .25s ease;
}
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a:hover .arrow,
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a:focus-visible .arrow {
  transform: translateX(2px);
}

/* アニメ苦手な環境配慮 */
@media (prefers-reduced-motion: reduce) {
  header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a,
  header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a::before {
    transition: none;
  }
}
/* 共通で使うルート（読みやすさ用。実際は展開されます） */
/* header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list */

/* ▼ トップ階層のリンクだけ下線アニメ適用（子孫ではなく“直下”に限定） */
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list > li > a {
  position: relative;
  display: inline-block;
  transition: color .3s ease;
}
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list > li > a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0%;
  height: 2px;
  background: currentColor;
  transition: width .3s ease;
}

/* 発火トリガーは “a:hover” のみ。li:hover を使わないのがコツ */
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list > li > a:hover,
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list > li > a:focus-visible {
  color: var(--blue); /* 任意 */
}
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list > li > a:hover::after,
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list > li > a:focus-visible::after {
  width: 100%;
}

/* ▼ サブメニューでは “::after 下線” を明示的に無効化 */
header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li a::after {
  content: none !important; /* 既存ルールが強い場合の保険 */
}

header.site-header div.header-inner nav#global-nav.gnav ul.gnav-list li.has-sub ul.sub-menu li:hover > a::after {
  width: 0 !important;
}
/* ベース強化 */
div.top03 div.inner a {
  position: relative;
  box-sizing: border-box;
  border: 1px solid #fff;
  color: #fff;
  display: block;
  max-width: 300px;
  width: 50%;
  text-align: center;
  padding: 1em 0;
  margin: 1em 0 0 0;
  font-size: var(--fs-6);

  /* ワイプ用の背景トリック */
  background-image: linear-gradient(0deg, #fff 0 0);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  background-position: left top;

  transition: background-size .25s ease, color .25s ease, border-color .25s ease, transform .06s ease;
  border-radius: .5em; /* 角丸はお好みで */
}

/* hover / focus-visible で白塗り＋文字色反転 */
div.top03 div.inner a:hover,
div.top03 div.inner a:focus-visible {
  background-size: 100% 100%;
  color: var(--blue, #0a68ff);   /* 反転後の文字色（ブランド色に合わせて） */
  border-color: transparent;     /* 枠は白に溶かす */
  outline: none;
}

/* クリック時のわずかな押し込み感 */
div.top03 div.inner a:active {
  transform: translateY(1px) scale(.99);
}

/* アニメ苦手な環境配慮 */
@media (prefers-reduced-motion: reduce) {
  div.top03 div.inner a {
    transition: none;
  }
}
/* ベース強化 */
div.news_dl a {
  position: relative;
  display: block;
  padding: 2em 0;
  border-bottom: 1px solid #c3c3c3;
  color: inherit;
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease;
}

/* 下線アニメ用の擬似要素（ボーダーとは別レイヤーで重ねる） */
div.news_dl a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;              /* 既存ボーダーにかぶせる */
  width: 0%;
  height: 2px;
  background: var(--blue, #0a68ff);
  transition: width .25s ease;
}

/* ホバー／フォーカス時：行ハイライト＋強調線 */
div.news_dl a:hover,
div.news_dl a:focus-visible {
  background-color: color-mix(in srgb, var(--blue, #0a68ff) 8%, transparent);
  outline: none;
}

div.news_dl a:hover::after,
div.news_dl a:focus-visible::after {
  width: 100%;
}

/* もし右端に矢印アイコンがあるなら、気持ちスライドさせる */
div.news_dl a .arrow {
  transition: transform .25s ease;
}
div.news_dl a:hover .arrow,
div.news_dl a:focus-visible .arrow {
  transform: translateX(2px);
}

/* モーション配慮 */
@media (prefers-reduced-motion: reduce) {
  div.news_dl a,
  div.news_dl a::after {
    transition: none;
  }
}

/* ベース強化（CTＡらしくアニメ付与） */
footer div.f_info a.contact {
  background: yellow;
  color: var(--blue);
  border-radius: 500px;
  text-align: center;
  font-size: var(--fs-6);
  padding: 0.5em 0;
  margin: 1em 0;

  display: block; /* 幅いっぱいでタップしやすく */
  border: 1px solid transparent; /* レイアウトのブレ防止 */
  transition: background-color .25s ease, color .25s ease,
              box-shadow .25s ease, transform .06s ease;
}

/* hover / keyboard フォーカスで反転＋すこし浮く */
footer div.f_info a.contact:hover,
footer div.f_info a.contact:focus-visible {
  background: #15162b;
  color: #fff;
  box-shadow: 0 6px 20px color-mix(in srgb, var(--blue) 30%, transparent);
  outline: none;
  transform: translateY(-1px);
}

/* クリック時は軽く戻す */
footer div.f_info a.contact:active {
  transform: translateY(0);
  box-shadow: 0 3px 12px color-mix(in srgb, var(--blue) 22%, transparent);
}

/* モーション配慮 */
@media (prefers-reduced-motion: reduce) {
  footer div.f_info a.contact {
    transition: none;
  }
}

/* タイトルリンク（白地用） */
div.top04 div.inner div.title h3 a{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  color:var(--blue);
  text-decoration:none;
}
div.top04 div.inner div.title h3 a p{ /* pの余白を殺して整える */
  margin:0;
  line-height:1;
  transition:letter-spacing .2s ease;
  white-space: nowrap;
}
div.top04 div.inner div.title h3 a i{ /* 既存アイコンを動かす */
  transition:transform .25s ease, opacity .2s ease, filter .25s ease;
  opacity:.85;
}

/* hover / keyboard focus */
div.top04 div.inner div.title h3 a:focus-visible{
  color:color-mix(in srgb,var(--blue) 90%, black 10%);
  transform:translateY(-1px);
  outline:none;
}
div.top04 div.inner div.title h3 a:hover p,
div.top04 div.inner div.title h3 a:focus-visible p{
  letter-spacing:.02em; /* ほんのり締まる */
}
div.top04 div.inner div.title h3 a:hover i,
div.top04 div.inner div.title h3 a:focus-visible i{
  transform:translateX(3px); /* アイコンだけ前へ */
  opacity:1;
  filter:brightness(1.05);
}

/* モーション配慮 */
@media (prefers-reduced-motion: reduce){
  div.top04 div.inner div.title h3 a,
  div.top04 div.inner div.title h3 a p,
  div.top04 div.inner div.title h3 a i{ transition:none; }
}



section.second_head {background: var(--blue);}
section.second_head div.wrap {width: 80%;margin: 0 auto;max-width: 1500px;padding: 10em 0 5em 0;}
section.second_head div.wrap h2 {color: #fff;}
section.second_head div.wrap span {color: #fff;}
section.topic_path {background: #dcdcdc;padding: 0.5em 1em;}
section.topic_path ul {display: flex;justify-content: flex-end;}
section.topic_path ul li {
    font-size: var(--fs-3);
}
section.topic_path ul li a {color: var(--blue);font-weight: 500;}
section.topic_path ul li a:hover{ text-decoration: underline;}


section.topic_path ul li {
  position: relative;
  padding-left: 1.2em; /* アイコンぶんの余白 */
}

/* li の前に caret-right を付ける */
section.topic_path ul li::before {
  content: "\f0da"; /* fa-caret-right */
  font-family: "Font Awesome 6 Free"; /* 環境に合わせてね */
  font-weight: 900; /* solid */
  position: absolute;
  left: -0.2em;
  top: 55%;
  transform: translateY(-50%);
}
/* 全体のliには余白つけない（最初だけつける） */
section.topic_path ul li {
  position: relative;
  padding: 0 1em;
}

/* 最初の li だけアイコンを付ける */
section.topic_path ul li:first-child {
   /* アイコン分だけ余白 */
}

section.topic_path ul li:first-child::before {
  content: "\f0da"; /* fa-caret-right */
  font-family: "Font Awesome 6 Free"; /* 環境に合わせてね */
  font-weight: 900; /* solid */
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: none;
}


section.cell01 {
  background: url(../images/cell01_bg.webp) no-repeat;
  background-size: cover;
  background-position: bottom;
  display: flex;
  justify-content: center; /* 横中央 */
  align-items: center;    /* 縦中央 */
  padding: 8vw 0 5vw 0;
}



section.cell01 div.wrap{
  text-align: center;}
section.cell01 h3.mnc {font-size: var(--fs-15);text-align: center;color: var(--blue);font-weight: 500;}
section.cell01 span {display: inline-block;background: var(--blue);color: #fff;padding: 0 1em;font-size: var(--fs-5);margin: 0.5em 0;}
section.cell01 h4 {color: var(--blue);font-size: var(--fs-9);}
section.cell01 h5 {font-size: var(--fs-10);margin: 2em 0 0 0;}
section.cell01 p {text-align: left;width: 52%;margin: 1em auto;}
section.cell02 {display: flex;width: 80%;max-width: 1500px;margin: 0 auto;}
section.cell02 img.cell01 {width: 50%;}
section.cell02 img.cell02 {width: 50%;}
section.cell03 {margin: 2em auto;width: 80%;}
section.cell03 ul {
    display: flex;
    gap: 2%;
    justify-content: space-between;
}
section.cell03 ul li {
    text-align: center;
    border-radius: 20px;
    box-shadow: 2px 2px 5px rgba(0,0,0,.15);
    width: calc((100% - 8%) / 5); /* gap4本分 */
    padding: 2%;
    box-sizing: border-box;
    background: #fff;
}
section.cell03 ul li h3 {color: var(--blue);}
section.cell03 ul li img {margin: 0 auto;display: block;}
section.cell03 ul li p {text-align: left;font-size: var(--fs-4);}
section.cell04 {padding: 2em 0;}
section.cell04 h3 {
}
h3.h3 {
  color: var(--blue);
  position: relative;
  text-align: center;
  padding-bottom: 1em; /* 下線との距離調整 */
  font-size: var(--fs-10);
  margin: 1em 0;
}

/* 下線（短め） */
h3.h3::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 150px;        /* ← ここで短さ調整 */
  height: 2px;        /* ラインの太さ */
  background: var(--blue);
}

section.cell04 h4 {text-align: center;font-size: var(--fs-15);}
section.cell04 h4 span {
  position: relative;
  display: inline-block;
  color: red;
}

section.cell04 h4 span::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.2em;  /* 線の位置（調整可） */
  width: 100%;
  height: 0.6em;  /* 蛍光マーカーの太さ */
  background: #f4ff00; /* 蛍光色 */
  z-index: -1;
}
section.cell04 div.wrap {width: 80%;max-width: 1200px;margin: 0 auto;}
section.cell04 div.wrap dl {display: flex;margin: 2em 0;justify-content: space-between;align-items: center;}
section.cell04 div.wrap dl dt {width: 45%;}
section.cell04 div.wrap dl dt table {color: #000;width: 100%;}
section.cell04 div.wrap dl dt table tbody tr:nth-child(odd) {
  background: #e4f4fd;
}

section.cell04 div.wrap dl dt table tbody tr:nth-child(even) {
  background: #ffffff;
}
section.cell04 div.wrap dl dt table tbody {
}
section.cell04 div.wrap dl dt table tbody tr {
}
section.cell04 div.wrap dl dt table tbody tr th {text-align: left;}
section.cell04 div.wrap dl dt table tbody tr td {
}
section.cell04 div.wrap dl dt table tbody tr th,section.cell04 div.wrap dl dt table tbody tr td{
    padding: 1em;
}
section.cell04 div.wrap dl dt table tbody tr th span {font-size: var(--fs-3);margin: 0 0 0 1em;}
section.cell04 div.wrap dl dt table tbody tr td span {color: red;font-weight: 600;}
section.cell04 div.wrap dl dt p {margin: 1em 0 0 0;color: #000;}
section.cell04 div.wrap dl dd {width: 50%;}
section.cell04 div.wrap dl dd img {width: 100%;}
section.cell05 {
  background: url(../images/cell05_bg.webp) no-repeat;
  background-size: cover;
  padding: 3em 0;
}
section.cell05 h3 {
}
section.cell05 ul {display: flex;width: 80%;max-width: 1500px;justify-content: space-between;margin: 5em auto;}
section.cell05 ul li {background: #fff;border-radius: 16px;padding: 3em;width: 49%;position: relative;}
section.cell05 ul li h4 {font-size: var(--fs-10);}
section.cell05 ul li h4 span {font-size: var(--fs-5);}
section.cell05 ul li p {font-size: var(--fs-6);line-height: 2;}
section.cell05 ul li img{
    position: absolute;
    right: 4%;
    top: -3em;
}



section.news_wrap {width: 80%;margin: 0 auto;padding: 3em 0;max-width: 1200px;display: flex;gap: 3em;}
section.news_wrap div.main {
    width: 90%;
}
section.news_wrap div.main span.date {font-size: var(--fs-4);color: gray;}
section.news_wrap div.main h3 {font-size: var(--fs-9);color: var(--blue);}
section.news_wrap div.main div.article {margin: 2rem 0 0 0;}
section.news_wrap div.main div.article p {font-size: var(--fs-5);line-height: 2em;margin: 1.5em 0;}
section.news_wrap div.main div.article h4 {font-size: var(--fs-7);background: #333462;color: #fff;padding: 0.5em 1em;}
section.news_wrap div.main div.article h5 {font-size: var(--fs-7);color: var(--blue);border-left: 5px solid;padding: 0 0 0 0.7em;}
section.news_wrap div.main div.article h6 {font-size: var(--fs-5);color: var(--blue);font-weight: 600;border: 1px solid;padding: 0.5em 1em;}
section.news_wrap div.main div.article a {color: blue;text-decoration: underline;font-weight: 600;display: inline-block;}
section.news_wrap div.main ul.tag {display: flex;margin: 1em 0 0 0;border-bottom: 1px solid gray;padding: 0 0 1.5em 0;}
section.news_wrap div.main ul.tag li {border: 1px solid gray;border-radius: 3px;margin: 0 0.5em 0.5em 0;}
section.news_wrap div.main ul.tag li a {padding: 0.5em;font-size: var(--fs-4);}
section.news_wrap div.main ul.pagenation {
    display: flex;
    gap: 1em;
    justify-content: center;
    margin: 2em 0 0 0;
}
section.news_wrap div.main ul.pagenation li {text-align: center;}
section.news_wrap div.main ul.pagenation li a {background: var(--blue);color: #fff;border-radius: 10px;padding: 1em 2em;display: block;}
section.news_wrap div.sub {width: 32%;}
section.news_wrap div.sub form.searchBox {
}
section.news_wrap div.sub form.searchBox input {border: 1px solid #bdbbbb;padding: 0.5em;width: 10.5vw;}
section.news_wrap div.sub form.searchBox button {background: var(--blue);color: #fff;padding: 0.6em 1.5em;border-radius: 6px;margin: 0 0 0 0.5em;}
section.news_wrap div.sub div.sub_content {margin: 2em 0 0 0;}
section.news_wrap div.sub div.sub_content h4 {font-size: var(--fs-7);color: var(--blue);}
section.news_wrap div.sub div.sub_content span.en {color: gray;font-size: var(--fs-4);}
section.news_wrap div.sub div.sub_content ul {
}
section.news_wrap div.sub div.sub_content ul li {margin: 1em 0;}
section.news_wrap div.sub div.sub_content ul li a {
}
section.news_wrap div.sub div.sub_content ul li a span.date {
    color: gray;
}
section.news_wrap div.sub div.sub_content ul li a h5 {font-size: var(--fs-5);color: var(--blue);}
section.news_wrap div.sub div.sub_content div.tag_wrap {margin: 1em 0 0 0;}
section.news_wrap div.sub div.sub_content div.tag_wrap a {border: 1px solid gray;border-radius: 16px;margin: 0.2em 0.1em;display: inline-block;padding: 0 0.5em;}




section.news_wrap div.main div.article a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 2px;
  background: var(--blue);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}

section.news_wrap div.main div.article a:hover::after {
  transform: scaleX(1);
}

section.news_wrap ul.tag li a,
section.news_wrap .tag_wrap a {
  transition: all .2s ease;
}


section.news_wrap .tag_wrap a:hover {
  background: var(--blue);
  color: #fff;
  border-color: var(--blue);
}

section.news_wrap ul.pagenation li a {
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

section.news_wrap ul.pagenation li a:hover {
  background: #1e3fa8; /* var(--blue)より少し濃く */
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0,0,0,.15);
}

section.news_wrap div.sub div.sub_content ul li a {
  display: block;
  padding: .5em 0;
  transition: background .2s ease;
}

section.news_wrap div.sub div.sub_content ul li a:hover {
  background: rgba(0,0,0,.03);
}

section.news_wrap div.sub div.sub_content ul li a:hover h5 {
  text-decoration: underline;
}

section.news_wrap div.sub form.searchBox button {
  transition: background .2s ease, transform .15s ease;
}

section.news_wrap div.sub form.searchBox button:hover {
  background: #1e3fa8;
  transform: translateY(-1px);
}





.intro03_wrap {
  margin: 0 auto;
}

.intro03_wrap li {
  padding: 1rem;
  box-sizing: border-box;
  text-align: center;
}

.intro03_wrap img {
  width: 100%;
  height: auto;
  display: block;
}



section.intro01 {background: url(../images/about01_bg.webp);background-size: 100%;position: relative;padding: 5vw;}
section.intro01 h3.mnc {width: 50%;margin: 0 0 1vw 10%;font-size: var(--fs-15);font-weight: 600;color: var(--blue);}
section.intro01 p {width: 50%;margin: 0 0 0 10%;color: #000;line-height: 2;font-size: var(--fs-5);}
section.intro01 img {width: 31vw;top: 0;position: absolute;right: 0;}
section.intro02 {
}
section.intro02 dl {display: flex;margin: 0 auto;justify-content: space-between;padding: 5em 10% 5em 0;}
section.intro02 dl dt {display: flex;width: 50%;align-items: flex-start;}
section.intro02 dl dt img.image01 {width: 30vw;height: auto;object-fit: cover;margin: 5vw 0 0 0;}
section.intro02 dl dt img.image02 {margin: 0 0 0 3vw;}
section.intro02 dl dd {width: 40%;}
section.intro02 dl dd h3.mnc {font-size: 2.2vw;font-weight: 600;color: var(--blue);margin: 0 0 1em 0;}
section.intro02 dl dd p {color: #000;line-height: 2;font-size: var(--fs-5);}
section.intro03 {background: #d8d8d8;}
section.intro03 h3 {text-align: center;color: var(--blue);font-size: var(--fs-10);padding: 3vw 0 1vw 0;}
section.intro03 h3 span {display: block;color: gray;font-size: var(--fs-4);font-weight: 300;}
section.intro03 ul.intro03_wrap {padding: 0 0 5rem 0;}
section.intro03 ul.intro03_wrap li.slick-slide {}
section.intro03 ul.intro03_wrap li img {aspect-ratio: 1/1;object-fit: cover;border-radius: 10px;}
section.intro03 ul.intro03_wrap li h4 {
}
section.intro03 ul.intro03_wrap li p {
}
.slick-dotted.slick-slider{margin: 0 !important;}
.slick-dots{ bottom: 2vw !important;}
html, body {
  overflow-x: hidden;
}


section.company01 {
}
section.company01 div.wrap {width: 80%;margin: 0 auto;max-width: 1500px;display: flex;gap: 2em;justify-content: space-around;align-items: center;padding: 3em 0;}
section.company01 div.wrap table {
}
section.company01 div.wrap table tbody {
}
section.company01 div.wrap table tbody tr {
}
section.company01 div.wrap table tbody tr th {text-align: left;color: var(--blue);}
section.company01 div.wrap table tbody tr td {padding: 0.5em 1em;}
section.company01 div.wrap table tbody tr td a {
}
section.company01 div.wrap iframe {width: 50%;height: 29vw;}
section.company01 div.wrap table tbody tr th,section.company01 div.wrap table tbody tr td{
    vertical-align: text-top;
}


section.business01 {
    width: 90%;
    margin: 0 auto;
    text-align: center;
    padding: 5em 0;
}
section.business01 h3 {color: var(--blue);text-align: center;font-size: var(--fs-10);margin: 0 0 0.5em 0;}
section.business01 p {font-size: var(--fs-6);margin: 0 0 3em 0;color: #000;}
section.business01 img {height: 36vw;width: 100%;object-fit: cover;}
section.business02 {width: 80%;margin: 3rem auto;max-width: 1500px;}
section.business02 dl {display: flex;justify-content: right;position: relative;}
section.business02 dl dt {background: #ffffff;border-radius: 20px;padding: 5rem;position: absolute;width: 50%;top: 6vw;left: 0;}
section.business02 dl dt h3 {font-size: var(--fs-8);color: var(--blue);margin: 0 0 1em 0;}
section.business02 dl dt p {font-size: var(--fs-5);color: #000;line-height: 2;margin: 0 0 1em 0;}
section.business02 dl dt a {
    display: flex;
    background: #998920;
    color: #fff;
    align-items: center;
    justify-content: space-between;
    padding: 1em 2em;
    border-radius: 200px;
    width: 50%;
    min-width: 250px;
    transition: background 0.3s ease, transform 0.3s ease;
}

section.business02 dl dt a p {
    color: #fff;
    margin: 0;
}

section.business02 dl dt a i.fa-solid.fa-arrow-right {
    transition: transform 0.3s ease;
}

/* hover */
section.business02 dl dt a:hover {
    background: #7f741b; /* 少し濃く */
    transform: translateY(-2px); /* ふわっと浮く */
}

section.business02 dl dt a:hover i.fa-solid.fa-arrow-right {
    transform: translateX(6px); /* 矢印が右へ */
}section.business02 dl dt a p {color: #fff;margin: 0;}
section.business02 dl dt a i.fa-solid.fa-arrow-right {
}
section.business02 dl dd {width: 70%;}
section.business02 dl dd img {border-radius: 20px;height: 33vw;width: 100%;object-fit: cover;}
section.business02.business03 {
}
section.business02.business03 dl {justify-content: flex-start;}
section.business02.business03 dl dt {order: 2;right: 0;left: unset;}
section.business02.business03 dl dt h3 {
}
section.business02.business03 dl dt p {
}
section.business02.business03 dl dt a {
}
section.business02.business03 dl dt a p {
}
section.business02.business03 dl dt a i.fa-solid.fa-arrow-right {
}
section.business02.business03 dl dd {order: 1;}
section.business02.business03 dl dd img {
}
section.business02.business04 {
}
section.business02.business04 dl {
}
section.business02.business04 dl dt {
}
section.business02.business04 dl dt h3 {
}
section.business02.business04 dl dt p {
}
section.business02.business04 dl dt p a {
}
section.business02.business04 dl dt a {
}
section.business02.business04 dl dt a i.fa-solid.fa-arrow-right {
}
section.business02.business04 dl dd {
}
section.business02.business04 dl dd img {
}




section.pellet01 {background: url(../images/pellet01_bg.webp) no-repeat;background-size: 100%;background-position: 0 -35vw;}
section.pellet01 h3.mnc {color: #fff;text-align: center;font-size: var(--fs-15);font-weight: 500;padding: 5rem 0 0 0;}
section.pellet01 div.pellet02 {background: #fff;width: 80%;max-width: 1500px;margin: 3rem auto 0 auto;text-align: center;padding: 3rem 0;}
section.pellet01 div.pellet02 span {color: var(--blue);font-size: var(--fs-6);font-weight: 500;}
section.pellet01 div.pellet02 h3 {font-size: var(--fs-9);color: var(--blue);}
section.pellet01 div.pellet02 h4 {font-size: var(--fs-10);margin: 1em 0;}
section.pellet01 div.pellet02 p {font-size: var(--fs-5);}
section.pellet01 div.pellet02 ul {display: flex;width: 80%;margin: 3rem auto 0 auto;gap: 1em;}
section.pellet01 div.pellet02 ul li {
}
section.pellet01 div.pellet02 ul li img {
}

section.pellet01 div.pellet03 {text-align: center;background: #c2c2c2;width: 80%;margin: 0 auto;max-width: 1200px;padding: 3em;border-radius: 20px;}
section.pellet01 div.pellet03 h3 {font-size: var(--fs-8);color: #4f4f4f;}
section.pellet01 div.pellet03 span {color: #fff;margin: 0 0 1em 0;display: block;font-size: var(--fs-3);}
section.pellet01 div.pellet03 p {font-size: var(--fs-5);color: #000;line-height: 1.8;}
.pellet04 {
    text-align: center;
    width: 100%;
    margin: 5rem auto;
}

.pellet04 h3 {
    margin-bottom: 2em;
    color: var(--blue);
    font-size: var(--fs-8);
}

.pellet04 dl {
    margin: 0 auto 1em;
    max-width: 800px;
}

.pellet04 dt {
    cursor: pointer;
    padding: 1em 3em 1em 1em; /* 右に余白追加 */
    background: var(--blue);
    font-weight: bold;
    color: #fff;
    font-size: var(--fs-6);
    position: relative; /* 追加 */
}

.pellet04 dt .toggle {
    position: absolute;
    right: 1.5em;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2em;
}




.pellet04 dd {
    margin: 0;
    padding: 0 1em;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, padding 0.3s ease;
}

.pellet04 dl.open dd {
    max-height: 300px; /* 内容に応じて調整 */
    padding: 1em;
    font-size: var(--fs-5);
    color: #000;
}


div.greeting01 {width: 60%;margin: 3rem auto;max-width: 1500px;}
div.greeting01 h3 {color: var(--blue);font-size: var(--fs-9);}
div.greeting01 h3 i.fa-solid.fa-circle-dot {margin: 0 0.5em 0 0;}
div.greeting01 dl {display: flex;margin: 2rem 0 0 0;justify-content: space-between;}
div.greeting01 dl dt {width: 30%;}
div.greeting01 dl dt img {
}
div.greeting01 dl dd {width: 65%;}
div.greeting01 dl dd p {font-weight: 600;line-height: 2;}
div.greeting01 dl dd span.mnc {font-size: var(--fs-7);font-weight: 600;text-align: right;display: block;line-height: 2;}


section.health01 {background: url(../images/health01_bg.webp) no-repeat;background-size: 100%;padding: 5rem 0 0 0;background-position: bottom;}
section.health01 div.wrap {
}
section.health01 div.wrap h3 {color: var(--blue);font-size: var(--fs-15);font-weight: 600;text-align: center;}
section.health01 div.wrap ul {display: flex;gap: 1em;width: 80%;margin: 3em auto;}
section.health01 div.wrap ul li {
}
section.health01 div.wrap ul li img {
}
section.health01 div.wrap ul li h4 {text-align: center;color: var(--blue);font-size: var(--fs-6);margin: 0.5em 0 0 0;}
section.health01 div.wrap ul li p {font-size: var(--fs-5);color: #000;}
section.health02 {
}
section.health02 h3 {text-align: center;margin: 5rem;font-size: var(--fs-9);line-height: 2;font-weight: 500;color: #000;}
section.health02 h4 {
  position: relative;
  text-align: center;
  font-size: var(--fs-10);
  display: inline-block;
  left: 50%;
  color: var(--blue);
  transform: translateX(-50%);
}

section.health02 h4::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.15em;
  width: 100%;
  height: 0.7em;
  background: #f9ff00;
  z-index: -1;
}
section.health02 ul {display: flex;width: 60%;text-align: center;margin: 3vw auto;gap: 1em;justify-content: space-between;}
section.health02 ul li {
}
section.health02 ul li img {
}
section.health02 ul li h5 {font-size: var(--fs-8);color: var(--blue);margin: 0.5em 0;}
section.health02 p {text-align: center;font-size: var(--fs-8);font-weight: 700;margin: 5em 0;}



/* ===============================
  POLICY 共通
================================ */

.policy01 {
  max-width: 1000px;
  margin: 0 auto;
  padding: 4rem 1.5rem;
  line-height: 1.9;
  box-sizing: border-box;
}

.policy01 * {
  box-sizing: border-box;
}

/* 見出しブロック */
.policy01 .h3 {
  margin: 4rem 0 2rem;
  text-align: center;
}

.policy01 .h3:first-child {
  margin-top: 0;
}

.policy01 .h3 .montserrat {
  font-size: 0.9rem;
  letter-spacing: 0.15em;
  color: #777;
  margin-bottom: 0.3rem;
}

.policy01 .h3 h3 {
  font-size: 1.6rem;
  margin: 0;
  color: var(--blue);
  text-align: left;
}

/* 本文ラッパー */
.policy01 .privacy01 {
  margin-bottom: 4rem;
}

/* 各項目ブロック */
.policy01 .privacy02 {
  margin-top: 2.5rem;
}

.policy01 .privacy02 h3 {
  font-size: 1.15rem;
  margin-bottom: 0.8rem;
  padding-left: 0.8rem;
  border-left: 4px solid #333;
}

.policy01 p {
  margin: 0.8rem 0;
}

/* リスト */
.policy01 ul {
  margin: 1rem 0 0 1.2rem;
  list-style: disc;
  padding: 0;
}

.policy01 ul li {
  margin-bottom: 0.4rem;
}

/* リンク（GA等） */
.policy01 a {
  display: inline-block;
  margin-top: 0.5rem;
  text-decoration: underline;
  text-underline-offset: 3px;
  display: block;
}

.policy01 a:hover {
  opacity: 0.7;
}


#menu-overlay .sub-menu{}
#menu-overlay .sub-menu li{
    background: #efefef;
    padding: 0 0 0 2em;
    border-bottom: 1px solid #ffffff;
    color: gray;
}
#menu-overlay .sub-menu li a{
    color: #3f3f3f;
    font-weight: 500;
}



.pager {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5em;
  margin: 4rem auto 0;
  font-size: 16px;
}

.pager a,
.pager span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 0.8em;
  border-radius: 999px;
  border: 1px solid #ccc;
  text-decoration: none;
  color: #333;
  transition: all 0.2s ease;
}

/* hover */
.pager a:hover {
  background: #333;
  color: #fff;
  border-color: #333;
}

/* current */
.pager .active {
  background: #333;
  color: #fff;
  border-color: #333;
  pointer-events: none;
}

/* prev / next */
.pager-prev,
.pager-next {
  font-weight: bold;
}

/* dots */
.pager-dots {
  border: none;
  pointer-events: none;
}


section.news_wrap {
}
section.news_wrap div.main.news_index {display: flex;flex-wrap: wrap;gap: 2%;align-self: flex-start;}
section.news_wrap div.main.news_index a.news_list {
    width: calc((100% - 4%) / 3);
    margin: 0 0 2em 0;
}
section.news_wrap div.main.news_index a.news_list span.montserrat {
}
section.news_wrap div.main.news_index a.news_list img {border-radius: 10px;width: 100%;height: 9vw;min-height: 164px;object-fit: cover;}
section.news_wrap div.main.news_index a.news_list h3 {font-size: var(--fs-6);margin: 0.2em 0 0 0;}


/* カード全体 */
section.news_wrap div.main.news_index a.news_list {
  display: block;
  text-decoration: none;
  color: inherit;
  border-radius: 12px;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

/* hover：カード */
section.news_wrap div.main.news_index a.news_list:hover {
  transform: translateY(-4px);
}

/* 画像 */
section.news_wrap div.main.news_index a.news_list img {
  transition: transform 0.4s ease;
}

/* hover：画像だけ少しズーム */
section.news_wrap div.main.news_index a.news_list:hover img {
  transform: scale(1.05);
}

/* タイトル */
section.news_wrap div.main.news_index a.news_list h3 {
  transition: color 0.2s ease;
}

/* hover：文字色 */
section.news_wrap div.main.news_index a.news_list:hover h3 {
  color: var(--blue);
}



div.greeting01.greeting02 {
}
div.greeting01.greeting02 h3 {
}
div.greeting01.greeting02 h3 i.fa-solid.fa-circle-dot {
}
div.greeting01.greeting02 div.profile {background: #dbdbdb;border-radius: 20px;padding: 2vw 2vw;margin: 1em 0;}
div.greeting01.greeting02 div.profile h4 {
}
div.greeting01.greeting02 div.profile p {
}
div.greeting01.greeting02 div.profile dl {display: block;margin: 1em 0;}
div.greeting01.greeting02 div.profile dl dt {font-weight: 800;}
div.greeting01.greeting02 div.profile dl dd {
}


section.contact01{
    width: 100%;
    max-width: 900px;
    margin: 2rem auto 0 auto;
}

/* ===== フォーム全体 ===== */
section.form {
  width: 100%;
  max-width: 900px;
  margin: 4rem auto;
  font-size: 16px;
}

/* ===== table ===== */
section.form table {
  width: 100%;
  border-collapse: collapse;
}

section.form th,
section.form td {
  padding: 1.2em 1em;
  vertical-align: top;
  border-bottom: 1px solid #ddd;
}

/* 見出し側 */
section.form th {
  width: 30%;
  text-align: left;
  font-weight: 600;
  background: #f7f7f7;
  white-space: nowrap;
}

/* 入力側 */
section.form td {
  width: 70%;
}

/* ===== 必須・任意 ===== */
section.form .his {
  margin-left: .5em;
  font-size: 12px;
  color: #fff;
  background: #c00;
  padding: .2em .6em;
  border-radius: 3px;
}

section.form .nin {
  margin-left: .5em;
  font-size: 12px;
  color: #555;
  background: #e0e0e0;
  padding: .2em .6em;
  border-radius: 3px;
}

/* ===== input共通 ===== */
section.form input[type="text"],
section.form input[type="email"],
section.form input[type="tel"],
section.form textarea {
  width: 100%;
  padding: .8em 1em;
  font-size: 16px;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}

section.form textarea {
  min-height: 150px;
  resize: vertical;
}

/* focus */
section.form input:focus,
section.form textarea:focus {
  outline: none;
  border-color: #333;
}

/* ===== 送信ボタン ===== */
.form-submit {
  text-align: center;
  margin-top: 3rem;
}

.form-submit input[type="submit"] {
  background: #000;
  color: #fff;
  font-size: 16px;
  padding: 1em 3em;
  border: none;
  border-radius: 30px;
  cursor: pointer;
  transition: opacity .3s;
}

.form-submit input[type="submit"]:hover {
  opacity: .8;
}

/* ===== CF7 エラー ===== */
.wpcf7-not-valid-tip {
  font-size: 13px;
  color: #c00;
  margin-top: .5em;
}

.wpcf7-response-output {
  margin-top: 2em;
  padding: 1em;
  border-radius: 4px;
}

/* ===== SP対応 ===== */
@media screen and (max-width: 768px) {

  section.form table,
  section.form tbody,
  section.form tr,
  section.form th,
  section.form td {
    display: block;
    width: 100%;
  }

  section.form tr {
    margin-bottom: 1.5rem;
  }

  section.form th {
    background: none;
    border-bottom: none;
    padding-bottom: .3em;
  }

  section.form td {
    padding-top: 0;
  }
}

p.notfound {width: 80%;max-width: 800px;margin: 3em auto;}
p.notfound b {
}
p.notfound a {text-decoration: underline;}
#pagetop {
  width: 48px;
  height: 48px;
  border: none;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-size: 18px;
  cursor: pointer;
}

/* CF7のラジオボタンを強制的に復活させる */
.wpcf7-list-item-label {
    display: inline !important;
}

.wpcf7-form input[type="radio"] {
    all: revert !important; /* 全てのスタイルを初期化して戻す */
    display: inline-block !important;
    width: 16px !important;
    height: 16px !important;
    margin-right: 5px !important;
    cursor: pointer !important;
}

/* 項目ごとに改行して見やすくする（任意） */
.wpcf7-list-item {
    display: block !important;
    margin-bottom: 8px !important;
}

/* すべてのチェックボックスを強制的に表示させる */
.wpcf7-acceptance input[type="checkbox"] {
    display: inline-block !important;
    appearance: checkbox !important;
    -webkit-appearance: checkbox !important;
    width: 20px !important;
    height: 20px !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    left: 0 !important;
    margin-right: 10px !important;
}

/* 文字と重ならないように調整 */
.wpcf7-list-item-label {
    display: inline !important;
}


input#zip{
    width: 50%;
}

