@charset "UTF-8";

/*------------------------------------------------------------ */
/* 共通のコンポーネントを定義
-------------------------------------------------------------- */

/**
 * 見出し
-------------------------------------------------------------- */
/* 見出し１ */
.is-style-title1 {
    --font-color: var(--decoration-color);
    color: var(--font-color);
}

/* 見出し２ */
.is-style-title2 {
    color: var(--font-color);
    position: relative;
    font-weight: bold;
    padding: 0 0 0.5em 0;
}

.is-style-title2:before {
    border-bottom: var(--bd-width) solid var(--bd-color);
    width: 1em;
    position: absolute;
    z-index: 1;
    bottom: 0;
    left: 0;
    content: "";
}
.is-style-title2:before{
	border-bottom: var(--bd-width) solid var(--bd-color);	
	width: 20%;
	position: absolute;
    z-index: 1;
    bottom: 0;
    left: 0;
	content: "";	
}
.is-style-title2:after{
    --bd-color:var(--gray);
	border-bottom: var(--bd-width) solid var(--bd-color);	
	width: 100%;
	position: absolute;
    bottom: 0;
    left: 0;
	content: "";	
}

/* 見出し３ */
.is-style-title3 {
    position: relative;
    color: var(--font-color);
    padding-left: 0;
}
.is-style-title3 {
    color:var(--font-color);
    position:relative;
    font-weight:bold;
    padding-left:0.9em;
  }
  .is-style-title3:before{
    width: 0.5em;
    height:0.2em;
    position: absolute;
    z-index: 1;
    top: 50%;
    margin-top:-0.1em;
    left: 0;
    content: "";
    background:var(--bd-color);
  }

/* 見出し４ */
.is-style-title4 {
    padding-bottom: var(--xs);
    border-bottom: var(--bd-width) solid var(--bd-color);
}

.is-style-title5 {
    color: var(--font-color);
    position: relative;
    font-weight: bold;
    padding-top: 0.5em;
}

.is-style-title5:before {
    border-bottom: var(--bd-width) solid var(--bd-color);
    width: 1em;
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    content: "";
}

.title-border-center:before{
    left: 50%;
    margin-left:-0.5em;
}
/**
 * 文字装飾
-------------------------------------------------------------- */
.is-style-text-shadow-black {
    color: #000;
    text-shadow: 1px 2px 3px #808080;
}

.is-style-text-shadow-white {
    color: #fff;
    text-shadow: 1px 2px 3px #111;
}

.is-style-text-shadow {
    text-shadow: 1px 2px 3px var(--decoration-color);
}

.is-style-text-outline-black {
    text-shadow: 1px 1px 0 #000000,
        -1px 1px 0 #000000,
        1px -1px 0 #000000,
        -1px -1px 0 #000000;
}

.is-style-text-outline-white {
    text-shadow: 1px 1px 0 #ffffff,
        -1px 1px 0 #ffffff,
        1px -1px 0 #ffffff,
        -1px -1px 0 #ffffff;
}

.is-style-text-outline {
    text-shadow: 1px 0 0 var(--decoration-color), 0 1px 0 var(--decoration-color), -1px 0 0 var(--decoration-color), 0 -1px 0 var(--decoration-color);
}

.is-style-marker-main {
    background: linear-gradient(transparent 75%, var(--decoration-color) 75%);
    font-weight: bold;
}

.is-style-marker-sub {
    background: linear-gradient(transparent 75%, var(--sub-color) 75%);
    font-weight: bold;
}

.is-style-marker-accent {
    background: linear-gradient(transparent 75%, var(--accent-color) 75%);
    font-weight: bold;
}


/**
 * 画像装飾
-------------------------------------------------------------- */
.is-style-img-corners-sm img {
    border-radius: var(--radius);
}

.is-style-img-corners-md img {
    border-radius: calc(var(--radius) * 2);
}

.is-style-img-corners-lg img {
    border-radius: calc(var(--radius) * 5);
}

/*画像ホバースタイルのスタイル
---------------------------------------*/
.card-img a,
.img-hover {
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    margin: 0 auto;
    transition-duration: 0.5s;
    /*変化の時間*/
    background: #000;
}

.h-80.img-hover {
    padding-top: 80%;
}

.h-70.img-hover {
    padding-top: 70%;
}

.h-60.img-hover {
    padding-top: 60%;
}

.h-55.img-hover {
    padding-top: 55%;
}

.h-50.img-hover {
    padding-top: 50%;
}

.img-hover:before {
    content: "";
    display: inline-block;
    line-height: 1;
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    margin-top: -0.5em;
    margin-left: -2em;
    color: #fff;
    opacity: 0;
}

.card-img a img,
.img-hover img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 画像をトリミングしてコンテナに収める */
    transition: transform 0.5s ease; /* 拡大縮小のアニメーション */
}

.card-img a:hover img,
.img-hover:hover img {
    -webkit-transform: scale(1.2);
    -moz-transform: scale(1.2);
    -o-transform: scale(1.2);
    -ms-transform: scale(1.2);
    transform: scale(1.2);
    opacity: 0.7;
    /* 小さくするほど暗くなる */
}

.card-img a:hover:before,
.img-hover:hover:before {
    opacity: 1;
}

/**
 * テーブル
-------------------------------------------------------------- */
.is-style-table-style {
    border: none;
    border-top: var(--bd-width) solid var(--bd-color);
    border-collapse: collapse;
    width: 100%;
}

.is-style-table-style th {
    color: var(--font-color);
}

.is-style-table-style thead,
.is-style-table-style tr th,
.is-style-table-style tr td {
    border: none;
    border-bottom: var(--bd-width) solid var(--bd-color) !important;
}

.is-style-table-style td {}

/* 営業カレンダー用の色変え*/
.table-content-main td:nth-child(n+2) {
    --font-color: var(--decoration-color);
    color: var(--font-color);
    /* ここで適切な文字色を指定してください */
}

/**
 * リストスタイル
-------------------------------------------------------------- */
.is-style-list-style1 li {
    list-style: none;
    position: relative;
    width: 100%;
    margin-bottom: 10px;
    padding-left: 15px;
}

.is-style-list-style1.sub-menu {
    margin-top: var(--xs);
}

.is-style-list-style1 {
    margin-left: 10px;
}

/*--リストマークの矢印型スタイル--*/
.is-style-list-style1 li:after {
    border-radius: 50%;
    width: 5px;
    height: 5px;
    display: block;
    position: absolute;
    left: 0;
    top: 1em;
    margin-top: calc(-0.5em + 2px);
    content: "";
    background: var(--decoration-color);
}

/**
 * ボタンスタイル
-------------------------------------------------------------- */
.btn-category,
.is-style-btn-arrow {
    --font-color: var(--primary);
    --anchor-color: var(--primary);
    --bg-color: var(--base);
    --bd-color: var(--base);
    --hover-color: var(--base);
    --hover-bd-color: var(--primary);
    --hover-bg-color: var(--primary);
}

.btn-category,
input[type="submit"].is-style-btn-arrow,
.is-style-btn-arrow a,
.is-style-btn-arrow .wp-block-button__link {
    position: relative;
    line-height: 1;
    display: inline-block;
    transition: all 0.5s;
    text-transform: uppercase;
    text-decoration: none;
    letter-spacing: 1px;
    text-align: center;
    font-weight: var(--font-weight);
    background: var(--bg-color);
    border: var(--bd-width) solid var(--bd-color);
    color: var(--font-color);
    border-radius: 20px;
    box-shadow: 0px 0px 5px 1px rgba(0, 0, 0, 0.2);
    -moz-box-shadow: 0px 0px 5px 1px rgba(0, 0, 0, 0.2);
    -webkit-box-shadow: 0px 0px 5px 1px rgba(0, 0, 0, 0.2);
}

.btn-category:hover,
input[type="submit"].is-style-btn-arrow:hover,
.is-style-btn-arrow a:hover,
.is-style-btn-arrow .wp-block-button__link:hover {
    background: var(--hover-bg-color);
    border: var(--bd-width) solid var(--hover-bd-color);
    text-decoration: none;
    color: var(--hover-color);
}

input[type="submit"].is-style-btn-arrow::before,
.is-style-btn-arrow .wp-block-button__link::before {
    position: absolute;
    top: 50%;
    right: 0.6em;
    font-family: "Font Awesome 5 Free", "Font Awesome 5 Brands", sans-serif;
    margin-top: -0.4em;
    font-size: 0.8em;
    content: '\f054';
    font-weight: bold;
    color: var(--font-color);
}

input[type="submit"].is-style-btn-arrow::before,
.is-style-btn-arrow .wp-block-button__link:hover::before {
    color: var(--hover-color);
}

.is-style-btn-arrow.btn-reverse {
    --font-color: var(--base);
    --bg-color: var(--primary);
    --bd-color: var(--primary);
    --hover-color: var(--primary);
    --hover-bd-color: var(--base);
    --hover-bg-color: var(--base);
}

/**
 * ボタンサイズ
-------------------------------------------------------------- */
.btn-xs {
    padding: 1px var(--xs);
}

.btn-sm {
    padding: var(--xs) var(--sm);
}

.btn-md {
    padding: var(--sm) var(--md);
}

.btn-lg {
    padding: var(--md) var(--lg);
}

/**
 * グループブロック
-------------------------------------------------------------- */
.is-style-frame-border {
    border: var(--bd-width) solid var(--bd-color);
    border-radius: var(--radius);
}

.is-style-frame-dashed {
    border: var(--bd-width) dashed var(--bd-color);
    border-radius: var(--radius);
}

.is-style-frame-double {
    border: calc(var(--bd-width) * 5) double var(--bd-color);
    border-radius: var(--radius);
}

.is-style-frame-shadow {
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3);
    border-radius: var(--radius);
}

.is-style-frame-brackets {
    position: relative;
}

.is-style-frame-brackets:before,
.is-style-frame-brackets:after {
    content: '';
    width: 20px;
    height: 20px;
    position: absolute;
    display: inline-block;
}

.is-style-frame-brackets:before {
    border-left: var(--bd-width) solid var(--bd-color);
    border-top: var(--bd-width) solid var(--bd-color);
    top: 0;
    left: 0;
}

.is-style-frame-brackets:after {
    border-right: var(--bd-width) solid var(--bd-color);
    border-bottom: var(--bd-width) solid var(--bd-color);
    bottom: 0;
    right: 0;
}

.is-style-frame-sticky {
    border-left: calc(var(--bd-width)*3) solid var(--bd-color);
    box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.3);
}

.is-style-frame-balloon {
    position: relative;
    border-radius: var(--radius);
    background: var(--decoration-color);
}

.is-style-frame-balloon:after {
    position: absolute;
    content: '';
    top: 100%;
    left: 30px;
    border: 15px solid transparent;
    border-top: 15px solid var(--decoration-color);
    width: 0;
    height: 0;
}

.is-style-frame-balloon.balloon-right:after {
    right: 30px;
    left: auto;
}

.is-style-frame-balloon.balloon-center:after {
    left: 50%;
    margin-left: -15px;
}


/**
 * バッジスタイル
-------------------------------------------------------------- */
.badge {
    line-height: 1;
    padding: 5px var(--xs);
    display: inline-block;
    border-radius: var(--radius);
    color: var(--font-color);
    background: var(--bg-color);
    border: var(--bd-width) solid var(--bd-color);
}

.badge.badge-main {
    --font-color: var(--base);
    --bg-color: var(--primary);
    --bd-color: var(--primary);
}

.badge.badge-secondary {
    --font-color: var(--font);
    --bg-color: var(--secondary);
    --bd-color: var(--base);
}

.badge.badge-tertiary {
    --font-color: var(--font);
    --bg-color: var(--tertiary);
    --bd-color: var(--base);
}

.badge.badge-reverse {
    --font-color: var(--primary);
    --bg-color: var(--base);
    --bd-color: var(--primary);
}

.radius-0 {
    --radius: 0px !important;
}

.radius-15px {
    --radius: 15px !important;
}

.radius-25px {
    --radius: 25px !important;
}

.radius-50p {
    --radius: 50% !important;
}