/*
 * Elementor のウィジェット用 CSS のうち、変換済み固定ページ(グループD・E)が使うものの抜き出し。
 * elementor-base.css(コンテナと見出し・画像)の続き。フェーズ5で Elementor を停止しても
 * 同じ見た目になるための下地で、値は元のまま。Elementor 有効中は同じ値が二重に当たるだけ。
 *
 * 出典:
 *   Elementor 3.31 frontend.min.css      … .elementor-grid 系 / .elementor-screen-only / .elementor-clearfix
 *   Elementor Pro 3.25 widget-loop-builder.min.css / widget-_loop-common.min.css … ループグリッド
 *   Elementor 3.31 widget-toggle.min.css … トグル(FAQ の質問と回答)
 *
 * 使っていないブレークポイント(widescreen / laptop / *_extra)と 5 列以上のグリッドは落とした。
 */

/* ---- frontend.min.css ---- */
.elementor-screen-only {
	height:1px;
	margin:-1px;
	overflow:hidden;
	padding:0;
	position:absolute;
	top:-10000em;
	width:1px;
	clip:rect(0,0,0,0);
	border:0;
}
.elementor-clearfix:after {
	clear:both;
	content:"";
	display:block;
	height:0;
	width:0;
}
.elementor-grid {
	display:grid;
	grid-column-gap:var(--grid-column-gap);
	grid-row-gap:var(--grid-row-gap);
}
.elementor-grid .elementor-grid-item {
	min-width:0;
}
.elementor-grid-1 .elementor-grid {
	grid-template-columns:repeat(1,1fr);
}
.elementor-grid-2 .elementor-grid {
	grid-template-columns:repeat(2,1fr);
}
.elementor-grid-3 .elementor-grid {
	grid-template-columns:repeat(3,1fr);
}
.elementor-grid-4 .elementor-grid {
	grid-template-columns:repeat(4,1fr);
}
@media (max-width:1024px) {
	.elementor-grid-tablet-1 .elementor-grid {
		grid-template-columns:repeat(1,1fr);
	}
	.elementor-grid-tablet-2 .elementor-grid {
		grid-template-columns:repeat(2,1fr);
	}
	.elementor-grid-tablet-3 .elementor-grid {
		grid-template-columns:repeat(3,1fr);
	}
	.elementor-grid-tablet-4 .elementor-grid {
		grid-template-columns:repeat(4,1fr);
	}
}
@media (max-width:767px) {
	.elementor-grid-mobile-1 .elementor-grid {
		grid-template-columns:repeat(1,1fr);
	}
	.elementor-grid-mobile-2 .elementor-grid {
		grid-template-columns:repeat(2,1fr);
	}
	.elementor-grid-mobile-3 .elementor-grid {
		grid-template-columns:repeat(3,1fr);
	}
	.elementor-grid-mobile-4 .elementor-grid {
		grid-template-columns:repeat(4,1fr);
	}
}

/* ---- widget-loop-builder.min.css / widget-_loop-common.min.css(ループグリッド) ---- */
.elementor-widget-loop-grid {
	scroll-margin-top:var(--auto-scroll-offset,initial);
}
.elementor-widget-loop-grid .elementor-grid {
	grid-column-gap:var(--grid-column-gap,30px);
	grid-row-gap:var(--grid-row-gap,30px);
}
.elementor-widget-loop-grid .e-loop-nothing-found-message {
	color:var(--e-loop-nothing-found-message-color,#1f2124);
	padding-block-end:var(--e-loop-nothing-found-message-space-from-bottom,30px);
	padding-block-start:var(--e-loop-nothing-found-message-space-from-top,30px);
	text-align:var(--e-loop-nothing-found-message-align,center);
}
.elementor-loop-container.elementor-posts-masonry {
	align-items:flex-start;
}
.elementor-loop-container:not(.elementor-posts-masonry) {
	align-items:stretch;
}
.e-loop-item * {
	word-break:break-word;
}

/* ---- widget-toggle.min.css(トグル) ---- */
.elementor-tab-title a {
	color:inherit;
}
.elementor-toggle {
	text-align:start;
}
.elementor-toggle .elementor-tab-title {
	border-block-end:1px solid #d5d8dc;
	cursor:pointer;
	font-weight:700;
	line-height:1;
	margin:0;
	outline:none;
	padding:15px;
}
.elementor-toggle .elementor-tab-title .elementor-toggle-icon {
	display:inline-block;
	width:1em;
}
.elementor-toggle .elementor-tab-title .elementor-toggle-icon svg {
	height:1em;
	margin-inline-start:-5px;
	width:1em;
}
.elementor-toggle .elementor-tab-title .elementor-toggle-icon.elementor-toggle-icon-right {
	float:right;
	text-align:right;
}
.elementor-toggle .elementor-tab-title .elementor-toggle-icon.elementor-toggle-icon-left {
	float:left;
	text-align:left;
}
.elementor-toggle .elementor-tab-title .elementor-toggle-icon .elementor-toggle-icon-closed {
	display:block;
}
.elementor-toggle .elementor-tab-title .elementor-toggle-icon .elementor-toggle-icon-opened {
	display:none;
}
.elementor-toggle .elementor-tab-title.elementor-active {
	border-block-end:none;
}
.elementor-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon-closed {
	display:none;
}
.elementor-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon-opened {
	display:block;
}
.elementor-toggle .elementor-tab-content {
	border-block-end:1px solid #d5d8dc;
	display:none;
	padding:15px;
}
@media (max-width:767px) {
	.elementor-toggle .elementor-tab-title {
		padding:12px;
	}
	.elementor-toggle .elementor-tab-content {
		padding:12px 10px;
	}
}
.e-con-inner>.elementor-widget-toggle,
.e-con>.elementor-widget-toggle {
	width:var(--container-widget-width);
	--flex-grow:var( --container-widget-flex-grow );
}

/* ---- widget-spacer.min.css(スペーサー。トップ) ---- */
.e-con {
	--container-widget-width:100%;
}
.e-con-inner>.elementor-widget-spacer,
.e-con>.elementor-widget-spacer {
	width:var(--container-widget-width,var(--spacer-size));
	--align-self:var( --container-widget-align-self,initial );
	--flex-shrink:0;
}
.e-con-inner>.elementor-widget-spacer>.elementor-widget-container,
.e-con>.elementor-widget-spacer>.elementor-widget-container {
	height:100%;
	width:100%;
}
.e-con-inner>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer,
.e-con>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer {
	height:100%;
}
.e-con-inner>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer>.elementor-spacer-inner,
.e-con>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer>.elementor-spacer-inner {
	height:var(--container-widget-height,var(--spacer-size));
}

/* ---- frontend.min.css のアイコン(トップの SVG アイコン・Instagram アイコン) ---- */
.elementor-view-stacked .elementor-icon {
	background-color:#69727d;
	color:#fff;
	padding:.5em;
	fill:#fff;
}
.elementor-view-framed .elementor-icon {
	background-color:transparent;
	border:3px solid #69727d;
	color:#69727d;
	padding:.5em;
}
.elementor-icon {
	color:#69727d;
	display:inline-block;
	font-size:50px;
	line-height:1;
	text-align:center;
	transition:all .3s;
}
.elementor-icon:hover {
	color:#69727d;
}
.elementor-icon i,
.elementor-icon svg {
	display:block;
	height:1em;
	position:relative;
	width:1em;
}
.elementor-icon i:before,
.elementor-icon svg:before {
	left:50%;
	position:absolute;
	transform:translateX(-50%);
}

/* ---- frontend.min.css の背景動画(トップのメインビジュアル)。ルートの .elementor は .l-page__body に読み替え ---- */
.l-page__body .elementor-background-video-container {
	direction:ltr;
	inset:0;
	overflow:hidden;
	position:absolute;
	z-index:0;
	pointer-events:none;
	transition:opacity 1s;
}
.l-page__body .elementor-background-video-container.elementor-loading {
	opacity:0;
}
.l-page__body .elementor-background-video-hosted {
	left:50%;
	position:absolute;
	top:50%;
	transform:translate(-50%,-50%);
	-o-object-fit:cover;
	object-fit:cover;
}
:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container {
	border-block-end-width:var(--border-block-end-width);
	border-block-start-width:var(--border-block-start-width);
	border-color:var(--border-color);
	border-inline-end-width:var(--border-inline-end-width);
	border-inline-start-width:var(--border-inline-start-width);
	border-radius:var(--border-radius);
	border-style:var(--border-style);
	height:max(100% + var(--border-top-width) + var(--border-bottom-width),100%);
	left:calc(0px - var(--border-left-width));
	top:calc(0px - var(--border-top-width));
	width:max(100% + var(--border-left-width) + var(--border-right-width),100%);
}
:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container:before {
	z-index:1;
}
@media (max-width:767px) {
	:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container.elementor-hidden-mobile {
		display:none;
	}
}

/* ---- Elementor テンプレートを埋め込んだ箱(トップのカルーセルの各スライド)。
   元は <div class="elementor elementor-NNNN"> で、.elementor>.e-con のルールが当たっていた ---- */
.mibot-template > .e-con {
	--margin-left:auto;
	--margin-right:auto;
	max-width:min(100%,var(--width));
}

/* ---- Elementor Pro widget-_sticky.min.css(スクロール追従中の重なり順) ---- */
.elementor-sticky--active {
	z-index:99;
}
.e-con.elementor-sticky--active {
	z-index:var(--z-index,99);
}
