/* ==========================================================================
   トップページのブロックの中の、文字まわりのデザイン
   ・大きさは rem（トップの格子は rem で縮むため、スマホでも、ブロックと同じ割合で縮む）。1rem = 10px（PC）
   ・ブロックの大きさ・余白は変えない（格子の計算に使っているため）。影・角・文字・中身だけを整える
   ========================================================================== */

/* ── ブロックの箱：やわらかい影と角 ───────────────────────── */
.xidear-front-grid .sizemenu,
.xidear-front-grid [class*="size"][class*="x"]:not(.sizemenu),
.xidear-front-grid .swipeshow {
	border-radius: 1.4rem;
	box-shadow: 0 1px 2px rgba(16, 28, 38, .07), 0 6px 20px rgba(16, 28, 38, .10);
	font-family: var(--xd-font);
	color: var(--xd-text);
}
.xidear-front-grid .sizemenu { overflow: hidden; transition: transform .18s ease, box-shadow .18s ease; }
.xidear-front-grid .sizemenu:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(16, 28, 38, .1), 0 12px 26px rgba(16, 28, 38, .2); }
.xidear-front-grid .sizemenu img { display: block; }
.xidear-front-grid [class*="size"][class*="x"]:not(.sizemenu) { font-size: 1.2rem; line-height: 1.7; }
.xidear-front-grid [class*="size"][class*="x"] a { text-decoration: none; }

/* ── ブロックの見出し（旧：文字入りの小さな画像 → 文字で表示） ──── */
.xidear-front-grid a.toptitle:not(:empty) {
	display: flex; align-items: center; gap: .6rem;
	width: auto; height: auto;
	margin: .2rem .2rem 1rem;
	padding: .3rem .4rem .3rem 1rem;
	text-indent: 0; white-space: normal; overflow: visible;
	background: none !important; border-radius: 0; box-shadow: none;
	border-left: .45rem solid var(--tt, var(--xd-green));
	font-size: 1.5rem; font-weight: 900; line-height: 1.3; letter-spacing: .01em;
	color: var(--xd-ink);
}
.xidear-front-grid a.toptitle:not(:empty)::after { content: "›"; margin-left: auto; font-size: 2rem; line-height: 1; font-weight: 400; color: var(--tt, var(--xd-green)); transition: transform .15s ease; }
.xidear-front-grid a.toptitle:not(:empty):hover::after { transform: translateX(.3rem); }
.blk_fukuokaarea { --tt: #12864a; }
.blk_sahaarea { --tt: #0b7285; }
.blk_koumokubetu { --tt: #f08c00; }
.blk_sintyakuzyo { --tt: #3b5bdb; }
.blk_osusumezyouhou { --tt: #e03131; }
.blk_tempo, .blk_mokuteki { --tt: #1c7ed6; }
.blk_missionkara, .blk_xidearmission { --tt: #2b9348; }
.blk_accessrank, .blk_tyuumokukeihin { --tt: #d6336c; }
.blk_tyuumokuevents, .blk_reporttyousa { --tt: #f08c00; }
.blk_osusumespot, .blk_kuchikomikeiziban { --tt: #9c36b5; }

/* 見出しの下の中身は、はみ出したら、細いスクロールで */
.xidear-front-grid .toptitle + div { height: auto; max-height: calc(100% - 4rem); overflow-y: auto; scrollbar-width: thin; scrollbar-color: #c5ccd3 transparent; }
.xidear-front-grid .noscroll .toptitle + div { overflow: hidden; }

/* ── 新着情報（新着記事ブロック） ─────────────────────────── */
.xidear-front-grid .xd-news { display: flex; flex-direction: column; gap: .2rem; padding: 0 .2rem 0 0; }
.xidear-front-grid .xd-news__row { display: flex; align-items: center; gap: 1rem; padding: .7rem .6rem; border-radius: 1rem; color: inherit; transition: background .15s ease, transform .15s ease; }
.xidear-front-grid .xd-news__row:hover { background: #f1f4ff; transform: translateX(.2rem); }
.xidear-front-grid .xd-news__thumb { position: relative; flex: 0 0 auto; width: 4.6rem; height: 4.6rem; border-radius: 1rem; overflow: hidden; background: linear-gradient(135deg, #3b5bdb, #7048e8); box-shadow: 0 2px 6px rgba(59, 91, 219, .3); }
.xidear-front-grid .xd-news__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; margin: 0; }
.xidear-front-grid .xd-news__ini { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 2rem; font-weight: 900; color: #fff; }
.xidear-front-grid .xd-news__body { min-width: 0; display: flex; flex-direction: column; gap: .2rem; }
.xidear-front-grid .xd-news__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; font-size: 1.05rem; line-height: 1.3; font-weight: 700; color: var(--xd-sub); }
.xidear-front-grid .xd-news__meta time { letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.xidear-front-grid .xd-news__meta em { font-style: normal; color: #3b5bdb; }
.xidear-front-grid .xd-news__title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 1.25rem; line-height: 1.5; font-weight: 800; color: var(--xd-ink); }
.xidear-front-grid .xd-news__row:hover .xd-news__title { color: #3b5bdb; }

/* ── おすすめ情報（[article type="custom"]） ─────────────── */
.xidear-front-grid .xd-art { display: flex; align-items: center; gap: 1rem; padding: .7rem .6rem; border-radius: 1rem; color: inherit; transition: background .15s ease, transform .15s ease; }
.xidear-front-grid .xd-art:hover { background: #fff1f1; transform: translateX(.2rem); }
.xidear-front-grid .xd-art__img { position: relative; flex: 0 0 auto; width: 4rem; height: 4rem; border-radius: 1rem; overflow: hidden; background: linear-gradient(135deg, #e03131, #f08c00); box-shadow: 0 2px 6px rgba(224, 49, 49, .3); }
.xidear-front-grid .xd-art__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; margin: 0; }
.xidear-front-grid .xd-art__ini { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 1.8rem; font-weight: 900; color: #fff; }
.xidear-front-grid .xd-art__t { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 1.25rem; line-height: 1.5; font-weight: 800; color: var(--xd-ink); }
.xidear-front-grid .xd-art:hover .xd-art__t { color: #e03131; }

/* ── 小さな紹介ブロック（画像／題名／説明） ───────────────── */
.xidear-front-grid .size1x1 > a:first-child > img {
	display: block; width: 100%; height: 9.6rem; margin: 0 0 .8rem;
	object-fit: cover; border-radius: 1rem;
}
.xidear-front-grid .size1x1 > span, .xidear-front-grid .size1x1 > span span { font-size: 1.2rem !important; }
.xidear-front-grid .size1x1 > span > span > a,
.xidear-front-grid .size1x1 > a:not(:has(img)) {
	display: block; margin: .2rem .2rem .4rem;
	font-size: 1.4rem; font-weight: 900; line-height: 1.4; letter-spacing: .01em; color: var(--xd-ink);
}
.xidear-front-grid .size1x1 > span > span > a::after,
.xidear-front-grid .size1x1 > a:not(:has(img))::after { content: " →"; color: var(--xd-green); font-weight: 700; }
.xidear-front-grid .size1x1 > span > span > a:hover,
.xidear-front-grid .size1x1 > a:not(:has(img)):hover { color: var(--xd-green); }
.xidear-front-grid .size1x1 p {
	margin: 0 .2rem; font-size: 1.15rem; line-height: 1.7; color: var(--xd-sub);
	display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden;
}
.xidear-front-grid .size1x1 > a:not(:has(img)) + span { display: block; margin-top: .4rem; }
/* 画像に付いた古い、影・外枠は不要 */
.xidear-front-grid .size1x1 img.alignnone { margin: 0 0 .8rem; }

/* ── エリアなどの検索フォーム（チェックボックス → 選べるタグ） ─ */
form[id^="feas-searchform"] { margin: 0; padding: 0 .2rem; }
form[id^="feas-searchform"] label.feas_clevel_01 { position: relative; display: inline-block; float: none; margin: 0 .5rem .6rem 0; padding: 0; cursor: pointer; font-size: 1.2rem; }
form[id^="feas-searchform"] label.feas_clevel_01 input[type="checkbox"] { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
form[id^="feas-searchform"] label.feas_clevel_01 span {
	display: inline-block; padding: .55rem 1rem; border-radius: 99px;
	background: var(--xd-soft); border: 1px solid var(--xd-line);
	font-size: 1.2rem; line-height: 1.2; font-weight: 700; color: var(--xd-ink);
	transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
form[id^="feas-searchform"] label.feas_clevel_01:hover span { border-color: var(--xd-green); transform: translateY(-1px); }
form[id^="feas-searchform"] label.feas_clevel_01 input:checked + span { background: var(--xd-green); border-color: var(--xd-green); color: #fff; box-shadow: 0 3px 8px rgba(18, 134, 74, .35); }
form[id^="feas-searchform"] label.feas_clevel_01 input:focus-visible + span { outline: 2px solid var(--xd-blue); outline-offset: 2px; }
form[id^="feas-searchform"] .feas-keyword { display: block; width: 100%; box-sizing: border-box; margin: 0 0 .8rem; padding: .8rem 1.2rem; border: 1px solid var(--xd-line); border-radius: 99px; font-size: 1.3rem; background: #fff; }
form[id^="feas-searchform"] .feas-submit-button {
	display: block; clear: both; float: none; width: auto; margin: .6rem 0 .4rem; padding: .9rem 3rem;
	border: 0; border-radius: 99px; cursor: pointer;
	font-family: var(--xd-font); font-size: 1.3rem; font-weight: 900; letter-spacing: .2em; color: #fff; text-align: center;
	background: linear-gradient(135deg, var(--xd-green-2), #0e8a49);
	box-shadow: 0 5px 14px rgba(18, 134, 74, .4);
	transition: transform .15s ease, box-shadow .15s ease;
}
form[id^="feas-searchform"] .feas-submit-button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(18, 134, 74, .5); }

/* ブロックの中の検索フォーム：項目の部分だけスクロールし、「検索」ボタンは、いつも下に見える */
.xidear-front-grid [class*="size"][class*="x"] > form[id^="feas-searchform"] { display: flex; flex-direction: column; height: calc(100% - 4.2rem); min-height: 0; overflow-y: auto; scrollbar-width: thin; }
.xidear-front-grid form[id^="feas-searchform"] .feas-items { flex: 1 1 auto; min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #c5ccd3 transparent; padding: .2rem .4rem 0 0; }
.xidear-front-grid form[id^="feas-searchform"] .feas-submit-button { flex: 0 0 auto; align-self: flex-start; margin: .6rem 0 .3rem; }
.xidear-front-grid form[id^="feas-searchform"] label.feas_clevel_01 { margin: 0 .4rem .5rem 0; }
.xidear-front-grid form[id^="feas-searchform"] label.feas_clevel_01 span { padding: .45rem .9rem; font-size: 1.15rem; }

/* ヘッダーのタブの中の検索フォームは、少し小さめ */
#header-title-nav form[id^="feas-searchform"] label.feas_clevel_01 { margin: 0 .3rem .4rem 0; }
#header-title-nav form[id^="feas-searchform"] label.feas_clevel_01 span { padding: .4rem .8rem; font-size: 1.1rem; }
#header-title-nav form[id^="feas-searchform"] .feas-submit-button { padding: .6rem 2rem; font-size: 1.2rem; }

/* ── 「項目別で探す」のボタン画像（角・影をやわらかく） ───────── */
ul#page_tile li a {
	background-image: url('../images/top/koumokubetu.jpg');
	border-radius: 6px;
	box-shadow: 0 1px 2px rgba(16, 28, 38, .15), 0 3px 8px rgba(16, 28, 38, .12);
	transition: transform .15s ease, box-shadow .15s ease;
	opacity: 1;
}
ul#page_tile li a:hover { opacity: 1; transform: translateY(-2px); box-shadow: 0 2px 4px rgba(16, 28, 38, .2), 0 8px 16px rgba(16, 28, 38, .22); }

/* ── 「ブロックを整頓する」ボタン ───────────────────────── */
.xidear-front-grid .xidear-fb-reset { border-radius: 1.4rem; font-family: var(--xd-font); font-weight: 800; }

@media (prefers-reduced-motion: reduce) {
	.xd-news__row, .xd-art, .xidear-front-grid .sizemenu, form[id^="feas-searchform"] label span, form[id^="feas-searchform"] .feas-submit-button { transition: none !important; }
}
