@charset "UTF-8";
/* ==========================================================================
   Global Shinsho — public site stylesheet
   Design language mirrors k-staff.jp (WordPress "Lightning" / VK Blocks):
   white base, key blue #1e7a45, vivid-blue fill bars #21804a, two-column
   layout with a left sidebar of tab-titled boxes, blue "詳細はこちら" buttons.
   ========================================================================== */
:root{
  /* Palette taken from the logo: the green globe (#005424 → #6CB448) with the
     champagne-gold ribbon (#C9A961) kept as a thin accent. These 7 values are just the
     fallback default — every page inline-overrides them from the admin-editable primary
     color (/admin/theme, see App\Support\ColorShades and public.layout's <style> block). */
  --key:#23844c;          /* link / nav accent — 4.69:1 on white */
  --key-dark:#1a6b3d;
  --fill:#23864e;         /* buttons + small labels — 4.57:1 with white text */
  --fill-dark:#1c7141;
  --soft-fill:#33995e;    /* big blocks that only carry large bold text (3.58:1) */
  --navy:#2b8a55;         /* sub-page title band */
  --gold:#c9a961;         /* logo ribbon — hairlines and small accents only */
  --gold-dark:#8c6d1f;    /* the gold that is safe as text on white */
  --deep:#0e6f5b;         /* deep blue-green, third category tone */
  --red-new:#d7000f;
  --teal:#0095a8; --green:#3d9b4f; --magenta:#a83360;
  --text:#333333; --text-sub:#666666;
  --gray-bg:#f5f5f5; --soft:#f9f9f9; --gray-line:#dddddd; --white:#ffffff;
  --maxw:1170px;
  --radius:4px;
  /* legacy aliases kept so any stray rule/inline style still resolves */
  --orange:var(--key); --orange-light:var(--fill); --orange-pale:#f2f9f4;
  --blue-link:var(--key);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Noto Sans JP',"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  color:var(--text);font-size:16px;line-height:1.8;background:var(--white);
  -webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--key);text-decoration:none;}
a:hover{color:var(--key-dark);text-decoration:underline;}
a:focus-visible,button:focus-visible{outline:3px solid var(--fill);outline-offset:2px;}
.page{display:flex;flex-direction:column;min-height:100vh;background:var(--white);}
main{flex:1;}
.inner{max-width:var(--maxw);margin:0 auto;padding:0 15px;}
.topbar{height:4px;background:linear-gradient(90deg,var(--key-dark) 0%,var(--fill) 55%,var(--gold) 100%);}

/* ── Header ─────────────────────────────────────────────────────────────── */
.header{background:var(--white);box-shadow:0 1px 3px rgba(0,0,0,.1);position:relative;z-index:100;}
.header-flex{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:14px;padding-bottom:12px;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:12px;color:var(--text);}
.brand:hover{text-decoration:none;color:var(--key);}
/* logo-color.png is a square lockup whose lower strip already carries the org name;
   the window below crops to the globe mark so the name isn't printed twice. */
.brand-mark{display:block;flex:none;width:63px;height:52px;overflow:hidden;}
.brand-mark img{width:80px;max-width:none;height:auto;display:block;margin:-8px 0 0 -13px;}
.brand-text .brand-en{font-size:11.5px;letter-spacing:.1em;color:var(--key);font-weight:700;text-transform:uppercase;}
.brand-text .brand-ja{font-size:24px;font-weight:700;line-height:1.35;color:#222;}
.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.header-utils{display:flex;align-items:center;gap:14px;font-size:13.5px;}
.lang a{color:var(--text-sub);font-weight:500;padding-bottom:2px;}
.lang a.active{color:var(--key);font-weight:700;border-bottom:2px solid var(--key);}
.lang span{color:#ccc;margin:0 4px;}
.header-tel{font-size:14px;color:var(--text-sub);white-space:nowrap;}
.header-tel b{font-size:19.5px;color:var(--key-dark);font-weight:700;letter-spacing:.02em;}

/* Global navigation — flat text menu, blue underline on hover / current */
.gnav{border-top:1px solid #eee;}
.gnav-main ul,.gnav-sub ul{list-style:none;display:flex;max-width:var(--maxw);margin:0 auto;padding:0 15px;flex-wrap:wrap;}
.gnav-main{background:var(--white);}
.gnav-main li{position:relative;}
.gnav-main a{display:block;padding:14px 1.4em;color:#333;font-weight:700;font-size:15px;line-height:1.4;}
.gnav-main a:hover{color:var(--key);text-decoration:none;}
.gnav-main li::before{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--key-dark);transition:width .35s ease-out;}
.gnav-main li:hover::before,.gnav-main li.on::before{width:100%;}
.gnav-main li.on a{color:var(--key-dark);}
.gnav-sub{background:var(--soft);border-top:1px solid #eee;border-bottom:1px solid #eee;}
.gnav-sub a{display:block;padding:9px 1.4em;color:var(--text-sub);font-size:13.5px;font-weight:500;}
.gnav-sub a:hover{color:var(--key);background:#f1f9f4;text-decoration:none;}
.gnav-sub li.on a{color:var(--key-dark);font-weight:700;}
.nav-toggle{display:none;}

/* ── Sub-page title band + breadcrumb ───────────────────────────────────── */
.page-title{background:var(--navy);background-image:linear-gradient(100deg,var(--fill-dark) 0%,var(--navy) 52%,var(--soft-fill) 100%);color:#fff;text-align:center;}
.page-title::after{content:"";display:block;height:3px;background:linear-gradient(90deg,var(--gold),rgba(201,169,97,0));}
.page-title .inner{padding:34px 15px;}
.page-title h1{font-size:30px;font-weight:700;line-height:1.35;letter-spacing:.03em;}
.page-title .en{font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;opacity:.85;font-weight:700;margin-bottom:4px;}
.breadcrumb{background:var(--white);border-bottom:1px solid #eee;}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;max-width:var(--maxw);margin:0 auto;padding:8px 15px;font-size:13px;color:var(--text-sub);}
.breadcrumb li+li::before{content:"/";margin:0 .5em;color:#aaa;}
.breadcrumb a{color:var(--text-sub);}
.breadcrumb a:hover{color:var(--key);}

/* ── Two-column body (main + left sidebar) ──────────────────────────────── */
.site-body{padding:38px 0 60px;background:var(--white);}
.row-2col{display:flex;gap:40px;align-items:flex-start;max-width:var(--maxw);margin:0 auto;padding:0 15px;}
.sideSection{order:1;flex:0 0 280px;width:280px;}
.mainSection{order:2;flex:1 1 auto;min-width:0;}
.row-1col .mainSection{flex:1 1 100%;}

/* ── Section headings ───────────────────────────────────────────────────── */
.sec-title{background:var(--soft-fill);color:#fff;font-size:26px;font-weight:700;line-height:1.4;
  padding:14px 22px;border-radius:2px;margin:0 0 26px;letter-spacing:.02em;}
.sec-title .badge{vertical-align:4px;margin-left:10px;background:#fff;color:var(--fill-dark);}
.sec-title .badge.b2{background:#fff;color:var(--green);}
.sec-title .badge.b3{background:#fff;color:var(--magenta);}
section+section{margin-top:52px;}
.h3,.mainSection h3{font-size:21.5px;font-weight:700;color:#222;position:relative;
  padding-bottom:8px;margin:34px 0 16px;border-bottom:1px solid rgba(0,0,0,.1);}
.h3::after,.mainSection h3::after{content:"";position:absolute;left:0;bottom:-1px;width:30%;border-bottom:2px solid var(--fill);}
.h4{font-size:18.5px;font-weight:700;color:#222;margin:26px 0 12px;padding-left:12px;border-left:4px solid var(--fill);}
.mainSection p{margin-bottom:14px;}
.lead{font-size:16.5px;}
.sep{border:0;border-top:2px solid var(--fill);margin:44px 0;opacity:.85;}
.txt-muted{color:var(--text-sub);font-size:14px;}

/* ── Media row: image left, text + button right (top-page business list) ── */
.media-row{display:flex;gap:26px;align-items:flex-start;flex-wrap:wrap;}
.media-row .media-fig{flex:0 0 34%;max-width:34%;}
.media-row .media-fig img{width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--gray-bg);border:1px solid var(--gray-line);border-radius:2px;}
.media-row .media-fig .ph{width:100%;aspect-ratio:4/3;border-radius:2px;display:flex;align-items:center;
  justify-content:center;color:#fff;font-weight:700;font-size:15px;letter-spacing:.06em;text-align:center;padding:10px;
  background:linear-gradient(135deg,var(--fill),var(--soft-fill));}
.media-row .media-body{flex:1 1 55%;min-width:240px;}
.media-row .media-body p{line-height:1.75;}
.media-row .media-act{text-align:right;margin-top:14px;}

/* ── Buttons ────────────────────────────────────────────────────────────── */
.btn{display:inline-block;border:none;cursor:pointer;font-family:inherit;font-weight:700;font-size:16px;
  padding:11px 34px;border-radius:var(--radius);transition:.2s;text-align:center;line-height:1.5;}
.btn-primary{background:var(--fill);color:#fff;}
.btn-primary:hover{background:var(--fill-dark);color:#fff;text-decoration:none;}
.btn-ghost{background:#fff;color:var(--text-sub);border:1px solid #bbb;}
.btn-ghost:hover{border-color:var(--key);color:var(--key);text-decoration:none;}
.btn-sm{font-size:14.5px;padding:8px 22px;}
.btn-block{display:block;width:100%;}
.btn-row{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;}

/* ── Sidebar boxes (VK "border box / tab title" style) ──────────────────── */
.side-box{margin-bottom:26px;}
.side-box .side-tab{display:inline-block;background:var(--key);color:#fff;font-size:15px;font-weight:700;
  line-height:1.4;padding:8px 20px;border-radius:6px 6px 0 0;margin:0;max-width:100%;}
.side-box .side-body{border:2px solid var(--key);border-radius:0 6px 6px 6px;background:#fff;padding:16px 18px;font-size:15px;line-height:1.7;}
.side-box .side-body p{margin-bottom:10px;}
.side-box .side-body p:last-child{margin-bottom:0;}
.side-box .side-body .nm{font-weight:700;font-size:16px;}
.side-box .side-body .tel{font-size:18.5px;font-weight:700;color:var(--key-dark);letter-spacing:.02em;}
.side-list{list-style:none;}
.side-list li{border-bottom:1px dotted var(--gray-line);}
.side-list li:last-child{border-bottom:none;}
.side-list a{display:block;padding:9px 2px 9px 16px;color:#464646;font-size:14.5px;position:relative;}
.side-list a::before{content:"›";position:absolute;left:2px;top:8px;color:var(--fill);font-weight:700;}
.side-list a:hover{color:var(--key);text-decoration:none;}
.side-news{list-style:none;}
.side-news li{border-bottom:1px dotted var(--gray-line);padding:9px 0;}
.side-news li:last-child{border-bottom:none;}
.side-news .d{display:block;font-size:13px;color:var(--text-sub);}
.side-news a{font-size:14.5px;line-height:1.6;}
/* 関連機関 — external organisation banners (text button until a logo is dropped in) */
.org-list{list-style:none;}
.org-list li{margin-bottom:14px;}
.org-list li:last-child{margin-bottom:0;}
.org-banner{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  gap:2px;min-height:52px;padding:9px 10px;border:1px solid var(--gray-line);border-radius:3px;
  background:#fff;transition:.2s;}
.org-banner:hover{border-color:var(--fill);box-shadow:0 1px 5px rgba(6,147,227,.18);text-decoration:none;}
.org-banner.is-plain,.org-banner.is-plain:hover{border-color:var(--gray-line);box-shadow:none;cursor:default;}
.org-banner .nm{font-size:15px;font-weight:700;color:#14532b;line-height:1.3;}
.org-banner .sb{font-size:10px;color:var(--text-sub);line-height:1.35;letter-spacing:.01em;}
.org-banner.has-img{padding:0;border-color:#e2e2e2;overflow:hidden;}
.org-banner.has-img img{width:100%;height:auto;display:block;}
.org-cap{margin:4px 0 0;font-size:11.5px;color:var(--text-sub);line-height:1.4;}


/* ── Home hero carousel ─────────────────────────────────────────────────── */
.slider{position:relative;width:100%;overflow:hidden;background:#e8f3ec;}
.slider .slides{position:relative;width:100%;aspect-ratio:var(--slider-ratio,1900/600);}
.slider .slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .9s ease;}
.slider .slide.on{opacity:1;}
.slider .slide img{width:100%;height:100%;object-fit:cover;display:block;}
.slider-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:42px;height:42px;
  border:none;border-radius:50%;background:rgba(255,255,255,.7);color:var(--key-dark);font-size:26px;
  line-height:1;cursor:pointer;transition:.2s;display:flex;align-items:center;justify-content:center;}
.slider-nav:hover{background:#fff;color:var(--fill);}
.slider-nav.prev{left:16px;} .slider-nav.next{right:16px;}
.slider-dots{position:absolute;left:0;right:0;bottom:14px;z-index:2;display:flex;justify-content:center;gap:9px;}
.slider-dots button{width:11px;height:11px;padding:0;border:2px solid rgba(255,255,255,.9);border-radius:50%;
  background:rgba(46,109,164,.35);cursor:pointer;transition:.2s;}
.slider-dots button.on{background:var(--fill);border-color:#fff;transform:scale(1.15);}

/* Catch-copy: a band under the carousel by default. When the active banner is
   listed in config/hero.php it lifts onto that banner's empty right-hand side
   instead (desktop only — below 769px it always stays a band). */
.hero-stage{position:relative;}
.catch{background:linear-gradient(180deg,#f1f9f3,#ffffff);border-bottom:1px solid #ebf5ee;text-align:center;}
.catch .inner{padding:30px 15px 34px;}
.catch h1{font-size:26px;font-weight:700;color:#14532b;line-height:1.5;letter-spacing:.02em;}
.catch p{margin-top:8px;font-size:15px;color:var(--text-sub);}
.catch .hero-cta{background:var(--fill);color:#fff;box-shadow:0 2px 6px rgba(6,147,227,.3);}
.catch .hero-cta:hover{background:var(--fill-dark);color:#fff;}
@media (min-width:769px){
  .catch.is-overlay{position:absolute;top:0;right:0;z-index:3;width:50%;height:100%;
    background:none;border:none;display:flex;align-items:center;justify-content:center;
    opacity:0;visibility:hidden;pointer-events:none;transition:opacity .7s ease;}
  .hero-stage.show-catch .catch.is-overlay{opacity:1;visibility:visible;pointer-events:auto;}
  .catch.is-overlay .inner{padding:0 80px 0 2%;max-width:none;}  /* 80px keeps clear of the next arrow */
  .catch.is-overlay h1{font-size:30px;text-shadow:0 1px 4px rgba(255,255,255,.9);}
  .catch.is-overlay p{color:#3f5a48;text-shadow:0 1px 4px rgba(255,255,255,.9);}
  .catch.is-overlay .hero-cta{margin-top:18px;}
}
@media (min-width:769px) and (max-width:1100px){
  .catch.is-overlay h1{font-size:22px;}
  .catch.is-overlay p{font-size:13.5px;}
  .catch.is-overlay .hero-cta{margin-top:12px;padding:9px 22px;font-size:14px;}
}

/* ── Home hero ──────────────────────────────────────────────────────────── */
.hero{background:linear-gradient(105deg,var(--fill-dark) 0%,var(--fill) 45%,var(--soft-fill) 100%);color:#fff;position:relative;overflow:hidden;}
.hero::after{content:"";position:absolute;right:-70px;top:-90px;width:340px;height:340px;border:26px solid rgba(255,255,255,.14);border-radius:50%;}
.hero::before{content:"";position:absolute;right:170px;bottom:-140px;width:260px;height:260px;border:20px solid rgba(255,255,255,.1);border-radius:50%;}
.hero-inner{max-width:var(--maxw);margin:0 auto;padding:56px 15px;position:relative;z-index:1;}
.hero h1{font-size:34.5px;font-weight:700;letter-spacing:.04em;line-height:1.5;text-shadow:0 2px 6px rgba(0,0,0,.18);}
.hero p{margin-top:12px;font-size:16px;opacity:.95;}
.hero-cta{display:inline-flex;align-items:center;gap:8px;margin-top:22px;background:#fff;color:var(--key-dark);
  font-weight:700;padding:12px 30px;border-radius:var(--radius);font-size:15.5px;box-shadow:0 3px 8px rgba(0,0,0,.18);}
.hero-cta:hover{text-decoration:none;background:#f1f9f3;color:var(--key-dark);}
.hero-cta::after{content:"›";font-size:19.5px;}

/* ── Home quick banners ─────────────────────────────────────────────────── */
.banner-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:6px 0 44px;}
.banner{display:flex;align-items:stretch;min-height:86px;border-radius:var(--radius);overflow:hidden;color:#fff;
  font-weight:700;font-size:17.5px;letter-spacing:.02em;box-shadow:0 1px 4px rgba(0,0,0,.14);transition:.2s;}
.banner:hover{text-decoration:none;color:#fff;transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,0,0,.18);}
.banner .icon{flex:0 0 88px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.92);}
.banner .icon svg{width:52px;height:52px;}
.banner .label{flex:1;display:flex;flex-direction:column;justify-content:center;padding:12px 18px;line-height:1.45;}
.banner .label small{font-size:13px;font-weight:400;opacity:.92;}
.bnr-teal{background:linear-gradient(95deg,var(--deep),var(--soft-fill));}
.bnr-green{background:linear-gradient(95deg,var(--fill-dark),var(--fill));}
.bnr-blue{background:linear-gradient(95deg,var(--fill-dark),var(--soft-fill));}
.bnr-magenta{background:linear-gradient(95deg,#6b5a1e,#b08c2e);}
.bnr-orange{background:linear-gradient(95deg,var(--key-dark),var(--fill));}
.bnr-navy{background:linear-gradient(95deg,var(--deep),var(--fill-dark));}

/* ── News lists ─────────────────────────────────────────────────────────── */
.news-list{list-style:none;}
.news-list li{display:flex;gap:14px;align-items:baseline;padding:13px 4px;border-bottom:1px solid #eee;flex-wrap:wrap;}
.news-list li:first-child{border-top:1px solid #eee;}
.news-list .d{font-size:14px;color:var(--text-sub);min-width:106px;}
.cat{font-size:12px;font-weight:700;color:#fff;padding:2px 10px;border-radius:2px;min-width:78px;text-align:center;}
.cat-info,.cat-announce{background:var(--fill);} .cat-event{background:var(--gold-dark);} .cat-member{background:var(--deep);}
.tag-new{display:inline-block;background:var(--red-new);color:#fff;font-size:11.5px;font-weight:700;padding:1px 7px;margin-left:6px;vertical-align:2px;letter-spacing:.05em;border-radius:2px;}
.list-more{text-align:right;margin-top:16px;}
.list-more a{color:var(--key);font-weight:700;font-size:14.5px;}
.list-more a::before{content:"› ";}
.news-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.news-card .thumb{aspect-ratio:16/9;border-radius:2px;overflow:hidden;border:1px solid var(--gray-line);background:#f2f2f2;}
.news-card .thumb img{width:100%;height:100%;object-fit:cover;}
.news-card .thumb .ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:15px;letter-spacing:.05em;}
.thumb .ph-announce{background:linear-gradient(135deg,var(--deep),var(--soft-fill));}
.thumb .ph-event{background:linear-gradient(135deg,#8c6d1f,#c9a961);}
.thumb .ph-member{background:linear-gradient(135deg,var(--fill-dark),var(--deep));}
.news-card .date{font-size:13.5px;color:var(--text-sub);margin-top:8px;}
.news-card .title{margin-top:2px;font-size:15.5px;line-height:1.7;color:var(--key);font-weight:500;}
.news-card a:hover .title{text-decoration:underline;}
.tabs{display:flex;gap:4px;border-bottom:2px solid var(--fill);flex-wrap:wrap;margin-bottom:4px;}
.tab{border:none;background:var(--gray-bg);color:var(--text);font-family:inherit;font-size:14.5px;font-weight:700;
  padding:10px 22px;border-radius:4px 4px 0 0;cursor:pointer;}
.tab:hover{background:#ebf5ee;color:var(--key);text-decoration:none;}
.tab.active{background:var(--fill);color:#fff;}
.pager{display:flex;justify-content:center;gap:6px;margin-top:28px;}
.pager a{display:flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 6px;
  border:1px solid var(--gray-line);border-radius:3px;font-weight:700;color:var(--key);}
.pager a.cur{background:var(--fill);border-color:var(--fill);color:#fff;}
.pager a:hover{text-decoration:none;border-color:var(--fill);color:var(--fill);}
.pager a.cur:hover{color:#fff;}

/* ── Article ────────────────────────────────────────────────────────────── */
.article-head{border-bottom:1px solid #e9e9e9;padding-bottom:14px;margin-bottom:24px;}
.article-head h1{font-size:28px;font-weight:700;line-height:1.55;margin-top:8px;}
.article-body p{margin-bottom:16px;}
.article-body h2{font-size:21.5px;font-weight:700;margin:28px 0 14px;padding:.6em 0;border-top:2px solid var(--key);border-bottom:1px solid #e9e9e9;}
.article-body h3{font-size:18.5px;}
.article-body ul,.article-body ol{margin:0 0 16px 24px;}
.article-fig{border:1px solid var(--gray-line);padding:8px;margin:20px 0;background:#fafafa;}
.article-fig figcaption{font-size:13.5px;color:var(--text-sub);text-align:center;margin-top:6px;}
.back-link{display:inline-block;margin-top:30px;font-weight:700;color:var(--key);}
.back-link::before{content:"‹ ";}

/* ── Tables ─────────────────────────────────────────────────────────────── */
.tbl{width:100%;border-collapse:collapse;margin:6px 0 20px;font-size:15px;}
.tbl th,.tbl td{border:1px solid var(--gray-line);padding:11px 14px;text-align:left;vertical-align:top;}
.tbl th{background:#f1f9f4;width:210px;font-weight:700;color:#1a5433;}
.tbl thead th{background:var(--key);color:#fff;width:auto;text-align:center;}
.tbl.center td,.tbl.center th{text-align:center;}
.table-scroll{overflow-x:auto;}

/* ── Timeline / steps / cards ───────────────────────────────────────────── */
.timeline{list-style:none;border-left:3px solid #c9e7d1;margin:8px 0 8px 8px;padding-left:26px;}
.timeline li{position:relative;padding-bottom:20px;}
.timeline li::before{content:"";position:absolute;left:-35px;top:9px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--fill);}
.timeline .y{font-weight:700;color:var(--key-dark);font-size:16px;margin-right:12px;}
.steps{list-style:none;counter-reset:step;display:grid;gap:14px;margin:8px 0 20px;}
.steps li{counter-increment:step;background:#fff;border:1px solid var(--gray-line);border-left:5px solid var(--fill);
  border-radius:var(--radius);padding:16px 20px 16px 74px;position:relative;}
.steps li::before{content:"STEP " counter(step);position:absolute;left:-5px;top:-1px;background:var(--fill);color:#fff;
  font-weight:700;font-size:11.5px;letter-spacing:.08em;padding:4px 9px;border-radius:0 0 6px 0;}
.steps li strong{display:block;font-size:16.5px;margin-bottom:2px;color:#222;}
.steps li p{margin:0;font-size:14.5px;color:var(--text-sub);}
.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.card{background:#fff;border:1px solid var(--gray-line);border-top:3px solid var(--fill);border-radius:var(--radius);padding:20px;}
.card h3{font-size:17.5px;font-weight:700;margin-bottom:8px;color:#222;}
.card p{font-size:14.5px;color:var(--text-sub);margin:0;}
.badge{display:inline-block;background:var(--fill);color:#fff;font-size:12px;font-weight:700;padding:2px 10px;border-radius:2px;}
.badge.b2{background:var(--gold-dark);} .badge.b3{background:var(--deep);}

/* ── FAQ ────────────────────────────────────────────────────────────────── */
.faq details{border:1px solid var(--gray-line);border-radius:var(--radius);margin-bottom:10px;background:#fff;overflow:hidden;}
.faq summary{cursor:pointer;list-style:none;padding:15px 44px 15px 52px;font-weight:700;position:relative;font-size:15.5px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::before{content:"Q";position:absolute;left:14px;top:13px;width:27px;height:27px;border-radius:50%;
  background:var(--fill);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:14px;}
.faq summary::after{content:"＋";position:absolute;right:16px;top:13px;color:var(--fill);font-weight:700;font-size:18.5px;}
.faq details[open] summary::after{content:"−";}
.faq .a{padding:0 18px 18px 52px;position:relative;font-size:15px;color:#444;}
.faq .a::before{content:"A";position:absolute;left:14px;top:0;width:27px;height:27px;border-radius:50%;
  background:var(--key-dark);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:14px;}

/* ── Forms ──────────────────────────────────────────────────────────────── */
.form-steps{display:flex;list-style:none;margin:0 0 30px;border:1px solid var(--gray-line);border-radius:var(--radius);overflow:hidden;}
.form-steps li{flex:1;text-align:center;padding:11px 6px;font-weight:700;font-size:14.5px;background:var(--gray-bg);color:#999;position:relative;}
.form-steps li.on{background:var(--fill);color:#fff;}
.form-steps li+li::before{content:"";position:absolute;left:-10px;top:0;border:23px solid transparent;border-left:12px solid #fff;z-index:1;}
.form-tbl{width:100%;border-collapse:collapse;margin-bottom:24px;}
.form-tbl th,.form-tbl td{border:1px solid var(--gray-line);padding:14px;text-align:left;vertical-align:top;font-size:15px;}
.form-tbl th{background:#f1f9f4;width:230px;font-weight:700;color:#1a5433;}
.req{display:inline-block;background:var(--red-new);color:#fff;font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:2px;margin-left:8px;vertical-align:1px;}
.opt{display:inline-block;background:#999;color:#fff;font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:2px;margin-left:8px;vertical-align:1px;}
.form-tbl input[type=text],.form-tbl input[type=email],.form-tbl input[type=tel],.form-tbl select,.form-tbl textarea{
  width:100%;max-width:520px;border:1px solid #bbb;border-radius:3px;padding:9px 12px;font-family:inherit;font-size:15px;background:#fff;}
.form-tbl input:focus,.form-tbl select:focus,.form-tbl textarea:focus{border-color:var(--fill);outline:none;box-shadow:0 0 0 3px rgba(6,147,227,.15);}
.form-tbl textarea{min-height:150px;}
.form-note{font-size:13.5px;color:var(--text-sub);margin-top:6px;}
.form-err{font-size:13.5px;color:var(--red-new);margin-top:6px;font-weight:700;}
.captcha-q{font-weight:700;font-size:20.5px;background:var(--gray-bg);border:1px solid var(--gray-line);border-radius:4px;padding:6px 16px;}
.agree{background:var(--soft);border:1px solid var(--gray-line);border-radius:var(--radius);padding:16px;text-align:center;font-size:15px;margin-bottom:24px;}
.complete-box{text-align:center;padding:34px 20px;}
.complete-box .ico{margin:0 auto 18px;width:84px;height:84px;border-radius:50%;background:#f2f9f4;display:flex;align-items:center;justify-content:center;}
.complete-box h2{font-size:25px;font-weight:700;color:var(--key-dark);margin-bottom:14px;}

/* ── Map / access ───────────────────────────────────────────────────────── */
.map-embed{border:1px solid var(--gray-line);border-radius:var(--radius);overflow:hidden;margin-bottom:18px;}
.map-embed iframe{width:100%;height:360px;border:0;display:block;}
.map-ph{background:#e9f2eb;border:1px solid var(--gray-line);border-radius:var(--radius);height:300px;display:flex;
  align-items:center;justify-content:center;color:#5b8a6a;font-weight:700;margin-bottom:18px;position:relative;overflow:hidden;}
.pin{position:absolute;top:42%;left:50%;transform:translate(-50%,-100%);}

/* ── Sitemap / misc blocks ──────────────────────────────────────────────── */
.sitemap-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
.sitemap-grid h3{font-size:16.5px;font-weight:700;border-bottom:2px solid var(--fill);padding-bottom:6px;margin-bottom:10px;}
.sitemap-grid h3::after{display:none;}
.sitemap-grid ul{list-style:none;}
.sitemap-grid li{padding:6px 0;border-bottom:1px dotted var(--gray-line);font-size:15px;}
.sitemap-grid li::before{content:"› ";color:var(--fill);font-weight:700;}
.note-box{background:#f2f9f4;border:1px solid #d3ead9;border-radius:var(--radius);padding:16px 20px;font-size:15px;margin:16px 0;}
.note-box strong{color:var(--key-dark);}
ul.disc{margin:0 0 16px 24px;} ul.disc li{margin-bottom:6px;}
ol.num{margin:0 0 16px 26px;} ol.num li{margin-bottom:6px;}
.cta-band{margin-top:48px;background:linear-gradient(95deg,var(--fill-dark),var(--fill));border-radius:var(--radius);color:#fff;
  padding:26px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.cta-band .t{font-size:19.5px;font-weight:700;}
.cta-band .tel{font-size:27px;font-weight:700;letter-spacing:.02em;}
.cta-band small{display:block;font-size:13.5px;font-weight:400;opacity:.92;}
.cta-band .btn-primary{background:#fff;color:var(--key-dark);}
.cta-band .btn-primary:hover{background:#e9f4ec;color:var(--key-dark);}

/* ── Footer ─────────────────────────────────────────────────────────────── */
footer{border-top:3px solid var(--key);border-image:linear-gradient(90deg,var(--key-dark),var(--fill) 60%,var(--gold)) 1;background:var(--soft);}
.footer-main{padding:34px 0 24px;}
.footer-flex{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;max-width:var(--maxw);margin:0 auto;padding:0 15px 24px;}
.footer-org .f-name{font-size:19.5px;font-weight:700;color:#222;}
.footer-org p{font-size:14px;margin-top:8px;line-height:1.9;color:var(--text-sub);}
.footer-contact{text-align:right;font-size:14px;color:var(--text-sub);}
.footer-contact .tel{font-size:24px;font-weight:700;letter-spacing:.03em;color:var(--key-dark);}
.footer-links{border-top:1px solid #e5e5e5;}
.footer-links ul{list-style:none;display:flex;justify-content:center;flex-wrap:wrap;max-width:var(--maxw);margin:0 auto;padding:16px 15px 6px;}
.footer-links li{position:relative;padding:0 18px;}
.footer-links li+li::before{content:"";position:absolute;left:0;top:20%;height:60%;width:1px;background:#ccc;}
.footer-links a{color:var(--text-sub);font-size:14px;}
.copyright{text-align:center;font-size:13px;padding:14px 15px 22px;letter-spacing:.03em;color:var(--text-sub);}
.totop{position:fixed;right:20px;bottom:20px;width:44px;height:44px;border-radius:var(--radius);background:rgba(51,122,183,.85);
  color:#fff;border:none;font-size:20.5px;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.25);z-index:50;}
.totop:hover{background:var(--key-dark);}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width:991px){
  .row-2col{flex-direction:column;gap:34px;}
  .sideSection{order:2;flex:1 1 auto;width:100%;}
  .mainSection{order:1;width:100%;}
  .gnav-main a{padding:13px 1em;font-size:14.5px;}
}
@media (max-width:768px){
  .header-flex{padding-top:10px;padding-bottom:10px;}
  .header-right{align-items:flex-start;flex-basis:100%;order:3;margin-top:8px;}
  .brand-mark{width:50px;height:42px;} .brand-mark img{width:64px;margin:-6px 0 0 -10px;}
  .brand-text .brand-ja{font-size:19.5px;}
  .nav-toggle{display:block;order:2;flex-shrink:0;background:var(--key);color:#fff;border:none;border-radius:var(--radius);
    font-size:14px;font-weight:700;padding:9px 14px;cursor:pointer;font-family:inherit;}
  .gnav{display:none;}
  .gnav.open{display:block;}
  .gnav-main ul,.gnav-sub ul{flex-direction:column;padding:0;}
  .gnav-main li,.gnav-sub li{border-bottom:1px solid #eee;text-align:left;}
  .gnav-main li::before{display:none;}
  .gnav-main a,.gnav-sub a{padding:12px 18px;}
  .hero-inner{padding:38px 15px;}
  .hero h1{font-size:24px;}
  .slider-nav{width:34px;height:34px;font-size:21px;}
  .slider-nav.prev{left:8px;} .slider-nav.next{right:8px;}
  .slider-dots{bottom:8px;gap:7px;}
  .slider-dots button{width:9px;height:9px;border-width:1.5px;}
  .catch .inner{padding:22px 15px 26px;}
  .catch h1{font-size:20px;}

  .page-title .inner{padding:24px 15px;}
  .page-title h1{font-size:22.5px;}
  .sec-title{font-size:20.5px;padding:12px 16px;}
  .site-body{padding:26px 0 44px;}
  .news-grid,.banner-grid,.card-grid,.sitemap-grid{grid-template-columns:1fr;}
  .media-row{gap:16px;}
  .media-row .media-fig{flex:0 0 100%;max-width:100%;}
  .media-row .media-act{text-align:center;}
  .footer-contact{text-align:left;}
  .tbl th,.form-tbl th{width:130px;}
  .tbl th,.tbl td,.form-tbl th,.form-tbl td{padding:9px 10px;font-size:14.5px;}
  .form-steps li{font-size:12.5px;}
  .map-embed iframe{height:260px;}
  .btn{width:100%;}
  .btn-row .btn{width:auto;min-width:180px;}
  .cta-band{padding:20px;}
}
@media (max-width:480px){
  .news-list li{gap:8px;}
  .news-list .d{min-width:auto;}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;}html{scroll-behavior:auto;}}

/* FAQ: each category re-opens with its own blue bar */
.faq .sec-title{margin-top:44px;}
.faq .sec-title:first-child{margin-top:0;}
