/*
 * Elementor 3.31.2 の frontend.min.css / widget-heading.min.css / widget-image.min.css から、
 * 固定ページ本文(コンテナ .e-con とウィジェット .elementor-widget)の描画に必要な
 * ルールだけを抜き出したもの。フェーズ5で Elementor を停止しても、変換済みの固定ページ
 * (page-*.php)がそのまま同じ見た目で表示されるようにするための下地。
 *
 * 変更点は次の2つだけ:
 *   - ルート要素の .elementor と [data-elementor-id] を、変換済みページの本文ルート
 *     .l-page__body(<div class="l-page__body p-xxx">。inc/page-template.php)に読み替えた
 *   - 使っていないブレークポイント(min-width:-1 の laptop / widescreen など)を落とした
 * それ以外の値は元のまま。Elementor 有効中は同じ値が二重に当たるだけで表示は変わらない。
 * 抜き出しの手順は docs/tools/elementor-page-to-php.py の冒頭コメントを参照。
 */

body.rtl,
html[dir=rtl] {
	--direction-multiplier:-1;
}
.elementor-hidden {
	display:none;
}
.l-page__body *,
.l-page__body :after,
.l-page__body :before {
	box-sizing:border-box;
}
.l-page__body a {
	box-shadow:none;
	text-decoration:none;
}
.l-page__body hr {
	background-color:transparent;
	margin:0;
}
.l-page__body img {
	border:none;
	border-radius:0;
	box-shadow:none;
	height:auto;
	max-width:100%;
}
.l-page__body embed,
.l-page__body iframe,
.l-page__body object,
.l-page__body video {
	border:none;
	line-height:1;
	margin:0;
	max-width:100%;
	width:100%;
}
.elementor-element {
	--flex-direction:initial;
	--flex-wrap:initial;
	--justify-content:initial;
	--align-items:initial;
	--align-content:initial;
	--gap:initial;
	--flex-basis:initial;
	--flex-grow:initial;
	--flex-shrink:initial;
	--order:initial;
	--align-self:initial;
	align-self:var(--align-self);
	flex-basis:var(--flex-basis);
	flex-grow:var(--flex-grow);
	flex-shrink:var(--flex-shrink);
	order:var(--order);
}
.elementor-element.elementor-absolute,
.elementor-element.elementor-fixed {
	z-index:1;
}
.elementor-element:where(.e-con-full, .elementor-widget) {
	align-content:var(--align-content);
	align-items:var(--align-items);
	flex-direction:var(--flex-direction);
	flex-wrap:var(--flex-wrap);
	gap:var(--row-gap) var(--column-gap);
	justify-content:var(--justify-content);
}
.elementor-invisible {
	visibility:hidden;
}
.elementor-align-center {
	text-align:center;
}
.elementor-align-right {
	text-align:right;
}
.elementor-align-left {
	text-align:left;
}
.elementor-widget {
	position:relative;
}
.elementor-widget:not(:last-child) {
	margin-bottom:var(--kit-widget-spacing,20px);
}
.elementor-widget:not(:last-child).elementor-absolute,
.elementor-widget:not(:last-child).elementor-widget__width-auto,
.elementor-widget:not(:last-child).elementor-widget__width-initial {
	margin-bottom:0;
}
.e-con {
	--border-radius:0;
	--border-top-width:0px;
	--border-right-width:0px;
	--border-bottom-width:0px;
	--border-left-width:0px;
	--border-style:initial;
	--border-color:initial;
	--container-widget-width:100%;
	--container-widget-height:initial;
	--container-widget-flex-grow:0;
	--container-widget-align-self:initial;
	--content-width:min(100%,var(--container-max-width,1140px));
	--width:100%;
	--min-height:initial;
	--height:auto;
	--text-align:initial;
	--margin-top:0px;
	--margin-right:0px;
	--margin-bottom:0px;
	--margin-left:0px;
	--padding-top:var(--container-default-padding-top,10px);
	--padding-right:var(--container-default-padding-right,10px);
	--padding-bottom:var(--container-default-padding-bottom,10px);
	--padding-left:var(--container-default-padding-left,10px);
	--position:relative;
	--z-index:revert;
	--overflow:visible;
	--gap:var(--widgets-spacing,20px);
	--row-gap:var(--widgets-spacing-row,20px);
	--column-gap:var(--widgets-spacing-column,20px);
	--overlay-mix-blend-mode:initial;
	--overlay-opacity:1;
	--overlay-transition:0.3s;
	--e-con-grid-template-columns:repeat(3,1fr);
	--e-con-grid-template-rows:repeat(2,1fr);
	border-radius:var(--border-radius);
	height:var(--height);
	min-height:var(--min-height);
	min-width:0;
	overflow:var(--overflow);
	position:var(--position);
	width:var(--width);
	z-index:var(--z-index);
	--flex-wrap-mobile:wrap;
	margin-block-end:var(--margin-block-end);
	margin-block-start:var(--margin-block-start);
	margin-inline-end:var(--margin-inline-end);
	margin-inline-start:var(--margin-inline-start);
	padding-inline-end:var(--padding-inline-end);
	padding-inline-start:var(--padding-inline-start);
}
.e-con:where(:not(.e-div-block-base)) {
	transition:background var(--background-transition,.3s),border var(--border-transition,.3s),box-shadow var(--border-transition,.3s),transform var(--e-con-transform-transition-duration,.4s);
}
.e-con {
	--margin-block-start:var(--margin-top);
	--margin-block-end:var(--margin-bottom);
	--margin-inline-start:var(--margin-left);
	--margin-inline-end:var(--margin-right);
	--padding-inline-start:var(--padding-left);
	--padding-inline-end:var(--padding-right);
	--padding-block-start:var(--padding-top);
	--padding-block-end:var(--padding-bottom);
	--border-block-start-width:var(--border-top-width);
	--border-block-end-width:var(--border-bottom-width);
	--border-inline-start-width:var(--border-left-width);
	--border-inline-end-width:var(--border-right-width);
}
body.rtl .e-con {
	--padding-inline-start:var(--padding-right);
	--padding-inline-end:var(--padding-left);
	--margin-inline-start:var(--margin-right);
	--margin-inline-end:var(--margin-left);
	--border-inline-start-width:var(--border-right-width);
	--border-inline-end-width:var(--border-left-width);
}
.e-con.e-flex {
	--flex-direction:column;
	--flex-basis:auto;
	--flex-grow:0;
	--flex-shrink:1;
	flex:var(--flex-grow) var(--flex-shrink) var(--flex-basis);
}
.e-con-full,
.e-con>.e-con-inner {
	padding-block-end:var(--padding-block-end);
	padding-block-start:var(--padding-block-start);
	text-align:var(--text-align);
}
.e-con-full.e-flex,
.e-con.e-flex>.e-con-inner {
	flex-direction:var(--flex-direction);
}
.e-con,
.e-con>.e-con-inner {
	display:var(--display);
}
.e-con.e-grid {
	--grid-justify-content:start;
	--grid-align-content:start;
	--grid-auto-flow:row;
}
.e-con.e-grid,
.e-con.e-grid>.e-con-inner {
	align-content:var(--grid-align-content);
	align-items:var(--align-items);
	grid-auto-flow:var(--grid-auto-flow);
	grid-template-columns:var(--e-con-grid-template-columns);
	grid-template-rows:var(--e-con-grid-template-rows);
	justify-content:var(--grid-justify-content);
	justify-items:var(--justify-items);
}
.e-con-boxed.e-flex {
	align-content:normal;
	align-items:normal;
	flex-direction:column;
	flex-wrap:nowrap;
	justify-content:normal;
}
.e-con-boxed.e-grid {
	grid-template-columns:1fr;
	grid-template-rows:1fr;
	justify-items:legacy;
}
.e-con-boxed {
	gap:initial;
	text-align:initial;
}
.e-con.e-flex>.e-con-inner {
	align-content:var(--align-content);
	align-items:var(--align-items);
	align-self:auto;
	flex-basis:auto;
	flex-grow:1;
	flex-shrink:1;
	flex-wrap:var(--flex-wrap);
	justify-content:var(--justify-content);
}
.e-con.e-grid>.e-con-inner {
	align-items:var(--align-items);
	justify-items:var(--justify-items);
}
.e-con>.e-con-inner {
	gap:var(--row-gap) var(--column-gap);
	height:100%;
	margin:0 auto;
	max-width:var(--content-width);
	padding-inline-end:0;
	padding-inline-start:0;
	width:100%;
}
.l-page__body>.e-con {
	--margin-left:auto;
	--margin-right:auto;
	max-width:min(100%,var(--width));
}
.e-con .elementor-widget.elementor-widget {
	margin-block-end:0;
}
/* 背景オーバーレイ(背景画像の重ね。--background-overlay:'' のときだけ描かれる)。2026-09-25 追加:
   抜き出し漏れで、Elementor 停止後に見出し背景の画像などが消えるところだった */
.e-con:before,
.e-con>.elementor-background-slideshow:before,
:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container:before {
	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);
	content:var(--background-overlay);
	display:block;
	height:max(100% + var(--border-top-width) + var(--border-bottom-width),100%);
	left:calc(0px - var(--border-left-width));
	mix-blend-mode:var(--overlay-mix-blend-mode);
	opacity:var(--overlay-opacity);
	position:absolute;
	top:calc(0px - var(--border-top-width));
	transition:var(--overlay-transition,.3s);
	width:max(100% + var(--border-left-width) + var(--border-right-width),100%);
}
.e-con:before {
	transition:background var(--overlay-transition,.3s),border-radius var(--border-transition,.3s),opacity var(--overlay-transition,.3s);
}
.e-con .elementor-widget {
	min-width:0;
}
.e-con>.e-con-inner>.elementor-widget>.elementor-widget-container,
.e-con>.elementor-widget>.elementor-widget-container {
	height:100%;
}
.e-con.e-con>.e-con-inner>.elementor-widget,
.l-page__body.l-page__body .e-con>.elementor-widget {
	max-width:100%;
}
.e-con .elementor-widget:not(:last-child) {
	--kit-widget-spacing:0px;
}
@media (max-width:767px) {
	.e-con.e-flex {
		--width:100%;
		--flex-wrap:var(--flex-wrap-mobile);
	}
}
.elementor-element:where(:not(.e-con)):where(:not(.e-div-block-base)) .elementor-widget-container,
.elementor-element:where(:not(.e-con)):where(:not(.e-div-block-base)):not(:has(.elementor-widget-container)) {
	transition:background .3s,border .3s,border-radius .3s,box-shadow .3s,transform var(--e-transform-transition-duration,.4s);
}
.elementor-heading-title {
	line-height:1;
	margin:0;
	padding:0;
}
@media (max-width:767px) {
	.l-page__body .elementor-hidden-mobile,
	.l-page__body .elementor-hidden-phone {
		display:none;
	}
}
@media (min-width:768px) and (max-width:1024px) {
	.l-page__body .elementor-hidden-tablet {
		display:none;
	}
}
@media (min-width:1025px) and (max-width:99999px) {
	.l-page__body .elementor-hidden-desktop {
		display:none;
	}
}
/* widget-heading.min.css */
.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a {
	color:inherit;
	font-size:inherit;
	line-height:inherit;
}
.elementor-widget-heading .elementor-heading-title.elementor-size-small {
	font-size:15px;
}
.elementor-widget-heading .elementor-heading-title.elementor-size-medium {
	font-size:19px;
}
.elementor-widget-heading .elementor-heading-title.elementor-size-large {
	font-size:29px;
}
.elementor-widget-heading .elementor-heading-title.elementor-size-xl {
	font-size:39px;
}
.elementor-widget-heading .elementor-heading-title.elementor-size-xxl {
	font-size:59px;
}
/* widget-image.min.css */
.elementor-widget-image {
	text-align:center;
}
.elementor-widget-image a {
	display:inline-block;
}
.elementor-widget-image a img[src$=".svg"] {
	width:48px;
}
.elementor-widget-image img {
	display:inline-block;
	vertical-align:middle;
}
