@charset "utf-8";
/* CSS Document */

/*
Theme Name: 建設ICT株式会社
Version: 3.1
Author: k-design
*/

@import url(css/post.css);

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, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, button{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline;}

body, html{width:100%;box-sizing:border-box;}
html{scroll-margin-top:100px;}
body{
	font-family: "Noto Sans JP", sans-serif;
	font-size:100%;
	font-weight:500;
	font-style:normal;
	line-height:1.8;
}

p{margin-bottom:24px;}
ol, ul{list-style:none;}
table{border-collapse:collapse;border-spacing:0;}
caption, th, td{font-weight:normal;text-align:left;}
blockquote:before, blockquote:after,q:before, q:after {content: "";content:none;}
blockquote, q{quotes:none;}
a{background:transparent;font-size:100%;vertical-align:baseline;text-decoration:none;}
img{width /***/:auto;max-width: 100%;height: auto;vertical-align:bottom;}
a img{border: 0;}
a:hover img,a:active img{-moz-opacity:0.8;opacity:0.8;filter:alpha(opacity=80);}
input, select{vertical-align:middle;}

/* パンくずリスト */
#bread_crumbs{width:90%;max-width:1183px;margin:18px auto 0;clear:both;font-size:12px;color:#777777;}
#bread_crumbs li{margin-right:6px;display:inline;letter-spacing:0.04em;}
#bread_crumbs li a{transition:color 0.3s ease;color:#555555;}
#bread_crumbs li a:hover{color:#EE8800;}
.box{margin-bottom:64px;}

/* 注意 */
.red{color:#FF0000;}

/* text */
.txt_r{text-align:right;}
.txt_c{text-align:center;}
.alignleft{margin:0 16px 16px 0;float:left;}
.alignright{margin:0 0 16px 16px;float:right;}
.txt_underline{text-decoration:underline;}

/* ===== Navigation ===== */
.navigation{padding:24px 0;clear:both;overflow:hidden;border-bottom:1px dotted #CCCCCC;line-height:18px;}
.navigation a{position:relative;}
.navigation a:before,.navigation a:after{content: "";width: 6px;height: 6px;position: absolute;top: 50%;z-index: 0;}
.nav-previous{width:40%;float:left;}
.nav-previous a{padding-left:24px;}
.nav-next{width:40%;float:right;text-align:right;}
.nav-next a{padding-right:24px;}
.nav-previous a:before{left:4px;-webkit-transform: translateY(-41%) rotate(-45deg);transform: translateY(-41%) rotate(-45deg);border-top: 2px solid #10193A;border-left: 2px solid #10193A;}
.nav-next a:after{right:4px;-webkit-transform: translateY(-41%) rotate(45deg);transform: translateY(-41%) rotate(45deg);border-top: 2px solid #10193A;border-right: 2px solid #10193A;}
.wp-pagenavi {padding:40px 0;clear: both;text-align:center;}
.wp-pagenavi a, .wp-pagenavi span {margin: 0 2px;padding: 8px 15px;display: inline-block;background-color: #FFFFFF;border: thin dotted #10193A;-webkit-transition: 0.2s ease-in-out;-moz-transition: 0.2s ease-in-out;-o-transition: 0.2s ease-in-out;transition: 0.2s ease-in-out;color: #001433;text-align: center;text-decoration: none;white-space: nowrap;}
.wp-pagenavi a:hover{background-color: #10193A;color: #fff;}
.wp-pagenavi span.current{background-color: #10193A;color: #fff;}

/* ===== 全体 ===== */
.l_wrap{max-width:1183px;margin:0 auto;}
.wrap{max-width:1000px;margin:0 auto;}
.pc{display: block;}
.l_pc,.sp,.br_sp,.tb{display: none;}
.clear:after{content:"";display:block;clear:both;}
.bg{background:#ececec;}
.en{font-family:"hiragino-kaku-gothic-pron", sans-serif;font-weight:300;font-style:normal;}
.catch{font-family:"Noto Serif JP", serif;font-size:28px;font-weight:600;font-style:normal;}

.flex_box{margin-bottom:40px;display:flex;flex-wrap:wrap;justify-content:space-between;}
.two_flex .item{width:48%;position:relative;}
.three_flex .item{width:32%;position:relative;}
.three_flex::after{content:"";width:32%;display: block;}
.four_flex .item{width:24%;position:relative;}
.four_flex::before{content:"";width:24%;display: block;order:1;}
.four_flex::after{content:"";width:24%;display: block;}
.box_link{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden;text-indent:-9999px;white-space:nowrap;}
.list_center{display:block;text-align:center;}
.list_center li{display:inline-block;}
/* youtube埋め込みレスポンシブ */
.movie{height:0;padding-bottom:56.25%;position:relative;overflow: hidden;}
.movie iframe{width:100%;height:100%;position:absolute;top:0;left:0;}
/* Google mapの下余白&レスポンシブ */
.map iframe{vertical-align:bottom;}
/* ※ */
.kome > li{margin-left:0!important;padding-left:24px;position:relative;list-style:none!important;}
.kome > li:before{content:"※";position:absolute;top:0;left:0;}
/* 丸文字 */
.maru{margin:0;padding:0;counter-reset:my-counter;}
.maru > li{margin-left:0!important;padding-left:30px;position:relative;list-style:none!important;}
.maru > li::before{content:counter(my-counter);width:18px;height:18px;box-sizing:border-box;position:absolute;top:4px;left: 0;display:flex;align-items:center;justify-content:center;counter-increment:my-counter;border:1px solid;border-radius:50%;font-size:85%;line-height:1;}

.arrow{width:20px;height:2px;margin:3.5px 0;position:absolute;top:50%;right:3%;transform:translateY(-50%);display:inline-block;background-color:#FFFFFF;border-radius:9999px;}
.arrow::before,
.arrow::after{content:"";width:8px;height:2px;position:absolute;top:calc(50% - 0.5px);right:0;transform-origin:calc(100% - 0.5px) 50%;background-color:#FFFFFF;border-radius:9999px;}
.arrow::before{transform:rotate(30deg);}
.arrow::after{transform:rotate(-30deg);}
/* 丸棒矢印 */
.arrow_circle{width:50px;height:50px;position:relative;border:1px solid #FFFFFF;border-radius:50%;cursor:pointer;}
.arrow_circle::before{content:'';width:16px;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);background:#fff;}
.arrow_circle::after{content:'';width:6px;height:6px;position:absolute;top:50%;left:24px;transform:translateY(-50%) rotate(45deg);border-top:2px solid #fff;border-right:2px solid #fff;}

.stickarrow::after{content:"";width:60px;height:4px;margin-left:12px;transform:skew(45deg);display:inline-block;border-bottom:1px solid #000;border-right:1px solid #000;transition:0.2s;}
/* コンテンツのフェードイン表示 */
.fade-in{visibility:hidden;opacity:0;transition:opacity 1s ease, visibility 0s linear 1s;}
.fade-in.is-visible{visibility:visible;opacity:1;transition:opacity 2s ease, visibility 0s linear 0s;}
/* page-top */
#page-top{position:fixed;right:16px;bottom:0;background-color:rgba(0,0,0,0.6);font-size:12px;}
#page-top a{width:40px;height:40px;position:relative;display: block;color:#FFFFFF;line-height:40px;text-align: center;text-decoration: none;}

/* 画面端から浮いた角丸・半透明のヘッダー（全ページ共通） */
#header{width:calc(100% - 48px);max-width:1680px;height:76px;box-sizing:border-box;margin:16px auto 0;padding:0 12px 0 24px;position:sticky;top:16px;display:flex;align-items:center;justify-content:space-between;z-index:100;background:rgba(255,255,255,0.82);border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,0.06);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background-color 0.4s ease, box-shadow 0.4s ease;}
#logo{flex-shrink:0;line-height:1;}
#logo a{display:block;}
#logo img{width:200px;height:auto;}
#logo a:hover img{opacity:1;}
/* ===== global_menu ===== */
#global_menu{margin-left:auto;}
#global_menu ul{display:flex;align-items:center;}
#global_menu ul li{margin-right:36px;font-size:15px;font-weight:600;line-height:1.4;letter-spacing:0.04em;}
#global_menu ul li a{padding:8px 0;position:relative;display:block;color:#222222;}
#global_menu ul li a::after{content:"";width:0;height:2px;position:absolute;bottom:2px;left:0;background:#EE8800;transition:width 0.3s ease;}
#global_menu ul li a:hover::after{width:100%;}
#global_menu ul li.head_contact{margin:0 0 0 8px;}
#global_menu ul li.head_contact a{padding:16px 32px;background:#EE8800;border-radius:6px;transition:background-color 0.3s ease;color:#FFFFFF;}
#global_menu ul li.head_contact a::after{display:none;}
#global_menu ul li.head_contact a:hover{background:#D97A00;}

/* home：動画の上に重ねるため fixed */
.home #header{margin:0 auto;position:fixed;top:16px;right:0;left:0;}
.home #header.is-scroll{background:rgba(255,255,255,0.95);box-shadow:0 4px 24px rgba(0,0,0,0.1);}

/* ===== mainimage（YouTube背景・画面いっぱい） ===== */
.mainimage{width:100%;height:100vh;height:100svh;min-height:560px;position:relative;overflow:hidden;background:#2B3036 url("image/mv_poster.jpg") no-repeat center center / cover;}
.mainimage .mv_movie{position:absolute;inset:0;overflow:hidden;opacity:0;pointer-events:none;transition:opacity 1s ease;}
/* 再生が始まったらフェードイン（それまではポスター画像） */
.mainimage.is-playing .mv_movie{opacity:1;}
/* 動画を画面いっぱいに表示（はみ出た部分はトリミング） */
.mainimage .mv_video{width:100%;height:100%;display:block;object-fit:cover;}
/* 文字を読みやすくするための淡いグラデーション */
.mainimage::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.12) 45%, rgba(255,255,255,0.08) 100%);pointer-events:none;}
.mainimage .main_chatch{position:absolute;bottom:clamp(48px, 10vh, 120px);left:clamp(24px, 5vw, 80px);z-index:2;color:#FFFFFF;}
.mainimage .main_chatch .catch{margin-bottom:16px;font-family:"Noto Sans JP", sans-serif;font-size:clamp(32px, 4.6vw, 76px);font-weight:700;line-height:1.35;letter-spacing:0.04em;text-shadow:0 2px 16px rgba(0,0,0,0.25);}
/* 行頭の「は文字の左半分が空白なので、半角分左へずらして英文と左端を揃える */
.mainimage .main_chatch .catch .hang{margin-left:-0.5em;}
.mainimage .main_chatch .sub_catch{margin-bottom:0;font-size:clamp(14px, 1.3vw, 20px);font-weight:400;letter-spacing:0.06em;}
/* 音声ボタン */
.mainimage .mv_sound{height:48px;padding:0 20px 0 16px;position:absolute;right:clamp(24px, 4vw, 64px);bottom:clamp(48px, 10vh, 120px);display:flex;gap:10px;align-items:center;z-index:3;visibility:hidden;background:rgba(255,255,255,0.16);border:1px solid rgba(255,255,255,0.6);border-radius:999px;opacity:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;transition:opacity 0.6s ease, visibility 0.6s, background-color 0.3s ease, border-color 0.3s ease;color:#FFFFFF;}
.mainimage .mv_sound.is-ready{visibility:visible;opacity:1;}
.mainimage .mv_sound:hover{background:rgba(255,255,255,0.28);}
.mainimage .mv_sound.is-on{background:#EE8800;border-color:#EE8800;}
.mainimage .mv_sound:focus-visible{outline:2px solid #FFFFFF;outline-offset:3px;}
.mainimage .mv_sound_icon{width:20px;height:20px;display:block;}
.mainimage .mv_sound_icon svg{display:block;}
.mainimage .mv_sound .icon_on{display:none;}
.mainimage .mv_sound.is-on .icon_on{display:block;}
.mainimage .mv_sound.is-on .icon_off{display:none;}
.mainimage .mv_sound_txt{font-size:13px;font-weight:500;line-height:1;letter-spacing:0.12em;}
.mainimage .mv_sound_state{min-width:2.2em;display:inline-block;}
/* ===== contents ===== */
#contents{padding-bottom:0;}
#contents section{padding:80px 0;}

/* オレンジ全面背景＋左下に等高線（地形図）模様 */
#contents #concept{padding:clamp(72px, 9vw, 128px) 0;position:relative;overflow:hidden;background:#EE8800;color:#FFFFFF;}
#concept::before{content:"";width:min(64vw, 900px);aspect-ratio:1 / 1;position:absolute;bottom:-46%;left:-14%;background:url("image/concept_contour.svg") no-repeat center / contain;pointer-events:none;}
#concept .concept_inner{position:relative;display:grid;grid-template-columns:minmax(220px, 34%) 1fr;column-gap:40px;z-index:1;}
/* 左上の小見出し */
#concept .concept_label .en{margin-bottom:6px;display:block;opacity:0.85;font-size:13px;font-weight:500;letter-spacing:0.14em;}
#concept .concept_label h2{padding-bottom:20px;position:relative;font-size:17px;font-weight:700;line-height:1.6;letter-spacing:0.06em;}
#concept .concept_label h2::after{content:"";width:56px;height:2px;position:absolute;bottom:0;left:0;background:#FFFFFF;}
/* 本文エリア */
#concept .concept_body{padding-top:56px;}
#concept .concept_title{margin-bottom:24px;font-size:clamp(30px, 3.4vw, 48px);font-weight:700;line-height:1.45;letter-spacing:0.04em;word-break:auto-phrase;}
#concept .concept_lead{margin-bottom:20px;font-size:clamp(16px, 1.4vw, 19px);font-weight:700;letter-spacing:0.04em;word-break:auto-phrase;}
#concept .concept_txt{margin-bottom:40px;font-size:16px;font-weight:500;line-height:2.1;letter-spacing:0.03em;}
/* 白丸矢印リンク（他セクションでも使い回し可） */
.circle_link{display:inline-flex;gap:18px;align-items:center;font-size:15px;font-weight:700;color:#FFFFFF;letter-spacing:0.06em;}
#concept .circle_link{width:fit-content;margin-left:auto;display:flex;}
.circle_link_icon{width:56px;height:56px;position:relative;display:block;flex-shrink:0;background:#FFFFFF;border-radius:50%;transition:transform 0.3s ease;}
.circle_link_icon::before{content:"";width:18px;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);background:#EE8800;}
.circle_link_icon::after{content:"";width:7px;height:7px;position:absolute;top:50%;left:calc(50% + 2px);transform:translateY(-50%) rotate(45deg);border-top:2px solid #EE8800;border-right:2px solid #EE8800;}
.circle_link:hover .circle_link_icon{transform:translateX(6px);}
.circle_link:focus-visible{border-radius:999px;outline:2px solid #FFFFFF;outline-offset:6px;}
/* === 共通：左の縦線付きセクション見出し（オレンジの英字＋黒の日本語） === */
.sec_label{padding-left:24px;align-self:start;border-left:3px solid #EE8800;}
.sec_label .en{margin-bottom:4px;display:block;font-size:15px;font-weight:500;color:#EE8800;line-height:1.4;letter-spacing:0.06em;}
.sec_label h2{font-size:clamp(21px, 2.6vw, 28px);font-weight:700;color:#1E2530;line-height:1.3;letter-spacing:0.04em;}
/* 白丸矢印リンク：白背景用（線のみ） */
.circle_link.is-outline{color:#1E2530;}
.circle_link.is-outline .circle_link_icon{box-sizing:border-box;background:#FFFFFF;border:1px solid #CFCFCF;transition:transform 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;}
.circle_link.is-outline .circle_link_icon::before{background:#1E2530;transition:background-color 0.3s ease;}
.circle_link.is-outline .circle_link_icon::after{border-color:#1E2530;transition:border-color 0.3s ease;}
.circle_link.is-outline:hover .circle_link_icon{background:#EE8800;border-color:#EE8800;}
.circle_link.is-outline:hover .circle_link_icon::before{background:#FFFFFF;}
.circle_link.is-outline:hover .circle_link_icon::after{border-color:#FFFFFF;}
.circle_link.is-outline:focus-visible{outline-color:#EE8800;}
/* === news（トップ） === */
#contents #news.top_news{padding:clamp(72px, 8vw, 112px) 0;background:#FFFFFF;}
#news .tn_inner{display:grid;grid-template-columns:minmax(220px, 34%) 1fr;column-gap:40px;}
#news .tn_list{margin-bottom:32px;border-top:1px solid #E3E3E3;}
#news .tn_item{border-bottom:1px solid #E3E3E3;}
#news .tn_link{padding:22px 8px;display:grid;grid-template-columns:110px 120px 1fr;column-gap:16px;align-items:center;transition:background-color 0.3s ease;color:#1E2530;}
#news .tn_link:hover{background:#FFF8F0;}
#news .tn_date{font-size:14px;font-weight:500;color:#555555;letter-spacing:0.04em;}
#news .tn_cat{width:104px;box-sizing:border-box;padding:4px 0;display:block;border:1px solid #EE8800;border-radius:4px;font-size:12px;font-weight:700;color:#EE8800;line-height:1.4;text-align:center;}
#news .tn_title{transition:color 0.3s ease;font-size:16px;font-weight:500;line-height:1.7;}
#news .tn_link:hover .tn_title{color:#EE8800;}
#news .tn_link:focus-visible{outline:2px solid #EE8800;outline-offset:-2px;}
#news .tn_empty{margin-bottom:32px;padding:24px 8px;border-top:1px solid #E3E3E3;border-bottom:1px solid #E3E3E3;}
#news .circle_link{width:fit-content;margin-left:auto;display:flex;}
/* === company & contact（トップ） === */
#contents #company.top_company{padding:clamp(72px, 8vw, 112px) 0;position:relative;overflow:hidden;background:#F4F7FA;}
/* ロゴの青をごく薄く使った装飾の円 */
#company.top_company::before{content:"";position:absolute;border-radius:50%;pointer-events:none;}
#company.top_company::before{width:560px;height:560px;top:50%;right:-220px;transform:translateY(-50%);border:1px solid rgba(30,155,215,0.18);}
#company .tc_inner{position:relative;display:grid;grid-template-columns:1.2fr 1fr;z-index:1;}
#company .tc_company{padding-right:clamp(32px, 4vw, 56px);}
#company .tc_contact{padding-left:clamp(32px, 4vw, 56px);border-left:1px solid #D5DCE2;}
#company .sec_label{margin-bottom:36px;}
/* 会社情報 */
#company .tc_company_body{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:28px;align-items:stretch;}
/* 右の文字ブロックと同じ高さまで伸ばす（aspect-ratio と height:100% を併用すると横幅が広がって文字に被るため使わない） */
#company .tc_map{min-height:240px;overflow:hidden;background:#E3E8ED;border-radius:10px;}
#company .tc_map iframe{width:100%;height:100%;display:block;border:0;}
#company .tc_name{margin-bottom:10px;font-size:18px;font-weight:700;color:#1E2530;letter-spacing:0.04em;}
#company .tc_address{margin-bottom:16px;font-size:14px;color:#444444;line-height:1.8;}
#company .tc_tel{margin-bottom:24px;}
#company .tc_tel div{display:flex;gap:10px;align-items:baseline;}
#company .tc_tel dt{width:3em;font-size:14px;color:#444444;}
#company .tc_tel dd{font-size:16px;font-weight:700;color:#1E2530;letter-spacing:0.04em;}
#company .tc_tel a{color:inherit;}
/* 線のボタン */
.line_btn{width:100%;max-width:260px;box-sizing:border-box;padding:8px 24px;position:relative;display:block;background:#FFFFFF;border:1.5px solid #EE8800;border-radius:999px;transition:background-color 0.3s ease, color 0.3s ease;font-size:14px;font-weight:700;color:#1E2530;letter-spacing:0.04em;text-align:center;}
.line_btn_arrow{width:14px;height:2px;position:absolute;top:50%;right:24px;transform:translateY(-50%);background:#EE8800;transition:background-color 0.3s ease, transform 0.3s ease;}
.line_btn_arrow::after{content:"";width:6px;height:6px;position:absolute;top:50%;right:0;transform:translateY(-50%) rotate(45deg);border-top:2px solid #EE8800;border-right:2px solid #EE8800;transition:border-color 0.3s ease;}
.line_btn:hover{background:#EE8800;color:#FFFFFF;}
.line_btn:hover .line_btn_arrow{transform:translate(4px, -50%);background:#FFFFFF;}
.line_btn:hover .line_btn_arrow::after{border-color:#FFFFFF;}
/* お問い合わせ */
#company .tc_lead{margin-bottom:24px;font-size:15px;color:#444444;line-height:1.9;}
#company .tc_phone{margin-bottom:8px;display:inline-flex;gap:14px;align-items:center;color:#1E2530;}
#company .tc_phone_icon{flex-shrink:0;color:#EE8800;}
#company .tc_phone_num{font-size:clamp(21px, 3.2vw, 32px);font-weight:700;line-height:1.1;letter-spacing:0.02em;}
#company .tc_hours{margin-bottom:28px;padding-left:54px;font-size:13px;color:#444444;line-height:1.8;}
#company .tc_hours small{font-size:12px;color:#666666;}
/* 塗りのボタン */
.pill_btn{width:100%;max-width:400px;box-sizing:border-box;padding:16px 64px 16px 32px;position:relative;display:flex;gap:14px;align-items:center;justify-content:center;background:#EE8800;border-radius:999px;box-shadow:0 8px 20px rgba(238,136,0,0.25);transition:background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;font-size:16px;font-weight:700;color:#FFFFFF;letter-spacing:0.06em;}
.pill_btn_icon{flex-shrink:0;}
.pill_btn_arrow{width:16px;height:2px;position:absolute;top:50%;right:32px;transform:translateY(-50%);background:#FFFFFF;transition:transform 0.3s ease;}
.pill_btn_arrow::after{content:"";width:7px;height:7px;position:absolute;top:50%;right:0;transform:translateY(-50%) rotate(45deg);border-top:2px solid #FFFFFF;border-right:2px solid #FFFFFF;}
.pill_btn:hover{transform:translateY(-2px);background:#D97A00;box-shadow:0 12px 24px rgba(238,136,0,0.3);}
.pill_btn:hover .pill_btn_arrow{transform:translate(4px, -50%);}
.line_btn:focus-visible,.pill_btn:focus-visible{outline:2px solid #EE8800;outline-offset:4px;}
/* === technology（トップ） === */
#contents #technology.top_tech{padding:0;background:#FFFFFF;}
#technology .tt_wrap{display:grid;grid-template-columns:minmax(0, 0.95fr) minmax(0, 1.45fr);}
/* 左：説明エリア（写真を置く場合は image/technology_bg.jpg を用意） */
#technology .tt_side{position:relative;background:#EAF1F6 url("image/technology_bg.jpg") no-repeat center bottom / cover;}
#technology .tt_side::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom, rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.82) 55%, rgba(255,255,255,0.15) 100%);}
/* 左端を他セクションの本文幅（1183px）に揃える */
#technology .tt_side_inner{box-sizing:border-box;padding:clamp(64px, 7vw, 104px) clamp(28px, 4vw, 56px) clamp(64px, 7vw, 104px) max(5%, calc((100vw - 1183px) / 2));position:sticky;top:96px;z-index:1;}
#technology .sec_label{margin-bottom:40px;}
#technology .tt_sub{margin-bottom:10px;font-size:20px;font-weight:700;color:#1E2530;letter-spacing:0.04em;}
#technology .tt_side p{margin-bottom:32px;font-size:15px;color:#333333;line-height:2;}
#technology .tt_side p:last-child{margin-bottom:0;}
/* 右：カード */
#technology .tt_main{padding:clamp(48px, 5vw, 80px) max(5%, calc((100vw - 1183px) / 2)) clamp(48px, 5vw, 80px) clamp(24px, 3vw, 48px);background:#FFFFFF;}
#technology .tt_list{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:24px;}
#technology .tt_card{display:flex;flex-direction:column;overflow:hidden;background:#F6F7F8;border-radius:10px;}
#technology .tt_img{aspect-ratio:16 / 9;margin:0;overflow:hidden;background:#E3E8ED;}
#technology .tt_img img{width:100%;height:100%;display:block;object-fit:cover;transition:transform 0.6s ease;}
#technology .tt_card:hover .tt_img img{transform:scale(1.04);}
#technology .tt_card_body{padding:18px 22px 24px;}
#technology .tt_step{margin-bottom:4px;display:block;font-size:12px;font-weight:600;color:#EE8800;letter-spacing:0.14em;}
#technology .tt_card h3{margin-bottom:8px;font-size:18px;font-weight:700;color:#EE8800;line-height:1.5;letter-spacing:0.04em;}
#technology .tt_card p{margin-bottom:0;font-size:14px;color:#333333;line-height:1.85;}
/* 6枠目：オレンジのボックス */
#technology .tt_cta{padding:32px 28px;display:flex;flex-direction:column;justify-content:center;background:#EE8800;border-radius:10px;color:#FFFFFF;}
#technology .tt_cta_title{margin-bottom:14px;font-size:clamp(18px, 1.45vw, 21px);font-weight:700;line-height:1.55;letter-spacing:0.04em;word-break:auto-phrase;}
#technology .tt_cta_txt{margin-bottom:24px;font-size:13px;line-height:1.9;}
#technology .tt_cta .circle_link{gap:14px;}
#technology .tt_cta .circle_link_icon{width:48px;height:48px;}

/* === BIM/CIM（トップ） === */
#contents #bim.top_bim{padding:clamp(64px, 7vw, 100px) 0;background:#F4F5F7;}
#bim .tb_inner{display:grid;grid-template-columns:minmax(0, 0.9fr) minmax(0, 1.4fr);gap:clamp(32px, 4vw, 64px);align-items:center;}
#bim .sec_label{margin-bottom:28px;}
#bim .tb_side p{margin-bottom:24px;font-size:15px;color:#333333;line-height:2;}
/* 対応状況：ボタンに見えないよう、枠線・角丸なしの帯＋チェックアイコン */
#bim .tb_side .tb_note{margin-bottom:0;padding:14px 18px;display:flex;gap:12px;align-items:center;background:#FFF1DE;border-left:3px solid #EE8800;font-size:14px;color:#1E2530;line-height:1.7;}
#bim .tb_note_icon{flex-shrink:0;}
#bim .tb_note strong{font-weight:700;color:#C96F00;}
#bim .tb_cards{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:24px;}
#bim .tb_card{padding:28px 24px 24px;display:flex;flex-direction:column;background:#FFFFFF;border-radius:10px;box-shadow:0 6px 24px rgba(30,37,48,0.06);}
#bim .tb_tag{margin-bottom:12px;padding:3px 14px;align-self:flex-start;background:#EE8800;border-radius:999px;font-size:12px;font-weight:700;color:#FFFFFF;letter-spacing:0.06em;}
#bim .tb_card h3{margin-bottom:6px;font-size:22px;font-weight:700;color:#1E2530;letter-spacing:0.04em;}
#bim .tb_card p{margin-bottom:20px;font-size:14px;color:#555555;}
#bim .tb_img{aspect-ratio:16 / 9;margin:auto 0 0;overflow:hidden;background:#F4F5F7;border-radius:6px;}
#bim .tb_img img{width:100%;height:100%;display:block;object-fit:contain;}

/* ページ見出し */
#page_head{margin-top:-92px;padding:calc(92px + clamp(56px, 6vw, 88px)) 0 clamp(48px, 5vw, 72px);position:relative;overflow:hidden;background:#F4F7FA;}
#page_head::after{content:"";width:min(52vw, 640px);aspect-ratio:1 / 1;position:absolute;top:50%;right:-10%;transform:translateY(-42%);background:url("image/contour_orange.svg") no-repeat center / contain;pointer-events:none;}
#page_head .ph_inner{position:relative;z-index:1;}
#page_head .page_title{padding-left:24px;border-left:3px solid #EE8800;font-size:clamp(30px, 3.2vw, 44px);font-weight:700;color:#1E2530;line-height:1.3;letter-spacing:0.06em;}
#page_head .page_title br{display:none;}
#page_head .page_title .en{margin-bottom:6px;display:block;font-size:15px;font-weight:500;color:#EE8800;letter-spacing:0.08em;}
/* セクション共通 */
#contents .sub_sec{padding:clamp(64px, 7vw, 104px) 0;background:#FFFFFF;}
#contents .sub_sec.is-gray{background:#F4F7FA;}
.sub_grid{display:grid;grid-template-columns:minmax(220px, 30%) minmax(0, 1fr);column-gap:48px;}
.sub_head{margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid #E3E3E3;font-size:20px;font-weight:700;color:#1E2530;letter-spacing:0.04em;}
* + .sub_head{margin-top:48px;}
#contents .post .des{font-size:15px;line-height:2;}
/* ページ内メニュー */
.sub_nav{padding:28px 0;background:#FFFFFF;border-bottom:1px solid #EEF1F4;}
.sub_nav ul{display:flex;flex-wrap:wrap;gap:12px;}
.sub_nav a{padding:12px 44px 12px 22px;position:relative;display:block;background:#FFFFFF;border:1px solid #D5DCE2;border-radius:999px;transition:border-color 0.3s ease, color 0.3s ease;font-size:14px;font-weight:600;color:#1E2530;letter-spacing:0.04em;}
.sub_nav a::after{content:"";width:7px;height:7px;position:absolute;top:calc(50% - 6px);right:22px;transform:rotate(45deg);border-right:2px solid #EE8800;border-bottom:2px solid #EE8800;}
.sub_nav a:hover{border-color:#EE8800;color:#EE8800;}
[id]{scroll-margin-top:110px;}

/* === 会社案内 === */
.msg_body p{margin-bottom:22px;font-size:15px;color:#333333;line-height:2.1;}
.msg_body .msg_title{margin-bottom:32px;font-size:clamp(26px, 2.6vw, 36px);font-weight:700;color:#1E2530;line-height:1.5;letter-spacing:0.04em;}
.msg_body .msg_sign{margin:40px 0 0;font-size:18px;font-weight:700;color:#1E2530;letter-spacing:0.08em;text-align:right;}
.msg_body .msg_sign span{margin-right:16px;font-size:13px;font-weight:500;color:#555555;}
.info_table{margin-bottom:32px;overflow:hidden;background:#FFFFFF;border-top:1px solid #D5DCE2;border-radius:10px;}
.info_table > div{display:grid;grid-template-columns:180px 1fr;border-bottom:1px solid #E3E8ED;}
.info_table > div:last-child{border-bottom:none;}
.info_table dt{padding:18px 24px;background:#FAFBFC;font-size:14px;font-weight:700;color:#1E2530;}
.info_table dd{padding:18px 24px;font-size:15px;color:#333333;line-height:1.8;}
.info_table dd a{color:inherit;}
.cd_map{aspect-ratio:16 / 7;overflow:hidden;background:#E3E8ED;border-radius:10px;}
.cd_map iframe{width:100%;height:100%;display:block;border:0;}
.ow_list{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:20px;}
.ow_card{overflow:hidden;background:#F6F7F8;border-radius:10px;}
.ow_img{aspect-ratio:4 / 3;margin:0;overflow:hidden;background:#E3E8ED;}
.ow_img img{width:100%;height:100%;display:block;object-fit:cover;}
.ow_body{padding:16px 18px 20px;}
.ow_body h4{margin-bottom:6px;font-size:16px;font-weight:700;color:#1E2530;line-height:1.5;}
.ow_body p{margin-bottom:0;font-size:13px;color:#555555;line-height:1.8;}

/* === 事業内容 === */
.sv_lead{margin-bottom:32px;font-size:15px;color:#333333;line-height:2.1;}
.sv_figure{margin:0;padding:24px;background:#FFFFFF;border:1px solid #E3E8ED;border-radius:10px;}
.sv_figure img{width:100%;display:block;}
.step_list{display:grid;gap:20px;}
.step_row{display:grid;grid-template-columns:minmax(0, 300px) minmax(0, 1fr);overflow:hidden;background:#FFFFFF;border-radius:10px;}
.step_img{min-height:180px;margin:0;overflow:hidden;background:#E3E8ED;}
.step_img img{width:100%;height:100%;display:block;object-fit:cover;}
.step_body{padding:28px 32px;display:flex;flex-direction:column;justify-content:center;}
.tt_step{margin-bottom:4px;display:block;font-size:12px;font-weight:600;color:#EE8800;letter-spacing:0.14em;}
.step_body h3{margin-bottom:10px;font-size:20px;font-weight:700;color:#EE8800;letter-spacing:0.04em;}
.step_body p{margin-bottom:0;font-size:14px;color:#333333;line-height:1.9;}
.sv_note{margin:32px 0 0;padding:20px 24px;background:#FFF1DE;border-left:3px solid #EE8800;font-size:15px;font-weight:600;color:#1E2530;line-height:1.9;}
#contents #bim.top_bim.is-sub{background:#FFFFFF;}
#bim .tb_figure{margin:16px 0 0;padding:24px;grid-column:1 / -1;background:#FFFFFF;border:1px solid #E3E8ED;border-radius:10px;}
#bim .tb_figure img{width:100%;display:block;}
#bim.is-sub .tb_card{background:#F6F7F8;box-shadow:none;}

/* === お問い合わせ === */
.ct_tel_box p{margin-bottom:16px;font-size:15px;color:#333333;}
.ct_phone{margin-bottom:6px;display:inline-flex;gap:14px;align-items:center;color:#1E2530;}
.ct_phone_icon{flex-shrink:0;color:#EE8800;}
.ct_phone_num{font-size:clamp(24px, 3.4vw, 38px);font-weight:700;line-height:1.1;letter-spacing:0.02em;}
.ct_tel_box .ct_hours,.cb_action .ct_hours{margin-bottom:0;padding-left:54px;font-size:13px;color:#555555;}
.ct_form_lead{margin-bottom:32px;font-size:15px;color:#333333;line-height:2;}
.ct_form{padding:clamp(24px, 3vw, 48px);background:#FFFFFF;border-radius:12px;}
/* Contact Form 7 の中身（管理画面のフォームのクラス名をそのまま利用） */
.ct_form .contact_wrap{margin-bottom:40px;}
.ct_form .contact_wrap dl{display:grid;grid-template-columns:240px 1fr;align-items:start;border-bottom:1px solid #E3E8ED;}
.ct_form .contact_wrap dl:first-child{border-top:1px solid #E3E8ED;}
.ct_form .contact_wrap dt{padding:22px 16px 22px 0;display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:15px;font-weight:700;color:#1E2530;}
.ct_form .contact_wrap dt span{padding:2px 10px;flex-shrink:0;background:#EE8800;border-radius:4px;font-size:12px;font-weight:700;color:#FFFFFF;}
.ct_form .contact_wrap dd{padding:16px 0;}
.ct_form .privacy_wrap h1{margin-bottom:16px;font-size:18px;font-weight:700;color:#1E2530;}
.ct_form .privacy_policy{height:200px;margin-bottom:20px;padding:20px 24px;overflow-y:auto;background:#FAFBFC;border:1px solid #E3E8ED;border-radius:8px;font-size:13px;line-height:1.8;}
.ct_form .privacy_policy h2{margin-bottom:16px;font-size:15px;font-weight:700;}
.ct_form .privacy_policy dl dt{margin-bottom:4px;font-weight:700;}
.ct_form .privacy_policy dl dd{margin-bottom:14px;}
.ct_form .privacy_policy ul{margin-left:20px;list-style:disc;}
.ct_form .approval_btn{margin-bottom:32px;text-align:center;}
.ct_form .submit_btn{width:100%;max-width:400px;margin:0 auto;}
.ct_form .wpcf7 input[type="text"],.ct_form .wpcf7 input[type="tel"],.ct_form .wpcf7 input[type="email"],.ct_form .wpcf7 textarea,.ct_form .wpcf7 select{width:100%;box-sizing:border-box;padding:14px 16px;background:#FFFFFF;border:1px solid #D5DCE2;border-radius:6px;cursor:text;transition:border-color 0.3s ease, box-shadow 0.3s ease;font-size:16px;}
.ct_form .wpcf7 input:focus,.ct_form .wpcf7 textarea:focus,.ct_form .wpcf7 select:focus{border-color:#EE8800;box-shadow:0 0 0 3px rgba(238,136,0,0.15);outline:none;}
.ct_form .wpcf7 input::placeholder,.ct_form .wpcf7 textarea::placeholder{color:#AAB2BA;}
.ct_form .wpcf7 input[type="submit"]{width:100%;padding:22px 32px;display:block;background:#EE8800;border:none;border-radius:999px;box-shadow:0 8px 20px rgba(238,136,0,0.25);cursor:pointer;transition:background-color 0.3s ease, transform 0.3s ease;font-size:16px;font-weight:700;color:#FFFFFF;letter-spacing:0.08em;}
.ct_form .wpcf7 input[type="submit"]:hover{transform:translateY(-2px);background:#D97A00;color:#FFFFFF;}
.ct_form .wpcf7 input[type="submit"]:disabled{transform:none;background:#CCCCCC;box-shadow:none;cursor:not-allowed;}

/* === お知らせ（一覧・詳細） === */
.two_column{display:grid;grid-template-columns:minmax(0, 1fr) 240px;gap:56px;align-items:start;}
#sidebar{position:sticky;top:120px;}
#sidebar .widget{margin-bottom:40px;}
#sidebar .widget dt{margin-bottom:8px;padding:0 0 10px 14px;border-left:3px solid #EE8800;border-bottom:1px solid #E3E3E3;font-size:16px;font-weight:700;color:#1E2530;}
#sidebar .widget dd ul li{font-size:14px;}
#sidebar .widget dd ul li a{padding:10px 4px;display:block;border-bottom:1px solid #EEF1F4;transition:color 0.3s ease;color:#333333;}
#sidebar .widget dd ul li a:hover{color:#EE8800;}
#sidebar .widget dd ul li ul{margin-left:16px;}
#sidebar .widget dd select{width:100%;box-sizing:border-box;margin-top:12px;padding:10px 12px;background:#FFFFFF;border:1px solid #D5DCE2;border-radius:6px;cursor:pointer;color:#333333;}
/* 記事 */
.entry_head{margin-bottom:40px;padding-bottom:28px;border-bottom:1px solid #E3E3E3;}
.entry_meta{margin-bottom:14px;display:flex;gap:16px;align-items:center;}
.entry_meta .tn_date{font-size:14px;color:#555555;letter-spacing:0.04em;}
.entry_meta .tn_cat{padding:3px 14px;border:1px solid #EE8800;border-radius:4px;transition:background-color 0.3s ease, color 0.3s ease;font-size:12px;font-weight:700;color:#EE8800;}
.entry_meta .tn_cat:hover{background:#EE8800;color:#FFFFFF;}
.entry_title{font-size:clamp(22px, 2.2vw, 30px);font-weight:700;color:#1E2530;line-height:1.5;letter-spacing:0.04em;}
.entry .des{font-size:16px;color:#333333;line-height:2;}
.entry .des p{margin-bottom:1.6em;}
.entry .des h2{margin:2.4em 0 1em;padding:0 0 10px 16px;border-left:3px solid #EE8800;border-bottom:1px solid #E3E3E3;font-size:22px;font-weight:700;color:#1E2530;line-height:1.5;}
.entry .des h3{margin:2em 0 0.8em;font-size:19px;font-weight:700;color:#1E2530;}
.entry .des h3::before{content:"";width:10px;height:10px;margin-right:10px;display:inline-block;background:#EE8800;border-radius:2px;vertical-align:2px;}
.entry .des ul,.entry .des ol{margin:0 0 1.6em 1.4em;}
.entry .des ul{list-style:disc;}
.entry .des ol{list-style:decimal;}
.entry .des a{color:#C96F00;text-decoration:underline;}
.entry .des img{border-radius:8px;}
.entry .des figure{margin:0 0 1.6em;}
/* 前後リンク・ページ送り */
.post_nav{margin-top:56px;padding-top:32px;display:flex;gap:16px;align-items:center;justify-content:space-between;border-top:1px solid #E3E3E3;}
.post_nav_prev,.post_nav_next{min-width:0;flex:1;}
.post_nav_next{text-align:right;}
.post_nav_prev a,.post_nav_next a{padding:10px 22px;display:inline-block;border:1px solid #D5DCE2;border-radius:999px;transition:border-color 0.3s ease, color 0.3s ease;font-size:14px;font-weight:600;color:#1E2530;}
.post_nav_prev a::before{content:"← ";color:#EE8800;}
.post_nav_next a::after{content:" →";color:#EE8800;}
.post_nav_prev a:hover,.post_nav_next a:hover{border-color:#EE8800;color:#EE8800;}
.post_nav_list{box-sizing:border-box;padding:12px 28px;flex-shrink:0;background:#EE8800;border-radius:999px;transition:background-color 0.3s ease;font-size:14px;font-weight:700;color:#FFFFFF;}
.post_nav_list:hover{background:#D97A00;}

/* === 下層フッター上のお問い合わせ帯 === */
#contact_box{padding:clamp(64px, 7vw, 96px) 0;background:#F4F7FA;}
#contact_box .cb_inner{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:48px;align-items:center;}
#contact_box .sec_label{margin-bottom:24px;}
#contact_box .cb_text p{margin-bottom:0;font-size:15px;color:#333333;line-height:2;}
#contact_box .cb_action{padding-left:48px;border-left:1px solid #D5DCE2;}
#contact_box .ct_hours{margin-bottom:24px;}

/* ===== footer ===== */
#footer{padding:48px 0 28px;background:#FFFFFF;border-top:1px solid #E6EAEE;}
#footer .ft_inner{display:flex;flex-wrap:wrap;gap:32px;align-items:center;justify-content:space-between;}
#footer .ft_logo img{width:220px;height:auto;}
#footer .ft_logo a:hover img{opacity:0.8;}
#footer .ft_nav ul{display:flex;flex-wrap:wrap;gap:8px 36px;}
#footer .ft_nav a{transition:color 0.3s ease;font-size:14px;font-weight:600;color:#1E2530;letter-spacing:0.04em;}
#footer .ft_nav a:hover{color:#EE8800;}
#footer .ft_bottom{margin-top:36px;padding-top:20px;border-top:1px solid #EEF1F4;}
#footer .ft_copy{font-size:12px;color:#777777;letter-spacing:0.04em;}

/* contact（標準） */
.wpcf7 input[type="text"],.wpcf7 input[type="tel"],.wpcf7 input[type="email"],.wpcf7 textarea,.wpcf7 select{width:100%;box-sizing:border-box;padding:8px;background:#f8fcff;border:1px solid #bfc1d8;cursor:pointer;-webkit-appearance: none;appearance: none;font-size:100%;}
.wpcf7 input[type="radio"] {margin:-4px 4px 0 0;vertical-align:middle;}
.wpcf7 input[type="submit"]{clear:both;border-radius:0;outline:none;cursor:pointer;-webkit-appearance:none;}
.wpcf7 input[type="submit"]:hover{background:#FFFFFF;color:#0F2350;}
.wpcf7 input::placeholder,textarea::placeholder{color:#dddddd;}
.wpcf7-form.hide_error_message .wpcf7-not-valid-tip{display: none;}

/* ranking_box */
#sidebar .side_ranking dt{margin-bottom:12px;}
#sidebar .ranking_box{margin-bottom:12px;padding-bottom:12px;position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;border-bottom:1px solid rgba(68,68,68,0.6);}
#sidebar .ranking_box .ranking_image{width:80px;}
#sidebar .ranking_box .ranking_detail{width:100%;}
#sidebar .ranking_box .ranking_detail .ranking_date{font-size:10px;font-weight:500;}
#sidebar .ranking_box .ranking_detail .ranking_title{font-size:13px;font-weight:700;}
#sidebar .ranking_box .ranking_detail .starts_view{margin-left:12px;color:#999999;}

/* ===== error404 ===== */
.error404 #contents{padding-top:80px;text-align:center;}
.error404 #contents h1{margin:0;font-family:Arial, Helvetica, "sans-serif";font-size:600%;font-weight:600;color:#E60019;line-height:1;}
.error404 #contents h2{border-bottom:none;}
.error404 #contents p a{text-decoration:underline;}

@media screen and (min-width: 1025px) {
	#global_menu{display:block !important;}
}
@media screen and (min-width: 741px) {
	a[href^="tel:"]{cursor:default;pointer-events:none;text-decoration: none;}
}

@media screen and (max-width: 1200px) {
	.l_wrap{width:90%;}
}

@media screen and (max-width: 1150px) {
/* ===== global_menu ===== */
	#global_menu ul li{margin-right:22px;font-size:14px;}
	#global_menu ul li.head_contact a{padding:14px 22px;}
}

@media screen and (max-width: 1024px) {
	
	.sp{display:block;}
	
/* ===== header ===== */
	#header{width:calc(100% - 24px);height:60px;margin-top:12px;padding:0 16px;top:12px;}
	.home #header{top:12px;}
	/* backdrop-filter があると fixed のSPメニューがヘッダー内に閉じ込められるため解除 */
	#header{background:rgba(255,255,255,0.95);-webkit-backdrop-filter:none;backdrop-filter:none;}
	#logo img{width:160px;}
	.mainimage .mv_sound{height:40px;padding:0 14px 0 12px;top:88px;right:16px;bottom:auto;}
	.mainimage .mv_sound_txt{font-size:11px;}
	/* === overlayMenuBtn === */
	.overlayMenuBtn{height:10px;position:absolute;top:50%;right:20px;transform:translateY(-50%);z-index:100001;cursor:pointer;}
	.overlayMenuBtn span{width:28px;position:relative;display:block;background-color:#222222;border:1px solid #222222;transition:.5s;}
	.overlayMenuBtn span:nth-child(1){top: 0;}
	.overlayMenuBtn span:nth-child(2){top: 8px;}
	/* overlayMenu：ヘッダーの下に敷くことで、開いている間もロゴと閉じるボタンを表示 */
	.overlayMenu{width:100%;height:100vh;height:100dvh;position:fixed;top:0;left:0;display:none;z-index:-1;overflow:auto;background:#FFFFFF url("image/contour_orange.svg") no-repeat right -120px bottom -140px / 420px;color:#1E2530;}
	.overlayMenuInner{min-height:100%;box-sizing:border-box;padding:104px 24px 40px;display:flex;flex-direction:column;}
	/* overlayMenuItem */
	.overlayMenuItem{display:flex;flex:1;flex-direction:column;}
	.overlayMenuItem ul.sp_menu{margin:0 0 32px;padding:0;list-style-type:none;}
	.overlayMenuItem ul.sp_menu li{border-bottom:1px solid #E3E8ED;}
	.overlayMenuItem ul.sp_menu li a{width:100%;box-sizing:border-box;padding:16px 40px 16px 4px;position:relative;display:flex;flex-direction:column;gap:2px;transition:color 0.3s ease;color:#1E2530;text-decoration:none;}
	.overlayMenuItem ul.sp_menu li a::after{content:"";width:8px;height:8px;position:absolute;top:50%;right:10px;transform:translateY(-50%) rotate(45deg);border-top:2px solid #EE8800;border-right:2px solid #EE8800;}
	.overlayMenuItem ul.sp_menu li a:hover{color:#EE8800;}
	.overlayMenuItem .sp_menu_jp{font-size:18px;font-weight:700;letter-spacing:0.06em;}
	.overlayMenuItem .sp_menu_en{font-size:12px;font-weight:500;color:#EE8800;letter-spacing:0.08em;}
	/* 電話・お問い合わせ */
	.overlayMenuItem .sp_contact{margin-top:auto;padding:24px 20px;background:#F4F7FA;border-radius:12px;text-align:center;}
	.overlayMenuItem .sp_contact_lead{margin-bottom:6px;font-size:13px;font-weight:700;color:#555555;}
	.overlayMenuItem .ct_phone{gap:10px;}
	.overlayMenuItem .ct_phone_num{font-size:28px;}
	.overlayMenuItem .ct_hours{margin-bottom:18px;font-size:12px;color:#555555;}
	.overlayMenuItem .pill_btn{max-width:none;padding:16px 56px 16px 24px;font-size:15px;}
	.overlayMenuItem .pill_btn_arrow{right:24px;}
	/* メニューが開いている間は背面のページをスクロールさせない */
	body:has(.overlayMenu[style*="block"]){overflow:hidden;}
/* ===== global_menu ===== */
	#global_menu{display:none;}
/* === 下層ページ === */
	.two_column{grid-template-columns:1fr;gap:56px;}
	#sidebar{position:static;}
	.sub_grid{grid-template-columns:1fr;row-gap:32px;}
	#contact_box .cb_inner{grid-template-columns:1fr;gap:32px;}
	#contact_box .cb_action{padding:32px 0 0;border-left:none;border-top:1px solid #D5DCE2;}
	.ow_list{grid-template-columns:repeat(2, minmax(0, 1fr));}
	#page_head{margin-top:-72px;padding-top:calc(72px + 48px);}
/* === technology / BIM === */
	#technology .tt_wrap{grid-template-columns:1fr;}
	#technology .tt_side_inner{padding:64px 5%;position:relative;top:auto;}
	#technology .tt_side::before{background:rgba(255,255,255,0.88);}
	#technology .tt_main{padding:48px 5% 64px;}
	#bim .tb_inner{grid-template-columns:1fr;}
/* === news === */
	#news .tn_inner{grid-template-columns:1fr;row-gap:32px;}
/* === company & contact === */
	#company .tc_inner{grid-template-columns:1fr;}
	#company .tc_company{padding:0 0 56px;}
	#company .tc_contact{padding:56px 0 0;border-left:none;border-top:1px solid #D5DCE2;}
	#company.top_company::before{display:none;}
/* ===== footer ===== */
	#footer .ft_inner{flex-direction:column;align-items:flex-start;}
/* === concept === */
	#concept .concept_inner{grid-template-columns:1fr;}
	#concept .concept_body{padding-top:40px;}
	#concept::before{width:90vw;bottom:-20%;left:-30%;}
}

@media screen and (max-width: 800px) {
	/* contents */
	#contents{background-size:110%;}
}

@media screen and (max-width: 740px) {
	.table_scroll{display:block;overflow: auto;white-space: nowrap;}
	.table_scroll::-webkit-scrollbar{height: 5px;}
	.table_scroll::-webkit-scrollbar-track{background: #333;}
	.table_scroll::-webkit-scrollbar-thumb {background: #999;}
	.table-scroll table{width:100%;}
	a[href^="tel:"]{color:#000000;text-decoration:none;}
}

@media screen and (max-width: 640px) {
	.catch{font-size:21px;}
	#concept .concept_txt{font-size:15px;line-height:2;}
	#concept .concept_txt br.pc_br{display:none;}
	#concept .circle_link_icon{width:48px;height:48px;}
	#concept .concept_title{font-size:26px;}
	#news .tn_link{padding:16px 4px;grid-template-columns:auto 1fr;row-gap:8px;}
	#news .tn_title{grid-column:1 / -1;font-size:15px;}
	#news .tn_cat{width:auto;min-width:88px;padding:3px 10px;justify-self:start;}
	#news .circle_link_icon{width:48px;height:48px;}
	#technology .tt_list{grid-template-columns:1fr;gap:20px;}
	#bim .tb_cards{grid-template-columns:1fr;gap:20px;}
	#bim .tb_card h3{font-size:20px;}
	.sub_nav{padding:20px 0;}
	.sub_nav a{padding:10px 36px 10px 16px;font-size:13px;}
	.sub_nav a::after{right:16px;}
	.info_table > div{grid-template-columns:1fr;}
	.info_table dt{padding:12px 16px 4px;background:none;}
	.info_table dd{padding:0 16px 14px;}
	.cd_map{aspect-ratio:4 / 3;}
	.ow_list{grid-template-columns:1fr;}
	.step_row{grid-template-columns:1fr;}
	.step_img{min-height:0;aspect-ratio:16 / 9;}
	.step_body{padding:20px 20px 24px;}
	.ct_form .contact_wrap dl{grid-template-columns:1fr;}
	.ct_form .contact_wrap dt{padding:18px 0 8px;justify-content:flex-start;}
	.ct_form .contact_wrap dd{padding:0 0 18px;}
	.ct_tel_box .ct_hours,.cb_action .ct_hours{padding-left:0;}
	.msg_body .msg_title br{display:none;}
	.post_nav.is-single{flex-wrap:wrap;}
	.post_nav.is-single .post_nav_list{width:100%;order:3;text-align:center;}
	.post_nav_prev a,.post_nav_next a{padding:9px 16px;font-size:13px;}
	#company .tc_company_body{grid-template-columns:1fr;}
	#company .tc_map{min-height:0;aspect-ratio:4 / 3;}
	#company .tc_lead br.pc_br{display:none;}
	#company .tc_phone_icon{width:32px;height:32px;}
	#company .tc_hours{padding-left:0;}
	#company .line_btn,#company .pill_btn{max-width:none;}
	#footer .ft_logo img{width:180px;}
	#footer .ft_nav ul{gap:12px 24px;}
	.br_sp{display:block;}
/* === 配下ページ共通 === */
	#contents section{padding:40px 0;}
}

body.admin-bar #header{top:32px;}

@media screen and (max-width: 782px) {
	body.admin-bar #header{top:46px;}
}
