@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap');

:root {
	/* 背景・テキスト */
	--color-bg-main: #fff9f0; /* メイン背景（クリームホワイト） */
	--color-bg-sub: #e8d8c4; /* セクション背景（サンドベージュ） */
	--color-text-main: #5a5a5a; /* 文字色（必要なら調整） */
	--color-text-sub: #9a9a9a; /* サブテキスト */

	/* ボタン・リンク・アクセント */
	--color-accent: #fadadd;
	--color-button: #6cb6e6; /* 少し濃くしたパステルブルー */
	--color-button-hover: #ff9a8b; /* あたたかくて視認性のあるコーラル系 */
	--color-button-text: #ffffff;
	--color-button-shadow: rgba(0, 0, 0, 0.1);

	/* 見出し */
	--color-heading-main: #4a4a4a; /* メインテキスト色（少し濃いグレー） */
	--color-heading-sub: #a57164; /* h2用のアクセント色（やさしいブラウン） */
	--color-border-accent: #eab8a1; /* 下線などの装飾用 */
	--color-border-light: #eaddd3;
}

/* reset css */
/* prettier-ignore */
*, *:before, *:after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}
/* prettier-ignore */
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}
/* prettier-ignore */
body {
	line-height: 1;
}
/* prettier-ignore */
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section {
    display: block;
}
/* prettier-ignore */
ol, ul {
    list-style: none;
}
/* prettier-ignore */
blockquote, q {
    quotes:none;
}
/* prettier-ignore */
blockquote:before, blockquote:after,
q:before, q:after {
    content:'';
    content:none;
}
a {
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
	text-decoration: none;
}
del {
	text-decoration: line-through;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
img {
	vertical-align: top;
	font-size: 0;
	line-height: 0;
}

input[type='text'],
input[type='number'],
input[type='password'],
input[type='email'],
input[type='tel'],
input[type='date'] {
	padding: 0.8rem;
	border: 1px #645853 solid;
	background-color: #fff;
	border-radius: 2px;
	max-width: 100%;
	font-size: 1.2rem;
	color: #645853;
}

input[type='text']:focus,
input[type='number']:focus,
input[type='password']:focus,
input[type='email']:focus,
input[type='tel']:focus,
input[type='date']:focus,
textarea:focus {
	border: 1px #141c3b solid;
}

input[type='number'] {
	text-align: right;
}
input[type='number']::-webkit-outer-spin-button,
input[type='number']::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

input[type='radio'],
input[type='checkbox'] {
	transform: scale(1.6);
}

button,
input[type='submit'],
input[type='button'] {
	appearance: none;
	-webkit-appearance: none;
	outline: none;
	border: none;
	font-family: inherit;
	font-size: inherit;
}

button:hover,
input[type='checkbox']:hover,
input[type='submit']:hover,
input[type='button']:hover,
button:hover {
	cursor: pointer;
}

label {
	padding-left: 0.8rem;
}

label:hover {
	cursor: pointer;
}

select {
	padding: 0.8rem;
	border: 1px #645853 solid;
	background-color: #fff;
	border-radius: 2px;
	color: #141c3b;
	font-size: 1.1rem;
}

textarea {
	padding: 0.5rem 1rem;
	border: 1px #645853 solid;
	background-color: #fff;
	min-height: 10rem;
	border-radius: 2px;
	width: 100%;
	font-size: 1rem;
}

a {
	color: #ff8a65;
	transition: color 0.5s;
}

b,
strong {
	color: #f23131;
}

p {
	padding-bottom: 1rem;
}

html {
	font-size: 16px;
}
body {
	font-family: 'Noto Serif JP', serif;
	line-height: 1.6rem;
	background-color: var(--color-bg-main);
	width: 100%;
	color: var(--color-text-main);
	font-weight: 500;
}

@keyframes moveRight {
	from {
		opacity: 0;
		transform: translateX(100px);
		visibility: hidden;
	}
	to {
		opacity: 1;
		transform: translateX(0);
		visibility: visible;
	}
}
@keyframes moveUp {
	from {
		opacity: 0;
		transform: translateY(100px);
		visibility: hidden;
	}
	to {
		opacity: 1;
		transform: translateY(0);
		visibility: visible;
	}
}

#container {
	display: flex;
	flex-direction: column;
	min-height: 100dvh;
}
#container > footer {
	margin-top: auto;
}

.aspekta {
	font-family: 'Aspekta', sans-serif;
}

.acenter {
	text-align: center !important;
}
.aright {
	text-align: right !important;
}
.fleft {
	float: left;
	padding-right: 1rem;
}
.fright {
	float: right;
	padding-left: 1rem;
}

.link {
	text-decoration: underline;
}
.link:hover {
	cursor: pointer;
	background-color: #efefef;
	transition: 0.5s;
}

.use_animation .index_catch {
	opacity: 0;
}
.use_animation .index_catch.active {
	transform: translateX(100px);
	animation: moveRight 2s ease forwards 0.5s;
}
.use_animation .index_title {
	opacity: 0;
}
.use_animation .index_title.active {
	transform: translateX(-100px);
	animation: moveRight 3s ease forwards 0.5s;
}

.use_animation .index_top_seminar_list_row,
.h2_index_top.use_animation {
	opacity: 0;
}
.use_animation .index_top_seminar_list_row.active,
.h2_index_top.use_animation.active {
	transform: translateX(100px);
	animation: moveRight 0.5s ease forwards 0.1s;
}

.use_animation .anime_x_row {
  position: relative;
	opacity: 0;
	transform: translateX(100px);
	visibility: hidden;
	will-change: transform, opacity;
}
.use_animation .anime_x_row.active {
	animation: moveFromRight 1s ease forwards 0.5s;
}
.use_animation .anime_y_row {
  position: relative;
	opacity: 0;
	transform: translateY(100px);
	visibility: hidden;
}
.use_animation .anime_y_row.active {
	animation: moveUp 1s ease forwards 0.5s;
}
#page_top {
	position: fixed;
	bottom: 0;
	right: 0;
	transform: translate3d(0, 120%, 0);
}
#page_top.active {
	transform: translateY(100px);
	animation: moveUp 1s ease forwards 0.5s;
}
#page_top > a {
	display: block;
	padding: 1rem;
	background-color: #333;
	color: #fff;
}

/* breadcrumbs */
.breadcrumbs {
	background-color: var(--color-border-accent);
	padding: 0 1rem;
}
.breadcrumbs > ol {
	display: flex;
	flex-wrap: wrap;
	font-size: 0.8rem;
}
.breadcrumbs > ol > li {
	position: relative;
	padding-right: 2rem;
	color: var(--color-text-main);
}
.breadcrumbs > ol > li:not(:last-child)::after {
	position: absolute;
	right: 1rem;
	font-family: FontAwesome;
	content: '\f054';
}
.breadcrumbs > ol > li > a {
	color: var(--color-text-main);
}

/* button */
a.soft-button {
	display: inline-block;
}
.soft-button {
	background-color: var(--color-button);
	color: var(--color-button-text);
	font-size: 1rem;
	padding: 0.6em 1.4em;
	border: none;
	border-radius: 999px;
	box-shadow: 0 4px 12px var(--color-button-shadow);
	transition: background-color 0.3s ease, transform 0.2s ease;
	cursor: pointer;
	white-space: nowrap;
	font-weight: 600;
}
.soft-button.secondary {
	background-color: var(--color-text-sub);
}
.soft-button:hover {
	background-color: var(--color-button-hover);
	transform: translateY(-2px);
}
.glass-button {
	position: relative;
	background: rgba(255, 255, 255, 0.6); /* 半透明ホワイト */
	color: #333; /* 落ち着いた濃い文字色 */
	padding: 0.5em 3em;
	border: 1px solid rgba(255, 255, 255, 0.4); /* 軽い枠線で立体感 */
	border-radius: 999px;
	font-size: 1rem;
	font-weight: 500;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); /* ふわっと浮く影 */
	backdrop-filter: blur(6px); /* 背景ぼかし（サポートありなら） */
	-webkit-backdrop-filter: blur(6px); /* Safari対応 */
	transition: background-color 0.3s ease, transform 0.2s ease;
	cursor: pointer;
	display: inline-block;
	text-decoration: none;
}
.glass-button::before {
	position: absolute;
	left: 1rem;
	font-family: FontAwesome;
	content: '\f054';
	color: var(--color-button);
	text-shadow: 0px 1px 1px #ccc;
}

.glass-button:hover {
	background: rgba(255, 255, 255, 0.75); /* 少しだけ濃く */
	transform: translateY(-2px);
}
.glass-button:hover::before {
	color: var(--color-button-hover);
}

.soft-banner {
	background-color: var(--color-accent); /* ピンクベージュ */
	color: var(--color-text-main); /* やさしいグレー */
	text-align: center;
	padding: 1em;
	font-size: 1.1rem;
	border-radius: 12px;
	margin: 1em auto;
	max-width: 800px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* header */

#container > header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	display: flex;
	flex-direction: column;
	z-index: 999;
	background-color: var(--color-bg-sub);
}

#header_wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.5rem 1rem;
}
.header_logo a {
	color: var(--color-text-main);
}
#menu_button i {
	font-size: 2rem;
	transition: 0.5s;
}
#menu_button i:hover {
	cursor: pointer;
	color: var(--color-button-hover);
	text-shadow: 0 2px 4px #fff;
}

#header_menu {
	right: -45%;
	width: 45%;
}

#header_menu {
	position: fixed;
	top: 0;
	height: 100vh;
	z-index: 1000;
	background-color: #fff;
	overflow-y: auto;
	transition: 0.2s;
	box-shadow: 0 2px 6px var(--color-text-main);
}
.menu_active {
	right: 0 !important;
}
.menu_header {
	background-color: var(--color-bg-sub);
	padding: 0.5rem 1rem;
	color: #fff;
}
.menu_header i {
	color: var(--color-text-main);
	font-size: 2rem;
}
.menu_header i:hover {
	color: var(--color-button-hover);
	cursor: pointer;
	transition: 0.5s;
}
.menu_list {
	padding: 0.5rem 1rem;
}

.ul_header_menu {
	padding-bottom: 1rem;
}
.ul_header_menu > li {
	padding-bottom: 0.5rem;
}
.ul_header_menu > li > * {
	position: relative;
	display: block;
	color: var(--color-text-main);
	border-bottom: 1px var(--color-text-sub) dotted;
	padding: 0.5rem 0 0.5rem 2rem;
	transition: 0.5s;
}
.ul_header_menu > li > * ::before {
	position: absolute;
	left: 0;
	font-family: FontAwesome;
	content: '\f054';
	color: var(--color-button);
	text-shadow: 0px 1px 1px #ccc;
}
.ul_header_menu > li > *:hover {
	background-color: var(--color-button-hover);
}

/* index */

#index_top {
	position: relative;
	width: 100%;
	height: 100dvh;
}
.section_inner {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100%;
  overflow: hidden;
}
.index_catch {
	display: flex;
	flex-direction: column;

	color: var(--color-accent);
	filter: drop-shadow(2px 2px 2px #666);
	font-weight: 500;
}
.index_title {
	display: flex;
	flex-direction: column;

	color: var(--color-bg-main);
	filter: drop-shadow(2px 2px 2px #666);
	font-weight: 400;
}

.ul_index_menu {
	display: flex;
	flex-direction: column;
}
.ul_index_menu > li {
	padding: 0.5rem;
}

/* content */
#content {
	line-height: 2rem;
}
.section-content {
	padding: 1rem;
	border-radius: 4px;
	background-color: #fff;
	box-shadow: 0 2px 4px var(--color-button-shadow);
	margin-bottom: 2rem;
}
.content-time {
	border-bottom: 1px var(--color-text-main) dotted;
}
.dl-list {
	padding: 1rem;
	border-radius: 4px;
	background-color: #fff;
	box-shadow: 0 2px 4px var(--color-button-shadow);
}

.dl-content > div > dt {
	font-weight: 600;
	color: var(--color-heading-sub);
	border-left: 4px solid var(--color-border-accent);
	padding-left: 0.6em;
}
.dl-content > div > dd {
	color: #555;
	line-height: 1.6;
	padding-left: 0.6em;
}
.img-content img {
	max-width: 100%;
	height: auto;
}
.ul-list {
	padding: 1rem 0;
	border-radius: 4px;
	margin-bottom: 1rem;
}
.ul-list > li {
	position: relative;
	padding-left: 2rem;
}
.ul-list > li::before {
	position: absolute;
	left: 0;
	font-family: FontAwesome;
	content: '\f4d8';
	color: var(--color-heading-sub);
	text-shadow: 0px 1px 1px #ccc;
}
.ul-button > li {
	padding: 0.5rem 0;
}
.footer-content {
	padding-top: 3rem !important;
	padding-bottom: 3rem !important;
}
.flex-center {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.content-booth-row {
	padding: 0.5rem 0;
}
.booth-inner {
	background-color: #fff;
	border-radius: 4px;
	padding: 1rem;
}

.booth-main {
	display: flex;
}
.booth-img {
	width: 20%;
}
.booth-img img {
	width: 100%;
	aspect-ratio: 1 /1;
	object-fit: cover;
}
.booth-content {
	flex: 1;
	padding-left: 1rem;
}
.googlemap iframe {
	width: 100%;
}
/* footer */
footer {
	background-color: var(--color-bg-sub);
	padding: 1rem;
}
.footer-copyright {
	font-size: 0.8rem;
	line-height: 1rem;
}
