@charset "UTF-8";
html, body {
    font-size: 14px;
	color: #000;
	background-color: #fff;
	letter-spacing: 0.045em;
    font-family: "fot-tsukuardgothic-std", "Kosugi Maru", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif";
}
.nav, .font-en {
      font-family: "Cabin", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}
main p {
    line-height: 2.2;
    margin-bottom: 0.5em;
}
main .lead {
    font-size: 1.065rem;
    font-weight: 400;
}
main .lead p {
    line-height: 2.1;
}
.rounded-20 {
    border-radius: 20px !important;
}
#subBtn {
    z-index: 1;
}
#subBtn .nav > .nav-item > a {
    color: var(--dark);
}
#header img {
    transition: .2s;
}
#header {
    width: 100%;
    z-index: 99;
	transition: .2s;
}
#header.offset, #header.fixed {
    background-color: rgba(255, 255, 255, 0.94);
    box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.10);
}
#header.fixed .logo-wrap {
	opacity: .93;
}
.list-info-menu > li {
    text-align: center;
    background-image : linear-gradient(to bottom, var(--pink) 2px, transparent 2px);
    background-size: 2px 8px;
    background-repeat: repeat-y;
    background-position: left top;
}
.list-info-menu > li:nth-last-child(1) {
    background-image : linear-gradient(to bottom, var(--pink) 2px, transparent 2px), linear-gradient(to bottom, var(--pink) 2px, transparent 2px);
    background-size: 2px 8px, 2px 8px;
    background-repeat: repeat-y, repeat-y;
    background-position: left top, right top;
}

.nav-link-off {
	opacity: .8;
}
.tel img {
    max-height: 20px;
}
h1, .h1 {
    font-size: 1.8rem;
}
h2, .h2 {
    font-size: 1.7rem;
}
h3, .h3 {
    font-size: 1.6rem;
}
h4, .h4 {
    font-size: 1.4rem;
}
h5, .h5 {
    font-size: 1.2rem;
}
h6, .h6 {
    font-size: 1.0rem;
}
/*
.font-sawamin {
    font-family: "Sawarabi Mincho";
}
*/
.font-min {
    font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
}
/*
.font-voice {
	font-family: 'Zen Maru Gothic', sans-serif;
	font-weight: bold;
}
*/
/*.font-hanmin { font-family: "Hannari"; }*/
.font-maru {
    font-family: 'Kosugi Maru', sans-serif;;
}
.bg {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}
a.btn {
    padding-left: 1rem;
    padding-right: 1rem;
}
main .ttl,
main .ttl-wrap {
    margin-top: 0.2em;
}
.ttl-wrap {
    margin-bottom: 1.5em;
}
.ttl {
    display: block;
    line-height: 1.5;
/*    font-weight: bold;*/
    margin-bottom: 1em;
}
.ttl-wrap .ttl {
    margin-top: 0;
    margin-bottom: 0;
}
.ttl-border {
    border-bottom: 2px solid #fff;
    position: relative;
    padding-bottom: .5rem;
}
.ttl-border::after {
    content: "";
    width: 100px;
    height: 2px;
    border-bottom: 2px solid #009FE8;
    position: absolute;
    bottom: -2px;
    left: 0;
}
.ttl-wrap.ttl-icon-tooth > .ttl {
}
.ttl-wrap.ttl-icon-tooth > .ttl::before {
    content: "";
    background: url("../images/cmn-icon-tooth@2x.png") no-repeat left center;
    background-size: contain;
    display: inline-block;
    width: 1.5em;
    height: 1.5em;
    margin-right: 0.5rem;
    vertical-align: bottom;
}
main .ttl-wrap p {
    line-height: normal;
}
/*
.ttl-sub {
    font-size: 1.1rem;
    margin-bottom: .5rem;
    line-height: 1.1;
}
*/
.ttl-wrap.font-min > .ttl,
.ttl.font-min,
h1.font-min,
h2.font-min,
.h1.font-min,
.h2.font-min {
	font-weight: normal;
}
.list-links > li,
.card .ttl-wrap,
.box .ttl-wrap {
    margin-bottom: 2rem;
}
.box .ttl-wrap,
.box .ttl {
    margin-top: 0;
}
.box > p:nth-last-child(1) {
    margin-bottom: 0;
}
main .article, main article {
    padding-top: 3rem;
    padding-bottom: 3rem;
}
main article:nth-child(1) {
    padding-top: 4rem;
}
.frame {
    border: 8px solid #fff;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.20);
}
.bg-shadow {
    box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.05);
}
.box-shadow {
    box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.10);
}
.text-shadow {
    text-shadow: 0 3px 6px rgba(0, 0, 0, 0.10);
}
.text-shadow-white {
    text-shadow: 2px 2px 4px rgba(255, 255, 255, 0.8);
}
.box {
    position: relative;
    padding: 2rem;
    background-color: #fff;
}
.card,
.box {
    border-radius: .25rem;
}
li > .box {
    height: 100%;
}
.card {
    border: none;
}
.card .card-img {
    border-bottom: 1px solid #E3E0E0;
    margin-bottom: 0px;
}
.card .card-body p:last-child {
    margin-bottom: 0;
}
.mv {
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
}
/*
.mv.page-header {
    position: relative;
}
.mv.page-header > *:nth-child(1) > .row {
    height: 100%;
    justify-content: center;
    align-items: center;
}
*/
.mv .ttl-wrap {
    width: 100%;
    text-align: center;
    margin-bottom: 0;
    text-shadow: 1px 1px 10px rgb(0 0 0 / 85%);
}

.mv#noneMV {
	min-height: 30px;
}
.page-header a {
    color: #fff;
    font-weight: 600;
    font-size: 105%;
}
.page-header .bg {
    position: relative;
}
.page-header .bg::before {
    content: "";
    display: block;
    height: 120px;
    width: 50%;
    background-color: transparent;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
}
.page-header .ttl-wrap {
    position: relative;
    height: 120px;
    background-color: transparent;
    z-index: 5;
    border-radius: 0 0 20px 0;
    display: flex;
    align-items: center;
    margin-bottom: 0;
}

/*
main article > .mv, main .article > .mv {
    margin-top: -4rem;
    margin-bottom: 4rem;
}
*/
/*
.lower main article:first-child {
    padding-top: calc(3rem + 60px);
}
*/
main article:last-child {
    padding-bottom: 4rem;
}
.bg-fixed {
    background-position: 0 0;
    background-size: auto 100%;
    background-repeat: no-repeat;
    background-attachment: fixed;
}
.pan-list {
    background-color: rgba(0, 0, 0, 0.055);
    font-size: 0.8rem;
    line-height: 1.65;
    height: auto;
    transition: .6s;
    width: 100%;
    padding: .35rem 0;
}
.mv .pan-list {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: .35rem 0;
}
.pan-list ul {
    margin-bottom: 0;
}
/*
.pan-list, .pan-list a {
    color: #fff;
}
*/
.pan-list li::after {
    font-family: "Font Awesome 5 Free";
    content: "\f054";
    font-weight: bold;
    padding-left: 1em;
    font-size: 0.8rem;
}
.pan-list li:nth-last-child(1)::after {
    content: "";
}

footer .nav-item, footer .nav-item .nav-link {}
footer .nav-item .nav-link {
    display: inline-block;
    padding: 0;
    margin-bottom: 0.5rem;
}
#footer {
    position: relative;
}
#footer #footerContact {
    background-image: url("../images/footer-bg-contact@2x.jpg");
}
#footer #footerNavi a,
#footer #footerCopy a {
    color: #333;
}
#footer #footerNavi > .row > *:nth-child(1) a {
    font-weight: bold;
}
#footer #footerNavi .nav:nth-child(1) li {
    margin-bottom: .5rem;
}
#footer .tel,
main .tel {
    font-weight: bold;
    font-size: 2.1rem;
    letter-spacing: 0.05em;
    color: var(--orange);
}
a.tel,
.tel a {
    text-decoration: none !important;
}
a.tel:hover,
.tel a:hover {
    text-decoration: underline!important;
}
.tel i {
    font-size: 80%;
    margin-right: 0.3rem;
}
#footer #footerCopy {
    font-size: .8rem;
}
#footer #footerCopy .copy {
    letter-spacing: 0;
}
/*
#footer #footerMain .card,
#footer .copy {
    background-color: #00469b;
    color: #fff;
}
#footer #footerMain .card a,
#footer .copy a {
    color: #fff;
}
#footer #footerMain.bg {
    background-image: url("../images/footer-bg@2x.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center bottom;
    min-height: 460px;
}
#footer #footerMain .card {
    border: 0;
    opacity: 0.9;
}
*/
#footer #footerSns a i {
    font-size: 2.5rem;
}
/*
#footer .copy a {
    color: #fff;
}
#footer .copy {
    text-align: center;
    padding: 1.5rem 0.5rem;
}
*/
/*
#subBtn .nav > .nav-item > a {
    font-weight: bold;
}
#subBtn .nav > .nav-item > a:hover {
    text-decoration: none;
    background-color: rgba(106, 59, 32, 0.15);
    opacity: .55;
}
*/
#subBtn .btn {
    font-size: 0.8rem;
    padding: 0.25rem 0.6rem;
    color: #fff;
}
#subBtn ul, #subBtn {
    margin-bottom: 0;
}
.fix-nav {
    display: block;
    position: fixed;
    z-index: 10;
}
.list-bn > li {
	margin-bottom: 2rem;
}
.list-bn > li a img {
	width: 100%;
	max-width: 620px;
}
/*
.list-bn > li a img,
.list-links .card {
    box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.10);
}
*/
.list-links .card .link-card,
.list-links .card .link_card {
	position: absolute;
	width: 100%;
	height: 100%;
	z-index: 1;
    left: 0;
    top: 0;
}
.list-links .btn {
	border-radius: 0;
	display: flex;
	width: 100%;
	height: 100%;
	justify-content: center;
	text-align: center;
}
.list-links .btn i {
	align-self: center;
}
.list-links-1col .btn i {
	font-size: 1.15rem;
}
.list-links > li {
	margin-bottom: 2rem;
}
.list-links .card {
	border: 0;
	border-radius: 0;
    position: relative;
    height: 100%;
}
.list-links .card p,
.list-links .card li {
	font-size: .95rem;
}
.list-links .card-body {
	padding: 15px;
}
.list-links .card-body .ttl a {
	text-decoration: none;
}
/*
.list-links-1col .card-body {
	padding: 1.5rem;
}
*/
.list-links figure {
	margin-bottom: 0;
	background-color: rgba(0,0,0,0.10);
	text-align: center;
    overflow: hidden;
}
.list-links .swiper-slide figure {
	background-color: #fff;
}
.list-links figure a {
	width: 100%;
}
.list-links.list-works figure img {
	width: 100%;
}
.list-links.list-works .caption {
    line-height: 1.35;
}
.list-links.list-works .caption .image-title {
    font-weight: 500;
    word-break: keep-all;
}
.list-links.list-works .caption small {
    display: block;
    font-weight: 400;
    padding-top: .25rem;
}
.list-links.list-links-gl > li {
    position: relative;
}
.list-links.list-links-gl > li figure {
    padding: 5px;
    background-color: #fff;
}
.list-links.list-links-menu > li .box {
    padding: 2rem;
    border-radius: 10px;
    background-color: #fff;
    border: 1px solid #CCECFA;
}
.list-links dt,
.list-links dd {
/*    font-weight: bold;*/
}
.list-links dl:last-child,
.list-links dl:last-child > dd:last-child {
    margin-bottom: 0 !important;
}

table.table-company {
}
.table-company td, 
.table-company th {
    vertical-align: baseline;
    font-size: 0.9rem;
}

.table-company th {
    white-space: nowrap;
    padding: 0.5rem 0.5rem 0.5rem 0;
}
.table-company td {
    padding: 0.5rem 0.5rem;
}
/*

.table-timetable td,
.table-timetable th {
    text-align: center;
    padding: 0.75rem 0.25rem;
    border-top: none;
    vertical-align: middle;
    letter-spacing: 0;
    border-bottom: 1px solid var(--gray);
}
.table-timetable th {
    font-size: 1.05rem;
}
.table-timetable tr:nth-of-type(1) *:nth-of-type(1),
.table-timetable tr:nth-of-type(2) *:nth-of-type(1),
.table-timetable tr:nth-of-type(3) *:nth-of-type(1) {
    min-width: 3em;
    max-width: 8em;
}
.table-timetable td {
    min-width: 2em;
}
.table-timetable td strong {
    color: var(--orange);
    font-size: 1.2rem;
}
.table-timetable td.time strong {
    color: var(--dark);
    display: inline-block;
    font-size: 1.1rem;
}
*/

.table-form th {
    vertical-align: middle;
    font-size: 1.1rem;
}
.table-form tr:nth-last-child(1) {
    border-bottom: 1px solid #dee2e6;
}

.pagination {
    font-size: 1.1rem;
}
main .pagination a:link {
    text-decoration: none;
}

/*
#torikumi .num {
    position: absolute;
    left: 24px;
    top: -64px;
}
#torikumi .flex-row-reverse .num {
    left: inherit;
    right: 24px;
}

*/
/*

div#thumbs {
	overflow: hidden;
	width: auto;
	margin: 0px auto;
	}
ul.thumbs {
	clear: both;
	padding: 0;
	display: block;
	overflow: hidden;
	width: 790px;
	padding-top: 5px;
	margin: 0 auto 30px auto;
}
ul.thumbs li {
	float: left;
	padding-top: 0;
	padding-right: 0;
	padding-left: 0;
	 [disabled]padding-bottom: 5px; 
	margin-top: 0px;
	margin-right: 10px;
	margin-left: 0;
	margin-bottom: 5px;
	list-style: none;
	width: 104px;
	display: block;
	height: 185px;
}
ul.thumbs li.end {
	margin-right:0px;
}
ul.thumbs li.start {
	clear:left;
}
a.thumb {
	background-color:#fff;
	padding: 2px;
	display: block;
	border: 1px solid #ccc;
}
ul.thumbs li.selected a.thumb {
	background: #000;
}
a.thumb:focus {
	outline: none;
}
ul.thumbs img {
	border: none;
	display: block;
	width: 98px;
}*/
/* フォーム全体の最大幅 */
.contact-form {
    max-width: 50rem; /* 約800px */
    margin: 2rem auto;
}
/* フォーム全体の最大幅 */
.contact-form .badge {
    font-weight: normal;
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    border-radius: 0.125rem;
    min-width: 3.5rem;
    display: inline-block;
}
.badge-required {
    background-color: #d86a83;
    color: #ffffff;
}
.badge-empty {
    background-color: transparent;
    color: transparent;
}


/* 入力フィールドのカスタマイズ */
.contact-form-bootstrap .form-control {
    border-color: #e0e0e0;
    border-radius: 0.125rem;
    padding: 0.75rem;
}

/* お問い合わせ内容（textarea）の高さ */
.contact-form-bootstrap textarea.form-control {
    height: 15rem;
}

/* 必須マーク（CF7が自動挿入する「*」を非表示にする場合） */
.wpcf7-form-control-wrap {
    display: block;
}

/* スマホ閲覧時のバッジとラベルの余白調整 */
@media (max-width: 767.98px) {
    .badge-required, .badge-empty {
        min-width: 3rem;
        margin-right: 1rem !important;
    }
    .col-md-4 {
        margin-bottom: 0.5rem;
    }
}


/* Works詳細のスタイル */
.wks-thumb-img {
    width: 100%;
    aspect-ratio: 1 / 1;    /* 正方形を維持 */
    object-fit: cover;      /* 枠いっぱいに広げ、はみ出し分はカット */
    object-position: center; /* 中央を基準にトリミング */
    display: block;
}
.thumb-container {
    line-height: 0;
    overflow: hidden;
}
.main-target-img {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%); /* 左右中央配置 */
    width: 100%;
    height: 100%;
    object-fit: contain; /* 比率を維持して枠内に収める */
    background: transparent;
}
#wksTab {
    display: flex;
    justify-content: center;
    border-top: 1px solid #dee2e6;
    border-bottom: 0;
    margin-top: 0;
    padding-top: 0;
}
#wksTab .nav-item {
    margin: 0 2px;
}
#wksTab .nav-link {
    background: #f8f9fa;
    color: #666;
    border: 1px solid #dee2e6;
    border-top: none;
    border-radius: 0 0 8px 8px;
    padding: 6px 20px;
    transition: all 0.2s ease;
    font-size: 0.85rem;
    text-decoration: none;
}
#wksTab .nav-link.active {
    background: #ffffff; /* コンテンツと同じ白 */
    color: #000;
    font-weight: bold;
    border: 1px solid #dee2e6;
    border-top: 1px solid #ffffff; /* 上の境界線を白で消して繋がって見せる */
    margin-top: -1px; /* 1px上にずらして境界線に重ねる */
    height: calc(100% + 1px);
}
#wksTab .nav-link:hover:not(.active) {
    background: #eee;
    color: #333;
}
.wks-archive-figure {
    width: 100%;
    margin: 0;
    overflow: hidden;
    line-height: 0;
}
.archive-thumb {
    width: 100%;
    aspect-ratio: 1 / 1;    /* 強制的に 1:1 の比率にする */
    object-fit: cover;      /* 枠に合わせて中央でトリミング */
    object-position: center;
    display: block;
    border: 1px solid #dee2e6; /* 境界線（お好みで） */
}

/* 画像がない場合のスタイル（任意） */
.no-image {
    background: #f0f0f0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999;
    font-size: .9rem;
}


/* sidebar */
aside.sidebar {
    padding-top: 4rem;
}

.sidebar .list-group-item.active {
    background-color: #aaa;
    border-color: inherit;
}

.sidebar .list-group-item a {
    text-decoration: none;
}

/* collapse トグル共通 */
.sidebar-category button,
.sidebar-archive button {
    text-decoration: none;
}

/* ＋アイコンのみ */
.sidebar .archive-toggle {
    display: inline-block;
    font-weight: bold;
    transition: transform .2s;
    font-family: sans-serif;
    font-weight: 500;
    font-size: 1rem;
}

/* 展開中：＋ → × */
.sidebar button[aria-expanded="true"] .archive-toggle {
    transform: rotate(45deg);
}

.entry-body p {
    line-height: 2.0;
    margin-bottom: 1.2em;
}
.entry-body .lead {
    font-size: 1.1rem;
    font-weight: 400;
    line-height: 2.0;
}
.entry-body img {
    max-width: 100%;
    height: auto;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

