/*!
Theme Name: ikedakubin_theme-ver1
Theme URI: http://underscores.me/
Author: alimardesign
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: ikedakubin_theme-ver1
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

ikedakubin_theme-ver1 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/* CSS Document */
/* ======================================================
   Document root & structure（文書の基本構造）
   ====================================================== */ :root {
  /* Color */
  --color-main: #424242;
  --color-sub: #9E9E9E;
  --color-link: #66BB6A;
  --color-link-main: #2E7D32;
  --color-link-sub: #9C27B0;
  --color-link-disabled: #BDBDBD;
  --color-accent: #0277BD;
  --color-bg: #FFFFFF;
  --color-bg-light: #F5F5F5;
  --color-bg-dark: #2E7D32;
  --color-border: #E0E0E0;
  --color-caution: #D50000;
  --color-badge-new: #FF1744;
  --color-badge-cat: #0277BD;
  /* Space（Utilities用） */
  --space-0: 0px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-24: 24px;
  --space-32: 32px;
  --space-40: 40px;
  --space-48: 48px;
  --space-56: 56px;
  --space-64: 64px;
}
* {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
  min-height: 0;
  min-width: 0;
}
*:focus {
  outline: none;
}
html {
  font-size: 14px;
  box-sizing: border-box;
}
head {} /* メタ情報・タイトル・CSS/JS読み込みなど */
body {
  width: 100%;
  font-family: 'Outfit', 'Noto Sans JP', sans-serif;
  font-style: normal;
  font-weight: 500;
  line-height: 1.8;
  color: var(--color-main);
  background-color: var(--color-bg);
  margin: 0 auto;
  padding: 0;
  letter-spacing: 0.05em;
  -webkit-font-smoothing: antialiased;
  word-wrap: break-word;
  overflow-wrap: break-word;
  display: block;
  overflow: auto;
  font-feature-settings: "palt";
  line-break: strict;
}
input:-webkit-autofill {
  transition: background-color 5000s ease-in-out 0s !important;
}
/* ======================================================
   Inline text（インラインテキスト・装飾系）
   ====================================================== */
a {
  color: var(--color-link-main);
  text-decoration: underline;
  transition: all 0.5s;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  cursor: pointer;
}
a:hover {
  color: var(--color-link-main);
  text-decoration: none;
}
span {
  font-size: 0.8em;
}
strong {
  font-weight: 700;
}
em {} /* 通常の強調（斜体など） */
i {} /* アイコンや外国語など（意味的ではなくスタイル用） */
b {} /* 強調なしの太字 */
mark {} /* 強調ハイライト */
small {} /* 補足や注釈の小文字 */
sub {
  font-size: 0.6em;
  vertical-align: sub;
}
sup {
  vertical-align: middle;
  color: #FF1744;
  font-size: 100%;
  top: -3px;
}
cite {} /* 出典・引用の参照 */
code {} /* コード・プログラム断片 */
data {} /* 機械可読データのマークアップ */
dfn {} /* 用語定義 */
kbd {} /* キー入力（例：Ctrl+C） */
s {} /* 取り消し線（非推奨または無効な内容） */
samp {} /* 出力サンプル */
time {
  font-size: 0.87rem;
  margin: 0;
  padding: 0;
  color: #757575;
  display: inline-block;
  line-height: 1;
  font-style: italic;
  letter-spacing: 0.03em;
}
/*
time:before {
  font-family: 'Font Awesome 7 Free';
  content: '\f017';
  padding: 0 4px 0 0;
  display: inline-block;
  vertical-align: -1px;
  font-size: 0.9rem;
  line-height: 1;
  font-weight: 400;
  font-style: normal;
}
*/
u {} /* 下線（意味を持たない） */
var {} /* 変数名など */
bdi {} /* 双方向テキストの分離 */
bdo {} /* 双方向テキストの上書き */
q {} /* インライン引用 */
ruby {} /* ルビ（ふりがな） */
rb {}
rt {}
rtc {}
rp {} /* ルビの括弧（旧ブラウザ対策） */
.alignleft {
  width: 48%;
  float: left;
  margin: 0 0 12px 0;
}
.alignright {
  width: 48%;
  float: right;
  margin: 0 0px 12px 0;
}
.aligncenter {
  clear: both;
  display: block;
  margin: 0 auto 0 auto;
}
div {
  width: 100%;
  margin: 0;
  padding: 0;
  display: block;
}
/* ======================================================
   Text content（文章系コンテンツ）
   ====================================================== */
h1, h2, h3, h4, h5, h6 {
  font-weight: 700;
  text-align: left;
  line-height: 1.3;
  letter-spacing: 0.04em;
}
h1 {
  font-size: 2.986rem;
  margin: 0 0 8px 0;
}
h1.title-404 {
  font-size: 3.027rem;
  padding: 0;
  line-height: 1.3;
  font-weight: 300;
}
h2 {
  font-size: 2.488rem;
  margin: 48px 0 12px 0;
}
h3 {
  font-size: 2.074rem;
  margin: 32px 0 12px 0;
}
h4 {
  font-size: 1.728rem;
  margin: 24px 0 8px 0;
}
h5 {
  font-size: 1.44rem;
  margin: 16px 0 8px 0;
}
h6 {
  font-size: 1.2rem;
  margin: 16px 0 8px 0;
}
p {
  margin: 4px 0 0 0;
  padding: 0;
  display: block;
  text-align: justify;
  background: transparent;
}
blockquote {
  margin: 32px 0 !important;
  padding: 16px 18px;
  border-left: 4px solid var(--color-border);
  background: rgba(0, 0, 0, .02);
}
blockquote p {
  margin: 0;
}
.note-mark {
  color: var(--color-caution);
  font-size: 0.8em;
  margin-left: 2px;
  vertical-align: baseline;
}
.notes {
  margin: 12px 0 16px 0;
  padding-left: 1.0em;
  color: var(--color-sub);
  line-height: 1.6;
}
.notes li {
  list-style: "* ";
  font-size: 0.9rem;
}
.notes__caution {
  color: var(--color-caution);
}
pre {} /* 整形済みテキスト（コードなど） */
hr {
  width: 100%;
  max-width: 100%;
  margin: 64px auto;
  border-top: 1px solid var(--color-border);
}
address {} /* 住所や連絡先情報 */
/* ======================================================
   Lists（リスト）
   ====================================================== */
ul {
  list-style: disc;
  margin: 12px 0;
  padding: 0 0 0 16px;
  display: block;
  line-height: 1.8;
}
ol {
  list-style-type: decimal;
  margin: 12px 0;
  padding: 0 0 0 16px;
  display: block;
  font-variant-east-asian: normal;
}
li {
  font-size: 1.0rem;
  font-weight: 500;
  margin: 8px 0 0 0;
  padding: 0;
  display: list-item;
  text-align: justify;
  background: transparent;
}
.step {
  list-style: none;
  counter-reset: step;
  padding: 0;
}
.step > li {
  counter-increment: step;
  position: relative;
  padding-left: 3rem;
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 700;
}
.step > li::before {
  content: counter(step) ".";
  position: absolute;
  top: -9px;
  left: 0;
  font-size: 2rem;
  font-weight: bold;
}
dl {
  display: grid;
  margin: 16px 0;
  grid-template-columns: max-content auto;
}
dt, dd {
  padding: 16px 16px 16px 0;
  border-bottom: 1px dotted var(--color-border);
}
dt {
  font-weight: 600;
}
dd {
  margin: 0 0 0 0;
  padding: 16px 16px;
}
/* ======================================================
   Table（表組み）
   ====================================================== */
table {
  width: 100%;
  border-collapse: collapse;
}
caption {} /* 表タイトル */
thead {} /* 表ヘッダー行 */
tbody {} /* 表の本体行 */
tfoot {} /* 表のフッター行 */
th, td {
  padding: 12px 16px;
  border: 1px solid #ddd;
  text-align: left;
}
th {
  background: #f5f5f5;
  font-weight: bold;
}
tr:nth-child(even) {
  background: #fafafa;
}
colgroup {} /* 列グループ */
col {} /* 列定義 */
/* ======================================================
   Embedded content（埋め込みコンテンツ）
   ====================================================== */
figure {
  width: 100%;
  margin: 0 auto;
  padding: 0;
  display: block;
}
figure + figure {
  margin: 24px 0 0 0;
}
* + figure {
  margin: 24px 0 0 0;
}
figcaption {
  font-size: 0.85rem;
  margin: 8px 0 0 0;
  padding: 0;
  display: block;
  color: var(--color-sub);
  clear: both;
}
img {
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  /* line-height: 1; */
  display: block;
}
.flyer {
  background-color: var(--color-bg-light);
  padding: 56px 32px;
}
.flyer img {
  width: 40%;
  box-shadow: 8px 10px 16px rgba(0, 0, 0, 0.15);
}
.figure--step {
  background-color: #c6e3d8;
  padding: 32px;
}
.figure--step img {
    width: 80%;
    margin: 16px auto;
}
picture {} /* 画像のレスポンシブ対応 */
iframe {} /* 外部ページの埋め込み */
.video {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 56.25%; /* 高さを指定(16:9) */
}
.video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
audio {} /* 音声 */
canvas {} /* 描画用キャンバス */
embed {} /* 外部リソース埋め込み（PDF等） */
object {} /* 外部リソース・プラグイン */
source {} /* メディアソース指定（video/audio/picture内） */
track {} /* 字幕・キャプションデータ */
map {
  width: 100%;
  margin: 16px auto;
  padding: 0;
  display: block;
}
area {} /* イメージマップ内の領域 */
/* ======================================================
   Sectioning（セクション構造）
   ====================================================== */
header {
  width: fit-content;
  margin: 0 auto;
  padding: 0;
  position: fixed;
  top: 3%;
  left: 4%;
  z-index: 9000;
  /*background-color: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 20px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);*/
}
@media (max-width: 768px) {
  header {
  width: 100%;
  height: 80px;
  top: 0;
  left: 0;
    background: #FFF;
  }
}
.site-branding {
  width: 170px;
  margin: 0;
  padding: 0;
}
@media (max-width: 768px) {
  .site-branding {
    width: 260px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}
.site-title {
  margin: 0;
  padding: 0;
}
.site-description {
  display: none;
}
nav {
  margin: 0;
  padding: 0;
  display: block;
}
main {
  display: block;
  margin: 152px auto 0 auto;
  width: 480px;
  max-width: 480px;
  background: var(--color-bg);
  position: relative;
  overflow: auto;
  border-radius: 8px 8px 0 0;
}
@media (max-width: 768px) {
  main {
    width: 100%;
    max-width: 100%;
  border-radius: 0;
    margin: 80px auto 0 auto;
  }
}
/* 背景全体 */
.global-bg {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  background: #111;
}
.global-bg__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.02);
  transition: opacity 1.6s ease, transform 8s linear;
  will-change: opacity, transform;
  backface-visibility: hidden;
}
.global-bg__video.is-active {
  opacity: 1;
  transform: scale(1.08);
}
.global-bg__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.28);
  pointer-events: none;
}
@media (max-width: 768px) {
  .global-bg__video, .global-bg {
    display: none;
  }
}
section, article {
  width: 100%;
  max-width: 100%;
  margin: 88px auto;
  padding: 0;
  display: block;
}
.section--alt {
  padding: 88px 0;
  background: var(--color-bg-light);
}
.section-title, .entry-title {
  font-size: 2.986rem;
  margin: 0 0 18px 0;
}
.section-title span, .entry-title span {
  font-size: 0.36em;
  margin: 0 0 0 0;
  display: block;
}
@media (max-width: 400px) {
  .section-title span, .entry-title span {
    margin: 0;
    display: block;
  }
}
.section--initiatives {
  margin: -88px auto 88px auto;
}
.section--initiatives .section-title {
  margin: -40px 0 0 0;
  font-size: clamp(2rem, 10vw, 4.0rem);
  text-align: center;
  position: relative;
  z-index: 9;
}
.section--initiatives .section-title span {
  font-size: 0.28em;
  display: block;
}
.section--contact {
  margin: 88px auto 0 auto;
  padding: 88px 0;
  background: var(--color-bg-dark);
  color: #FFF;
}
.section--contact * {
  text-align: center;
}
aside {} /* 補足情報・サイドバーなど */
.container, .site-info {
  width: 84%;
  max-width: 960px;
  padding: 0;
  margin: 0 auto;
}
.container--service {
  background-color: var(--color-link-main);
  overflow: auto;
}
.container--service h2 {
  color: #FFF;
  text-align: center;
}
.service--head {
  width: 100%;
  line-height: 1;
  margin: 0 0 -4px 0;
  display: block;
}
.container--service .container {
  margin: 6% auto;
}
.initiatives--head-bg {
  height: 720px;
  margin: 0;
  padding: 0;
  display: block;
  position: relative;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  background-attachment: initial;
  background-image: url("assets/images/our-initiatives.jpg");
}
.post, .page {
  margin: 0 auto;
}
.media__wrap {
  margin: 48px 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}
@media (max-width: 730px) {
  .media__wrap {
  display: block;
  }
  .media__text {
    margin: 0 0 16px 0;
  }
}
.media__text h2:first-of-type {
  margin-top: 0px;
}
.media__wrap__greeting {
  grid-template-columns: 1fr 240px;
}
.profile img {
  width: 200px;
  height: 200px;
  object-fit: cover;
  /*border-radius: 50%;*/
  object-position: 0px;
  margin: 0 auto 24px auto;
}
.profile figcaption {
  font-size: 1.0rem;
  color: var(--color-main);
  text-align: center;
}
.map {
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin: 0 auto;
}
/* ハンバーガーボタン */
.menu-toggle {
  position: fixed;
  top: 17px;
  right: 20px;
  width: 44px;
  height: 44px;
  border: none;
  background: transparent;
  cursor: pointer;
  z-index: 10000;
}
.nav-toggle__bar {
  position: absolute;
  left: 10px;
  right: 10px;
  height: 2px;
  background: var(--color-bg);
  transition: 0.3s;
}
@media (max-width: 768px) {
.nav-toggle__bar {
  background: var(--color-main);
  }
}
.nav-toggle__bar:nth-child(1) {
  top: 14px;
}
.nav-toggle__bar:nth-child(2) {
  top: 21px;
}
.nav-toggle__bar:nth-child(3) {
  top: 28px;
}
/* メニュー */
.main-navigation ul {
  position: fixed;
  top: 0;
  right: 0;
  transform: translateX(110%);
  transition: transform 0.55s cubic-bezier(.22, 1, .36, 1);
  width: 260px;
  height: 100vh;
  padding: 100px 30px;
  margin: 0;
  background: #fff;
  box-shadow: 0 0 24px rgba(0, 0, 0, 0.40);
  list-style: none;
  z-index: 9999;
}
.main-navigation li {
  margin-bottom: 20px;
}
.main-navigation a {
  font-size: 1.1rem;
  text-decoration: none;
  color: #333;
}
/* OPEN */
body.is-nav-open .main-navigation ul {
  transform: translateX(0);
}
/* ハンバーガー → × */
body.is-nav-open .nav-toggle__bar:nth-child(1) {
  transform: rotate(45deg);
  top: 21px;
  background: var(--color-main);
}
body.is-nav-open .nav-toggle__bar:nth-child(2) {
  opacity: 0;
}
body.is-nav-open .nav-toggle__bar:nth-child(3) {
  transform: rotate(-45deg);
  top: 21px;
  background: var(--color-main);
}
/* Overlay（背景暗くする） */
.nav-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .5);
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
  z-index: 9998;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.45s cubic-bezier(.22, 1, .36, 1), backdrop-filter 0.45s cubic-bezier(.22, 1, .36, 1);
}
body.is-nav-open .nav-overlay {
  opacity: 1;
  pointer-events: auto;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
/* スクロール固定 */
body.is-nav-open {
  overflow: hidden;
  margin: 0 auto;
}
.sub-navigation {
  width: fit-content;
  /*position: absolute;
  top: 50%;
  right: 80px;
  transform: translate(0%, -50%);*/
  margin: 56px 0 0 0;
}
@media (max-width: 768px) {
  .sub-navigation {
    display: none;
  }
}
.sub-navigation ul {
  display: block;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.sub-navigation ul li {
  font-size: 0.9rem;
  line-height: 1;
  margin: 0 0 32px 0;
}
.sub-navigation ul li a {
  color: var(--color-bg);
  text-decoration: none;
  font-weight: 700;
}
.sub-navigation ul li a:after {
  font-size: 0.7rem;
  font-family: 'Font Awesome 7 Free';
  content: '\f054';
  padding: 0 0 0 4px;
  display: inline-block;
  vertical-align: 1px;
  line-height: 1;
  font-weight: 900;
  transition: 0.2s;
}
.sub-navigation ul li a:hover {
  color: var(--color-bg);
}
.sub-navigation ul li a:hover::after {
  transform: translateX(3px);
}
/* フッター */
footer {
  width: 480px;
  padding: 56px 0 32px 0;
  margin: 0 auto 152px auto;
  background-color: #3cb5d3;
  overflow: auto;
  position: relative;
  border-radius: 0 0 8px 8px;
}
.footer--head {
  width: 480px;
  max-width: 480px;
  line-height: 1;
  margin: 0 auto -4px auto;
  padding: 80px 0 0 0;
  display: block;
  background: #FFF;
}
@media (max-width: 768px) {
footer {
    width: 100%;
    max-width: 100%;
  padding: 56px 0;
  margin: 0 auto;
  }
.footer--head {
  width: 100%;
  max-width: 100%;
}
}
.footer-company {
  color: #FFF;
}
.footer-company__logo {
  width: 160px;
}
.footer-company__tel a {
  text-decoration: none;
}
.footer-company__tel a:hover {
  color: #FFF;
}
.footer-navigation {
  margin: 48px 0;
}
.footer-navigation ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
  column-gap: 24px;
  row-gap: 16px;
}
.footer-navigation ul li {
  font-size: 0.9rem;
  line-height: 1;
  margin: 0;
}
.footer-navigation ul li a {
  color: #FFF;
  text-decoration: none;
}
.footer-navigation ul li a:after {
  font-size: 0.7rem;
  font-family: 'Font Awesome 7 Free';
  content: '\f054';
  padding: 0 0 0 4px;
  display: inline-block;
  vertical-align: 1px;
  line-height: 1;
  font-weight: 900;
  transition: 0.2s;
}
.footer-navigation ul li a:hover {
  color: var(--color-link-main);
}
.footer-navigation ul li a:hover::after {
  transform: translateX(3px);
}
.footer__bottom {
  padding-top: 32px;
  border-top: 1px solid var(--color-border);
  display: block;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
}
@media (max-width: 950px) {
  .footer__bottom {
    grid-template-columns: 1fr;
    grid-row-gap: 16px 
  }
}
.footer__copyright {
  color: #FFF;
  margin: 12px 0 0 0;
  font-size: 0.87rem;
  text-align: left;
}
.footer__bottom-pc {
  width: fit-content;
  position: fixed;
  bottom: 4%;
  left: 4%;
  /*transform: translate(-50%, 0%);*/
  display: block;
}
.footer__bottom-pc .footer__copyright {
  color: #FFF;
}
@media (max-width: 768px) {
  .footer__bottom-pc {
    display: none; 
  }
}
.legal-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0 20px;
}
.legal-navigation ul li {
  font-size: 0.87rem;
  line-height: 1;
  margin: 0;
}
.legal-navigation ul li a {
  color: #FFF;
  text-decoration: none;
  text-underline-offset: 3px;
}
.legal-navigation ul li a:hover {
  color: #FFF;
}
.footer__bottom-pc .legal-navigation ul li a {
  color: #FFF;
}
.footer__bottom-pc .legal-navigation ul li a:hover {
  color: #FFF;
}
.current-menu-item a, .current-menu-parent a {
  color: var(--color-link-main)!important;
}
.legal-navigation ul li.current-menu-item a, .legal-navigation ul li.current-menu-parent a {
  color: var(--color-link-main)!important;
  font-weight: 700;
}
/* ======================================================
   Component（カードなど）
   ====================================================== */
/* ボタン */
.btns {
  display: flex;
  gap: 24px;
  margin: 24px auto 0 auto;
}
.btn {
  display: block;
  align-items: center;
  justify-content: center;
  padding: 12px 28px;
  font-size: 1.0rem;
  font-weight: 700;
  text-decoration: none;
  border-radius: 999px;
  border: 1px solid var(--color-link-main);
  background: var(--color-link-main);
  color: #fff;
  transition: .25s;
  margin: 32px auto 0 auto;
  width: fit-content;
}
.btn-inversion {
  color: var(--color-link-main);
  border: 1px solid var(--color-bg);
  background: var(--color-bg);
}
.btn:hover {
  color: #FFF;
  background: var(--color-link-main);
  border: 1px solid var(--color-link-main);
  padding: 12px 40px;
}
.btn-inversion:hover {
  color: var(--color-link-main);
  border: 1px solid var(--color-bg);
  background: var(--color-bg);
  padding: 12px 40px;
}
.btn-disabled {
  pointer-events: none;
  background: var(--color-link-disabled);
}
.btns .btn {
  margin: 0;
}
.more__link, .pdf__link, .apply__link {
  font-size: 0.889rem;
  font-weight: 600;
  display: block;
  margin: 20px 0 0 0;
  width: fit-content;
  text-decoration: none;
  color: var(--color-main);
}
.right__link {
  margin: 20px 0 0 auto;
}
.more__link:after, .pdf__link:after, .apply__link:after {
  font-family: 'Font Awesome 7 Free';
  content: '\f054';
  padding: 0 0 0 4px;
  display: inline-block;
  vertical-align: 0px;
  line-height: 1;
  font-weight: 900;
  transition: 0.2s;
}
.more__link:hover, .map__link:hover {
  color: var(--color-link-main);
}
.more__link:hover::after, .pdf__link:hover::after, .apply__link:hover::after {
  transform: translateX(4px);
}
.more__link-disabled {
  pointer-events: none;
  color: var(--color-link-disabled);
}
.pdf__link {
  color: #F40F02;
}
.pdf__link:before {
  font-size: 1.4rem;
  font-family: 'Font Awesome 7 Free';
  content: '\f1c1';
  padding: 0 4px 0 0;
  display: inline-block;
  vertical-align: 0px;
  line-height: 1;
  font-weight: 400;
}
.pdf__link:hover {
  color: #F40F02;
  opacity: 2.0;
}
.apply__link:before {
  font-size: 1.4rem;
  font-family: 'Font Awesome 7 Free';
  content: '\f15c';
  padding: 0 5px 0 0;
  display: inline-block;
  vertical-align: 0px;
  line-height: 1;
  font-weight: 400;
}
.map__link {
  font-weight: 600;
  margin: 0 0 0 12px;
  width: fit-content;
  text-decoration: none;
  color: var(--color-main);
}
.map__link:after {
  font-family: "Font Awesome 7 Free";
  content: '\f35d';
  font-weight: 900;
  padding: 0 0 0 4px;
  vertical-align: 1px;
  display: inline-block;
  font-size: 1rem;
  line-height: 1;
}
/* カード */
.cards, .tiles {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(2, 1fr);
  margin: 24px auto 0 auto;
}
.container--service .tile {
  
}
@media (max-width: 768px) {
  .cards, .tiles {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 500px) {
  .cards {
    grid-template-columns: 1fr;
  }
}
  .tiles--horizontal {
    grid-template-columns: 1fr;
  }
.card {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
  transition: transform .3s, box-shadow .3s;
}
.card:hover {
  cursor: pointer;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.15);
  transform: translateY(-4px) !important;
}
.card a {
  color: var(--color-main);
  text-decoration: none;
}
.card__img {
  height: 176px;
  margin: 0;
  padding: 0;
  display: block;
  position: relative;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  background-attachment: initial;
  filter: brightness(100%);
  transition: all 0.3s linear;
}
.card__body {
  padding: 20px;
}
.card__title {
  font-size: 1.2rem;
  margin: 0 0 12px 0;
}
.card__date {
  font-size: 0.87rem;
  line-height: 1.4;
  margin: 10px 0 0 0;
}
.card__date:first-of-type {
  margin: 16px 0 0 0;
}
.card__date:before {
  font-size: 0.9rem;
  font-family: 'Font Awesome 7 Free';
  content: '\f0da';
  padding: 0 6px 0 0;
  display: inline-block;
  vertical-align: 0px;
  line-height: 1;
  font-weight: 900;
}
.card__date + time {
  margin: 20px 0 0 0;
}
.card__schedule:before {
  font-size: 1.1rem;
  content: '\f274';
  font-weight: 900;
  vertical-align: -1px;
}
.card__place:before {
  font-size: 1.1rem;
  content: '\f3c5';
  font-weight: 900;
  vertical-align: -1px;
}
.tile {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
  transition: transform .3s, box-shadow .3s;
  color: var(--color-main);
  text-decoration: none;
  padding: 32px 24px;
}
.container--service .tile {
  background-color: transparent;
  box-shadow: none;
  color: #FFF;
}
.tile--horizontal {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 16px;
  place-items: center;
}
.tile:hover {
  cursor: pointer;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.15);
  transform: translateY(-4px) !important;
  color: #FFF;
}
.tile a {
  color: var(--color-main);
  text-decoration: none;
}
.container--service .tile a {
  color: #FFF;
}
.tile__img {
  width: 140px;
  display: grid;
  margin: 0 auto;
}
.tile--horizontal .tile__img {
  width: 100px;
}
.tile__body {
  margin: 24px 0 0 0;
}
.tile--horizontal .tile__body {
  margin: 0;
}
.tile__body p {
  text-align: center;
}
.tile__title {
  font-size: 1.4rem;
  margin: 0 0 0 0;
  text-align: center;
}
.tile--horizontal .tile__title {
  text-align: left;
}
/* バッジ共通 */
.badge {
  color: #FFF;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 0.8rem;
  background: var(--color-badge-new);
  line-height: 1;
  letter-spacing: 0.04em;
}
/* NEW：左上 */
.badge--new {
  position: absolute;
  top: 0px;
  left: 0;
  border-radius: 8px 0 8px 0;
}
.badge--cat {
  background: var(--color-badge-cat);
}
/* お知らせ */
.info {
  margin: 24px 0 0 0;
}
.info__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 20px;
}
.info__item {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 0 0 20px 0;
  margin: 0;
  border-bottom: 1px dotted var(--color-border);
}
.info__item p {
  margin: 8px 0 0 0;
}
.info__item a {
  color: var(--color-main);
  text-decoration: none;
}
.info__item a:hover {
  color: var(--color-link-main);
  text-decoration: none;
}
.info__item:last-of-type {
  padding: 0;
  border-bottom: none;
}
.info__meta {
  display: flex;
  gap: 8px;
  align-items: center;
}
.info__date {
  color: var(--color-sub);
  font-size: 1.2rem;
}
.info__link {
  font-size: 1.3rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .info__item {
    grid-template-columns: 1fr;
    gap: 6px;
    align-items: flex-start;
  }
  .info__link {
    white-space: normal;
  }
}
/* hero */
.hero {
  margin: 0 auto;
  position: relative;
  overflow: hidden;
  min-height: clamp(420px, 60vh, 720px);
  display: grid;
  align-items: center;
}
.hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.05);
}
.hero__inner {
  position: absolute;
  padding: 0;
  color: #FFF;
  width: fit-content;
  z-index: 10;
  top: 50%;
  left: 64px;
  transform: translate(0%, -50%);
}
.hero__kicker {
  margin: 0 0 10px;
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .9;
}
.hero__title {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1;
  writing-mode: vertical-rl;
  color: #FFF;
  font-weight: 600;
  position: fixed;
  top: 50%;
  right: 4%;
  transform: translate(0%, -50%);
}
@media (max-width: 768px) {
  .hero__title {
    display: none;
  }
}

.hero__lead {
  margin: 0 0 22px;
  max-width: 56ch;
  font-size: clamp(14px, 1.6vw, 18px);
  line-height: 1.9;
  opacity: .95;
}
.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
/* 動画が苦手な環境（省データ/省電力）対策：静止画に寄せる */
@media (prefers-reduced-motion: reduce) {
  .hero__video {
    display: none;
  }
  .hero__media {
    background: url("/assets/images/hero-poster.jpg") center / cover no-repeat;
  }
}
/* パンくず */
.breadcrumb {
  width: 480px;
  max-width: 480px;
  margin: 0 auto;
  font-size: 1.0rem;
  background-color: #3cb5d3;
  overflow: auto;
}
@media (max-width: 768px) {
.breadcrumb {
  width: 100%;
  max-width: 100%;
  }
}
.screen-reader-text{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.breadcrumb__list {
  width: 88%;
  max-width: 960px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 16px auto 0 auto;
  padding: 0 0 16px 0;
  list-style: none;
  border-bottom: 1px solid var(--color-border);
}
.breadcrumb__item {
  margin: 0;
}
.breadcrumb__sep {
  opacity: 0.5;
  margin: 0 4px;
  font-size: 1.5rem;
  font-weight: 200;
  color: #FFF;
}
.breadcrumb__link {
  color: #FFF;
  text-decoration: none;
}
.breadcrumb__link:hover {
  text-decoration: none;
}
.breadcrumb__current{
  color: #FFF;
  max-width:40ch;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
/* ======================================================
   Interactive（インタラクティブ要素）
   ====================================================== */
details {} /* 折りたたみ詳細 */
summary {} /* detailsの見出し */
dialog {} /* ダイアログ・モーダル */
slot {} /* Web Components用のスロット */
/* アコーディオン */
.faq {
  margin: 24px auto 0 auto;
}
.faq-item {
  overflow: clip;
  background: #FFF;
  border-radius: 8px;
  margin: 0 0 24px 0;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
}
.faq-q {
  list-style: none;
  cursor: pointer;
  padding: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.faq-q__text, .faq-a p {
  font-size: 1.0rem;
  display: grid;
  grid-template-columns: 48px 1fr; /* ← アイコン / テキスト */
  column-gap: 10px;
  align-items: center;
}
.faq-q__text:before {
  font-size: 1.5rem;
  font-family: "Font Awesome 7 Free";
  content: '\51';
  font-weight: 900;
  padding: 7px 0 0 0;
  display: inline-block;
  line-height: 1;
  width: 40px;
  height: 40px;
  color: #FFF;
  background: var(--color-main);
  border: 2px solid var(--color-main);
  text-align: center;
  border-radius: 50%;
  margin: 0 10px 0px 0px;
}
.faq-q::-webkit-details-marker {
  display: none; /* Chrome系の三角を消す */
}
.faq-a {
  padding: 0 24px 24px;
}
.faq-a p:before {
  font-size: 1.5rem;
  font-family: "Font Awesome 7 Free";
  content: '\41';
  font-weight: 900;
  padding: 7px 0 0 0;
  display: inline-block;
  line-height: 1;
  width: 40px;
  height: 40px;
  color: var(--color-main);
  background: #FFF;
  border: 2px solid var(--color-main);
  text-align: center;
  border-radius: 50%;
  margin: 0 10px 0px 0px;
  place-items: center; /* ← まず箱の中央に置く */
  flex-shrink: 0;
}
.faq-icon {
  width: 18px;
  height: 18px;
  position: relative;
  flex: 0 0 18px;
}
.faq-icon::before, .faq-icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100%;
  height: 2px;
  background: currentColor;
  transform: translate(-50%, -50%);
  transition: transform .25s ease;
  border-radius: 999px;
}
.faq-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
/* openで×に */
.faq-item[open] .faq-icon::before {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.faq-item[open] .faq-icon::after {
  transform: translate(-50%, -50%) rotate(45deg);
}
/* ======================================================
   Forms（フォーム関連）
   ====================================================== */
form {} /* フォーム全体 */
fieldset {} /* 入力要素のグループ */
legend {} /* fieldsetのタイトル */
label {} /* 入力ラベル */
input {} /* テキストボックス・ボタンなど */
button {} /* ボタン */
select {} /* セレクトボックス */
datalist {} /* 候補リスト（inputと併用） */
optgroup {} /* optionグループ */
option {} /* セレクト項目 */
textarea {} /* 複数行テキスト */
output {} /* 出力結果 */
meter {} /* メーター（進捗や割合） */
progress {} /* 進行状況バー */
/* =========================
pager
========================= */
.pager {
  margin: 64px auto;
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 960px;
}
.pager .page-numbers {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pager .page-numbers li {
  margin: 0;
  padding: 0;
}
.pager a.page-numbers,
.pager span.page-numbers {
  min-width: 32px;
  height: 32px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d9d9d9;
  background: #fff;
  color: var(--color-main);
  font-size: 1.0rem;
  line-height: 1;
  text-decoration: none;
  box-sizing: border-box;
}
.pager a.page-numbers:hover {
  color: #FFF;
  background: var(--color-main);
  border-color: var(--color-main);
}
.pager span.page-numbers.current {
  background: var(--color-sub);
  border-color: var(--color-sub);
  color: #fff;
}
.pager span.page-numbers.dots {
  min-width: auto;
  height: auto;
  padding: 0 4px;
  border: 0;
  background: transparent;
  color: var(--color-main);
}
.pager a.page-numbers.next,
.pager a.page-numbers.prev {
  min-width: 48px;
  padding: 0;
  background: var(--color-main);
  border-color: var(--color-main);
  color: #fff;
  font-size: 1.0rem;
}
.pager a.page-numbers.next:hover,
.pager a.page-numbers.prev:hover {
  opacity: 0.9;
  background: var(--color-main);
}
@media (max-width: 767px) {
  .pager {
    margin-top: 48px;
    justify-content: center;
  }
  .pager .page-numbers {
    gap: 8px;
    flex-wrap: wrap;
  }
  .pager a.page-numbers,
  .pager span.page-numbers {
    min-width: 40px;
    height: 40px;
    padding: 0 10px;
    font-size: 1.0rem;
  }
  .pager a.page-numbers.next,
  .pager a.page-numbers.prev {
    min-width: 50px;
    font-size: 2.4rem;
  }
}
/* ======================================================
   Contact Form 7
   ====================================================== */
/* wpcf7-template */
.wpcf7-list-item {
  margin: 0 0 12px 0;
  display: block;
}
.wpcf7-list-item:last-of-type {
  margin: 0;
}
.form-title {
  margin: 0 0 24px 0;
}
.form-title span {
  display: block;
}
.form__wrap {
  width: 100%;
  margin: 0 auto;
}
.wpcf7 .wpcf7-template {
  color: var(--color-main);
}
.wpcf7 .wpcf7-template a {
  margin: 0;
  padding: 0;
  text-decoration: underline;
  color: inherit;
  transition: opacity 0.25s;
}
.wpcf7 .wpcf7-template a:hover {
  opacity: 0.5;
  transition: opacity 0.25s;
}
.wpcf7 .wpcf7-template div.form__row {
  display: block;
  margin: 0;
  padding: 0;
  border-top: 1px dotted var(--color-border);
  align-items: center;
}
.wpcf7 .wpcf7-template div.form__row:first-of-type {
  border-top: none;
}
@media (max-width: 730px) {
  .wpcf7 .wpcf7-template div.form__row {
  display: block;
  }
}
.wpcf7 .wpcf7-template div.form__row.row-privacy, .wpcf7 .wpcf7-template div.form__row.row-submit {
  display: block;
  border-top: 0;
  margin-top: 24px;
  text-align: center;
}
.wpcf7 .wpcf7-template p.form__label, .wpcf7 .wpcf7-template p.form__body {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.wpcf7 .wpcf7-template p.form__label {
    width: 100%;
  font-size: 0.9rem;
    padding: 24px 16px 16px 0;
}
@media (max-width: 730px) {
  .wpcf7 .wpcf7-template p.form__label {
    width: 100%;
    padding: 24px 16px 16px 0;
  }
}
.wpcf7 .wpcf7-template p.form__body {
    width: 100%;
    padding: 0 8px 24px 0;
}
@media (max-width: 730px) {
  .wpcf7 .wpcf7-template p.form__body {
    width: 100%;
    padding: 0 8px 24px 0;
  }
}
.form__body__line {
  padding: 0 8px 24px 16px !important;
}
.wpcf7 .wpcf7-template div.form__row.row-privacy .form__body, .wpcf7 .wpcf7-template div.form__row.row-submit .form__body {
  width: 100%;
}
.wpcf7 .wpcf7-template p.form__label label {
  font-weight: 700;
  position: relative;
  margin: 0;
  padding: 0;
  padding-left: 56px;
  box-sizing: border-box;
}
.wpcf7 .wpcf7-template p.form__label label::after {
  content: "\4EFB\610F";
  display: block;
  position: absolute;
  top: -4px;
  left: 0;
  width: 40px;
  margin: 0;
  padding: 6px 0;
  border-radius: 2px;
  background-color: var(--color-sub);
  color: #FFF;
  font-size: 0.85rem;
  text-align: center;
  box-sizing: border-box;
  line-height: 1;
}
.wpcf7 .wpcf7-template p.form__label.is-required label {
  position: relative;
}
.wpcf7 .wpcf7-template p.form__label.is-required label::after {
  content: "\5FC5\9808";
  display: block;
  top: -4px;
  right: 0;
  width: 40px;
  padding: 6px 0px;
  background-color: #FF1744;
  color: #FFF;
  font-size: 0.85rem;
  text-align: center;
  line-height: 1;
}
/* テキストフィールド */
.wpcf7 .wpcf7-template input[type=text], .wpcf7 .wpcf7-template input[type=tel], .wpcf7 .wpcf7-template input[type=email], .wpcf7 .wpcf7-template textarea, .wpcf7 .wpcf7-template input[type=date] {
  width: 100%;
  margin: 0;
  padding: 12px 16px;
  border: 1px solid #BDBDBD;
  border-radius: 4px;
  box-shadow: none;
  background-color: #FFF;
  color: var(--color-main);
  font-family: inherit;
  font-weight: inherit;
  font-size: 0.9rem;
  box-sizing: border-box;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.wpcf7 .wpcf7-template input[type=date] {
  width: 32%;
}
/* テキストフィールド placeholder */
.wpcf7 .wpcf7-template input[type=text]::placeholder, .wpcf7 .wpcf7-template input[type=tel]::placeholder, .wpcf7 .wpcf7-template input[type=email]::placeholder, .wpcf7 .wpcf7-template input[type=url]::placeholder, .wpcf7 .wpcf7-template input[type=date]::placeholder, .wpcf7 .wpcf7-template input[type=number]::placeholder, .wpcf7 .wpcf7-template textarea::placeholder {
  color: #BDBDBD;
}
.wpcf7 .wpcf7-template input[type=text]:-ms-input-placeholder, .wpcf7 .wpcf7-template input[type=tel]:-ms-input-placeholder, .wpcf7 .wpcf7-template input[type=email]:-ms-input-placeholder, .wpcf7 .wpcf7-template input[type=url]:-ms-input-placeholder, .wpcf7 .wpcf7-template input[type=date]:-ms-input-placeholder, .wpcf7 .wpcf7-template input[type=number]:-ms-input-placeholder, .wpcf7 .wpcf7-template textarea:-ms-input-placeholder {
  color: #BDBDBD;
}
.wpcf7 .wpcf7-template input[type=text]::-ms-input-placeholder, .wpcf7 .wpcf7-template input[type=tel]::-ms-input-placeholder, .wpcf7 .wpcf7-template input[type=email]::-ms-input-placeholder, .wpcf7 .wpcf7-template input[type=url]::-ms-input-placeholder, .wpcf7 .wpcf7-template input[type=date]::-ms-input-placeholder, .wpcf7 .wpcf7-template input[type=number]::-ms-input-placeholder, .wpcf7 .wpcf7-template textarea::-ms-input-placeholder {
  color: #BDBDBD;
}
/* テキストフィールド フォーカス時 */
.wpcf7 .wpcf7-template input[type=text]:focus, .wpcf7 .wpcf7-template input[type=tel]:focus, .wpcf7 .wpcf7-template input[type=email]:focus, .wpcf7 .wpcf7-template input[type=url]:focus, .wpcf7 .wpcf7-template input[type=date]:focus, .wpcf7 .wpcf7-template input[type=number]:focus, .wpcf7 .wpcf7-template textarea:focus {
  outline: 0;
  border: 1px var(--color-link-main) solid;
  /*box-shadow: 0 0 2px 2px rgba(133, 112, 92, 0.5);*/
}
/* チェックボックス */
.wpcf7 .wpcf7-template input[type=checkbox] {
  display: none;
}
.wpcf7 .wpcf7-template input[type=checkbox] + span {
  cursor: pointer;
  position: relative;
  margin: 0px 24px 0 0;
  padding: 1px 0 0 28px;
  font-size: 0.9rem;
  box-sizing: border-box;
  transition: opacity .25s ease;
}
.wpcf7 .wpcf7-template input[type=checkbox] + span::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 18px;
  height: 18px;
  border: 1px solid #BDBDBD;
  border-radius: 2px;
  background-color: #FFF;
  box-sizing: border-box;
}
.wpcf7 .wpcf7-template input[type=checkbox] + span::after {
  content: "";
  opacity: 0;
  display: block;
  position: absolute;
  top: 2px;
  left: 6px;
  width: 6px;
  height: 10px;
  border-bottom: 2px solid var(--color-link-main);
  border-right: 2px solid var(--color-link-main);
  box-sizing: border-box;
  transform: rotate(40deg);
  transition: opacity 0.25s ease;
}
.wpcf7 .wpcf7-template input[type=checkbox]:checked + span {
  color: var(--color-link-main);
  transition: all 0.25s ease;
}
.wpcf7 .wpcf7-template input[type=checkbox]:checked + span::before {
  opacity: 1;
  border: 1px solid var(--color-link-main);
  /* box-shadow: 0 0 2px 2px rgba(133, 112, 92, 0.5); */
  background-color: var(--color-link-main);
  transition: opacity .25s ease;
}
.wpcf7 .wpcf7-template input[type=checkbox]:checked + span::after {
  opacity: 1;
  border-bottom: 2px solid #fff;
  border-right: 2px solid #fff;
  transition: opacity 0.25s ease;
}
/* ラジオボタン */
.wpcf7 .wpcf7-template input[type=radio] {
  display: none;
}
.wpcf7 .wpcf7-template input[type=radio] + span {
  cursor: pointer;
  position: relative;
  margin: 0px 24px 0 0;
  padding: 1px 0 0 26px;
  font-size: 0.9rem !important;
  box-sizing: border-box;
  transition: opacity .25s ease;
}
.wpcf7 .wpcf7-template input[type=radio] + span::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 18px;
  height: 18px;
  border: 1px solid #BDBDBD;
  border-radius: 50%;
  background-color: #fefefe;
  box-sizing: border-box;
  transition: opacity .25s ease;
}
.wpcf7 .wpcf7-template input[type=radio] + span::after {
  content: "";
  display: block;
  opacity: 0;
  position: absolute;
  box-sizing: border-box;
  transition: opacity .25s ease;
}
.wpcf7 .wpcf7-template input[type=radio]:checked + span {
  color: var(--color-link-main);
}
.wpcf7 .wpcf7-template input[type=radio]:checked + span::before {
  border: 1px solid var(--color-link-main);
}
.wpcf7 .wpcf7-template input[type=radio]:checked + span::after {
  opacity: 1;
  top: 3px;
  left: 3px;
  width: 12px;
  height: 12px;
  background-color: var(--color-link-main);
  border-radius: 50%;
  box-sizing: border-box;
  transition: opacity .25s ease;
}
/* セレクト */
.wpcf7 .wpcf7-template span.select-wrap {
  position: relative;
  width: 250px;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.wpcf7 .wpcf7-template select {
  cursor: pointer;
  width: 250px;
  max-width: 100%;
  margin: 0;
  padding: 16px 16px;
  border: 1px solid #BDBDBD;
  border-radius: 4px;
  box-shadow: none;
  background-color: #FFF;
  background-image: linear-gradient(90deg, var(--color-link-main), var(--color-link-main));
  background-position: 100% 0;
  background-size: 40px 46px;
  background-repeat: no-repeat;
  color: inherit;
  font-size: 0.9rem;
  line-height: 1;
  box-sizing: border-box;
  transition: border-color 0.2s ease, outline 0.2s ease;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.wpcf7 .wpcf7-template select::-ms-expand {
  display: none;
}
.wpcf7 .wpcf7-template span.select-wrap::after {
  content: "";
  pointer-events: none;
  position: absolute;
  display: block;
  width: 10px;
  height: 10px;
  top: 50%;
  right: 16px;
  margin-top: 0px;
  border-bottom: 1px solid #FFF;
  border-right: 1px solid #FFF;
  transform: rotate(45deg) translateY(-50%);
  transform-origin: 50% 0;
  box-sizing: border-box;
}
.wpcf7 .wpcf7-template select:focus {
  outline: 0;
  border: 1px var(--color-link-main) solid;
  /* box-shadow: 0 0 2px 2px rgba(133, 112, 92, 0.5); */
}
.wpcf7 .wpcf7-template span.select-wrap:focus-within::after {
  border-bottom: 1px solid #FFF;
  border-right: 1px solid #FFF;
}
/* 送信ボタン */
.wpcf7 .wpcf7-template .submit-btn {
  position: relative;
  /* width: fit-content; */
  height: auto;
  /* max-width: 100%; */
  margin: 0;
  padding: 0;
  margin-left: auto;
  margin-right: auto;
}
.wpcf7 .wpcf7-template .submit-btn p {
  text-align: center;
}
.wpcf7 .wpcf7-template input[type="submit"] {
  /*波紋の基点とするためrelativeを指定*/
  position: relative;
  /*はみ出す波紋を隠す*/
  overflow: hidden;
  /*ボタンの形状*/
  cursor: pointer;
  width: 240px;
  max-width: 100%;
  padding: 12px 32px;
  border-radius: 999px;
  box-shadow: none;
  background-color: var(--color-link-main);
  color: #FFF;
  text-align: center;
  box-sizing: border-box;
  transition: all .25s;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  letter-spacing: 0.07em
}
.wpcf7 .wpcf7-template input[type="submit"]:disabled {
  cursor: not-allowed;
  box-shadow: none !important;
  background-color: #EEEEEE !important;
  background: #EEEEEE !important;
  color: #9E9E9E !important;
}
.wpcf7 .wpcf7-template input[type="submit"]:disabled:hover {
  box-shadow: none !important;
  transform: translateY(0px) !important;
}
.wpcf7 .wpcf7-template input[type="submit"]:focus {
  outline: 0;
  /* box-shadow: 0 0 2px 2px rgba(133, 112, 92, 0.5); */
}
.wpcf7 .wpcf7-template input[type="submit"]::after {
  content: "";
  /*絶対配置で波紋位置を決める*/
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  /*波紋の形状*/
  background: radial-gradient(circle, #FFF 10%, transparent 10%) no-repeat 50%;
  transform: scale(10, 10);
  /*はじめは透過0に*/
  opacity: 0;
  /*アニメーションの設定*/
  transition: transform 0.3s, opacity 1s;
}
/*クリックされたあとの形状の設定*/
.wpcf7 .wpcf7-template input[type="submit"]:active::after {
  transform: scale(0, 0);
  transition: 0s;
  opacity: 0.3;
}
.wpcf7-spinner {
  visibility: hidden;
  display: block;
  background-color: #23282d; /* Dark Gray 800 */
  opacity: 0.75;
  width: 24px;
  height: 24px;
  border: none;
  border-radius: 100%;
  padding: 0;
  margin: 16px auto 0 auto;
  position: relative;
}
.form__body__outer {
    width: 100%;
}
@media (max-width: 730px) {
  .form__body__outer {
    width: 100%;
  }
}
.form__body__outer p.form__body {
  width: 100% !important;
}
input#custom-datepicker {
  width: 48%;
}
span.note-zip2 {
  margin: 8px 0 0 0;
  overflow: auto;
  display: block;
}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
  border-color: #ffb900; /* Yellow */
  width: 88%;
  margin: 0 auto 88px auto;
  max-width: 960px;
}
.wpcf7-not-valid-tip {
  font-size: 0.87rem;
  margin: 16px 0 0 0;
  padding: 8px 12px;
  font-weight: 500;
  border: 1px solid;
  display: inline-block;
  line-height: 1;
}
.grecaptcha-badge {
    /* 表示を消す */
    visibility: hidden !important;
}
.mt-16 {
  margin-top: 16px;
}
.mt-24 {
  margin-top: 24px;
}
.mt-32 {
  margin-top: 32px;
}
.mt-40 {
  margin-top: 40px;
}
.mt-48 {
  margin-top: 48px;
}
.mt-72 {
  margin-top: 72px;
}
.mb-24 {
  margin-bottom: 24px;
}
.mb-48 {
  margin-bottom: 48px;
}
.mb-72 {
  margin-bottom: 72px;
}
.my-24 {
  margin: 24px 0;
}
.my-48 {
  margin: 48px 0;
}
.my-72 {
  margin: 72px 0;
}
