/* ============================================================
   下層ページ用スタイル（about / news / products / contact /
   shelter-matsu / privacy 共通で読み込み）
   ============================================================ */

/* ============ 会社情報（about） ============ */
.ab-sec { padding: 78px 0; background: #fff; }
.ab-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 48px; }
.ab-pillar { text-align: center; opacity: 0; transform: translateY(36px); transition: opacity 1s var(--ease-out), transform 1s var(--ease-out); }
.ab-pillar.is-in { opacity: 1; transform: none; }
.ab-pillar:nth-child(2) { transition-delay: 0.5s; }
.ab-pillar:nth-child(3) { transition-delay: 1s; }
.ab-pillar img { width: 62%; max-width: 190px; margin: 0 auto; }
.ab-pillar h3 { margin-top: -34px; font-size: 18px; position: relative; }
.ab-pillar p { margin-top: 14px; font-size: 13.5px; line-height: 1.95; text-align: left; }

.ab-lede { margin-top: 14px; font-size: 14.5px; line-height: 2; max-width: 780px; }

.ab-svc { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 44px; }
.svc-card { display: block; background: #fff; border: 1px solid var(--pa-line); transition: border-color 0.22s var(--ease-standard), box-shadow 0.22s var(--ease-standard), transform 0.22s var(--ease-out); }
.svc-card:hover { border-color: var(--pa-navy); box-shadow: 0 16px 34px rgba(20, 37, 50, 0.14); transform: translateY(-4px); }
.svc-card .ph { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--pa-mist); }
.svc-card .ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.svc-card .ph img.contain { object-fit: contain; padding: 8px; }
.svc-card .body { padding: 18px 20px 22px; }
.svc-card h3 { font-size: 15.5px; }
.svc-card p { margin-top: 9px; font-size: 13px; line-height: 1.9; color: var(--text-muted); }

.ab-msg { display: grid; grid-template-columns: 0.72fr 1.28fr; gap: 48px; align-items: start; margin-top: 40px; }
.ab-msg .portrait { position: relative; border: 1px solid var(--pa-line); aspect-ratio: 3 / 4; overflow: hidden; background: var(--pa-mist); }
.ab-msg .portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.ab-msg .msg { position: relative; }
.ab-msg .tagline { position: absolute; right: 20px; top: -82px; width: 360px; opacity: 0.8; pointer-events: none; mix-blend-mode: multiply; }
.ab-msg h3 { position: relative; font-size: 24px; line-height: 1.6; }
.ab-msg .paras { margin-top: 24px; display: flex; flex-direction: column; gap: 18px; }
.ab-msg .paras p { font-size: 14.5px; line-height: 2.05; }
.ab-msg .paras b { font-weight: 700; color: var(--text-strong); }
.ab-msg .sign { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--pa-line); font-size: 12.5px; color: var(--text-muted); }
.ab-msg .sign img { margin-top: 8px; width: 210px; max-width: 100%; mix-blend-mode: multiply; }
.ab-msg .sign .name-fallback { margin-top: 6px; font-family: var(--font-display); font-size: 22px; font-weight: 700; color: var(--text-strong); }

.profile-table { width: 100%; font-size: 13.5px; margin-top: 38px; }
.profile-table th { width: 24%; text-align: left; vertical-align: top; background: #fff; border: 1px solid var(--pa-line); padding: 15px 18px; font-family: var(--font-display); font-size: 13.5px; color: var(--pa-navy); white-space: nowrap; font-weight: 700; }
.profile-table td { border: 1px solid var(--pa-line); background: #fff; padding: 15px 18px; line-height: 1.9; }
.dot-list { display: flex; flex-direction: column; gap: 7px; }
.dot-list li { display: flex; gap: 9px; align-items: flex-start; }
.dot-list li::before { content: ""; flex: none; width: 5px; height: 5px; background: var(--pa-signal); margin-top: 10px; }

.grp-head { text-align: center; }
.grp-head h2 { font-family: var(--font-num); font-weight: 300; font-size: 34px; letter-spacing: 0.14em; color: var(--pa-navy); }
.grp-head p { margin-top: 18px; font-size: 14.5px; }
.grp-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 40px; }
.grp-item { display: flex; flex-direction: column; align-items: center; }
.grp-orb { position: relative; width: 100%; max-width: 220px; aspect-ratio: 1 / 1; display: flex; flex-direction: column; align-items: center; justify-content: center; background: radial-gradient(circle at 50% 45%, var(--pa-navy-2) 0%, var(--pa-navy) 54%, rgba(240, 244, 248, 0) 76%); border-radius: 50%; }
.grp-orb .role { font-family: var(--font-display); font-weight: 500; font-size: 23px; letter-spacing: 0.1em; color: #fff; }
.grp-orb .d { margin-top: 8px; font-size: 12.5px; color: #C7D6E4; }
.grp-item ul { margin-top: 22px; padding-left: 35px; width: 100%; display: flex; flex-direction: column; gap: 13px; }
.grp-item a { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; line-height: 1.6; transition: color var(--dur-fast); }
.grp-item a:hover { color: var(--pa-signal); }
.grp-item a::before { content: ""; flex: none; width: 6px; height: 6px; margin-top: 7px; background: var(--pa-signal); border-radius: 50%; }

.office-block h3 { font-size: 18px; padding-left: 14px; border-left: 3px solid var(--pa-navy); line-height: 1.5; }
.office-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 36px; margin-top: 22px; }
.office-map { border: 1px solid var(--pa-line); min-height: 320px; }
.office-map iframe { border: 0; display: block; width: 100%; height: 100%; min-height: 320px; }
.office-rows { display: flex; flex-direction: column; gap: 22px; }
.office-row { border-left: 3px solid var(--pa-signal); padding-left: 16px; }
.office-row .l { font-family: var(--font-num); font-size: 10.5px; font-weight: 700; letter-spacing: 0.14em; color: var(--text-muted); }
.office-row .v { margin-top: 6px; font-size: 14px; line-height: 1.9; color: var(--text-strong); }
.office-note { font-size: 12.5px; line-height: 1.9; color: var(--text-muted); background: var(--pa-mist); border: 1px solid var(--pa-line); padding: 13px 15px; }

/* ============ お知らせ一覧 / 詳細 ============ */
.nw-sec { padding: 78px 0; background: #fff; }
.nw-filter { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 36px; }
.nw-filter button {
  display: inline-flex; align-items: center; gap: 8px; background: #fff; color: var(--text-body);
  border: 1px solid var(--pa-line); padding: 11px 20px; cursor: pointer; font-size: 13px; font-weight: 500;
  transition: background 0.18s, color 0.18s, border-color 0.18s;
}
.nw-filter button .n { font-family: var(--font-num); font-size: 11px; opacity: 0.75; }
.nw-filter button:hover, .nw-filter button.on { color: #fff; }
.nw-filter button[data-f="ALL"]:hover, .nw-filter button[data-f="ALL"].on { background: var(--text-strong); border-color: var(--text-strong); }
.nw-filter button[data-f="NEWS"]:hover, .nw-filter button[data-f="NEWS"].on { background: var(--pa-navy); border-color: var(--pa-navy); }
.nw-filter button[data-f="JOURNAL"]:hover, .nw-filter button[data-f="JOURNAL"].on { background: var(--pa-signal); border-color: var(--pa-signal); }

.nw-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.nw-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--pa-line); transition: border-color 0.22s var(--ease-standard), box-shadow 0.22s var(--ease-standard), transform 0.22s var(--ease-out); }
.nw-card:hover { border-color: var(--pa-navy); box-shadow: 0 16px 34px rgba(20, 37, 50, 0.14); transform: translateY(-4px); }
.nw-card .ph { position: relative; aspect-ratio: 16 / 10; background: var(--pa-mist); overflow: hidden; }
.nw-card .ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nw-card .ph .noimg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--pa-ink-300); font-size: 26px; }
.nw-badge { display: inline-flex; align-items: center; color: #fff; font-family: var(--font-num); font-weight: 700; letter-spacing: 0.12em; white-space: nowrap; flex: none; }
.nw-badge.md { font-size: 11.5px; padding: 7px 14px; }
.nw-badge.sm { font-size: 10.5px; padding: 5px 11px; }
.nw-badge.news { background: var(--pa-navy); }
.nw-badge.journal { background: var(--pa-signal); }
.nw-card .ph .nw-badge { position: absolute; right: 0; top: 0; }
.nw-card .body { padding: 18px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.nw-card .meta { display: flex; align-items: center; gap: 12px; }
.nw-card .date { font-family: var(--font-num); font-size: 12px; font-weight: 700; }
.nw-card h3 { margin-top: 13px; font-size: 15.5px; line-height: 1.65; }
.nw-card .lede { margin-top: 10px; font-size: 12.5px; line-height: 1.9; color: var(--text-muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.nw-card .more { margin-top: auto; padding-top: 18px; display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-num); font-size: 13px; font-weight: 700; letter-spacing: 0.08em; color: var(--text-muted); transition: color 0.22s var(--ease-standard); }
.nw-card .more::before { content: ""; width: 30px; height: 1.5px; background: currentColor; }
.nw-card:hover .more { color: var(--pa-signal); }

.nw-pager { display: flex; justify-content: center; align-items: center; gap: 6px; margin-top: 56px; }
.nw-pager button { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; border: 1px solid var(--pa-line); background: #fff; color: var(--text-body); font-family: var(--font-num); font-size: 13px; font-weight: 700; cursor: pointer; transition: transform 0.2s var(--ease-out), box-shadow 0.2s var(--ease-standard), border-color 0.2s var(--ease-standard); }
.nw-pager button:hover { transform: translateY(-3px); box-shadow: 0 8px 18px rgba(20, 37, 50, 0.2); border-color: var(--pa-navy); }
.nw-pager button.on { background: var(--pa-navy); border-color: var(--pa-navy); color: #fff; }

/* 記事詳細 */
.art-grid { display: grid; grid-template-columns: 1fr 320px; gap: 56px; align-items: start; }
.art-main .mainimg { position: relative; aspect-ratio: 16 / 8; background: var(--pa-mist); border: 1px solid var(--pa-line); overflow: hidden; }
.art-main .mainimg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.art-main .mainimg .noimg { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; color: var(--text-muted); font-size: 12px; }
.art-lede { margin-top: 30px; font-size: 16px; line-height: 2; font-weight: 500; color: var(--text-strong); }
.art-body { margin-top: 34px; display: flex; flex-direction: column; gap: 22px; }
.art-body p { font-size: 14.5px; line-height: 2.05; }
.art-h { margin-top: 14px; padding-left: 14px; border-left: 3px solid var(--pa-signal); font-size: 19px; line-height: 1.6; font-weight: 700; color: var(--text-strong); }
.art-list { display: flex; flex-direction: column; gap: 11px; }
.art-list li { display: flex; gap: 11px; align-items: flex-start; font-size: 14.5px; line-height: 1.95; }
.art-list li::before { content: ""; flex: none; width: 5px; height: 5px; background: var(--pa-signal); margin-top: 11px; }
.art-fig { margin: 8px 0; }
.art-fig img { display: block; width: 100%; max-width: 680px; height: auto; border: 1px solid var(--pa-line); }
.art-fig figcaption { margin-top: 8px; font-size: 12.5px; color: var(--text-muted); }
.art-foot { margin-top: 46px; padding-top: 24px; border-top: 1px solid var(--pa-line); display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.art-foot .back { display: inline-flex; align-items: center; gap: 9px; font-size: 13.5px; font-weight: 600; color: var(--pa-navy); }
.art-foot .back:hover { color: var(--pa-signal); }

.art-side { display: flex; flex-direction: column; gap: 34px; }
.art-side h3 { font-size: 14px; padding-bottom: 12px; border-bottom: 2px solid var(--pa-navy); }
.art-side .latest { margin-top: 18px; display: flex; flex-direction: column; gap: 16px; }
.art-side .latest a { display: block; }
.art-side .latest .meta { display: flex; align-items: center; gap: 10px; }
.art-side .latest .date { font-family: var(--font-num); font-size: 11.5px; font-weight: 700; }
.art-side .latest p { margin-top: 7px; font-size: 13px; line-height: 1.7; transition: color 0.2s var(--ease-standard); }
.art-side .latest a:hover p { color: var(--pa-signal); }
.art-side .cats { margin-top: 6px; display: flex; flex-direction: column; }
.art-side .cats a { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--pa-line); padding: 13px 2px; font-size: 13px; transition: color var(--dur-fast); }
.art-side .cats a:hover { color: var(--pa-signal); }
.art-side .cats .n { font-family: var(--font-num); font-size: 11.5px; color: var(--text-muted); }
.art-side .consult { background: var(--pa-mist); border: 1px solid var(--pa-line); padding: 22px 20px; }
.art-side .consult h3 { border: none; padding: 0; font-size: 14.5px; line-height: 1.6; }
.art-side .consult p { margin-top: 10px; font-size: 12.5px; line-height: 1.9; color: var(--text-muted); }
.art-side .consult a { display: flex; justify-content: center; margin-top: 16px; background: var(--pa-navy); color: #fff; font-weight: 600; font-size: 13px; padding: 12px 16px; }
.art-side .consult a:hover { background: var(--pa-navy-2); }

/* ============ 備品一覧（products） ============ */
.prod-title-band { border-bottom: 1px solid var(--pa-line); background: #fff; }
.prod-title-inner { padding: 44px 0 36px; display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.prod-title-inner h1 { position: relative; z-index: 1; font-size: 38px; font-weight: 900; letter-spacing: -0.02em; }
.prod-title-inner .ttl { position: relative; }
.prod-title-inner .ghost { position: absolute; left: 0; top: 50%; transform: translateY(-50%); font-family: var(--font-display); font-weight: 800; font-size: 88px; letter-spacing: 0.02em; line-height: 1; color: var(--pa-navy); opacity: 0.075; white-space: nowrap; z-index: 0; pointer-events: none; }
.prod-title-inner p { font-size: 13.5px; line-height: 1.95; color: var(--text-muted); max-width: 380px; }

.tabstrip-band { position: sticky; top: 72px; z-index: 50; background: rgba(255, 255, 255, 0.96); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--pa-line); }
.tabstrip { display: flex; gap: 4px; overflow-x: auto; padding: 8px 0; scrollbar-width: none; }
.tabstrip::-webkit-scrollbar { height: 0; }
.tabstrip button { flex: 0 0 auto; display: inline-flex; flex-direction: column; align-items: center; gap: 5px; padding: 10px 14px; border: none; background: none; cursor: pointer; border-bottom: 2px solid transparent; color: var(--text-muted); font-size: 11.5px; font-weight: 500; white-space: nowrap; }
.tabstrip button.on { border-bottom-color: var(--pa-signal); color: var(--pa-navy); font-weight: 700; }

.prod-layout { display: grid; grid-template-columns: 1fr 320px; gap: 36px; align-items: start; padding: 40px 0 72px; }
.prod-cat { margin-bottom: 52px; scroll-margin-top: 150px; }
.prod-cat-head { display: flex; align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 2px solid var(--pa-navy); margin-bottom: 24px; }
.prod-cat-head h2 { font-size: 21px; font-weight: 900; }
.prod-cat-head .n { font-family: var(--font-num); font-size: 12px; color: var(--text-muted); font-weight: 700; }
.prod-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.prod-card { border: 1px solid var(--pa-line); background: #fff; display: flex; flex-direction: column; }
.prod-card .ph { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #fff; display: flex; align-items: center; justify-content: center; border-bottom: 1px solid var(--pa-line); cursor: pointer; }
.prod-card .ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.prod-card .ph img.contain { object-fit: contain; }
.prod-card .ph .pid { position: absolute; top: 10px; left: 10px; font-family: var(--font-num); font-size: 10px; color: var(--text-muted); letter-spacing: 0.04em; }
.prod-card .ph .added { position: absolute; bottom: 10px; right: 10px; display: inline-flex; align-items: center; gap: 5px; font-family: var(--font-num); font-size: 11px; font-weight: 700; color: #fff; background: var(--pa-navy); padding: 4px 9px; }
.prod-card .ph .cue { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 7px; background: rgba(23, 50, 77, 0.72); color: #fff; font-size: 14px; font-weight: 700; opacity: 0; transition: opacity 0.15s; }
.prod-card .ph:hover .cue { opacity: 1; }
.prod-card .body { padding: 16px 16px 18px; display: flex; flex-direction: column; flex: 1; }
.prod-card h3 { font-size: 14.5px; line-height: 1.5; min-height: 44px; font-weight: 700; }
.prod-card h3 .model { font-family: var(--font-num); font-size: 11.5px; font-weight: 400; color: var(--text-muted); }
.prod-card .meta { margin-top: 8px; font-size: 11.5px; line-height: 1.7; color: var(--text-muted); }
.prod-card .meta .row { display: flex; gap: 8px; }
.prod-card .meta .k { color: var(--pa-ink-400); min-width: 48px; }
.prod-card .meta .v { color: var(--text-body); }
.prod-card .price { margin-top: 12px; min-height: 46px; display: flex; align-items: flex-start; flex-wrap: wrap; gap: 0 6px; }
.prod-card .price .v { font-family: var(--font-num); font-size: 19px; font-weight: 700; color: var(--pa-navy); }
.prod-card .price .fr { font-size: 17px; font-weight: 700; color: var(--pa-navy); }
.prod-card .price .u { font-size: 11px; color: var(--text-muted); align-self: flex-end; margin-bottom: 3px; }
.prod-card .price .ask { font-size: 15px; font-weight: 700; color: var(--pa-signal-deep); }
.prod-card .add { margin-top: auto; width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 7px; background: var(--pa-navy); color: #fff; border: none; font-weight: 600; font-size: 13px; padding: 11px 12px; cursor: pointer; transition: background 0.14s; }
.prod-card .add:hover { background: var(--pa-navy-2); }

/* 見積リスト */
.quote-col { position: sticky; top: 150px; }
.quote-panel { border: 1px solid var(--pa-line); background: #fff; }
.quote-head { background: var(--pa-navy); color: #fff; padding: 16px 20px; display: flex; align-items: center; gap: 10px; }
.quote-head h3 { font-size: 15.5px; color: #fff; }
.quote-head .count { margin-left: auto; display: flex; align-items: baseline; gap: 3px; font-family: var(--font-num); }
.quote-head .count .v { font-size: 24px; font-weight: 700; color: var(--pa-signal); line-height: 1; }
.quote-head .count .u { font-size: 12px; color: #C7D4E2; }
.quote-close { display: none; margin-left: 6px; width: 30px; height: 30px; align-items: center; justify-content: center; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.3); color: #fff; font-size: 14px; cursor: pointer; }

/* SP用: 固定の見積リストボタン＋パネルのポップアップ表示 */
.quote-fab {
  display: none; position: fixed; top: 130px; right: 12px; z-index: 70;
  align-items: center; gap: 4px; background: var(--pa-navy); color: #fff;
  border: 1px solid rgba(255,255,255,0.25); border-left: 3px solid var(--pa-signal);
  padding: 10px 13px; font-size: 12.5px; font-weight: 700; letter-spacing: 0.02em;
  box-shadow: 0 8px 22px rgba(11, 24, 40, 0.35); cursor: pointer;
}
.quote-fab .c { color: var(--pa-signal); font-family: var(--font-num); font-size: 14px; }
.quote-backdrop { display: none; position: fixed; inset: 0; background: rgba(13, 28, 46, 0.55); z-index: 80; }
@media (max-width: 1023px) {
  .quote-fab { display: inline-flex; }
  body.quote-open .quote-backdrop { display: block; }
  body.quote-open .quote-col {
    position: fixed; left: 14px; right: 14px; top: 50%; transform: translateY(-50%);
    z-index: 81; max-height: 84vh; overflow-y: auto; margin: 0;
    box-shadow: 0 24px 60px rgba(8, 18, 31, 0.5);
  }
  body.quote-open .quote-close { display: inline-flex; }
}
.quote-items { max-height: 360px; overflow-y: auto; }
.quote-empty { padding: 40px 20px; text-align: center; color: var(--text-muted); font-size: 12.5px; line-height: 1.7; }
.quote-item { display: flex; gap: 10px; padding: 13px 16px; border-bottom: 1px solid var(--pa-line); }
.quote-item .info { flex: 1; min-width: 0; }
.quote-item .nm { font-size: 12.5px; font-weight: 600; color: var(--text-strong); line-height: 1.45; }
.quote-item .nm .model { font-family: var(--font-num); font-weight: 400; color: var(--text-muted); }
.quote-item .pr { font-family: var(--font-num); font-size: 11.5px; color: var(--text-muted); margin-top: 3px; }
.quote-item .pr.ask { color: var(--pa-signal-deep); }
.stepper { display: inline-flex; align-items: center; margin-top: 7px; border: 1px solid var(--pa-line); }
.stepper button { width: 26px; height: 26px; border: none; background: #fff; cursor: pointer; color: var(--pa-navy); display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; }
.stepper button:hover { background: var(--color-brand-soft); }
.stepper .q { min-width: 30px; text-align: center; font-family: var(--font-num); font-size: 12.5px; font-weight: 700; }
.quote-item .right { text-align: right; display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; }
.quote-item .del { border: none; background: none; cursor: pointer; color: var(--pa-ink-400); padding: 2px; font-size: 14px; }
.quote-item .del:hover { color: var(--pa-danger); }
.quote-item .sum { font-family: var(--font-num); font-size: 13px; font-weight: 700; color: var(--text-strong); }
.quote-foot { padding: 18px 20px 20px; border-top: 1px solid var(--pa-line); background: var(--pa-mist); }
.quote-total { display: flex; justify-content: space-between; align-items: baseline; }
.quote-total .l { font-size: 13px; font-weight: 700; color: var(--text-strong); }
.quote-total .l small { font-size: 11px; font-weight: 400; color: var(--text-muted); }
.quote-total .v { font-family: var(--font-num); font-size: 24px; font-weight: 700; color: var(--pa-signal); letter-spacing: -0.01em; }
.quote-ask-note { font-size: 11px; color: var(--pa-signal-deep); margin-top: 6px; display: none; align-items: center; gap: 5px; }
.quote-ask-note.on { display: flex; }
.quote-send { margin-top: 16px; display: flex; align-items: center; justify-content: center; gap: 8px; background: var(--pa-ink-300); color: #fff; font-weight: 600; font-size: 14px; padding: 13px 16px; pointer-events: none; }
.quote-send.on { background: var(--pa-signal); pointer-events: auto; }
.quote-send.on:hover { background: var(--pa-signal-deep); }
.quote-clear { margin-top: 10px; width: 100%; border: none; background: none; cursor: pointer; font-size: 12px; color: var(--text-muted); display: none; align-items: center; justify-content: center; gap: 5px; }
.quote-clear.on { display: inline-flex; }
.quote-note { font-size: 11px; line-height: 1.8; color: var(--text-muted); margin-top: 12px; }

/* 商品詳細モーダル */
.pmodal-bg { position: fixed; inset: 0; z-index: 100; background: rgba(11, 24, 40, 0.62); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); display: none; align-items: center; justify-content: center; padding: 24px; }
.pmodal-bg.open { display: flex; }
.pmodal { background: #fff; max-width: 560px; width: 100%; max-height: 88vh; overflow-y: auto; box-shadow: var(--shadow-xl); }
.pmodal .ph { position: relative; aspect-ratio: 16 / 9; background: #fff; display: flex; align-items: center; justify-content: center; border-bottom: 1px solid var(--pa-line); }
.pmodal .ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.pmodal .ph .pid { position: absolute; top: 14px; left: 14px; font-family: var(--font-num); font-size: 11px; color: var(--text-muted); }
.pmodal .close { position: absolute; bottom: 14px; right: 14px; width: 34px; height: 34px; border: none; background: rgba(23, 50, 77, 0.82); color: #fff; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-size: 16px; }
.pmodal .body { padding: 26px 28px 28px; }
.pmodal h3 { font-size: 20px; font-weight: 900; line-height: 1.4; }
.pmodal h3 .model { font-family: var(--font-num); font-size: 13px; font-weight: 400; color: var(--text-muted); }
.pmodal .meta { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 12px; font-size: 12.5px; color: var(--text-muted); }
.pmodal .meta b { color: var(--text-body); font-weight: 500; }
.pmodal .desc { margin-top: 18px; font-size: 13.5px; line-height: 1.95; }
.pmodal .spec-table { width: 100%; margin-top: 18px; font-size: 12.5px; }
.pmodal .spec-table th { text-align: left; background: var(--pa-mist); border: 1px solid var(--pa-line); padding: 8px 12px; font-weight: 600; color: var(--pa-navy); white-space: nowrap; width: 34%; }
.pmodal .spec-table td { border: 1px solid var(--pa-line); padding: 8px 12px; font-family: var(--font-num); }
.pmodal .sizing { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--pa-line); }
.pmodal .sizing .hd { display: flex; align-items: baseline; justify-content: space-between; }
.pmodal .sizing .hd .l { font-size: 13px; font-weight: 700; color: var(--text-strong); }
.pmodal .sizing .hd .v { font-family: var(--font-num); font-size: 15px; font-weight: 700; color: var(--pa-navy); }
.pmodal .size-btns { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.pmodal .size-btns button { min-width: 52px; padding: 8px 10px; font-family: var(--font-num); font-size: 12.5px; font-weight: 700; cursor: pointer; border: 1px solid var(--pa-line); background: #fff; color: var(--text-body); }
.pmodal .size-btns button.on { border-color: var(--pa-navy); background: var(--pa-navy); color: #fff; }
.pmodal .size-break { margin-top: 18px; background: var(--pa-mist); border: 1px solid var(--pa-line); padding: 14px 16px; font-size: 12.5px; }
.pmodal .size-break .row { display: flex; justify-content: space-between; }
.pmodal .size-break .row + .row { margin-top: 8px; }
.pmodal .size-note { font-size: 11px; color: var(--text-muted); margin-top: 10px; }
.pmodal .foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--pa-line); flex-wrap: wrap; }
.pmodal .foot .price { display: flex; align-items: baseline; gap: 6px; }
.pmodal .foot .price .v { font-family: var(--font-num); font-size: 22px; font-weight: 700; color: var(--pa-navy); }
.pmodal .foot .price .u { font-size: 11.5px; color: var(--text-muted); }
.pmodal .foot .price .ask { font-size: 14px; font-weight: 700; color: var(--pa-signal-deep); }
.pmodal .foot .add { display: inline-flex; align-items: center; gap: 8px; background: var(--pa-navy); color: #fff; border: none; font-weight: 600; font-size: 14px; padding: 13px 22px; cursor: pointer; }
.pmodal .foot .add:hover { background: var(--pa-navy-2); }

/* ============ お問い合わせ（contact） ============ */
.cf-wrap { max-width: 720px; margin: 36px auto 0; }
.cf-title { text-align: center; margin-bottom: 12px; position: relative; }
.cf-title .ghost { position: absolute; left: 0; right: 0; top: 6px; font-family: var(--font-display); font-weight: 800; font-size: 88px; letter-spacing: 0.02em; line-height: 1; color: var(--pa-navy); opacity: 0.075; white-space: nowrap; z-index: 0; pointer-events: none; }
.cf-title h1 { position: relative; z-index: 1; font-size: 34px; font-weight: 900; letter-spacing: -0.02em; }
.cf-title p { position: relative; z-index: 1; font-size: 13.5px; line-height: 1.9; color: var(--text-muted); max-width: 560px; margin: 12px auto 0; }
.cf-form { background: #fff; border: 1px solid var(--pa-line); padding: 36px 40px; }
.cf-fields { display: flex; flex-direction: column; gap: 22px; }
.cf-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.cf-field .lab { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.cf-field .lab .t { font-size: 13.5px; font-weight: 700; color: var(--text-strong); }
.cf-field .lab .req { font-size: 10.5px; font-weight: 700; color: #fff; background: var(--pa-signal); padding: 2px 7px; }
.cf-field .lab .opt { font-size: 10.5px; font-weight: 700; color: var(--text-muted); border: 1px solid var(--pa-line); padding: 2px 7px; }
.cf-field input[type="text"], .cf-field input[type="email"], .cf-field input[type="tel"], .cf-field select, .cf-field textarea {
  width: 100%; font-family: var(--font-sans); font-size: 14.5px; color: var(--text-strong); background: #fff;
  border: 1px solid var(--border-strong); padding: 12px 14px; outline: none; min-height: 46px;
}
.cf-field textarea { resize: vertical; line-height: 1.7; min-height: 130px; }
.cf-field .err-b { border-color: var(--pa-danger) !important; }
.cf-field .hint { font-size: 11.5px; color: var(--text-muted); margin-top: 6px; }
.cf-topics { display: flex; gap: 10px; flex-wrap: wrap; }
.cf-topics button { display: inline-flex; align-items: center; gap: 8px; background: #fff; color: var(--text-body); border: 1px solid var(--pa-line); padding: 11px 18px; cursor: pointer; font-size: 13.5px; font-weight: 500; transition: background 0.18s, color 0.18s, border-color 0.18s; }
.cf-topics button:hover { border-color: var(--pa-navy); }
.cf-topics button.on { background: var(--pa-navy); color: #fff; border-color: var(--pa-navy); font-weight: 600; }
.cf-topics button .bx { width: 14px; height: 14px; flex: none; border: 1.5px solid var(--pa-ink-300); display: inline-flex; align-items: center; justify-content: center; font-size: 10px; color: var(--pa-navy); background: transparent; }
.cf-topics button.on .bx { border-color: #fff; background: #fff; }
.cf-req-box { background: var(--color-brand-soft); border: 1px solid var(--pa-navy-2); padding: 18px 20px; }
.cf-req-box .hd { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; font-size: 12.5px; font-weight: 700; color: var(--pa-navy); }
.cf-req-box ul { display: flex; flex-direction: column; gap: 8px; }
.cf-req-box li { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; line-height: 1.6; }
.cf-req-box li::before { content: "✓"; color: var(--pa-signal); font-weight: 900; flex: none; }
.cf-req-box .total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--pa-navy-2); }
.cf-req-box .total .v { font-family: var(--font-num); font-size: 18px; font-weight: 700; color: var(--pa-signal); }
.cf-error { display: none; align-items: center; gap: 8px; margin-top: 22px; font-size: 12.5px; color: var(--pa-danger); }
.cf-error.on { display: flex; }
.cf-submit-row { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--pa-line); display: flex; flex-direction: column; align-items: center; gap: 16px; }
.cf-submit { display: inline-flex; align-items: center; gap: 9px; background: var(--pa-signal); color: #fff; border: none; font-weight: 600; font-size: 15px; padding: 15px 34px; cursor: pointer; }
.cf-submit:hover { background: var(--pa-signal-deep); }
.cf-privacy { font-size: 11.5px; line-height: 1.8; color: var(--text-muted); text-align: center; }
.cf-privacy a { color: var(--pa-navy); text-decoration: underline; }
.cf-done { background: #fff; border: 1px solid var(--pa-line); padding: 48px 40px; text-align: center; display: none; }
.cf-done.on { display: block; }
.cf-done .ic { display: inline-flex; width: 64px; height: 64px; align-items: center; justify-content: center; background: var(--pa-success-bg); color: var(--pa-success); font-size: 30px; font-weight: 900; }
.cf-done h2 { font-size: 22px; font-weight: 900; margin-top: 22px; }
.cf-done p { font-size: 14px; line-height: 1.95; color: var(--text-muted); margin-top: 14px; }
.cf-done a { display: inline-flex; align-items: center; gap: 8px; margin-top: 26px; background: var(--pa-navy); color: #fff; font-weight: 600; font-size: 14px; padding: 13px 26px; }

/* ============ 松竹梅 プラン（shelter-matsu） ============ */
.mq-main { padding-top: 116px; padding-bottom: 56px; }
.mq-bc { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--text-muted); margin-bottom: 18px; flex-wrap: wrap; font-family: var(--font-num); }
.mq-bc a { color: var(--text-muted); }
.mq-bc a:hover { color: var(--pa-signal); }
.mq-bc .cur { color: var(--text-strong); font-weight: 700; font-family: var(--font-sans); }
.mq-tabs { display: flex; gap: 4px; margin-bottom: -1px; flex-wrap: wrap; position: relative; z-index: 1; }
.mq-tab { display: inline-flex; align-items: center; gap: 10px; background: #fff; color: var(--text-body); border: 1px solid var(--pa-line); border-top: 3px solid transparent; padding: 12px 24px; cursor: pointer; font-size: 14px; font-weight: 500; transition: background 0.18s, color 0.18s, border-color 0.18s; }
.mq-tab .sw { width: 9px; height: 9px; flex: none; }
.mq-tab .sub { font-size: 12px; font-weight: 500; opacity: 0.8; }
.mq-tab.on { background: var(--pa-navy); color: #fff; border-color: var(--pa-navy); font-weight: 700; }
.mq-hero { display: grid; grid-template-columns: 1fr 420px; border: 1px solid var(--pa-line); background: #fff; overflow: hidden; }
.mq-hero .ph { position: relative; min-height: 440px; background: var(--gradient-navy); overflow: hidden; }
.mq-hero .ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.92; }
.mq-hero .ph .grad { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13,28,46,0.15) 50%, rgba(13,28,46,0.55) 100%); }
.mq-hero .side { background: var(--pa-navy); color: #fff; padding: 40px 36px; display: flex; flex-direction: column; justify-content: center; }
.mq-hero .badge { align-self: flex-start; color: #fff; font-weight: 700; font-size: 13px; padding: 6px 14px; }
.mq-hero h1 { font-size: 34px; font-weight: 900; color: #fff; margin-top: 18px; letter-spacing: -0.02em; }
.mq-hero .from-lab { font-size: 13px; color: #9FB4C9; margin-top: 16px; }
.mq-hero .price { display: flex; align-items: baseline; gap: 2px; margin-top: 6px; font-family: var(--font-num); }
.mq-hero .price .v { font-size: 38px; font-weight: 700; color: var(--pa-signal); letter-spacing: -0.01em; }
.mq-hero .price .t { font-size: 20px; font-weight: 700; color: var(--pa-signal); }
.mq-hero .chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.mq-hero .chips span { font-size: 12px; color: #D5DEE8; border: 1px solid rgba(255,255,255,0.25); padding: 8px 12px; }
.mq-hero .cta { display: inline-flex; align-items: center; justify-content: center; gap: 9px; margin-top: 26px; background: var(--pa-signal); color: #fff; font-weight: 600; font-size: 15px; padding: 15px 24px; }
.mq-hero .cta:hover { background: var(--pa-signal-deep); }
.mq-hero .dn { font-size: 12px; color: #9FB4C9; margin-top: 14px; display: flex; align-items: center; gap: 6px; }
.mq-layout { display: grid; grid-template-columns: 1fr 360px; gap: 28px; margin-top: 28px; align-items: start; }
.mq-table { border: 1px solid var(--pa-line); background: #fff; box-shadow: 0 2px 14px rgba(20, 37, 50, 0.05); }
.mq-group { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 18px 24px; background: var(--pa-navy); border-top: 3px solid var(--pa-signal); }
.mq-group h3 { font-size: 16px; color: #fff; letter-spacing: 0.02em; }
.mq-group .hint { font-size: 12px; color: #9FB4C9; }
.mq-group .agg { display: flex; align-items: baseline; gap: 14px; font-family: var(--font-num); }
.mq-group .agg .c { font-size: 11.5px; letter-spacing: 0.08em; color: #9FB4C9; }
.mq-group .agg .s { font-size: 16px; font-weight: 700; color: var(--pa-signal); }
.mq-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 18px 24px; background: #fff; border-bottom: 1px solid var(--pa-line); transition: background 0.16s; }
.mq-row:hover { background: var(--color-brand-soft); }
.mq-row .nm { min-width: 0; flex: 1 1 260px; }
.mq-row .nm .t { font-size: 14.5px; font-weight: 700; color: var(--text-strong); line-height: 1.6; }
.mq-row .nm .meta { display: flex; align-items: center; gap: 10px; margin-top: 5px; flex-wrap: wrap; font-size: 12px; color: var(--text-muted); }
.mq-row .std { font-family: var(--font-num); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; color: var(--pa-signal); border: 1px solid var(--pa-signal); padding: 3px 8px; }
.mq-row .amount { display: flex; align-items: center; gap: 18px; flex: none; font-family: var(--font-num); }
.mq-row .x1 { font-size: 12.5px; color: var(--text-muted); }
.mq-row .sum { font-size: 17px; font-weight: 700; color: var(--text-strong); min-width: 130px; text-align: right; }
.mq-row .sum.zero { color: var(--pa-ink-400); }
.mq-addbar { padding: 18px 24px 24px; }
.mq-addbtn { display: inline-flex; align-items: center; gap: 8px; background: #fff; color: var(--pa-navy); border: 1px solid var(--pa-navy); padding: 12px 20px; cursor: pointer; font-weight: 600; font-size: 13.5px; transition: background 0.16s, color 0.16s; }
.mq-addbtn.open, .mq-addbtn:hover { background: var(--pa-navy); color: #fff; }
.mq-empty-opt { padding: 20px 24px 0; font-size: 12.5px; color: var(--text-muted); }
.mq-picker { border: 1px solid var(--pa-navy); background: #fff; margin-top: 12px; box-shadow: 0 14px 34px rgba(20, 37, 50, 0.14); }
.mq-picker .hd { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; background: var(--pa-mist); border-bottom: 1px solid var(--pa-line); }
.mq-picker .hd .t { font-family: var(--font-display); font-weight: 700; font-size: 14px; color: var(--text-strong); }
.mq-picker .hd .x, .mq-picker .hd .bk { background: #fff; border: 1px solid var(--pa-line); cursor: pointer; font-size: 12px; color: var(--pa-navy); padding: 6px 10px; }
.mq-picker .hd .x { border: none; background: transparent; color: var(--text-muted); font-size: 16px; }
.mq-picker .bd { max-height: 340px; overflow-y: auto; padding: 14px; }
.mq-pick-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; }
.mq-pick-cats button { display: flex; align-items: center; gap: 10px; text-align: left; background: #fff; border: 1px solid var(--pa-line); padding: 13px 14px; cursor: pointer; font-size: 13px; color: var(--text-strong); transition: border-color 0.16s, background 0.16s; }
.mq-pick-cats button:hover { border-color: var(--pa-navy); background: var(--color-brand-soft); }
.mq-pick-cats .n { margin-left: auto; font-family: var(--font-num); font-size: 11px; color: var(--text-muted); }
.mq-pick-items { display: flex; flex-direction: column; gap: 8px; }
.mq-pick-items button { display: flex; align-items: center; gap: 12px; text-align: left; background: #fff; border: 1px solid var(--pa-line); padding: 10px 12px; cursor: pointer; transition: border-color 0.16s; }
.mq-pick-items button:hover:not(:disabled) { border-color: var(--pa-navy); }
.mq-pick-items button:disabled { background: var(--pa-mist); cursor: default; }
.mq-pick-items .thumb { flex: none; width: 42px; height: 42px; background: var(--pa-mist); display: inline-flex; align-items: center; justify-content: center; overflow: hidden; }
.mq-pick-items .thumb img { width: 100%; height: 100%; object-fit: cover; }
.mq-pick-items .inf { flex: 1; min-width: 0; }
.mq-pick-items .inf .t { display: block; font-size: 13px; color: var(--text-strong); }
.mq-pick-items .inf .m { display: block; margin-top: 3px; font-family: var(--font-num); font-size: 11.5px; color: var(--text-muted); }
.mq-pick-items .st { flex: none; font-size: 11.5px; font-weight: 700; color: var(--pa-signal); white-space: nowrap; }
.mq-pick-items button:disabled .st { color: var(--text-muted); }
.mq-aside { position: sticky; top: 88px; }
.mq-est { border: 1px solid var(--pa-line); background: #fff; }
.mq-est .hd { background: var(--pa-navy); color: #fff; padding: 18px 22px; }
.mq-est .hd h3 { font-size: 16px; color: #fff; }
.mq-est .bd { padding: 22px 22px 24px; }
.mq-est .row { display: flex; justify-content: space-between; align-items: baseline; font-size: 13.5px; }
.mq-est .row + .row { margin-top: 12px; }
.mq-est .row .v { font-family: var(--font-num); font-weight: 700; color: var(--text-strong); }
.mq-est .row .v.zero { color: var(--pa-ink-400); }
.mq-est .total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--pa-line); }
.mq-est .total .l { font-size: 15px; font-weight: 700; color: var(--text-strong); }
.mq-est .total .l small { font-size: 12px; color: var(--text-muted); font-weight: 400; }
.mq-est .total .v { font-family: var(--font-num); font-size: 26px; font-weight: 700; color: var(--pa-signal); letter-spacing: -0.01em; }
.mq-est .cta { display: flex; align-items: center; justify-content: center; gap: 9px; margin-top: 22px; background: var(--pa-signal); color: #fff; font-weight: 600; font-size: 15px; padding: 15px 20px; }
.mq-est .cta:hover { background: var(--pa-signal-deep); }
.mq-note { font-size: 11.5px; line-height: 1.85; color: var(--text-muted); margin-top: 14px; padding: 0 4px; }

/* ============ プライバシーポリシー ============ */
.pp-sec { padding: 78px 0; background: #fff; }
.pp-grid { display: grid; grid-template-columns: 280px 1fr; gap: 56px; align-items: start; }
.pp-toc { position: sticky; top: 104px; border: 1px solid var(--pa-line); background: var(--pa-mist); padding: 22px 20px; }
.pp-toc h2 { font-size: 13px; padding-bottom: 12px; border-bottom: 2px solid var(--pa-navy); }
.pp-toc ul { margin-top: 16px; display: flex; flex-direction: column; gap: 11px; }
.pp-toc a { display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; line-height: 1.7; transition: color var(--dur-fast); }
.pp-toc a:hover { color: var(--pa-signal); }
.pp-toc a::before { content: ""; flex: none; width: 5px; height: 5px; background: var(--pa-signal); margin-top: 8px; }
.pp-body > .lede { font-size: 15.5px; line-height: 2.05; color: var(--text-strong); font-weight: 500; }
.pp-secs { margin-top: 44px; display: flex; flex-direction: column; gap: 48px; }
.pp-secs section { scroll-margin-top: 110px; }
.pp-secs h2 { font-size: 20px; line-height: 1.55; padding-left: 14px; border-left: 3px solid var(--pa-signal); }
.pp-secs .cnt { margin-top: 18px; display: flex; flex-direction: column; gap: 18px; }
.pp-secs p { font-size: 14.5px; line-height: 2.05; }
.pp-secs .dot-list li { font-size: 14.5px; line-height: 1.95; }
.pp-table { width: 100%; font-size: 13.5px; margin-top: 20px; }
.pp-table th { width: 30%; text-align: left; vertical-align: top; background: var(--pa-mist); border: 1px solid var(--pa-line); padding: 14px 16px; font-family: var(--font-display); font-size: 13px; color: var(--pa-navy); white-space: nowrap; font-weight: 700; }
.pp-table td { border: 1px solid var(--pa-line); padding: 14px 16px; line-height: 1.9; }
.pp-foot { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--pa-line); display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.pp-foot .rev { font-family: var(--font-num); font-size: 12.5px; color: var(--text-muted); }

/* ============ レスポンシブ（下層共通） ============ */
@media (max-width: 1080px) {
  .prod-layout { grid-template-columns: 1fr; }
  .quote-col { position: static; }
}
@media (max-width: 980px) {
  .mq-hero, .mq-layout { grid-template-columns: 1fr; }
  .mq-hero .ph { min-height: 280px; }
  .mq-aside { position: static; }
}
@media (max-width: 860px) {
  .ab-pillars, .ab-svc { grid-template-columns: 1fr; }
  .ab-msg { grid-template-columns: 1fr; }
  .ab-msg .tagline { display: none; }
  .grp-grid { grid-template-columns: repeat(2, 1fr); }
  .office-grid { grid-template-columns: 1fr; }
  .nw-grid { grid-template-columns: 1fr; }
  .art-grid { grid-template-columns: 1fr; }
  .pp-grid { grid-template-columns: 1fr; }
  .pp-toc { position: static; }
  .prod-title-inner { flex-direction: column; align-items: flex-start; gap: 16px; }
}
@media (max-width: 760px) {
  .cf-2col { grid-template-columns: 1fr; }
  .cf-form { padding: 24px 20px; }
  .prod-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .prod-title-inner h1 { font-size: 26px; }
  .grp-grid { grid-template-columns: 1fr; }
}

/* SP: お知らせカードはサムネ・タイトル・VIEW MOREのみ（縦スクロールを短く） */
@media (max-width: 767px) {
  .nw-grid { gap: 16px; }
  .nw-card .meta, .nw-card .lede { display: none; }
  .nw-card .body { padding: 14px 16px 16px; }
  .nw-card h3 { margin-top: 0; font-size: 15px; line-height: 1.6; }
  .nw-card .more { padding-top: 10px; font-size: 12px; }
}

/* お問い合わせ: Turnstileウィジェット */
.cf-turnstile-row { margin: 18px 0 4px; display: flex; justify-content: center; }

/* お知らせ個別: ヒーローは画像のみ・見出しは本文側へ（2026-10-01変更） */
.art-hero-spacer { height: clamp(170px, 26vh, 290px); }
.art-bc.breadcrumb { position: static; margin: 0 0 18px; }
.art-bc.breadcrumb a, .art-bc.breadcrumb .sep { color: var(--text-muted); }
.art-bc.breadcrumb .cur { color: var(--pa-navy); }
.art-head-meta { display: flex; align-items: center; gap: 14px; }
h1.art-title { margin: 14px 0 26px; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.6; color: var(--pa-navy); }
@media (max-width: 767px) {
  .art-hero-spacer { height: 120px; }
  h1.art-title { font-size: 20px; margin-bottom: 20px; }
}
