
:root{
  --rir-main:#17345f;
  --rir-sub:#eef3f8;
  --rir-accent:#2c73d2;
  --rir-bg:#ffffff;
  --rir-text:#1e2430;
  --rir-radius:14px;
  --rir-content:1180px;
  --rir-heading-font:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --rir-body-font:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--rir-text);background:var(--rir-bg);font-family:var(--rir-body-font);line-height:1.75}
img{max-width:100%;height:auto}
a{color:var(--rir-main)}
.rir-container{width:min(calc(100% - 40px),var(--rir-content));margin-inline:auto}
.rir-site-main{min-height:60vh}
.rir-default-content{padding:72px 0}
.rir-default-content h1,.rir-default-content h2,.rir-default-content h3{font-family:var(--rir-heading-font)}
.rir-site-header{z-index:1000;background:rgba(255,255,255,.95);border-bottom:1px solid rgba(20,30,45,.08);backdrop-filter:blur(10px)}
.rir-site-header.is-sticky{position:sticky;top:0}
.admin-bar .rir-site-header.is-sticky{top:32px}
.rir-header-inner{width:min(calc(100% - 32px),1320px);height:76px;margin:auto;display:flex;align-items:center;gap:28px}
.rir-site-brand{margin-right:auto}
.rir-site-title{color:var(--rir-main);font-family:var(--rir-heading-font);font-size:1.3rem;font-weight:800;text-decoration:none}
.custom-logo{display:block;max-height:52px;width:auto}
.rir-primary-nav .rir-menu,.rir-footer-menu{display:flex;gap:24px;list-style:none;margin:0;padding:0}
.rir-primary-nav a{color:var(--rir-text);font-size:.92rem;font-weight:700;text-decoration:none}
.rir-header-actions{display:flex;align-items:center;gap:14px}
.rir-header-phone{color:var(--rir-main);font-size:.88rem;font-weight:800;text-decoration:none}
.rir-header-contact,.rir-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border:0;border-radius:var(--rir-radius);background:var(--rir-accent);color:#fff;font-weight:800;text-decoration:none;transition:transform .2s ease,opacity .2s ease}
.rir-header-contact:hover,.rir-button:hover{opacity:.88;transform:translateY(-1px)}
.rir-menu-toggle{display:none;width:44px;height:44px;padding:10px;border:0;background:none}
.rir-menu-toggle span:not(.screen-reader-text){display:block;height:2px;margin:5px 0;background:var(--rir-text)}
.rir-site-footer{padding:54px 0;background:#10223d;color:#fff}
.rir-footer-inner{width:min(calc(100% - 40px),var(--rir-content));margin:auto}
.rir-footer-brand{font-size:1.2rem;font-weight:800}
.rir-footer-menu{margin-top:24px;flex-wrap:wrap}
.rir-footer-menu a{color:#fff;text-decoration:none}
.rir-copyright{margin:32px 0 0;font-size:.8rem;opacity:.62}
.rir-archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.rir-archive-card{overflow:hidden;border:1px solid rgba(20,30,45,.08);border-radius:var(--rir-radius)}
.rir-archive-card a{color:inherit;text-decoration:none}
.rir-archive-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.rir-archive-card h2{padding:0 18px 18px;font-size:1.05rem}
[data-rir-animate]{opacity:0;transform:translateY(26px);transition:opacity var(--rir-animation-speed,.7s) ease,transform var(--rir-animation-speed,.7s) ease}
[data-rir-animate].is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}[data-rir-animate]{opacity:1;transform:none;transition:none}}
@media(max-width:900px){
  .rir-header-inner{height:68px}
  .rir-menu-toggle{display:block;order:3}
  .rir-primary-nav{position:absolute;top:68px;left:0;right:0;display:none;padding:20px;background:#fff;border-bottom:1px solid rgba(20,30,45,.08)}
  .rir-primary-nav.is-open{display:block}
  .rir-primary-nav .rir-menu{display:grid;gap:0}
  .rir-primary-nav li{border-bottom:1px solid rgba(20,30,45,.08)}
  .rir-primary-nav a{display:block;padding:14px 4px}
  .rir-header-phone{display:none}
  .rir-header-contact{min-height:42px;padding:0 14px;font-size:.84rem}
  .rir-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .rir-container{width:min(calc(100% - 28px),var(--rir-content))}
  .rir-header-actions{margin-left:auto}
  .rir-header-contact{display:none}
  .rir-archive-grid{grid-template-columns:1fr}
  .admin-bar .rir-site-header.is-sticky{top:46px}
}

.rir-footer-address{margin:8px 0 0;font-size:.9rem;opacity:.75}
