
@layer vendor, tokens, base, layout, components, content, utilities, motion;

/*
 * 新しい外観の入口（#8・#13、docs/spec/visual-design.md §2.2・§2.4）。Site.astro が import し、ビルドが @import 先とともに
 * 1 つのハッシュつきファイル（/_astro/）にまとめる。全ページの <head> はそれと fonts.css（別のハッシュつきファイル）だけを読む。
 *
 * 層の優先順位はこのファイルだけが持つ（下ほど優先）。詳細度や !important で競り合わない。
 *   vendor     第三者のプラグイン CSS（ファイル自体は変えない）。アイコンは Font Awesome を読み込まず、components/icon.css が描く
 *   tokens     見た目の値
 *   base       要素の既定
 *   layout     ページの枠（中身の幅、ヘッダー、フッター、ページの先頭へ戻るボタン、下層ページの本文の枠・ページ名の帯・パンくず・グリッド）
 *   components 繰り返し使う部品とその状態（部品ごとに 1 ファイル）
 *   content    下層ページの現行 HTML への適合（インラインの指定の正規化、現行の図、現行の見出しクラス）
 *   utilities  現行の補助クラス（mt10・taC・w40 など）
 *   motion     動き（動く前の状態と遷移だけ）
 *
 * @import はこのファイルからの相対パス（ビルドが読む）。第三者 CSS は public/ の現行ファイルをそのまま取り込む。
 * url() はルートからの絶対パスにする（public/ のファイルを指し、ビルドはそのまま残す）。
 */

/* vendor：タブ（Regular Labs Tabs）、フォーム（RSForm Pro）。
   スマホメニュー（mod_jf_mobilemenu）は Drawer.astro に置き換えたため取り込まない。flexslider.css は取り込まない */
@layer vendor{
.rl_tabs .nav-tabs:after,.rl_tabs .tab-content>.tab-pane:after,.rl_tabs-responsive:after,.rl_tabs:after{clear:both}.rl_tabs .fade{opacity:0;-webkit-transition:opacity 1ms linear;-moz-transition:opacity 1ms linear;-o-transition:opacity 1ms linear;transition:opacity 1ms linear}.rl_tabs .fade.in{opacity:1}.rl_tabs.has_effects .fade{-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.rl_tabs .collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 1ms ease;-moz-transition:height 1ms ease;-o-transition:height 1ms ease;transition:height 1ms ease}.rl_tabs .collapse.in{height:auto}.rl_tabs.has_effects .collapse{-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.rl_tabs>.nav{padding:0;margin-left:0;margin-bottom:18px;list-style:none}.rl_tabs>.nav>li>a{display:block}.rl_tabs>.nav>li>a:hover{text-decoration:none;background-color:#eee}.rl_tabs>.nav>.pull-right{float:right}.rl_tabs .nav-tabs{*zoom:1;border-bottom:1px solid #ddd}.rl_tabs .nav-tabs:after,.rl_tabs .nav-tabs:before{display:table;content:"";line-height:0}.rl_tabs .nav-tabs>li{float:left;margin-bottom:-1px}.rl_tabs .nav-tabs>li>a{margin-right:2px;padding:8px 12px;line-height:18px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.rl_tabs .nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.rl_tabs .nav-tabs>li.active>a,.rl_tabs .nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.rl_tabs .tab-content{overflow:visible}.rl_tabs .tab-content>.tab-pane{*zoom:1;display:none}.rl_tabs .tab-content>.tab-pane:after,.rl_tabs .tab-content>.tab-pane:before{display:table;content:"";line-height:0}.rl_tabs .tab-content>.active{display:block}.rl_tabs-responsive>.rl_tabs-sm{border-bottom:0}.rl_tabs-responsive>.rl_tabs-sm>li{float:none}.rl_tabs-responsive>.rl_tabs-sm>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.rl_tabs-responsive>.rl_tabs-sm>li>a:focus,.rl_tabs-responsive>.rl_tabs-sm>li>a:hover{border-color:#ddd;z-index:2}.rl_tabs-responsive>.rl_tabs-sm>li:first-child>a{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.rl_tabs-responsive>.rl_tabs-sm>li:last-child>a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}span.rl_tabs-title-inactive{display:inherit}span.rl_tabs-title-active{display:none}.rl_tabs,.rl_tabs-responsive{*zoom:1;margin-bottom:1em}.rl_tabs-responsive:after,.rl_tabs-responsive:before,.rl_tabs:after,.rl_tabs:before{display:table;content:"";line-height:0}.rl_tabs-responsive:last-child,.rl_tabs:last-child{margin-bottom:0}.rl_tabs>ul.nav-tabs>li{margin:0 0 -1px!important;padding:0!important;list-style:none!important;background:0 0!important;overflow-y:visible!important}.rl_tabs>ul.nav-tabs>li:before{content:"";margin:0;padding:0}.rl_tabs>ul.nav-tabs>li>a{display:block!important;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;color:#3071a9;text-decoration:none;line-height:inherit}.rl_tabs>ul.nav-tabs>li>a:hover{color:#1f496e;text-decoration:none}.rl_tabs>ul.nav-tabs>li.active>a:focus,.rl_tabs>ul.nav-tabs>li>a:focus{outline:0;border-color:#eab03f}.rl_tabs>ul.nav-tabs>li.active span.rl_tabs-title-inactive{display:none}.rl_tabs>ul.nav-tabs>li.active span.rl_tabs-title-active{display:inherit}.rl_tabs>.tab-content{padding:0}.rl_tabs>.tab-content>.tab-pane{padding:12px 0;overflow-x:auto;overflow-y:hidden}.rl_tabs>.tab-content>.tab-pane>:first-child{margin-top:0}.rl_tabs>.tab-content>.tab-pane>:last-child{margin-bottom:0}.rl_tabs>.tab-content>.tab-pane .rl_tabs-title{display:none}.rl_tabs .rl_tabs-scroll,.rl_tabs .rl_tabs-sm-scroll{position:relative;visibility:hidden;padding:0}.rl_tabs.outline_content>.tab-content{border:1px solid #ddd;border-top:none;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs.outline_content>.tab-content>.tab-pane{padding:12px}.rl_tabs.outline_content>ul.nav-tabs{margin-bottom:0}.rl_tabs.outline_handles ul.nav-tabs>li a,.rl_tabs.outline_handles ul.nav-tabs>li a:hover{border:1px solid #ddd}.rl_tabs.color_inactive_handles>ul.nav>li>a{background-color:#f5f5f5;margin-right:5px}.rl_tabs.color_inactive_handles>ul.nav>li>a:hover{background-color:#eee}.rl_tabs.color_inactive_handles>ul.nav>li.active>a,.rl_tabs.color_inactive_handles>ul.nav>li.active>a:hover{background-color:#fff}.rl_tabs.align_right>ul.nav-tabs>li{float:right}.rl_tabs.align_right>ul.nav-tabs>li>a{margin-left:2px;margin-right:0}.rl_tabs.align_center>ul.nav-tabs{text-align:center}.rl_tabs.align_center>ul.nav-tabs>li{float:none;display:inline-block;*display:inline;*zoom:1;margin-left:-1px;margin-right:-3px}.rl_tabs.align_justify>ul.nav-tabs{text-align:center;display:table;width:100%;margin-bottom:-1px}.rl_tabs.align_justify>ul.nav-tabs>.rl_tabs-scroll{display:table-cell}.rl_tabs.align_justify>ul.nav-tabs>li{float:none;display:table-cell}.rl_tabs.align_justify>ul.nav-tabs:after,.rl_tabs.align_justify>ul.nav-tabs:before,ul.rl_tabs-sm{display:none}.rl_tabs.align_justify>ul.nav-tabs>li:last-child>a{margin-right:0}.rl_tabs.align_justify>ul.nav-tabs>li a,.rl_tabs.align_justify>ul.nav-tabs>li a:hover{margin-bottom:-1px;border-bottom:1px solid transparent}.rl_tabs.align_justify.bottom>ul.nav-tabs{margin-bottom:0;margin-top:-1px}.rl_tabs.align_justify.bottom>ul.nav-tabs>li a,.rl_tabs.align_justify.bottom>ul.nav-tabs>li a:hover{margin-bottom:0;margin-top:-1px;border-bottom:1px solid #ddd;border-top:1px solid transparent}.rl_tabs.top>ul.nav-tabs>li>a{border-bottom-color:#ddd}.rl_tabs.top>ul.nav-tabs>li.active>a:focus,.rl_tabs.top>ul.nav-tabs>li>a:focus{border-bottom-color:transparent;-webkit-box-shadow:0 -2px 2px rgba(234,176,63,.5);-moz-box-shadow:0 -2px 2px rgba(234,176,63,.5);box-shadow:0 -2px 2px rgba(234,176,63,.5)}.rl_tabs.top>ul.nav-tabs>li.active a,.rl_tabs.top>ul.nav-tabs>li.active a:hover{border-bottom-color:transparent}.rl_tabs.top>ul.nav-tabs>li.blue>a,.rl_tabs.top>ul.nav-tabs>li.blue>a:hover{border-top:5px solid #74b4e8;padding-top:4px;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.rl_tabs.top>ul.nav-tabs>li.blue.active>a,.rl_tabs.top>ul.nav-tabs>li.blue>a:hover{border-top-color:#2384d3}.rl_tabs.top>ul.nav-tabs>li.primary>a,.rl_tabs.top>ul.nav-tabs>li.primary>a:hover{border-top:5px solid #74b4e8;padding-top:4px;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.rl_tabs.top>ul.nav-tabs>li.primary.active>a,.rl_tabs.top>ul.nav-tabs>li.primary>a:hover{border-top-color:#2384d3}.rl_tabs.top>ul.nav-tabs>li.info>a,.rl_tabs.top>ul.nav-tabs>li.info>a:hover{border-top:5px solid #47b0cf;padding-top:4px;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.rl_tabs.top>ul.nav-tabs>li.info.active>a,.rl_tabs.top>ul.nav-tabs>li.info>a:hover{border-top-color:#24748c}.rl_tabs.top>ul.nav-tabs>li.green>a,.rl_tabs.top>ul.nav-tabs>li.green>a:hover{border-top:5px solid #62bc62;padding-top:4px;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.rl_tabs.top>ul.nav-tabs>li.green.active>a,.rl_tabs.top>ul.nav-tabs>li.green>a:hover{border-top-color:#378137}.rl_tabs.top>ul.nav-tabs>li.success>a,.rl_tabs.top>ul.nav-tabs>li.success>a:hover{border-top:5px solid #62bc62;padding-top:4px;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.rl_tabs.top>ul.nav-tabs>li.success.active>a,.rl_tabs.top>ul.nav-tabs>li.success>a:hover{border-top-color:#378137}.rl_tabs.top>ul.nav-tabs>li.orange>a,.rl_tabs.top>ul.nav-tabs>li.orange>a:hover{border-top:5px solid #faa937;padding-top:4px;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.rl_tabs.top>ul.nav-tabs>li.orange.active>a,.rl_tabs.top>ul.nav-tabs>li.orange>a:hover{border-top-color:#c67605}.rl_tabs.top>ul.nav-tabs>li.warning>a,.rl_tabs.top>ul.nav-tabs>li.warning>a:hover{border-top:5px solid #faa937;padding-top:4px;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.rl_tabs.top>ul.nav-tabs>li.warning.active>a,.rl_tabs.top>ul.nav-tabs>li.warning>a:hover{border-top-color:#c67605}.rl_tabs.top>ul.nav-tabs>li.red>a,.rl_tabs.top>ul.nav-tabs>li.red>a:hover{border-top:5px solid #d3534c;padding-top:4px;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.rl_tabs.top>ul.nav-tabs>li.red.active>a,.rl_tabs.top>ul.nav-tabs>li.red>a:hover{border-top-color:#942a25}.rl_tabs.top>ul.nav-tabs>li.danger>a,.rl_tabs.top>ul.nav-tabs>li.danger>a:hover{border-top:5px solid #d3534c;padding-top:4px;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.rl_tabs.top>ul.nav-tabs>li.danger.active>a,.rl_tabs.top>ul.nav-tabs>li.danger>a:hover{border-top-color:#942a25}.rl_tabs.top>ul.nav-tabs>li.error>a,.rl_tabs.top>ul.nav-tabs>li.error>a:hover{border-top:5px solid #d3534c;padding-top:4px;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.rl_tabs.top>ul.nav-tabs>li.error.active>a,.rl_tabs.top>ul.nav-tabs>li.error>a:hover{border-top-color:#942a25}.rl_tabs.top>ul.nav-tabs>li.grey>a,.rl_tabs.top>ul.nav-tabs>li.grey>a:hover{border-top:5px solid #b3b3b3;padding-top:4px;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.rl_tabs.top>ul.nav-tabs>li.grey.active>a,.rl_tabs.top>ul.nav-tabs>li.grey>a:hover{border-top-color:grey}.rl_tabs.top>ul.nav-tabs>li.gray>a,.rl_tabs.top>ul.nav-tabs>li.gray>a:hover{border-top:5px solid #b3b3b3;padding-top:4px;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.rl_tabs.top>ul.nav-tabs>li.gray.active>a,.rl_tabs.top>ul.nav-tabs>li.gray>a:hover{border-top-color:grey}.rl_tabs.bottom>.nav-tabs{border-bottom:0;margin-bottom:18px!important;border-top:1px solid #ddd}.rl_tabs.bottom>.nav-tabs>li{margin-top:-1px!important;margin-bottom:0!important}.rl_tabs.bottom>.nav-tabs>li>a{border-top-color:#ddd;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs.bottom>.nav-tabs>li>a:hover{border-color:#ddd transparent transparent}.rl_tabs.bottom>.nav-tabs>li.active>a,.rl_tabs.bottom>.nav-tabs>li.active>a:hover{border-color:transparent #ddd #ddd}.rl_tabs.bottom>.nav-tabs>li.active>a:focus,.rl_tabs.bottom>.nav-tabs>li>a:focus{border-top-color:transparent;-webkit-box-shadow:0 2px 2px rgba(234,176,63,.5);-moz-box-shadow:0 2px 2px rgba(234,176,63,.5);box-shadow:0 2px 2px rgba(234,176,63,.5)}.rl_tabs.bottom>.nav-tabs>li.blue>a,.rl_tabs.bottom>.nav-tabs>li.blue>a:hover{border-bottom:5px solid #74b4e8;padding-bottom:4px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.rl_tabs.bottom>.nav-tabs>li.blue.active>a,.rl_tabs.bottom>.nav-tabs>li.blue>a:hover{border-bottom-color:#2384d3}.rl_tabs.bottom>.nav-tabs>li.primary>a,.rl_tabs.bottom>.nav-tabs>li.primary>a:hover{border-bottom:5px solid #74b4e8;padding-bottom:4px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.rl_tabs.bottom>.nav-tabs>li.primary.active>a,.rl_tabs.bottom>.nav-tabs>li.primary>a:hover{border-bottom-color:#2384d3}.rl_tabs.bottom>.nav-tabs>li.info>a,.rl_tabs.bottom>.nav-tabs>li.info>a:hover{border-bottom:5px solid #47b0cf;padding-bottom:4px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.rl_tabs.bottom>.nav-tabs>li.info.active>a,.rl_tabs.bottom>.nav-tabs>li.info>a:hover{border-bottom-color:#24748c}.rl_tabs.bottom>.nav-tabs>li.green>a,.rl_tabs.bottom>.nav-tabs>li.green>a:hover{border-bottom:5px solid #62bc62;padding-bottom:4px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.rl_tabs.bottom>.nav-tabs>li.green.active>a,.rl_tabs.bottom>.nav-tabs>li.green>a:hover{border-bottom-color:#378137}.rl_tabs.bottom>.nav-tabs>li.success>a,.rl_tabs.bottom>.nav-tabs>li.success>a:hover{border-bottom:5px solid #62bc62;padding-bottom:4px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.rl_tabs.bottom>.nav-tabs>li.success.active>a,.rl_tabs.bottom>.nav-tabs>li.success>a:hover{border-bottom-color:#378137}.rl_tabs.bottom>.nav-tabs>li.orange>a,.rl_tabs.bottom>.nav-tabs>li.orange>a:hover{border-bottom:5px solid #faa937;padding-bottom:4px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.rl_tabs.bottom>.nav-tabs>li.orange.active>a,.rl_tabs.bottom>.nav-tabs>li.orange>a:hover{border-bottom-color:#c67605}.rl_tabs.bottom>.nav-tabs>li.warning>a,.rl_tabs.bottom>.nav-tabs>li.warning>a:hover{border-bottom:5px solid #faa937;padding-bottom:4px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.rl_tabs.bottom>.nav-tabs>li.warning.active>a,.rl_tabs.bottom>.nav-tabs>li.warning>a:hover{border-bottom-color:#c67605}.rl_tabs.bottom>.nav-tabs>li.red>a,.rl_tabs.bottom>.nav-tabs>li.red>a:hover{border-bottom:5px solid #d3534c;padding-bottom:4px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.rl_tabs.bottom>.nav-tabs>li.red.active>a,.rl_tabs.bottom>.nav-tabs>li.red>a:hover{border-bottom-color:#942a25}.rl_tabs.bottom>.nav-tabs>li.danger>a,.rl_tabs.bottom>.nav-tabs>li.danger>a:hover{border-bottom:5px solid #d3534c;padding-bottom:4px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.rl_tabs.bottom>.nav-tabs>li.danger.active>a,.rl_tabs.bottom>.nav-tabs>li.danger>a:hover{border-bottom-color:#942a25}.rl_tabs.bottom>.nav-tabs>li.error>a,.rl_tabs.bottom>.nav-tabs>li.error>a:hover{border-bottom:5px solid #d3534c;padding-bottom:4px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.rl_tabs.bottom>.nav-tabs>li.error.active>a,.rl_tabs.bottom>.nav-tabs>li.error>a:hover{border-bottom-color:#942a25}.rl_tabs.bottom>.nav-tabs>li.grey>a,.rl_tabs.bottom>.nav-tabs>li.grey>a:hover{border-bottom:5px solid #b3b3b3;padding-bottom:4px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.rl_tabs.bottom>.nav-tabs>li.grey.active>a,.rl_tabs.bottom>.nav-tabs>li.grey>a:hover{border-bottom-color:grey}.rl_tabs.bottom>.nav-tabs>li.gray>a,.rl_tabs.bottom>.nav-tabs>li.gray>a:hover{border-bottom:5px solid #b3b3b3;padding-bottom:4px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.rl_tabs.bottom>.nav-tabs>li.gray.active>a,.rl_tabs.bottom>.nav-tabs>li.gray>a:hover{border-bottom-color:grey}.rl_tabs.bottom.outline_content>.tab-content{margin:0;border:1px solid #ddd;border-bottom:none;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.rl_tabs.left>.nav-tabs,.rl_tabs.right>.nav-tabs{border-bottom:0;margin-bottom:18px!important}.rl_tabs.left>.nav-tabs>li,.rl_tabs.right>.nav-tabs>li{float:none}.rl_tabs.left>.nav-tabs>li>a,.rl_tabs.right>.nav-tabs>li>a{min-width:74px;margin-right:0!important;margin-bottom:3px}.rl_tabs.left.outline_content>.tab-content,.rl_tabs.right.outline_content>.tab-content{border:1px solid #ddd}.rl_tabs.left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.rl_tabs.left>.nav-tabs>li{margin-right:-1px!important;margin-bottom:0!important}.rl_tabs.left>.nav-tabs>li>a{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.rl_tabs.left>.nav-tabs>li>a:hover{border-color:transparent #ddd transparent transparent}.rl_tabs.left>.nav-tabs>li.active>a,.rl_tabs.left>.nav-tabs>li.active>a:hover{border-color:#ddd transparent #ddd #ddd}.rl_tabs.left>.nav-tabs>li.active>a:focus,.rl_tabs.left>.nav-tabs>li>a:focus{border-right-color:transparent;-webkit-box-shadow:-2px 0 2px rgba(234,176,63,.5);-moz-box-shadow:-2px 0 2px rgba(234,176,63,.5);box-shadow:-2px 0 2px rgba(234,176,63,.5)}.rl_tabs.left>.nav-tabs>li.blue>a,.rl_tabs.left>.nav-tabs>li.blue>a:hover{border-left:5px solid #74b4e8;padding-left:7px;-webkit-border-radius:5px 0 0 5px;-moz-border-radius:5px 0 0 5px;border-radius:5px 0 0 5px}.rl_tabs.left>.nav-tabs>li.blue.active>a,.rl_tabs.left>.nav-tabs>li.blue>a:hover{border-left-color:#2384d3}.rl_tabs.left>.nav-tabs>li.primary>a,.rl_tabs.left>.nav-tabs>li.primary>a:hover{border-left:5px solid #74b4e8;padding-left:7px;-webkit-border-radius:5px 0 0 5px;-moz-border-radius:5px 0 0 5px;border-radius:5px 0 0 5px}.rl_tabs.left>.nav-tabs>li.primary.active>a,.rl_tabs.left>.nav-tabs>li.primary>a:hover{border-left-color:#2384d3}.rl_tabs.left>.nav-tabs>li.info>a,.rl_tabs.left>.nav-tabs>li.info>a:hover{border-left:5px solid #47b0cf;padding-left:7px;-webkit-border-radius:5px 0 0 5px;-moz-border-radius:5px 0 0 5px;border-radius:5px 0 0 5px}.rl_tabs.left>.nav-tabs>li.info.active>a,.rl_tabs.left>.nav-tabs>li.info>a:hover{border-left-color:#24748c}.rl_tabs.left>.nav-tabs>li.green>a,.rl_tabs.left>.nav-tabs>li.green>a:hover{border-left:5px solid #62bc62;padding-left:7px;-webkit-border-radius:5px 0 0 5px;-moz-border-radius:5px 0 0 5px;border-radius:5px 0 0 5px}.rl_tabs.left>.nav-tabs>li.green.active>a,.rl_tabs.left>.nav-tabs>li.green>a:hover{border-left-color:#378137}.rl_tabs.left>.nav-tabs>li.success>a,.rl_tabs.left>.nav-tabs>li.success>a:hover{border-left:5px solid #62bc62;padding-left:7px;-webkit-border-radius:5px 0 0 5px;-moz-border-radius:5px 0 0 5px;border-radius:5px 0 0 5px}.rl_tabs.left>.nav-tabs>li.success.active>a,.rl_tabs.left>.nav-tabs>li.success>a:hover{border-left-color:#378137}.rl_tabs.left>.nav-tabs>li.orange>a,.rl_tabs.left>.nav-tabs>li.orange>a:hover{border-left:5px solid #faa937;padding-left:7px;-webkit-border-radius:5px 0 0 5px;-moz-border-radius:5px 0 0 5px;border-radius:5px 0 0 5px}.rl_tabs.left>.nav-tabs>li.orange.active>a,.rl_tabs.left>.nav-tabs>li.orange>a:hover{border-left-color:#c67605}.rl_tabs.left>.nav-tabs>li.warning>a,.rl_tabs.left>.nav-tabs>li.warning>a:hover{border-left:5px solid #faa937;padding-left:7px;-webkit-border-radius:5px 0 0 5px;-moz-border-radius:5px 0 0 5px;border-radius:5px 0 0 5px}.rl_tabs.left>.nav-tabs>li.warning.active>a,.rl_tabs.left>.nav-tabs>li.warning>a:hover{border-left-color:#c67605}.rl_tabs.left>.nav-tabs>li.red>a,.rl_tabs.left>.nav-tabs>li.red>a:hover{border-left:5px solid #d3534c;padding-left:7px;-webkit-border-radius:5px 0 0 5px;-moz-border-radius:5px 0 0 5px;border-radius:5px 0 0 5px}.rl_tabs.left>.nav-tabs>li.red.active>a,.rl_tabs.left>.nav-tabs>li.red>a:hover{border-left-color:#942a25}.rl_tabs.left>.nav-tabs>li.danger>a,.rl_tabs.left>.nav-tabs>li.danger>a:hover{border-left:5px solid #d3534c;padding-left:7px;-webkit-border-radius:5px 0 0 5px;-moz-border-radius:5px 0 0 5px;border-radius:5px 0 0 5px}.rl_tabs.left>.nav-tabs>li.danger.active>a,.rl_tabs.left>.nav-tabs>li.danger>a:hover{border-left-color:#942a25}.rl_tabs.left>.nav-tabs>li.error>a,.rl_tabs.left>.nav-tabs>li.error>a:hover{border-left:5px solid #d3534c;padding-left:7px;-webkit-border-radius:5px 0 0 5px;-moz-border-radius:5px 0 0 5px;border-radius:5px 0 0 5px}.rl_tabs.left>.nav-tabs>li.error.active>a,.rl_tabs.left>.nav-tabs>li.error>a:hover{border-left-color:#942a25}.rl_tabs.left>.nav-tabs>li.grey>a,.rl_tabs.left>.nav-tabs>li.grey>a:hover{border-left:5px solid #b3b3b3;padding-left:7px;-webkit-border-radius:5px 0 0 5px;-moz-border-radius:5px 0 0 5px;border-radius:5px 0 0 5px}.rl_tabs.left>.nav-tabs>li.grey.active>a,.rl_tabs.left>.nav-tabs>li.grey>a:hover{border-left-color:grey}.rl_tabs.left>.nav-tabs>li.gray>a,.rl_tabs.left>.nav-tabs>li.gray>a:hover{border-left:5px solid #b3b3b3;padding-left:7px;-webkit-border-radius:5px 0 0 5px;-moz-border-radius:5px 0 0 5px;border-radius:5px 0 0 5px}.rl_tabs.left>.nav-tabs>li.gray.active>a,.rl_tabs.left>.nav-tabs>li.gray>a:hover{border-left-color:grey}.rl_tabs.left.outline_content>.tab-content{-webkit-border-radius:0 4px 4px 4px;-moz-border-radius:0 4px 4px;border-radius:0 4px 4px}.rl_tabs.right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.rl_tabs.right>.nav-tabs>li{margin-left:-1px!important;margin-bottom:0!important}.rl_tabs.right>.nav-tabs>li>a{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.rl_tabs.right>.nav-tabs>li>a:hover{border-color:transparent transparent transparent #ddd}.rl_tabs.right>.nav-tabs>li.active>a,.rl_tabs.right>.nav-tabs>li.active>a:hover{border-color:#ddd #ddd #ddd transparent}.rl_tabs.right>.nav-tabs>li.active>a:focus,.rl_tabs.right>.nav-tabs>li>a:focus{border-left-color:transparent;-webkit-box-shadow:2px 0 2px rgba(234,176,63,.5);-moz-box-shadow:2px 0 2px rgba(234,176,63,.5);box-shadow:2px 0 2px rgba(234,176,63,.5)}.rl_tabs.right>.nav-tabs>li.blue>a,.rl_tabs.right>.nav-tabs>li.blue>a:hover{border-right:5px solid #74b4e8;padding-right:7px;-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.rl_tabs.right>.nav-tabs>li.blue.active>a,.rl_tabs.right>.nav-tabs>li.blue>a:hover{border-right-color:#2384d3}.rl_tabs.right>.nav-tabs>li.primary>a,.rl_tabs.right>.nav-tabs>li.primary>a:hover{border-right:5px solid #74b4e8;padding-right:7px;-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.rl_tabs.right>.nav-tabs>li.primary.active>a,.rl_tabs.right>.nav-tabs>li.primary>a:hover{border-right-color:#2384d3}.rl_tabs.right>.nav-tabs>li.info>a,.rl_tabs.right>.nav-tabs>li.info>a:hover{border-right:5px solid #47b0cf;padding-right:7px;-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.rl_tabs.right>.nav-tabs>li.info.active>a,.rl_tabs.right>.nav-tabs>li.info>a:hover{border-right-color:#24748c}.rl_tabs.right>.nav-tabs>li.green>a,.rl_tabs.right>.nav-tabs>li.green>a:hover{border-right:5px solid #62bc62;padding-right:7px;-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.rl_tabs.right>.nav-tabs>li.green.active>a,.rl_tabs.right>.nav-tabs>li.green>a:hover{border-right-color:#378137}.rl_tabs.right>.nav-tabs>li.success>a,.rl_tabs.right>.nav-tabs>li.success>a:hover{border-right:5px solid #62bc62;padding-right:7px;-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.rl_tabs.right>.nav-tabs>li.success.active>a,.rl_tabs.right>.nav-tabs>li.success>a:hover{border-right-color:#378137}.rl_tabs.right>.nav-tabs>li.orange>a,.rl_tabs.right>.nav-tabs>li.orange>a:hover{border-right:5px solid #faa937;padding-right:7px;-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.rl_tabs.right>.nav-tabs>li.orange.active>a,.rl_tabs.right>.nav-tabs>li.orange>a:hover{border-right-color:#c67605}.rl_tabs.right>.nav-tabs>li.warning>a,.rl_tabs.right>.nav-tabs>li.warning>a:hover{border-right:5px solid #faa937;padding-right:7px;-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.rl_tabs.right>.nav-tabs>li.warning.active>a,.rl_tabs.right>.nav-tabs>li.warning>a:hover{border-right-color:#c67605}.rl_tabs.right>.nav-tabs>li.red>a,.rl_tabs.right>.nav-tabs>li.red>a:hover{border-right:5px solid #d3534c;padding-right:7px;-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.rl_tabs.right>.nav-tabs>li.red.active>a,.rl_tabs.right>.nav-tabs>li.red>a:hover{border-right-color:#942a25}.rl_tabs.right>.nav-tabs>li.danger>a,.rl_tabs.right>.nav-tabs>li.danger>a:hover{border-right:5px solid #d3534c;padding-right:7px;-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.rl_tabs.right>.nav-tabs>li.danger.active>a,.rl_tabs.right>.nav-tabs>li.danger>a:hover{border-right-color:#942a25}.rl_tabs.right>.nav-tabs>li.error>a,.rl_tabs.right>.nav-tabs>li.error>a:hover{border-right:5px solid #d3534c;padding-right:7px;-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.rl_tabs.right>.nav-tabs>li.error.active>a,.rl_tabs.right>.nav-tabs>li.error>a:hover{border-right-color:#942a25}.rl_tabs.right>.nav-tabs>li.grey>a,.rl_tabs.right>.nav-tabs>li.grey>a:hover{border-right:5px solid #b3b3b3;padding-right:7px;-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.rl_tabs.right>.nav-tabs>li.grey.active>a,.rl_tabs.right>.nav-tabs>li.grey>a:hover{border-right-color:grey}.rl_tabs.right>.nav-tabs>li.gray>a,.rl_tabs.right>.nav-tabs>li.gray>a:hover{border-right:5px solid #b3b3b3;padding-right:7px;-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.rl_tabs.right>.nav-tabs>li.gray.active>a,.rl_tabs.right>.nav-tabs>li.gray>a:hover{border-right-color:grey}.rl_tabs.right.outline_content>.tab-content{-webkit-border-radius:4px 0 4px 4px;-moz-border-radius:4px 0 4px 4px;border-radius:4px 0 4px 4px}.rl_tabs>ul.nav-tabs>li.blue.solid>a,.rl_tabs>ul.nav-tabs>li.blue.solid>a:hover{background-color:#74b4e8;border-color:#74b4e8;color:#fff}.rl_tabs>ul.nav-tabs>li.blue.solid.active>a,.rl_tabs>ul.nav-tabs>li.blue.solid>a:hover{background-color:#2384d3;border-color:#2384d3}.rl_tabs.outline_content>.tab-content>.tab-pane.color_content.blue{margin:0 -1px -1px;border:2px solid #2384d3;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs>.tab-content>.tab-pane.solid.color_content.blue{background-color:#f7fbfe}.rl_tabs>ul.nav-tabs>li.primary.solid>a,.rl_tabs>ul.nav-tabs>li.primary.solid>a:hover{background-color:#74b4e8;border-color:#74b4e8;color:#fff}.rl_tabs>ul.nav-tabs>li.primary.solid.active>a,.rl_tabs>ul.nav-tabs>li.primary.solid>a:hover{background-color:#2384d3;border-color:#2384d3}.rl_tabs.outline_content>.tab-content>.tab-pane.color_content.primary{margin:0 -1px -1px;border:2px solid #2384d3;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs>.tab-content>.tab-pane.solid.color_content.primary{background-color:#f7fbfe}.rl_tabs>ul.nav-tabs>li.info.solid>a,.rl_tabs>ul.nav-tabs>li.info.solid>a:hover{background-color:#47b0cf;border-color:#47b0cf;color:#fff}.rl_tabs>ul.nav-tabs>li.info.solid.active>a,.rl_tabs>ul.nav-tabs>li.info.solid>a:hover{background-color:#24748c;border-color:#24748c}.rl_tabs.outline_content>.tab-content>.tab-pane.color_content.info{margin:0 -1px -1px;border:2px solid #24748c;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs>.tab-content>.tab-pane.solid.color_content.info{background-color:#c0e4ef}.rl_tabs>ul.nav-tabs>li.green.solid>a,.rl_tabs>ul.nav-tabs>li.green.solid>a:hover{background-color:#62bc62;border-color:#62bc62;color:#fff}.rl_tabs>ul.nav-tabs>li.green.solid.active>a,.rl_tabs>ul.nav-tabs>li.green.solid>a:hover{background-color:#378137;border-color:#378137}.rl_tabs.outline_content>.tab-content>.tab-pane.color_content.green{margin:0 -1px -1px;border:2px solid #378137;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs>.tab-content>.tab-pane.solid.color_content.green{background-color:#cdeacd}.rl_tabs>ul.nav-tabs>li.success.solid>a,.rl_tabs>ul.nav-tabs>li.success.solid>a:hover{background-color:#62bc62;border-color:#62bc62;color:#fff}.rl_tabs>ul.nav-tabs>li.success.solid.active>a,.rl_tabs>ul.nav-tabs>li.success.solid>a:hover{background-color:#378137;border-color:#378137}.rl_tabs.outline_content>.tab-content>.tab-pane.color_content.success{margin:0 -1px -1px;border:2px solid #378137;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs>.tab-content>.tab-pane.solid.color_content.success{background-color:#cdeacd}.rl_tabs>ul.nav-tabs>li.orange.solid>a,.rl_tabs>ul.nav-tabs>li.orange.solid>a:hover{background-color:#faa937;border-color:#faa937;color:#fff}.rl_tabs>ul.nav-tabs>li.orange.solid.active>a,.rl_tabs>ul.nav-tabs>li.orange.solid>a:hover{background-color:#c67605;border-color:#c67605}.rl_tabs.outline_content>.tab-content>.tab-pane.color_content.orange{margin:0 -1px -1px;border:2px solid #c67605;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs>.tab-content>.tab-pane.solid.color_content.orange{background-color:#fee9cc}.rl_tabs>ul.nav-tabs>li.warning.solid>a,.rl_tabs>ul.nav-tabs>li.warning.solid>a:hover{background-color:#faa937;border-color:#faa937;color:#fff}.rl_tabs>ul.nav-tabs>li.warning.solid.active>a,.rl_tabs>ul.nav-tabs>li.warning.solid>a:hover{background-color:#c67605;border-color:#c67605}.rl_tabs.outline_content>.tab-content>.tab-pane.color_content.warning{margin:0 -1px -1px;border:2px solid #c67605;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs>.tab-content>.tab-pane.solid.color_content.warning{background-color:#fee9cc}.rl_tabs>ul.nav-tabs>li.red.solid>a,.rl_tabs>ul.nav-tabs>li.red.solid>a:hover{background-color:#d3534c;border-color:#d3534c;color:#fff}.rl_tabs>ul.nav-tabs>li.red.solid.active>a,.rl_tabs>ul.nav-tabs>li.red.solid>a:hover{background-color:#942a25;border-color:#942a25}.rl_tabs.outline_content>.tab-content>.tab-pane.color_content.red{margin:0 -1px -1px;border:2px solid #942a25;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs>.tab-content>.tab-pane.solid.color_content.red{background-color:#f1c9c7}.rl_tabs>ul.nav-tabs>li.danger.solid>a,.rl_tabs>ul.nav-tabs>li.danger.solid>a:hover{background-color:#d3534c;border-color:#d3534c;color:#fff}.rl_tabs>ul.nav-tabs>li.danger.solid.active>a,.rl_tabs>ul.nav-tabs>li.danger.solid>a:hover{background-color:#942a25;border-color:#942a25}.rl_tabs.outline_content>.tab-content>.tab-pane.color_content.danger{margin:0 -1px -1px;border:2px solid #942a25;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs>.tab-content>.tab-pane.solid.color_content.danger{background-color:#f1c9c7}.rl_tabs>ul.nav-tabs>li.error.solid>a,.rl_tabs>ul.nav-tabs>li.error.solid>a:hover{background-color:#d3534c;border-color:#d3534c;color:#fff}.rl_tabs>ul.nav-tabs>li.error.solid.active>a,.rl_tabs>ul.nav-tabs>li.error.solid>a:hover{background-color:#942a25;border-color:#942a25}.rl_tabs.outline_content>.tab-content>.tab-pane.color_content.error{margin:0 -1px -1px;border:2px solid #942a25;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs>.tab-content>.tab-pane.solid.color_content.error{background-color:#f1c9c7}.rl_tabs>ul.nav-tabs>li.grey.solid>a,.rl_tabs>ul.nav-tabs>li.grey.solid>a:hover{background-color:#b3b3b3;border-color:#b3b3b3;color:#fff}.rl_tabs>ul.nav-tabs>li.grey.solid.active>a,.rl_tabs>ul.nav-tabs>li.grey.solid>a:hover{background-color:grey;border-color:grey}.rl_tabs.outline_content>.tab-content>.tab-pane.color_content.grey{margin:0 -1px -1px;border:2px solid grey;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs>.tab-content>.tab-pane.solid.color_content.grey{background-color:#fff}.rl_tabs>ul.nav-tabs>li.gray.solid>a,.rl_tabs>ul.nav-tabs>li.gray.solid>a:hover{background-color:#b3b3b3;border-color:#b3b3b3;color:#fff}.rl_tabs>ul.nav-tabs>li.gray.solid.active>a,.rl_tabs>ul.nav-tabs>li.gray.solid>a:hover{background-color:grey;border-color:grey}.rl_tabs.outline_content>.tab-content>.tab-pane.color_content.gray{margin:0 -1px -1px;border:2px solid grey;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.rl_tabs>.tab-content>.tab-pane.solid.color_content.gray{background-color:#fff}@media (max-width:767px){.rl_tabs-responsive>ul.rl_tabs-sm{display:block}.rl_tabs-responsive>.rl_tabs{*zoom:1}.rl_tabs-responsive>.rl_tabs:after,.rl_tabs-responsive>.rl_tabs:before{display:table;content:"";line-height:0}.rl_tabs-responsive>.rl_tabs:after{clear:both}.rl_tabs-responsive>.rl_tabs>ul.nav-tabs{display:none}.rl_tabs-responsive>.rl_tabs>.tab-content>.tab-pane{display:block;visibility:visible}.rl_tabs-responsive>.rl_tabs>.tab-content>.tab-pane .rl_tabs-title{display:block}.rl_tabs-responsive>.rl_tabs .fade{opacity:1}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content{border:none}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content>.tab-pane{border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;margin-bottom:1em;padding:12px}.rl_tabs-responsive>ul.rl_tabs-sm>li.blue>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.blue>a:hover{border:2px solid #74b4e8;border-bottom-width:3px}.rl_tabs-responsive>ul.rl_tabs-sm>li.blue:last-child>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.blue>a:hover{border-bottom-width:2px}.rl_tabs-responsive>ul.rl_tabs-sm>li.blue.solid>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.blue.solid>a:hover{background-color:#74b4e8;border-color:#74b4e8;color:#fff}.rl_tabs-responsive>ul.rl_tabs-sm>li.blue.solid.active>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.blue.solid>a:hover{background-color:#2384d3;border-color:#2384d3}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content>.tab-pane.blue{border:2px solid #74b4e8}.rl_tabs-responsive>ul.rl_tabs-sm>li.primary>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.primary>a:hover{border:2px solid #74b4e8;border-bottom-width:3px}.rl_tabs-responsive>ul.rl_tabs-sm>li.primary:last-child>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.primary>a:hover{border-bottom-width:2px}.rl_tabs-responsive>ul.rl_tabs-sm>li.primary.solid>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.primary.solid>a:hover{background-color:#74b4e8;border-color:#74b4e8;color:#fff}.rl_tabs-responsive>ul.rl_tabs-sm>li.primary.solid.active>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.primary.solid>a:hover{background-color:#2384d3;border-color:#2384d3}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content>.tab-pane.primary{border:2px solid #74b4e8}.rl_tabs-responsive>ul.rl_tabs-sm>li.info>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.info>a:hover{border:2px solid #47b0cf;border-bottom-width:3px}.rl_tabs-responsive>ul.rl_tabs-sm>li.info:last-child>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.info>a:hover{border-bottom-width:2px}.rl_tabs-responsive>ul.rl_tabs-sm>li.info.solid>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.info.solid>a:hover{background-color:#47b0cf;border-color:#47b0cf;color:#fff}.rl_tabs-responsive>ul.rl_tabs-sm>li.info.solid.active>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.info.solid>a:hover{background-color:#24748c;border-color:#24748c}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content>.tab-pane.info{border:2px solid #47b0cf}.rl_tabs-responsive>ul.rl_tabs-sm>li.green>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.green>a:hover{border:2px solid #62bc62;border-bottom-width:3px}.rl_tabs-responsive>ul.rl_tabs-sm>li.green:last-child>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.green>a:hover{border-bottom-width:2px}.rl_tabs-responsive>ul.rl_tabs-sm>li.green.solid>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.green.solid>a:hover{background-color:#62bc62;border-color:#62bc62;color:#fff}.rl_tabs-responsive>ul.rl_tabs-sm>li.green.solid.active>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.green.solid>a:hover{background-color:#378137;border-color:#378137}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content>.tab-pane.green{border:2px solid #62bc62}.rl_tabs-responsive>ul.rl_tabs-sm>li.success>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.success>a:hover{border:2px solid #62bc62;border-bottom-width:3px}.rl_tabs-responsive>ul.rl_tabs-sm>li.success:last-child>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.success>a:hover{border-bottom-width:2px}.rl_tabs-responsive>ul.rl_tabs-sm>li.success.solid>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.success.solid>a:hover{background-color:#62bc62;border-color:#62bc62;color:#fff}.rl_tabs-responsive>ul.rl_tabs-sm>li.success.solid.active>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.success.solid>a:hover{background-color:#378137;border-color:#378137}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content>.tab-pane.success{border:2px solid #62bc62}.rl_tabs-responsive>ul.rl_tabs-sm>li.orange>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.orange>a:hover{border:2px solid #faa937;border-bottom-width:3px}.rl_tabs-responsive>ul.rl_tabs-sm>li.orange:last-child>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.orange>a:hover{border-bottom-width:2px}.rl_tabs-responsive>ul.rl_tabs-sm>li.orange.solid>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.orange.solid>a:hover{background-color:#faa937;border-color:#faa937;color:#fff}.rl_tabs-responsive>ul.rl_tabs-sm>li.orange.solid.active>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.orange.solid>a:hover{background-color:#c67605;border-color:#c67605}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content>.tab-pane.orange{border:2px solid #faa937}.rl_tabs-responsive>ul.rl_tabs-sm>li.warning>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.warning>a:hover{border:2px solid #faa937;border-bottom-width:3px}.rl_tabs-responsive>ul.rl_tabs-sm>li.warning:last-child>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.warning>a:hover{border-bottom-width:2px}.rl_tabs-responsive>ul.rl_tabs-sm>li.warning.solid>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.warning.solid>a:hover{background-color:#faa937;border-color:#faa937;color:#fff}.rl_tabs-responsive>ul.rl_tabs-sm>li.warning.solid.active>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.warning.solid>a:hover{background-color:#c67605;border-color:#c67605}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content>.tab-pane.warning{border:2px solid #faa937}.rl_tabs-responsive>ul.rl_tabs-sm>li.red>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.red>a:hover{border:2px solid #d3534c;border-bottom-width:3px}.rl_tabs-responsive>ul.rl_tabs-sm>li.red:last-child>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.red>a:hover{border-bottom-width:2px}.rl_tabs-responsive>ul.rl_tabs-sm>li.red.solid>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.red.solid>a:hover{background-color:#d3534c;border-color:#d3534c;color:#fff}.rl_tabs-responsive>ul.rl_tabs-sm>li.red.solid.active>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.red.solid>a:hover{background-color:#942a25;border-color:#942a25}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content>.tab-pane.red{border:2px solid #d3534c}.rl_tabs-responsive>ul.rl_tabs-sm>li.danger>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.danger>a:hover{border:2px solid #d3534c;border-bottom-width:3px}.rl_tabs-responsive>ul.rl_tabs-sm>li.danger:last-child>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.danger>a:hover{border-bottom-width:2px}.rl_tabs-responsive>ul.rl_tabs-sm>li.danger.solid>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.danger.solid>a:hover{background-color:#d3534c;border-color:#d3534c;color:#fff}.rl_tabs-responsive>ul.rl_tabs-sm>li.danger.solid.active>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.danger.solid>a:hover{background-color:#942a25;border-color:#942a25}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content>.tab-pane.danger{border:2px solid #d3534c}.rl_tabs-responsive>ul.rl_tabs-sm>li.error>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.error>a:hover{border:2px solid #d3534c;border-bottom-width:3px}.rl_tabs-responsive>ul.rl_tabs-sm>li.error:last-child>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.error>a:hover{border-bottom-width:2px}.rl_tabs-responsive>ul.rl_tabs-sm>li.error.solid>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.error.solid>a:hover{background-color:#d3534c;border-color:#d3534c;color:#fff}.rl_tabs-responsive>ul.rl_tabs-sm>li.error.solid.active>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.error.solid>a:hover{background-color:#942a25;border-color:#942a25}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content>.tab-pane.error{border:2px solid #d3534c}.rl_tabs-responsive>ul.rl_tabs-sm>li.grey>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.grey>a:hover{border:2px solid #b3b3b3;border-bottom-width:3px}.rl_tabs-responsive>ul.rl_tabs-sm>li.grey:last-child>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.grey>a:hover{border-bottom-width:2px}.rl_tabs-responsive>ul.rl_tabs-sm>li.grey.solid>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.grey.solid>a:hover{background-color:#b3b3b3;border-color:#b3b3b3;color:#fff}.rl_tabs-responsive>ul.rl_tabs-sm>li.grey.solid.active>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.grey.solid>a:hover{background-color:grey;border-color:grey}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content>.tab-pane.grey{border:2px solid #b3b3b3}.rl_tabs-responsive>ul.rl_tabs-sm>li.gray>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.gray>a:hover{border:2px solid #b3b3b3;border-bottom-width:3px}.rl_tabs-responsive>ul.rl_tabs-sm>li.gray:last-child>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.gray>a:hover{border-bottom-width:2px}.rl_tabs-responsive>ul.rl_tabs-sm>li.gray.solid>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.gray.solid>a:hover{background-color:#b3b3b3;border-color:#b3b3b3;color:#fff}.rl_tabs-responsive>ul.rl_tabs-sm>li.gray.solid.active>a,.rl_tabs-responsive>ul.rl_tabs-sm>li.gray.solid>a:hover{background-color:grey;border-color:grey}.rl_tabs-responsive>.rl_tabs.outline_content>.tab-content>.tab-pane.gray{border:2px solid #b3b3b3}}@media print{.rl_tabs-sm,.rl_tabs>.nav-tabs{display:none!important}.rl_tabs>.tab-content,.rl_tabs>.tab-content>.rl_tabs-pane{display:block!important;opacity:1!important}.rl_tabs-title{display:block!important}}}
@layer vendor{

.formHidden {
	position: absolute;
	left: -20000px;
	top: -20000px;
	opacity: 0;
	visibility: hidden;
}

.formRed
{
	color: red;
	font-weight: bold;
}

.formError {
	color: #CF4D4D;
	font-weight:bold;
	font-size:10px;
}

.formNoError {
	display:none;
}

strong.formRequired {
	font-weight: bold;
	font-style: normal;
	margin-left: 3px;
}

div.formBody {
	display: block;
	float: left;
}

div.formDescription {
	margin-left: 3px;
	padding-left: 3px;
	font-size: 11px;
	font-weight: normal;
}

div.calheader{
	text-align:center !important;
}

.rsformProgress {
	text-align: center;
	font-size: 14px;
}

.rsformProgressContainer {
	width: 100%;
	height: 4px;
	border: solid 1px #c7c7c7;
	overflow: hidden;
	margin: 0 0 10px !important;
	background: #fff;
}

.rsformProgressBar {
	height: 4px;
	background: green;
	margin: 0px !important;
}

.rsformVerticalClear {
	overflow: hidden;
	display: block;
}

p.rsformVerticalClear {
	margin: 0;
}

.recaptcha_input_area_text {
	float: none !important;
}

.rsformMaps img {
	max-width: none !important;
}

.rsform-map-geolocation {
	list-style: none outside none;
    margin: 0;
    width: 455px;
	background: none repeat scroll 0 0 #F5F5F5;
	border: 1px solid #E8E7E7;
    height: auto;
	position: absolute;
	z-index: 999999;
	border-radius: 5px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
}

.rsform-map-geolocation li a {
	padding: 4px;
	text-decoration: none;
	display: block;
	line-height: 20px;
}

.rsform-map-geolocation li a:hover{
	text-decoration: none;
	background: #fff;
	border-radius: 5px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
}

.rsfp-image-container {
	margin-top: 4px;
}

.rsfp-image-polaroid {
	padding: 4px;
	background-color: #fff;
	border: 1px solid rgba(0,0,0,0.2);
	box-shadow: 0 1px 3px rgba(0,0,0,0.1);
	width: 200px;
	border-radius: 5px;
	cursor: pointer;
	transition: 0.3s;
}

.rsfp-image-polaroid:hover {
	opacity: 0.7;
}

.rsfp-modal {
	display: none;
	position: fixed;
	z-index: 9999;
	padding-top: 100px;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: auto;
	background-color: rgb(0,0,0);
	background-color: rgba(0,0,0,0.9);
}

.rsfp-modal-close-button {
	position: absolute;
	top: 15px;
	right: 35px;
	color: #f1f1f1;
	font-size: 40px;
	font-weight: bold;
	transition: 0.3s;
}

.rsfp-modal-close-button:hover,
.rsfp-modal-close-button:focus {
	color: #bbb;
	text-decoration: none;
	cursor: pointer;
}

.rsfp-modal-image {
	margin: auto;
	display: block;
	width: 80%;
	max-width: 700px;
}

.rsfp-modal-caption {
	margin: auto;
	display: block;
	width: 80%;
	max-width: 700px;
	text-align: center;
	color: #ccc;
	padding: 10px 0;
	height: 150px;
}

.rsfp-modal-image, .rsfp-modal-caption {
	animation-name: rsfp-modal-zoom;
	animation-duration: 0.6s;
}

@keyframes rsfp-modal-zoom {
	from {transform:scale(0)}
	to {transform:scale(1)}
}

@media only screen and (max-width: 700px){
	.rsfp-modal-image {
		width: 100%;
	}
}

/* progress bar */
.rsfp-progress {
  height: 20px;
  margin-bottom: 20px;
  overflow: hidden;
  background-color: #f7f7f7;
  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
  background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
  background-repeat: repeat-x;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

.rsfp-progress .rsfp-bar {
  float: left;
  width: 0;
  height: 100%;
  font-size: 12px;
  color: #ffffff;
  text-align: center;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #0e90d2;
  background-image: -moz-linear-gradient(top, #149bdf, #0480be);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
  background-image: -o-linear-gradient(top, #149bdf, #0480be);
  background-image: linear-gradient(to bottom, #149bdf, #0480be);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
     -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-transition: width 0.6s ease;
     -moz-transition: width 0.6s ease;
       -o-transition: width 0.6s ease;
          transition: width 0.6s ease;
}

.rsfp-progress .rsfp-bar-danger {
  background-color: #dd514c;
  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
  background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);
}

.rsfp-progress .rsfp-bar-success {
  background-color: #5eb95e;
  background-image: -moz-linear-gradient(top, #62c462, #57a957);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
  background-image: -webkit-linear-gradient(top, #62c462, #57a957);
  background-image: -o-linear-gradient(top, #62c462, #57a957);
  background-image: linear-gradient(to bottom, #62c462, #57a957);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);
}

.rsfp-progress .rsfp-bar-info {
  background-color: #4bb1cf;
  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
  background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);
}

.rsfp-progress .rsfp-bar-warning {
  background-color: #faa732;
  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
  background-image: -o-linear-gradient(top, #fbb450, #f89406);
  background-image: linear-gradient(to bottom, #fbb450, #f89406);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
}

@media (min-width: 960px) {
    .formContainer > .uk-grid > .uk-width-1-12 { width: 8.333%; }
    .formContainer > .uk-grid > .uk-width-2-12 { width: 16.666%; }
    .formContainer > .uk-grid > .uk-width-3-12 { width: 25%; }
    .formContainer > .uk-grid > .uk-width-4-12 { width: 33.333%; }
    .formContainer > .uk-grid > .uk-width-5-12 { width: 41.666%; }
    .formContainer > .uk-grid > .uk-width-6-12 { width: 50%; }
    .formContainer > .uk-grid > .uk-width-7-12 { width: 58.333%; }
    .formContainer > .uk-grid > .uk-width-8-12 { width: 66.666%; }
    .formContainer > .uk-grid > .uk-width-9-12 { width: 75%; }
    .formContainer > .uk-grid > .uk-width-10-12 { width: 83.333%; }
    .formContainer > .uk-grid > .uk-width-11-12 { width: 91.666%; }
    .formContainer > .uk-grid > .uk-width-12-12 { width: 100%; }
}}

/* 自前の層：各ファイルが自分の層（@layer <名前> { }）の中に書く */

/*
 * tokens 層：見た目の値（色・書体・文字サイズ・余白・角丸・時間・幅）。値の持ち主はこのファイルだけ（visual-design.md §2・§3）。
 * ほかの層はここで定義した変数だけを使う（0 と 1px を除く。§4）。
 * #13：見本 第 7 版（docs/design/13-style-draft-v7/v7.css）の値。#8 の変数は名前を変えず、下層ページの本文のために残す
 * （第 1 段階では色と書体だけを新しくし、大きさ・余白・角丸は #8 のまま。visual-design.md §3）。
 */
@layer tokens {
  :root {
    /* ---- 色 ---------------------------------------------------------------------------------------------- */
    --color-bg: #ffffff;
    --color-surface: #f4f6f7;         /* 面 */
    --color-fg: #152632;              /* 文字（純黒より少し青みのある墨） */
    --color-muted: #5a6b77;           /* 補助の文字 */
    --color-faint: #5f6d77;           /* 薄い文字（欧文の小さな文字・日付） */
    --color-border: #dfe5e8;
    --color-accent: #00707f;          /* リンク・選択中・フォーカス（ロゴの青緑と同じ色相で、白地の文字に使える濃さ） */
    --color-accent-fg: #ffffff;
    --color-focus: #00707f;
    --color-danger: #b42318;
    --color-dark: #24323d;            /* 採用の面 */
    --color-dark-fg: #ffffff;
    --color-dark-muted: #b9c4cc;
    /* 事業内容の札の淡い地（mcframe はロゴの緑、ERP はロゴの青緑、Cloud は空色、SI は暖かい砂色） */
    --tint-mc: #edf6e6;
    --tint-erp: #e2f5f7;
    --tint-cloud: #e6f0f9;
    --tint-si: #f5efe5;

    /* ---- 書体（visual-design.md §6） ---------------------------------------------------------------------- */
    --font-ja: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Meiryo", sans-serif;
    --font-en: "Manrope", "Noto Sans JP", sans-serif;

    /* ---- 文字の大きさ ------------------------------------------------------------------------------------- */
    /* 新しい部品：本文 15px */
    --fs-xs: 0.75rem;                       /* 12 */
    --fs-s: 0.875rem;                       /* 14 */
    --fs-m: 0.9375rem;                      /* 15 本文 */
    --fs-n: 1rem;                           /* 16 お知らせの題名 */
    --fs-l: 1.125rem;                       /* 18 */
    --fs-l2: 1.0625rem;                     /* 17 スマホの会社情報のリンク */
    --fs-xl: 1.375rem;                      /* 22 */
    --fs-2xl: clamp(1.5rem, 2.4vw, 2rem);   /* 24〜32 */
    --fs-3xl: clamp(1.625rem, 3vw, 2.375rem); /* 26〜38 メインビジュアル */
    /* #8（下層ページの本文）：比率 1.25、7 段階（基準 16px） */
    --fs-1: 0.8rem;
    --fs-2: 1rem;
    --fs-3: 1.25rem;
    --fs-4: 1.5625rem;
    --fs-5: 1.953rem;
    --fs-6: 2.441rem;

    /* ---- 行の高さ・字間 ----------------------------------------------------------------------------------- */
    --lh-text: 2.1;                   /* 新しい部品の本文 */
    --lh-tight: 1.5;                  /* 新しい部品の見出し */
    --lh-hero: 1.55;                  /* メインビジュアルの見出し */
    --lh-desc: 1.9;                   /* 事業内容の説明 */
    --lh-menu: 1.6;                   /* フッターのサイトマップ */
    --lh-body: 1.9;                   /* #8（下層ページの本文） */
    --lh-heading: 1.45;               /* #8 */
    --ls-body: 0.04em;
    --ls-head: 0.04em;
    --ls-latin: 0.02em;               /* 欧文の小見出し・数字 */
    --ls-heading: 0.08em;             /* #8 */

    /* ---- 余白：4px 刻み ----------------------------------------------------------------------------------- */
    --sp-1: 4px;
    --sp-2: 8px;
    --sp-3: 12px;
    --sp-4: 16px;
    --sp-5: 24px;
    --sp-6: 32px;
    --sp-7: 48px;
    --sp-8: 64px;
    --sp-9: 96px;
    --sp-join: 104px;                 /* 採用の面の上の余白（スマホ 88px） */
    --sp-join-sp: 88px;
    --sp-actions: 28px;               /* お問い合わせの電話番号とボタンの間 */

    /* ---- 角丸 --------------------------------------------------------------------------------------------- */
    --radius-0: 0;                    /* #8 */
    --radius-s: 2px;                  /* #8（下層ページの本文） */
    --radius-card: 8px;               /* 新しい部品の小さな角丸 */
    --radius-m: 16px;
    --radius-l: 28px;
    --radius-pill: 999px;

    /* ---- 幅・高さ・部品の寸法 ----------------------------------------------------------------------------- */
    --w-wrap: 1000px;                 /* 新しい骨格の中身の幅 */
    --gutter: clamp(20px, 8vw, 128px);
    --w-th: 200px;
    --header-h: 76px;
    --logo-h: 40px;
    --touch: 44px;
    --arrow: 36px;
    --arrow-sp: 32px;
    --icon: 18px;
    --pill-h: 56px;
    --tag-h: 28px;
    --biz-tile-w: 144px;
    --biz-tile-h: 88px;
    --radius-tile: 12px;              /* 事業内容の淡い地の札 */
    --biz-tile-h-sp: 128px;
    --biz-mark: 48px;
    --biz-mark-sp: 44px;
    --biz-logo: 104px;
    --join-body-w: 440px;
    --cert-tile-h: 72px;
    --cert-tile-h-sp: 52px;
    --hero-min-h: min(68vh, 580px);
    --hero-title-max: 7cqi;           /* メインビジュアルの見出しの上限（文字の列の幅の 7%） */
    --news-date-w: 7em;
    --cert-logo-max: 160px;           /* #8：品質方針の認証マークの最大幅 */
    --diagram-min-sp: 720px;          /* #8：スマホで横に送って見る図の最小幅 */
    --list-btn-w: 70px;               /* #8 */
    --bar: 48px;                      /* #8 */
    --bar-h: 2px;                     /* #8：フォーカスの枠の太さなど */
    --mark: 4px;                      /* #8 */
    --control: 20px;                  /* #8：フォームの丸・四角の選択欄の見た目の大きさ（押せる範囲は --touch） */
    --tooltip-w: 400px;               /* #8：お知らせの吹き出しの最大幅 */
    --tooltip-arrow: 5px;             /* #8 */
    --form-field-max: 600px;          /* #8 */
    --privacy-box-h: 200px;           /* #8 */

    /* ---- 不透明度・重なり --------------------------------------------------------------------------------- */
    --opacity-hover: 0.85;            /* #8：本文の画像のリンクを指したとき */
    --opacity-link: 0.7;              /* 文字のリンクを指したとき */
    --opacity-tooltip: 0.9;           /* #8 */
    --header-glass: 92%;              /* ヘッダーの地の不透明度（後ろの文字を少し透かす） */
    --header-blur: 8px;
    --shadow-dropdown: 0 8px 32px color-mix(in srgb, var(--color-fg) 12%, transparent);
    --photo-filter: saturate(0.92) contrast(0.96) brightness(1.02); /* 採用の写真の色調をそろえる */
    --z-dropdown: 99;
    --z-header: 120;
    --z-drawer: 130;
    --z-topcontrol: 999;
    --z-tooltip: 9999;

    /* ---- 動き（transform と opacity だけに使う。visual-design.md §4 の 4） --------------------------------- */
    --dur-none: 0s;                   /* 表示の切り替え（visibility）を待たせないとき */
    --dur-ui: 250ms;                  /* 操作への反応 */
    --dur-reveal: 900ms;              /* 画面に入った要素 */
    --dur-hero: 1200ms;               /* メインビジュアル */
    --dur-hero-img: 2400ms;           /* メインビジュアルの画像の拡大の戻り */
    --delay-hero-line: 120ms;         /* 見出しの 2 行目の遅れ */
    --stagger-reveal: 90ms;
    --ease-soft: cubic-bezier(0.47, 0.16, 0.24, 1);
    --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
    --reveal-shift: 28px;
    --dropdown-shift: 6px;
    --hero-zoom: 1.06;
    --lift: 4px;
    --hover-zoom: 1.08;               /* 指したときの図形・矢印の拡大 */
    --hover-shadow: 0 12px 32px color-mix(in srgb, var(--color-fg) 10%, transparent);
    /* #8（下層ページの本文の部品） */
    --dur-press: 160ms;
    --dur-fast: 150ms;
    --press-scale: 0.97;
  }

  /* 英語のページ：日本語向けの字間を詰める */
  :root:lang(en) {
    --ls-body: 0.01em;
    --ls-head: 0.02em;
    --ls-heading: 0.02em;
  }

  /* 動きを減らす設定では何も動かさない：時間と移動量の値を 0 にする */
  @media (prefers-reduced-motion: reduce) {
    :root {
      --dur-ui: 0s;
      --dur-reveal: 0s;
      --dur-hero: 0s;
      --dur-hero-img: 0s;
      --delay-hero-line: 0s;
      --stagger-reveal: 0s;
      --reveal-shift: 0px;
      --dropdown-shift: 0px;
      --hero-zoom: 1;
      --lift: 0px;
      --hover-zoom: 1;
      --dur-press: 0s;
      --dur-fast: 0s;
      --press-scale: 1;
    }
  }
}
/*
 * base 層：要素の既定（visual-design.md §2.2）。
 *   全体：どの部品にも偏らない中立の既定（新しい骨格・トップの部品は、これに自分の指定を足す）。
 *   .page-legacy：下層ページの現行 HTML の本文（#13 第 1 段階で作り直さない部分）の要素の既定。
 *     現行の normalize.css・template.css が要素に付けていた指定のうち、本文で使うものを #8 の値で持つ。
 *     本文の中だけに当てるため、新しい部品の指定と競り合わない。
 */
@layer base {
  /* ---- 全体 ---------------------------------------------------------------------------------------- */
  *, *::before, *::after { box-sizing: border-box; }

  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    /* 固定のヘッダーの下に、ページ内リンクの行き先が隠れないようにする */
    scroll-padding-top: var(--header-h);
  }

  body {
    margin: 0;
    background: var(--color-bg);
    color: var(--color-fg);
    font-family: var(--font-ja);
    font-size: var(--fs-m);
    line-height: var(--lh-text);
    letter-spacing: var(--ls-body);
    line-break: strict;
    -webkit-font-smoothing: antialiased;
  }

  h1, h2, h3, h4, h5, h6, p, figure, ul, ol { margin: 0; }
  h1, h2, h3, h4, h5, h6 { font-size: inherit; }
  b, strong { font-weight: 700; }
  a { color: inherit; text-decoration: none; }
  img { max-width: 100%; height: auto; }
  button { font: inherit; color: inherit; }
  /* 日本語は文節の切れ目で折り返し、語の途中の 1〜3 文字だけが次の行に残らないようにする */
  h1, h2, h3, h4, h5, h6, p, li, th, td, a { word-break: auto-phrase; overflow-wrap: break-word; }
  p, li { text-wrap: pretty; }

  /* フォーカス：キーボード操作のときだけ枠を出す */
  :focus { outline: 0; }
  :focus-visible {
    outline: var(--bar-h) solid var(--color-focus);
    outline-offset: var(--bar-h);
  }

  table {
    max-width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    background-color: transparent;
  }
  td, th { padding: 0; }
  iframe { border: 0; }
  fieldset { margin: 0; padding: 0; border: 0; }

  /* フォーム部品。書体はフォームの部品（components/form.css）が指定する */
  input, optgroup, select, textarea { margin: 0; color: inherit; }
  input { line-height: normal; }
  input[type="checkbox"], input[type="radio"] { padding: 0; }
  textarea { overflow: auto; }
  button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; }
  input[type="text"], input[type="email"], input[type="tel"], textarea, select {
    display: inline-block;
    max-width: 100%;
    min-height: var(--touch);
    padding: var(--sp-2) var(--sp-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-s);
    background-color: var(--color-bg);
    color: var(--color-fg);
    font-family: var(--font-ja);
    font-size: var(--fs-2);
    vertical-align: middle;
  }
  input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus, textarea:focus, select:focus {
    border-color: var(--color-focus);
  }

  .visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .nowrap { white-space: nowrap; }

  /* ---- 下層ページの本文（現行 HTML） ------------------------------------------------------------------- */
  .page-legacy {
    font-size: var(--fs-2);
    line-height: var(--lh-body);
    line-break: auto;
  }
  /* 見出し：本文と同じ書体。大きさは見出しの部品（components・content）が持つ */
  .page-legacy :is(h1, h2, h3, h4, h5, h6) {
    margin: 0 0 var(--sp-3);
    font-weight: 700;
    line-height: var(--lh-heading);
    letter-spacing: var(--ls-heading);
  }
  .page-legacy h2 { font-size: var(--fs-4); }
  .page-legacy h3 { font-size: var(--fs-3); }
  .page-legacy :is(h4, h5, h6) { font-size: var(--fs-2); }
  .page-legacy p { margin: 0 0 var(--sp-4); }
  .page-legacy a { color: var(--color-accent); }
  .page-legacy a:hover { color: var(--color-accent); text-decoration: underline; text-underline-offset: 0.2em; }
  .page-legacy a img { transition: opacity var(--dur-ui) var(--ease-out); }
  .page-legacy a:hover img { opacity: var(--opacity-hover); }
}
/*
 * layout 層：ページの枠（visual-design.md §2.2）。
 *   新しい骨格：中身の幅（.ui-wrap）、ヘッダー（.site-header）、フッター（.site-footer）、ページの先頭へ戻るボタン（.site-pagetop）、
 *   トップのセクションの間（.top-block）。
 *   下層ページの本文（現行 HTML。#13 第 1 段階）：本文の枠、ページ名の帯、パンくず、グリッド（span_*・col など）。
 */
@layer layout {
  /* ---- 新しい骨格 ------------------------------------------------------------------------------------ */
  .ui-wrap { width: 100%; max-width: calc(var(--w-wrap) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }

  .site-header { position: sticky; top: 0; z-index: var(--z-header); background: color-mix(in srgb, var(--color-bg) var(--header-glass), transparent); backdrop-filter: blur(var(--header-blur)); }
  .site-header__inner { display: flex; align-items: center; gap: var(--sp-6); height: var(--header-h); }
  .site-logo { display: flex; align-items: center; min-height: var(--touch); }
  .site-logo img { display: block; width: auto; height: var(--logo-h); }
  /* どの画面幅で何を出すか：PC はグローバルメニューと言語の切り替え、1100px 以下はスマホのメニューを開くボタン */
  .site-header__nav { margin-left: auto; }
  .site-header__toggle { display: none; margin-left: auto; }
  @media (max-width: 1100px) {
    .site-header__nav, .site-header__lang { display: none; }
    .site-header__toggle { display: block; }
  }

  .site-footer { margin-top: var(--sp-8); padding-block: var(--sp-9) var(--sp-6); background: var(--color-surface); }
  .site-footer__top { display: grid; grid-template-columns: 1fr 3fr; gap: var(--sp-7); }
  .site-footer__menus { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-5); }
  .site-footer__menus p, .site-footer__menus a { display: flex; align-items: center; min-height: var(--touch); font-size: var(--fs-s); line-height: var(--lh-menu); }
  .site-footer__menus p { font-weight: 700; }
  .site-footer__menus a { color: var(--color-muted); white-space: nowrap; }
  .site-footer__menus a:hover { color: var(--color-fg); }
  .site-certs { display: grid; grid-template-columns: 2fr repeat(5, minmax(0, 1fr)); gap: var(--sp-2); margin-top: var(--sp-8); padding: 0; list-style: none; }
  .site-cert { display: flex; align-items: center; justify-content: center; height: var(--cert-tile-h); padding: var(--sp-3); border-radius: var(--radius-card); background: var(--color-bg); }
  .site-cert img { display: block; width: auto; max-width: 100%; max-height: 100%; }
  .site-cert--wide img { height: var(--sp-5); }
  .site-copyright { margin-top: var(--sp-7); color: var(--color-faint); font-family: var(--font-en); font-size: var(--fs-xs); }

  .site-pagetop { position: fixed; right: var(--sp-5); bottom: var(--sp-5); z-index: var(--z-topcontrol); }
  /* ボタンは JavaScript で動くため、JavaScript が無いときは出さない */
  html:not(.js) .site-pagetop { display: none; }

  .top-block { margin-top: var(--sp-9); }

  @media (max-width: 1023px) {
    .site-footer__top { grid-template-columns: minmax(0, 1fr); }
  }
  @media (max-width: 767px) {
    .top-block { margin-top: var(--sp-8); }
    .site-footer__menus { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .site-certs { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .site-cert--wide { grid-column: 1 / -1; }
    .site-cert { height: var(--cert-tile-h-sp); padding: var(--sp-2); }
    .site-pagetop { right: var(--sp-4); bottom: var(--sp-4); }
  }

  /* ---- 下層ページの本文（現行 HTML）：中身の幅は新しい骨格と同じ 1000px ---------------------------------- */
  #box-wrap.container, #promo-page-title .container, .cntn {
    width: auto;
    max-width: calc(var(--w-wrap) + var(--sp-5) * 2);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--sp-5);
    padding-right: var(--sp-5);
  }
  /* 事業内容（#index）は、帯（背景の色・写真）を画面の端まで広げ、幅は各帯の .cntn が持つ */
  #index #box-wrap.container { max-width: none; padding-left: 0; padding-right: 0; }
  /* 上下だけを指定する（左右の余白は .cntn が持つ） */
  .section { padding-top: var(--sp-8); padding-bottom: var(--sp-8); }

  #comp-wrap { position: relative; padding: 0; }
  /* お知らせ一覧の 1 件（.container）は中の浮動の列を囲む */
  #post .container { display: flow-root; }

  /* グリッド（現行の span_*・col） */
  .col { display: block; float: left; width: 100%; margin-left: 2%; }
  .col:first-child { margin-left: 0; }
  .span_3 { width: 23.5%; }
  .span_9 { width: 70%; }
  .span_12 { width: 100%; }
  .row::after, .col::after, .clr::after, .group::after, .row-fluid::after { content: ""; display: block; clear: both; }
  .clearfix::before, .clearfix::after { content: ""; display: table; }
  .clearfix::after { clear: both; }

  /* お知らせの右の列（カテゴリー） */
  #rightbar-w { float: right; display: block; }

  /* ページ名の帯とパンくず */
  #promo-page-title { margin: 0; padding: var(--sp-8) 0 var(--sp-7); background: var(--color-surface); }
  #promo-page-title h2 {
    margin: 0;
    color: var(--color-fg);
    font-size: var(--fs-6);
    font-weight: 700;
    letter-spacing: var(--ls-heading);
    text-align: left;
  }
  .breadcrumbs { margin: 0; padding: var(--sp-4) 0 0; color: var(--color-muted); font-size: var(--fs-1); }
  .breadcrumbs a { color: var(--color-muted); }
  .breadcrumbs .fa-angle-right { margin: 0 var(--sp-1); }
  /* 事業内容（#index）は本文の枠が画面の端まで広がるため、パンくずは中身の幅にそろえる */
  #index .breadcrumbs { max-width: calc(var(--w-wrap) + var(--sp-5) * 2); margin: 0 auto; padding-left: var(--sp-5); padding-right: var(--sp-5); }

  /* スマホ（現行の responsive.css と同じ境目） */
  @media screen and (max-width: 568px) {
    #box-wrap.container, #promo-page-title .container, .cntn { padding-left: var(--sp-4); padding-right: var(--sp-4); }
    .section { padding-top: var(--sp-7); padding-bottom: var(--sp-7); }
    /* グリッド：1 列にする。お知らせの右の列（カテゴリー）は出さない（現行と同じ） */
    .span_3, .span_9, .span_12 { width: auto; }
    .col, .col:first-child { float: none; margin: 0; }
    #rightbar-w { display: none; }
    #promo-page-title { padding: var(--sp-6) 0; }
    #promo-page-title h2 { font-size: var(--fs-5); }
    #index .breadcrumbs { padding-left: var(--sp-4); padding-right: var(--sp-4); }
  }
}
/*
 * 部品：アイコン（visual-design.md §5.1）。Lucide（lucide-static 1.50.0、ISC。icons/LICENSE）の SVG を CSS のマスクで描く。
 * 色は文字色（currentColor）になり、リンクの中ではリンクの色になる。HTML（<i class="fa fa-…">）は変えない。
 * 現行の CSS が疑似要素で付けていた記号も同じ方法で描く：置き場所の規則は各部品が持ち、ここでは描き方と図柄（--icon）を持つ。
 * パスはルートからの絶対パス（英語トップは <base href="/en/"> を持つ）。
 */
@layer components {
  :root {
    --icon-menu: url("/templates/rontech/icons/menu.svg");
    --icon-x: url("/templates/rontech/icons/x.svg");
    --icon-chevron-right: url("/templates/rontech/icons/chevron-right.svg");
    --icon-lock: url("/templates/rontech/icons/lock.svg");
    --icon-key-round: url("/templates/rontech/icons/key-round.svg");
    --icon-book-open: url("/templates/rontech/icons/book-open.svg");
    --icon-building-2: url("/templates/rontech/icons/building-2.svg");
    --icon-settings: url("/templates/rontech/icons/settings.svg");
    --icon-monitor: url("/templates/rontech/icons/monitor.svg");
    --icon-flag: url("/templates/rontech/icons/flag.svg");
    --icon-laptop: url("/templates/rontech/icons/laptop.svg");
    --icon-chart-line: url("/templates/rontech/icons/chart-line.svg");
    --icon-plane: url("/templates/rontech/icons/plane.svg");
    --icon-user: url("/templates/rontech/icons/user.svg");
    --icon-users: url("/templates/rontech/icons/users.svg");
    --icon-phone: url("/templates/rontech/icons/phone.svg");
    --icon-circle-dot: url("/templates/rontech/icons/circle-dot.svg");
    --icon-square-check: url("/templates/rontech/icons/square-check.svg");
    --icon-calendar: url("/templates/rontech/icons/calendar.svg");
    --icon-folder-open: url("/templates/rontech/icons/folder-open.svg");
    --icon-file-text: url("/templates/rontech/icons/file-text.svg");
  }

  /* ---- 描き方：1 文字分の正方形を文字色で塗り、SVG の形で切り抜く ---------------------------------- */
  .fa::before,
  .icon-calendar::before,
  .icon-folder-open::before,
  a.tel::before,
  ul.icon li::before,
  #sidebar .categories-module li::before,
  a[href$=".pdf"]::before {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    background-color: currentColor;
    -webkit-mask: var(--icon) center / contain no-repeat;
    mask: var(--icon) center / contain no-repeat;
    vertical-align: -0.125em;
  }

  /* ---- Font Awesome のクラス → Lucide の図柄 ---------------------------------------------------- */
  .fa { display: inline-block; font-style: normal; line-height: 1; }
  .fa-angle-right { --icon: var(--icon-chevron-right); }
  .fa-lock { --icon: var(--icon-lock); }
  .fa-key { --icon: var(--icon-key-round); }
  .fa-book { --icon: var(--icon-book-open); }
  .fa-building, .fa-building-o { --icon: var(--icon-building-2); }
  .fa-cogs { --icon: var(--icon-settings); }
  .fa-desktop { --icon: var(--icon-monitor); }
  .fa-flag { --icon: var(--icon-flag); }
  .fa-laptop { --icon: var(--icon-laptop); }
  .fa-line-chart { --icon: var(--icon-chart-line); }
  .fa-plane { --icon: var(--icon-plane); }
  .fa-user { --icon: var(--icon-user); }
  .fa-users { --icon: var(--icon-users); }
  /* 大きめのアイコン：周りの文字の 1 段上（比率 1.25） */
  .fa-lg { font-size: 1.25em; }
  .fa-inverse { color: var(--color-bg); }
  /* 丸の中のアイコン（mcframe「製品のポイント」）：墨色の丸を CSS で描き、中のアイコンを背景の色で描く */
  .fa-stack {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2em;
    height: 2em;
    border-radius: 50%;
    background: var(--color-fg);
    vertical-align: middle;
  }
  .fa-stack .fa-stack-2x { display: none; }
  .fa-stack .fa-stack-1x { color: var(--color-bg); }

  /* ---- 現行の CSS が疑似要素で付けていた記号 ------------------------------------------------------ */
  .icon-calendar { --icon: var(--icon-calendar); }
  .icon-folder-open { --icon: var(--icon-folder-open); }
  a.tel { --icon: var(--icon-phone); }
  ul.icon li { --icon: var(--icon-circle-dot); }
  ul.icon.check li { --icon: var(--icon-square-check); }
  #sidebar .categories-module li { --icon: var(--icon-folder-open); }
  /* 新しい部品（#13）：<span class="ui-icon ui-icon--<名前>" aria-hidden="true"> を同じ描き方で描く */
  .ui-icon { display: inline-block; flex: none; width: var(--icon); height: var(--icon); background: currentColor; mask: var(--icon) center / contain no-repeat; -webkit-mask: var(--icon) center / contain no-repeat; }
  .ui-icon--menu { --icon: var(--icon-menu); }
  .ui-icon--x { --icon: var(--icon-x); }
  .ui-icon--lock { --icon: var(--icon-lock); }
  .ui-icon--phone { --icon: var(--icon-phone); }
  /* PDF へのリンク（現行は Font Awesome の file-pdf-o）。Lucide に PDF 専用のアイコンが無いため文書の印にする */
  a[href$=".pdf"] { --icon: var(--icon-file-text); }
}
/* 部品：丸い矢印（行・ボタンの右端）。矢印は Lucide の chevron-right をマスクで描く */
@layer components {
  .ui-arrow { position: relative; flex: none; width: var(--arrow); height: var(--arrow); border-radius: var(--radius-pill); background: var(--color-bg); color: var(--color-fg); transition: transform var(--dur-ui) var(--ease-out), background-color var(--dur-ui) var(--ease-out); }
  .ui-arrow::before { content: ""; position: absolute; inset: 30%; background: currentColor; mask: url(/templates/rontech/icons/chevron-right.svg) center / contain no-repeat; -webkit-mask: url(/templates/rontech/icons/chevron-right.svg) center / contain no-repeat; }
  .ui-arrow--line { background: none; box-shadow: inset 0 0 0 1px var(--color-border); }
  /* ページの先頭へ戻るボタン：上向き、44px、墨色の地 */
  .ui-arrow--up { width: var(--touch); height: var(--touch); border: 0; background: var(--color-fg); color: var(--color-bg); cursor: pointer; }
  .ui-arrow--up::before { transform: rotate(-90deg); }
  @media (hover: hover) and (pointer: fine) {
    a:hover > .ui-arrow--line { background: var(--color-fg); color: var(--color-bg); transform: translateX(var(--lift)); }
  }
}
/* 部品：丸いボタン（主な操作）。右端に丸い矢印 */
@layer components {
  .ui-pill { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--sp-5); min-height: var(--pill-h); padding: var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-5); border-radius: var(--radius-pill); background: var(--color-fg); color: var(--color-bg); font-size: var(--fs-s); font-weight: 700; }
  .ui-pill--light { background: var(--color-bg); color: var(--color-fg); }
  .ui-pill--light .ui-arrow { background: var(--color-fg); color: var(--color-bg); }
  @media (hover: hover) and (pointer: fine) {
    .ui-pill:hover .ui-arrow { transform: translateX(var(--lift)); }
  }
}
/* 部品：文字のリンク（下線つき） */
@layer components {
  .ui-text-link { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: var(--touch); border-bottom: 1px solid currentColor; color: var(--color-accent); font-size: var(--fs-s); font-weight: 500; line-height: var(--lh-tight); }
  .ui-text-link--inverse { color: var(--color-dark-fg); }
  @media (hover: hover) and (pointer: fine) {
    .ui-text-link:hover { opacity: var(--opacity-link); }
  }
}
/* 部品：セクションの名前（小さな欧文と日本語、下に細い線）。英語トップは欧文 1 つ */
@layer components {
  .ui-label { display: flex; align-items: baseline; gap: var(--sp-4); margin-bottom: var(--sp-6); padding-bottom: var(--sp-4); border-bottom: 1px solid var(--color-border); }
  .ui-label__en { font-family: var(--font-en); font-size: var(--fs-s); font-weight: 700; letter-spacing: var(--ls-latin); }
  .ui-label__ja { color: var(--color-muted); font-size: var(--fs-xs); font-weight: 400; }
  .ui-label--inverse { border-bottom-color: color-mix(in srgb, var(--color-dark-fg) 20%, transparent); }
  .ui-label--inverse .ui-label__ja { color: var(--color-dark-muted); }
}
/*
 * 部品：グローバルメニュー（PC）・言語の切り替え・メニューを開くボタン（top-page.md §2.1）。
 * ドロップダウンの開閉の持ち主は 1 つ：JavaScript が動くときは src/scripts/site.ts（aria-expanded）、
 * 動かないときだけ CSS（:hover・:focus-within）。どの画面幅で何を出すかは layout 層（.site-header__*）が持つ。
 */
@layer components {
  .site-nav__list { display: flex; align-items: center; padding: 0; list-style: none; }
  .site-nav__item { position: relative; }
  .site-nav__link { display: flex; align-items: center; min-height: var(--touch); padding-inline: var(--sp-3); border: 0; background: none; font-size: var(--fs-s); font-weight: 500; white-space: nowrap; cursor: pointer; }
  /* 選択中のページ：項目の下に細い線（お問い合わせは丸いボタンのため、ボタンの地で示す） */
  .site-nav__link:not(.site-nav__cta)[data-current] { box-shadow: inset 0 calc(var(--bar-h) * -1) 0 var(--color-accent); }
  .site-nav__cta { margin-left: var(--sp-3); padding-inline: var(--sp-5); border-radius: var(--radius-pill); background: var(--color-fg); color: var(--color-bg); }

  .site-nav__child {
    position: absolute; top: calc(100% + var(--sp-1)); left: 0; z-index: var(--z-dropdown);
    min-width: 100%; padding: var(--sp-2); list-style: none; border-radius: var(--radius-card); background: var(--color-bg); box-shadow: var(--shadow-dropdown);
    opacity: 0; transform: translateY(calc(var(--dropdown-shift) * -1)); visibility: hidden;
    transition: opacity var(--dur-ui) var(--ease-out), transform var(--dur-ui) var(--ease-out), visibility var(--dur-none) linear var(--dur-ui);
  }
  .site-nav__child--end { left: auto; right: 0; }
  html:not(.js) .site-nav__item:is(:hover, :focus-within) > .site-nav__child,
  .site-nav__link[aria-expanded="true"] + .site-nav__child { opacity: 1; transform: none; visibility: visible; transition-delay: var(--dur-none); }
  .site-nav__child a { display: flex; align-items: center; min-height: var(--touch); padding-inline: var(--sp-3); border-radius: var(--radius-card); font-size: var(--fs-s); white-space: nowrap; }
  .site-nav__child a:hover { background: var(--color-surface); }
  .site-nav__child a[aria-current="page"] { color: var(--color-accent); }

  .site-lang { display: flex; align-items: center; gap: var(--sp-1); color: var(--color-faint); font-family: var(--font-en); font-size: var(--fs-xs); }
  .site-lang a { display: inline-flex; align-items: center; min-height: var(--touch); padding-inline: var(--sp-1); }
  .site-lang a[aria-current="true"] { color: var(--color-fg); }

  .site-menu-button { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: var(--touch); padding-inline: var(--sp-4); border: 0; border-radius: var(--radius-pill); background: var(--color-fg); color: var(--color-bg); font-family: var(--font-en); font-size: var(--fs-s); font-weight: 700; cursor: pointer; }
}
/* 部品：スマホのメニュー（top-page.md §2.2）。開閉は site.ts が data-open を切り替える */
@layer components {
  .site-drawer {
    position: fixed; inset: 0; z-index: var(--z-drawer); overflow-y: auto;
    padding: 0 var(--gutter) var(--sp-7); background: var(--color-bg);
    opacity: 0; visibility: hidden;
    transition: opacity var(--dur-ui) var(--ease-out), visibility var(--dur-none) linear var(--dur-ui);
  }
  .site-drawer[data-open] { opacity: 1; visibility: visible; transition-delay: var(--dur-none); }
  .site-drawer__head { display: flex; align-items: center; justify-content: space-between; height: var(--header-h); }
  .site-drawer__group { padding-block: var(--sp-3); border-top: 1px solid var(--color-border); }
  .site-drawer__group > p { color: var(--color-muted); font-size: var(--fs-xs); }
  .site-drawer__group a { display: flex; align-items: center; min-height: var(--touch); font-size: var(--fs-l); }
  .site-drawer__group a[aria-current="page"] { color: var(--color-accent); }
}
/* 部品：トップのメインビジュアル（top-page.md §3 の 1）。左に見出し、右に画像 */
@layer components {
  .top-hero { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; gap: var(--sp-8); min-height: var(--hero-min-h); padding-block: var(--sp-7); }
  /* 見出しの大きさは文字の列の幅から決める（2 行目が 3 行に折り返さない） */
  .top-hero__text { container-type: inline-size; }
  .top-hero__title { font-size: min(var(--fs-3xl), var(--hero-title-max)); font-weight: 700; line-height: var(--lh-hero); letter-spacing: var(--ls-latin); }
  .top-hero__line { display: block; overflow: hidden; padding-bottom: 0.08em; }
  .top-hero__line > span { display: block; }
  .top-hero__en { margin-top: var(--sp-5); color: var(--color-faint); font-family: var(--font-en); font-size: var(--fs-s); font-weight: 500; letter-spacing: var(--ls-latin); }
  .top-hero__policies { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-7); padding: 0; list-style: none; }
  .top-hero__policies li { display: inline-flex; align-items: center; min-height: var(--tag-h); padding: 0 var(--sp-3); border-radius: var(--radius-pill); background: var(--color-surface); font-size: var(--fs-xs); font-weight: 500; line-height: 1; }
  .top-hero__art { overflow: hidden; aspect-ratio: 1 / 1; border-radius: var(--radius-l); background: var(--color-surface); }
  .top-hero__art img { display: block; width: 100%; height: 100%; object-fit: cover; }
  @media (max-width: 1023px) {
    .top-hero { grid-template-columns: minmax(0, 1fr); gap: var(--sp-7); min-height: 0; }
    .top-hero__art { order: -1; aspect-ratio: 16 / 9; border-radius: var(--radius-m); }
  }
}
/* 部品：トップの「事業について」（top-page.md §3 の 2）。12 列の 5＋5 */
@layer components {
  .top-about { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--sp-5); row-gap: var(--sp-6); }
  .top-about__lead { grid-column: 1 / span 5; font-size: var(--fs-2xl); font-weight: 700; line-height: var(--lh-tight); letter-spacing: var(--ls-head); }
  .top-about__body { display: grid; grid-column: 8 / span 5; justify-items: start; gap: var(--sp-4); color: var(--color-muted); }
  @media (max-width: 1023px) {
    .top-about__lead, .top-about__body { grid-column: 1 / -1; }
  }
}
/* 部品：トップの「事業内容」（top-page.md §3 の 3）。灰色の面の中に白い行の札を並べ、各行の左に淡い地の札（ロゴ・図形）を置く */
@layer components {
  .top-panel { padding: var(--sp-6); border-radius: var(--radius-m); background: var(--color-surface); }
  .top-biz { display: grid; gap: var(--sp-3); padding: 0; list-style: none; }
  .top-biz__row { position: relative; display: flex; align-items: center; gap: var(--sp-6); padding: var(--sp-3) var(--sp-6) var(--sp-3) var(--sp-3); border-radius: var(--radius-m); background: var(--color-bg); transition: transform var(--dur-ui) var(--ease-out); }
  /* 指したときの影：影そのものは動かさず、重ねた層の不透明度だけを変える */
  .top-biz__row::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: var(--hover-shadow); opacity: 0; pointer-events: none; transition: opacity var(--dur-ui) var(--ease-out); }
  .top-biz__row .ui-arrow { background: var(--color-surface); }
  .top-biz__tile { display: flex; flex: none; flex-direction: column; align-items: center; justify-content: center; width: var(--biz-tile-w); height: var(--biz-tile-h); border-radius: var(--radius-tile); }
  .top-biz__tile--mc { background: var(--tint-mc); }
  .top-biz__tile--erp { background: var(--tint-erp); }
  .top-biz__tile--cloud { background: var(--tint-cloud); }
  .top-biz__tile--si { background: var(--tint-si); }
  .top-biz__logo { display: block; width: var(--biz-logo); height: auto; transition: transform var(--dur-reveal) var(--ease-soft); }
  .top-biz__mark { display: block; width: var(--biz-mark); height: var(--biz-mark); transition: transform var(--dur-reveal) var(--ease-soft); }
  .top-biz__main { display: grid; flex: 1; gap: var(--sp-1); min-width: 0; }
  .top-biz__name { font-size: var(--fs-xl); font-weight: 700; line-height: var(--lh-tight); }
  .top-biz__desc { color: var(--color-muted); font-size: var(--fs-s); line-height: var(--lh-desc); }
  .top-biz__after { margin-top: var(--sp-5); }
  @media (hover: hover) and (pointer: fine) {
    .top-biz__row:hover { transform: translateY(calc(var(--lift) * -1)); }
    .top-biz__row:hover::after { opacity: 1; }
    .top-biz__row:hover :is(.top-biz__mark, .top-biz__logo) { transform: scale(var(--hover-zoom)); }
    .top-biz__row:hover .ui-arrow { transform: translateX(var(--lift)) scale(var(--hover-zoom)); }
  }
  @media (max-width: 767px) {
    .top-panel { padding: var(--sp-2); }
    /* スマホ：札を上、文字を下に置く（文字の列を細くしない） */
    .top-biz__row { display: grid; grid-template-areas: "tile tile" "main arrow"; grid-template-columns: minmax(0, 1fr) var(--arrow-sp); align-items: center; gap: var(--sp-4); padding: var(--sp-2) var(--sp-2) var(--sp-4); }
    .top-biz__tile { grid-area: tile; width: 100%; height: var(--biz-tile-h-sp); }
    .top-biz__main { grid-area: main; }
    .top-biz__row .ui-arrow { grid-area: arrow; width: var(--arrow-sp); height: var(--arrow-sp); }
    .top-biz__mark { width: var(--biz-mark-sp); height: var(--biz-mark-sp); }
    .top-biz__name { font-size: var(--fs-l); line-height: var(--lh-heading); }
  }
}
/* 部品：トップの「採用情報」（top-page.md §3 の 4）。濃い面と写真の帯 */
@layer components {
  .top-join { overflow: hidden; margin-top: var(--sp-9); padding-top: var(--sp-join); background: var(--color-dark); color: var(--color-dark-fg); }
  .top-join__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-8); }
  .top-join__lead { font-size: var(--fs-2xl); font-weight: 700; line-height: var(--lh-tight); letter-spacing: var(--ls-head); }
  .top-join__body { display: grid; justify-items: start; gap: var(--sp-4); max-width: var(--join-body-w); color: var(--color-dark-muted); }
  /* 2 つのボタンを同じ幅にする（広い方に合わせる） */
  .top-join__actions { display: inline-grid; grid-auto-columns: 1fr; grid-auto-flow: column; gap: var(--sp-3); margin-block: var(--sp-3); }
  .top-join__photos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-3); margin-top: var(--sp-8); padding-inline: var(--sp-3); transform: translateY(var(--sp-6)); }
  .top-join__photos img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-m) var(--radius-m) 0 0; filter: var(--photo-filter); }
  @media (max-width: 1023px) {
    .top-join__grid { grid-template-columns: minmax(0, 1fr); }
  }
  @media (max-width: 767px) {
    .top-join { padding-top: var(--sp-join-sp); }
    .top-join__actions { grid-auto-flow: row; }
    .top-join__photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
}
/* 部品：トップの「会社情報」（top-page.md §3 の 5）。4 つのリンクを横に並べる */
@layer components {
  .top-company { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-4); padding: 0; list-style: none; }
  .top-company a { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); padding-block: var(--sp-4); border-bottom: 1px solid var(--color-border); font-size: var(--fs-l); font-weight: 700; }
  @media (hover: hover) and (pointer: fine) {
    .top-company a:hover { color: var(--color-accent); }
  }
  @media (max-width: 1023px) {
    .top-company { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 767px) {
    .top-company { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .top-company a { font-size: var(--fs-l2); }
  }
}
/* 部品：トップの「お知らせ」（top-page.md §3 の 6）。日付・題名・矢印の行 */
@layer components {
  .top-news { padding: 0; list-style: none; }
  .top-news a { display: grid; grid-template-columns: var(--news-date-w) minmax(0, 1fr) auto; align-items: center; gap: var(--sp-5); padding-block: var(--sp-5); border-bottom: 1px solid var(--color-border); }
  .top-news time { color: var(--color-faint); font-family: var(--font-en); font-size: var(--fs-s); font-variant-numeric: tabular-nums; }
  .top-news__title { font-size: var(--fs-n); line-height: var(--lh-desc); }
  .top-news__more { margin-top: var(--sp-5); text-align: right; }
  @media (hover: hover) and (pointer: fine) {
    .top-news a:hover .top-news__title { color: var(--color-accent); }
  }
  @media (max-width: 767px) {
    .top-news a { grid-template-columns: minmax(0, 1fr) auto; row-gap: 0; }
    .top-news time, .top-news__title { grid-column: 1; }
    .top-news .ui-arrow { grid-row: 1 / span 2; grid-column: 2; }
  }
}
/* 部品：トップの「お問い合わせ」（top-page.md §3 の 7）。上下の線で区切った 1 行 */
@layer components {
  .top-contact { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-6); padding-block: var(--sp-8) var(--sp-6); border-block: 1px solid var(--color-border); }
  .top-contact__title { display: flex; align-items: baseline; gap: var(--sp-4); color: var(--color-muted); font-size: var(--fs-xs); font-weight: 400; }
  .top-contact__title .ui-label__en { color: var(--color-fg); font-size: var(--fs-2xl); }
  .top-contact__text { margin-top: var(--sp-3); color: var(--color-muted); }
  .top-contact__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-actions); }
  .top-contact__tel { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: var(--touch); font-family: var(--font-en); font-size: var(--fs-xl); font-weight: 700; letter-spacing: var(--ls-latin); white-space: nowrap; }
  @media (max-width: 767px) {
    .top-contact { padding-block: var(--sp-7) var(--sp-5); }
  }
}
/*
 * 部品：ボタン（現行の a.bttn）。主な操作（各画面 1 つ）だけアクセント色にする（visual-design.md §4.2）。
 * 現行の CSS がすべてのボタンに付けていた矢印は付けない（§4.3）。
 */
@layer components {
  a.bttn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-3);
    min-height: var(--touch);
    margin-top: var(--sp-4);
    padding: var(--sp-2) var(--sp-6);
    border: 1px solid var(--color-fg);
    border-radius: var(--radius-s);
    background: var(--color-bg);
    color: var(--color-fg);
    font-size: var(--fs-2);
    font-weight: 700;
    line-height: var(--lh-heading);
    letter-spacing: var(--ls-heading);
    text-align: center;
    text-decoration: none;
    transition: transform var(--dur-press) var(--ease-out);
  }
  a.bttn:hover { background: var(--color-fg); color: var(--color-bg); text-decoration: none; }
  /* 押したときの手応え（ボタンと送信だけ。文中のリンクは動かさない） */
  a.bttn:active { transform: scale(var(--press-scale)); }
  a.bttn.s { padding: var(--sp-2) var(--sp-5); }

  /* 主な操作：トップの「お問い合わせ」（お問い合わせの箱の中のボタン） */
  .bgGray.box a.bttn { border-color: var(--color-accent); background: var(--color-accent); color: var(--color-accent-fg); }
  .bgGray.box a.bttn:hover { border-color: var(--color-fg); background: var(--color-fg); color: var(--color-bg); }

  /* 英語トップの「Read more」（Joomla の .btn）：ほかのボタンと同じ形 */
  .readmore { margin: var(--sp-1); text-align: right; }
  .readmore .btn {
    display: inline-flex;
    align-items: center;
    min-height: var(--touch);
    padding: var(--sp-2) var(--sp-5);
    border: 1px solid var(--color-fg);
    border-radius: var(--radius-s);
    background: var(--color-bg);
    color: var(--color-fg);
    font-weight: 700;
  }
  .readmore .btn:hover { background: var(--color-fg); color: var(--color-bg); text-decoration: none; }
  /* 「続きを読む」の印（図柄は components/icon.css） */
  .readmore .btn::after { margin-left: var(--sp-1); }
}
/*
 * 部品：カード（写真＋見出し＋説明＋ボタン。現行の表の中の figure・figcaption）。
 * 説明は常に表示する（現行は写真を指したときだけ説明が出ていた。指さないと見えない情報をなくす）。
 * 並んだカードは同じ高さにそろえ、ボタンを下端に置く。
 */
@layer components {
  table figure {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
    margin: 0;
  }
  table figure img { display: block; width: 100%; height: auto; aspect-ratio: 8 / 5; object-fit: cover; }
  table figcaption {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: var(--sp-5) 0 0;
    color: var(--color-fg);
    font-size: var(--fs-2);
    text-align: left;
  }
  table figcaption h3 { margin: 0 0 var(--sp-3); color: var(--color-fg); font-size: var(--fs-4); }
  table figcaption p { margin-bottom: var(--sp-2); }
  table figcaption p:last-child { margin: auto 0 0; }
}
/*
 * 部品：求人募集の入口（トップ・会社詳細の a.bttn.none。アイコン画像＋「求人募集」＋募集の種類）。
 * アイコンは墨色にそろえる。マウスで指したときだけ、アイコンが少し右へ動く（タッチ操作では動かさない）。
 */
@layer components {
  a.bttn.none {
    display: block;
    position: relative;
    width: auto;
    min-height: 0;
    margin: 0;
    padding: var(--sp-5) var(--sp-5) var(--sp-5) calc(var(--sp-8) + var(--sp-7));
    border: 1px solid var(--color-border);
    border-radius: var(--radius-s);
    background: var(--color-bg);
    color: var(--color-fg);
    font-size: var(--fs-4);
    font-weight: 700;
    line-height: var(--lh-heading);
    text-align: left;
  }
  a.bttn.none img {
    position: absolute;
    top: 50%;
    left: var(--sp-6);
    filter: grayscale(1) brightness(0.35);
    transform: translateY(-50%);
    transition: transform var(--dur-ui) var(--ease-out);
  }
  /* 募集の種類（新卒専用・キャリア）。大きさは補助クラス .fzS が持つ */
  a.bttn.none .fzS { color: var(--color-muted); font-weight: 400; }
  a.bttn.none:hover { border-color: var(--color-fg); background: var(--color-bg); color: var(--color-fg); }
  a.bttn.none:hover img { opacity: 1; }
  a.bttn.none:active { transform: none; }
  @media (hover: hover) and (pointer: fine) {
    a.bttn.none:hover img { transform: translate(var(--sp-1), -50%); }
  }

}
/* 部品：囲み（現行の .box）。枠や影は付けず、背景の色の板と余白で区切る（面の色の帯の上では白い板になる）。
   面の色の囲みは補助クラス .bgGray が持つ */
@layer components {
  .box { padding: var(--sp-5); border-radius: var(--radius-0); background: var(--color-bg); }
  .bgGray.box { padding: var(--sp-6); }

  @media screen and (max-width: 568px) {
    .box { padding: var(--sp-4); }
    .bgGray.box { padding: var(--sp-5); }
  }
}
/*
 * 部品：お問い合わせの箱（電話番号 a.tel と、トップではお問い合わせのボタン）。
 * 電話番号とボタンは縦に並べ、間をあける。電話番号は折り返さない。
 */
@layer components {
  .bgGray.box:has(> a.tel) {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--sp-4);
  }
  .bgGray.box:has(> a.tel) a.bttn { margin: 0; }

  a.tel {
    color: var(--color-fg);
    font-size: var(--fs-5);
    font-weight: 700;
    line-height: var(--lh-heading);
    letter-spacing: var(--ls-body);
    white-space: nowrap;
  }
  a.tel:hover { text-decoration: none; }
  /* 電話の印（図柄は components/icon.css） */
  a.tel::before { margin-right: var(--sp-2); color: var(--color-muted); }
  /* PC では電話をかけられないため、押せないようにする（現行と同じ） */
  @media screen and (min-width: 768px) {
    a[href^="tel:"] { pointer-events: none; }
  }

  /* タッチ操作の幅（タブレット以下）：押せる範囲を高さ 44px 以上にする */
  @media screen and (max-width: 1023px) {
    a.tel { display: inline-flex; align-items: center; min-height: var(--touch); }
  }
  @media screen and (max-width: 568px) {
    a.tel { font-size: var(--fs-4); }
  }
}
/*
 * 部品：お知らせ（トップの「NEWS」欄 .news・.news-box、一覧と記事の見出し・日付、「その他の記事」、
 * 前後の記事への移動 .pager、右の列のカテゴリー #sidebar）。
 */
@layer components {
  /* ---- トップの「NEWS」「CONTACT」欄（2 列の表 .news） ---- */
  .news h3 {
    position: relative;
    margin-bottom: var(--sp-5);
    color: var(--color-fg);
    font-size: var(--fs-5);
    line-height: 1;
    letter-spacing: var(--ls-body);
  }
  .news h3 span { padding-left: var(--sp-3); color: var(--color-muted); font-size: var(--fs-1); font-weight: 400; letter-spacing: var(--ls-body); }
  /* 「一覧」のボタン画像は見出しの右端。押せる範囲は高さ 44px（画像は縦の中央） */
  .news h3 a { position: absolute; top: 50%; right: 0; display: flex; align-items: center; min-height: var(--touch); transform: translateY(-50%); }
  .news h3 img { width: var(--list-btn-w); height: auto; }
  .news td:first-child { padding-right: var(--sp-7); }
  .news td:last-child { padding-left: var(--sp-7); border-left: 1px solid var(--color-border); }

  .news-box ul { margin: 0; padding: 0; }
  .news-box ul li { margin: 0; padding: var(--sp-3) 0; border-bottom: 1px solid var(--color-border); font-size: var(--fs-2); list-style: none; }
  .news-box ul li:first-child { border-top: 1px solid var(--color-border); }
  .news-box .mod-articles-category-date { display: block; margin: 0; color: var(--color-muted); font-size: var(--fs-1); letter-spacing: var(--ls-heading); }
  .news-box .mod-articles-category-title { color: var(--color-fg); font-weight: 500; }
  .news-box .mod-articles-category-title:hover { color: var(--color-accent); }

  /* ---- 一覧・記事 ---- */
  .page-header h2 { margin: 0; padding: var(--sp-2) 0; color: var(--color-fg); font-size: var(--fs-4); font-weight: 700; line-height: var(--lh-heading); }
  .subheading-category { color: var(--color-fg); }
  .items-row, .item-page { position: relative; }
  .item-separator { margin-bottom: var(--sp-5); }
  /* 記事の題名 */
  .item-page-title {
    margin: var(--sp-7) 0 var(--sp-3);
    padding: 0;
    color: var(--color-fg);
    font-size: var(--fs-4);
    font-weight: 700;
    line-height: var(--lh-heading);
    letter-spacing: var(--ls-body);
  }
  .item-page-title a { color: inherit; text-decoration: none; }
  /* 分類・作成日 */
  .iteminfo { display: block; margin: 0 0 var(--sp-3); padding: 0; color: var(--color-muted); font-size: var(--fs-1); }
  .iteminfo span { margin: 0 var(--sp-3) 0 0; }
  .iteminfo .sub-category, .iteminfo .create { display: inline-block; line-height: var(--lh-heading); }
  .iteminfo a { color: var(--color-muted); }
  /* 分類・作成日の印（図柄は components/icon.css） */
  .icon-calendar::before, .icon-folder-open::before { margin-right: var(--sp-1); }

  /* 「その他の記事」 */
  .items-more { clear: both; }
  .items-more h3 { margin: var(--sp-7) 0 var(--sp-3); color: var(--color-fg); font-size: var(--fs-3); }
  .items-more .nav { margin: 0 0 var(--sp-5); padding: 0; border-top: 1px solid var(--color-border); list-style: none; }
  .items-more .nav > li > a {
    display: flex;
    align-items: center;
    min-height: var(--touch);
    padding: var(--sp-2) 0;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-fg);
  }
  .items-more .nav > li > a:hover { color: var(--color-accent); }

  /* 前後の記事への移動 */
  .pager { margin: var(--sp-5) 0; padding: 0; list-style: none; text-align: center; }
  .pager::after { content: ""; display: table; clear: both; }
  .pager li { display: inline; }
  .pager li > a, .pager li > span {
    display: inline-flex;
    align-items: center;
    min-height: var(--touch);
    padding: 0 var(--sp-5);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-s);
    background: var(--color-bg);
    color: var(--color-fg);
  }
  .pager li > a:hover { border-color: var(--color-fg); text-decoration: none; }
  .pager .next > a { float: right; }
  .pager .previous > a { float: left; }

  /* ---- 右の列：カテゴリー ---- */
  #sidebar { position: relative; padding: 0; }
  #sidebar .module { margin-bottom: var(--sp-5); padding: 0; }
  #sidebar .module-title {
    margin: var(--sp-7) 0 var(--sp-4);
    padding: 0 0 var(--sp-2);
    border-bottom: var(--bar-h) solid var(--color-fg);
    color: var(--color-fg);
    font-size: var(--fs-2);
    font-weight: 700;
    line-height: var(--lh-heading);
  }
  #sidebar .module-body { margin: 0; padding: 0; }
  #sidebar .categories-module { margin: 0; padding: 0; }
  #sidebar .categories-module li { margin: 0; padding: var(--sp-2) 0; border-bottom: 1px solid var(--color-border); list-style: none; }
  #sidebar .categories-module li::before { margin-right: var(--sp-1); color: var(--color-muted); }

  @media screen and (max-width: 568px) {
    .news td:first-child, .news td:last-child { padding: var(--sp-4) 0; border: 0; }
    .items-row { margin: 0; }
  }
}
/*
 * 部品：データの表（会社概要 #gaiyo-table、項目と説明の表 .table-striped、枠のある表 .table1）。
 * 縦の罫線と縞模様は付けず、行の間の細い線で区切る。
 */
@layer components {
  /* 会社概要：見出しの列は補助の文字色 */
  #gaiyo-table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--color-border); }
  #gaiyo-table th, #gaiyo-table td { padding: var(--sp-4) var(--sp-5); border-bottom: 1px solid var(--color-border); vertical-align: top; }
  #gaiyo-table th { width: var(--w-th); color: var(--color-muted); font-weight: 500; text-align: left; }
  #gaiyo-table td p { margin: 0; }

  .table-striped { border-top: 1px solid var(--color-border); }
  .table-striped td, .table-striped th { padding: var(--sp-5); border-bottom: 1px solid var(--color-border); vertical-align: middle; }

  .table1 { border-top: 1px solid var(--color-border); }
  .table1 th, .table1 td { padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--color-border); background: var(--color-bg); }
  .table1 th { background: var(--color-surface); font-weight: 500; }

  @media screen and (max-width: 568px) {
    #gaiyo-table th { width: auto; padding-left: 0; padding-right: 0; white-space: nowrap; }
    #gaiyo-table td { padding-right: 0; }
    .table-striped td, .table-striped th { padding: var(--sp-3) var(--sp-2); }
    .table-striped td:first-child { white-space: nowrap; padding-right: var(--sp-3); }
    .table1 th, .table1 td { padding: var(--sp-2) var(--sp-1); font-size: var(--fs-1); }
    /* 製品のポイント：アイコンの行と説明の行を詰める */
    .table-striped.point td:first-child { padding-bottom: 0; }
  }
}
/*
 * 部品：タブ（Regular Labs Tabs。会社概要・会社詳細）。切り替えの表示（.tab-pane の display）は vendor 層の style.min.css が持つ。
 * 選んでいないタブは補助の文字色、選択中は墨色にアクセントの下線。
 */
@layer components {
  .rl_tabs .nav-tabs { display: flex; margin: 0; padding: 0; border-bottom: 1px solid var(--color-border); list-style: none; }
  .rl_tabs .nav-tabs::before, .rl_tabs .nav-tabs::after { content: none; }
  .rl_tabs .nav-tabs > li { float: none; }
  /* a の display は vendor の style.min.css が block !important で持つ */
  .rl_tabs .nav-tabs > li > a {
    min-height: var(--touch);
    margin: 0;
    padding: var(--sp-3) var(--sp-5);
    border: 0;
    border-bottom: var(--bar-h) solid transparent;
    border-radius: var(--radius-0);
    background: none;
    box-shadow: none;
    color: var(--color-muted);
    font-size: var(--fs-3);
    font-weight: 700;
    line-height: var(--lh-heading);
    text-decoration: none;
    /* 見出しは文節の切れ目で折り返す */
    word-break: auto-phrase;
    overflow-wrap: break-word;
    /* vendor の色の切り替えの動き（transition-duration）を止める（動かすのは transform と opacity だけ） */
    transition: none;
  }
  .rl_tabs .nav-tabs > li > a:hover, .rl_tabs .nav-tabs > li > a:focus {
    border-color: transparent;
    background: none;
    box-shadow: none;
    color: var(--color-fg);
  }
  .rl_tabs .nav-tabs > li.active > a,
  .rl_tabs .nav-tabs > li.active > a:hover,
  .rl_tabs .nav-tabs > li.active > a:focus {
    border-color: transparent;
    border-bottom-color: var(--color-accent);
    background: none;
    color: var(--color-fg);
    cursor: default;
  }
  .rl_tabs .tab-content { overflow: visible; }
  .rl_tabs.outline_content > .tab-content { padding: 0; border: 0; border-radius: var(--radius-0); }
  .rl_tabs.outline_content > .tab-content > .tab-pane { padding: var(--sp-6) 0; }

  /* タブを切り替えたとき：表示された中身が少し下から収まる（何が変わったかを示す）。
     ページを開いたときは動かさない（visual-design.md §4.4：開いたときの動きはメインビジュアルだけ）。
     vendor の script.min.js は、読み込みの 1 秒後に .rl_tabs へ has_effects を付ける。その後にクリックで表示された
     .tab-pane だけが「表示されていなかった要素が表示された」ことになり、@starting-style から遷移する。
     読み込み時に表示中の .tab-pane は、has_effects が付いても値が変わらないため動かない */
  .rl_tabs.has_effects .tab-content > .tab-pane.active {
    transition: opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
  }
  @starting-style {
    .rl_tabs.has_effects .tab-content > .tab-pane.active { opacity: 0; transform: translateY(var(--sp-1)); }
  }

  /* スマホ：見出しを等幅の列に並べ、文字は普通に折り返す */
  @media screen and (max-width: 568px) {
    .rl_tabs .nav-tabs > li { flex: 1 1 0; min-width: 0; }
    /* 見出しの語（例「シニア・コンサルタント」）が途中で 1〜3 文字だけ次の行に送られないよう、1 段小さくし字間を詰める */
    .rl_tabs .nav-tabs > li > a { padding: var(--sp-3) var(--sp-2); font-size: var(--fs-1); letter-spacing: 0; text-align: center; }
    .rl_tabs.outline_content > .tab-content > .tab-pane { padding: var(--sp-5) 0; }
  }
}
/*
 * 部品：フォーム（お問い合わせ・応募。RSForm の HTML #userForm）。ラベルは入力欄の上、エラーの文は下。
 * エラーの表示の切り替え（.formNoError を隠す）は vendor 層の front.css が持ち、文の見た目はここで持つ
 * （src/components/legacy-form-client.ts が formNoError ⇔ formError を切り替える。form-api.md）。
 * 主な操作の「送信する」はアクセント色（visual-design.md §4.2）。
 */
@layer components {
  #userForm .span12 { padding: var(--sp-6); border: 1px solid var(--color-border); }
  #userForm .rsform-block {
    display: block;
    width: auto;
    margin: 0;
    padding: var(--sp-4) 0;
    border-bottom: 1px solid var(--color-border);
  }
  #userForm .rsform-block > label {
    display: block;
    width: auto;
    padding: 0 0 var(--sp-2);
    color: var(--color-fg);
    font-weight: 700;
    text-align: left;
  }
  #userForm .rsform-block .formControls { display: block; margin-left: 0; padding: 0; }
  #userForm .rsform-block-submit { padding-top: var(--sp-6); border-bottom: 0; }
  #userForm .rsform-block-submit .formControls { text-align: center; }

  /* 入力欄：1 行の欄は最大幅を決め、複数行の欄は幅いっぱい */
  #userForm input[type="text"], #userForm input[type="email"], #userForm input[type="tel"] { width: 100%; max-width: var(--form-field-max); }
  #userForm textarea { width: 100%; }
  /* 迷惑投稿対策の見えない欄（form-api.md）は、style 属性の大きさ（1px）のまま画面外に置く */
  #userForm input[name="website"] { min-height: 0; padding: 0; border: 0; }

  strong.formRequired { margin-left: var(--sp-2); color: var(--color-danger); font-size: var(--fs-1); font-weight: 700; font-style: normal; }

  /* 丸・四角の選択欄：押せる範囲はラベル全体（高さ 44px 以上）。入力欄そのものも 44px の正方形にし、外側 12px は透明な枠、
     内側の 20px に印を描く（押せる範囲と見た目の大きさを分ける）。印の左端はラベルの左端にそろえる */
  #userForm label.radio, #userForm label.checkbox {
    display: inline-flex;
    align-items: center;
    min-height: var(--touch);
    margin: 0 var(--sp-4) 0 0;
    padding: 0;
    cursor: pointer;
  }
  #userForm input[type="radio"], #userForm input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    flex: none;
    width: var(--touch);
    height: var(--touch);
    margin: 0 0 0 calc((var(--touch) - var(--control)) / -2);
    border: calc((var(--touch) - var(--control)) / 2) solid transparent;
    border-radius: var(--radius-0);
    background: var(--color-bg) padding-box;
    box-shadow: inset 0 0 0 1px var(--color-muted);
    cursor: pointer;
  }
  #userForm input[type="radio"] { border-radius: 50%; }
  /* 選んだとき：線をアクセント色にし、内側に少し間をあけて塗る */
  #userForm input[type="radio"]:checked, #userForm input[type="checkbox"]:checked {
    background-color: var(--color-accent);
    box-shadow: inset 0 0 0 1px var(--color-accent), inset 0 0 0 var(--sp-1) var(--color-bg);
  }
  #userForm input[type="radio"]:focus-visible, #userForm input[type="checkbox"]:focus-visible { outline-offset: calc((var(--touch) - var(--control)) / -2); }

  /* エラーの表示 */
  .formValidation { display: block; }
  .formValidation .formError { color: var(--color-danger); font-size: var(--fs-1); font-weight: 700; }
  .formRed { color: var(--color-danger); font-weight: 700; }

  /* 送信する */
  #submit.rsform-submit-button {
    min-height: var(--touch);
    padding: var(--sp-3) var(--sp-8);
    border: 1px solid var(--color-accent);
    border-radius: var(--radius-s);
    background: var(--color-accent);
    color: var(--color-accent-fg);
    font-family: var(--font-ja);
    font-size: var(--fs-3);
    font-weight: 700;
    line-height: var(--lh-heading);
    letter-spacing: var(--ls-heading);
    transition: transform var(--dur-press) var(--ease-out);
  }
  #submit.rsform-submit-button:hover { border-color: var(--color-fg); background: var(--color-fg); color: var(--color-bg); }
  #submit.rsform-submit-button:active { transform: scale(var(--press-scale)); }

  @media screen and (max-width: 568px) {
    #userForm .span12 { padding: var(--sp-4); }
  }
}
/* 部品：ページ送り（お知らせ一覧の .pagination）。番号を 44px の箱で横に並べ、件数は下の行に置く */
@layer components {
  .pagination { margin: var(--sp-5) 0; }
  /* 外側の .pagination は「件数」と番号の列を縦に並べ、件数を下にする（HTML では件数が先） */
  .pagination:has(> .counter) { display: flex; flex-direction: column-reverse; align-items: flex-start; gap: var(--sp-3); }
  .pagination .pagination { margin: 0; }
  .pagination ul { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin: 0; padding: 0; list-style: none; }
  .pagination ul > li > a, .pagination ul > li > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--touch);
    min-height: var(--touch);
    padding: var(--sp-2) var(--sp-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-s);
    background: var(--color-bg);
    color: var(--color-fg);
    line-height: var(--lh-heading);
    text-decoration: none;
  }
  .pagination ul > li > a:hover { border-color: var(--color-fg); }
  .pagination ul > .disabled > a, .pagination ul > .disabled > span { color: var(--color-muted); cursor: default; }
  .pagination .counter { float: none; margin: 0; color: var(--color-muted); font-size: var(--fs-1); }
}
/*
 * 部品：吹き出し（Bootstrap の tooltip。記事の前後の移動 .hasTooltip を指したとき、JavaScript が body の末尾に
 * .tooltip.fade.top.in を作る）。現行の bootstrap.min.css の位置と表示の指定を新しい値で持つ。
 */
@layer components {
  .fade { opacity: 0; transition: opacity var(--dur-fast) var(--ease-out); }
  .fade.in { opacity: 1; }
  .tooltip {
    position: absolute;
    z-index: var(--z-tooltip);
    display: block;
    max-width: var(--tooltip-w);
    padding: var(--tooltip-arrow);
    font-size: var(--fs-1);
    line-height: var(--lh-heading);
    visibility: visible;
    opacity: 0;
  }
  .tooltip.in { opacity: var(--opacity-tooltip); }
  .tooltip.top { margin-top: calc(var(--sp-1) * -1); }
  .tooltip-inner {
    padding: var(--sp-1) var(--sp-2);
    border-radius: var(--radius-s);
    background-color: var(--color-fg);
    color: var(--color-bg);
    text-align: left;
    text-decoration: none;
  }
  .tooltip-arrow { position: absolute; width: 0; height: 0; border-style: solid; border-color: transparent; }
  .tooltip.top .tooltip-arrow {
    bottom: 0;
    left: 50%;
    margin-left: calc(var(--tooltip-arrow) * -1);
    border-width: var(--tooltip-arrow) var(--tooltip-arrow) 0;
    border-top-color: var(--color-fg);
  }
}
/* 部品：個人情報の取扱いの箱（お問い合わせ・応募フォームの上の .policy）。高さを決めて中を送って読む */
@layer components {
  .policy {
    height: var(--privacy-box-h);
    margin-top: var(--sp-6);
    margin-bottom: var(--sp-7);
    padding: var(--sp-4);
    overflow: auto;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
  }
  .policy h4 { color: var(--color-fg); font-size: var(--fs-2); font-weight: 700; }
  .policy p, .policy table th, .policy table td { color: var(--color-muted); font-size: var(--fs-1); font-weight: 400; }
  .policy table { border-top: 1px solid var(--color-border); }
  .policy table tr { border-bottom: 1px solid var(--color-border); }
  .policy table tr th { width: 30%; font-weight: 700; text-align: left; }
}
/*
 * content 層：現行 HTML への適合。本文中のインラインの色・大きさ・書体の正規化、現行の図、現行の見出しクラス
 * （kiji-midashi*・highlight-dark など）、現行の表組み（2 列の表 table.clm2 など）、ページ固有の配置。
 * ページ固有の規則は body の id（#index・#news・#policy・#pii など）で絞り、理由を書く。
 */
@layer content {
  /* ---- 見出し：3 段階（大見出し・中見出し・小見出し）と、ラベル --------------------------------------- */
  /* 大見出し：左寄せ、短い墨色の線と細い罫線 */
  .kiji-midashi-2 {
    position: relative;
    margin: var(--sp-8) 0 var(--sp-6);
    padding-bottom: var(--sp-4);
    border-bottom: 1px solid var(--color-border);
    color: var(--color-fg);
    font-size: var(--fs-5);
    font-weight: 700;
    letter-spacing: var(--ls-heading);
    text-align: left;
  }
  .kiji-midashi-2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: var(--bar);
    height: var(--bar-h);
    background: var(--color-fg);
  }
  /* 中見出し：左の太い線 */
  .kiji-midashi {
    margin: var(--sp-7) 0 var(--sp-4);
    padding: 0 0 0 var(--sp-4);
    border-left: var(--mark) solid var(--color-fg);
    color: var(--color-fg);
    font-size: var(--fs-4);
    font-weight: 700;
    line-height: var(--lh-heading);
    letter-spacing: var(--ls-heading);
  }
  /* 現行の見出しクラス（見出し要素でないものを含む）も、文節の切れ目で折り返す（base.css の見出しと同じ） */
  .kiji-midashi, .kiji-midashi-2, .kiji-midashi-3, .highlight-dark, .item-page-title { word-break: auto-phrase; overflow-wrap: break-word; }
  /* 方針の文（品質方針の基本理念・3 つの方針）は、現行 HTML では方針の囲み（.box.pd50）の中の見出し要素で書かれている。
     文として読むものなので文節で区切らず、各行を埋めて普通に折り返す（文節で区切ると行の長さが大きくばらつく） */
  .box.pd50 :is(h1, h2, h3, h4, h5, h6) { word-break: normal; }
  /* 見出しの中のアイコンは補助の文字色（丸の中の白抜きのアイコン .fa-inverse は除く） */
  .kiji-midashi .fa, h3 .fa:not(.fa-inverse), h4 .fa:not(.fa-inverse) { color: var(--color-muted); }
  /* 小見出し：細い罫線 */
  .kiji-midashi-3 {
    margin: var(--sp-6) 0 var(--sp-3);
    padding: 0 0 var(--sp-2);
    border-bottom: 1px solid var(--color-border);
    color: var(--color-fg);
    font-size: var(--fs-3);
    font-weight: 700;
  }
  /* ラベル：太字の本文の大きさ。黒い帯はやめ、面の色と左の線にする */
  .highlight-dark {
    display: block;
    margin: var(--sp-6) 0 var(--sp-3);
    padding: var(--sp-2) var(--sp-4);
    border-left: var(--mark) solid var(--color-fg);
    background: var(--color-surface);
    color: var(--color-fg);
    font-size: var(--fs-2);
    font-weight: 700;
    letter-spacing: var(--ls-heading);
  }

  /* ---- 本文中のインラインの指定（style 属性）を新しい外観にそろえる。赤字の強調は太字で残す ---------- */
  /* !important：現行 HTML の style 属性（色・大きさ・書体・背景）を打ち消すため */
  #comp-wrap [style*="color"] { color: inherit !important; }
  #comp-wrap [style*="font-size"] { font-size: inherit !important; }
  #comp-wrap [style*="font-family"] { font-family: inherit !important; }
  #comp-wrap span[style*="background"] { background: none !important; }
  #comp-wrap span[style*="ff0000"] { font-weight: 700; }

  /* PDF へのリンクの印（図柄は components/icon.css）。色はリンクと同じ */
  a[href$=".pdf"]::before { margin-right: var(--sp-1); }

  /* ---- 2 列の表（現行の table.clm2）：同じ幅の 2 列。写真の列があるときは本文 7：写真 5 ------------------- */
  table.clm2, table.clm2 > tbody { display: block; width: 100%; }
  table.clm2 > tbody > tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-6); }
  table.clm2 > tbody > tr:has(> td.photo) { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
  /* 2 列目が幅 40% のセル（.w40：認証マークなど）のときは、本文の列を広く 3：2 */
  table.clm2 > tbody > tr:has(> td.w40:last-child) { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
  /* 図（事業内容・事例）と「Oracle ERP Cloud ラインナップ」の表は 1 列で全幅 */
  table.clm2 > tbody > tr:has(img[src*="chart.png"]) { grid-template-columns: minmax(0, 1fr); }
  /* 列の幅は grid が持つ（セルの幅の補助クラス .w50 より優先させるため min-width: 100%） */
  table.clm2 > tbody > tr > td { display: flex; flex-direction: column; width: auto; min-width: 100%; padding: 0; }
  table.clm2 td img { max-width: 100%; height: auto; }
  table.clm2 td.photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }

  /* ---- 事業内容（#index）の2つの事業：説明と写真を左右に並べる（重ねない） ---------------------------- */
  .imgBox { width: 100%; }
  .imgBox td { display: flex; position: relative; align-items: flex-start; gap: var(--sp-7); padding: 0 0 var(--sp-7); }
  .imgBox.crowd td { padding: 0 0 var(--sp-5); }
  .imgBox .inner { position: static; flex: 1 1 0; width: auto; }
  .imgBox .inner .box { margin: 0; padding: 0; background: none; }
  /* 写真の style 属性の float: right は、flex の中の要素には効かないため打ち消さない */
  .imgBox td img { flex: 0 0 45%; width: 45%; height: auto; aspect-ratio: 8 / 5; object-fit: cover; }
  .imgBox h3 { margin: 0 0 var(--sp-4); color: var(--color-fg); font-size: var(--fs-4); font-weight: 700; }

  /* ---- 現行の図（色が焼き込まれた画像）は、面の色の上に「資料」として置き、本来の大きさまで広げる ---------- */
  #comp-wrap p:has(> img[src*="/images/business/"]), #comp-wrap h4:has(> img[src*="chart.png"]) {
    padding: var(--sp-5);
    background: var(--color-surface);
    text-align: center;
  }
  #comp-wrap img[src*="/images/business/"] { display: block; width: auto; max-width: 100%; height: auto; margin: 0 auto; }
  #comp-wrap h4 img[src*="chart.png"] { margin-top: var(--sp-4); }

  /* ---- 現行の箇条書き（ul.icon）：記号はアイコン、色は補助の文字色 ------------------------------------- */
  ul.icon { margin: 0; padding: 0; }
  ul.icon li { position: relative; margin: var(--sp-1) 0; padding: 0 0 0 var(--sp-5); list-style: none; }
  /* 記号（図柄は components/icon.css）は 1 行目の縦の中央 */
  ul.icon li::before { position: absolute; top: calc((1lh - 1em) / 2); left: 0; color: var(--color-muted); }

  /* mcframe「製品のポイント」（丸の中のアイコンは components/icon.css の .fa-stack） */
  .point h4 { color: var(--color-fg); font-size: var(--fs-3); font-weight: 700; }

  /* Google マップ：読み込めなくても白い空白にならない */
  iframe[src*="google.com/maps"] { width: 100%; max-width: 100%; border: 0; background: var(--color-surface); }

  /* ---- 採用情報の帯（会社詳細 #work） ------------------------------------------------------------------ */
  /* 採用情報の帯：面の色。求人募集の入口の表（table.w80）は本文の幅いっぱいに広げる（幅の補助クラスより優先させるため min-width） */
  .bgRecruit { background: var(--color-surface); }
  .bgRecruit table.w80 { min-width: 100%; }
  .bgRecruit table.w80 td { width: 50%; vertical-align: top; }
  /* 2 つの入口の間（入口の部品は外側に余白を持たない） */
  .bgRecruit table.w80 td + td { padding-left: var(--sp-4); }
  /* 会社詳細の入口は本文の中に置く。面の色の囲み（入口の部品のまわりの灰色の縁）にしない */
  .bgRecruit:not(.section) { background: none; }
  /* お知らせ一覧（#news）：記事の間に細い線 */
  #news .item-separator { margin: var(--sp-7) 0 0; border-top: 1px solid var(--color-border); }

  /* 品質方針（#policy）：方針の文は本文の大きさの太字。認証マークは大きくしすぎない */
  #policy .box h4 { margin: 0; font-size: var(--fs-3); line-height: var(--lh-body); letter-spacing: var(--ls-body); }
  #policy img[src*="/images/company/iso_"] { width: auto; max-width: var(--cert-logo-max); height: auto; }

  /* ---- スマホ（現行の responsive.css と同じ境目） ---------------------------------------------------- */
  @media screen and (max-width: 568px) {
    .kiji-midashi-2 { margin: var(--sp-7) 0 var(--sp-5); padding-bottom: var(--sp-3); font-size: var(--fs-4); }

    /* 本文の表は 1 列に積む（現行と同じ）。表として読む .table-cell は表のまま */
    .blog table, .blog tbody, .blog tr, .blog td, .blog th,
    .item-page table, .item-page tbody, .item-page tr, .item-page td, .item-page th { display: block; }
    .blog td img, .blog th img, .item-page td img, .item-page th img { display: block; margin: 0 auto; }
    .blog table.table-cell, .blog table.table-cell > tbody, .item-page table.table-cell, .item-page table.table-cell > tbody { display: table; width: 100%; }
    .blog table.table-cell tr, .item-page table.table-cell tr { display: table-row; }
    .blog table.table-cell th, .blog table.table-cell td, .item-page table.table-cell th, .item-page table.table-cell td { display: table-cell; }

    table.clm2 > tbody > tr, table.clm2 > tbody > tr:has(> td.photo), table.clm2 > tbody > tr:has(> td.w40:last-child) { grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); }
    /* 写真を先に、説明を後に縦に並べる（上の .blog td の display: block より後に書く） */
    .imgBox td { display: flex; flex-direction: column; gap: var(--sp-4); padding-bottom: var(--sp-5); }
    .imgBox td img { order: 1; flex-basis: auto; width: 100%; }
    .imgBox .inner { order: 2; flex-basis: auto; }

    /* 現行の図：本来の幅で表示し、横に送って見る */
    #comp-wrap p:has(> img[src*="AMOBPO"]), #comp-wrap p:has(> img[src*="cost.png"]), #comp-wrap h4:has(> img[src*="chart.png"]) { overflow-x: auto; }
    #comp-wrap img[src*="AMOBPO"], #comp-wrap img[src*="cost.png"], #comp-wrap h4 img[src*="chart.png"] { width: var(--diagram-min-sp); max-width: none; }

    .bgRecruit table.w80 td { width: auto; }
    .bgRecruit table.w80 td + td { padding-left: 0; padding-top: var(--sp-4); }

    #pii ul ul, #pii ol { padding-left: 1.25em; }
  }
}
/*
 * utilities 層：現行の補助クラス（mt10・taC・w40 など）を、新しい値の段階で定義する。
 * 一番上の層なので、部品や現行 HTML への適合（content）とぶつかる定義は置かない。次の補助クラスは意味を変えている：
 *   taC  中央寄せは囲み（.box）と小見出しの h4 だけ。本文の段落・見出しは左寄せにそろえる（中央寄せの見出しを使わない）
 *   taR  幅 568px 以下では左寄せ（右寄せのリンクは、折り返すと読みにくい）
 *   fcSky・fcBlue  定義しない（アクセント色はリンク・操作・選択中だけに使う。周りの文字色のまま）
 *   sdw  定義しない（影の飾りを使わない）
 *   unstyled  定義しない（付いているのはメニューの子のリストだけで、余白と記号はナビゲーション・フッター・スマホメニューが持つ）
 *   pd30 面のある囲み（.bgGray）だけに付ける。pd50 は上下だけ（面の無い囲みの文を本文の左端にそろえる）
 * 現行で !important だった mt00・mt10 は、層の順番で優先されるため !important を付けない。
 */
@layer utilities {
  /* 文字の配置 */
  .taL { text-align: left; }
  .box.taC, h4.taC { text-align: center; }
  .taR { text-align: right; }

  /* 文字の大きさ：段階にそろえる。中見出し（.kiji-midashi）は見出しの大きさのまま */
  .fzSS, .fzS { font-size: var(--fs-1); }
  .fzL:not(.kiji-midashi), .fzLL { font-size: var(--fs-3); }
  .fzLLL { font-size: var(--fs-4); }

  /* 面・線 */
  .bgGray { background-color: var(--color-surface); }
  .bd { border: 1px solid var(--color-border); }

  /* 回り込み */
  .flL { display: inline; float: left; }
  .flR { display: inline; float: right; }

  /* 幅 */
  .w20 { width: 20%; }
  .w40 { width: 40%; }
  .w50 { width: 50%; }
  .w80 { width: 80%; }
  .w90 { width: 90%; }

  /* 余白 */
  .mt00 { margin-top: 0; }
  .mt10 { margin-top: var(--sp-3); }
  .mt20 { margin-top: var(--sp-5); }
  .mt50 { margin-top: var(--sp-8); }
  .mr30 { margin-right: var(--sp-6); }
  .mb00 { margin-bottom: 0; }
  .mb10 { margin-bottom: var(--sp-3); }
  .mb20 { margin-bottom: var(--sp-5); }
  .mb30 { margin-bottom: var(--sp-6); }
  .mg-auto { margin-left: auto; margin-right: auto; }
  /* 余白：面のある囲み（.bgGray）だけに付ける。面の無い囲みでは文を本文の左端にそろえる */
  .bgGray.pd30 { padding: var(--sp-6); }
  /* 左右の余白は付けない（囲みの中の文を本文の左端にそろえる） */
  .pd50 { padding: var(--sp-7) 0; }

  /* 表示の切り替え：PC だけ（sphidden）・スマホだけ（pchidden） */
  .pchidden { display: none; }

  @media screen and (max-width: 568px) {
    .taR { text-align: left; }
    .flL, .flR { display: block; float: none; }
    .w20, .w40, .w50, .w80, .w90 { width: auto; }
    .mr30 { margin-right: 0; }
    .bgGray.pd30 { padding: var(--sp-4); }
    .pd50 { padding: var(--sp-5) 0; }
    .sphidden { display: none; }
    .pchidden { display: block; }
  }
}
/*
 * motion 層：動き（visual-design.md §4 の 4）。最後の状態は他の層が持ち、この層は「動く前の状態」と遷移だけを持つ。
 * 動く前の状態は、JavaScript が動くとき（<html class="js">）にだけ当てる。JavaScript が無いとき・動きを減らす設定のときは、
 * 最初から最後の状態で表示する（is-still は src/scripts/site.ts が付ける）。動かすのは transform と opacity だけ。
 */
@layer motion {
  /* ①画面に入った要素：下から浮かび上がりながら現れる（1 回だけ） */
  .js:not(.is-still) [data-anim] { opacity: 0; transform: translateY(var(--reveal-shift)); }
  .js:not(.is-still) [data-anim].is-in {
    opacity: 1;
    transform: none;
    transition: opacity var(--dur-reveal) var(--ease-soft), transform var(--dur-reveal) var(--ease-soft);
    transition-delay: calc(var(--i, 0) * var(--stagger-reveal));
  }

  /* ②メインビジュアル（トップだけ）：見出しを行ごとに下から、画像は 1.06 倍から元の大きさに戻りながら */
  .js:not(.is-still) .top-hero__line > span { transform: translateY(110%); }
  .js.is-loaded:not(.is-still) .top-hero__line > span { transform: none; transition: transform var(--dur-hero) var(--ease-soft); }
  .js.is-loaded:not(.is-still) .top-hero__line:nth-child(2) > span { transition-delay: var(--delay-hero-line); }
  .js:not(.is-still) .top-hero__art { opacity: 0; }
  .js:not(.is-still) .top-hero__art img { transform: scale(var(--hero-zoom)); }
  .js.is-loaded:not(.is-still) .top-hero__art { opacity: 1; transition: opacity var(--dur-hero) var(--ease-soft); }
  .js.is-loaded:not(.is-still) .top-hero__art img { transform: none; transition: transform var(--dur-hero-img) var(--ease-soft); }

  /* ページの先頭へ戻るボタン：100px 以上スクロールしたときだけ見せる（site.ts が data-show を付ける） */
  .js .site-pagetop { opacity: 0; visibility: hidden; transform: translateY(var(--sp-2)); transition: opacity var(--dur-ui) var(--ease-out), transform var(--dur-ui) var(--ease-out), visibility var(--dur-none) linear var(--dur-ui); }
  .js .site-pagetop[data-show] { opacity: 1; visibility: visible; transform: none; transition-delay: var(--dur-none); }
}
