/* ---topページ--- */
:root{
	--pad: 16px;
	--hero-h: 44vh;
	--access-col-gap: 28px;
	--video-col-gap:  38px;
}
*{ box-sizing: border-box; }
html,body{
	overflow-x:hidden;
}
img,video,
iframe{
	max-width:100%;
	height:auto;
	display:block;
}
#contents{
	display:block;
}


h1{
	font-size: clamp(22px, 7.2vw, 32px);
	line-height:1.2;
	text-align:center;
}
h2{
	font-size: clamp(18px, 6vw, 28px);
	line-height:1.25;
	margin:.6em 0;
	text-align:center;
}
h3 {
	font-weight:300;
}
p,li{
	font-size: clamp(14px, 4.2vw, 18px);
	line-height:1.9;
	margin:.6em 0;
}
p{
	width:100% !important;
	max-width:none !important;
	margin-left:0 !important;
	margin-right:0 !important;
	overflow-wrap:anywhere;
}

.inner{
	padding: 0 var(--pad);
}
header,
nav,
#news,
#about,
#programs,
#works,
#video,
#access,
footer{
	width:100%;
	margin:0 auto;
}
#news .inner, 
#about .inner, 
#programs .inner, 
#works .inner, 
#video .inner, 
#access .inner, 
footer .inner{
	display:flex; 
	flex-direction:column; 
	align-items:center; 
	justify-content:center; 
	gap:16px; 
	text-align:center;
}

/* --- ヘッダー（ヒーロー） --- */
header, 
nav, 
.nav_flex{ 
	position:static; 
	height:auto; 
	z-index:auto; 
}
header.hero, 
#concrete{
	position: relative;
	min-height: var(--hero-h);
	height: var(--hero-h);
	display:flex; 
	align-items:center; 
	justify-content:center;
	overflow:hidden;
}
.header_polygon{
	position:absolute !important; 
	inset:0 !important; 
	width:100% !important; 
	height:100% !important;
	background-position:center; 
	background-size:cover; 
	background-repeat:no-repeat;
	z-index:1; pointer-events:none;
}
.deco_text, 
	header.hero h1{ 
	position:relative; 
	z-index:2; opacity:1; 
	transform:none; 
	text-align:left; 
}

.nav_flex{ 
	display:flex; 
	flex-direction:column; 
	align-items:center; 
	gap:12px; 
	padding:12px var(--pad);
	background:#fff; 
}
.nav_flex h1{ 
	margin:0; 
}
.nav_flex h1 img{ 
	width:auto; 
	height:auto; 
	max-width:200px; 
	max-height:48px; 
	object-fit:contain; 
	display:block; 
}
nav ul{ 
	display:flex; 
	flex-direction:column; 
	align-items:center; 
	gap:8px; 
	padding:0; 
	margin:0; 
}
nav ul li{ 
	width:100%; 
}
nav ul li a{ 
	display:block; 
	padding:10px 12px; 
	min-height:44px; 
	font-size:16px; 
	line-height:1.25; 
	white-space:nowrap; 
	text-align:center; 
}

nav ul li.nav_btn,
nav ul li.nav_btn a{ 
	height:auto !important; 
}
nav ul li.nav_btn a{ 
	display:inline-flex; 
	align-items:center; 
	gap:8px; 
	line-height:1.2; 
	padding:4px 10px; 
	font-size:clamp(14px, 1.1vw, 16px); 
}
nav ul li.nav_btn a img{ 
	width:18px; 
	height:auto; 
	display:inline-block; 
}

nav{ 
	margin-bottom:12px; 
}

#news .news-widget,
#news .inner{ 
	text-align:center; 
}
#news .news-widget .row{ 
	justify-content:center; 
	justify-items:center; 
}
#news .news-widget .row > *,
#news .news-widget time,
#news .news-widget .date,
#news .news-widget p,
#news .news-widget li{ 
	text-align:center !important; 
}


#news img.syousai{ 
	width:clamp(160px, 44vw, 200px); 
	height:auto; 
	display:block; 
	margin:6px auto 0; 
}

#news .news-widget .list{ 
	position:relative; 
	border-top:none !important; 
}
#news .news-widget .list::before{
	content:""; 
	position:absolute; 
	top:0; 
	left:50%; 
	transform:translateX(-50%);
	width:100vw; 
	border-top:1px solid #e5e7eb; 
	pointer-events:none;
}
#news .news-widget .row{ 
	position:relative; 
	border-bottom:none !important; 
}
#news .news-widget .row::after{
	content:""; 
	position:absolute; 
	bottom:0; 
	left:50%; 
	transform:translateX(-50%);
	width:100vw; 
	border-bottom:1px solid #e5e7eb; 
	pointer-events:none;
}


#poseidon_main{
	margin-bottom:6vh;
	margin-top:6vh;
}

#about .flex2r,
#programs .flex2r,
.photo_position,
.photo_position2{
 	display:flex !important;
	flex-direction:column !important;
	align-items:center;
	gap:50px;
	padding-left:0;
}
#poseidon_main,
#poseidon_dai,
#poseidon_syou,
img.dai,
img.syou{
	width: 100% !important;
	height: auto !important;
	transform: none !important;
	display: block; 
}
#works .works_photo{
	display:grid;
	grid-template-columns:1fr 36px 1fr;
	align-items:center;
	column-gap:12px;
	row-gap:10px; 
}
#works .works_photo .arrow{ 
	width:36px; 
	height:auto; 
	margin:0 auto; 
}
#works .works_meta h3{ 
	margin-top:8px; 
}


#video .flex3{
	display:grid !important; 
	grid-template-columns:auto 1fr;
	column-gap:var(--video-col-gap); 
	row-gap:12px; 
	align-items:start;
}
#video .flex3 > :first-child{ grid-column:1; grid-row:1 / 3; justify-self:start; text-align:left; }
#video .flex3 > :nth-child(2){ grid-column:2; grid-row:1; justify-self:center; text-align:center; }
#video .center{ grid-column:2; grid-row:2; }
#video .center iframe{ width:100% !important; aspect-ratio:16/9; height:auto !important; }


#access .flex3{
	display:grid !important; 
	grid-template-columns:auto 1fr;
	column-gap:var(--access-col-gap) !important; 
	row-gap:12px; 
	align-items:start;
}
#access .access_header, #access #access_title{
	grid-column:1; 
	grid-row:1 / 3; 
	justify-self:start !important; 
	text-align:left; 
	margin-right:8px;
}
#access .flex3 > :nth-child(2){ 
	grid-column:2; 
	grid-row:1; 
	justify-self:center; 
	text-align:center; 
}
#access .center{ 
	grid-column:2; 
	grid-row:2; 
}
#access .center iframe{ 
	width:100% !important; 
	aspect-ratio:16/9; 
	height:auto !important; 
}
#access{ 
	margin-bottom:48px !important; 
}

.kotei, 
#kotei, 
.fixed-banner{ 
	display:none !important; 
}


[data-aos]{ 
	opacity:1 !important; 
	transform:none !important; 
}


table{ 
	width:100%; 
	border-collapse:collapse; 
	table-layout:fixed; 
}
th,td{ 
	word-break:break-word; 
}


#contents{ 
	display:flex !important; 
	flex-direction:column !important; 
}
nav, .nav_flex{ 
	display:contents !important; 
}
header{ order:1; }
nav .nav_flex h1{ order:2; }
main{ order:3; }
nav .nav_flex ul{ order:4; }
footer{ order:5; }
.kotei{ order:6; }

img.syousai,
img[alt="詳細を見る"]{
	width: clamp(160px, 44vw, 210px) !important;
	height: auto !important;
	display: block;
	margin: 6px auto 0;
}

#news .news-widget a.btn,
#news a.btn{
	width: clamp(160px, 44vw, 210px) !important;
	min-height: 44px;
	padding: .7em 1em;
	display: inline-flex;
	justify-content: center;
	align-items: center;
}

h3,
.subtitle,
.subtitle_left,
.subtitle_right,
.works_meta h3{
	font-size: clamp(20px, 5.8vw, 26px) !important;
	line-height: 1.3;
	font-weight:500;
}
.works_meta h3{
	font-size: clamp(20px, 5.8vw, 23px) !important;
	line-height: 1.3;
}

#access h3{
	font-size: clamp(20px, 6vw, 26px) !important;
}
#access h2{
	font-size: clamp(18px, 6.2vw, 28px) !important;
}
#access p{
	font-size: clamp(15px, 4.8vw, 19px) !important;
	line-height: 1.9;
}
.nav_text::before {
	content: none;
	display: none;
	width: 0;
	height: 0;
	background: none;
}

.header_polygon{
	opacity: .5 !important;
}

:root{ --main-pad-extra: 8px; }
main{ 
	padding-left: var(--main-pad-extra); 
	padding-right: var(--main-pad-extra); }

nav .nav_flex h1{
	margin-bottom: 4px !important;
	padding-bottom: 2px;
}
#news{
	margin-top: 6px !important;
}

#about .flex2r{
	margin-top: 6vh !important;
}
#programs h2, #programs h3 {
	margin: 5px 0;
	padding: 0;
}
#p01{
	padding-left:0;
}
#programs #sakan .flex2r {
	padding:0;
}
.page-concrete #p02 .flex2r, .page-concrete #p04 .flex2r, .page-concrete #p01 .flex2r {
	padding-left:0;
}
.footer_contact .contact{
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap; 
}

.footer_contact .contact .toiawase{
	flex-basis: 100%;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
}
.footer_contact .contact .toiawase img{
	display: inline-block !important;
	width: 18px;
	height: auto;
}

#works .works_meta{ 
	min-width: 0; 
}
#works .works_meta h3{
	white-space: nowrap;
	overflow: visible;
	text-overflow: clip;
	line-height: 1.2;
	font-size: clamp(16px, 4.2vw, 22px) !important;
}


#access .flex3 > :nth-child(2){ 
	min-width: 0; 
}
#access h2{
	white-space: nowrap;
	overflow: visible;
	text-overflow: clip;
	line-height: 1.2;
	font-size: clamp(16px, 5.2vw, 24px) !important;
}
#access p{
	white-space: nowrap;
	overflow: visible;
	text-overflow: clip;
	line-height: 1.6;
	font-size: clamp(14px, 4.4vw, 18px) !important;
}

#access p br{ 
	display: none; 
}
#access p{
	white-space: normal !important;
	overflow: visible !important;
	text-overflow: clip !important;
}
#access p br{
	display: inline !important;
}

.footer_contact .contact{
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	text-align: center;
	margin: 0;
}

.footer_contact .contact > img{
	display: inline-block !important;
	width: 20px;
	height: auto;
}

.footer_contact .contact .toiawase{
	flex-basis: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	color: inherit !important;
	text-decoration: none !important;
}

#programs h2{
	white-space: nowrap;
	line-height: 1.2;
	font-size: clamp(16px, 4.8vw, 24px) !important;
}

#programs h2.tight{
	font-size: clamp(15px, 4.2vw, 22px) !important;
}

#works #works_left{
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 12px;
}
#works #works_title{ 
	display: block;
} 

#works h3.subtitle_left{ 
	white-space: nowrap; 
}


#programs p{
	text-align: left !important;
	margin-left: 0;
	margin-right: 0;
}
header.hero{
	justify-content: flex-start !important;
}

.hero .deco_text{
	text-align:left !important;
	margin: 0;
	padding-left: 16px !important;
}

:root{
  --vtitle-w-sp: 25px;
}



#works #works_title,
#video #video_title,
#access #access_title,
#kensyu_title{
	width: var(--vtitle-w-sp) !important;
	max-width: var(--vtitle-w-sp) !important;
	height: auto !important;
	display: block;
}


/* iOSの自動TELリンクや中のリンクを“普通の文字色＆下線なし”に統一 */
.footer_contact .contact a,
.footer_contact .contact a:link,
.footer_contact .contact a:visited,
.footer_contact .contact a:hover,
.footer_contact .contact a:active,
.footer_contact .contact a[href^="tel"],
.footer_contact .contact a[href^="tel:"]{
  color: inherit !important;
  text-decoration: none !important;
}


/* ---古代コンクリート--- */
.page-concrete #concrete{
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	height: var(--hero-h);
	overflow: hidden;
}
.page-concrete #concrete .header_polygon,
.page-concrete #seihin  .header_polygon{
	position: absolute; inset: 0;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	opacity: .5 !important;
	pointer-events: none;
	z-index: 1;
}

/* About：画像・テキストの縦積みと画像フィット */
.page-concrete #about .flex2r{
	display:flex !important;
	flex-direction:column !important;
	gap:16px;
}
.page-concrete #title_main{ width:100% !important; height:auto !important; }

/* Aboutの写真ブロック（大→小→タイトル画像） */
.page-concrete .photo_position,
.page-concrete .photo_position2,
.page-concrete .photo_position3{
	display:flex;
	flex-direction:column;
	gap:12px;
}
.page-concrete .kodai_dai,
.page-concrete .kodai_syou,
.page-concrete img.title{ 
	width:100% !important; 
	height:auto !important; 
}

.page-concrete #programs .flex2r{
	display:flex !important;
	flex-direction:column !important;
	gap:16px;
}
.page-concrete .p01_img,
.page-concrete .p02_img,
.page-concrete .p03_img{ 
	width:100% !important; 
	height:auto !important; 
}

/* p01 は本文→画像の並びなので、画像に少し余白 */
.page-concrete #p01 .right img{ 
	margin-top:12px; 
}


.page-concrete #programs h2{
	white-space:nowrap;
	line-height:1.2;
	font-size:clamp(16px,4.8vw,24px) !important;
}

.page-concrete main{ 
	padding-inline: 8px; 
}

.page-concrete #programs h3{
	text-align: center !important;
	margin: .5em auto;
}

.page-concrete .photo_position{ 
	align-items: center !important; 
}
.page-concrete .photo_position2{
	flex-direction: row !important;
	justify-content: center;
	gap: .6em;
}
.page-concrete .photo_position2 .subtitle{
	margin: 0;
	line-height: 1;
	white-space: nowrap;
}
.page-concrete #about_title{
	width: 80px !important;
	padding-top:5vh;
	display: block;
}
.page-concrete #about .photo_position2 .subtitle{
	display: none !important;
}

/* ---製品紹介--- */

.page-concrete #p02 .flex2r .text,
.page-concrete #p04 .flex2r .text{ order: 1; }

.page-concrete #concrete,
.page-concrete #seihin{
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start;
	justify-content: center;
	gap: .6rem;
}
.page-concrete #concrete .deco_text,
.page-concrete #seihin  .deco_text,
.page-concrete #concrete h1,
.page-concrete #seihin  h1{
	position: relative;
	z-index: 2;
	opacity: 1 !important;
	transform: none !important;
	text-align: left;
	padding-left: 16px;
	margin: 0;
}
.page-concrete #concrete .deco_text,
.page-concrete #seihin  .deco_text{
	top: 0 !important;
}
.page-concrete #concrete h1,
.page-concrete #seihin  h1{
	margin: 0 0 0 16px;
	line-height: 1.2;
}
.page-concrete #seihin{
	position: relative !important;
	min-height: var(--hero-h);
	height: var(--hero-h);
	display: flex;
	align-items: center;
	justify-content: flex-start;
	overflow: hidden;
}
.page-concrete #seihin .header_polygon{
	position: absolute; inset: 0;
	background-position: center;
	background-size: cover;
 	background-repeat: no-repeat;
	opacity: .5 !important;
	pointer-events: none;
	z-index: 1;
}
.page-concrete #seihin .deco_text,
.page-concrete #seihin h1{
	position: relative;
	z-index: 2;
	opacity: 1 !important;
	transform: none !important;
	text-align: left;
	padding-left: 16px;
	margin: 0;
}

.page-concrete #p02 .flex2r .text,
.page-concrete #p04 .flex2r .text{ order: 1; }
.page-concrete #p02 .flex2r > :first-child,
.page-concrete #p04 .flex2r > :first-child{ order: 2; }

.page-concrete #concrete,
.page-concrete #seihin{
	display: flex !important;
	flex-direction: column !important; 
	align-items: flex-start; 
	justify-content: center;
}

.page-concrete #concrete .deco_text,
.page-concrete #seihin .deco_text,
.page-concrete #concrete h1,
.page-concrete #seihin h1{
	position: relative;
	z-index: 2;
	opacity: 1 !important;
	transform: none !important;
	margin: 0;
	text-align: left;
	padding-left: 16px;
}

.page-concrete #concrete .header_polygon,
.page-concrete #seihin .header_polygon{
  position: absolute; inset: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: .5 !important;
  pointer-events: none;
  z-index: 1;
}
.page-concrete #concrete,
.page-concrete #seihin{
	display: flex !important;
	flex-direction: column !important;  /* deco_text → h1 の順に縦積み */
	align-items: flex-start;
	justify-content: center;
	gap: .6rem;
}

.page-concrete #concrete .deco_text,
.page-concrete #seihin .deco_text{
	top: 0 !important;
	padding-left: 16px;
	margin: 0;
	z-index: 2;
}

.page-concrete #concrete h1,
.page-concrete #seihin h1{
	margin: 0 0 0 16px;
	line-height: 1.2;
	z-index: 2;
}

.page-concrete #concrete .header_polygon,
.page-concrete #seihin .header_polygon{
  z-index: 1;
}


/* ====研修詳細==== */
header.header_programs,header{
	position: relative !important;
	min-height: var(--hero-h);
	height: var(--hero-h);
	display: flex;
	overflow: hidden;
}
header.header_programs .header_polygon{
	position: absolute; inset: 0;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	opacity: .5 !important;
	pointer-events: none;
	z-index: 1;
}
header.header_programs .deco_text{
	top: 0 !important;
	padding-left: 16px;
	margin: 0;
	position: relative; z-index: 2;
}
header.header_programs h1{
	padding-left: 32px;
	margin: 0;
	line-height: 1.2;
	position: relative; z-index: 2;
}

#about .photo_position2 .subtitle{ 
	display: none !important; 
}
#about .photo_position3 img.title{
	width: var(--vtitle-w-sp) !important;
	height: auto !important;
	display: block;
}

#kensyu .flex3r,
#kensyu .flex4r,
#kensyu .flex5r{
	display: flex !important;
	flex-direction: column !important;
	align-items: center;
	gap: 16px;
}
#kensyu .text-block1, #kensyu .text-block2, #kensyu .text-block3{ order: 1; }
#kensyu .image-block1, #kensyu .image-block2, #kensyu .image-block3{ order: 2; }

#kensyu .dai,
#kensyu .naga{
	width: 100% !important;
	height: auto !important;
	transform: none !important;
}

#kensyu .pdf{
	width: clamp(160px, 44vw, 210px);
	height: auto;
	display: block;
	margin: 10px auto 0;
}

#kensyu p{
	text-align: left !important;
	margin-left: 0;
	margin-right: 0;
}

:root { --kensyu-ratio: 4 / 3; } 
#kensyu .image-block1 > div,
#kensyu .image-block2 > div,
#kensyu .image-block3 > div{
	position: relative;
	width: 100%;
	aspect-ratio: var(--kensyu-ratio);
	overflow: hidden;
}
#kensyu .image-block1 img,
#kensyu .image-block2 img,
#kensyu .image-block3 img{
	width: 100% !important;
	height: auto !important;
}

#voice{
	position: relative;
	padding-top: 10px; 
	padding-bottom:10px;
	height: auto !important;
}
#voice .voice_text{
 	position: relative;
	z-index: 2; 
	margin: 0 0 12px;
	text-align: center;
}
#voice .voice_main{
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 16px;
	position: relative;
	z-index: 1;
}
#voice .voice_archive{
	flex: none !important; 
	width: auto !important;
	height: auto !important;
	margin: 0;
	min-width: 0;
}
.voice_text p{
	text-align: center;
	margin-top: 0;
	color:#155e71;
	font-family: "Noto Sans JP", sans-serif;
}

#kensyu .image-block3,
#kensyu .image-block2{
	width: 100%;
	margin-left: 16px;
	margin-right: 16px;
}

body{
  display: flex !important;
  flex-direction: column !important;
}
body > header{ order:1; }
body > main  { order:2; }
body > nav   { order:3; }
body > footer{ order:4; }

body > nav, #contents > nav{ margin-bottom: 12px; }

.sp_br{ display:none; }
.sp_br{ display:block; height:0; }


.text-block2, .text-block3{ width:100%; }
#kensyu h2{
	font-size: clamp(17px, 4.4vw, 22px) !important;
	line-height: 1.25;
	padding-bottom:1em;
}
/* 受講者の声（スマホ）：h4を小さく */
#voice .text_box h4{
  font-size: clamp(13px, 3.6vw, 16px);
  line-height: 1.25;
}

/* =====施工事例===== */
.page-sekojirei #sekojirei .doma_set{
	display:flex !important;
	flex-direction: row !important; 
	align-items: center;
	justify-content: center;
	gap: 12px; 
}

.page-sekojirei #sekojirei .yajirusi{
	flex: 0 0 auto !important;
	width: auto !important;
	padding-top: 0 !important;
	display:flex;
	justify-content:center;
	align-items:center;
}
.page-sekojirei #sekojirei .yajirusi img{
	width: 28px;
	height: auto;
	display: block;
}

.page-sekojirei #sekojirei .doma_before,
.page-sekojirei #sekojirei .doma_after{
	flex: 1 1 0% !important; 
	width: auto !important;
}
.page-sekojirei #sekojirei .doma_before img,
.page-sekojirei #sekojirei .doma_after  img{
	width: 100% !important;
	height: auto !important;
	display: block;
}
.page-sekojirei #sekojirei h2{
	font-size: clamp(15px, 7.6vw, 17px) !important;
	line-height: 1.22 !important;
}

.page-sekojirei #sekojirei h3{
	font-size: clamp(14px, 3.2vw, 16px) !important;
	line-height: 1.3 !important;
	margin: .3em 0 !important;
}

#header_sekojirei,.header_programs{
	position: relative !important;
	min-height: var(--hero-h);
	height: var(--hero-h);
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start;
	justify-content: center;
	gap: .6rem;
	overflow: hidden;
}
#header_sekojirei .header_polygon{
	position: absolute; inset: 0;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	opacity: .5 !important;
	pointer-events: none;
	z-index: 1;
}
#header_sekojirei .deco_text,
#header_sekojirei h1{
	position: relative; z-index: 2;
	opacity: 1 !important;
	transform: none !important;
	text-align: left;
	padding-left: 16px;
	margin: 0;
}
#header_sekojirei h1{
	font-size:clamp(22px, 7.2vw, 24px);
}
#header_sekojirei h1{
	padding-left: 32px;
}
#header_sekojirei .deco_text{ top: 0 !important; }
.koku{
	margin-bottom:6vh;
	text-align:left;
}
.other{
	margin-top:6vh;
}
/* =========================
   NEWS: list & detail
   ========================= */
  .page-news-list .inner{
    padding: 24px 24px !important;
  }
  .page-news-list .news-list{
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
  }
  .page-news-list .news-item{ padding: 10px 0; }
  .page-news-list .date{
    font-size: 1.3rem;
    margin-bottom: 2px;
    display: inline-block;
  }
  .page-news-list .title{
    line-height: 1.5;
    margin-top: 2px;
	font-size:1.5rem;
  }
  .page-news-list .title,
  .page-news-list .title a{
    word-break: break-word;
    overflow-wrap: anywhere;
    text-decoration: none;
  }
  .page-news-list .body{
    font-size: 1.5rem;
    line-height: 1.9;
    margin-top: 6px;
  }
  .page-news-list .news-sep{
    border: 0;
    border-top: 1px solid #e5e7eb;
    margin: 10px 0 14px;
  }
  .page-news-list{
    background-position: center top;
    background-size: cover;
  }

  /* 詳細：inner 直指定（ラッパークラスが無くても効く） */
  .page-news-detail .inner{
    padding: 24px 24px !important;
  }
  .page-news-detail h2{
    font-size: clamp(20px, 5.2vw, 28px);
    line-height: 1.3;
    margin: 0 0 10px;
  }
  /* 日付などのメタ情報：.meta が無い場合のフォールバック */
  .page-news-detail .meta,
  .page-news-detail .date,
  .page-news-detail .news-date{
    font-size: 1.3rem;
    color: #555;
    margin-bottom: 10px;
  }
  /* 本文：.content が無い場合のフォールバック */
  .page-news-detail .content,
  .page-news-detail .body,
  .page-news-detail .article,
  .page-news-detail .news-body{
    font-size: 1.5rem;
    line-height: 1.95;
  }
  .page-news-detail img{
    max-width: 100% !important;
    height: auto !important;
    border-radius: 12px;
  }

  /* 戻るボタン：複数クラスのどれかに当たるように */
  .page-news-detail .back-btn,
  .page-news-detail p.back,
  .page-news-detail .back{
    margin-top: 14px;
  }
}

/* PCのみ hover 下線（SPでは消える） */
@media (hover: hover){
  .page-news-list .title a:hover{ text-decoration: underline; }
}










/* ---お問い合わせ--- */
/* ---お問合せ ヘッダー部分--- */

#contact {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start;
	justify-content: center;
	gap: 0.6rem;
	position: relative !important;
	min-height: var(--hero-h);
	height: auto !important;
	padding-left: 16px;
	padding-right: 16px;
	overflow: hidden;
}

#contact .header_polygon {
	position: absolute;
	inset: 0;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	opacity: 0.5 !important;
	pointer-events: none;
	z-index: 1;
}

#contact .deco_text,
#contact h1 {
	position: relative;
	z-index: 2;
	opacity: 1 !important;
	transform: none !important;
	text-align: left;
	padding-left: 0;
	margin: 0;
}

#contact .deco_text {
	top: 0 !important;
}
  
#contact h1 {
	margin-left: 0;
	line-height: 1.2;
}
/* ---お問合せ ヘッダー部分ここまで--- */


/* --- お問い合わせ フォーム部分 --- */
.page-contact main{
	margin-bottom:3em;
}
.page-contact #form .inner{
	width:87%;
	padding:3em 2em;
	font-size:16px;
}

.page-contact #form .inner .form_table {
	display: block !important;
	grid-template-columns: none !important;
}
.page-contact #form .inner .form_table dt,
.page-contact #form .inner .form_table dd {
	display: block !important;
	width: 100% !important;
	padding:0;
	margin: 0;
	border-top:none;
}
.page-contact #form .inner .form_table dt {
	border-top: 1px solid #ccd3db;
	padding-top:0.8em;
}
.page-contact #form .inner .form_table dt:first-of-type{
	border-top: none;
	padding:0;
}
.page-contact #form .inner .form_table dd:first-of-type {
	padding-top:0;
	padding-bottom:1em;
}
.page-contact #form .inner .form_table dd {
	margin-bottom: 0.5em;
	padding-bottom:0.8em;
}
.page-contact textarea,.page-contact .text-width,.page-contact input[name="yubin"]{
	font-size:16px;
	border:1px solid #ccd3db;
}
.page-contact #form .inner .form_table textarea[name="msg"]{
	height:10em;
}
.page-contact #form .inner .form_table .text-width{
	width:100%;
	height:45px;
}
.page-contact #form .inner .form_table input[name="yubin"]{
	width:45%;
	height:45px;
}
.page-contact #form .inner .form_sousin{
	padding-bottom:1.5em;
}
.page-contact .contact_button{
	font-size:16px;
}
.page-contact .contact_backbutton{
	font-size:16px;
	margin:0.5em;
}
/* --- お問い合わせ フォーム部分ここまで --- */
/* ---お問い合わせここまで--- */

/* ---プライバシーポリシー--- */
.page-privacy .inner .privacy_text ul li{
	font-size:16px;
}
.page-privacy .inner{
	padding:3em 2em;
}
.page-privacy .inner .privacy_text{
	margin:0 0 3em 0;
}
.page-privacy .inner .privacy_text h3 {
  font-size: 20px !important;
  position: relative;
  display: block;        /* ← inline-block を block に変更 */
  width: 100%;
  line-height: 1.5;
  padding-bottom: 0.8em; /* ← 下線との距離を確保 */
  margin-bottom: 0.6em;  /* ← 次の段落との余白も確保 */
}

.page-privacy .inner .privacy_text h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;             /* ← テキスト行より下に固定 */
  width: 100%;
  height: 2px;
  background: #ccd3db;
}

.page-privacy .inner .privacy_text .sp_br {
  display: inline-block;
}


/* ---プライバシーポリシーここまで--- */

