*{
margin:0;
padding:0;
box-sizing:border-box;
}

html, body{
height:100%;
}

body{
font-family:"Noto Sans JP", sans-serif;
line-height:1.6;
color:#333;
background-color:#fff;
display:flex;
flex-direction:column;
min-height:100vh;
}

#page{
display:flex;
flex-direction:column;
flex:1 1 auto;
min-height:0;
}

.container{
width:min(85vw, 1620px);
max-width:100%;
margin:0 auto;
padding:0 20px;
}

.site-header{
background:#fff;
color:#333;
padding:2rem 0;
}

body.reiketsu-combo-home-hub .site-header{
padding-top:0;
padding-bottom:0;
}

.site-header.site-header--bar{
border-bottom:10px solid #c8c8c8;
margin:0 0 2rem 0;
}

.site-title{
font-size:2.5rem;
font-weight:700;
}

.site-title a{
text-decoration:none;
color:#333;
}

.site-description{
font-size:1.1rem;
color:#666;
}

.main-navigation{
background:#fff;
padding:1rem 0;
border-bottom:1px solid #eee;
}

.main-navigation ul{
list-style:none;
display:flex;
gap:2rem;
justify-content:center;
}

.main-navigation a{
text-decoration:none;
color:#333;
font-weight:500;
transition:color 0.3s ease;
}

.main-navigation a:hover{
color:#667eea;
}

#content{
flex:1;
}

.reiketsu-breadcrumb{
margin:1rem 0 2rem 0;
}

.reiketsu-breadcrumb__nav{
}

.reiketsu-breadcrumb__list{
list-style:none;
display:flex;
flex-wrap:nowrap;
align-items:center;
gap:0.2rem 0.55rem;
margin:0;
padding:0;
overflow:hidden;
}

.reiketsu-breadcrumb__item{
display:inline-flex;
align-items:center;
color:#787878;
font-size:max(0.72rem, min(0.72vw, 13px));
line-height:1.35;
flex:0 0 auto;
}

.reiketsu-breadcrumb__item + .reiketsu-breadcrumb__item::before{
content:"";
display:inline-block;
width:0.42rem;
height:0.42rem;
margin-right:0.55rem;
border-top:1px solid #787878;
border-right:1px solid #787878;
transform:rotate(45deg);
opacity:0.9;
}

.reiketsu-breadcrumb__link{
color:#0f0f0f;
text-decoration:none;
transition:color 0.2s ease;
white-space:nowrap;
}

.reiketsu-breadcrumb__link:hover,
.reiketsu-breadcrumb__link:focus-visible{
color:#5f00ff;
}

.reiketsu-breadcrumb__current{
color:#c8c8c8;
font-weight:500;
white-space:nowrap;
}

.reiketsu-breadcrumb__item:last-child{
flex:1 1 auto;
min-width:0;
}

.reiketsu-breadcrumb__item:last-child .reiketsu-breadcrumb__current,
.reiketsu-breadcrumb__item:last-child .reiketsu-breadcrumb__link{
display:block;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}

.reiketsu-breadcrumb .container{
width:min(85vw, 1620px);
max-width:100%;
margin:0 auto;
padding:0 20px;
}

.main-content .grid{
display:flex;
flex-wrap:wrap;
gap:2rem;
align-items:flex-start;
}

.main-content .grid .content-area{
flex:1 1 22rem;
min-width:0;
}

.main-content .grid .sidebar{
flex:0 1 16rem;
}

.content-area{
padding-top:0;
padding-bottom:1rem;
}

.post{
margin-bottom:3rem;
padding-bottom:2rem;
border-bottom:1px solid #eee;
}

.post:last-child{
border-bottom:none;
}

.post-title{
font-size:2rem;
color:#333;
margin-bottom:1rem;
}

.post-title a{
text-decoration:none;
color:inherit;
transition:color 0.3s ease;
}

.post-title a:hover{
color:#667eea;
}

.post-meta{
color:#666;
font-size:0.9rem;
margin-bottom:1rem;
}

.post-content{
line-height:1.8;
}

.post-content p{
margin-bottom:1rem;
}

.site-footer{
flex-shrink:0;
width:100%;
background:#1f1f1f;
color:#f0f0f0;
text-align:left;
padding:clamp(1.25rem, 3vw, 1.85rem) 0;
margin-top:auto;
border-top:1px solid rgba(255, 255, 255, 0.06);
}
.site-footer .container{
padding-left:max(20px, env(safe-area-inset-left, 0));
padding-right:max(20px, env(safe-area-inset-right, 0));
padding-bottom:env(safe-area-inset-bottom, 0);
}
.site-footer__grid{
display:flex;
flex-direction:row;
flex-wrap:wrap;
justify-content:space-between;
align-items:flex-start;
gap:clamp(1.25rem, 3vw, 2.75rem);
box-sizing:border-box;
}
.site-footer__primary{
flex:1 1 min(0, 22rem);
min-width:min(100%, 16rem);
max-width:100%;
display:flex;
flex-direction:column;
align-items:flex-start;
gap:clamp(0.45rem, 1.2vw, 0.65rem);
box-sizing:border-box;
}
.site-footer__logo{
display:block;
line-height:0;
margin:0;
}
.site-footer__logo-link{
display:inline-block;
line-height:0;
text-decoration:none;
transition:opacity 0.15s ease;
}
.site-footer__logo-link:hover,
.site-footer__logo-link:focus-visible{
opacity:0.92;
}
.site-footer__logo-link:focus{
outline:none;
}
.site-footer__logo-link:focus-visible{
outline:2px solid rgba(95, 0, 255, 0.65);
outline-offset:3px;
}
.site-footer__logo-img{
display:block;
width:clamp(2.75rem, 8vw, 4.5rem);
height:auto;
max-width:100%;
box-sizing:border-box;
filter:invert(1) brightness(1.08);
}
.site-footer__social{
margin:0;
width:100%;
}
.site-footer__social-list{
list-style:none;
margin:0;
padding:0;
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0;
}
.site-footer__social-list li{
margin:0;
padding:0;
}
.site-footer__social-link{
display:inline-flex;
align-items:center;
justify-content:center;
width:1.75rem;
height:1.75rem;
color:inherit;
text-decoration:none;
opacity:0.92;
font-size:0.95rem;
line-height:1;
transition:opacity 0.15s ease, color 0.15s ease;
}
.site-footer__social-link:hover,
.site-footer__social-link:focus-visible{
color:#fff;
opacity:1;
}
.site-footer__social-link:focus-visible{
outline:2px solid rgba(95, 0, 255, 0.65);
outline-offset:3px;
}
.site-footer__address{
margin:0;
padding:0;
font-style:normal;
font-size:max(0.7rem, min(0.73vw, 13px));
letter-spacing:0.03em;
line-height:1.45;
opacity:0.92;
}
.site-footer__nav{
margin:0;
width:100%;
max-width:100%;
}
.site-footer__menu-list{
list-style:none;
margin:0;
padding:0;
display:flex;
flex-wrap:wrap;
gap:0.4rem clamp(0.65rem, 2vw, 1.15rem);
align-items:center;
justify-content:flex-end;
box-sizing:border-box;
}
.site-footer__menu-list > li{
margin:0;
padding:0;
}
.site-footer__menu-list a{
font-size:max(0.7rem, min(0.73vw, 13px));
line-height:1.4;
}
.site-footer__menu-list .sub-menu{
list-style:none;
margin:0.4rem 0 0 0.75rem;
padding:0;
display:flex;
flex-direction:column;
gap:0.25rem;
}
.site-footer__menu-list .sub-menu a{
font-size:max(0.65rem, min(0.68vw, 12px));
}
.site-footer__link,
.site-footer__menu-list a{
color:inherit;
text-decoration:underline;
text-underline-offset:0.15em;
text-decoration-color:rgba(240, 240, 240, 0.55);
transition:opacity 0.15s ease, text-decoration-color 0.15s ease;
}
.site-footer__link:hover,
.site-footer__link:focus-visible,
.site-footer__menu-list a:hover,
.site-footer__menu-list a:focus-visible{
color:#fff;
opacity:1;
text-decoration-color:rgba(240, 240, 240, 0.95);
}
.site-footer__menu-list > li.current-menu-item > a,
.site-footer__menu-list > li.current-menu-ancestor > a,
.site-footer__menu-list .current-menu-item > a,
.site-footer__menu-list a[aria-current="page"]{
text-decoration:none;
color:rgba(240, 240, 240, 0.42);
opacity:1;
}
.site-footer__menu-list > li.current-menu-item > a:hover,
.site-footer__menu-list > li.current-menu-item > a:focus-visible,
.site-footer__menu-list > li.current-menu-ancestor > a:hover,
.site-footer__menu-list > li.current-menu-ancestor > a:focus-visible,
.site-footer__menu-list .current-menu-item > a:hover,
.site-footer__menu-list .current-menu-item > a:focus-visible,
.site-footer__menu-list a[aria-current="page"]:hover,
.site-footer__menu-list a[aria-current="page"]:focus-visible{
color:rgba(240, 240, 240, 0.42);
text-decoration:none;
opacity:1;
}
.site-footer__link:focus-visible,
.site-footer__menu-list a:focus-visible{
outline:2px solid rgba(95, 0, 255, 0.65);
outline-offset:3px;
}
.site-footer__secondary{
flex:0 1 auto;
min-width:min(100%, 18rem);
max-width:min(100%, 26rem);
margin-left:auto;
display:flex;
flex-direction:column;
align-items:flex-end;
text-align:right;
box-sizing:border-box;
}
.site-footer__aside-text{
margin:0;
font-size:max(0.7rem, min(0.73vw, 13px));
line-height:1.55;
letter-spacing:0.02em;
color:rgba(240, 240, 240, 0.88);
opacity:0.95;
}
.site-footer__aside-text p{
margin:0;
}
@media screen and (max-width:720px){
.site-footer__grid{
flex-direction:column;
align-items:stretch;
}
.site-footer__primary{
flex:1 1 auto;
min-width:0;
}
.site-footer__secondary{
margin-left:0;
max-width:none;
align-items:flex-start;
text-align:left;
}
.site-footer__menu-list{
justify-content:flex-start;
}
}

.error-404{
text-align:center;
padding:3rem 0;
}

.error-title{
font-size:8rem;
font-weight:900;
color:#667eea;
margin-bottom:1rem;
line-height:1;
}

.error-subtitle{
font-size:2rem;
color:#333;
margin-bottom:1rem;
}

.error-description{
font-size:1.1rem;
color:#666;
margin-bottom:2rem;
line-height:1.6;
}

.error-actions{
margin-bottom:3rem;
}

.btn-home{
display:inline-block;
background:#667eea;
color:white;
padding:1rem 2rem;
text-decoration:none;
border-radius:4px;
font-weight:600;
transition:all 0.3s ease;
margin-bottom:2rem;
}

.btn-home:hover{
background:#5568d3;
color:white;
}

.reiketsu-link-btn{
display:inline-flex;
align-items:center;
gap:0.5rem;
padding:0.5rem 0.85rem;
border:3px solid #0f0f0f;
color:#0f0f0f;
text-decoration:none;
background:transparent;
font-size:max(0.8125rem, min(0.83333333vw, 16px));
line-height:1.2;
transition:border-color 0.2s ease, color 0.2s ease;
}

.reiketsu-link-btn:hover,
.reiketsu-link-btn:focus-visible{
border-color:#5f00ff;
color:#5f00ff;
text-decoration:none;
outline:none;
}

.search-form{
max-width:400px;
margin:0 auto;
}

.search-form h3{
font-size:1.2rem;
color:#333;
margin-bottom:1rem;
}

.search-form input[type="search"]{
width:100%;
padding:0.8rem 1rem;
border:2px solid #eee;
border-radius:4px;
font-size:1rem;
outline:none;
transition:border-color 0.3s ease;
}

.search-form input[type="search"]:focus{
border-color:#667eea;
}

.recent-posts{
text-align:left;
max-width:600px;
margin:0 auto;
}

.recent-posts h3{
font-size:1.3rem;
color:#333;
margin-bottom:1rem;
text-align:center;
}

.recent-posts ul{
list-style:none;
padding:0;
}

.recent-posts li{
padding:0.8rem 0;
border-bottom:1px solid #eee;
}

.recent-posts li:last-child{
border-bottom:none;
}

.recent-posts a{
color:#333;
text-decoration:none;
transition:color 0.3s ease;
}

.recent-posts a:hover{
color:#667eea;
}

@media (max-width: 768px){
.main-navigation ul{
flex-direction:column;
gap:1rem;
}

.site-title{
font-size:2rem;
}

.content-area{
padding-top:0;
padding-bottom:1rem;
}

.error-title{
font-size:6rem;
}

.error-subtitle{
font-size:1.5rem;
}

.error-description{
font-size:1rem;
}
}

.content-area .page-content .primeform-checkbox-wrapper p.primeform-checkbox-description,
.content-area .post-content .primeform-checkbox-wrapper p.primeform-checkbox-description,
body.reiketsu-combo-sidebar-layout .main-content.reiketsu-combo-home .page-content p.primeform-checkbox-description,
body.reiketsu-combo-sidebar-layout .main-content.reiketsu-combo-home .post-content p.primeform-checkbox-description{
max-width:none;
margin:0;
padding-bottom:0;
}

.page-content .content-area .primeform-notice ul{
max-width:none;
margin:0;
}

.page-content .content-area .primeform-form{
max-width:900px;
margin:0 auto 1rem auto;
}

.primeform-form{
margin:0 auto;
padding:0;
background:#fff;
}

.primeform-field{
margin-bottom:1.5rem;
display:flex;
align-items:center;
gap:1rem;
}

.primeform-field label{
display:block;
font-weight:600;
margin-bottom:0;
color:#333;
font-size:0.95rem;
flex-shrink:0;
width:150px;
text-align:left;
}

.primeform-required-mark{
color:#dc3545;
margin-left:0.25rem;
}

.primeform-input,
.primeform-textarea,
.primeform-select{
width:100%;
padding:0.75rem 0;
font-size:1rem;
line-height:1.5;
color:#333;
background-color:transparent;
border:none;
border-bottom:1px solid #686868;
border-radius:0;
transition:border-bottom-color 0.15s ease-in-out;
font-family:inherit;
}

.primeform-input::placeholder,
.primeform-textarea::placeholder{
color:#a8a8a8;
opacity:1;
}

.primeform-input::-webkit-input-placeholder,
.primeform-textarea::-webkit-input-placeholder{
color:#a8a8a8;
opacity:1;
}

.primeform-input::-moz-placeholder,
.primeform-textarea::-moz-placeholder{
color:#a8a8a8;
opacity:1;
}

.primeform-input:-ms-input-placeholder,
.primeform-textarea:-ms-input-placeholder{
color:#a8a8a8;
opacity:1;
}

.primeform-input:hover,
.primeform-textarea:hover,
.primeform-select:hover{
border-bottom-color:#5f00ff;
}

.primeform-input:focus,
.primeform-textarea:focus,
.primeform-select:focus{
outline:0;
border-bottom-color:#5f00ff;
box-shadow:none;
}

.primeform-input.error,
.primeform-textarea.error,
.primeform-select.error{
border-bottom-color:#dc3545;
}

.primeform-input.error:focus,
.primeform-textarea.error:focus,
.primeform-select.error:focus{
border-bottom-color:#dc3545;
box-shadow:none;
}

.primeform-textarea{
min-height:120px;
resize:none;
}

.primeform-field-radio,
.primeform-field-checkbox{
margin-bottom:1rem;
display:flex;
align-items:flex-start;
gap:1rem;
}

.primeform-field-checkbox > .primeform-label{
flex-shrink:0;
width:150px;
text-align:left;
margin-bottom:0;
padding-top:0;
align-self:flex-start;
}

.primeform-field-checkbox .primeform-checkbox-wrapper{
flex:1;
min-width:0;
width:100%;
display:flex;
flex-direction:column;
justify-content:center;
}

.primeform-checkbox-description{
margin:0;
padding-bottom:0;
font-size:0.9rem;
color:#666;
line-height:1.5;
}

.primeform-checkbox-group{
display:flex;
flex-direction:column;
gap:0;
justify-content:center;
}

.primeform-radio,
.primeform-checkbox{
display:flex;
align-items:center;
margin-bottom:0;
cursor:pointer;
}

.primeform-radio input[type="radio"]{
width:auto;
margin-right:0.5rem;
cursor:pointer;
flex-shrink:0;
}

.primeform-checkbox input[type="checkbox"]{
width:15px;
height:15px;
margin-right:0.5rem;
cursor:pointer;
flex-shrink:0;
accent-color:#0f0f0f;
}

.primeform-checkbox-label input[type="checkbox"]{
width:15px;
height:15px;
margin-right:0.5rem;
cursor:pointer;
flex-shrink:0;
display:inline-block;
accent-color:#0f0f0f;
}

.primeform-radio label,
.primeform-checkbox label{
margin-bottom:0;
font-weight:400;
cursor:pointer;
}

.primeform-checkbox-label{
display:flex;
align-items:center;
cursor:pointer;
margin:0;
padding:0;
font-weight:400;
white-space:nowrap;
flex-wrap:nowrap;
width:100%;
max-width:100%;
margin-bottom:0;
}

.primeform-checkbox-label span{
display:inline-block;
white-space:normal;
flex-shrink:1;
min-width:0;
}

.primeform-field-checkbox .primeform-checkbox-label{
width:auto;
text-align:left;
}

.primeform-field-file{
position:relative;
}

.primeform-file{
display:block;
width:100%;
padding:0.75rem 1rem;
font-size:1rem;
line-height:1.5;
color:#333;
background-color:#fff;
border:1px solid #ddd;
border-radius:4px;
cursor:pointer;
transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.primeform-file:hover{
border-color:#5f00ff;
}

.primeform-file:focus{
outline:0;
border-color:#5f00ff;
box-shadow:0 0 0 0.2rem rgba(95, 0, 255, 0.25);
}

.primeform-submit{
display:inline-flex;
align-items:center;
justify-content:center;
gap:0.4em;
margin:0 0 0 auto;
padding:0.45rem 0.85rem;
border:0;
border-radius:0;
background:#dbdbdb;
color:#0f0f0f;
cursor:pointer;
font:inherit;
font-size:max(0.8125rem, min(0.83333333vw, 16px));
font-weight:400;
line-height:1;
text-align:center;
text-decoration:none;
transition:background-color 0.2s ease;
-webkit-tap-highlight-color:transparent;
}

.primeform-submit::before{
display:inline-flex;
align-items:center;
justify-content:center;
flex-shrink:0;
width:1em;
height:1em;
font-family:"Font Awesome 6 Free";
font-weight:900;
content:"\f0e0";
font-size:0.85em;
line-height:1;
-webkit-font-smoothing:antialiased;
}

.primeform-submit:hover{
background:rgba(219, 219, 219, 0.5);
color:#0f0f0f;
}

.primeform-submit:focus-visible{
outline:2px solid #0f0f0f;
outline-offset:2px;
background:rgba(219, 219, 219, 0.5);
color:#0f0f0f;
}

.primeform-field:has(.primeform-submit){
justify-content:flex-end;
}

.primeform-submit:active{
transform:none;
}

.primeform-submit:disabled{
opacity:0.6;
cursor:not-allowed;
transform:none;
}

.primeform-field-group{
margin-bottom:1.5rem;
padding:1rem;
background-color:#f8f9fa;
border:1px solid #e9ecef;
border-radius:4px;
}

.primeform-group-label{
font-weight:600;
margin-bottom:1rem;
color:#333;
font-size:1rem;
}

.primeform-field-recaptcha,
.primeform-field-turnstile{
margin-bottom:1.5rem;
display:flex;
justify-content:center;
}

@media (max-width:768px){
.primeform-form{
padding:0;
}

.primeform-field{
flex-direction:column;
align-items:flex-start;
gap:0;
margin-bottom:2rem;
}

.primeform-field label{
margin-bottom:0;
min-width:auto;
width:auto;
text-align:left;
}

.primeform-field-checkbox{
flex-direction:column;
align-items:flex-start;
gap:0.5rem;
}

.primeform-field-checkbox > .primeform-label{
width:auto;
text-align:left;
}

.primeform-input,
.primeform-textarea,
.primeform-select{
font-size:16px;
}

.primeform-submit{
width:100%;
padding:0.45rem 0.85rem;
}
}
