/* Hallmark · shape: Long Document · genre: modern-minimal · theme: brand · surface: absolute-white · scope: site · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V3 · weakest: V, shared navigation preserves the approved TOP while tables, indexes and articles distinguish page roles */
/* Hallmark · waive 7b · approved RHEMS design tokens explicitly require white surfaces · preserve the brand system shared with the approved TOP */
/* Hallmark · waive 78 · these are long-form service and archival documents, not landing pages · compact section heads retain readable content hierarchy */
/* Hallmark · answered F7 · search and contact inputs intentionally share the same control styling for consistency */
/* Hallmark · waive 77 · document pages use semantic nested sections · no filler sections are added to meet a landing-page count */
.subpage h1,.subpage h2{text-wrap:balance;overflow-wrap:break-word;min-width:0}
.subpage main{padding-bottom:var(--space-8)}.subpage .page-hero{padding:var(--space-7) 0 var(--space-7);background:var(--bg-subtle);border-bottom:1px solid var(--border)}.subpage .page-hero h1{font-size:clamp(30px,4vw,48px);line-height:1.45;max-width:22em}.subpage .page-hero .lead{font-size:17px;max-width:48em}.breadcrumb{margin-bottom:var(--space-6);display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:13px;color:var(--fg-muted)}.breadcrumb a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}.breadcrumb span{display:inline-flex;align-items:center;min-height:44px}.page-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--space-7);padding-top:var(--space-7)}.page-aside{align-self:start;position:sticky;top:calc(var(--site-header-height) + var(--space-5))}.page-aside a{display:block;min-height:44px;padding:var(--space-3) 0;font-size:14px;border-bottom:1px solid var(--border)}.page-aside a[aria-current="page"]{font-weight:700;color:var(--fg)}.page-body{min-width:0}.page-body>section{margin-bottom:var(--space-7)}.page-body h2{font-size:28px;margin-bottom:var(--space-5)}.page-body h3{font-size:21px;margin-top:var(--space-6);margin-bottom:var(--space-3)}.page-body p{font-size:16px;line-height:1.95;max-width:66ch;overflow-wrap:break-word}.page-body p+p{margin-top:var(--space-4)}.page-body ul.bullets{padding-left:var(--space-5);list-style:disc;margin-top:var(--space-5)}.bullets li{margin-bottom:var(--space-3);line-height:1.9}.document-note{padding:var(--space-5);margin:var(--space-5) 0;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px}.document-note p{font-size:14px}.page-body .document-note h2{font-size:20px;margin-bottom:var(--space-3)}.page-cta{padding:var(--space-6) 0;border-top:1px solid var(--border);display:flex;gap:var(--space-5);align-items:center;flex-wrap:wrap}.page-cta p{max-width:40em}.page-cta .btn{white-space:normal}.link-index{border-top:1px solid var(--border)}.link-index li{border-bottom:1px solid var(--border)}.link-index a{display:block;min-height:64px;padding:var(--space-5) 0}.link-index strong{display:block;font-size:20px}.link-index span{display:block;font-size:14px;color:var(--fg-muted);margin-top:var(--space-2)}.link-index a:hover strong{text-decoration:underline;text-underline-offset:5px}.product-heading{display:flex;align-items:center;gap:var(--space-7);flex-wrap:wrap}.product-heading img{width:auto;height:clamp(60px,7vw,104px);max-width:100%;max-height:none;object-fit:contain}.product-heading .aws{width:90px}.archive-controls{display:flex;gap:var(--space-4);align-items:end;flex-wrap:wrap;margin-bottom:var(--space-6)}.archive-controls label{display:block;font-size:14px}.archive-controls input,.archive-controls select{display:block;width:100%;min-height:48px;margin-top:var(--space-2);border:1px solid var(--fg-muted);border-radius:var(--radius-btn);padding:var(--space-3);background:var(--surface);color:var(--fg);font:inherit}.archive-controls .search-control{flex:1;min-width:200px}.archive-result{font-size:14px;color:var(--fg-muted);margin-bottom:var(--space-5)}.archive-list{border-top:1px solid var(--border)}.archive-list li{border-bottom:1px solid var(--border)}.archive-list a{display:grid;grid-template-columns:110px minmax(0,1fr);gap:var(--space-5);padding:var(--space-5) 0;min-height:64px}.archive-list time{font-size:14px;font-variant-numeric:tabular-nums;color:var(--fg-muted)}.archive-list .article-category{font-size:13px;color:var(--fg-muted);display:block;margin-bottom:var(--space-2)}.archive-list strong{font-size:17px;font-weight:500}.archive-list a:hover strong{text-decoration:underline;text-underline-offset:5px}.article-meta{display:flex;gap:var(--space-5);font-size:14px;color:var(--fg-muted);margin-top:var(--space-5)}.legacy-content{font-size:16px;line-height:2;overflow-wrap:anywhere}.legacy-content img{max-width:100%;height:auto;margin:var(--space-5) 0}.legacy-content a{display:inline-block;min-height:44px;text-decoration:underline;text-underline-offset:4px}.legacy-content h1,.legacy-content h2{font-size:28px;margin-top:var(--space-7);margin-bottom:var(--space-5)}.legacy-content h3{font-size:21px}.legacy-content ul,.legacy-content ol{list-style:revert;padding-left:var(--space-5);margin-block:var(--space-5)}.legacy-content table{width:100%;border-collapse:collapse}.legacy-content th,.legacy-content td{padding:var(--space-4);border-bottom:1px solid var(--border);text-align:left;overflow-wrap:anywhere}.legacy-content iframe{display:none}.legacy-content .wp-caption{max-width:100%!important}.company-facts{display:grid;grid-template-columns:160px minmax(0,1fr);margin:0}.company-facts dt,.company-facts dd{padding:var(--space-5) 0;border-bottom:1px solid var(--border);margin:0}.company-facts dt{font-weight:700}.form-shell{max-width:740px}.form-shell label{display:block;font-weight:600;margin-bottom:var(--space-2)}.form-shell .field{margin-bottom:var(--space-5)}.form-shell input:not([type="checkbox"]),.form-shell select,.form-shell textarea{display:block;width:100%;min-height:48px;border:1px solid var(--fg-muted);background:var(--surface);color:var(--fg);font:inherit;padding:var(--space-3);border-radius:var(--radius-btn)}.form-shell textarea{min-height:180px;resize:vertical}.form-shell .required{font-size:13px;color:var(--fg-muted);margin-left:var(--space-2)}.form-shell .hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-shell .consent{display:flex;gap:var(--space-3);align-items:start;min-height:44px;padding-block:var(--space-3)}.form-shell input[type="checkbox"]{width:22px;height:22px;flex-shrink:0;margin-top:var(--space-1)}.form-shell a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline}.form-shell .error{color:var(--fg);font-size:14px;font-weight:600;min-height:24px}.form-shell [aria-invalid="true"]{outline:2px solid var(--fg);outline-offset:2px}.form-summary{margin-top:var(--space-7);padding:var(--space-6);border:1px solid var(--border);background:var(--bg-subtle);overflow-wrap:anywhere}.form-summary dt{font-weight:700;margin-top:var(--space-4)}.form-summary dd{margin:var(--space-2) 0;white-space:pre-wrap}.form-summary .actions{margin-top:var(--space-5)}.step-list{counter-reset:steps}.step-list li{counter-increment:steps;border-top:1px solid var(--border);padding:var(--space-5) 0}.step-list strong{display:block;font-size:20px;margin-bottom:var(--space-3)}.step-list strong:before{content:counter(steps) '. ';font-variant-numeric:tabular-nums}.sitemap-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-7)}.sitemap-groups h2{font-size:24px}.sitemap-groups a{display:block;min-height:44px;padding-block:var(--space-2);text-decoration:underline;text-underline-offset:4px}.page-body .faq summary{font-size:17px}.page-body details{margin-bottom:var(--space-2)}[hidden]{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--fg);outline-offset:3px}a:active,button:active{opacity:.8}button:disabled{cursor:not-allowed;opacity:.5}.header-inner .nav>a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px}.site-preview-note{background:var(--bg-subtle);padding:var(--space-3) var(--space-5);font-size:13px;color:var(--fg-muted)}.empty-results{padding:var(--space-6) 0}.article-nav{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-5);margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--border)}.article-nav a{min-height:44px;display:flex;align-items:center;text-decoration:underline}.legacy-content br+br{display:none}@media(max-width:940px){.page-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}.page-aside{position:static;display:flex;gap:var(--space-4);flex-wrap:wrap;border-bottom:1px solid var(--border)}.page-aside a{border:0}.page-body p{max-width:100%}}@media(max-width:700px){.subpage .page-hero{padding:var(--space-6) 0}.subpage .page-hero h1{font-size:30px}.page-body h2{font-size:25px}.page-grid{padding-top:var(--space-6)}.archive-list a{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}.company-facts{grid-template-columns:minmax(0,1fr)}.company-facts dt{padding-bottom:0;border:0}.company-facts dd{padding-top:var(--space-2)}.sitemap-groups{grid-template-columns:minmax(0,1fr)}.form-summary{padding:var(--space-5)}.product-heading{gap:var(--space-5)}.legacy-content table{display:block;overflow-x:auto}.article-meta{flex-wrap:wrap;gap:var(--space-3)}.archive-controls{align-items:stretch}.archive-controls>div{width:100%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;animation:none;transition:none}}

/* ============ 新規記事の本文（build_news.py が生成） ============ */
.article-content{font-size:16px;line-height:2;overflow-wrap:anywhere}
.article-content>p{max-width:66ch}
.article-content h2{font-size:28px;margin-top:var(--space-7);margin-bottom:var(--space-5)}
.article-content h3{font-size:21px;margin-top:var(--space-6);margin-bottom:var(--space-3)}
.article-content p+p{margin-top:var(--space-4)}
.article-content ul,.article-content ol{list-style:revert;padding-left:var(--space-5);margin-block:var(--space-5)}
.article-content li{margin-bottom:var(--space-3);line-height:1.9}
.article-content img{max-width:100%;height:auto}
.article-content a{display:inline-block;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.article-content table{width:100%;border-collapse:collapse;margin-block:var(--space-5)}
.article-content th,.article-content td{padding:var(--space-4);border-bottom:1px solid var(--border);text-align:left;overflow-wrap:anywhere}
.article-content blockquote{margin:var(--space-6) 0;padding:var(--space-5);background:var(--bg-subtle);border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:15px}
.article-content blockquote cite{display:block;margin-top:var(--space-3);font-size:13px;color:var(--fg-muted);font-style:normal}
.article-figure{margin:var(--space-6) 0;padding:var(--space-6);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center}
.article-figure img{margin-inline:auto;max-height:180px;width:auto}
.article-figure figcaption{margin-top:var(--space-4);font-size:13px;line-height:1.8;color:var(--fg-muted)}
.logo-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5);margin:var(--space-6) 0}
.logo-compare figure{margin:0;min-height:152px;padding:var(--space-6) var(--space-5);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm)}
/* 旧ロゴと新ロゴは高さを揃える（並べたときに大きさの差が優劣に見えないように） */
.logo-compare img{width:auto;max-width:100%;height:48px;object-fit:contain}
.logo-compare figcaption{font-size:13px;color:var(--fg-muted);text-align:center}
@media(max-width:700px){.logo-compare{grid-template-columns:minmax(0,1fr)}.article-content h2{font-size:25px}.article-figure{padding:var(--space-5)}}

/* ============ 左メニュー（ローカルナビ）: 表示中のセクション内の現在地と兄弟ページ ============ */
/* ヘッダー（グローバルナビ）と同じ項目は並べない。左はセクションの中だけを示す。 */
.page-aside-title{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--fg-muted);margin:0 0 var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border)}
.page-aside ul{list-style:none;margin:0;padding:0}
.page-aside li a{padding-left:var(--space-3);border-bottom:1px solid var(--border)}
.page-aside li:last-child a{border-bottom:0}
/* 現在地は色面と左のアクセントだけで示す（「現在地」の文字ラベルは出さない） */
.page-aside a[aria-current="page"]{font-weight:700;color:var(--fg);background:var(--bg-subtle);box-shadow:inset 3px 0 0 var(--accent);text-decoration:none}

@media(max-width:940px){
 .page-aside{display:block;padding-bottom:var(--space-4)}
 .page-aside-title{margin-bottom:var(--space-3);padding-bottom:0;border-bottom:0;letter-spacing:normal}
 .page-aside ul{display:flex;flex-wrap:wrap;gap:var(--space-2)}
 .page-aside li{min-width:0;max-width:100%}
 .page-aside li a,.page-aside li:last-child a{display:flex;align-items:center;min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-btn);overflow-wrap:anywhere}
 /* スマホは全項目を同じ余白のタブに揃える。現在地の左バーは文字に近いため枠線に置き換える。 */
 .page-aside li a[aria-current="page"]{background:var(--bg-subtle);border-color:var(--rhems-blue-dark);box-shadow:none;text-decoration:none}


}
/* ヘッダーの項目が増えたため、ハンバーガーに切り替わる直前の狭い幅では字を詰めて1行を保つ */
@media(min-width:941px) and (max-width:1080px){
 .header-inner{gap:var(--space-4)}
 .nav{gap:var(--space-3)}
 .nav>a{font-size:12px;white-space:nowrap}
 .nav>.btn{font-size:12px;padding:var(--space-hm-10) var(--space-3)}
}

/* 個人情報ページ（法務文書）: 罫線は横方向のみ。見出し行と行見出しで階層を示す */
.legal-table-wrap{margin:var(--space-5) 0;overflow-x:auto}
.legal-table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.85}
.legal-table th,.legal-table td{padding:var(--space-4);border-bottom:1px solid var(--border);text-align:left;vertical-align:top;overflow-wrap:anywhere}
.legal-table thead th{border-top:1px solid var(--border);background:var(--bg-subtle);font-weight:700;white-space:nowrap}
/* 見出し行を持たない表（項目名を行見出しにした表）は先頭行の上罫線で表の開始を示す */
.legal-table tbody:first-child tr:first-child>*{border-top:1px solid var(--border)}
.legal-table tbody th{width:15em;font-weight:600}
.legal-contact{margin:var(--space-5) 0;padding:var(--space-5);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm)}
.legal-contact-title{margin:0 0 var(--space-3);font-size:15px;font-weight:700}
.legal-contact dl{display:grid;grid-template-columns:9em minmax(0,1fr);gap:var(--space-2) var(--space-4);margin:0}
.legal-contact dt{margin:0;font-size:13px;color:var(--fg-muted)}
.legal-contact dd{margin:0;font-size:15px;line-height:1.85;overflow-wrap:anywhere}
/* 制定・改訂と署名は本文と分けて右下に置く */
.signature{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--border);font-size:14px;line-height:1.9;color:var(--fg-muted);text-align:right}
/* 項目名と内容の対応（法務文書の箇条）: 罫線は横方向のみ */
.data-list{display:grid;grid-template-columns:minmax(0,15em) minmax(0,1fr);margin:var(--space-5) 0 0}
.data-list dt,.data-list dd{margin:0;padding:var(--space-4) 0;border-top:1px solid var(--border);font-size:15px;line-height:1.85;overflow-wrap:anywhere}
.data-list dt{padding-right:var(--space-5);font-weight:600}
.data-list dt:last-of-type,.data-list dd:last-of-type{border-bottom:1px solid var(--border)}
@media(max-width:700px){
 .legal-table{font-size:14px}
 .legal-table th,.legal-table td{padding:var(--space-3)}
 .legal-table tbody th{width:auto}
 .legal-contact{padding:var(--space-4)}
 .legal-contact dl{grid-template-columns:minmax(0,1fr);gap:var(--space-1)}
 .legal-contact dd+dt{margin-top:var(--space-3)}
 .data-list{grid-template-columns:minmax(0,1fr);gap:0}
 .data-list dt{padding-bottom:0;border-top:0}
 .data-list dd{padding-top:var(--space-1);border-top:0}
 .data-list dd+dt{padding-top:var(--space-4);border-top:1px solid var(--border)}
 .signature{text-align:left}
}
/* プレスリリース本文末の会社概要・お問い合わせ窓口（旧3列表をdlに変換した箇所） */
.legacy-content .press-facts-title{margin:var(--space-7) 0 var(--space-2);font-size:18px;font-weight:700;line-height:1.6}
.legacy-content .data-list.press-facts{max-width:46em;grid-template-columns:minmax(0,10em) minmax(0,1fr)}
.legacy-content .data-list.press-facts dt,.legacy-content .data-list.press-facts dd{padding:var(--space-3) 0}
@media(max-width:700px){.legacy-content .data-list.press-facts{grid-template-columns:minmax(0,1fr)}}
/* アクセス解析の同意バナー。GA4を出す設定のときだけ出る（site.js が hidden を外す）。 */
.consent-banner{position:fixed;left:50%;transform:translateX(-50%);bottom:var(--space-4);z-index:80;width:min(720px,calc(100% - 32px));padding:var(--space-4) var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 12px 32px rgba(26,26,26,.18);color:var(--fg)}
.consent-banner[hidden]{display:none}
.consent-title{margin:0 0 var(--space-1);font-size:15px;font-weight:700;line-height:1.6}
.consent-text{margin:0 0 var(--space-3);font-size:13px;line-height:1.7;color:var(--fg-muted)}
.consent-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}
.consent-actions .btn{min-height:44px}
.consent-actions a{font-size:13px;padding:4px 0;text-decoration:underline;min-height:44px;display:flex;align-items:center}
.footer-consent{min-height:44px;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}
.footer-consent:hover{text-decoration:none}
@media(max-width:700px){
 .consent-banner{width:calc(100% - 16px);bottom:8px;padding:var(--space-3) var(--space-4)}
 .consent-actions .btn{flex:1 1 40%}
 .consent-actions a{flex-basis:100%;min-height:44px;display:flex;align-items:center}
}
/* 入力エラー: 項目の下の文言と、フォーム上部のまとめ（site.js が表示を切り替える）。
   文字・枠・記号はすべて --danger（赤）。白地5.9:1 / エラー面5.2:1 でAA。 */
.form-alerts{padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5);border:2px solid var(--danger);border-radius:var(--radius-sm);background:var(--danger-tint)}
.form-alerts p{margin:0;font-size:15px;font-weight:700;line-height:1.7;color:var(--danger)}
.form-alerts ul{margin:var(--space-2) 0 0;padding-left:var(--space-5);list-style:disc}
.form-alerts li{margin-top:var(--space-1);font-size:14px;color:var(--danger)}
.form-alerts a{color:inherit;display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.form-shell .error{color:var(--danger)}
/* エラー中の入力欄は outline 2px + offset 2px が外へ出るので、文言と「!」が枠に重ならないよう下に余白を取る。 */
.form-shell .field>input+.error,.form-shell .field>select+.error{margin-top:var(--space-2)}
.form-shell .error:not(:empty){display:flex;align-items:flex-start;gap:var(--space-2)}
.form-shell .error:not(:empty):before{content:'!';flex:0 0 18px;width:18px;height:18px;margin-top:2px;border-radius:50%;background:var(--danger);color:var(--bg);font-size:12px;font-weight:700;line-height:18px;text-align:center}
.form-shell [aria-invalid="true"]{outline:2px solid var(--danger);outline-offset:2px}
.form-shell [aria-invalid="true"]:focus-visible{outline:3px solid var(--danger);outline-offset:3px}
.form-shell input[aria-invalid="true"],.form-shell textarea[aria-invalid="true"]{border-color:var(--danger)}
.form-shell .consent.has-error{outline:2px solid var(--danger);outline-offset:2px}
.field-count{margin-top:var(--space-1);text-align:right;font-variant-numeric:tabular-nums}
/* 状況の1行（件数の案内・送信失敗）も、エラーのときは赤にする。 */
.form-shell #form-status.is-error{color:var(--danger);font-weight:600}
/* 拠点: Googleマップの埋め込み（キー不要の output=embed）。幅は本文に合わせ、高さだけ固定する。 */
.office-address{font-size:16px}
.office-map{margin:var(--space-4) 0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-subtle)}
.office-map iframe{display:block;width:100%;height:clamp(240px,30vw,320px);border:0}
@media (max-width:640px){.office-map iframe{height:260px}}
/* オフィス写真: 2枚を横並び（幅が足りないときは1枚ずつ）。alt は画像検索向けに原稿側で書く。 */
.office-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-4);margin:0}
.office-photo{margin:0}
.office-photo img{display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle)}
.office-photo figcaption{margin-top:var(--space-2);font-size:14px;line-height:1.7;color:var(--fg-muted)}
