@charset "utf-8";

html {
	height: 100%;
	width: 100%;
	margin: 0;
}

body {
	height: 100%;
	margin: 0;
	display: flex;
	flex-direction: column;
	background: #fafafa;
}


/* ヘッダー */
.full-header {
	position: sticky;
	width: 100%;
	background: #fff;
	padding: 0;
	border-bottom: 1px solid #e5e7eb;
	z-index: 1000;
	top: 0;
	left: 0;
}

.header-inner {
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 32px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	box-sizing: border-box;
	white-space: nowrap;
}

h1 {
	color: inherit;
	margin: 0;
	padding: 4px;
	font-size: 14px;
}
p {
	color: #070707;
	margin: 0;
	padding: 4px;
	font-size: 6px;
}
a {
	color: #ccc;
}
/* 記事,お問い合わせ */
.top li a {
	text-decoration: none;
	color: inherit;
	padding: 8px 8px;
}
.top li a:hover{
	color:#2163f3;
	background: #dbe3f2;
	border-radius: 6px;
	padding: 8px 8px;
}

/* 全体の記事 パンくず～フッターの手前まで */
.wrapper {
	margin: 0 auto;
	background: #fafafa;
	max-width: 1080px;
	padding: 0 4px;
	box-sizing: border-box;
	flex: 1;
}

ul {
	padding: 8px;
	display: flex;
	font-size: 14px;
	list-style: none;
	gap: 8px;

}

main {
	padding: 0 16px;
	margin: 0 24px;
}

/* パンくず */
.ask {
	margin-bottom: 45px;
}
.breadcrumb {
	font-size:12px;
	margin: 0;
}

.breadcrumb a {
	text-decoration: none;
	color: inherit;
}
.breadcrumb ul {
	font-size: 13px;
	padding: 0;
	margin:12px 0;
	gap: 8px;
	color: #666666;
}
h2 {
	color: #222222;
	margin: 24px 0 0;
	font-size: clamp(22px, 3vw, 36px);
}
p {
	color: #666666;
	font-size: 16px;
	padding: 0;
}
.ask p {
	margin-top: 8px;
}

/* 記事リスト */
.lists {
	display: flex;
	flex-direction: column;
	gap: 16px;
	flex-wrap: wrap;
	align-items: stretch;
}

@media (min-width: 590px) and (max-width: 899px) {
	.lists {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 16px;
	}
	.card {
		flex: 0 1 calc(50% - 8px);
		max-width: calc(50% - 8px);
		box-sizing: border-box;
	}
}
@media (min-width: 900px) {
	.lists {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 16px;
	}
	.card {
		flex: 0 1 calc(33.333% - 10.666px);
		max-width: calc(33.333% - 10.666px);
		box-sizing: border-box;
	}
}

.card {
	width: 100%;
	border-radius: 16px;
	overflow: hidden;
	box-shadow :0 0 4px rgb(237, 233, 233);
	margin-top: 4px;
	transition: all 0.2s ease;
	display: flex;
	flex-direction: column;
}
.card:hover {
	box-shadow: 0 0 8px rgba(214, 209, 209, 0.886);
	transform: translateY(-2px);
}

.card-top {
	background-image: url(../asset/bg.png);
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 16 / 9;
}

.card-top img {
	max-width: none;
	width: 100% !important;
    height: 100% !important;
    object-fit: contain;
}

.card-bottom {
	background: #ffffff;
	padding: 4px 16px;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

h3 {
	font-size: 16px;
	margin: 0;
}

.tags {
	display:flex;
	gap: 8px;
}

.tag {
	border: 1px solid #ccc;
	border-radius: 16px;
	padding: 4px 8px;
	display: inline-block;
	font-size: 12px;
}

.read-more {
	display:inline-block;
	text-decoration: none;
	color: #2163f3;
	font-weight: bold;
	padding: 16px 0;
	margin-top: auto;
}
p.category {
	font-size: 12px;
}
p.comment {
	font-size: 14px;
}

/* フッター */
.full-footer {
	width: 100%;
	background: #ffffff;
	padding: 16px 0;
	border-top: 1px solid #e5e7eb;
	margin-top: 48px;
}
.footer-inner {
	max-width: 1080px;
	margin: 0 auto;
	padding: 4px 24px;
	font-size: 14px;
	color: #666666;
}


/* 記事詳細 ２ページ目 */
.page2 {
	margin: 0 auto;
	background: #fafafa;
	max-width: 1080px;
	padding: 0 16px;
}

.card-img-background {
	background-image: url(../asset/bg.png);
	border-radius: 12px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.card-img {
	aspect-ratio: 16 / 9; 
}

.card-title {
	margin-top: 18px;
	padding: 12px;
	border: 1px solid #fff;
	border-radius: 12px;
	background: #fff;
	box-shadow :0 0 4px rgb(237, 233, 233);
}

.card-title small {
	color: #666666;
}

h4 {
	font-size: clamp(22px, 3vw, 28px);
	margin: 4px 0;
}

.tag-items {
	display: flex;
	gap: 8px;
	padding: 8px 24px;
}
.tag-item a {
	display: inline-block;
	text-decoration: none;
	color: inherit;
	border: 1px solid #d2d4d7e9;
	border-radius: 24px;
	padding: 14px;
	font-size: 14px;
}

.pagenation-link {
	display: flex;
	justify-content: space-between;
}
.pagenation-link a {
	text-decoration: none;
	color: inherit;
	font-size: 14px;
}

.card-text {
	margin-top: 16px;
	padding: 12px;
	border: 1px solid #fff;
	border-radius: 12px;
	background: #fff;
	box-shadow :0 0 4px rgb(237, 233, 233);
}

h5 {
	font-size: 20px;
	margin: 20px 0 0;
	padding: 0 12px;
}

.card-text p {
	margin: 0;
	padding: 12px;
	color: #222222;
}

h6 {
	font-size: 20px;
	margin: 22px 0 0;
	padding: 22px 8px 0;
	border-top: 1px solid  #e5e7eb;
}

.pagenation-link {
	margin: 16px;
}

td.Description {
    max-width: 200px;          /* 必要な幅を指定 */
    white-space: nowrap;       /* 改行しない */
    overflow: hidden;          /* はみ出した部分を隠す */
    text-overflow: ellipsis;   /* 省略記号 (…) を表示 */
}

/* お問い合わせフォーム */
.container {
	max-width: 1080px;
	flex: 1;
	margin: 0 auto;
}
.form {
	max-width: 100%;
	padding: 32px;
	border: 1px solid #ebe9e9;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 4px 6px #e9e7e7;
}


label  {
	display: flex;
	flex-direction: column;
	margin-bottom: 24px;
	font-size: 16px;
	margin-bottom: 5px;
	font-weight: bold;
}

.required {
	color: red;
}

input,
textarea {
	padding: 10px;
	border: 1px solid #ccc;
	border-radius: 8px;
}

input#name {
	max-width: 250px;
}
input#email {
	max-width: 450px;
}
input#subject {
	max-width: 450px;
}
textarea#message {
	max-width: 600px;
}
label {
	display: flex;
	align-items: start;
	
}
textarea {
	resize: none;
}


.button {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
}

.reset {
	background: #fff;
	border: 1px solid #ccc;
	padding: 8px 16px;
	border-radius: 8px;
	cursor: pointer;
}

.submit {
	background: #2563eb;
	color: #fff;
	border: none;
	padding: 8px 16px;
	border-radius: 8px;
	cursor: pointer;
}


@media (min-width: 600px) {
	.form-group {
    flex-direction: row;
    align-items: start;
	}

	.form-group label {
    width: 150px;
    margin-bottom: 0;
	}

	.form-group input,
	.form-group textarea {
    flex: 1;
	}
}
