/* ========================
   ELEMENTS PAGE STYLES
========================== */
/* Element Code */
.element-code {
	margin-top: 1.5rem;
	padding: 1rem;
	background-color: rgba(255, 255, 255, .1);
	border-radius: .3rem;
	overflow: auto;
}
.element-code code {
	font-family: monospace;
	font-size: 1.2rem;
	color: var(--white);
}

/* Grid Usage Guide */
.grid-usage-guide {
	margin-top: 5rem;
	padding: 3rem;
	background-color: var(--light-gray);
	border-radius: 0.5rem;
}
.grid-usage-guide h3 {
	margin-bottom: 2rem;
	font-size: 2rem;
	font-weight: 600;
}

.usage-code {
	margin-bottom: 2rem;
	padding: 2rem;
	background-color: var(--dark);
	border-radius: .3rem;
	overflow: auto;
}
.usage-code pre {
	margin: 0;
}

.usage-code code {
	font-family: monospace;
	font-size: 1.4rem;
	color: var(--white);
	line-height: 1.6;
}

/* Button Showcase */
.button-showcase {
	display: flex;
	flex-direction: column;
	gap: 4rem;
}

.button-group {
	margin-bottom: 0;
	padding: 1rem 2rem;
	background: var(--light-gray);
}

.button-group h3 {
	margin-bottom: 2rem;
	font-size: 1.8rem;
	font-weight: 600;
}

.buttons-container {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 2rem;
}

/* Responsive Adjustments */
@media (max-width: 992px) {
	.button-group h3 {
		font-size: 1.6rem;
	}
}

@media (max-width: 768px) {
	.buttons-container {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (max-width: 576px) {
	.usage-code code {
		font-size: 1.2rem;
	}
}

/* Link Showcase */
.link-group h3 {
	margin-bottom: 2rem;
	font-size: 1.8rem;
	font-weight: 600;
}
@media (max-width: 992px) {
	.link-group h3 {
		font-size: 1.6rem;
	}
}
.components .mega-menu {
	background-color: rgba(var(--primary-rgb), .95);
}
@media (max-width: 992px) {
	.components .mega-menu {
		background-color: rgba(var(--dark-rgb), .95);
	}
}
/* ======== Typography & Color Utilities Section ======== */
.components section:not(.page-title-section) {
	padding: 5rem 0 2rem;
	background-color: var(--background);
}

.utility-container {
	margin-bottom: 5rem;
}

.utility-group {
	margin-bottom: 3rem;
	background-color: var(--white);
	padding: 2rem;
	border-radius: 0.5rem;
	box-shadow: 0 0.2rem 1rem rgba(var(--dark-rgb), 0.05);
}

.utility-group h3 {
	margin-bottom: 2rem;
	padding-bottom: 1rem;
	font-size: 1.8rem;
	font-weight: 600;
	border-bottom: 1px solid var(--light-gray);
}

.utility-examples {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(30rem, 1fr));
	gap: 2rem;
}

.color-examples {
	grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
}

.utility-example {
	display: flex;
	flex-direction: column;
}

.utility-example > div {
	margin-bottom: 1rem;
	word-break: break-word;
}

.utility-example code {
	display: inline-block;
	padding: .3rem .6rem;
	font-family: monospace;
	font-size: 1.4rem;
	background-color: var(--light-gray);
	border-radius: .3rem;
}

.color-box {
	height: 8rem;
	border-radius: .5rem;
	box-shadow: 0 .2rem .5rem rgba(var(--dark-rgb), .1);
}

/* Responsive adjustments */
@media (max-width: 992px) {
	.utility-group h3 {
		font-size: 1.6rem;
	}
}
@media (max-width: 768px) {
	.utility-examples {
		grid-template-columns: repeat(auto-fill, minmax(25rem, 1fr));
	}
	.color-examples {
		grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
	}
}
@media (max-width: 576px) {
	.utility-examples {
		grid-template-columns: 1fr;
	}
	.color-examples {
		grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
	}
}

#page-title .title-underline {
	position: relative;
	height: .1rem;
	width: 100%;
	background-color: rgba(var(--light-gray-rgb), .3);
	margin-bottom: 1.5rem;
	overflow: hidden;
}
#page-title .title-underline::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 0;
	height: 100%;
	background-color: rgba(var(--white-rgb), .9);
	transition: width 1.5s cubic-bezier(.16, 1, .3, 1);
}

#page-title .breadcrumb-container {
	display: flex;
	justify-content: flex-end;
	opacity: 1;
	transition: opacity .5s ease;
	transition-delay: .8s;
}

/* ======== Loading Animation Section ======== */
#button-triggered-loader {
	opacity: 0;
	display: none;
	transition: opacity .3s ease;
}

#button-triggered-loader.active {
	opacity: 1;
	display: flex;
}

/* ボタンがクリックされた時のスタイル */
#show-loader-btn.clicked {
	pointer-events: none; /* クリック後は操作不可に */
	opacity: 0.7;
}

/* ======== Filterable Items ======== */

.item-content {
	padding: 2rem;
}
.item-content h4 {
	margin-bottom: 1rem;
	font-size: 1.8rem;
	font-weight: 600;
}
.item-content p {
	color: var(--gray);
	font-size: 1.4rem;
}

.label-for-filters {
	margin-bottom: 2rem;
}
.label-for-filters p {
	display: inline;
	padding: .25rem 1rem;
	font-size: 1.2rem;
	border-radius: .3rem;
}
.label-for-filters.basics p {
	color: var(--primary);
	background: transparent;
	border: 1px solid var(--primary);
}
.label-for-filters.interactions p {
	color: var(--secondary);
	background: transparent;
	border: 1px solid var(--secondary);
}
.label-for-filters.containers p {
	color: var(--tertiary);
	background: transparent;
	border: 1px solid var(--tertiary);
}
.label-for-filters.dynamics p {
	color: var(--warning);
	background: transparent;
	border: 1px solid var(--warning);
}
.label-for-filters.others p {
	color: var(--gray);
	background: transparent;
	border: 1px solid var(--gray);
}


/* ======== Side Navigation ======== */
.side-navigation {
	position: fixed;
	top: 50%;
	left: 5rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	transform: translateY(-50%)
}
.side-navigation-link {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	padding: 1rem;
	font-size: 24px;
	color: var(--primary);
	background: var(--quaternary);
	border: 1px solid var(--quaternary);
}
.side-navigation-link:hover {
	color: var(--quaternary);
	background: var(--primary);
	border: 1px solid var(--primary);
}

/* ======== Tables ======== */
.table-components-section {
	padding: 6rem 0;
	background-color: var(--white);
}
.table-container h3 {
	margin-bottom: 2rem;
	font-size: 2rem;
	font-weight: 600;
}

/* ======== Forms ======== */
.form-components-section {
	padding: 6rem 0;
}
.form-container {
	margin-bottom: 6rem;
	padding: 3rem;
	background-color: var(--white);
	border-radius: 0.8rem;
	box-shadow: 0 0.2rem 1rem rgba(var(--dark-rgb), 0.05);
}
.form-container h3 {
	margin-bottom: 3rem;
	font-size: 2rem;
	font-weight: 600;
	color: var(--dark);
}

@media (max-width: 768px) {
	.form-container {
		padding: 2rem;
	}
}

@media (max-width: 576px) {
	.side-navigation {
		display: none;
	}
	.form-container {
		padding: 2rem;
	}
	.form-container h3 {
		font-size: 1.8rem;
	}
}

/* ======== Tab ======== */
.tab-container {
	margin-bottom: 6rem;
	padding: 3rem;
	background-color: var(--white);
	border-radius: 0.8rem;
	box-shadow: 0 0.2rem 1rem rgba(var(--dark-rgb), 0.05);
}
.tab-container h3 {
	margin-bottom: 3rem;
	font-size: 2rem;
	font-weight: 600;
	color: var(--dark);
}

/* ======== Dynamics ======== */
.card-carousel-container, 
.filter-container {
	margin-bottom: 6rem;
	padding: 3rem;
	background-color: var(--white);
	border-radius: 0.8rem;
	box-shadow: 0 0.2rem 1rem rgba(var(--dark-rgb), 0.05);
}
.card-carousel-container h3,
.filter-container h3 {
	margin-bottom: 3rem;
	font-size: 2rem;
	font-weight: 600;
	color: var(--dark);
}

/* ======== Accordion ======== */
.accordion-components-section {
	padding: 6rem 0;
}
.component-container {
	margin-bottom: 6rem;
	padding: 3rem;
	background-color: var(--white);
	border-radius: .8rem;
	box-shadow: 0 .2rem 1rem rgba(var(--dark-rgb), .05);
}

.component-container .accordion-component-title {
	margin-bottom: 3rem;
	font-size: 2rem;
	font-weight: 600;
	color: var(--dark);
}

/* ======== Modals ======== */
/* Button Groups */
.button-group {
	margin-bottom: 2rem;
}
.buttons-container {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 1.5rem;
}

/* Link Styles */
.link-examples {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

/* Card Link */
.card-link {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: transform .3s ease;
}
.card-link:hover {
	transform: translateY(-5px);
}

/* Grid In Modal */
.row {
	display: flex;
	flex-wrap: wrap;
	margin-right: -1.5rem;
	margin-left: -1.5rem;
}
.col-6 {
	flex: 0 0 50%;
	max-width: 50%;
	padding-right: 1.5rem;
	padding-left: 1.5rem;
}

@media (max-width: 768px) {
	.buttons-container {
		flex-direction: column;
	}

}

/* ======== Banners & Toasts ======== */
.demo-controls {
	margin-bottom: 3rem;
	padding: 2rem;
	background-color: var(--light-gray);
	border-radius: .5rem;
}

.scroll-demo-content {
	margin-top: 5rem;
	padding: 2rem;
	background-color: var(--light-gray);
	border-radius: 0.5rem;
	text-align: center;
	border: 2px dashed var(--primary);
}

.dummy-content {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 200px;
	color: var(--gray);
	font-size: 1.5rem;
}
