@charset "utf-8";

/*-------------------------------------------------------------------------------------------*/
/* 　Chat GPTによる指摘
/*-------------------------------------------------------------------------------------------*/

/* ===== Modern additive enhancements (non-breaking) ===== */

/* フォーカス可視化（キーボード操作の見やすさUP） */
:focus:not(:focus-visible){ outline: 0; }
:focus-visible{
  outline: 2px solid var(--link);
  outline-offset: 2px;
}
a:focus-visible{ text-decoration: underline; }

/* 選択色を統一 */
::selection{ background: rgba(255,204,0,.35); }

/* 隠し属性の明示 */
[hidden]{ display: none !important; }

/* 検索オーバーレイ中のスクロール禁止（JSで .is-search-open を付与） */
html.is-search-open, body.is-search-open{ overflow: hidden; }

/* ↓アニメやトランジションを苦手な人向けに無効化（視覚的な見た目はほぼ同じ） */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  /* 画像ホバーの過度なエフェクトを無効化 */
  a img:hover{
    filter: none !important;
    transform: none !important;
  }
  /* フェードイン類を即時表示（CSSに .scroll-in を付与するJSを無視できるように） */
  .fadein,
  .fadein [class^="column-box"] .box,
  .fadein .gallery-box div,
  .faq-box .accordion,
  .page-gallery .box,
  .download.fadein div a,
  #footer-btn a,
  #service .box img,
  #service .box div,
  .step-box .detail,
  .case-list .case,
  .page-staff-big .box,
  .page-staff-small .box,
  .history .block .content,
  .tab [class^="tab"],
  .tab .tab-detail{
    opacity: 1 !important;
    transform: none !important;
  }
}

/* 画像ホバーのパフォーマンス配慮（見た目を崩さず軽量化） */
a img{ backface-visibility: hidden; transform: translateZ(0); }

/* ツールチップ：狭い画面でのはみ出し抑制（既存スタイルを尊重しつつ） */
@media (max-width: 640px){
  .tooltip-top:after{
    width: min(220px, 90vw);
    left: 50%;
    transform: translateX(-50%);
    margin-left: 0;
  }
}

/* キーボード操作しやすいように、クリック系の丸ボタンもフォーカスリング */
.open-btn:focus-visible,
.close-btn:focus-visible,
#page-scroll .fa-angle-up:focus-visible,
.sidenbtn:focus-visible{
  outline: 2px solid rgba(0,0,0,.35);
  outline-offset: 3px;
}

/* スティッキータブの細かなガタつきを抑える（GPUヒント） */
ul.tab-registrant{ will-change: transform; }



/*-------------------------------------------------------------------------------------------*/
/* 　リセット
/*-------------------------------------------------------------------------------------------*/

/* --- Modern minimal reset (安全版) --- */
*,
*::before,
*::after {
    box-sizing: border-box;
}
html,
body {
    height: 100%;
}
body {
    margin: 0;
    -webkit-text-size-adjust: 100%;
    text-rendering: optimizeLegibility;
}
img,
picture,
video,
canvas,
svg {
    max-width: 100%;
}
input,
button,
textarea,
select {
    color: inherit;
}
button,
[type="button"],
[type="submit"] {
    cursor: pointer;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
th,
td {
    padding: 0;
    text-align: left;
    vertical-align: top;
}
:where(ul[role="list"], ol[role="list"]) {
    list-style: none;
    margin: 0;
    padding: 0;
}
:focus:not(:focus-visible) {
    outline: 0;
}
:focus-visible {
    outline: 2px solid var(--link, #0b79d0);
    outline-offset: 2px;
}
a:not([class]) {
    text-decoration-skip-ink: auto;
}
:focus { outline: none; } /* まず消す */
.user-is-tabbing :focus {
  outline: 2px solid var(--focus-ring, var(--sub));
  outline-offset: 2px;
}

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	vertical-align: baseline;
	background: transparent;
	list-style: none;
}
div#watch-time  {
	list-style: none;
}
ins {
	text-decoration: none;
}
del {
	text-decoration: line-through;
}
.clear {
	clear:both; 
	font-size:0; 
	line-height:0;
}
html {
    -webkit-font-smoothing: antialiased;
}
h1,
h2,
h3,
h4,
h5,
h6,
table th {
	font-weight: normal;	
}





/*-------------------------------------------------------------------------------------------*/
/* 　グリッド
/*-------------------------------------------------------------------------------------------*/
.flex-box {
    box-sizing: border-box;
    display: flex;
    flex: 0 1 auto;
    flex-flow: row wrap;
}
.w1,
.w2,
.w25,
.w3,
.w4,
.w5,
.w6,
.w7,
.w8,
.w9,
.w10,
.w11,
.w12 {
    box-sizing: border-box;
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 1;
    margin: 0 4% 0 0;
}
.w1:last-child,
.w2:nth-child(6n),
.w25:nth-child(5n),
.w3:nth-child(4n),
.w4:nth-child(3n),
.w5:last-child,
.w6:nth-child(2n),
.w7:last-child,
.w8:last-child,
.w9:last-child,
.w10:last-child,
.w11:last-child,
.w12:last-child {
    margin-right: 0;
}
.w1 {
    width: 4.6666666667%;
    max-width: 4.6666666667%;
}
.w2 {
    width: 13.3333333333%;
    max-width: 13.3333333333%;
}
.w25 {
    width: 16.8%;
    max-width: 16.8%;
}
.w3 {
    width: 22%;
    max-width: 22%;
}
.w4 {
    width: 30.6666666667%;
    max-width: 30.6666666667%;
}
.w5 {
    width: 39.3333333333%;
    max-width: 39.3333333333%;
}
.w6 {
    width: 48%;
    max-width: 48%;
}
.w7 {
    width: 56.6666666667%;
    max-width: 56.6666666667%;
}
.w8 {
    width: 65.3333333333%;
    max-width: 65.3333333333%;
}
.w9 {
    width: 74%;
    max-width: 74%;
}
.w10 {
    width: 82.6666666667%;
    max-width: 82.6666666667%;
}
.w11 {
    width: 91.3333333333%;
    max-width: 91.3333333333%;
}
.w12 {
    width: 100%;
    max-width: 100%;
    margin-right: 0;
}
.flex-box [class^="w"]:last-of-type {
    margin-right: 0;
}
.flex-box [class^="w"] img {
    margin-bottom: 10px;
}



/*-------------------------------------------------------------------------------------------*/
/* 　margin
/*-------------------------------------------------------------------------------------------*/
.mt00 { margin-top: 0 !important;}
.mt05 { margin-top: 5px;}
.mt10 { margin-top:10px;}
.mt15 { margin-top:15px;}
.mt20 { margin-top:20px;}
.mt25 { margin-top:25px;}
.mt30 { margin-top:30px;}
.mt35 { margin-top:35px;}
.mt40 { margin-top:40px;}
.mt45 { margin-top:45px;}
.mt50 { margin-top:50px;}
.mr00 { margin-right: 0 !important;}
.mb05 { margin-bottom: 5px;}
.mb10 { margin-bottom:10px;}
.mb15 { margin-bottom:15px;}
.mb20 { margin-bottom:20px;}
.mb25 { margin-bottom:25px;}
.mb30 { margin-bottom:30px;}
.mb35 { margin-bottom:35px;}
.mb40 { margin-bottom:40px;}
.mb45 { margin-bottom:45px;}
.mb50 { margin-bottom:50px;}
.mb60 { margin-bottom:60px;}
.mb70 { margin-bottom:70px;}
.mb80 { margin-bottom:80px;}
.mb90 { margin-bottom:90px;}
.mb100 { margin-bottom:100px;}
.mb110 { margin-bottom:110px;}
.mb120 { margin-bottom:120px;}
.mb130 { margin-bottom:130px;}
.mb140 { margin-bottom:140px;}
.mb150 { margin-bottom:150px;}
.mb160 { margin-bottom:160px;}
.mb170 { margin-bottom:170px;}
.mb180 { margin-bottom:180px;}
.mb190 { margin-bottom:190px;}
.mb200 { margin-bottom:200px;}
.mb210 { margin-bottom:210px;}
.mb220 { margin-bottom:220px;}
.mb230 { margin-bottom:230px;}
.mb240 { margin-bottom:240px;}
.mb250 { margin-bottom:250px;}



/*-------------------------------------------------------------------------------------------*/
/* 　プリント
/*-------------------------------------------------------------------------------------------*/

@media print{
body {
    background: none !important;
}

/*-------- メニュー --------*/
#nav-box {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: auto;
}
#mainNav .pullMain {
    position: relative;
    display: flex;
    justify-content: flex-end;
    z-index: 100;
}
#mainNav .pullMain li {
    text-align: center;
}
#mainNav .pullMain li a {
    display: block;
    color: var(--sub);
    padding: 7px 10px;
}
#mainNav .has-sub {
    position: relative;
}
#mainNav .has-sub ul {
    position: absolute;
    height: 0;
    left: 0;
    margin-top: -20px;
    opacity: 0;
    pointer-events: none;
}
#mainNav .has-sub > a:after {
    content: "\e944";
    font-family: "icomoon";
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 1rem;
}
   
/*-------- コンテンツ --------*/
#header-top-img,
#header-top-img .slide-media img {
    height: 600px !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}
[id^="news"],
.full-width {
    position: relative !important;
    left: 50% !important;
    width: 100% !important;
    transform: translateX(-50%) !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}
[id^="news"] {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    background: none !important;
}
#sidenbtn-box,
#page-scroll {
    display: none !important;
}
}