@charset "utf-8";
@import url("bootstrap.custom.min.css");

/* svg icon */
#svgicon {
display: block;
width: 0;
height: 0;
overflow: hidden;
}

:root{
--text:#222;
--bg:#ffffff;
--muted:#666;
--line:#e3e3e3;
--soft:#f7f7f3;
--accent:#6b8e23;
--accent-dark:#557318;
--accent-soft:#eef5df;
--red:#b40000;
--blue:#0b58b0;
--content-max:1280px;
--shadow:0 6px 20px rgba(0,0,0,.06);
}

html{
-webkit-text-size-adjust:100%;
text-size-adjust:100%;
scroll-behavior:smooth;
}

*, *::before, *::after{
box-sizing:border-box;
}

html, body{
margin:0;
padding:0;
width:100%;
}

body{
font-family:system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif;
font-size:16px;
line-height:1.8;
color:var(--text);
background:var(--bg);
overflow-x:hidden;
}

img, video, iframe{
display:block;
max-width:100%;
height:auto;
border:0;
}

a{
color:inherit;
text-decoration:none;
-webkit-tap-highlight-color:transparent;
}

button, input, select, textarea{
font:inherit;
}

table{
border-collapse:collapse;
border-spacing:0;
width:100%;
}

td, th{
vertical-align:top;
word-break:break-word;
overflow-wrap:anywhere;
}

hr{
border:0;
border-top:1px solid var(--line);
margin:24px 0;
}

.img_center,
.txt_center {
text-align: center;
font-size: 100%;
}
.img_right,
.txt_right {
text-align: right;
font-size: 100%;
}
.img_left,
.txt_left {
text-align: left;
font-size: 100%;
}

#page-top {
margin: 0;
z-index: 9999;
}
/* ページトップへ戻る */
#page-top {
position: fixed;
bottom: 20px;
right: 100px;
}
#page-top a {
display: block;
}
#page-top a:hover {
opacity: 0.8;
}
.pageTop {
display: none;
}

page-top {
position: fixed;
right: 3%;
z-index: 9999;
margin: 0 0 3% 0;
}

#wrapper,
#contents,
.container-fluid.inner,
#main{
width:100%;
}

/* 余白バランス微調整 */
#main{
  max-width:var(--content-max);
  margin:0 auto;
  padding:0 20px 40px;
}

.section{
margin:0 0 48px;
}

.section-title{
font-size:1.6rem;
line-height:2.0;
margin:0 0 10px;
font-weight:700;
text-align:center;
}

.section-lead{
text-align:center;
color:var(--muted);
margin:0 auto 22px;
max-width:820px;
}

.section-mini{
display:inline-block;
font-size:1.2rem;
font-weight:700;
color:var(--accent-dark);
background:var(--accent-soft);
border-radius:999px;
padding:4px 12px;
margin:0 0 10px;
}

.center-block{
text-align:center;
}

.hero{
margin:18px 0 28px;
background:linear-gradient(180deg, #fdfcf7 0%, #f7f7f3 100%);
border:1px solid #ece9dd;
border-radius:18px;
overflow:hidden;
box-shadow:var(--shadow);
}

.hero-inner{
display:grid;
grid-template-columns:1.1fr .9fr;
gap:24px;
align-items:center;
padding:28px;
}

.hero-copy h1{
font-size:1.2rem;
line-height:1.0;
margin:0 0 12px;
}

.hero-copy p{
margin:0 0 16px;
color:#444;
}

.hero-points{
display:flex;
flex-wrap:wrap;
gap:8px;
margin:0 0 18px;
padding:0;
list-style:none;
}

.hero-points li a{
display:block;
background:#fff;
border:1px solid #e6e1d5;
border-radius:999px;
padding:6px 12px;
font-size:0.98rem;
}

.hero-actions{
display:flex;
flex-wrap:wrap;
gap:12px;
}

.btn{
display:inline-block;
padding:12px 18px;
border-radius:999px;
font-weight:700;
text-align:center;
transition:.2s ease;
}

.btn-primary{
background:var(--accent);
color:#fff;
}

.btn-primary:hover{
background:var(--accent-dark);
}

.btn-secondary{
background:#fff;
color:var(--text);
border:1px solid #d9d4c6;
}

.btn-secondary:hover{
background:#f5f5f0;
}

.btn-outline{
background:#fff;
color:var(--blue);
border:1px solid #cddaf0;
}

.btn-outline:hover{
background:#f5f9ff;
}

.hero-visual img{
width:100%;
aspect-ratio:800 / 160;
object-fit:cover;
border-radius:14px;
background:#f7f7f7;
}

.hero-subnote{
margin-top:14px;
font-size:1.5rem;
color:var(--muted);
}

.cta-band{
background:linear-gradient(180deg, #fffef7 0%, #f7f7f1 100%);
border:1px solid #ebe5d7;
border-radius:18px;
padding:22px;
box-shadow:var(--shadow);
}

.cta-band h2{
margin:0 0 8px;
text-align:center;
font-size:1.35rem;
}

.cta-band p{
margin:0 0 16px;
text-align:center;
color:var(--muted);
}

.cta-band .hero-actions{
justify-content:center;
}

/* =========================
カテゴリカード
========================= */
.category-grid{
display:grid;
grid-template-columns:repeat(3, minmax(0, 1fr));
gap:18px;
}

.category-card{
background:#fff;
border:1px solid var(--line);
border-radius:18px;
overflow:hidden;
box-shadow:var(--shadow);
text-align:center;
}

.category-card > a{
display:block;
height:100%;
}

.category-media-banner{
display:block;
width:120px;
aspect-ratio:1 / 1;
margin:14px auto 0;
object-fit:cover;
object-position:center;
border-radius:12px;
background:#f5f5f5;
}

.category-body{
padding:18px;
}

.category-body h3{
margin:0 0 8px;
font-size:1.15rem;
line-height:1.5;
}

.category-body p{
margin:0 0 12px;
color:var(--muted);
line-height:1.7;
}

.category-more{
color:var(--blue);
font-weight:700;
}

.block-cta{
text-align:center;
margin-top:22px;
}

.popular-grid{
display:grid;
grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
gap:16px;
}

.popular-card{
background:#fff;
border:1px solid var(--line);
border-radius:16px;
padding:16px;
box-shadow:var(--shadow);
}

.popular-card h3{
margin:0 0 10px;
font-size:1rem;
}

.popular-card ul{
margin:0;
padding-left:1.2em;
}

.popular-card li{
margin:0 0 7px;
}

.popular-card li a{
color:var(--blue);
font-weight:700;
}

.notice-wrap{
display:grid;
grid-template-columns:1.1fr .9fr;
gap:18px;
}

.notice-card,
.contact-card{
background:#fff;
border:1px solid var(--line);
border-radius:18px;
padding:20px;
box-shadow:var(--shadow);
}

.notice-card h2,
.contact-card h2{
margin:0 0 12px;
font-size:1.2rem;
}

.notice-red{
color:var(--red);
font-weight:700;
}

.notice-blue{
color:var(--blue);
}

.line-banner{
border:1px solid #d8ead9;
background:#f3fff5;
border-radius:18px;
padding:24px;
text-align:center;
box-shadow:var(--shadow);
}

.line-banner h2{
margin:0 0 10px;
font-size:1.35rem;
}

.line-banner p{
margin:0 0 14px;
color:var(--muted);
}

.line-banner img{
display:inline-block;
width:min(220px, 70%);
height:auto;
}

.footer-links{
display:flex;
flex-wrap:wrap;
gap:12px;
justify-content:center;
margin:0 0 20px;
}

.footer-links a{
display:inline-block;
padding:10px 14px;
border:1px solid var(--line);
border-radius:999px;
background:#fff;
}

.page-back{
background:var(--soft);
text-align:center;
padding:12px;
margin:28px 0;
border-radius:12px;
}

.copyright{
text-align:center;
font-size:.92rem;
color:var(--muted);
}

.search-box{
width:100%;
margin:10px 0;
}

.search-inner{
display:flex;
border:1px solid #ddd;
border-radius:30px;
overflow:hidden;
background:#fff;
}

.search-inner input{
flex:1;
border:none;
padding:12px 14px;
font-size:16px;
outline:none;
}

.search-inner input::placeholder{
color:#aaa;
}

.search-inner button{
border:none;
background:#4CAF50;
color:#fff;
padding:0 16px;
font-size:18px;
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
}

.search-inner button:hover{
background:#43a047;
}

.archive_box{
margin:0 0 12px;
padding:12px 14px;
border:1px solid var(--line);
border-radius:12px;
background:#fff;
box-shadow:var(--shadow);
}

.archive_box a{
display:block;
line-height:1.7;
}

.archive_box .news-title{
display:block;
color:#cc0000;
font-size:1.1rem;
font-weight:700;
margin:0 0 4px;
}

@media screen and (max-width:764px){
.sm500{display:block !important;}
.sm500xxx{display:none !important;}
}

@media screen and (min-width:765px){
.sm500{display:none !important;}
.sm500xxx{display:block !important;}
}

@media (max-width:900px){
.hero-inner,
.notice-wrap{
grid-template-columns:1fr;
}
}

@media (max-width:600px){
body{
font-size:15px;
}

#main{
padding:0 12px 32px;
}

.hero-inner{
padding:18px;
gap:16px;
}

.hero-copy h1{
font-size:1.0rem;
}

.section-title{
font-size:1.28rem;
}

.category-grid{
grid-template-columns:repeat(2, minmax(0, 1fr));
gap:12px;
}

.popular-grid{
grid-template-columns:1fr;
}

.category-media-banner{
width:100px;
aspect-ratio:1 / 1;
margin:12px auto 0;
}

.category-body{
padding:10px;
}

.category-body h3{
margin:0 0 6px;
font-size:0.95rem;
line-height:1.4;
}

.category-body p{
margin:0 0 8px;
font-size:0.8rem;
line-height:1.5;
}

.category-more{
font-size:0.8rem;
}

.hero-actions .btn{
width:100%;
}

.search-inner input{
padding:14px;
font-size:16px;
}

.archive_box .news-title{
font-size:1rem;
}
}
.box {
font-family:"メイリオ";
font-size: 100%;
line-height: 150%;
text-align: left;
border-width: 2px;
border-style: solid;
border: 3px solid #ffcc99;
border-radius: 5px;
margin-top: 10px;
padding-top: 10px;
padding-left: 10px;
padding-right: 10px;
padding-bottom: 10px;
background-color: #ffffff;
}
.box2 {
font-family:"メイリオ";
font-size: 100%;
line-height: 150%;
text-align: left;
border-width: 5px;
border-style: solid;
border: 3px solid #ff9428;
border-radius: 15px;
margin-top: 10px;
padding-top: 10px;
padding-left: 10px;
padding-right: 10px;
padding-bottom: 10px;
background-color: #f8f8f8;
}
.archive_box {
font-family:"メイリオ";
font-size: 100%;
line-height: 150%;
text-align: left;
border-width: 5px;
border-style: solid;
border: 5px solid #ffcc99;
border-radius: 15px;
margin-top: 10px;
padding-top: 10px;
padding-left: 10px;
padding-right: 10px;
padding-bottom: 10px;
margin-bottom: 10px;
background-color: #ffffff;
}
.wpearch {
width:350px;
text-align: left;
border-width: 1px;
border-style: solid;
border: 1px solid #ff9428;
border-radius: 1px;
margin-top: 3px;
padding-top: 3px;
padding-left: 3px;
padding-right: 3px;
padding-bottom: 3px;
background-color: #ffffff;
}