/*!
Theme Name: fujimuraseizai_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: fujimuraseizai_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.

fujimuraseizai_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: #000;
  --color-sub: #757575;
  --color-link: #000;
  --color-link-hover: #0A8608;
  --color-link-disabled: #BDBDBD;
  --color-link-accent: #00695C;
  --color-link-accent-hover: #009688;
  --color-bg: #FDFCF8;
  --color-bg-light: #F8F5ED;
  --color-bg-dark: #877E63;
  --color-border: #E0E0E0;
  --color-caution: #D50000;
  --color-badge-new: #FF1744;
  --color-badge-cat: #0A8608;
  /* 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;
}
:target {
  scroll-margin-top: 70px;
}
html {
  font-size: 14px;
  box-sizing: border-box;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}
html.no-smooth {
  scroll-behavior: auto;
}
head {} /* メタ情報・タイトル・CSS/JS読み込みなど */
body {
  width: 100%;
  font-family: 'Roboto', 'Noto Sans JP', sans-serif;
  font-style: normal;
  font-weight: 500;
  line-height: 1.7;
  color: var(--color-main);
  background-color: var(--color-bg);
  margin: 0 auto;
  padding: 0;
  letter-spacing: 0.04em;
  -webkit-font-smoothing: antialiased;
  word-wrap: break-word;
  overflow-wrap: break-word;
  display: block;
  overflow: auto;
  font-feature-settings: "palt";
  line-break: strict;
  word-break: normal;
}
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;
  text-underline-offset: 0.25em;
  text-decoration-thickness: 0.09em;
}
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;
}
.sp-br {
  display: none;
}
@media (max-width: 512px) {
  .sp-br {
    display: inline;
  }
}
cite {} /* 出典・引用の参照 */
code {} /* コード・プログラム断片 */
data {} /* 機械可読データのマークアップ */
dfn {} /* 用語定義 */
kbd {} /* キー入力（例：Ctrl+C） */
s {} /* 取り消し線（非推奨または無効な内容） */
samp {} /* 出力サンプル */
time {
  font-size: 0.87rem;
  margin: 0;
  padding: 0;
  color: var(--color-sub);
  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-family: 'Roboto', 'Zen Kaku Gothic New', sans-serif;
  font-weight: 700;
  text-align: left;
  line-height: 1.5;
  letter-spacing: 0.02em;
}
div > :first-child {
  margin-top: 0;
}
h1 {
  font-size: 2.027rem;
  margin: 0 0 8px 0;
}
h1.title-404 {
  padding: 0;
  font-size: 4.8rem;
  line-height: 1.3;
  font-weight: 300;
}
h2 {
  font-size: 1.802rem;
  margin: 48px 0 12px 0;
}
h3 {
  font-size: 1.602rem;
  margin: 32px 0 12px 0;
}
h4 {
  font-size: 1.424rem;
  margin: 24px 0 8px 0;
}
h5 {
  font-size: 1.266rem;
  margin: 16px 0 4px 0;
}
h6 {
  font-size: 1.125rem;
  margin: 16px 0 4px 0;
}
p {
  margin: 12px 0 0 0;
  padding: 0;
  display: block;
  text-align: justify;
  text-justify: inter-ideograph;
  background: transparent;
  text-wrap: pretty;
}
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: 72px auto;
  border-top: 1px solid var(--color-border);
}
@media (max-width: 512px) {
  hr {
    margin: 56px auto;
  }
}
address {} /* 住所や連絡先情報 */
/* ======================================================
   Lists（リスト）
   ====================================================== */
ul {
  list-style: disc;
  margin: 16px 0;
  padding: 0 0 0 16px;
  display: block;
}
ol {
  list-style: decimal;
  margin: 16px 0;
  padding: 0 0 0 16px;
  display: block;
}
li {
  margin: 4px 0 0 0;
  padding: 0;
  display: list-item;
  text-align: justify;
  text-justify: inter-ideograph;
  background: transparent;
  text-wrap: pretty;
}
ol li::marker {
  font-weight: 700;
}
dl {
  display: grid;
  margin: 16px 0;
  grid-template-columns: max-content auto;
}
dt, dd {
  text-align: justify;
  text-wrap: pretty;
  text-justify: inter-ideograph;
  border-bottom: 1px dotted var(--color-border);
}
dt {
  font-weight: 700;
  padding: 16px 12px 16px 0;
}
dd {
  margin: 0 0 0 0;
  padding: 16px 16px 16px 12px;
}
dt:first-of-type {
  padding: 4px 12px 16px 0;
}
dd:first-of-type {
  padding: 4px 16px 16px 12px;
}
/* ======================================================
   Table（表組み）
   ====================================================== */
table {
  width: 100%;
  border-collapse: collapse;
}
caption {} /* 表タイトル */
thead {} /* 表ヘッダー行 */
tbody {} /* 表の本体行 */
tfoot {} /* 表のフッター行 */
th, td {
  padding: 12px 16px;
  border: 1px solid var(--color-border);
  text-align: left;
}
th {
  background: var(--color-bg-light);
  font-weight: bold;
}
tr:nth-child(even) {
  background: #FFF;
}
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%;
  max-width:100%;
  height: auto;
  margin: 0;
  padding: 0;
  border-radius: 0;
  /* line-height: 1; */
  display: block;
}
.flyer {
  background-color: var(--color-bg-light);
  padding: 56px 32px;
}
.flyer img {
  width: 48%;
  box-shadow: 8px 10px 16px rgba(0, 0, 0, 0.15);
}
@media (max-width: 800px) {
  .flyer {
    background-color: var(--color-bg-light);
    padding: 0;
  }
  .flyer img {
    width: 100%;
    box-shadow: none;
  }
}
picture {} /* 画像のレスポンシブ対応 */
iframe {} /* 外部ページの埋め込み */
video {
  position: relative;
  width: 100%;
  height: auto;
  padding: 0;
  border-radius: 8px;
  display: block;
}
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 {} /* イメージマップ内の領域 */
.grecaptcha-badge {
    /* 表示を消す */
    visibility: hidden !important;
}
/* ======================================================
   Sectioning（セクション構造）
   ====================================================== */
header {
  width: 100%;
  height: 72px;
  margin: 0 auto;
  padding: 0;
  position: fixed;
  top: 0;
  left: 0;
  background-color: rgba(253, 252 ,248, 0.95);
  z-index: 9000;
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--color-border);
}
/* TOPページだけ使う想定 */
.home .site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  transform: translateY(-100%);
  opacity: 0;
  visibility: hidden;
  transition:
    transform 0.35s ease,
    opacity 0.35s ease,
    visibility 0.35s ease;
}
/* heroを抜けたら表示 */
.home .site-header.is-visible {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}
.site-branding {
  width: 100px;
  margin: 0;
  padding: 0;
  position: absolute;
  top: 50%;
  left: 64px;
  transform: translate(0%, -50%);
}
@media (max-width: 796px) {
  .site-branding {
    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: 160px auto 0 auto;
}
section, article {
  width: 100%;
  max-width: 100%;
  margin: 160px auto;
  padding: 0;
  display: block;
}
@media (max-width: 640px) {
section, article {
    margin: 140px auto;
  }
}
.section--alt {
  padding: 104px 0;
  background: var(--color-bg-light);
}
.section-title, .entry-title {
  font-size: 2.2rem;
  margin: 0;
}
.section-title span, .entry-title span {
  font-family: "Schoolbell", cursive;
  font-weight: 400;
  font-style: normal;
  font-size: 0.62em;
  margin: 0 0 0 12px;
  letter-spacing: 0.12em;
}
@media (max-width: 400px) {
  .section-title span, .entry-title span {
    margin: 0;
    display: block;
  }
}
.section--contact {
  margin: 104px auto 0 auto;
  padding: 104px 0;
  background: var(--color-bg-dark);
  color: #FFF;
}
.section--contact * {
  text-align: center;
}
.contact-notice {
  font-size:0.9rem;
}
aside {} /* 補足情報・サイドバーなど */
.container, .site-info {
  width: 88%;
  max-width: 768px;
  padding: 0;
  margin: 0 auto;
}
.site-info {
  width: 88%;
  max-width: inherit;
  padding: 0;
  margin: 0 auto;
}
.post, .page {
  margin: 64px auto 0 auto;
}
.media__wrap {
  margin: 48px 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}
@media (max-width: 768px) {
  .media__wrap {
    display: block;
  }
  .media__img {
    margin: 0 0 16px 0;
  }
  .media__text {
    margin: 32px 0 16px 0;
  }
}
.media__text h2:first-of-type, .media__text h3:first-of-type {
  margin-top: 0px;
}
.media__wrap__greeting {
  grid-template-columns: 1fr 240px;
}
.profile img {
  width: 160px;
  height: 160px;
  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: 13px;
  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-main);
  transition: 0.3s;
}
.nav-toggle__bar:nth-child(1) {
  top: 14px;
}
.nav-toggle__bar:nth-child(2) {
  top: 21px;
}
.nav-toggle__bar:nth-child(3) {
  top: 28px;
}
/* 初期（hero上） */
.home .nav-toggle__bar {
  background: #FFF;
}
/* header出現後 */
.is-header-visible .nav-toggle__bar {
  background: var(--color-main);
}
/* メニュー */
.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 0;
  margin: 0;
  background: #fff;
  box-shadow: 0 0 24px rgba(0, 0, 0, 0.40);
  list-style: none;
  z-index: 9999;
  overflow-y: scroll;
}
.main-navigation ul li {
  font-size: 1.0rem;
  margin: 0 0 32px 0;
  border-bottom: 1px dotted var(--color-border);
  padding: 0 24px 18px;
  line-height: 1;
}
.main-navigation ul li a {
  text-decoration: none;
  color: var(--color-main);
  transition: all 0.2s;
}
.main-navigation ul li a:after {
  font-size: 0.8rem;
  font-family: 'Font Awesome 7 Free';
  content: '\f054';
  padding: 0 0 0 5px;
  display: inline-block;
  vertical-align: 1px;
  line-height: 1;
  font-weight: 900;
  transition: 0.2s;
}
.main-navigation ul li a:hover {
  color: var(--color-link-hover);
}
.main-navigation ul li a:hover::after {
  transform: translateX(3px);
}
/* 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%);
}
@media (max-width: 796px) {
  .sub-navigation {
    display: none;
  }
}
.sub-navigation ul {
  display: flex;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.sub-navigation ul li {
  font-size: 0.9rem;
  line-height: 1;
  margin: 0;
}
.sub-navigation ul li a {
  color: var(--color-main);
  text-decoration: none;
}
.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-link-hover);
}
.sub-navigation ul li a:hover::after {
  transform: translateX(3px);
}
/* フッター */
footer {
  width: 100%;
  padding: 56px 0 24px 0;
  margin: 0 auto;
  background-color: var(--color-bg-light);
  overflow: auto;
  position: relative;
}
.footer-company__logo {
  width: 100%;
  position: relative;
}
.footer-company__logo img {
  width: 120px;
  border-radius: 0;
}
.footer-company__tel a {
  color: var(--color-main);
  text-decoration: none;
}
.footer-company__tel a:hover {
  color: var(--color-link-hover);
}
.footer-navigation {
  margin: 48px 0 24px 0px;
}
.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: var(--color-main);
  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-hover);
}
.footer-navigation ul li a:hover::after {
  transform: translateX(3px);
}
.footer__bottom {
  padding-top: 16px;
  border-top: 1px solid var(--color-border);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
}
@media (max-width: 896px) {
  .footer__bottom {
    grid-template-columns: 1fr;
    grid-row-gap: 16px 
  }
}
.footer__copyright {
  margin: 0;
  font-size: 0.79rem;
  color: var(--color-sub);
  text-align: left;
}
.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.79rem;
  line-height: 1;
  margin: 0;
}
.legal-navigation ul li a {
  color: var(--color-sub);
  text-decoration: none;
  text-underline-offset: 3px;
}
.legal-navigation ul li a:hover {
  color: var(--color-main);
}
.current-menu-item a, .current-menu-parent a {
  color: var(--color-link-hover)!important;
}
.legal-navigation ul li.current-menu-item a, .legal-navigation ul li.current-menu-parent a {
  color: var(--color-link-hover)!important;
}
.sns-nav {
  position: absolute;
  top: 0;
  right: 0;
  display: inline-block;
  width: fit-content;
}
.sns-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.sns-nav ul li {
  font-size: 1.5rem;
  display: inline-block;
  margin: 0 0 0 16px;
  line-height: 1;
}
.icon-youtube {
  color: #DA1725 !important;
}
.icon-instagram {
  color: #C13584 !important;
}
.icon-line {
  color: #06C755 !important;
}
.icon-facebook {
  color: #1877F2 !important;
}
/* ======================================================
   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);
  background: var(--color-link);
  color: #FFF;
  transition: .25s;
  margin: 32px auto 0 auto;
  width: fit-content;
}
.btn:hover {
  color: var(--color-main);
  background: #FFF;
  border: 1px solid var(--color-link);
  padding: 12px 40px;
}
.btn-inversion {
  color: var(--color-bg-dark);
  border: 1px solid var(--color-bg);
  background: var(--color-bg);
}
.btn-inversion:hover {
  color: var(--color-bg-dark);
  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, .map__link {
  font-weight: 700;
  display: block;
  margin: 20px 0 0 0;
  width: fit-content;
  text-decoration: none;
  color: var(--color-link);
}
.right__link {
  margin: 20px 0 0 auto;
}
.more__link:before {
  font-family: 'Font Awesome 7 Free';
  content: '\f192';
  font-size: 0.8rem;
  padding: 0 6px 0 0;
  display: inline-block;
  vertical-align: 1px;
  line-height: 1;
  font-weight: 900;
}
.more__link:after, .pdf__link:after, .apply__link:after, .map__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-hover);
}
.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:before {
  font-size: 1.4rem;
  font-family: 'Font Awesome 7 Free';
  content: '\f279';
  padding: 0 5px 0 0;
  display: inline-block;
  vertical-align: -2px;
  line-height: 1;
  font-weight: 400;
}
/* カード */
.cards, .tiles {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(3, 1fr);
  margin: 24px auto 0 auto;
}
@media (max-width: 950px) {
  .cards, .tiles {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 512px) {
  .cards {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .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;
}
@media (max-width: 512px) {
  .tile {
    padding: 28px 24px;
  }
}
.tile--horizontal {
  display: grid;
  grid-template-columns: 88px 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: var(--color-main);
}
.tile a {
  color: var(--color-main);
  text-decoration: none;
}
.tile__img {
  width: 100px;
  display: grid;
  margin: 0 auto;
}
.tile--horizontal .tile__img {
  width: 88px;
}
.tile__body {
  margin: 24px 0 0 0;
}
.tile--horizontal .tile__body {
  margin: 0;
}
.tile__body p {
  font-size: 0.9rem;
  text-align: left;
  color: var(--color-link-accent-hover);
}
.tile__title {
  font-size: 1.2rem;
  margin: 0 0 0 0;
  text-align: center;
}
.tile--horizontal .tile__title {
  font-size: 1.15rem;
  text-align: left;
}
.cards__caption, .tiles__caption {
  font-size: 0.85rem;
  color: var(--color-sub);
  margin: 14px 0 0 0;
}
/* バッジ共通 */
.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: -160px auto 0 auto;
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  display: grid;
  align-items: center;
  isolation:isolate;
}
@media (max-width: 640px) {
  .hero {
  min-height: 540px;
  }
}
.hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 0;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.52);
  mix-blend-mode: soft-light;
}
.hero__inner {
  position: absolute;
  padding: 0;
  color: #fff;
  width: fit-content;
  z-index: 10;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.hero__kicker {
  margin: 0 0 10px;
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .9;
}
.hero__title {
  margin: 0;
  font-size: 2.8rem;
  line-height: 1;
  writing-mode: vertical-rl;
  text-orientation: upright;
  letter-spacing: 0.38em;
}
@media (max-width: 560px) {
  .hero__title {
    font-size: 2.2rem;
  }
}
.hero__line {
  position: absolute;
  width: 1px;
  background: #fff;
  z-index: 9;
    opacity: 0;
  transition: opacity .3s ease, transform .3s ease;
  transform-origin: top;
  transform: translateX(-50%) scaleY(0);
}
.hero__line.is-ready {
  opacity: 1;
  transform: translateX(-50%) scaleY(1);
}
.hero__title span {
  font-size: 0.38em;
  margin: 0 0 6px 0;
  display: block;
}
.hero__lead {
  margin: 0 0 22px;
  max-width: 56ch;
  font-size: 1.8rem;
  line-height: 1.9;
  writing-mode: vertical-rl;
}
.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;
  }
}
.preface {
  margin: 0 auto 160px auto;
  padding: 160px 0 0 0;
  position: relative;
}
.preface:before {
  content: "";
  position: absolute;
  inset: 0;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center center;
  background-attachment: initial;
  background-image: url("./assets/images/preface-bg.png");
  opacity: 0.3;
  z-index: -1;
}
.preface .container {
  max-width: 640px;
}
.preface .container .section-title {
  text-align: center;
  writing-mode: vertical-rl;
  margin: 0 auto;
}
@media (max-width: 640px) {
.preface .container .section-title {
  text-align: left;
}
}
.floating-btn {
  width: 90px;
  height: 90px;
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 9999;
  display: inline-block;
  border-radius: 8px;
  background: #06C755; /* グリーン系（あなたのサイトに合いそう） */
  color: #fff;
  text-decoration: none;
  box-shadow: 0 6px 16px rgba(0,0,0,0.2);
  opacity: 0;
  pointer-events: none;
  transform: translateY(20px);
  transition: 0.3s;
}
.floating-btn.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.floating-btn p {
  width: 88%;
  font-size: 0.9rem;
  color: #FFF;
  font-weight: 700;
  vertical-align: middle;
  margin: 0;
  padding: 0;
  transition: all 0.3s;
  background: none;
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.floating-btn .fa-line {
  font-size: 2.027rem;
  padding: 0 0 4px 0;
}
.floating-btn:hover {
  color: #FFF;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.25);
}
/* ======================================================
   フロー図
   ====================================================== */
.flow__list {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: step;
}
.flow__item {
  position: relative;
  padding: 0 0 80px 124px;
  margin: 0;
}
.flow__item-short {
  padding: 16px 0 80px 124px;
}
.flow__title {
  margin: 0 0 12px 0;
}
/* 縦線 */
.flow__item::before {
  content: "";
  position: absolute;
  top: 60px;
  left: 50px;
  width: 1px;
  height: 100%;
  background: var(--color-link);
}
/* STEP丸 */
.flow__item::after {
  counter-increment: step;
  content: "Step."counter(step, decimal-leading-zero);
  position: absolute;
  top: 0;
  left: 0;
  width: 100px;
  height: 100px;
  background: var(--color-link);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 700;
  text-align: center;
}
/* 最後の線消す */
.flow__item:last-child::before {
  display: none;
}
@media (max-width: 640px) {
.flow__item {
  padding: 0 0 80px 104px;
}
.flow__item-short {
  padding: 0 0 80px 104px;
}
.flow__item::before {
  left: 40px;
}
.flow__item::after {
  width: 80px;
  height: 80px;
  font-size: 1.0rem;
}
}
/* パンくず */
.breadcrumb {
  width: 100%;
  margin: 0 auto;
  font-size: 1.0rem;
  background-color: var(--color-bg-light);
  overflow: auto;
}
.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: 88%;
  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;
}
.breadcrumb__link {
  color: var(--color-link);
  text-decoration: none;
}
.breadcrumb__link:hover {
  color: var(--color-link-hover);
  text-decoration: none;
}
.breadcrumb__current{
  color: var(--color-sub);
  max-width:40ch;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
/* ======================================================
   Interactive（インタラクティブ要素）
   ====================================================== */
details {} /* 折りたたみ詳細 */
summary {} /* detailsの見出し */
dialog {} /* ダイアログ・モーダル */
slot {} /* Web Components用のスロット */
/* アコーディオン */
/* FAQ */
.faq {
  margin: 24px auto 0;
}
.faq-item {
  overflow: hidden;
  background: #fff;
  border-radius: 8px;
  margin: 0 0 24px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
}
.faq-q {
  list-style: none;
  cursor: pointer;
  padding: 24px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 18px;
  column-gap: 16px;
  align-items: center;
}
.faq-q::-webkit-details-marker {
  display: none;
}
.faq-q__label, .faq-a__label {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1;
  box-sizing: border-box;
  letter-spacing: 0;
  padding: 0;
  margin: 0;
}
.faq-q__label {
  color: #fff;
  background: var(--color-link);
  border: 2px solid var(--color-link);
}
.faq-a__label {
  color: var(--color-link);
  background: #fff;
  border: 2px solid var(--color-link);
}
.faq-q__text {
  min-width: 0;
  font-size: 1rem;
  line-height: 1.8;
  padding: 0;
}
.faq-a {
  padding: 0 24px 24px 24px;
}
.faq-a__inner {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  column-gap: 16px;
  align-items: center;
}
.faq-a p {
  margin: 0;
  min-width: 0;
  font-size: 1rem;
  line-height: 1.8;
  padding: 0;
}
.faq-toggle {
  width: 18px;
  height: 18px;
  position: relative;
  align-self: center;
}
.faq-toggle::before, .faq-toggle::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100%;
  height: 2px;
  background: var(--color-main);
  border-radius: 999px;
  transform: translate(-50%, -50%);
  transition: transform 0.25s ease;
}
.faq-toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.faq-item[open] .faq-toggle::before {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.faq-item[open] .faq-toggle::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: 768px) {
  .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: flex;
  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: 768px) {
  .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: 36%;
  font-size: 0.9rem;
  padding: 24px 16px 24px 8px;
}
@media (max-width: 768px) {
  .wpcf7 .wpcf7-template p.form__label {
    width: 100%;
    padding: 24px 16px 24px 0;
  }
}
@media (max-width: 768px) {
  .wpcf7 .wpcf7-template p.form__label {
    padding: 24px 16px 24px 0;
  }
}
.wpcf7 .wpcf7-template p.form__body {
  width: 64%;
  padding: 24px 8px 24px 16px;
}
@media (max-width: 768px) {
  .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: 600;
  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: var(--color-caution);
  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 var(--color-border);
  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: var(--color-border);
}
.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: var(--color-border);
}
.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: var(--color-border);
}
/* テキストフィールド フォーカス時 */
.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) 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 var(--color-border);
  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);
  border-right: 2px solid var(--color-link);
  box-sizing: border-box;
  transform: rotate(40deg);
  transition: opacity 0.25s ease;
}
.wpcf7 .wpcf7-template input[type=checkbox]:checked + span {
  color: var(--color-link);
  transition: all 0.25s ease;
}
.wpcf7 .wpcf7-template input[type=checkbox]:checked + span::before {
  opacity: 1;
  border: 1px solid var(--color-link);
  /* box-shadow: 0 0 2px 2px rgba(133, 112, 92, 0.5); */
  background-color: var(--color-link);
  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 var(--color-border);
  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);
}
.wpcf7 .wpcf7-template input[type=radio]:checked + span::before {
  border: 1px solid var(--color-link);
}
.wpcf7 .wpcf7-template input[type=radio]:checked + span::after {
  opacity: 1;
  top: 3px;
  left: 3px;
  width: 12px;
  height: 12px;
  background-color: var(--color-link);
  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 var(--color-border);
  border-radius: 4px;
  box-shadow: none;
  background-color: #FFF;
  background-image: linear-gradient(90deg, var(--color-link), var(--color-link));
  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) 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"] {
  cursor: pointer;
  width: 160px;
  max-width: 100%;
  padding: 12px 28px;
  font-size: 1.0rem;
  box-shadow: none;
  background-color: var(--color-link);
  border: 1px solid var(--color-link);
  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"]:hover {
  width: 172px;
  color: var(--color-main);
  background: #FFF;
  border: 1px solid var(--color-link);
}
.wpcf7 .wpcf7-template input[type="submit"]:disabled {
  cursor: not-allowed;
  box-shadow: none !important;
  background-color: #EEEEEE !important;
  background: #EEEEEE !important;
  color: #9E9E9E !important;
  border: 1px solid #EEEEEE !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: 64%;
}
@media (max-width: 768px) {
  .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: 700;
  border: 1px solid;
  display: inline-block;
  line-height: 1;
}
.mt-24 {
  margin-top: 24px;
}
.mt-32 {
  margin-top: 32px;
}
.mt-48 {
  margin-top: 48px;
}
.mt-64 {
  margin-top: 64px;
}
.mt-72 {
  margin-top: 72px;
}
.mb-24 {
  margin-bottom: 24px;
}
.mb-32 {
  margin-bottom: 32px;
}
.mb-48 {
  margin-bottom: 48px;
}
.mb-64 {
  margin-bottom: 64px;
}
.mb-72 {
  margin-bottom: 72px;
}
.my-24 {
  margin: 24px 0;
}
.my-32 {
  margin: 32px 0;
}
.my-48 {
  margin: 48px 0;
}
.my-64 {
  margin: 64px 0;
}
.my-72 {
  margin: 72px 0;
}
/* ===============================
   Scroll Animation
=============================== */
.fade-up {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-up.is-show {
  opacity: 1;
  transform: none;
}
/* 少し遅らせたいとき */
.delay-1 { 
  transition-delay: 0.2s;
}
.delay-2 { 
  transition-delay: 0.4s; 
}
.delay-3 { 
  transition-delay: 0.6s; 
}

