/* philosophy-page */
#philosophy-page .flex-box{
    display:flex;
    flex-wrap:wrap;
}
#philosophy-page .flex-box.bg-gray{
    background-color: var(--d-color-thin-3);
    padding:1em;
}
#philosophy-page .flex-box .photo-image{
    width:30%;
}
#philosophy-page .flex-box .table-default{
    width:70%;
    margin:0;
}
#philosophy-page .flex-box .table-default dd{
    background-color: white;
    line-height: 1.5;
    text-align: left;
}
#philosophy-page .thumb-catch{
    margin:0 0 1em;
}


/* 保険ポリシーページ(固定) */
#insurance-policy-page .number-space ol,
#insurance-policy-page .number-space ul
{
    padding:1em 1em 1em 2em;
    margin:0 0 2em 0;
}
#insurance-policy-page .number-space ol{
    list-style-type: disc;
}
#insurance-policy-page .number-space {
    counter-reset: number;
}
#insurance-policy-page .number-space .title::before {
    counter-increment: number;
    content: counter(number) ". ";
    font-weight: bold;
    margin-right: 4px;
    background-image:unset;
    width:unset;
    height:unset;
}
/* .table-default が付いていない dl にだけ適用 */
#insurance-policy-page .number-space dl:not(.table-default) {
    padding: 0 0 1em 2em;
}

#insurance-policy-page .number-space dl:not(.table-default) dt {
    font-weight: 600;
}

#insurance-policy-page .number-space dl:not(.table-default) dd {
    margin: 0 0 1em;
}
#insurance-policy-page .main-contents p,
#insurance-policy-page .main-contents li,
#insurance-policy-page .main-contents dt,
#insurance-policy-page .main-contents dd
{
    font-size: var(--d-font-size-min-0);
}

#insurance-policy-page .main-contents .main-title{
    font-size: var(--d-font-size-2);
    font-weight: 600;
    text-align: center;
    margin:2em 0 2em 0;
}
#insurance-policy-page .main-contents .main-title.under{
    margin:2em 0 0 0;
    padding:0;
}
#insurance-policy-page .main-contents .main-title.under+p{
    margin:0 0 3em 0;
    padding:0;
}

#insurance-policy-page .main-contents .main-title~p{
    font-size: var(--d-font-size-min-0);
    padding: 1em 1em 0;
    text-align: center;
}
#insurance-policy-page .main-contents .main-title~p + .number-space{
    margin-top:2em;
}
#insurance-policy-page .main-contents .under-contents p{
    text-align: left;
}

/* 保険商品ページ(固定) */
#insurance-page .item-list{
    padding:1em;
    display:flex;
    flex-wrap:wrap;
    margin:0 0 3em;
}
#insurance-page .item-list li{
    width:49%;
    text-align:center;
}
#insurance-page .item-list li img{
    width:100%;
}
#insurance-page .item-list li:last-of-type{
    margin:0 0 0 auto;
}
#insurance-page .item-list li a{
    display:block;
}

/* archive media */
.archive .media-wrap{
    display:flex;
    flex-wrap:wrap;
}
.archive .media-box{
    display:flex;
    flex-wrap:wrap;
    width:100%;
}
.archive .media-box .photo{
    width:30%;
}
.archive .media-box .photo img{
    width: 100%;
    height: 150px;
    object-fit:cover;
    margin:0 0 .5em 0;
    padding: 3px;
    border: solid 1px var(--d-color-thin-3);
}
.archive .media-box a{
    display:block;
}
.archive .media-box .right{
    width:68%;
    margin:0 0 0 auto;
}

.archive .media-box .head{
    display:flex;
    width:100%;
}

.archive .media-box{
    margin:0 0 1em;
}
.archive .media-box .head .title:before{
    display:none;
}
.archive .media-box .head .title{
    background: none;
    border:none;
    padding: 1em;
}
.main-contents .media-box .title~p{
    margin:0 0 0 auto;
    font-family: italic;
}

/* 診断ページ */
dl.enquete__row{
    display:flex;
    flex-wrap:wrap;
    counter-reset: number;
    margin: 0 0 2em;
}
dl.enquete__row dt,
dl.enquete__row dd{
    font-size: var(--d-font-size-min-0);
    padding:.85em 1em;
}
dl.enquete__row dd{
    border-top:solid 1px var(--d-color-thin-2);
    border-left:solid 1px var(--d-color-thin-2);
    border-right:solid 1px var(--d-color-thin-2);
    width:32%;
    text-align: center;
}
dl.enquete__row dt{
    counter-increment: number 1;
    font-weight:600;
    width:68%;
    background-color:var(--primary-color-4);
    border-top:solid 1px var(--d-color-thin-2);
    border-left:solid 1px var(--d-color-thin-2);
}
dl.enquete__row dt:last-of-type,
dl.enquete__row dd:last-of-type{
    border-bottom:solid 1px var(--d-color-thin-2);
}

dl.enquete__row dt:before{
    content: counter(number) " ";
    background-color: var(--primary-color-2);
    color:white;
    margin:0 .75em 0 0;
    display:inline-flex;
    justify-content: center;
    width:26px;
    font-size:var(--d-font-size-min-3);
}
.enquete__submit{
    display:flex;
    justify-content: center;
}
.enquete__form{
    margin:0 0 4em;
}
.enquete__result{
    padding: 2em;
    font-size:var(--d-font-size-min-3);
    font-weight:600;
    background-color: var(--d-color-thin-4);
    border-radius:10px;
    margin:0 0 3em;
}
.enquete__lead{
    font-size:var(--d-font-size-min-0);
    margin:0 0 .5em 0;
}
.enquete__submit button{
    font-size:var(--d-font-size-1);
    font-weight:600;
    border-radius:6px;
    background: #E4812D;
    background: linear-gradient(180deg, rgba(228, 129, 45, 1) 0%, rgba(209, 25, 21, 1) 100%);
    color: white;
    padding: .75em 10px .75em 10px;
    margin: 0 0 2.5em 0;
    border:none;
    width:300px;
    display:block;
    cursor:pointer;
}

/* front page */
.front-service-wrap{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.front-service-wrap .header{
    position:relative;
    display:flex;
    flex-wrap: wrap;
    padding: .5em .75em;
    border-left: solid 2px var(--primary-color-2);
    align-items: center;
    margin: auto 0 1em 0;
}
.front-service-wrap .header .human-img img{
    width:80px;
    position:absolute;
    top:-20px;
    right:-10px;
    filter: drop-shadow( 0px 0px 5px #CCCCCC );
}
.front-service-wrap .box:nth-of-type(2) .header .human-img img{
    width:130px;
    right:-16px;
}
.front-service-wrap .box:nth-of-type(5) .header .human-img img,
.front-service-wrap .box:nth-of-type(7) .header .human-img img{
    width:50px;
    top:-20px;
    right:-12px;
}
.front-service-wrap .box:nth-of-type(6) .header .human-img img{
    width:36px;
    top:-20px;
    right:-0px;
}
.front-service-wrap .box:nth-of-type(2) .body{
    display:flex;
    flex-wrap:wrap;
}
.front-service-wrap .box:nth-of-type(2) .body .photo{
    width:202px;
    margin: 0 1em 0 0;
}
.front-service-wrap .box:nth-of-type(2) .body .text{
    width: 180px;
}
.front-service-wrap .box:nth-of-type(2) .body .link-wrap{
    width:100%;
}
.front-service-wrap .header h3{
    width:90%;
    font-size: var(--d-font-size);
    font-weight: 600;
    line-height: 1;
    order:2;
}
.front-service-wrap .header h3 a{
    color: var(--primary-color-2);
}
.front-service-wrap .header p{
    line-height: 1;
    font-weight: 600;
    margin: 0 0 .5em 0;
    font-size: var(--d-font-size-min-2);
    order:1;
}
.front-service-wrap .body p.photo{
    margin: 0 0 1em 0;
}
.front-service-wrap .body p.photo a{
    display:block;
}
.front-service-wrap .body p.photo img{
    box-sizing: border-box;
    padding:.1em;
    border:solid 1px var(--d-color-thin-3);
    background:white;
}
.front-service-wrap .header span{
    order:3;
    position:absolute;
    top: -5px;
    right:0;
}
.group-image-wrap{
    border:solid 1px var(--d-color-thin-3);
    background-image: url(../../img/common/logo-gray-opacity.png);
    background-size: 50%;
    background-position:center;
    background-repeat: no-repeat;
    margin:0 0 2em 0;
}
.group-image-wrap h3.title{
    font-size: var(--d-font-size-3);
    font-weight:600;
    background:unset;
    border:unset;
    text-align: center;
    display:block;
    margin:1em 0 0 0;
}
.group-image-wrap .btn-space{
    display:flex;
    justify-content: center;
}
.group-image-wrap .red-btn{
    background: #E4812D;
    background: linear-gradient(180deg, rgba(228, 129, 45, 1) 0%, rgba(209, 25, 21, 1) 100%);
    color: white;
    padding: .5em 10px .5em 10px;
    margin: 0 0 2.5em 0;
}


.group-image-wrap .list dd{
    border-left: solid 1px var(--d-color-thin-3);
    border-bottom: solid 1px var(--d-color-thin-3);
    min-height: 205px;
    margin:0;
    padding: .8em 1em;
    flex:1;               /* ここがポイント：カードの残りを占める */
}
.group-image-wrap .list dd ul{
    padding:0;
    margin:0;
}
.group-image-wrap div:last-of-type dd{
    border-left: solid 1px var(--d-color-thin-3);
    border-bottom: solid 1px var(--d-color-thin-3);
    border-right: solid 1px var(--d-color-thin-3);
}
.group-image-wrap .list li{
    font-size: var(--d-font-size-min-2);
    letter-spacing: -.1px;
    background-image: url(../../img/common/icon-red-min-arrow.svg);
    background-repeat: no-repeat;
    margin: 0 auto .3em;
    background-size: 4px;
    background-position: 0 8px;
    padding: 0 0 0 10px;
    line-height: 1.75;
}
.group-image-wrap .list dt{
    text-align: center;
    color:white;
    margin:0;
    padding:.4em 1em;
    font-weight:600;
    background:#f3f7ff;   /* 見出し背景はお好みで */
    border-bottom:1px solid #ddd;
}

/* 1) 横並びはGridに */
.group-image-wrap .list{
    display:grid;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap:0;               /* 罫線をピタッと揃える */
    margin:0 1em 1em;
}

/* 2) 各カラム(=カード)は縦方向flexで高さを伸ばす */
.group-image-wrap .list > div{
    display:flex;
    flex-direction:column;
    border-top:1px solid var(--d-color-thin-4);
    border-left:1px solid var(--d-color-thin-4);
    border-bottom:1px solid var(--d-color-thin-4);
    box-sizing:border-box;
}


/* レスポンシブ（必要に応じて） */
@media (max-width: 1080px){
    .group-image-wrap .list{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px){
    .group-image-wrap .list{ grid-template-columns: 1fr; }
}

.group-image-wrap .list div:nth-of-type(1) dt{
    background: #F790A4;
    background: linear-gradient(180deg, rgba(247, 144, 164, 1) 0%, rgba(225, 33, 69, 1) 100%);
}
.group-image-wrap .list div:nth-of-type(2) dt{
    background: #FFC177;
    background: linear-gradient(180deg, rgba(255, 193, 119, 1) 0%, rgba(255, 144, 0, 1) 100%);
}
.group-image-wrap .list div:nth-of-type(3) dt{
    background: #92D05E;
    background: linear-gradient(180deg, rgba(146, 208, 94, 1) 0%, rgba(85, 174, 16, 1) 100%);
}
.group-image-wrap .list div:nth-of-type(4) dt{
    background: #88CBF4;
    background: linear-gradient(180deg, rgba(136, 203, 244, 1) 0%, rgba(41, 145, 207, 1) 100%);
}
.front-service-wrap .box .link:first-of-type{
    display: flex;
    background:var(--d-color-thin-4);
    border-top: solid 1px var(--d-color-thin-3);
    border-left: solid 1px var(--d-color-thin-3);
    border-right: solid 1px var(--d-color-thin-3);
}
.front-service-wrap .box .link:last-of-type{
    display: flex;
    background:var(--d-color-thin-4);
    border: solid 1px var(--d-color-thin-3);
}
.front-service-wrap .box{
    background: #FBE8E9;
    background: linear-gradient(180deg, rgba(251, 232, 233, 1) 0%, rgba(255, 255, 255, 1) 50%);
    padding: .5em;
    border:solid 1px var(--d-color-thin-3);
    margin: 0 0 2em;
    display:flex;
    flex-wrap:wrap;
    align-items: flex-start;
    align-content:flex-start;
}

.front-service-wrap .box:nth-of-type(3),
.front-service-wrap .box:nth-of-type(4) {
    width:48%;
}
.front-service-wrap .box:nth-of-type(4){
    margin-left:auto;
}
.front-service-wrap .box:nth-of-type(5),
.front-service-wrap .box:nth-of-type(6),
.front-service-wrap .box:nth-of-type(7){
    width:32%;
}

.front-service-wrap .box:first-of-type{
    width:100%;
}

.front-service-wrap .body p{
    font-size: var(--d-font-size-min-2);
}
.front-service-wrap .body p.text{
    margin: 0 0 2em 0;
    line-height: 1.5;
}

.front-service-wrap .link{
    padding:.35em 0 .65em;
    width:100%;
}
.front-service-wrap .link li{
    line-height: 1;
}
.front-service-wrap .link a{
    font-size: var(--d-font-size-min-2);
    padding: 0 0 0 .5em;
    letter-spacing: -.1px;
}
.front-service-wrap .link a:hover{
    color:var(--primary-color-3);
}
.front-service-wrap .link a:before {
    content: "";
    background-image: url(../../img/common/icon-red-middle-arrow.svg);
    background-repeat: no-repeat;
    background-position:0 1px;
    background-size: 9px;
    padding: 0 0 0 12px;
    margin: 0 auto;
    width: 14px;
    height: 14px;
}
.front-voice-wrap{
    display: flex;
    flex-wrap:wrap;
    justify-content: space-between;
}
.front-voice-wrap .box{
    width:22%;
}
.front-voice-wrap .box a{
    display:block;
}
.front-voice-wrap .box p.photo{
    object-fit: cover;
    width:112px;
    height:130px;
    margin:0 0 .5em;
}
.front-voice-wrap .box p.photo img{
    width:100%;
    padding: 3px;
    border: solid 1px var(--d-color-thin-3);
}
.front-voice-wrap .box p{
    font-size:var(--d-font-size-min-1);
    line-height: 1.5;
}
.front-voice-wrap .box .min-text{
    font-size:var(--d-font-size-min-2);
}
.front-voice-wrap .box p.text{
    margin:0 0 1.2em;
}

/* サービス (個別)*/
#service-page .main-contents .flex-box{
    margin:0 0 1em 0;
}
#service-page .main-contents .flex-box p.sub-title{
    display:flex;
    align-items: center;
    background-color: var(--d-color-thin-4);
    padding:.5em 1em;
    font-weight: 600;
    font-size: var(--d-font-size-min-0);
}
#service-page .main-contents .flex-box p.sub-title:before{
    content: " ";
    background-image: url("../../img/common/icon-red-min-sign.svg");
    background-repeat: no-repeat;
    background-size: 18px;
    background-position: 0 center;
    width:24px;
    height:24px;
}
#service-page .main-contents .flex-box .contents{
    display:flex;
    padding:1em;
}
#service-page .main-contents .flex-box .photo{
    width:34%;
    margin: 0 0 0 auto;
}
#service-page .main-contents .flex-box .photo img {
    width:100%;
}
#service-page .main-text-contents{
    width:100%;
}

/* お客様の声 */
.service-list{
    display: flex;
    flex-wrap: wrap;
    padding: 1em;
    background-color: var(--d-color-thin-4);
    margin: 0 0 3em;
}
.service-list li{
    content: " ";
    position:relative;
    background-image: url("../../img/common/icon-red-middle-arrow.svg");
    background-repeat: no-repeat;
    background-size: 14px;
    background-position: 0 center;
    padding: 0 0 0 1.5em;
    margin : 0 2em 0 0;
    font-size: var(--d-font-size-min-0);
}
.bg-note {
    background-image: linear-gradient(rgba(210, 210, 210, 0.4) 1px, transparent 1px), linear-gradient(to right, rgba(210, 210, 210, 0.4) 1px, transparent 1px);
    background-size: 20px 20px;
    background-color: #fff;
    background-position: -14px 14px;
}
body.voice-template-default .left.bg-note .title::before{
    background: none;
}
body.voice-template-default .left.bg-note .title{
    border:none;
    background: var(--d-color-thin-4);
    padding:.5em 0;
    display:block;
    text-align: center;
    font-size: var(--d-font-size-1);
}
body.voice-template-default .left.bg-note .title span.min-text{
    display:block;
}
.evaluation-list{
    display: flex;
    flex-wrap: wrap;
    padding: 1em .5em;
}
.evaluation-list li:before {
    content: " ";
    background-image: url("../../img/common/icon-gray-check.svg");
    background-repeat: no-repeat;
    background-size: 18px;
    background-position: 0 center;
    width: 24px;
    height: 24px;
    margin: 0 .5em 0 0;
}
.evaluation-list li.is-selected:before {
    content: " ";
    background-image: url("../../img/common/icon-red-check.svg");
    background-repeat: no-repeat;
    background-size: 18px;
    background-position: 0 center;
    width: 24px;
    height: 24px;
    margin: 0 .5em 0 0;
}
.evaluation-list li{
    width : 50%;
    display: flex;
    align-items: center;
    background-size: auto auto;
    padding: .5em 1em;
    font-weight: 600;
    font-size: var(--d-font-size-min-2);
    line-height: 1.5;
}
.voice-main.flex-box{
    display:flex;
    flex-wrap: wrap;
    margin: 0 0 3em;
}
.voice-main.flex-box .left{
    width: 73%;
    border-left:solid 1px var(--d-color-thin-4);
    border-right:solid 1px var(--d-color-thin-4);
    border-bottom:solid 1px var(--d-color-thin-4);
}
.voice-main.flex-box .right{
    width: 25%;
    margin:0 0 0 auto;
}
.voice-main.flex-box .right .name{
    text-align: center;
    display:block;
}
.voice-main.flex-box .right .name .min-text{
    display: block;
}
.voice-body{
    padding:0 1em 0;
}
.voice-body p{
    font-size: var(--d-font-size-min-0);
}
.voice-body p:last-of-type{
    margin:0 0 2em;
}
.voice-end-text{
    display:flex;
    flex-wrap: wrap;
    margin:0 0 3em ;
    padding:0 1em 0;
    align-items: center;
    justify-content: right;
}
.voice-end-text dt,
.voice-end-text dd {
    font-family: var(--font-f-mincho);
    margin:0 ;
    padding: 0;
}
.voice-end-text dt{
    margin: 0 1em 0 0;
    font-size: var(--d-font-size-min-0);
}

/* reason */
.reason-box .sub-title:before {
    content: " ";
    background-image: url(../../img/common/icon-red-min-sign.svg);
    background-repeat: no-repeat;
    background-size: 18px;
    background-position: 0 center;
    width: 24px;
    height: 24px;
}
.reason-box p.sub-title {
    display: flex;
    align-items: center;
    font-size: var(--d-font-size-min-0);
    padding: .5em 1em;
    margin: 0;
    font-weight: 600;
    background: #F4F4F4;
    border-right:solid 1px var(--d-color-thin-3);
    border-left:solid 1px var(--d-color-thin-3);
}
.reason-box .contents-wrap{
    display:flex;
    padding: 1em;
    border-right:solid 1px var(--d-color-thin-3);
    border-left:solid 1px var(--d-color-thin-3);
    border-bottom:solid 1px var(--d-color-thin-3);
}
.reason-box .contents-wrap p,
.reason-box .contents-wrap li{
    font-size: var(--d-font-size-min-0);
}
.reason-box .contents-wrap p{
    margin:0 0 1em 0;
}
.reason-box .contents-wrap ul{
    padding:0 0 1em 1em;
}
.reason-box{
    margin: 0 0 4em 0;
}
.reason-box .contents-wrap + table.default{
    margin:1em 0 0 0;
}
.reason-box .contents-wrap .text-contents{
    margin:0 1em 0 0;
}
.reason-box .contents-wrap.flip .text-contents{
    order:2;
    margin:0 0 0 1em;
}
.reason-box img{
    margin: 0 0 .75em 0;
    padding: 3px;
    border: solid 1px var(--d-color-thin-3);
}
.reason-box{
    margin:0 0 3em;
}
.reason-box p{
    font-size: var(--d-font-size-min-0);
}

/* グループ沿革 about summary */
.group-dl-list{
    display:flex;
    flex-wrap:wrap;
    margin:0 0 4em 0;
}
.group-dl-list dt{
    width:20%;
    line-height: 1.5;
    padding: 1em 0 1em;
    border-bottom:solid 1px var(--d-color-thin-3);
    font-size: var(--d-font-size-min-0);
}
.group-dl-list dd{
    width:80%;
    line-height: 1.5;
    padding: 1em 0 1em;
    border-bottom:solid 1px var(--d-color-thin-3);
    font-size: var(--d-font-size-min-0);
}

/* sitemap */
.sitemap-wrap{
    display:flex;
    flex-wrap:wrap;
}
.sitemap-wrap .box{
    width: 49%;
}
.sitemap-wrap .box:nth-of-type(2n){
    margin:0 0 0 auto;
}
.sitemap-wrap .box ul{
    padding: 1em;
}
.sitemap-wrap .box .title{
    background: none;
    border-top:none;
    border-left: solid var(--primary-color-2) 3px;
}
.sitemap-wrap .box .title:before{
    display:none;
}
.sitemap-wrap .box ul li{
    font-size: var(--d-font-size-min-1);
}

/* access */
#access-page dl.table-default > dd{
    text-align: left;
}
.access-box#tokyo{
    margin:0 0 4em;
}
.google-map iframe{
    border:0;
    width:100%;
    height:500px;
}

/* faq よくあるご質問 */
dl.faq{
    margin:0 0 3em;
}
dl.faq .q:before{
    content:"Q";
    padding:.5em;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin:0 .8em 0 0;
    line-height: 1;
    border-radius: 50%;
    background-color: #0a7aff;
    color:white;
    width:30px;
    height:30px;
}
dl.faq .q{
    background-color: var(--d-color-thin-4);
    padding:.5em;
    font-weight: 600;
    font-size: var(--d-font-size-min-0);
}
dl.faq .a:before{
    content:"A";
    padding:.5em;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin:0 .8em 0 0;
    line-height: 1;
    border-radius: 50%;
    background-color: var(--primary-color-3);
    color:white;
    width:30px;
    height:30px;
}
dl.faq .a{
    padding:.5em .5em 2em;
}
dl.faq .a:last-of-type{
    padding:.5em;
}
dl.faq .a p:first-of-type{
    display:inline;
}
dl.faq .a p{
    font-size: var(--d-font-size-min-0);
}

/* office page */
body.single-office .main-text-contents{
    width:100%;
}
body.single-office .main-photo{
    width:20%;
    margin:0 0 0 1em;
}
body.single-office .main-photo img {
    margin-bottom: .5em;
    border-radius: 50%;
    background: white;
    border: 1px solid var(--d-color-thin-3);
    width: 150px;
    height: 150px;
    object-fit: contain;
}
#intro-page .main-photo p,
body.single-office .main-photo p{
    font-size: var(--d-font-size-min-0);
    text-align: center;
    line-height:1.75;
}