/* =======================================
==========================================

 1. 初期設定 

==========================================
======================================= */

@import url('https://fonts.googleapis.com/css?family=Hind:700');
@import url('https://fonts.cdnfonts.com/css/tt-commons');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;700;800&display=swap');
@import url("https://use.typekit.net/bgv6jqw.css");


body,
.editor-styles-wrapper {
    --wp--preset--font-family--system-font: 'Noto Sans JP', sans-serif !important;
	--wp--preset--font-size--small: clamp(0.875rem, 0.65rem + 0.3vw, 1rem) !important;
    --wp--preset--font-size--medium: clamp(1rem, 0.75rem + 0.3vw, 1.525rem) !important;
    --wp--preset--font-size--large: clamp(1.5rem, 1.25rem + 0.3vw, 2.05rem) !important;
    --wp--preset--font-size--x-large: clamp(1.75rem, 1.5rem + 0.3vw, 2.375rem) !important;
    --wp--preset--font-size--xx-large: clamp(2.55rem, 2.25rem + 0.3vw, 3.375rem) !important;
    --wp--preset--font-size--xxx-large: clamp(4rem, 4rem + 0.3vw, 5rem) !important;
	
	--wp--preset--spacing--30: clamp(1.5rem, 5vw, 2rem);
	--wp--preset--spacing--40: clamp(1.8rem, 1.8rem + ((1vw - 0.48rem) * 2.885), 3rem);
	--wp--preset--spacing--60: clamp(3.75rem, 10vw, 7rem);
	--wp--preset--color--base: #ffffff;
	
	/*自作*/
	--wp--custom--columns--gap: clamp(1.5rem, 5vw, 2rem);
	--wp--desktop--header--width: 200px;
	--wp--mobile--header--height: 72px;
	--wp--block--heading--h2: clamp(2.625rem, calc(2.625rem + ((1vw - 0.48rem) * 8.4135)), 3.25rem) !important;
}


html {
    --wp-admin--admin-bar--height: 32px;
    scroll-padding-top: var(--wp-admin--admin-bar--height);
	scroll-behavior: smooth;
}
@media screen and (max-width: 782px) {

	html {
		--wp-admin--admin-bar--height: 46px;
	}
}
@media screen and (max-width: 600px) {

	html {
		font-size: 13px !important;
	}
}
@media screen and (min-width: 601px) {

	html {
		font-size: 14px !important;
	}
}
html :where(.is-position-sticky) {
    --wp-admin--admin-bar--position-offset: var(--wp-admin--admin-bar--height,0px);
}
@media screen and (max-width: 600px) {
	
	html :where(.is-position-sticky) {
		--wp-admin--admin-bar--position-offset: 0px;
	}
}
::selection {
  color: #fff;
  background-color: #000;
}

.wp-site-blocks {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
:where(.wp-site-blocks) > * {
	margin-block-start: 0;
}
body:not(.single) .wp-site-blocks > main > .entry-content.is-layout-flow > * {
	margin-block-start: 0;
}
.wp-site-blocks > main p:empty {
	margin-block-start: 5rem;
}


/* =======================================
==========================================

 2. レイアウトとディテール 

==========================================
======================================= */

/* --------------------------------- 
  全体のレイアウト
 --------------------------------- */

@media screen and (min-width: 783px) {
	/*デスクトップ*/
	.wp-site-blocks {
		display: flex;
		flex-wrap: wrap;
	}
	.wp-site-blocks > header {
		width: var(--wp--desktop--header--width);
	}
	.wp-site-blocks > main {
		width: calc(100% - var(--wp--desktop--header--width));
	}
	.wp-site-blocks > footer {
		width: 100%;
	}
}



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

@media screen and (max-width: 782px) {
	/*モバイル*/
	.wp-site-blocks > header {
		display: flex;
		justify-content: space-between;
		top: calc(0px + var(--wp-admin--admin-bar--position-offset, 0px));
		position: sticky;
		z-index: 12;
	}
	.wp-site-blocks > header .header-logo__mobile {
		padding: 0 var(--wp--preset--spacing--30);
		height: var(--wp--mobile--header--height);
		display: flex;
		justify-content: flex-start;
		align-items: center;
	}
	.wp-site-blocks > header .header-logo__desktop {
		display: none;
	}
}
@media screen and (min-width: 783px) {
	/*デスクトップ*/
	.header-logo__container {
		top: calc(0px + var(--wp-admin--admin-bar--position-offset, 0px));
		position: sticky;
		z-index: 10;
	}	
	.wp-site-blocks > header .header-logo__desktop {
		padding-bottom: 3rem;
	}
	.wp-site-blocks > header .header-logo__mobile {
		display: none;
	}
	.wp-site-blocks > header .header-logo__desktop .header-site-logo {
		/*ロゴが少し右寄りなので微調整*/
		margin-left: -10px;
	}
}
header .header-site-logo { /*ホバーでスケールする時に見切れるのを防ぐ*/
	overflow: visible;
}



/* --------------------------------- 
  メイン
 --------------------------------- */
@media screen and (max-width: 782px) {
	/*モバイル*/
	.wp-site-blocks > main.margin-top-bottom {
		margin-top: 2rem !important;
	}
}



/* --------------------------------- 
  フッター
 --------------------------------- */
.wp-site-blocks > footer {
	z-index: 11;
	position: relative;
}


/* --------------------------------- 
  ナビゲーション
 --------------------------------- */

header .wp-block-navigation,
footer .wp-block-navigation {
	font-family: "acumin-pro", sans-serif;
}



/*ナビゲーション - ヘッダー*/
header .wp-block-navigation {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 200;
}
header .wp-block-navigation__container a::before {
	bottom: 10px;
}
header .wp-block-navigation .wp-block-navigation__container a[target="_blank"]:after {
	width: 1.2rem;
	height: 1.2rem;
	vertical-align: 8px;
	margin-left: 0.5rem;
}
/*ナビゲーション - ハンバーガーメニュー*/
header .wp-block-navigation .wp-block-navigation__responsive-container-open {
	padding: var(--wp--style--root--padding-top,2rem) var(--wp--style--root--padding-right,2rem) var(--wp--style--root--padding-bottom,2rem) var(--wp--style--root--padding-left,2rem);
}
@media screen and (min-width: 783px) {
	/*デスクトップ*/
	header > .wp-block-navigation .wp-block-navigation__responsive-container-open {
		/*header直下のナビゲーションのみ右上にフィックス*/
		position: fixed;
		right: 0;
		top: calc(0px + var(--wp-admin--admin-bar--position-offset, 0px));
		z-index: 9;
	}
}
.wp-block-navigation__responsive-container-open svg path {
	d: path("M4,6v1.5h16V6H4z M4,12.8h16v-1.5H4V12.8z M4,18h10v-1.5H4V18z");
}
/*ナビゲーション - モーダルの中身*/
.has-modal-open .wp-block-navigation__responsive-close {
	max-width: 100%;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	max-width: 650px;
	margin-left: auto;
	margin-right: auto;
	gap: 5rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
    gap: 0 3rem !important;
}
@media screen and (min-width: 783px) {
	/*デスクトップ*/
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
		flex-direction: row;
		flex-wrap: wrap;
	}
}
.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
	padding-bottom: 10rem;
}
/*ナビゲーション - フッター*/
footer .wp-block-navigation {
	font-size: var(--wp--preset--font-size--small);
}
footer .wp-block-navigation a {
	white-space: nowrap;
}
footer .wp-block-navigation a[target="_blank"]:after {
	filter: invert(100%);
}
@media screen and (max-width: 782px) {
	/*モバイル*/
	footer .wp-block-navigation__container {
		flex-direction: column;
		align-items: flex-end;
	}
}



/* --------------------------------- 
  SNSアイコン
 --------------------------------- */

/*デスクトップのサイド固定箇所*/
@media screen and (min-width: 783px) {

	header .header-logo__desktop > .wp-block-social-links {
		flex-direction: column;
		align-items: flex-start;
		gap: 1rem;
	}
}



/* --------------------------------- 
  ページトップ
 --------------------------------- */

footer .pagetop {
	background-image: url(http://tamari-ya.com/renew/wp-content/uploads/2023/10/page_top_icon.svg);
	background-size: cover;
	width: 50px;
	height: 50px;
	margin: auto;
	filter: invert(100%);
	transition: all .3s;
}
footer .pagetop:hover {
	transform: scale(1.1);
}
footer .pagetop a {
	display: flex;
	width: 100%;
	height: 100%;
	color: #000;
	align-items: end;
    justify-content: center;
}
footer .pagetop a span {
	font-size: var(--wp--preset--font-size--small);
	transform: translate(0, 1rem);
}



/* --------------------------------- 
  見出し
 --------------------------------- */

/*見出し*/
.wp-block-heading {
	/*font-family: 'TT Commons', sans-serif;
	font-weight: 300;*/
	font-family: "acumin-pro", sans-serif;
	font-weight: 200;
}
h2.wp-block-heading {
/*	text-decoration: underline;
	text-underline-offset: 6px;
	text-decoration-thickness: 2px;*/
	margin-block-end: 3rem;
	font-size: var(--wp--block--heading--h2);
}
h3.wp-block-heading {
	font-family: 'Shippori Mincho', serif;
	margin-block-end: 3rem;
}
@media screen and (min-width: 783px) {
	/*デスクトップ*/
	h2.wp-block-heading {
		font-weight: 100;
	}
}



/*見出し - 縦書き*/
.vertical-writing,
.vertical-writing-heading {
	writing-mode: vertical-rl;	
}



/*個別ページタイトル*/
.wp-block-post-title a {
	color: #000;
}
h1.wp-block-post-title,
h1.wp-block-query-title,
h1.wp-block-heading {
	font-family: 'Shippori Mincho', serif;
	margin-block-end: 3rem !important;
	line-height: 1.6;
}
h1.wp-block-post-title span,
h1.wp-block-query-title span,
h1.wp-block-heading span {
	display: inline-block;
}



/* --------------------------------- 
  投稿コンテンツ
 --------------------------------- */

/*投稿コンテンツ - 画像*/
:where(figure) {
    margin-bottom: 1.5rem;
}
.single-post .wp-block-post-featured-image {
	margin-bottom: 0;
}



/*投稿コンテンツ - 抜粋*/
.wp-block-post-excerpt__excerpt {
	opacity: .5;
	font-size: var(--wp--preset--font-size--small);
}


/*投稿コンテンツ　- カテゴリ*/
.wp-block-post-terms {
	letter-spacing: 1px;
}
.wp-block-post-terms .wp-block-post-terms__separator {
	padding-left: 1px;
}



/* --------------------------------- 
  その他
 --------------------------------- */

/*アニメーション用
下からスライドアニメーションの外側につける事で、いい感じにスライドして出てくる*/
.overflow-hidden {
	overflow: hidden;
	padding-bottom: 0.2rem;
}
.overflow-hidden:has(h2.wp-block-heading),
.overflow-hidden:has(h3.wp-block-heading) {
	margin-block-end: calc(3rem - 0.2rem);	
}
.overflow-hidden h2.wp-block-heading,
.overflow-hidden h3.wp-block-heading {
	margin-block-end: 0;	
}
.overflow-hidden:has(h2.wp-block-heading):last-child,
.overflow-hidden:has(h3.wp-block-heading):last-child {
	margin-block-end: 0;	
}



/*デスクトップとモバイル（スマホ）で行揃えを変える*/
@media screen and (max-width: 782px) {

	.mobile-align-center {
		text-align: center !important;
	}
	.mobile-align-left {
		text-align: left !important;
	}
	.mobile-align-right {
		text-align: right !important;
	}
}
@media screen and (min-width: 783px) {

	.desktop-align-center {
		text-align: center !important;
	}
	.desktop-align-left {
		text-align: left !important;
	}
	.desktop-align-right {
		text-align: right !important;
	}
}



/*ディスプレイ*/
.display-inline-block {
	display: inline-block;
}
.display-block {
	display: block;
}
.display-none {
	display: none;
}



/* --------------------------------- 
  リンク
 --------------------------------- */

a {
	transition: all .6s;
}



/*hover effect*/
.wp-block-navigation a:where(:not(.wp-element-button)):hover,
.wp-block-post-title a:where(:not(.wp-element-button)):hover {
	text-decoration: none;
}
.wp-block-navigation__container a,
.wp-block-post-title a {
  position: relative;
}
.wp-block-navigation__container a::before,
.wp-block-post-title a::before {
  background: #000;
  content: '';
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  bottom: 0;
  margin: auto;
  transform-origin: center top;
  transform: scale(0, 1);
  transition: transform .6s;
}
header .wp-block-navigation__container a::before {
  height: 2px;
}
footer .wp-block-navigation__container a::before {
  background: #fff;	
}
.wp-block-post-title a::before {
  transform-origin: left top;
}
.wp-block-navigation__container a:hover::before,
.wp-block-post-title a:hover::before {
  transform: scale(1, 1);
}



/*ターゲットリンクにアイコンを付ける*/
a[target="_blank"]:after {
	background-image:url(http://tamari-ya.com/renew/wp-content/uploads/2023/10/reshot-icon-arrow-up-right.svg);
	background-size: cover;
	width: 0.7rem;
	height: 0.7rem;
	content: "";
	display: inline-block;
	margin-left: 0.2rem;
}
a[target="_blank"]:has(img):after {
	content: none;
}



/*リンク画像のホバーエフェクト*/
figure:has(a > img)  {
	overflow: hidden;
}
a img {
	transition: all 2s;
}
a img:hover {
	transform: scale(1.1);
}


/*moreリンク*/
.more {
	position: relative;
	width: fit-content;
	padding-right: 5rem;
	margin-block-start: 1.5rem !important;
}
.more.has-text-align-left {
	margin-left: 0 !important;
	margin-right: auto;
}
.more.has-text-align-right {
	margin-right: 1.45rem !important;
	margin-left: auto;
}
.more:before {
	position: absolute;
    top: 50%;
    transform: translate(0%,-50%);
    right: -1.1rem;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    content: '';
    background: transparent;
    border: 1px solid;
    transition: 0.3s;
}
.more:hover:before {
    width: 1.5rem;
    height: 1.5rem;
    right: -1.45rem;
}
.more:after {
	position: absolute;
    top: calc(50%);
    right: -0.5rem;
    width: 5rem;
    height: 1px;
    content: '';
    background: #000;
    z-index: 9;
}
.more a {
	color: inherit;
	display: block;
	text-decoration: none;
}



/*ボタン*/
:where(:not(.is-style-outline)) .wp-element-button:visited, 
:where(:not(.is-style-outline)) .wp-block-button__link:visited {
	color: var(--wp--preset--color--base) !important;
}
:where(:not(.is-style-outline))  .wp-element-button[target="_blank"]:after, 
:where(:not(.is-style-outline))  .wp-block-button__link[target="_blank"]:after {
	filter: invert(100%);
}

:where(:not(.is-style-outline))  .wp-element-button:hover, 
:where(:not(.is-style-outline))  .wp-block-button__link:hover {
	color: #000 !important;
	background-color: #fff;
}
.is-style-outline .wp-element-button:visited, 
.is-style-outline .wp-block-button__link:visited {
	color: #000 !important;
}
.is-style-outline .wp-element-button:hover, 
.is-style-outline .wp-block-button__link:hover {
	border-color: #fff;
}
.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link {
	white-space: nowrap;
}



/* --------------------------------- 
 検索
 --------------------------------- */

.wp-block-search {
	width: 100%;
}
.wp-block-search__button {
	padding: 0.5rem;
}
.wp-block-search__input {
	font-size: 16px;
	background-color: #fff;
}
:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) {
	border: none;
	padding: 0;
}
:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input {
	padding: 10px;
}



/* --------------------------------- 
 テーブル
 --------------------------------- */

.wp-block-table th,
.wp-block-table td {
	border-left: 0;
	border-right: 0;
	padding: 2rem 1rem 2rem 0;
}
.wp-block-table th {
	white-space: nowrap;
	text-align: left;
	font-weight: normal;
}



/* --------------------------------- 
 フォーム
 --------------------------------- */

.formfield-email .wpforms-field-row {
	display: block;
}
.formfield-email .wpforms-field-row .wpforms-field-row-block {
	padding: 0 !important;
	width: 100% !important;
}
.formfield-email .wpforms-field-row .wpforms-field-row-block:last-child {
	margin-top: 1rem;
}
.wpforms-container .wpforms-field-label {
	font-weight: normal;
	margin-bottom: 0.5rem !important;
}
div.wpforms-container-full {
	margin-top: 0;
	margin-bottom: 0;
}
div.wpforms-container-full input[type=date], div.wpforms-container-full input[type=datetime], div.wpforms-container-full input[type=datetime-local], div.wpforms-container-full input[type=email], div.wpforms-container-full input[type=month], div.wpforms-container-full input[type=number], div.wpforms-container-full input[type=password], div.wpforms-container-full input[type=range], div.wpforms-container-full input[type=search], div.wpforms-container-full input[type=tel], div.wpforms-container-full input[type=text], div.wpforms-container-full input[type=time], div.wpforms-container-full input[type=url], div.wpforms-container-full input[type=week], div.wpforms-container-full select, div.wpforms-container-full textarea {
	border-radius: 0;
	border-color: #E6E6E6;
	background-color: #E6E6E6;
}
div.wpforms-container-full input[type=submit], 
div.wpforms-container-full button[type=submit], 
div.wpforms-container-full .wpforms-page-button {
	border-radius: 0;
	width: 100%;
	height: 60px;
	transition: all .3s;
}
div.wpforms-container-full input[type=submit]:hover, 
div.wpforms-container-full button[type=submit]:hover, 
div.wpforms-container-full .wpforms-page-button:hover {
	color: #000;
	background-color: #fff;
}



/* --------------------------------- 
 クローズボタン付きポップアップリンク
 --------------------------------- */

.close-target {
	transition: all .3s;
	position: fixed;
	z-index: 12;
	padding: 1.5rem;
}
.close-target figure,
.close-target .close-target__inner {
	margin-block-start: 0;
	box-shadow: 0px 0px 10px 2px rgba(0,0,0,0.3);
}
.close-target.hide {
	display: none;
}
.close-button {
	cursor: pointer;
	width: fit-content;
	position: relative;
	right: -0.5rem;
	bottom: -0.5rem;
	z-index: 1;
	margin-bottom: 0;
}
.close-target.position-right {
	right: 0;	
}
.close-target.position-bottom {
	bottom: 0;	
}



/* --------------------------------- 
 各種ブロックエディタの設定上書き
 --------------------------------- */

/*スライダー*/
.vk_slider .swiper-button-next, .vk_slider .swiper-button-prev {
	background-color: transparent !important;
	filter: invert(100%);
}
.swiper-pagination-bullet {
	outline: none !important;
}
.swiper-pagination.swiper-pagination-fraction:not(.swiper-pagination-bullets) {
	background-color: transparent !important;
	color: #fff;
	bottom: 7px;
}
@media screen and (min-width: 601px) {
	
	.swiper-pagination.swiper-pagination-fraction:not(.swiper-pagination-bullets) {
		left: auto;
		right: 0;
		transform: none;
	}
}

/*見出しの装飾　ー 見出し ー　*/
.is-style-vk-heading-both_ends, .editor-styles-wrapper .block-editor-block-list__layout .is-style-vk-heading-both_ends {
	margin-bottom: 0 !important;
}

/*罫線*/
.wp-block-separator.is-style-wide {
	border-left: none;
	border-right: none;
	border-top: none;
}


/* =======================================
==========================================

 3. パターンスタイルと個別スタイル 

==========================================
======================================= */

/* --------------------------------- 
  パターン（自作スタイル）
 --------------------------------- */

/*パターン - 画像とテキストの横並びセット（モバイルは縦並び）*/
@media screen and (max-width: 600px) {
	/*mobile*/
	.pattern-media-text .pattern-media-text__media:first-child {
		padding-right: var(--wp--preset--spacing--40);
	}
	.pattern-media-text .pattern-media-text__media:last-child {
		order: -1;
		padding-left: var(--wp--preset--spacing--40);
	}
}
@media screen and (min-width: 601px) {
	/*desktop*/
	.pattern-media-text:not(.pattern-media-text__short) .pattern-media-text__text:first-child {
		padding-left: var(--wp--preset--spacing--60);
	}
	.pattern-media-text:not(.pattern-media-text__short) .pattern-media-text__text:last-child {
		padding-right: var(--wp--preset--spacing--60);
	}
	.pattern-media-text:not(.pattern-media-text__short) .pattern-media-text__text > .wp-block-group {
		padding-top: 0 !important;
	}
	
	.pattern-media-text.pattern-media-text__short .pattern-media-text__text {
		text-align: center;
	}
}

/*パターン - 画像とテキストの横並びセット（モバイルは縦並び_テキストが上）*/
@media screen and (max-width: 600px) {
	/*mobile*/
	.pattern-media-text.pattern-media-text__text_up .pattern-media-text__text {
		order: -1;
	}
}

/*パターン - デスクトップのみテキストを画像に食い込ませる*/
.pattern-media-text__overlap_desktop .pattern-media-text__media figure {
	margin-bottom: 0;
}

@media screen and (min-width: 601px) {
	/*desktop*/
	.pattern-media-text__overlap_desktop .pattern-media-text__media {
		z-index: 1;
	}
	.pattern-media-text__overlap_desktop .pattern-media-text__text {
		z-index: 2;
	}
	.pattern-media-text__overlap_desktop .pattern-media-text__text:first-child {
		margin-right: -200px;
	}
	.pattern-media-text__overlap_desktop .pattern-media-text__text:last-child {
		margin-left: -200px;
	}
}

/*パターン - 左右の重ね横並び（モバイルは縦並び）*/
@media screen and (max-width: 600px) {
	/*mobile*/
	.pattern-overlap-l-r .wp-block-column:has( > .wp-block-image):first-child,
	.pattern-overlap-l-r .wp-block-column:has( > .wp-block-cover):first-child,
		.pattern-overlap-l-r .wp-block-column:has( > .overflow-hidden):first-child {
		padding-right: var(--wp--preset--spacing--40);
	}
	.pattern-overlap-l-r .wp-block-column:has( > .wp-block-image):last-child,
	.pattern-overlap-l-r .wp-block-column:has( > .wp-block-cover):last-child,
	.pattern-overlap-l-r .wp-block-column:has( > .overflow-hidden):last-child {
		order: -1;
		padding-left: var(--wp--preset--spacing--40);
	}
}
@media screen and (min-width: 601px) {
	/*desktop*/	
	.pattern-overlap-l-r:not(.pattern-overlap-l-r__left_is_top) .wp-block-column:last-child {
		position: relative;
		left: -12vw;
		margin-top: 20vh;
		background: rgba(255, 255, 255, 0.95);
		padding-right: 0 !important;
	}
	.pattern-overlap-l-r:not(.pattern-overlap-l-r__left_is_top) .wp-block-column:last-child > .wp-block-group {
		padding-right: 0 !important;
		padding-top: var(--wp--preset--spacing--60) !important;
	}
	.pattern-overlap-l-r.pattern-overlap-l-r__left_is_top .wp-block-column:first-child {
		position: relative;
		z-index: 2;
		right: -12vw;
		margin-top: 20vh;
		background: rgba(255, 255, 255, 0.95);
		padding-left: 0 !important;
	}
	.pattern-overlap-l-r.pattern-overlap-l-r__left_is_top .wp-block-column:first-child > .wp-block-group {
		padding-left: 0 !important;
		padding-top: var(--wp--preset--spacing--60) !important;
	}
	.pattern-overlap-l-r.pattern-overlap-l-r__left_is_top .wp-block-column:last-child {
		position: relative;
		z-index: 1;
	}
}



/*パターン - カラムレイアウト拡張（複数行）*/
.pattern-custom-columns {
	display: flex;
	flex-wrap: wrap;
	align-items: start;
	gap: calc(var(--wp--custom--columns--gap) * 1.5) 0;
}
.pattern-custom-columns > * {
	margin-block-start: 0;
}
.pattern-custom-columns > * {
	padding-left: var(--wp--custom--columns--gap);
}
.pattern-custom-columns.pattern-custom-columns__2 > * {
	width: calc((100% + var(--wp--custom--columns--gap)) / 2);
}
.pattern-custom-columns.pattern-custom-columns__2 > *:nth-child(2n+1) {
	width: calc((100% - var(--wp--custom--columns--gap)) / 2);
	padding-left: 0;
}
.pattern-custom-columns.pattern-custom-columns__3 > * {
	width: calc((100% + var(--wp--custom--columns--gap)) / 3);
}
.pattern-custom-columns.pattern-custom-columns__3 > *:nth-child(3n+1) {
	width: calc((100% - (var(--wp--custom--columns--gap) * 2)) / 3);
	padding-left: 0;
}
@media screen and (max-width: 600px) {
	/*mobile*/	
	.pattern-custom-columns.pattern-custom-columns__mobile_2 > * {
		width: calc((100% + var(--wp--custom--columns--gap)) / 2);
	}
	.pattern-custom-columns.pattern-custom-columns__mobile_2 > *:nth-child(2n+1) {
		width: calc((100% - var(--wp--custom--columns--gap)) / 2);
		padding-left: 0;
	}
	.pattern-custom-columns.pattern-custom-columns__mobile_3 > * {
		width: calc((100% + var(--wp--custom--columns--gap)) / 3);
	}
	.pattern-custom-columns.pattern-custom-columns__mobile_3 > *:nth-child(3n+1) {
		width: calc((100% - (var(--wp--custom--columns--gap) * 2)) / 3);
		padding-left: 0;
	}
}
@media screen and (min-width: 601px) {
	/*desktop*/	
	.pattern-custom-columns.pattern-custom-columns__desktop_2 > * {
		width: calc((100% + var(--wp--custom--columns--gap)) / 2);
	}
	.pattern-custom-columns.pattern-custom-columns__desktop_2 > *:nth-child(2n+1) {
		width: calc((100% - var(--wp--custom--columns--gap)) / 2);
		padding-left: 0;
	}
	.pattern-custom-columns.pattern-custom-columns__desktop_3 > * {
		width: calc((100% + var(--wp--custom--columns--gap)) / 3);
	}
	.pattern-custom-columns.pattern-custom-columns__desktop_3 > *:nth-child(3n+1) {
		width: calc((100% - (var(--wp--custom--columns--gap) * 2)) / 3);
		padding-left: 0;
	}
	.pattern-custom-columns.pattern-custom-columns__desktop_4 > * {
		width: calc((100% + var(--wp--custom--columns--gap)) / 4);
	}
	.pattern-custom-columns.pattern-custom-columns__desktop_4 > *:nth-child(4n+1) {
		width: calc((100% - (var(--wp--custom--columns--gap) * 3)) / 4);
		padding-left: 0;
	}
	.pattern-custom-columns.pattern-custom-columns__desktop_5 > * {
		width: calc((100% + var(--wp--custom--columns--gap)) / 5);
	}
	.pattern-custom-columns.pattern-custom-columns__desktop_5 > *:nth-child(5n+1) {
		width: calc((100% - (var(--wp--custom--columns--gap) * 4)) / 5);
		padding-left: 0;
	}
}



/*パターン - グランドメニュー*/
.pattern-grand-menu {
	margin-block-start: 0;
}
/*左*/
.pattern-grand-menu__text {
	display: flex;
	flex-direction: column;
}
.pattern-grand-menu__text h3.wp-block-heading {
	margin-block-end: 0;
}
.pattern-grand-menu__text p {
	position: relative;
	z-index: 2;
}
.pattern-grand-menu__text .wp-block-image,
.pattern-grand-menu__text .wp-block-image img {
	width: 100%;	
	z-index: 1;
}
/*右*/
.pattern-grand-menu__list {
	position: relative;
	z-index: 3;
}
.pattern-grand-menu__list .is-layout-flow > * {
	margin-block-start: 0;
	gap: 0;
}
.pattern-grand-menu__list .wp-block-image {
	margin-bottom: 0;
}
.pattern-grand-menu__list h4.wp-block-heading {
	/*ドーナツ名*/
	font-family: 'Shippori Mincho', serif;
	font-size: var(--wp--preset--font-size--xxx-large);
}
.pattern-grand-menu__list > .wp-block-group > .wp-block-group > p:last-child {
	/*ドーナツ名_ローマ字*/
	text-align: right;
}
.pattern-grand-menu__list > .wp-block-group > p {
	/*概要*/
	font-size: var(--wp--preset--font-size--small);
}
@media screen and (min-width: 601px) {
	/*desktop*/
	.pattern-grand-menu .pattern-grand-menu__text {
		padding-right: var(--wp--preset--spacing--40);
	}
	.pattern-grand-menu .pattern-grand-menu__list {
	}
}



/*パターン - トピックス*/
.pattern-new-topics li {
	border-bottom: 1px solid;
	margin-bottom: 1.25rem;
}
.pattern-new-topics h5.wp-block-post-title {
	margin-top: 0.5rem; 
}



/*パターン - ページ内リンク*/
@media screen and (max-width: 600px) {
	/*mobile*/
	.pattern-page-links {
		gap: 0 !important;
	}
}



/* --------------------------------- 
  個別コンテンツのスタイル
 --------------------------------- */

/*main-visual*/
#main-visual {
	position: relative;
}
@media screen and (max-width: 782px) {
	/*mobile*/
	#main-visual {
		margin-top: calc(-1 * var(--wp--mobile--header--height));
	}
	#main-visual > * {
		max-height: 100dvh;
		transition: all .6s;
	}
}
#main-visual > .lead-text {
	position: absolute;
	left: 2rem;
	right: 2rem;
	top: 3rem;
	bottom: 3rem;
	z-index: 1;
}
#main-visual > .lead-text p {
	position: absolute;
	line-height: 1.2;
	top: 50%;
	left: 0;
	right: 0;
	transform: translate(0,-50%);
	margin-block-start: 0;
}
@media screen and (max-width: 782px) {
	/*mobile*/
	#main-visual > .lead-text p {
		font-size: 3.25rem;
	}
}
@media screen and (min-width: 783px) {
	/*desktop*/	
	#main-visual > .lead-text p {
		white-space: nowrap;
	}
}



/*what-we-do*/
#what-we-do .wp-block-image {
	margin-bottom: 0;
}
#what-we-do .wp-block-image + * {
	margin-block-start: 0;	
}
@media screen and (max-width: 782px) {
	/*mobile*/
	#what-we-do p {
		margin-block-start: 0.5rem;
	}
}



/*instagram*/
#instagram a[target="_blank"]:after {
	content: none;
}



/*grand-menu*/
#grand-menu .pattern-grand-menu__text .wp-block-image img { /*ドーナツのイメージ*/
	animation:30s linear infinite rotation;	
}
@keyframes rotation {
  0% { transform:rotate(0);}
  100% { transform:rotate(360deg); }
}
@media screen and (max-width: 600px) {
	/*mobile*/
	#grand-menu {
		margin-bottom: -9rem;
		overflow: hidden;
	}
	#grand-menu .pattern-grand-menu__text .wp-block-image {
		transform: translate(30%,30%) scale(1.1);
		margin-top: -38%;
	}
}
@media screen and (min-width: 601px) {
	/*desktop*/
	#grand-menu {
		margin-bottom: -10rem;
	}
}



/*access*/
#access .wp-block-cover .wp-block-cover__image-background {
	object-fit: contain;
}
@media screen and (max-width: 782px) {
	/*mobile*/
}



/*overview*/
#overview .wp-block-table {
	margin-top: 2rem;
}
@media screen and (max-width: 600px) {
	/*mobile*/	
	#overview .wp-block-column:last-child {
		margin-top: 4rem;
	}
}
@media screen and (min-width: 601px) {
	/*desktop*/
	#overview .wp-block-table th {
		width: 165px;
	}
}



/*kodawari*/
#kodawari {
	position: relative;
}
body.wp-admin #kodawari .vertical-writing-heading { /*管理画面*/
	right: 0;
}
#kodawari .vertical-writing-heading {
    white-space: nowrap;
    z-index: 1;
	position: absolute;
}
#kodawari .vertical-writing-heading,
#kodawari .vertical-writing-heading > * {
	font-family: 'Shippori Mincho', serif;
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
    font-size: clamp(3rem, 3rem + 0.3vw, 6rem);
	line-height: 1.8;
}
#kodawari #kodawari-item-1 .media-2 {
	width: 50%;	
	position: relative;
	margin-top: 10%;
	right: -40%;
}
#kodawari #kodawari-item-3 .media-2 img {
	animation:30s linear infinite rotation;	
}

@media screen and (max-width: 600px) {
	/*mobile*/	
	#kodawari .vertical-writing-heading { /*管理画面を除く*/
		right: 4rem;
		transform: none;
	}
	#kodawari #kodawari-item-1 {
		margin-top: 9rem;
	}
	#kodawari #kodawari-item-1 .media-2 {
		margin-top: 5%;
		margin-bottom: -20%;
	}
	#kodawari #kodawari-item-1 .media-3 {
		width: 70%;	
	}	
	#kodawari #kodawari-item-3 .media-1 {
		width: 70%;
		position: relative;
		right: -30%;
	}
	#kodawari #kodawari-item-3 .media-2 {
		width: 80%;
		position: relative;
		left: -25%;
		margin-top: -20%;
		margin-bottom: -30%;
	}
	#kodawari #kodawari-item-3 .pattern-media-text__text {
		text-align: right;
	}
}
@media screen and (min-width: 601px) {
	/*desktop*/
	#kodawari .vertical-writing-heading { /*管理画面を除く*/
		right: 50%;
		transform: translate(50%, 0);
	}
	#kodawari #kodawari-item-1 {
		margin-top: 10rem;
	}
	#kodawari #kodawari-item-1 h3.wp-block-heading {
		margin-top: 6rem;
	}
	#kodawari #kodawari-item-1 .media-3 {
		transform: translate(-40%, -60%);
		width: 60%;	
		margin-bottom: -40%;
	}
	#kodawari #kodawari-item-2 .pattern-media-text__text .wp-block-group {
		margin-top: 10rem;
		margin-left: 5rem;
	}	
	#kodawari #kodawari-item-3 .media-1 {
		width: 75%;
	}
	#kodawari #kodawari-item-3 .media-2 {
		/*ドーナツ*/
		width: 80%;
		position: relative;
		left: -35%;
		margin-top: -15%;
	}
	#kodawari #kodawari-item-3 h3.wp-block-heading {
		margin-top: 6rem;
	} 
}



/*story*/
@media screen and (min-width: 783px) {
	/*desktop*/
	#story .wp-block-column:last-child {
		margin-top: 3rem;
	}
}



/*popup link farm stay*/
@media screen and (max-width: 600px) {
	/*モバイル*/	
	#popuplink-farmstay {
		max-width: 75% !important;
	}
}

/* =======================================
==========================================

 4. アニメーション 

==========================================
======================================= */

/*メインビジュアル上のリードテキスト*/
.animation-blur {
  /*font-family: 'Hind', sans-serif;*/
  font-family: 'TT Commons', sans-serif;
  font-size: 400%;
	letter-spacing: 2px;
  /*color: #fff;
  background: #0056a6;*/
  text-align: center;
}
.animation-blur span {
  color: transparent;
  animation: blur 20s ease-out infinite;
  -webkit-animation: blur 20s ease-out infinite;
}
.animation-blur span:nth-child(1) {
  animation-delay: 0.1s;
  -webkit-animation-delay: 0.1s;
}
.animation-blur span:nth-child(2) {
  animation-delay: 0.3s;
  -webkit-animation-delay: 0.3s;
}
.animation-blur span:nth-child(3) {
  animation-delay: 0.5s;
  -webkit-animation-delay: 0.5s;
}
.animation-blur span:nth-child(4) {
  animation-delay: 0.7s;
  -webkit-animation-delay: 0.7s;
}
.animation-blur span:nth-child(5) {
  animation-delay: 0.9s;
  -webkit-animation-delay: 0.9s;
}
.animation-blur span:nth-child(6) {
  animation-delay: 1.1s;
  -webkit-animation-delay: 1.1s;
}
.animation-blur span:nth-child(7) {
  animation-delay: 1.3;
  -webkit-animation-delay: 1.3s;
}
.animation-blur.animation-blur-delay span {
	animation-delay: 10s;
	-webkit-animation-delay: 10s;		
}
.animation-blur.animation-blur-delay span:nth-child(1) {
	animation-delay: 10.2s;
	-webkit-animation-delay: 10.2s;	
}
.animation-blur.animation-blur-delay span:nth-child(2) {
	animation-delay: 10.4s;
	-webkit-animation-delay: 10.4s;	
}
.animation-blur.animation-blur-delay span:nth-child(3) {
	animation-delay: 10.6s;
	-webkit-animation-delay: 10.6s;	
}
.animation-blur.animation-blur-delay span:nth-child(4) {
	animation-delay: 10.8s;
	-webkit-animation-delay: 10.8s;	
}
.animation-blur.animation-blur-delay span:nth-child(5) {
	animation-delay: 11.0s;
	-webkit-animation-delay: 11.0s;	
}
.animation-blur.animation-blur-delay span:nth-child(6) {
	animation-delay: 11.2s;
	-webkit-animation-delay: 11.2s;	
}
.animation-blur.animation-blur-delay span:nth-child(7) {
	animation-delay: 11.4s;
	-webkit-animation-delay: 11.4s;	
}


@keyframes blur {
  0%    {text-shadow:  0 0 100px #fff; opacity:0;}
  2%    {text-shadow:  0 0 90px #fff;}
  5%    {opacity: 1;}
  10%   {text-shadow:  0 0 0px #fff;}
  55%   {text-shadow:  0 0 0px #fff;}
  60%   {opacity: 1;}
  63%   {text-shadow:  0 0 90px #fff;}
  65%   {text-shadow:  0 0 100px #fff; opacity:0;}
}

@-webkit-keyframes blur {
  0%    {text-shadow:  0 0 100px #fff; opacity:0;}
  2%    {text-shadow:  0 0 90px #fff;}
  5%    {opacity: 1;}
  10%   {text-shadow:  0 0 0px #fff;}
  55%   {text-shadow:  0 0 0px #fff;}
  60%   {opacity: 1;}
  63%   {text-shadow:  0 0 90px #fff;}
  65%   {text-shadow:  0 0 100px #fff; opacity:0;}
}

/*Blocks Animation plugin*/

.animated {
    /*-webkit-animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
    animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);*/
	transition: transform cubic-bezier(0.215, 0.61, 0.355, 1), opacity linear;
}

/*フェードイン*/
@keyframes fadeIn {
	0% {
	  	opacity: 0;
	  	filter: blur(10px);
	}
	100% {
        opacity: 1;
	  	filter: blur(0);
	}
}
@keyframes fadeInUp {
    0% {
        opacity: 0;
        -webkit-transform: translate3d(0,20%,0);
        transform: translate3d(0,20%,0)
    }
    to {
        opacity: 1;
        -webkit-transform: translateZ(0);
        transform: translateZ(0)
    }
}
@keyframes fadeInDown {
    0% {
        opacity: 0;
        -webkit-transform: translate3d(0,-20%,0);
        transform: translate3d(0,-20%,0)
    }
    to {
        opacity: 1;
        -webkit-transform: translateZ(0);
        transform: translateZ(0)
    }
}
@keyframes fadeInLeft {
    0% {
        opacity: 0;
        -webkit-transform: translate3d(-20%,0,0);
        transform: translate3d(-20%,0,0);
    }
    to {
        opacity: 1;
        -webkit-transform: translateZ(0);
        transform: translateZ(0)
    }
}
@keyframes fadeInRight {
    0% {
        opacity: 0;
        -webkit-transform: translate3d(20%,0,0);
        transform: translate3d(20%,0,0)
    }
    to {
        opacity: 1;
        -webkit-transform: translateZ(0);
        transform: translateZ(0)
    }
}


/*ズームイン・アウト*/
.zoomIn,
.zoomOut,
.zoomInUp,
.zoomInDown {
	animation-duration: 20s !important;
}
@keyframes zoomIn {
	0% {
		-webkit-transform: scale(1.0);
		transform: scale(1.0);
	}
	100% {
		-webkit-transform: scale(1.2);
		transform: scale(1.2);
	}
}
@keyframes zoomOut {
	0% {
		-webkit-transform: scale(1.2);
		transform: scale(1.2);
	}
	100% {
		-webkit-transform: scale(1.0);
		transform: scale(1.0);
	}
}
@keyframes zoomInUp {
	0% {
		-webkit-transform: scale(1.3) translate3d(0,15px,0);
		transform: scale(1.3) translate3d(0,15px,0);
	}
	100% {
		-webkit-transform: scale(1.3) translate3d(0,-15px,0);
		transform: scale(1.3) translate3d(0,-15px,0);
	}
}
@keyframes zoomInDown {
	0% {
		-webkit-transform: scale(1.3) translate3d(0,-15px,0);
		transform: scale(1.3) translate3d(0,-15px,0);
	}
	100% {
		-webkit-transform: scale(1.3) translate3d(0,15px,0);
		transform: scale(1.3) translate3d(0,15px,0);
	}
}

/* =======================================
==========================================

 5. サファリ対策

==========================================
======================================= */

@media not all and (min-resolution:.001dpcm) {
  @supports (not (translate: none)) {
	  /*Safari 14.0.x だけに適用される CSS*/
	  body .wp-site-blocks::before {
		  content: "サポートされていないブラウザを使用しています。ブラウザのバージョンアップかGoogle Chromeをご利用下さい。";
		  position: absolute;
		  padding: 1rem;
		  text-align: center;
		  font-size: 1rem;
		  background-color: #ccc;
		  display: block;
		  position: fixed;
		  z-index: 10000;
		  top: 0;
		  width: 100%;
	  }

	  @media screen and (min-width: 601px) {

		  .pattern-custom-columns.pattern-custom-columns__desktop_3 > * {
			  width: calc((100% + 2rem) / 3);
			  margin-bottom: 2rem;
		  }
		  .pattern-custom-columns.pattern-custom-columns__desktop_3 > *:nth-child(3n+1) {
			  width: calc((100% - (2rem * 2)) / 3);
		  }
	  }
	  
	  body, .editor-styles-wrapper {
		--wp--preset--font-size--small: 0.75rem !important;
		--wp--preset--font-size--medium: 1rem !important;
		--wp--preset--font-size--large: 1.25rem !important;
		--wp--preset--font-size--x-large: 1.75rem !important;
		--wp--preset--font-size--xx-large: 2.5rem !important;
		--wp--preset--font-size--xx-large: 2.5rem !important;
		--wp--preset--font-size--xxx-large: 4.5rem;
		--wp--preset--spacing--30: 2rem;
		--wp--preset--spacing--40: 3rem;
		--wp--preset--spacing--50: 4.5rem;
		--wp--preset--spacing--60: 7rem;
		--wp--preset--spacing--70: 8rem;
	  	--wp--custom--columns--gap: 2rem;		  
    	--wp--block--heading--h2: 3rem !important;
	  }
	  
	  body .is-layout-flex {
		  margin-left: auto;
		  margin-right: auto;
	  }
	  body .is-layout-flex.items-justified-right {
		  margin-right: 0;
	  }
	  body .is-layout-flow > :first-child:first-child {
		  margin-block-start: 0;
	  }
	  figure {
	    margin: 0 0 1em;
	  }
	  h1 {font-size: var(--wp--block--heading--h2)}
	  .has-border-color {
		  border-style: solid;
	  }
	  
	  .wp-block-buttons .wp-block-button + .wp-block-button {
		  margin-top: 2rem;
	  }
	  .wp-block-button:not(.is-style-outline) .wp-element-button:visited, .wp-block-button:not(.is-style-outline) .wp-block-button__link:visited {
		  color: var(--wp--preset--color--base) !important;	
	  }
	  
	  a[target="_blank"]:after {
		  content: none;
	  }
	  
	  #what-we-do .is-layout-flow {
		  margin: 2rem;
	  }
	  #overview .is-layout-flow,
	  #story .is-layout-flow {
		  padding: 2rem;
	  }
	  #access .is-vertical.is-layout-flex > * {
		  margin-bottom: 2rem;
	  }
	  
	  
	  footer .wp-block-navigation > * {
		  margin-left: 2rem;
	  }
	  footer .wp-block-social-links > * + * {
		  margin-left: 2rem;		  
	  }
	  footer .pagetop a span {
		  display: none;
	  }
  }
}
