/* ============================================================
   一般社団法人 広域重度ケア連携機構 共通スタイル v2
   コンセプト:「刺し子 ── ひと針ずつ、つなぐ」
   ・七宝つなぎ(円のつらなり=ご縁)を背景文様に
   ・運針(点線のステッチ)を見出し・罫線・図版の共通言語に
   ・アクセント色は「紅」= 人と人を結ぶ赤い糸
   ・本文は BIZ UDPゴシック(ユニバーサルデザイン書体)
   ============================================================ */
:root{
  --indigo:#24486e;        /* 藍:信頼・医療 */
  --indigo-deep:#16304d;   /* 濃藍 */
  --akane:#bf3a4e;         /* 紅:結ぶ赤い糸 */
  --akane-deep:#a93146;
  --akane-tint:#f4b3ab;    /* 藍地の上で使う紅の淡色 */
  --wakaba:#3a7a5e;        /* 若葉:発達・成長 */
  --kinari:#f5f3ed;        /* 生成り:地の色 */
  --washi:#fdfcf9;         /* 和紙:カード面 */
  --ink:#24272c;
  --ink-soft:#4b4e55;
  --mute:#84878e;
  --line:#d8d3c8;
  --hero-text:#f1efe8;
  --font-display:"Shippori Mincho B1","Hiragino Mincho ProN",serif;
  --font-body:"BIZ UDPGothic","Zen Kaku Gothic New","Hiragino Kaku Gothic ProN",sans-serif;
  /* 七宝つなぎ(刺し子の点線で描いた円文様) */
  --shippo-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.075' stroke-width='1' stroke-dasharray='3 5'%3E%3Ccircle cx='32' cy='32' r='32'/%3E%3Ccircle cx='0' cy='0' r='32'/%3E%3Ccircle cx='64' cy='0' r='32'/%3E%3Ccircle cx='0' cy='64' r='32'/%3E%3Ccircle cx='64' cy='64' r='32'/%3E%3C/g%3E%3C/svg%3E");
  --shippo-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64'%3E%3Cg fill='none' stroke='%2324486e' stroke-opacity='.06' stroke-width='1' stroke-dasharray='3 5'%3E%3Ccircle cx='32' cy='32' r='32'/%3E%3Ccircle cx='0' cy='0' r='32'/%3E%3Ccircle cx='64' cy='0' r='32'/%3E%3Ccircle cx='0' cy='64' r='32'/%3E%3Ccircle cx='64' cy='64' r='32'/%3E%3C/g%3E%3C/svg%3E");
  /* 運針(ステッチ)の罫線 */
  --stitch-akane:repeating-linear-gradient(90deg,var(--akane) 0 7px,transparent 7px 12px);
  --stitch-pale:repeating-linear-gradient(90deg,rgba(241,239,232,.55) 0 7px,transparent 7px 12px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--kinari);
  line-height:1.95;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%}
a{color:inherit}
::selection{background:rgba(191,58,78,.18)}
:focus-visible{outline:3px solid var(--akane);outline-offset:3px;border-radius:2px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ---------- ヘッダー ---------- */
.header{
  position:sticky;top:0;z-index:50;
  background:rgba(245,243,237,.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s;
}
.header.is-scrolled{box-shadow:0 4px 20px rgba(22,48,77,.08)}
.header-inner{
  max-width:1160px;margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand-mark{
  width:42px;height:42px;flex:none;border-radius:50%;
  background:var(--indigo);position:relative;
}
/* 紋:中心(紅)を囲む五つの結び目+点線の円=ひと針の輪 */
.brand-mark::before{
  content:"";position:absolute;inset:4px;border-radius:50%;
  border:1px dashed rgba(241,239,232,.55);
}
.brand-mark::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle 5px at 50% 50%, var(--akane) 4px, transparent 5px),
    radial-gradient(circle 3.2px at 50% 17%, var(--kinari) 2.8px, transparent 3.8px),
    radial-gradient(circle 3.2px at 83% 50%, var(--kinari) 2.8px, transparent 3.8px),
    radial-gradient(circle 3.2px at 50% 83%, var(--kinari) 2.8px, transparent 3.8px),
    radial-gradient(circle 3.2px at 17% 50%, var(--kinari) 2.8px, transparent 3.8px);
}
.brand-text{line-height:1.35}
.brand-text small{display:block;font-size:10px;letter-spacing:.18em;color:var(--mute)}
.brand-text strong{font-family:var(--font-display);font-size:16.5px;font-weight:600;letter-spacing:.06em;color:var(--indigo-deep)}

.nav{display:flex;align-items:center;gap:4px}
.nav a{
  text-decoration:none;font-size:14px;font-weight:500;
  padding:9px 13px;border-radius:8px;position:relative;
}
.nav a:not(.cta)::after{
  content:"";position:absolute;left:13px;right:13px;bottom:4px;height:2px;
  background:var(--stitch-akane);opacity:0;transition:opacity .25s;
}
.nav a:not(.cta):hover::after,
.nav a[aria-current="page"]:not(.cta)::after{opacity:1}
.nav a[aria-current="page"]{color:var(--akane-deep);font-weight:700}
.nav .cta{
  background:var(--akane);color:#fff;font-weight:700;
  padding:10px 20px;border-radius:999px;margin-left:10px;position:relative;
}
.nav .cta::before{
  content:"";position:absolute;inset:4px;border-radius:999px;
  border:1px dashed rgba(255,255,255,.55);
}
.nav .cta:hover{background:var(--akane-deep)}

/* モバイルメニュー */
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:46px;height:46px;padding:0 11px;border:1px solid var(--line);
  border-radius:10px;background:var(--washi);cursor:pointer;
}
.nav-toggle span{display:block;height:2px;background:var(--indigo-deep);border-radius:2px;transition:transform .3s,opacity .3s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:880px){
  .nav-toggle{display:flex}
  .nav{
    position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;gap:2px;
    background:var(--kinari);border-bottom:1px solid var(--line);
    padding:12px 20px 20px;
    box-shadow:0 18px 30px rgba(22,48,77,.12);
    display:none;
  }
  .nav.is-open{display:flex}
  .nav a{padding:13px 12px;font-size:15px;border-bottom:1px dashed var(--line)}
  .nav a:not(.cta)::after{display:none}
  .nav a:last-of-type{border-bottom:none}
  .nav .cta{margin:12px 0 0;text-align:center}
}

/* ---------- 下層ページヒーロー ---------- */
.page-hero{
  background:
    radial-gradient(120% 160% at 85% -20%, #2d5685 0%, transparent 55%),
    var(--indigo);
  background-blend-mode:normal;
  color:var(--hero-text);padding:72px 24px 60px;position:relative;overflow:hidden;
}
.page-hero::before{
  content:"";position:absolute;inset:0;background:var(--shippo-dark);
  pointer-events:none;
}
.page-hero-inner{max-width:1160px;margin:0 auto;position:relative}
.breadcrumb{font-size:12.5px;letter-spacing:.08em;color:rgba(241,239,232,.7);margin-bottom:28px}
.breadcrumb a{text-decoration:none}
.breadcrumb a:hover{text-decoration:underline}
.page-hero .en{
  font-size:11.5px;letter-spacing:.34em;color:var(--akane-tint);font-weight:700;
  display:inline-flex;align-items:center;gap:14px;margin-bottom:14px;
}
.page-hero .en::after{content:"";width:52px;height:2px;background:var(--stitch-pale)}
.page-hero h1{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(28px,3.6vw,42px);letter-spacing:.06em;line-height:1.55;
}
.page-hero p{margin-top:20px;font-size:15px;line-height:2.1;color:rgba(241,239,232,.85);max-width:40em}

/* ---------- 共通セクション ---------- */
section{padding:92px 24px}
.inner{max-width:1160px;margin:0 auto}
.inner-narrow{max-width:880px;margin:0 auto}
.sec-label{
  font-size:12px;letter-spacing:.3em;color:var(--akane);font-weight:700;
  display:flex;align-items:center;gap:16px;margin-bottom:20px;
}
.sec-label::after{content:"";height:2px;width:64px;background:var(--stitch-akane)}
.sec-title{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(23px,2.8vw,32px);letter-spacing:.05em;line-height:1.6;
  color:var(--indigo-deep);
}
.sec-lead{margin-top:20px;max-width:42em;color:var(--ink-soft)}
.bg-alt{background:#efebe1}

.btn{
  display:inline-block;text-decoration:none;font-weight:700;font-size:15px;
  padding:15px 32px;border-radius:999px;letter-spacing:.05em;border:none;cursor:pointer;
  position:relative;transition:background .25s,transform .25s;
}
.btn::before{
  content:"";position:absolute;inset:5px;border-radius:999px;
  border:1px dashed rgba(255,255,255,.5);pointer-events:none;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--akane);color:#fff}
.btn-primary:hover{background:var(--akane-deep)}
.btn-indigo{background:var(--indigo);color:#fff}
.btn-indigo:hover{background:var(--indigo-deep)}
.btn-ghost{border:1.5px solid rgba(241,239,232,.55);color:var(--hero-text)}
.btn-ghost::before{display:none}
.btn-ghost:hover{background:rgba(241,239,232,.12)}
@media(prefers-reduced-motion:reduce){.btn:hover{transform:none}}

/* ---------- 事業詳細:イントロ ---------- */
.pillars-intro{background:#f4f1ea;position:relative;overflow:hidden;padding:104px 24px 90px}
.pi-photo{position:absolute;top:0;right:0;bottom:0;width:46%;max-width:800px;pointer-events:none}
.pi-photo img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.pi-photo::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#f4f1ea 0%,rgba(244,241,234,.55) 18%,rgba(244,241,234,0) 45%);
}
.pi-photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(244,241,234,0) 70%,rgba(244,241,234,.6) 92%,#f4f1ea 100%);
}
.pillars-intro .inner{position:relative;z-index:1}
.pillars-intro .sec-title{font-size:clamp(27px,3.5vw,42px);line-height:1.6;letter-spacing:.05em}
.pillars-intro .sec-lead{margin-top:24px;max-width:30em;line-height:2.2}
.pi-icons{
  margin-top:48px;display:flex;flex-wrap:wrap;align-items:flex-start;
  max-width:660px;row-gap:24px;
}
.pi-item{width:102px;text-align:center;position:relative;margin-right:8px}
.pi-item:last-child{margin-right:0}
.pi-item:not(:last-child)::after{
  content:"";position:absolute;right:-6px;top:29px;width:4px;height:4px;border-radius:50%;
  background:#c9bfae;
}
.pi-circle{
  width:62px;height:62px;border-radius:50%;margin:0 auto 10px;
  background:#fffefb;border:1px solid #ece4d4;
  box-shadow:0 8px 18px rgba(90,75,55,.13);
  display:flex;align-items:center;justify-content:center;
}
.pi-circle svg{width:33px;height:33px;display:block}
.pi-label{font-size:11px;font-weight:700;white-space:nowrap;color:var(--indigo-deep);letter-spacing:.01em;line-height:1.5;display:block}
@media(max-width:1240px){
  .pi-icons{max-width:352px}
  .pi-item:not(:last-child)::after{display:none}
}
@media(max-width:880px){
  .pillars-intro{padding-top:0}
  .pi-photo{position:relative;width:calc(100% + 48px);margin:0 -24px 24px}
  .pi-photo::before{display:none}
  .pi-photo img{height:240px}
  /* 6つの丸アイコン:均等3カラムでバランス良く配置 */
  .pi-icons{
    display:grid;grid-template-columns:repeat(3,1fr);
    justify-items:center;gap:26px 4px;
    max-width:420px;margin-top:40px;
  }
  .pi-item{width:auto;margin-right:0}
  .pi-circle{width:64px;height:64px}
  .pi-label{font-size:11.5px}
}

/* ---------- 事業詳細(柱カード) ---------- */
.pillars{background:#f4f1ea;padding:24px 24px 110px}
.pillar{
  background:#fbf9f5;border-radius:18px;
  box-shadow:0 10px 28px rgba(95,80,60,.07);
  display:grid;grid-template-columns:265px 1fr 360px;gap:0;
  padding:44px 42px;margin-bottom:36px;position:relative;
}
.pillar:not(:last-of-type)::after{
  content:"";position:absolute;left:24px;right:24px;bottom:-19px;height:1px;
  background:repeating-linear-gradient(90deg,#d6cdbd 0 6px,transparent 6px 12px);
}
.pillar:last-of-type{margin-bottom:0}
.pillar-head{padding-right:34px}
.pillar-head .num{
  font-family:var(--font-display);font-size:13.5px;letter-spacing:.2em;
  color:var(--akane);display:flex;align-items:center;gap:10px;margin-bottom:12px;
}
.pillar-head .num::before{
  content:"";width:10px;height:10px;border-radius:50%;flex:none;
  border:2px solid var(--akane);
}
.pillar-head h3{
  font-family:var(--font-display);font-size:clamp(19px,1.8vw,23px);font-weight:600;
  color:var(--indigo-deep);letter-spacing:.05em;line-height:1.75;
}
.pillar-icon{margin-top:30px}
.pillar-icon svg{width:110px;height:96px;display:block}
.pillar-body{
  border-left:1px solid #e3dccd;padding:4px 36px 0 36px;
}
.pillar-body>p{color:#3c3f45;font-size:14.5px;line-height:2.1}
.pillar-body ul{margin-top:22px;list-style:none}
.pillar-body li{
  position:relative;padding-left:26px;margin-bottom:11px;
  font-size:13.8px;color:#3c3f45;line-height:1.95;
}
.pillar-body li::before{
  content:"";position:absolute;left:0;top:13px;
  width:14px;height:2px;background:var(--stitch-akane);
}
.pillar-photo{padding-left:34px;display:flex;align-items:center}
.pillar-photo img{
  width:100%;height:auto;max-height:100%;object-fit:cover;
  border-radius:14px;display:block;
}
@media(max-width:1120px){
  .pillar{grid-template-columns:240px 1fr;gap:0}
  .pillar-photo{grid-column:1 / -1;padding:28px 0 0}
  .pillar-photo img{max-height:300px;width:100%}
}
@media(max-width:760px){
  .pillar{grid-template-columns:1fr;padding:30px 26px}
  .pillar-head{padding-right:0}
  .pillar-icon{display:none}
  .pillar-body{border-left:none;padding:18px 0 0}
}

.notice-box{
  margin-top:48px;background:var(--washi);border:1px solid var(--line);
  border-radius:14px;padding:32px 36px;position:relative;
}
.notice-box::before{
  content:"";position:absolute;left:0;top:24px;bottom:24px;width:4px;
  background:var(--indigo);border-radius:0 4px 4px 0;
}
.notice-box h3{
  font-size:15px;font-weight:700;color:var(--indigo-deep);
  margin-bottom:10px;letter-spacing:.06em;
}
.notice-box p{font-size:13.5px;color:var(--ink-soft);line-height:2}

/* ---------- テーブル ---------- */
.table-wrap{margin-top:40px;overflow-x:auto}
table{
  width:100%;border-collapse:collapse;background:var(--washi);
  border:1px solid var(--line);font-size:14px;min-width:640px;
}
caption{text-align:left;font-size:12.5px;color:var(--mute);margin-bottom:10px}
th,td{padding:16px 18px;border:1px solid var(--line);vertical-align:top;line-height:1.9}
thead th{
  background:var(--indigo);color:var(--hero-text);font-weight:700;
  letter-spacing:.08em;font-size:13.5px;text-align:left;
}
tbody th{
  background:#efebe1;font-family:var(--font-display);font-weight:600;
  color:var(--indigo-deep);text-align:left;white-space:nowrap;
}
td small{color:var(--mute);font-size:12px}

/* ---------- 会員種別テーブル(join.html) ---------- */
.sec-membership{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#fcfaf5 0%,#f8f2e8 60%,#f5ecdd 100%);
}
.sec-membership .inner{position:relative;z-index:1}
.membership-leaf{
  position:absolute;top:-30px;right:-50px;width:380px;height:auto;
  opacity:.55;pointer-events:none;z-index:0;
}
.member-card{
  margin-top:40px;background:#fff;border-radius:20px;
  padding:26px 30px 30px;
  box-shadow:0 18px 44px rgba(22,48,77,.08),0 2px 8px rgba(22,48,77,.04);
}
.member-card .table-wrap{margin-top:0;overflow-x:auto}
.member-table{
  width:100%;border-collapse:separate;border-spacing:0;
  background:transparent;border:none;font-size:14px;min-width:840px;
}
.member-table caption{
  text-align:left;font-size:12.5px;color:var(--mute);
  margin-bottom:0;padding-bottom:14px;
}
.member-table th,.member-table td{border:none;padding:20px 22px;line-height:1.9}
.member-table thead th{
  background:var(--indigo-deep);color:#fff;font-weight:700;
  font-size:14.5px;letter-spacing:.1em;text-align:center;
  padding:13px 18px;
}
.member-table thead th:first-child{border-radius:8px 0 0 8px}
.member-table thead th:last-child{border-radius:0 8px 8px 0}
.member-table tbody th,.member-table tbody td{
  background:transparent;vertical-align:middle;
  border-bottom:1px solid #ececec;
}
.member-table tbody tr:last-child th,
.member-table tbody tr:last-child td{border-bottom:none}
.member-table tbody tr > * + *{border-left:1px solid #f1ede5}
.member-table tbody td{color:#33363c;font-size:14px}
.member-table tbody td small{
  display:block;color:#9a9da4;font-size:12.5px;margin-top:2px;
}
.member-type{
  white-space:nowrap;font-family:var(--font-body);padding-left:16px;
}
.member-type .type-inner{display:flex;align-items:center;gap:16px}
.member-type .type-icon{
  width:52px;height:52px;flex:none;border-radius:50%;
  background:linear-gradient(180deg,#fdfbf6,#f4efe4);
  box-shadow:0 5px 12px rgba(22,48,77,.10),inset 0 1px 0 #fff;
  display:flex;align-items:center;justify-content:center;
}
.member-type .type-icon svg{width:26px;height:26px;display:block}
.member-type .type-name{
  font-family:var(--font-display);font-weight:600;font-size:19px;
  letter-spacing:.06em;color:var(--indigo-deep);
}
.member-vote{text-align:center;font-size:15px;color:var(--ink);white-space:nowrap}
@media(max-width:760px){
  .member-card{padding:18px 16px 20px;border-radius:16px}
  .membership-leaf{width:240px;top:-20px;right:-60px;opacity:.4}
  .member-table th,.member-table td{padding:16px 16px}
}

/* ---------- ご寄付(join.html) ---------- */
.donation-grid{
  display:grid;grid-template-columns:1fr 46%;
  gap:64px;align-items:center;
}
.donation-text .sec-lead{max-width:none}
.donation-text .btn{margin-top:36px}
.donation-photo img{
  width:100%;height:auto;display:block;border-radius:18px;
  box-shadow:0 16px 40px rgba(22,48,77,.10);
}
@media(max-width:880px){
  .donation-grid{grid-template-columns:1fr;gap:36px}
  .donation-photo{order:2}
  .donation-photo img{border-radius:16px}
}

/* ---------- 入会の流れ ---------- */
.flow{margin-top:44px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.flow-step{
  background:var(--washi);border:1px solid var(--line);border-radius:14px;
  padding:30px 26px;position:relative;
}
.flow-step .step{
  font-family:var(--font-display);font-size:12.5px;letter-spacing:.22em;
  color:var(--akane);display:block;margin-bottom:10px;
}
.flow-step h3{font-size:16px;font-weight:700;color:var(--indigo-deep);margin-bottom:8px}
.flow-step p{font-size:13px;color:var(--ink-soft);line-height:1.9}
.flow-step:not(:last-child)::after{
  content:"";position:absolute;right:-15px;top:50%;transform:translateY(-50%);z-index:1;
  width:12px;height:2px;background:var(--stitch-akane);
}
@media(max-width:880px){
  .flow{grid-template-columns:1fr}
  .flow-step:not(:last-child)::after{
    right:auto;left:50%;top:auto;bottom:-11px;transform:translateX(-50%) rotate(90deg);
  }
}

/* ---------- FAQ ---------- */
.faq{margin-top:40px}
.faq details{
  background:var(--washi);border:1px solid var(--line);border-radius:12px;
  margin-bottom:14px;overflow:hidden;transition:border-color .25s;
}
.faq details[open]{border-color:var(--indigo)}
.faq summary{
  cursor:pointer;padding:20px 24px;font-weight:700;font-size:15px;
  color:var(--indigo-deep);list-style:none;position:relative;padding-right:48px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q．";color:var(--akane);margin-right:6px}
.faq summary::after{
  content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);
  font-size:20px;color:var(--akane);font-weight:400;
}
.faq details[open] summary::after{content:"−"}
.faq .answer{padding:0 24px 22px;font-size:14px;color:var(--ink-soft);line-height:2}

/* ---------- 書類リスト(情報公開) ---------- */
.doc-group{margin-top:44px}
.doc-group h3{
  font-family:var(--font-display);font-size:19px;font-weight:600;
  color:var(--indigo-deep);letter-spacing:.04em;margin-bottom:18px;
  display:flex;align-items:center;gap:12px;
}
.doc-group h3::before{content:"";width:6px;height:24px;background:var(--akane);border-radius:3px}
.doc-list{list-style:none;border-top:1px dashed var(--line)}
.doc-list li{border-bottom:1px dashed var(--line)}
.doc-list a,.doc-list .pending{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 10px;font-size:14.5px;text-decoration:none;
}
.doc-list a:hover{background:rgba(253,252,249,.85)}
.doc-list .tag{
  flex:none;font-size:11px;font-weight:700;letter-spacing:.1em;
  padding:4px 14px;border-radius:999px;
  border:1px solid var(--indigo);color:var(--indigo);
}
.doc-list .pending{color:#9a9da4}
.doc-list .pending .tag{border-color:#b9bcc2;color:#9a9da4}

/* ---------- ガバナンス ---------- */
.gov-grid{margin-top:44px;display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.gov-card{background:var(--washi);border:1px solid var(--line);border-radius:14px;padding:32px 30px}
.gov-card h3{
  font-size:16px;font-weight:700;color:var(--indigo-deep);
  margin-bottom:10px;letter-spacing:.04em;
}
.gov-card p{font-size:13.5px;color:var(--ink-soft);line-height:2}
.gov-card small{display:block;margin-top:12px;font-size:11.5px;color:#9a9da4;letter-spacing:.06em}
@media(max-width:760px){.gov-grid{grid-template-columns:1fr}}

/* ---------- CTAバンド ---------- */
.cta-band{
  background:
    radial-gradient(110% 180% at 50% 120%, #2d5685 0%, transparent 60%),
    var(--indigo);
  color:var(--hero-text);text-align:center;padding:84px 24px;
  position:relative;overflow:hidden;
}
.cta-band::before{content:"";position:absolute;inset:0;background:var(--shippo-dark);pointer-events:none}
.cta-band>*{position:relative}
.cta-band h2{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(21px,2.7vw,29px);letter-spacing:.06em;line-height:1.8;
}
.cta-band p{margin-top:14px;font-size:14.5px;color:rgba(241,239,232,.82)}
.cta-band .actions{margin-top:34px;display:flex;justify-content:center;flex-wrap:wrap;gap:14px}

/* ============ ホーム(index) ============ */
.hero{
  background:
    radial-gradient(90% 130% at 8% -25%, #27496f 0%, transparent 52%),
    #1d3b5f;
  color:var(--hero-text);overflow:hidden;position:relative;
}
.hero::before{content:"";position:absolute;inset:0;background:var(--shippo-dark);pointer-events:none;z-index:1}
.hero-inner{
  max-width:1160px;margin:0 auto;padding:96px 24px;
  position:relative;z-index:2;
  display:flex;align-items:center;gap:44px;
}
.hero-text{flex:1 1 auto;min-width:0;max-width:640px}
.hero-photo{flex:0 0 42%;max-width:560px}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-size:12px;letter-spacing:.28em;color:rgba(241,239,232,.9);
  border:1px dashed rgba(241,239,232,.45);padding:8px 18px;border-radius:999px;
  margin-bottom:36px;
}
.hero h1{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(31px,3.9vw,50px);line-height:1.58;letter-spacing:.05em;
}
.hero h1 em{
  font-style:normal;color:var(--akane-tint);
  background:var(--stitch-akane) left bottom/100% 2px no-repeat;
  padding-bottom:8px;
}
.hero p{margin-top:32px;font-size:15.5px;line-height:2.2;color:rgba(241,239,232,.88);max-width:33em}
.hero-actions{margin-top:42px;display:flex;flex-wrap:wrap;gap:16px}
@media(max-width:1180px){
  .hero-inner{gap:36px}
  .hero-photo{flex-basis:44%}
}
@media(max-width:880px){
  .hero-inner{display:block;padding:64px 24px 72px}
  .hero h1{font-size:clamp(24px,6.4vw,31px)}
  .hero h1 br{display:none}
  /* 連携体制パネルはテキストの下に回り込み(詳細は後段のメディアブロック) */
  .hero-photo{max-width:480px;margin:52px auto 0}
}

/* ヒーロー:ボタンの矢印と配色(デザイン画像準拠) */
.btn .btn-arr{margin-left:16px;font-weight:700;font-family:var(--font-body)}
.hero .btn-primary{background:linear-gradient(135deg,#dd6065 0%,#bf3a4e 70%)}
.hero .btn-primary:hover{background:linear-gradient(135deg,#cb4f5b 0%,#a93146 70%)}
.hero .btn-ghost{
  background:rgba(12,28,50,.42);
  border:1px solid rgba(241,239,232,.38);
}
.hero .btn-ghost:hover{background:rgba(241,239,232,.12)}

/* ヒーロー:3つの安心ポイント */
.hero-points{margin-top:52px;display:flex;flex-wrap:wrap;align-items:center}
.hero-point{display:flex;align-items:center;gap:10px;padding:6px 14px}
.hero-point:first-child{padding-left:0}
.hero-point + .hero-point{border-left:1px solid rgba(241,239,232,.28)}
.hero-point .hp-ic{width:32px;height:32px;flex:none}
.hero-point .hp-ic svg{width:100%;height:100%;display:block}
.hero-point strong{display:block;font-size:13px;letter-spacing:.04em;line-height:1.65;white-space:nowrap}
.hero-point span{display:block;font-size:11.5px;color:rgba(241,239,232,.68);line-height:1.65;margin-top:2px;white-space:nowrap}
@media(max-width:1100px){
  .hero-point{padding:6px 18px}
}
@media(max-width:880px){
  .hero-points{margin-top:40px;display:block}
  .hero-point{padding:10px 0}
  .hero-point + .hero-point{border-left:none;border-top:1px dashed rgba(241,239,232,.22)}
}

/* ヒーロー右:連携体制パネル(コーディング版) */
.hero-panel{
  background:linear-gradient(180deg,#f8fbfe 0%,#eaf2f9 58%,#e3edf7 100%);
  border-radius:18px;overflow:hidden;position:relative;
  box-shadow:0 26px 60px rgba(6,16,34,.5);
  padding:30px 26px 0;
}
.hp-head{position:relative;text-align:center;padding:0 44px}
.hp-laurel{position:absolute;top:0;width:34px;height:58px}
.hp-laurel.left{left:4px}
.hp-laurel.right{right:4px;-webkit-transform:scaleX(-1);transform:scaleX(-1)}
.hp-head h2{
  font-family:var(--font-display);font-weight:600;color:#14304f;
  font-size:22px;line-height:1.6;letter-spacing:.1em;
  padding-bottom:13px;border-bottom:1px solid #91a8c2;
}
.hero .hero-panel .hp-sub{
  margin:12px 0 0;max-width:none;
  font-size:13px;line-height:1.8;letter-spacing:.1em;
  color:#1c3a5e;font-weight:700;
}
.hp-net{display:block;width:100%;height:auto;margin:4px auto 0}
.hero .hero-panel .hp-caption{
  margin:0;max-width:none;padding-top:15px;border-top:1px solid #9db1c8;
  font-size:12.5px;line-height:2;color:#1c3a5e;text-align:center;font-weight:700;
}
.hp-town{display:block;width:calc(100% + 52px);margin:6px -26px 0}
@media(max-width:1100px){
  .hero-panel{padding:24px 20px 0}
  .hp-head h2{font-size:19px}
  .hp-town{width:calc(100% + 40px);margin:6px -20px 0}
}

/* 連携図(署名要素):運針でつながるネットワーク */
.net{width:100%;height:auto;display:block;filter:drop-shadow(0 18px 36px rgba(10,24,42,.35))}
.net .link{
  stroke:rgba(241,239,232,.55);stroke-width:1.6;fill:none;
  stroke-dasharray:4 7;stroke-dashoffset:220;
  animation:stitch 1.8s ease forwards;
}
.net .link:nth-of-type(2){animation-delay:.15s}
.net .link:nth-of-type(3){animation-delay:.3s}
.net .link:nth-of-type(4){animation-delay:.45s}
.net .link:nth-of-type(5){animation-delay:.6s}
@keyframes stitch{to{stroke-dashoffset:0}}
.net .node circle{fill:#1d3c61;stroke:rgba(241,239,232,.6);stroke-width:1.2}
.net .node .ring{fill:none;stroke:rgba(241,239,232,.4);stroke-width:1;stroke-dasharray:3 5}
.net .node text{fill:var(--hero-text);font-family:var(--font-body);font-size:13px;font-weight:700;text-anchor:middle}
.net .center circle{fill:var(--akane);stroke:none}
.net .center .ring{stroke:rgba(244,179,171,.8)}
.net .center text{font-weight:700;font-size:14px}
@media(prefers-reduced-motion:reduce){.net .link{animation:none;stroke-dashoffset:0}}

/* 理念(右に家族写真、白カード+紺バー+丸アイコン) */
.mission{background:#faf6ee;position:relative;overflow:hidden;padding:112px 24px 96px}
.mission-photo{
  position:absolute;top:0;right:0;width:62%;max-width:1000px;z-index:0;pointer-events:none;
}
.mission-photo img{width:100%;height:auto;display:block}
.mission-photo::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#faf6ee 0%,rgba(250,246,238,.6) 16%,rgba(250,246,238,0) 38%);
}
.mission-photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(250,246,238,0) 62%,rgba(250,246,238,.7) 88%,#faf6ee 100%);
}
.mission-leaves{
  position:absolute;left:-60px;bottom:-40px;width:340px;height:320px;
  opacity:.45;pointer-events:none;
}
.mission-leaves svg{width:100%;height:100%;display:block}
.mission .inner{position:relative;z-index:1}
.mission .sec-label{letter-spacing:.22em}
.mission .sec-label::after{background:var(--akane);height:1.5px;width:150px}
.mission .sec-title{
  font-size:clamp(28px,3.8vw,46px);letter-spacing:.04em;line-height:1.55;
}
.mission .sec-lead{margin-top:28px;max-width:33em;font-size:16px;line-height:2.2;color:#3c3f45}
.mission-quote{
  margin-top:52px;padding:46px 52px;max-width:1180px;
  background:rgba(253,253,252,.96);border-radius:18px;
  border-left:10px solid var(--indigo-deep);
  box-shadow:0 18px 44px rgba(30,42,60,.1);
  display:flex;align-items:center;gap:36px;
}
.mq-icon{
  flex:none;width:104px;height:104px;border-radius:50%;
  background:#fbeae7;display:flex;align-items:center;justify-content:center;
}
.mq-icon svg{width:58px;height:58px;display:block}
.mq-body{
  font-family:var(--font-display);font-size:clamp(16.5px,1.9vw,21px);
  line-height:2;letter-spacing:.04em;color:var(--indigo-deep);font-weight:600;
}
.mq-body small{
  display:block;margin-top:16px;font-family:var(--font-body);font-weight:400;
  font-size:13px;letter-spacing:.1em;color:var(--mute);
}
@media(max-width:880px){
  .mission{padding-top:0}
  .mission-photo{position:relative;width:calc(100% + 48px);margin:0 -24px 8px}
  .mission-photo::before{display:none}
  .mission-leaves{display:none}
  .mission .sec-lead br{display:none}
  .mission-quote{flex-direction:column;align-items:flex-start;gap:24px;padding:36px 30px}
  .mq-icon{width:84px;height:84px}
  .mq-icon svg{width:46px;height:46px}
  .mq-body br{display:none}
}

/* 事業(6つの柱:左テキスト+右写真のカード) */
.works{
  background:
    radial-gradient(120% 150% at 88% -10%, #fdf2e0 0%, transparent 60%),
    #f6ead9;
  padding:104px 24px 110px;
}
.works .sec-label{letter-spacing:.22em}
.works .sec-label::after{background:var(--akane);height:1.5px;width:70px}
.works .sec-title{font-size:clamp(26px,3.4vw,40px);letter-spacing:.06em}
.works .sec-title::after{
  content:"";display:block;width:44px;height:2px;
  background:var(--akane);margin-top:28px;
}
.works-grid{
  margin-top:52px;display:grid;
  grid-template-columns:repeat(3,1fr);gap:30px;
}
.work{
  background:#fdfcfa;border-radius:16px;
  box-shadow:0 12px 30px rgba(86,64,40,.1);
  display:grid;grid-template-columns:1.1fr .9fr;
  overflow:hidden;
  transition:transform .3s,box-shadow .3s;
}
.work:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(86,64,40,.14)}
@media(prefers-reduced-motion:reduce){.work:hover{transform:none}}
.wk-text{padding:36px 22px 34px 32px;display:flex;flex-direction:column}
.work h3{
  font-family:var(--font-display);font-size:clamp(19px,1.7vw,23px);font-weight:600;
  letter-spacing:.05em;color:var(--indigo-deep);line-height:1.5;
}
.work h3::after{
  content:"";display:block;width:30px;height:2.5px;
  background:var(--akane);margin:16px 0 20px;
}
.work p{font-size:13.8px;line-height:2.05;color:#3c3f45}
.wk-photo{padding:9px 9px 9px 0;display:flex}
.wk-photo img{
  width:100%;height:100%;min-height:240px;object-fit:cover;
  border-radius:12px;display:block;
}
@media(max-width:1180px){.works-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){
  .works-grid{grid-template-columns:1fr}
  .work{grid-template-columns:1fr}
  .wk-text{padding:30px 26px 26px}
  .wk-photo{padding:0 9px 9px}
  .wk-photo img{min-height:180px;height:200px}
}

/* ICT(右上にチーム写真、点線カード+アイコン) */
.ict{
  background:
    radial-gradient(120% 160% at 15% 110%, #2d5685 0%, transparent 55%),
    var(--indigo);
  color:var(--hero-text);position:relative;overflow:hidden;
  padding:104px 24px 96px;
}
.ict::before{content:"";position:absolute;inset:0;background:var(--shippo-dark);pointer-events:none}
.ict-photo{
  position:absolute;top:0;right:0;width:56%;max-width:900px;z-index:0;pointer-events:none;
}
.ict-photo img{width:100%;height:auto;display:block}
.ict-photo::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,var(--indigo) 0%,rgba(36,72,110,.55) 14%,rgba(36,72,110,0) 36%);
}
.ict-photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(36,72,110,0) 55%,rgba(36,72,110,.75) 86%,var(--indigo) 100%);
}
.ict .inner{position:relative;z-index:1}
.ict .sec-title{color:#fff;font-size:clamp(26px,3.4vw,40px);letter-spacing:.07em}
.ict .sec-lead{color:rgba(241,239,232,.86);max-width:36em;line-height:2.2}
.ict .sec-label{color:var(--akane-tint)}
.ict .sec-label::after{background:var(--stitch-pale)}
.ict-grid{margin-top:64px;display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.ict-card{
  border:1px dashed rgba(241,239,232,.45);border-radius:14px;padding:32px 28px;
  background:rgba(20,42,70,.35);backdrop-filter:blur(2px);
}
.ict-card h3{
  font-size:17px;font-weight:700;letter-spacing:.08em;margin-bottom:22px;
  color:var(--akane-tint);display:flex;align-items:center;gap:11px;
}
.ict-card h3::before{content:"";width:10px;height:10px;border-radius:50%;border:2px solid var(--akane-tint);flex:none}
.ict-card .card-row{display:flex;gap:20px;align-items:flex-start}
.ict-icon{
  flex:none;width:84px;height:84px;border-radius:50%;
  background:rgba(214,228,243,.1);border:1px solid rgba(214,228,243,.18);
  display:flex;align-items:center;justify-content:center;
}
.ict-icon svg{width:48px;height:48px;display:block}
.ict-card p{font-size:14px;line-height:2.1;color:rgba(241,239,232,.86)}
.ict-note{
  margin-top:56px;font-size:13px;color:rgba(241,239,232,.7);line-height:2.1;
  border-top:1px dashed rgba(241,239,232,.32);padding-top:24px;max-width:56em;
}
@media(max-width:980px){.ict-grid{grid-template-columns:1fr}}
@media(max-width:880px){
  .ict{padding-top:0}
  .ict-photo{position:relative;width:calc(100% + 48px);margin:0 -24px 20px}
  .ict-photo::before{display:none}
}

/* 会員(右上にパズル写真、写真入りカード) */
.join{background:#f4f3ee;position:relative;overflow:hidden;padding:104px 24px 110px}
.join-photo{
  position:absolute;top:0;right:0;width:56%;max-width:900px;z-index:0;pointer-events:none;
}
.join-photo img{width:100%;height:auto;display:block}
.join-photo::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#f4f3ee 0%,rgba(244,243,238,.55) 16%,rgba(244,243,238,0) 40%);
}
.join-photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(244,243,238,0) 48%,rgba(244,243,238,.85) 82%,#f4f3ee 96%);
}
.join .inner{position:relative;z-index:1}
.join .sec-title{font-size:clamp(26px,3.4vw,40px);letter-spacing:.07em}
.join .sec-lead{max-width:38em;line-height:2.2}
.join-grid{margin-top:60px;display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.join-card{
  background:#fdfdfb;border-radius:16px;overflow:hidden;
  box-shadow:0 12px 30px rgba(70,60,46,.09);
  display:flex;flex-direction:column;
  transition:transform .3s,box-shadow .3s;
}
.join-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(70,60,46,.13)}
@media(prefers-reduced-motion:reduce){.join-card:hover{transform:none}}
.jc-head{
  display:flex;align-items:center;gap:15px;
  padding:28px 26px 0;
}
.jc-icon{
  flex:none;width:54px;height:54px;border-radius:50%;
  background:#f9e3df;display:flex;align-items:center;justify-content:center;
}
.jc-icon svg{width:30px;height:30px;display:block}
.join-card h3{
  font-family:var(--font-display);font-size:20px;font-weight:600;
  color:var(--indigo-deep);line-height:1.4;
}
.join-card .for{
  font-size:12.5px;letter-spacing:.08em;color:var(--akane);font-weight:700;
  margin-top:3px;
}
.join-card .desc{
  padding:20px 26px 24px;font-size:13.8px;line-height:2.05;color:#3c3f45;flex:1;
}
.join-card img{width:100%;height:140px;object-fit:cover;display:block}
.join-card .more{
  display:block;padding:20px 26px 24px;
  font-size:14px;font-weight:700;text-decoration:none;color:var(--indigo-deep);
}
.join-card .more::after{content:" →";color:var(--indigo)}
.join-card .more:hover{color:var(--akane-deep)}
@media(max-width:1100px){.join-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:880px){
  .join{padding-top:0}
  .join-photo{position:relative;width:calc(100% + 48px);margin:0 -24px 16px}
  .join-photo::before{display:none}
}
@media(max-width:560px){.join-grid{grid-template-columns:1fr}}

/* お知らせ */
.news{background:#efebe1}
.news-list{margin-top:38px;border-top:1px dashed var(--line)}
.news-item{
  display:grid;grid-template-columns:120px 110px 1fr;gap:20px;align-items:center;
  padding:22px 10px;border-bottom:1px dashed var(--line);
  text-decoration:none;transition:background .25s;
}
.news-item:hover{background:rgba(253,252,249,.85)}
.news-item time{font-size:13.5px;color:var(--mute);letter-spacing:.04em}
.news-tag{
  font-size:11px;font-weight:700;letter-spacing:.1em;text-align:center;
  padding:4px 0;border-radius:999px;border:1px solid var(--indigo);color:var(--indigo);
}
.news-tag.event{border-color:var(--wakaba);color:var(--wakaba)}
.news-item p{font-size:14.5px}
@media(max-width:680px){
  .news-item{grid-template-columns:1fr;gap:6px}
  .news-tag{width:90px}
}

/* 情報公開バンド */
.disclosure{padding:64px 24px;background:var(--kinari)}
.disclosure-inner{
  max-width:1160px;margin:0 auto;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;
  border:1px solid var(--line);border-radius:16px;background:var(--washi);padding:38px 42px;
  position:relative;
}
.disclosure-inner::before{
  content:"";position:absolute;left:24px;right:24px;top:10px;bottom:10px;
  border:1px dashed var(--line);border-radius:10px;pointer-events:none;
}
.disclosure h2{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--indigo-deep)}
.disclosure p{font-size:13.5px;color:var(--ink-soft);margin-top:6px;max-width:38em}
.disclosure .btn{background:var(--indigo);color:#fff;font-size:14px;padding:13px 28px}
.disclosure .btn:hover{background:var(--indigo-deep)}

/* ---------- フッター ---------- */
.footer{
  background:var(--indigo-deep);color:rgba(241,239,232,.8);
  padding:60px 24px 32px;position:relative;overflow:hidden;
}
.footer::before{content:"";position:absolute;inset:0;background:var(--shippo-dark);opacity:.6;pointer-events:none}
.footer-inner{max-width:1160px;margin:0 auto;position:relative}
.footer-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:36px}
.footer .brand-text strong{color:#fff}
.footer .brand-text small{color:rgba(241,239,232,.55)}
.footer .brand-mark{background:#23456b}
.footer-nav{display:flex;gap:44px;flex-wrap:wrap}
.footer-nav ul{list-style:none}
.footer-nav li{margin-bottom:9px}
.footer-nav a{font-size:13.5px;text-decoration:none}
.footer-nav a:hover{text-decoration:underline;text-decoration-style:dashed;text-underline-offset:5px}
.footer-bottom{
  margin-top:46px;padding-top:20px;border-top:1px dashed rgba(241,239,232,.25);
  font-size:12px;color:rgba(241,239,232,.55);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;
}

/* ---------- スクロール表示(JSが付与) ---------- */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
}

/* ---------- 連携体制パネル(モバイル) ---------- */
@media(max-width:880px){
  .hero-panel{padding:22px 18px 0;border-radius:16px}
  .hp-head{padding:0 36px}
  .hp-head h2{font-size:18px}
  .hp-laurel{width:28px;height:48px}
  .hero .hero-panel .hp-sub{font-size:12px;letter-spacing:.06em}
  .hero .hero-panel .hp-caption{font-size:11.5px;line-height:1.95}
  .hero .hero-panel .hp-caption br{display:none}
  .hp-town{width:calc(100% + 36px);margin:6px -18px 0}
}

/* ============================================================
   モバイル最適化(PCデザインには影響しないメディアクエリのみ)
   ============================================================ */

/* PC向け強制改行をスマホでは解除し、自然な折り返しに */
@media(max-width:760px){
  .sec-title br,
  .sec-lead br,
  .mq-body br,
  .cta-band p br{display:none}
}

/* 法人概要の項目列幅(インラインstyleから移設) */
.table-stack:not(.table-board) tbody th{width:180px}

/* 定義型テーブル(法人概要・役員一覧)の縦積み */
@media(max-width:760px){
  .table-stack{overflow:visible}
  .table-stack table{min-width:0;border:none;background:transparent}
  .table-stack thead{display:none}
  .table-stack tbody{display:block}
  .table-stack tbody tr{
    display:block;background:var(--washi);
    border:1px solid var(--line);border-radius:12px;
    margin-bottom:14px;overflow:hidden;
  }
  .table-stack tbody tr:last-child{margin-bottom:0}
  .table-stack tbody th,
  .table-stack tbody td{display:block;border:none}
  .table-stack tbody th,
  .table-stack:not(.table-board) tbody th{
    width:auto;padding:9px 18px;font-size:13px;letter-spacing:.06em;
    white-space:normal;
  }
  .table-stack tbody td{padding:13px 18px 15px;font-size:13.5px;line-height:1.95}
  /* 役員一覧:氏名を見出し的に、経歴を従属的に */
  .table-board tbody td:first-of-type{
    padding-bottom:2px;font-weight:700;font-size:15px;color:var(--ink);
  }
  .table-board tbody td:last-of-type{
    padding-top:0;font-size:13px;color:var(--ink-soft);
  }
}

/* 会員種別テーブル(join.html)の縦積みカード化 */
@media(max-width:880px){
  .member-card .table-wrap{overflow:visible}
  .member-table{min-width:0;border-spacing:0}
  .member-table thead{display:none}
  .member-table caption{display:block;padding-bottom:12px}
  .member-table tbody{display:block}
  .member-table tbody tr{
    display:block;background:#fff;
    border:1px solid #e9e3d7;border-radius:14px;
    margin-bottom:16px;overflow:hidden;
    box-shadow:0 3px 12px rgba(22,48,77,.05);
  }
  .member-table tbody tr:last-child{margin-bottom:0}
  .member-table tbody tr > * + *{border-left:none}
  .member-table tbody th,
  .member-table tbody td{display:block;border-bottom:none;padding:0}
  .member-table .member-type{
    padding:14px 18px 12px;white-space:normal;
    background:linear-gradient(180deg,#fbf9f4,#f3efe5);
    border-bottom:1px solid #ece6da;
  }
  .member-type .type-icon{width:46px;height:46px}
  .member-type .type-icon svg{width:23px;height:23px}
  .member-type .type-name{font-size:18px}
  .member-table tbody td{padding:12px 18px;font-size:13.5px;line-height:1.9}
  .member-table tbody td + td{border-top:1px dashed #ece6da}
  .member-table tbody td::before{
    content:attr(data-label);
    display:block;font-size:11px;font-weight:700;
    color:var(--akane);letter-spacing:.12em;margin-bottom:3px;
  }
  .member-table tbody td small{margin-top:4px}
  .member-vote{text-align:left;white-space:normal;padding-bottom:16px}
}

/* ============================================================
   相談ページ(advisory.html)
   ============================================================ */
.adv-intro p{
  max-width:46em;color:var(--ink-soft);font-size:15px;line-height:2.15;
}
.adv-intro p + p{margin-top:22px}

/* 参考:相談受付件数パネル */
.adv-stat{
  margin:52px auto 0;max-width:760px;
  background:#efebe1;border-radius:18px;
  padding:46px 36px 50px;text-align:center;position:relative;overflow:hidden;
}
.adv-stat::before{
  content:"";position:absolute;inset:0;background:var(--shippo-light);pointer-events:none;
}
.adv-stat>*{position:relative}
.adv-stat-head{
  display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;
}
.adv-stat-tag{
  background:var(--akane);color:#fff;font-size:12.5px;font-weight:700;
  letter-spacing:.22em;padding:6px 16px 6px 19px;border-radius:4px;flex:none;
}
.adv-stat-head h3{
  font-family:var(--font-display);font-weight:600;font-size:21px;
  letter-spacing:.08em;color:var(--indigo-deep);
}
.adv-stat-num{
  margin-top:26px;display:inline-block;
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(20px,3vw,27px);letter-spacing:.06em;color:var(--akane-deep);
  padding-bottom:12px;background:var(--stitch-akane) left bottom/100% 3px no-repeat;
}
.adv-stat-note{margin-top:18px;font-size:12px;color:var(--mute)}

/* 相談メニューカード */
.adv-cards{
  margin-top:56px;display:flex;justify-content:center;gap:28px;flex-wrap:wrap;
}
.adv-card{
  width:260px;background:var(--washi);border:1px solid var(--line);
  border-radius:16px;padding:34px 24px 28px;text-align:center;
  text-decoration:none;position:relative;
  box-shadow:0 8px 22px rgba(95,80,60,.07);
  transition:transform .25s,box-shadow .25s;
}
.adv-card::before{
  content:"";position:absolute;inset:7px;border-radius:11px;
  border:1px dashed #d9d2c2;pointer-events:none;
}
.adv-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(95,80,60,.12)}
@media(prefers-reduced-motion:reduce){.adv-card:hover{transform:none}}
.adv-card-icon{
  width:64px;height:64px;border-radius:50%;margin:0 auto 16px;
  background:#fdf2ef;display:flex;align-items:center;justify-content:center;
}
.adv-card-icon svg{width:34px;height:34px;display:block}
.adv-card h3{
  font-size:15.5px;font-weight:700;color:var(--indigo-deep);letter-spacing:.05em;
}
.adv-card .arr{
  margin:18px auto 0;width:26px;height:26px;border-radius:50%;
  border:1.5px solid var(--akane);color:var(--akane);
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;line-height:1;
}
.adv-cards-note{margin-top:26px;text-align:center;font-size:12.5px;color:var(--mute)}
@media(max-width:760px){
  .adv-stat{padding:36px 22px 40px}
  .adv-stat-head h3{font-size:18px}
  .adv-cards{gap:18px}
  .adv-card{width:100%;max-width:340px}
}

/* ヘッダー:項目追加(相談)に伴う中間幅のスリム化 */
@media(max-width:1120px) and (min-width:881px){
  .nav a{font-size:13px;padding:9px 9px}
  .nav a:not(.cta)::after{left:9px;right:9px}
  .nav .cta{padding:9px 16px;margin-left:6px}
  .brand-text strong{font-size:15px}
  .header-inner{gap:14px}
}
@media(max-width:960px) and (min-width:881px){
  .nav a{font-size:12.5px;padding:8px 6px}
  .nav a:not(.cta)::after{left:6px;right:6px}
  .nav .cta{padding:8px 13px;margin-left:4px}
  .brand-mark{width:36px;height:36px}
  .brand-text strong{font-size:14px}
}

/* ============================================================
   相談窓口のご案内(advisory-guide.html)
   ============================================================ */
/* メニューバー(タブ型リンク) */
.ag-tabs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:72px}
.ag-tab{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:15px 20px;border-radius:10px;text-decoration:none;
  font-size:14px;font-weight:700;letter-spacing:.04em;
  background:var(--washi);border:1px solid var(--line);color:var(--indigo-deep);
  transition:background .25s,border-color .25s;
}
.ag-tab .arr{
  width:24px;height:24px;border-radius:50%;flex:none;
  border:1.5px solid var(--akane);color:var(--akane);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:700;line-height:1;
}
.ag-tab:hover{background:#fff;border-color:var(--indigo)}
.ag-tab.is-current{
  background:#fff;border:2px solid var(--indigo);cursor:default;
}
.ag-tab.is-current .arr{display:none}

/* 見出し(テキスト幅の紅ステッチ+全幅の細罫) */
.ag-h2{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(20px,2.2vw,25px);letter-spacing:.07em;color:var(--indigo-deep);
  border-bottom:1px solid var(--line);padding-bottom:14px;position:relative;
}
.ag-h2::after{
  content:"";position:absolute;left:0;bottom:-2px;height:3px;width:120px;
  background:var(--stitch-akane);
}
.ag-section + .ag-section{margin-top:84px}

/* 連絡先ブロック(左:電話/右:受付時間) */
.ag-contact{
  margin-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:36px 48px;
  align-items:start;
}
.ag-tag{
  display:inline-block;font-size:13.5px;font-weight:700;letter-spacing:.3em;
  color:var(--indigo-deep);border:1.5px solid var(--indigo);
  padding:6px 16px 6px 20px;border-radius:4px;background:var(--washi);
}
.ag-tel-label{margin-top:22px;font-size:13px;font-weight:700;color:var(--akane);letter-spacing:.08em}
.ag-tel{
  display:block;margin-top:6px;
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(30px,3.6vw,42px);letter-spacing:.04em;color:var(--indigo-deep);
  text-decoration:none;
}
.ag-hours-label{
  display:inline-block;font-size:14px;font-weight:700;color:var(--indigo-deep);
  letter-spacing:.06em;padding:5px 14px;background:#ece7da;border-left:4px solid var(--akane);
}
.ag-hours p{margin-top:14px;font-size:14.5px;line-height:2.05;color:var(--ink)}
.ag-notes{
  margin-top:34px;padding-top:22px;
  border-top:1px dashed #cfc8b8;list-style:none;
}
.ag-notes li{
  position:relative;padding-left:26px;font-size:13.5px;color:var(--ink-soft);
  line-height:2;margin-bottom:6px;
}
.ag-notes li::before{content:"※";position:absolute;left:0;color:var(--akane)}

/* 面接場所 */
.ag-sub{
  margin-top:56px;font-size:17px;font-weight:700;color:var(--indigo-deep);
  letter-spacing:.08em;padding-bottom:12px;
  border-bottom:1px dashed #cfc8b8;
}
.ag-place{margin-top:34px}
.ag-place + .ag-place{margin-top:52px}
.ag-place-rows{margin-top:22px}
.ag-place-row{
  display:grid;grid-template-columns:150px 1fr;gap:8px 28px;
  padding:10px 0;font-size:14.5px;line-height:2;
}
.ag-place-row dt{font-weight:700;color:var(--indigo-deep)}
.ag-place-row dd{color:var(--ink)}
.ag-btn{
  display:inline-flex;align-items:center;gap:12px;margin-top:12px;
  background:var(--indigo);color:#fff;text-decoration:none;
  font-size:13.5px;font-weight:700;letter-spacing:.05em;
  padding:11px 20px;border-radius:8px;position:relative;
  transition:background .25s;
}
.ag-btn::before{
  content:"";position:absolute;inset:4px;border-radius:5px;
  border:1px dashed rgba(241,239,232,.45);pointer-events:none;
}
.ag-btn:hover{background:var(--indigo-deep)}
.ag-btn .arr{
  width:20px;height:20px;border-radius:50%;background:#fff;color:var(--indigo);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;line-height:1;flex:none;
}
.ag-foot-note{margin-top:60px;font-size:13.5px;color:var(--ink-soft);line-height:2}

@media(max-width:760px){
  .ag-tabs{grid-template-columns:1fr;gap:10px;margin-bottom:56px}
  .ag-contact{grid-template-columns:1fr;gap:28px;margin-top:32px}
  .ag-section + .ag-section{margin-top:64px}
  .ag-place-row{grid-template-columns:1fr;gap:2px;padding:8px 0}
  .ag-place-row dd{padding-left:0}
}
