@charset "UTF-8";

@media (min-width: 600px){
/*--------------------------------------------------
  common
  ------------------------------------------------*/
#content{
  margin: 0 auto clamp(100px, 12.5vw, 150px);
}

.page #content, .single #content,
.archive #content, .search-results #content, .error404 #content{
  padding-top: clamp(40px, 4.2vw, 50px);
}

.archive main .l-parent,
.search-results main .p-searchContent{
  margin-top: clamp(40px, 4.2vw, 50px) !important;
}

.top #content{
  padding-top: 0;
}

/*--------------------------------------------------
  btn
  ------------------------------------------------*/
.btn a,
.top main .is-style-more_btn a{
  font-size: 16px;
  max-width: 350px;
  padding: 22px 15px 20px;
}

.top main .is-style-more_btn{
  --the-min-width: 350px;
}

/*--------------------------------------------------
  parts
  ------------------------------------------------*/
main .balloon{
  font-size: 18px;
  padding: 15px 25px;
  margin-bottom: 30px;
}

main .balloon::after{
  border-width: 16px 0 0 16px;
  left: 10%;
}

main .support_list .wp-block-columns{
  gap: 25px !important;
  border: 3px #ebeff6 solid;
  padding: 25px 20px 22px 25px;
}

main .support_list h3{
  font-size: 19px;
}

main .support_list h3 br{
  display: none;
}

main .support_list .wp-block-column.img_box,
main .support_list .wp-block-column.txt_box{
  flex-basis: auto;
}

main .support_list .wp-block-column.img_box{
  max-width: 110px;
}

main .support_list .wp-block-columns img{
  max-width: 100%;
}

main .support_list .wp-block-column.txt_box{
  flex: 1 1 0%;
}

/*--------------------------------------------------
  common page
  ------------------------------------------------*/
.page-common main section:not(:last-child){
  margin-bottom: clamp(50px, 5vw, 60px);
}

.page-common main h1,
.page-common main h2{
  text-align: left;
  margin-bottom: clamp(32px, 3vw, 36px);
}

.top main .post_content h2,
.work.page main h1,
.contact.page main h1,
.archive main h1{
  font-size: clamp(34px, 2.5vw, 38px);
}

.top main .post_content h2 small,
.work.page main h1 small,
.contact.page main h1 small,
.archive main h1 small{
  font-size: 15px;
  font-weight: 500;
}

.search-results main h1{
  font-size: clamp(26px, 2.5vw, 28px);
}

/*--------------------------------------------------
  header
  ------------------------------------------------*/
header .c-headLogo .site_name{
  font-size: 18px;
  margin-top: 0;
}

/*--------------------------------------------------
  header top
  ------------------------------------------------*/
.top header .menu_box{
  margin-left: 20px;
}

.top header .c-headLogo a.c-headLogo__link{
  padding: 20px 20px 25px;
}

.top header .c-headLogo a img{
  max-width: 90px;
  margin-bottom: 20px;
}

.top header .c-headLogo .site_name{
  font-size: 16px;
}

.top header .w-header .cv_box a,
.top header .l-header__menuBtn{
  width: 70px;
  height: 70px;
}

.top header .w-header .tel_box .tel_txt,
.top header .w-header .mail_box p{
  font-size: 10px;
}

/*--------------------------------------------------
  sp menu
  ------------------------------------------------*/
#sp_menu .c-widget__title{
  padding: 12px 16px;
}

/*--------------------------------------------------
  top
  ------------------------------------------------*/
.top main .swell-block-fullWide{
  padding: 40px 0 50px !important;
}

/*--------------------------------------------------
  main visual
  ------------------------------------------------*/
.top #main_visual .p-mainVisual__textLayer{
  padding-inline: 2vw;
  padding-bottom: 20vw;
}

.top #main_visual .p-mainVisual__slideTitle{
  font-size: 25px;
}

.top #main_visual .p-mainVisual__slideTitle i{
  margin-right: -6px;
}

.top #main_visual .p-mainVisual__slideTitle span{
  margin-inline: -5px;
}

.top #main_visual .p-mainVisual__slideTitle br.pcon{
  display: none;
}

/*--------------------------------------------------
  top message
  ------------------------------------------------*/
.top #message h2{
  margin-bottom: 25px;
}

.top #message h3{
  font-size: 24px;
  margin-bottom: 25px;
}

.top #message .txt_box p br{
  display: none;
}

.top #message .img_box{
  max-width: 480px;
}

/*--------------------------------------------------
  top work
  ------------------------------------------------*/
.top #work .lead_box p:first-child{
  margin-bottom: 0;
}

.top #work .lead_box p br{
  display: none;
}

.top #work .lead_box p br:nth-child(2){
  display: inline-block;
}

.top #work .img_box img,
.work.page main .img_box img{
  max-width: 356px;
}

.top #work ul.list_box{
  width: 80%;
  margin: 0 auto;
}

.top #work li .btn a{
  max-width: 100%;
}

/*--------------------------------------------------
  top contact
  ------------------------------------------------*/
.top #contact .l-container::after{
  width: 162px;
  height: 206px;
  right: -.5em;
  bottom: -50px;
}

.top #contact .lead_box p.strong_txt{
  font-size: clamp(18px, 2.5vw, 20px);
}

.top #contact .lead_box p.strong_txt br,
.top #contact .lead_box p.inline_txt br:first-child{
  display: none;
}

.top #contact .cv_box{
  width: 100%;
  max-width: 480px;
}

.top #contact .cv_box > div{
  padding: 30px;
}

.top #contact .cv_box h3{
  font-size: 20px;
  margin-bottom: 8px;
}

.top #contact .cv_box p{
  font-size: 16px;
  margin-bottom: 15px;
}

.top #contact .cv_box a{
   max-width: 350px;
}

.top #contact .img_box{
  width: 65px;
  height: 65px;
}

.top #contact .tel_box img{
  width: 20px;
}

.top #contact .mail_box img{
  width: 22px;
}

.top #contact .tel_box .number{
  font-size: 30px;
  letter-spacing: 1.6px;
}

.top #contact .mail_box figcaption{
  font-size: 18px;
}

/*--------------------------------------------------
  top blog archive(search)
  ------------------------------------------------*/
.top #blog .p-postList__item,
.archive.cat-blog main .p-postList__item,
.search-results main .p-postList__item{
  width: 100% !important;
}

.top #blog .p-postList__item:not(:last-child),
.archive.cat-blog main .p-postList__item:not(:last-child),
.search-results main .p-postList__item:not(:last-child){
  margin-bottom: 20px;
}

.top #blog .p-postList__body,
.archive.cat-blog main .p-postList__body,
.search-results main .p-postList__body{
  padding: 22px 20px 20px 24px;
}

.top #blog .c-postThumb,
.archive.cat-blog main .c-postThumb,
.search-results main .c-postThumb{
  max-width: 190px;
}

.top #work .c-postThumb__cat,
.archive.cat-blog main .c-postThumb__cat,
.search-results main .c-postThumb__cat{
  font-size: 13px;
  padding: 8px 12px;
}

.top #blog time,
.archive.cat-blog main time,
.search-results main time{
  font-size: 16px;
}

.top #blog .p-postList__cat,
.archive.cat-blog main .p-postList__cat,
.search-results main .p-postList__cat{
  font-size: 13px;
  min-width: 70px;
  padding: 8px 15px 7px;
}

.top #blog .p-postList__title,
.archive.cat-blog main .p-postList__title,
.search-results main .p-postList__title{
  font-size: 18px;
  margin-bottom: 10px;
}

.top #blog .p-postList__excerpt,
.archive.cat-blog main .p-postList__excerpt,
.search-results main .p-postList__excerpt{
  font-size: 16px;
}

.top #blog .is-style-more_btn{
  margin-top: 50px;
}

.archive main .c-pagination,
.search-results main .c-pagination{
  margin-top: 4em;
}

/*--------------------------------------------------
  top news archive
  ------------------------------------------------*/
.top #news .l-container{
  max-width: 1200px;
}

.archive.cat-news main{
  max-width: 1000px;
}

.top #news .p-postList{
  padding: 40px;
}

.top #news .p-postList__item a,
.archive.cat-news main .p-postList__item a{
  padding: 20px 5px;
}

.top #news h3{
  font-size: 16px;
}

.top #news .p-postList__meta,
.archive.cat-news main .p-postList__meta{
  margin-bottom: 10px;
}

.top #news .p-postList__times,
.archive.cat-news main .p-postList__times{
  margin-right: 15px;
}

.top #news .p-postList__cat,
.archive.cat-news main .p-postList__cat{
  font-size: 13px;
  min-width: 90px;
  padding: 8px 15px 7px;
}

.top #news time,
.archive.cat-news main time{
  font-size: 16px;
  letter-spacing: 0.6px;
}

.top #news .is-style-more_btn{
  margin-top: 45px;
}

/*--------------------------------------------------
  top access page
  ------------------------------------------------*/
.top #access .info{
  gap: 2.25em !important;
}

.access.page main .google_map{
  margin: 0 auto 30px;
}

.top #access .info h3{
  font-size: 22px;
}

.top #access .info h3::after,
.access.page main .info h2::after{
  width: 20px;
  height: 28px;
  top: -2px;
}

.top #access .info address,
.access.page main .info address{
  margin-bottom: 30px;
}

.top #access .info address li.add br,
.access.page main .info address li.add br{
  display: none;
}

.top #access .info address .caution,
.access.page main .info address .caution{
  font-size: 15px;
}

.top #access .info .route .caution,
.access.page main .info .route .caution{
  font-size: 14px;
}

.top #access .info .route,
.access.page main .info .route{
  max-width: 400px;
}

.top #access .info .route{
  margin: 0 auto 40px;
}

.access.page main .info .route{
  margin: 0 auto;
}

.top #access .info .route li:not(:last-child),
.access.page main .info .route li:not(:last-child){
  margin-bottom: 30px;
}

.top #access .info .route h4,
.access.page main .info .route h3{
  font-size: 18px;
  padding: 15px 25px;
}

.top #access .info .route h4 span::before,
.access.page main .info .route h3 span::before{
  width: 42px;
  height: 30px;
  left: -55px;
  top: -4px;
  bottom: auto;
}

.top #access .info .route p.parking,
.access.page main .info .route p.parking{
  margin-bottom: 15px;
}

.top #access .info .route .train p,
.access.page main .info .route .train p{
  margin-bottom: 20px;
}

.top #access .info .route p.parking,
.top #access .info .route .train a,
.access.page main .info .route p.parking,
.access.page main .info .route .train a{
  padding-left: 45px;
  position: relative;
}

.top #access .info .route p.parking::before,
.top #access .info .route .train a::before,
.access.page main .info .route p.parking::before,
.access.page main .info .route .train a::before{
  width: 30px;
  height: 30px;
  top: -5px;
}

/*--------------------------------------------------
  footer
  ------------------------------------------------*/
footer .l-footer__widgetArea{
  padding-block: 0 3em;
  padding-inline: var(--swl-pad_container, 0);
}

footer .info_box{
  margin-bottom: 30px;
}

footer .info_box .information{
  margin-bottom: 25px;
}

footer .info_box .logo img{
  max-width: 100px;
  margin-bottom: 20px;
}

footer .info_box .logo p{
  font-size: 22px;
}

footer .info_box .address li{
  font-size: 15px;
}

footer .info_box .sns li a{
  font-size: 20px;
  width: 35px;
  height: 35px;
}

footer .info_box .sns li i.icon-twitter-x{
  font-size: 16px;
}

footer .contact_box{
  width: 100%;
  max-width: 270px;
  margin: 0 auto 40px;
}

footer .tel_box .number{
  font-size: 28px;
}

footer .tel_box figure .img_box img{
  max-width: 18px;
  margin-top: 4px !important;
}

footer .tel_box .office_hours{
  margin-left: 24px;
}

footer .contact_box .btn a{
  padding: 16px 24px;
}

footer .menu_box .widget_nav_menu{
  padding: 25px 25px 20px;
}

footer .menu_box .c-widget__title.-footer{
  font-size: 15px;
  line-height: 1;
  padding-bottom: 20px;
  margin-bottom: 20px;
}

footer .menu_box li::before{
  top: 5px;
}

footer .menu_box a{
  font-size: 14px;
}

footer .description p{
  font-size: 13px;
}

footer .description p br{
  display: none;
}

/*--------------------------------------------------
  work page
  ------------------------------------------------*/
.work.page main .swell-block-fullWide:first-child{
  padding: 2.75em 1em 2em !important;
}

.work.page main .swell-block-fullWide:nth-child(odd) > .l-container{
  border: 4px #ebeff6 solid;
}

.work.page main .swell-block-fullWide__inner{
  max-width: 710px;
  padding: 20px;
}

.work.page main .swell-block-fullWide .txt_box{
  --wp-column-gap: 25px;
  margin-bottom: 25px;
}

.work.page main .swell-block-fullWide .txt_box p{
  padding-inline: 0;
}

.work.page main .swell-block-fullWide .txt_box p br{
  display: none;
}

.work.page main .list_box{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px !important;
}

.work.page main .list_box > .wp-block-column{
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
}

.work.page main h2{
  font-size: 24px;
  line-height: 1;
  padding-bottom: 25px;
  margin-bottom: 25px;
}

.work.page main h2 small{
  font-size: 17px;
  padding-top: 12px;
}

.work.page main h3{
  font-size: 17px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 5px;
}

.work.page main h3.mandate::after{
  top: -13px;
  left: -14px;
  padding: 8px 12px 5px;
}

.work.page main h3 span{
  font-size: 16px;
}

.work.page main h3 br{
  display: inline-block;
}

.work.page main .list_box p.wp-block-paragraph{
  padding: 0 12px 0 15px;
}

.work.page main .list_box .btn a{
  max-width: 170px;
  padding: 14px 20px;
}

/*--------------------------------------------------
  price page
  ------------------------------------------------*/
.price.page main .lead_box{
  margin-bottom: 30px;
}

.price.page main .select .lead_box{
  margin-bottom: clamp(30px, 3.3vw, 40px);
}

.price.page main .balloon{
  width: 100%;
  max-width: 400px;
  display: inline-block;
  padding: 12px 20px;
  margin-bottom: 30px;
}

.price.page main h2,
.price.page main h3{
  margin-bottom: 35px;
}

.price.page main h3{
  text-align: left;
}

.price.page main h3 span{
  display: inline-block;
  margin: 0 -5px;
}

.price.page main ul.list_box li .img_box img{
  max-width: 92px;
}

.price.page main table i{
  font-size: 14px;
}

.price.page main table tbody .caution{
  margin: 0 -4px;
}

.price.page main table tbody th{
  font-size: 17px;
}

.price.page main table tbody th .caution{
  font-size: 16px;
}

.price.page main table tbody td .caution{
  font-size: 14px;
}

.price.page main ul.note_list br{
  display: none;
}

/*--------------------------------------------------
  access page
  ------------------------------------------------*/
.access.page main .walk ol > li{
  max-width: 80%;
  margin: 0 auto;
}

.access.page main .walk ol > li::before{
  font-size: 28px;
  line-height: 54px;
  max-width: 54px;
  max-height: 54px;
}

.access.page main .walk ol > li:not(:last-child){
  margin-bottom: 50px;
}

.access.page main .walk ol > li:not(:last-child)::after{
  width: 24px;
  height: 16px;
}

.access.page main .walk figure img{
  margin-bottom: 20px;
}

.access.page main .walk ul{
  margin-top: 50px;
}

.access.page main .walk ul li:not(:last-child){
  margin-bottom: 30px;
}

.access.page main .walk p span{
  font-size: 16px;
  margin-left: 16px;
}

/*--------------------------------------------------
  office page
  ------------------------------------------------*/
.office.page main h1{
  margin-bottom: 1.75em;
}

.office.page main h2{
  margin-bottom: 2em;
}

.office.page main h2.reset{
  font-size: 24px;
  display: block;
  margin-bottom: 1.25em;
}

.office.page main .message .business_photo{
  width: 38%;
  margin-left: 2em;
}

.office.page main .message p br,
.office.page main .message p.spoff br,
.office.page main table br.pcoff{
  display: none;
}

.office.page main .profile{
  margin-bottom: 2.5em;
}

.office.page main .profile ul.interest span{
  display: inline-block;
  margin-inline: -5px;
}

/*--------------------------------------------------
  contact page - form
  ------------------------------------------------*/
.contact.page main{
  max-width: 1000px;
}

.contact.page main .post_content{
  margin-top: 35px;
}

.contact.page .smf-form .lead span i{
  font-size: 16px;
}

.contact.page ol.smf-progress-tracker{
  max-width: 850px;
  margin: 0 auto 35px;
}

.contact.page .smf-progress-tracker__item__number{
  width: 34px;
  height: 34px;
  padding-top: 3px;
}

.contact.page .smf-form{
  margin-bottom: 50px;
}

.contact.page .privacy_message{
  font-size: 14px;
}

.contact.page .smf-form .smf-item .smf-item__label__text:after{
  font-size: 20px;
  top: -4px;
  right: -12px;
}

.contact.page .smf-form .smf-item:not(:last-child){
  margin-bottom: 25px;
}

.contact.page .smf-form .smf-item.select_box{
  margin-bottom: 15px;
}

.contact.page .smf-form .smf-item label{
  line-height: normal;
}

.contact.page .smf-form .smf-item .smf-item__label{
  margin-bottom: 5px !important;
}

.contact.page .privacy_message{
  margin-top: -15px;
}

.contact.page .smf-action{
  display: flex;
  max-width: 800px;
  margin: 0 auto;
}

.contact.page .smf-action .smf-button-control{
  flex: 1 1 0%;
}

.contact.page .smf-action button{
  font-size: 18px;
  letter-spacing: 1px;
  max-width: 400px;
  padding: 15px 25px;
}

.contact.page .smf-action .smf-button-control + .smf-button-control{
  margin-left: 20px;
}

.contact.page .smf-action button[data-action="back"]{
  background: #ddd;
  margin-bottom: 0;
}

/*--------------------------------------------------
  contact page - form error messages
  ------------------------------------------------*/
.contact.page .smf-form .smf-item .smf-error-messages{
  font-size: 13px;
  margin-top: 5px;
}

/*--------------------------------------------------
  contact page - form confirm（確認画面）
  ------------------------------------------------*/
.contact.page form[data-screen="confirm"] .smf-form .smf-item{
  margin-bottom: 20px;
  padding-bottom: 16px;
}

.contact.page form[data-screen="confirm"] .smf-form .smf-item:nth-child(3){
  padding-top: 20px;
}

/*--------------------------------------------------
  contact page - form complete（完了画面）
  ------------------------------------------------*/
.contact.page .smf-complete-content .txt_box p.frame{
  text-align: center;
  max-width: 400px;
  padding: 18px 20px 15px;
  margin: 28px auto 35px;
}

.contact.page .smf-complete-content .btn{
  max-width: 250px;
  margin: 0 auto;
}

/*--------------------------------------------------
  privacy page
  ------------------------------------------------*/
.privacy.page main h2.reset,
.sitemap.page main h2.reset{
  font-size: 20px;
}

/*--------------------------------------------------
  single post
  ------------------------------------------------*/
.single-post main .post_content{
  margin: clamp(25px, 2.5vw, 30px) 0 0;
}

.single-post main figure.p-articleThumb{
  margin-bottom: clamp(30px, 2.9vw, 35px);
}

.single-post main h1{
  font-size: 24px;
}

.single-post main .p-articleMetas{
  gap: 15px;
  margin-top: 15px;
}

.single-post main .c-categoryList a{
  font-size: 13px;
  min-width: 70px;
  padding: 8px 15px 7px;
}

.single-post main time{
  font-size: 16px;
  letter-spacing: 1px;
}

/*--------------------------------------------------
  404 error
  ------------------------------------------------*/
.error404 main h1{
  font-size: 36px;
  margin-bottom: 25px;
}

.error404 main h1 span{
  font-size: 120px;
  margin-bottom: 2px;
}

.error404 main .post_content .lead{
  font-size: 26px;
  line-height: 1.6;
}

.error404 main .post_content .last_txt{
  margin-bottom: 40px;
}

.error404 main .post_content .last_txt br:first-child{
  display: none;
}

.error404 main .post_content .btn{
  --the-min-width: initial;
}
}


@media (min-width: 680px){
/*--------------------------------------------------
  main visual
  ------------------------------------------------*/
.top #main_visual .p-mainVisual__slideTitle{
  font-size: 28px;
}
}


@media (min-width: 768px){
/*--------------------------------------------------
  common
  ------------------------------------------------*/
a[href^="tel:"]{
  pointer-events: none;
  cursor: default;
}

header .cv_box a[href^="tel:"]{
  pointer-events: auto;
  cursor: pointer;
}

/*--------------------------------------------------
  parts
  ------------------------------------------------*/
main .support_list .wp-block-columns{
  gap: 25px !important;
}

main .support_list .wp-block-columns{
  padding: 30px 25px 27px 30px;
}

/*--------------------------------------------------
  header top
  ------------------------------------------------*/
.top header .c-headLogo a.c-headLogo__link{
  padding: 15px 15px 20px;
}

.top header .c-headLogo a img{
  max-width: 80px;
  margin-bottom: 15px;
}

/*--------------------------------------------------
  top
  ------------------------------------------------*/
.top main .lead_box{
  margin-bottom: 36px;
}

/*--------------------------------------------------
  main visual
  ------------------------------------------------*/
.top #main_visual .p-mainVisual,
.top #main_visual .p-mainVisual__inner,
.top #main_visual .p-mainVisual__slide{
  max-height: 810px;
}

.top #main_visual .p-mainVisual__textLayer{
  padding-bottom: 7vw;
}

.top #main_visual .p-mainVisual__slideTitle{
  font-size: 24px;
}

.top #main_visual .p-mainVisual__slideText{
  margin-top: 10px;
}

/*--------------------------------------------------
  top message
  ------------------------------------------------*/
.top #message::before{
  height: 10.418vw;
  background: url(img/common/bg/wave.svg) center bottom / 100% 100% no-repeat;
}

.top #message h2 + .wp-block-columns{
  flex-flow: column;
}

/*--------------------------------------------------
  top work
  ------------------------------------------------*/
.top #work ul.list_box{
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.top #work ul.list_box > li{
  grid-template-rows: subgrid;
  grid-row: span 4;
}

.top #work ul.list_box > li:not(:last-child){
  margin-bottom: 0;
}

.top #work ul.services li span{
  letter-spacing: -0.4px;
}

/*--------------------------------------------------
  top contact
  ------------------------------------------------*/
.top #contact .l-container::after{
  right: 1.75em;
}

.top #contact .lead_box p:last-child br{
  display: none;
}

/*--------------------------------------------------
  top blog archive(search)
  ------------------------------------------------*/
.top #blog .p-postList,
.archive.cat-blog main .p-postList,
.search-results main .p-postList{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 25px;
}

.top #blog .p-postList__item:not(:last-child),
.archive.cat-blog main .p-postList__item:not(:last-child),
.search-results main .p-postList__item:not(:last-child){
  margin-bottom: 0;
}

.top #blog .p-postList__link,
.archive.cat-blog main .p-postList__link,
.search-results main .p-postList__link{
  display: block;
  box-shadow: 6px 6px #ebeff6;
}

.top #blog .p-postList__body,
.archive.cat-blog main .p-postList__body,
.search-results main .p-postList__body{
  border: 2px #ebeff6 solid;
  border-top: none;
  border-radius: 0 0 .5em .5em;
}

.top #blog .c-postThumb,
.archive.cat-blog main .c-postThumb,
.search-results main .c-postThumb{
  max-width: 100%;
}

/*--------------------------------------------------
  top news archive
  ------------------------------------------------*/
.top #news .p-postList__item a,
.archive.cat-news main .p-postList__item a{
  padding: 18px 5px;
}

.top #news h3,
.archive.cat-news main h2{
  flex: 1 1 0%;
}

.top #news .p-postList__body,
.archive.cat-news main .p-postList__body{
  display: flex;
  align-items: center;
}

.top #news .p-postList__meta,
.archive.cat-news main .p-postList__meta{
  flex-flow: nowrap;
  margin-right: 15px;
  margin-bottom: 0;
}

/*--------------------------------------------------
  footer
  ------------------------------------------------*/
footer::before{
  height: 10.418vw;
  mask: url(img/common/bg/wave.svg) center bottom / 100% 100% no-repeat;
  -webkit-mask: url(img/common/bg/wave.svg) center bottom / 100% 100% no-repeat;
}

footer .l-footer__widgetArea{
  padding-block: 2em 3em;
}

footer .w-footer.-col3{
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: 35px;
}

footer .info_box{
  grid-column: 1;
  grid-row: 1;
  margin-bottom: 0;
}

footer .contact_box{
  grid-column: 2;
  grid-row: 1;
  margin-bottom: 0;
}

footer .menu_box{
  grid-column: 1 / -1;
  grid-row: 2;
}

footer .info_box,
footer .contact_box{
  align-self: center;
}

footer .info_box,
footer .contact_box,
footer .menu_box{
  order: initial;
}

footer .menu_box .c-widget__title.-footer{
  font-size: 16px;
}

footer .menu_box a{
  font-size: 15px;
}

/*--------------------------------------------------
  work page
  ------------------------------------------------*/
.work.page main .swell-block-fullWide{
  padding: 3em 1.5em !important;
}

.work.page main .swell-block-fullWide:first-child{
  padding: 2.75em 1.5em 3em !important;
}

.work.page main .swell-block-fullWide:last-child{
  padding: 3em 1.5em 0 !important;
}

.work.page main .swell-block-fullWide__inner{
  padding: 30px;
}

.work.page main h3 br{
  display: none;
}

/*--------------------------------------------------
  access page
  ------------------------------------------------*/
.access.page main .walk ol{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 30px;
  row-gap: 70px;
}

.access.page main .walk ol > li{
  max-width: 100%;
  margin: 0;
}

.access.page main .walk ol > li:not(:last-child){
  margin-bottom: 0;
}

.access.page main .walk ol > li:not(:last-child)::after{
  content: none;
  bottom: -35px;
}

.access.page main .walk ol > li:first-child::after{
  content: '';
}

.access.page main .walk ol > li:nth-child(even)::after{
  content: '';
  left: 100%;
  right: auto;
  margin: 0;
  transform: translateX(3px);
}

.access.page main .walk ol > li:first-child,
.access.page main .walk ol > li:last-child{
  grid-column: 1 / -1;
}

.access.page main .walk ol > li:first-child > figure,
.access.page main .walk ol > li:last-child > figure{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 30px;
}

.access.page main .walk ol > li:first-child > figure > img,
.access.page main .walk ol > li:last-child > figure > img{
  width: 100%;
  margin-bottom: 0;
}

.access.page main .walk ol > li:first-child > figure > figcaption,
.access.page main .walk ol > li:last-child > figure > figcaption{
  flex: 1;
}

.access.page main .walk ul li:not(:last-child){
  margin-bottom: 0;
}

.access.page main .walk ul{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 30px;
  row-gap: 30px;
}

.access.page main .walk ul li{
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
}

.access.page main .walk ul li figure{
  display: grid;
  grid-template-rows: auto 1fr;
}

.access.page main .walk h3{
  display: flex;
  align-items: center;
  margin-bottom: 0 !important;
}

.access.page main .walk p span{
  display: inline;
  margin-left: 0;
}

/*--------------------------------------------------
  contact page - form
  ------------------------------------------------*/
.contact.page .smf-form .lead{
  margin-bottom: 40px;
}

.contact.page .smf-form .lead br{
  display: none;
}

.contact.page .smf-form .smf-item{
  display: flex;
  align-items: center;
}

.contact.page .smf-form .smf-item.select_box{
  margin-bottom: 20px;
}

.contact.page .smf-form .smf-item .smf-item__col--controls{
  width: 100%;
  flex: 1 1 0%;
}

.contact.page .smf-form .smf-item .smf-item__col--label{
  width: 100%;
  max-width: 200px;
}

.contact.page .smf-form .privacy_message{
  margin-left: 200px;
}

/*--------------------------------------------------
  404 error
  ------------------------------------------------*/
.error404 main .post_content .u-ta-c:nth-child(3) br{
  display: none;
}
}


@media (min-width: 850px){
/*--------------------------------------------------
  top access
  ------------------------------------------------*/
.top #access .info .route{
  max-width: 100%;
  display: flex;
  justify-content: center;
}

.top #access .info .route li:not(:last-child){
  margin-right: 20px;
  margin-bottom: 0;
}

/*--------------------------------------------------
  contact page - form complete（完了画面）
  ------------------------------------------------*/
.contact.page .smf-complete-content .txt_box,
.contact.page .smf-system-error-content{
  text-align: center;
}
}


@media (min-width: 960px){
/*--------------------------------------------------
  common
  ------------------------------------------------*/
header .cv_box a[href^="tel:"]{
  pointer-events: none;
  cursor: default;
}

.top header .cv_box a[href^="tel:"]{
  pointer-events: auto;
  cursor: pointer;
}

/*--------------------------------------------------
  btn
  ------------------------------------------------*/
.btn a,
.top main .is-style-more_btn a{
  max-width: 300px;
}

.top main .is-style-more_btn{
  --the-min-width: 300px;
}

/*--------------------------------------------------
  header
  ------------------------------------------------*/
#header .l-header__inner{
  padding-top: 0;
}

header .c-headLogo{
  padding: 0;
}

header .c-headLogo .site_name{
  font-size: 22px;
  margin-left: 18px;
}

header .menu_box{
  max-width: 1200px;
  padding: 10px;
  margin: 0 auto;
}

#header .l-header__logo{
  max-width: 270px;
  padding: 0;
}

#header .w-header{
  flex: 1 1 0%;
  margin: 0;
}

#header .w-header .cv_box li,
header .w-header .cv_box a{
  width: auto;
}

header .w-header .cv_box a i{
  line-height: 1;
  margin-top: 0;
}

header .w-header .tel_box .number,
header .w-header .tel_box .office_hours,
header .w-header .mail_box a span{
  display: inline-block;
}

#header .w-header li.tel_box{
  margin-right: 12px;
}

header .w-header .tel_box a{
  color: #084085;
  background: none;
}

header .w-header .tel_box .img_box{
  display: flex;
  flex-flow: nowrap;
  align-items: center;
  margin-bottom: 3px;
}

header .w-header .tel_box picture{
  margin-right: 5px;
}

header .w-header .tel_box .img_box img{
  max-width: 16px;
  margin-bottom: 0;
}

header .w-header .tel_box .number{
  font-size: 28px;
  font-family: 'Roboto', sans-serif;
  font-weight: bold;
  letter-spacing: 1.2px;
  line-height: 1;
}

header .w-header .tel_box .tel_txt{
  display: none;
}

header .w-header .office_hours{
  font-size: 13px;
  font-weight: bold;
  margin-left: 4px;
}

header .w-header .office_hours span{
  font-size: 12px;
  margin-left: -5px;
}

header .w-header .mail_box a{
  flex-flow: nowrap;
  width: 220px;
  height: auto;
  border: 2px #39abff solid;
  padding: 12px 20px;
}

header .w-header .mail_box a:hover{
  color: #084085;
  background: #fff;
  border: 2px #084085 solid;
}

header .w-header .cv_box .mail_box i{
  margin-right: 8px;
  margin-bottom: 0;
}

header .w-header .mail_box p{
  font-size: 14px;
  font-weight: bold;
}

header nav#gnav{
  height: 70px;
  margin-top: 0;
}

header nav#gnav a{
  padding: 22px;
}

/*--------------------------------------------------
  header top
  ------------------------------------------------*/
.top header .l-container{
  flex-flow: nowrap;
}

.top header .menu_box{
  max-width: 180px;
  padding: 0;
}

.top #header .l-header__logo{
  max-width: 180px;
}

.top header .c-headLogo a.c-headLogo__link{
  padding: 20px 10px 25px;
}

.top header .c-headLogo a img{
  max-width: 100px;
  margin-bottom: 15px;
}

.top header .c-headLogo .site_name{
  font-size: 16px;
}

.top header .w-header{
  position: absolute;
  top: 30px;
  right: 10px;
}

.top header .w-header .cv_box a{
  flex-flow: column;
  width: 60px;
  height: 50px;
  padding: 5px 0;
}

.top header .w-header .tel_box a{
  color: #fff;
  background: #084085;
}

.top header .w-header .tel_box .img_box{
  position: relative;
}

.top header .w-header .tel_box .img_box::before{
  content: '';
  position: absolute;
  background: url(img/common/icon_tel.svg) no-repeat 0 0;
  background-size: 100%;
  width: 14px;
  height: 16px;
  top: 2px;
  left: 0;
  right: 0;
  margin: auto;
  z-index: 1;
}

.top header .w-header .tel_box .number,
.top header .w-header .tel_box .office_hours,
.top header .w-header .mail_box a span{
  display: none;
}

.top header .w-header .tel_box .tel_txt{
  font-size: 8px;
  display: inline-block;
}

.top header .w-header .mail_box a:hover{
  color: #fff;
  background: #39abff;
  border: 2px #39abff solid;
}

.top header .w-header .mail_box i{
  margin-right: 0;
  margin-bottom: 2px;
}

.top header .w-header .mail_box p{
  font-size: 8px;
  margin-bottom: -2px;
}

/*--------------------------------------------------
  header top nav
  ------------------------------------------------*/
.top header #gnav{
  max-width: 745px;
  flex: 1 1 0%;
  background-color: #fff;
  border-radius: 10px 0 0 10px;
  padding-inline: 10px 155px;
  margin-top: 20px;
  margin-left: 20px;
}

.top header #gnav ul{
  justify-content: flex-start;
}

.top header #gnav ul > li{
  position: relative;
}

.top header #gnav ul > li::after{
  content: '';
  position: absolute;
  height: 20px;
  border-right: 1px #084085 solid;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto 0;
  z-index: 1;
}

.top header #gnav ul > li:last-child::after{
  content: none;
}

.top header #gnav a{
  color: #084085;
  padding: 15px;
}

.top header #gnav a:hover{
  color: #39abff;
}

.top header #gnav ul li a .ttl{
  font-weight: bold;
}

/*--------------------------------------------------
  header fix pc
  ------------------------------------------------*/
#fix_header{
  height: 80px;
}

#fix_header .l-container{
  max-width: 1240px;
  padding-inline: 10px;
  height: 100%;
}

#fix_header .l-fixHeader__logo{
  padding: 0;  
}

#fix_header .c-headLogo a.c-headLogo__link{
  display: flex;
  align-items: center;
}

#fix_header .c-headLogo a.c-headLogo__link:hover{
  opacity: 0.8;
}

#fix_header .c-headLogo a img{
  height: 60px;
}

#fix_header .c-headLogo .site_name{
  color: #084085;
  font-size: 20px;
  font-weight: bold;
  margin-left: 15px;
}

/*--------------------------------------------------
  main visual
  ------------------------------------------------*/
.top #main_visual .p-mainVisual__slideTitle{
  font-size: 28px;
}

.top #main_visual .p-mainVisual__slideText{
  margin-top: 1em;
}

/*--------------------------------------------------
  top message
  ------------------------------------------------*/
.top #message h2 + .wp-block-columns{
  flex-flow: nowrap;
}

.top #message .txt_box{
  flex: 1 1 0%;
}

.top #message h3{
  text-align: left;
}

.top #message .img_box{
  max-width: 530px;
}

/*--------------------------------------------------
  top contact
  ------------------------------------------------*/
.top #contact .l-container::after{
  right: -1em;
}

.top #contact .lead_box{
  text-align: center;
}

.top #contact .lead_box p.inline_txt{
  margin-bottom: 0;
}

.top #contact .lead_box p.inline_txt br{
  display: none;
}

.top #contact .cv_box{
  width: 90%;
  max-width: 100%;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

/*--------------------------------------------------
  top blog archive(search)
  ------------------------------------------------*/
.top #blog .p-postList,
.archive.cat-blog main .p-postList,
.search-results main .p-postList{
  grid-template-columns: repeat(3, 1fr);
}

/*--------------------------------------------------
  top news archive
  ------------------------------------------------*/
.top #news .p-postList__item a,
.archive.cat-news main .p-postList__item a{
  padding: 20px;
}

/*--------------------------------------------------
  footer
  ------------------------------------------------*/
#pagetop:hover{
  color: #084085 !important;
  background-color: #fff !important;
  border: 2px #084085 solid;
}

/*--------------------------------------------------
  work page
  ------------------------------------------------*/
.work.page main .swell-block-fullWide{
  padding: 4em 1.5em !important;
}

.work.page main .swell-block-fullWide:first-child{
  padding: 3em 1.5em 4em !important;
}

.work.page main .swell-block-fullWide:last-child{
  padding: 4em 1.5em 0 !important;
}

.work.page main .swell-block-fullWide__inner{
  max-width: 1200px;
}

.work.page main .swell-block-fullWide .txt_box{
  flex-flow: nowrap;
  --wp-column-gap: 30px;
  margin-bottom: 30px;
}

.work.page main h2{
  display: flex;
  align-items: center;
  flex-flow: nowrap;
}

.work.page main h2 small{
  display: inline-block;
  padding-top: 0;
  margin-left: 10px;
}

/*--------------------------------------------------
  office page
  ------------------------------------------------*/
.office.page main .president_profile{
  margin-bottom: 2.75em;
}

.office.page main .profile table th,
.office.page main .profile table td{
  padding: 1em 1.25em;
}

.office.page main .profile table th{
  text-align: center;
  width: 150px;
}

.office.page main .profile table .president_profile br{
  display: inline-block;
}

/*--------------------------------------------------
  sidebar
  ------------------------------------------------*/
#sidebar{
  margin-top: 0;
}

#sidebar #fix_sidebar{
  position: sticky;
  top: calc(30px + var(--swl-adminbarH, 0px) + var(--swl-fix_headerH, 0px));
}

#sidebar .c-listMenu li a{
  font-size: 15px;
}

/*--------------------------------------------------
  404 error
  ------------------------------------------------*/
.error404 main h1{
  margin-bottom: 30px;
}

.error404 main .post_content .lead{
  margin-bottom: 30px;
}

.error404 main .post_content .u-ta-c:not(.lead) br{
  display: none;
}
}


@media (min-width: 1200px){
/*--------------------------------------------------
  common
  ------------------------------------------------*/
.top header .cv_box a[href^="tel:"]{
  pointer-events: none;
  cursor: default;
}

/*--------------------------------------------------
  common page
  ------------------------------------------------*/
.top #blog h2, .top #news h2, .top #access h2{
  margin-bottom: 40px;
}

/*--------------------------------------------------
  header top
  ------------------------------------------------*/
.top header .menu_box{
  margin-left: 30px;
}

.top header .c-headLogo .site_name{
  font-size: 18px;
}

.top #header .w-header li.tel_box{
  margin-right: 10px;
}

.top header .w-header .cv_box a{
  width: 100%;
}

.top header .w-header .tel_box a{
  color: #084085;
  background: none;
}

.top header .w-header .tel_box .img_box::before{
  content: none;
}

.top header .w-header .tel_box .number,
.top header .w-header .tel_box .office_hours{
  display: inline-block;
}

.top header .w-header .tel_box .number{
  font-size: 24px;
}

.top header .w-header .tel_box .tel_txt{
  display: none;
}

.top header .w-header .office_hours{
  font-size: 12px;
}

.top header .w-header .office_hours span{
  font-size: 11px;
}

.top header .w-header .mail_box a{
  padding: 8px 15px 5px;
}

.top header .w-header .mail_box a:hover{
  color: #084085;
  background: #fff;
  border: 2px #084085 solid;
}

.top header .w-header .mail_box i{
  margin-right: 0;
  margin-bottom: 0;
}

.top header .w-header .mail_box p{
  font-size: 11px;
  margin-bottom: 0;
}

/*--------------------------------------------------
  header top nav
  ------------------------------------------------*/
.top header #gnav{
  max-width: 940px;
  padding-inline: 10px 325px;
  margin-left: 30px;
}

.top header #gnav ul > li:last-child::after{
  content: '';
}

/*--------------------------------------------------
  top
  ------------------------------------------------*/
.top main .swell-block-fullWide{
  padding: 50px 0 60px !important;
}

.top main .lead_box{
  margin-bottom: 40px;
}

/*--------------------------------------------------
  top message
  ------------------------------------------------*/
.top #message{
  padding-block: 0 !important;
}

.top #message h2{
  margin-bottom: 0;
}

.top #message h2 + .wp-block-columns{
  align-items: center !important;
  margin-top: -1.75em;
}

.top #message .wp-block-column{
  flex-basis: auto !important;
  flex: 1 1 0%;
}

.top #message .wp-block-column.txt_box{
  width: 100%;
  max-width: 650px;
}

.top #message h3{
  font-size: 30px;
  margin-bottom: 30px;
}

.top #message .txt_box p br,
.top #message .txt_box p:last-child br{
  display: inline-block;
}

/*--------------------------------------------------
  top work
  ------------------------------------------------*/
.top #work ul.list_box{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.top #work ul.will li span{
  display: block;
}

/*--------------------------------------------------
  top contact
  ------------------------------------------------*/
.top #contact .l-container::after{
  right: 1em;
  bottom: -60px;
}

.top #contact .cv_box{
  width: 100%;
  max-width: 1000px;
  gap: 40px !important;
}

.top #contact .cv_box h3{
  font-size: 22px;
}

/*--------------------------------------------------
  top blog archive(search)
  ------------------------------------------------*/
.top #blog .p-postList,
.archive.cat-blog main .p-postList,
.search-results main .p-postList{
  gap: 30px;
}

.top #blog .is-style-more_btn{
  margin-top: 55px;
}

/*--------------------------------------------------
  top news archive
  ------------------------------------------------*/
.top #news .p-postList{
  border-radius: 1.25em;
  padding: 50px;
}

.top #news .p-postList__meta,
.archive.cat-news main .p-postList__meta{
  margin-right: 20px;
}

.top #news .p-postList__times,
.archive.cat-news main .p-postList__times{
  margin-right: 20px;
}

.top #news .is-style-more_btn{
  margin-top: 50px;
}

/*--------------------------------------------------
  top access
  ------------------------------------------------*/
.top #access .info{
  gap: 3.75em !important;
}

.top #access .google_map{
  height: 65vh;
}

.top #access .info{
  flex-flow: nowrap;
}

.top #access .info address{
  text-align: left;
}

.top #access .info h3{
  margin-left: 0;
}

.top #access .info .route{
  display: block;
}

.top #access .info .route h4{
  text-align: left;
  padding: 15px 25px 15px 55px;
}

.top #access .info .route li:not(:last-child){
  margin-right: 0;
  margin-bottom: 30px;
}

.top #access .info .btn{
  text-align: left;
}

/*--------------------------------------------------
  footer
  ------------------------------------------------*/
footer .w-footer.-col3{
  grid-template-columns: 1.2fr 1.8fr 1fr;
  gap: 30px;
}

footer .menu_box{
  grid-column: 2;
  grid-row: 1;
  column-gap: 30px;
}

footer .contact_box{
  grid-column: 3;
}

/*--------------------------------------------------
  work page
  ------------------------------------------------*/
.work.page main .swell-block-fullWide .txt_box{
  margin-bottom: 40px;
}

.work.page main .swell-block-fullWide .txt_box p br{
  display: inline-block;
}

/*--------------------------------------------------
  price page
  ------------------------------------------------*/
.price.page-common main h2,
.price.page-common main h3{
  text-align: left;
}

.price.page-common main h3{
  padding: 15px;
}

.price.page main h3 span{
  font-size: 20px;
}

.price.page main ul.list_box{
  grid-template-columns: repeat(6, 1fr);
}

.price.page main ul.list_box li .img_box img{
  max-width: 86px;
}

.price.page main table thead th span.reward{
  position: relative;
}

.price.page main table thead th span.reward::before{
  content: '*';
  position: absolute;
  top: -10px;
  right: -10px;
}

.price.page main table{
  display: table;
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  border: none;
}

.price.page main table thead{
  display: table-header-group;
}

.price.page main table tbody{
  display: table-row-group;
}

.price.page main table tr{
  display: table-row;
}

.price.page main table th,
.price.page main table td{
  display: table-cell;
  width: auto;
  padding: 16px 15px 14px !important;
  line-height: 1.7;
  vertical-align: middle;
  box-sizing: border-box;
}

.price.page main table thead th{
  color: #fff;
  background: #5588c8;
  font-weight: bold;
  text-align: center;
  border-right: 2px solid #fff;
}

.price.page main table thead th:first-child{
  border-left: 2px solid #5588c8;
}

.price.page main table  thead th:last-child{
  border-right: 2px solid #5588c8;
}

.price.page main table tbody th{
  font-size: 15px;
  color: inherit;
  font-weight: normal;
  text-align: left;
}

.price.page main table tbody td{
  font-size: 15px;
}

.price.page main table tbody td.off{
  display: table-cell;
}

.price.page main table tbody tr td:nth-child(2){
  font-size: 15px;
  text-align: center;
}

.price.page main table tbody tr td:last-child{
  font-size: 14px;
  padding: 16px 12px 14px 14px !important;
}

.price.page main table tbody tr:nth-child(odd) th,
.price.page main table tbody tr:nth-child(odd) td{
  background: #fff;
  border: none;
}

.price.page main table tbody tr:nth-child(odd) th:first-child{
  border-left: 2px solid #ebeff6;
}

.price.page main table tbody tr:nth-child(odd) td:last-child{
  border-right: 2px solid #ebeff6;
}

.price.page main table tbody tr:nth-child(even) th,
.price.page main table tbody tr:nth-child(even) td{
  background: #ebeff6;
  border-right: 2px solid #fff;
}

.price.page main table tbody tr:nth-child(even) th:first-child{
  border-left: 2px solid #ebeff6;
}

.price.page main table tbody tr:nth-child(even) td:last-child{
  border-right: 2px solid #ebeff6;
}

.price.page main table tbody td::before{
  display: none;
}

.price.page main table tbody td ul, .price.page main table tbody td p,
.price.page main .price_note, .price.page main .price_note ul.note_list{
  padding: 0;
}

.price.page main table tbody th br,
.price.page main table tbody td br,
.price.page main table tbody .caution br{
  display: inline-block;
}

.price.page main table tbody .caution{
  margin: 0 -6px;
}

.price.page main table tbody th .caution{
  font-size: 14px;
}

.price.page main ul.note_list br{
  display: inline-block;
}

.price.page main p.tax{
  font-size: 14px;
  text-align: right;
  display: block;
  margin-top: 12px;
}

.price.page main .table_col3 thead th:nth-child(1){
  width: 36%;
}

.price.page main .table_col3 thead th:nth-child(2){
  width: 32%;
}

.price.page main .table_col3 thead th:nth-child(3){
  width: 32%;
}

.price.page main .table_col4 thead th:nth-child(1){
  width: 28%;
}

.price.page main .table_col4 thead th:nth-child(2){
  width: 18%;
}

.price.page main .table_col4 thead th:nth-child(3){
  width: 34%;
}

.price.page main .table_col4 thead th:nth-child(4){
  width: 20%;
}

.price.page main #will-inheritance table thead th:nth-child(1){
  width: 28%;
}

.price.page main #will-inheritance table thead th:nth-child(2){
  width: 18%;
}

.price.page main #will-inheritance table thead th:nth-child(3){
  width: 24%;
}

.price.page main #will-inheritance table thead th:nth-child(4){
  width: 30%;
}

/*--------------------------------------------------
  access page
  ------------------------------------------------*/
.access.page main .walk p span{
  display: inline-block;
  margin-left: 16px;
}

/*--------------------------------------------------
  office page
  ------------------------------------------------*/
.office.page main .information{
  margin-bottom: 4em;
}

.office.page main .message .business_photo{
  margin-left: 2.5em;
}

.office.page main .message p.pcon br,
.office.page main .message p.spoff br{
  display: inline-block;
}

.office.page main .profile table th{
  width: 200px;
}

.office.page main .information .book_photo img{
  border: 10px #ebeff5 solid;
}

/*--------------------------------------------------
  single post
  ------------------------------------------------*/
.single-post main h1{
  font-size: 26px;
}

.single-post main .p-articleMetas{
  margin-top: 20px;
}
}


@media (min-width: 1250px){
/*--------------------------------------------------
  header
  ------------------------------------------------*/
header .menu_box{
  padding-inline: 0;
}

/*--------------------------------------------------
  header top
  ------------------------------------------------*/
.top header .menu_box{
  max-width: 200px;
}

.top #header .l-header__logo{
  max-width: 200px;
}

.top header #gnav{
  max-width: 990px;
  padding-inline: 10px;
}

.top header .w-header .mail_box p span{
  display: inline-block;
}

/*--------------------------------------------------
  top message
  ------------------------------------------------*/
.top #message .wp-block-column.txt_box{
  margin-top: -3em !important;
}

/*--------------------------------------------------
  top contact
  ------------------------------------------------*/
.top #contact .l-container::after{
  right: 3em;
}

/*--------------------------------------------------
  work page
  ------------------------------------------------*/
.work.page main .swell-block-fullWide__inner{
  padding: 35px;
}

.work.page main .swell-block-fullWide .txt_box{
  --wp-column-gap: 50px;
}

.work.page main .txt_box .wp-block-column{
  flex-basis: auto !important;
}

.work.page main .txt_box .wp-block-column:first-child{
  width: 100%;
  max-width: 700px;
}

.work.page main .txt_box .wp-block-column:last-child{
  flex: 1 1 0%;
}

.work.page main h2{
  font-size: 28px;
}

.work.page main h2 small{
  font-size: 18px;
  margin-left: 12px;
}

.work.page main h3{
  font-size: 18px;
}

.work.page main h3.mandate::after{
  font-size: 16px;
  top: -18px;
  left: -12px;
}

.work.page main .list_box{
  grid-template-columns: repeat(4, 1fr);
}

.work.page main #corporate .list_box{
  grid-template-columns: repeat(3, 1fr);
}

.work.page main #guardianship .list_box{
  grid-template-columns: repeat(2, 1fr);
}

.work.page main .list_box p.wp-block-paragraph{
  padding: 0 10px 0 15px;
}

/*--------------------------------------------------
  access page
  ------------------------------------------------*/
.access.page main .info .route{
  max-width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
}

.access.page main .info .route li:not(:last-child){
  margin-bottom: 0;
}

.access.page main .info .route h3{
  text-align: left;
  padding: 15px 25px 15px 55px;
}
}


@media (min-width: 1500px){
/*--------------------------------------------------
  header top
  ------------------------------------------------*/
.top header #gnav{
  border-radius: 10px;
  margin-top: 30px;
}

.top header .c-headLogo a.c-headLogo__link{
  padding: 25px 10px 30px;
}

.top header .c-headLogo a img{
  max-width: 120px;
  margin-bottom: 25px;
}

.top header .c-headLogo .site_name{
  font-size: 20px;
}

.top header .w-header{
  top: 45px;
  right: 46px;
}

.top header .w-header .tel_box .number{
  font-size: 28px;
}

.top header .w-header .office_hours{
  font-size: 13px;
}

.top header .w-header .office_hours span{
  font-size: 12px;
}

.top header .w-header .mail_box a{
  flex-flow: nowrap;
  width: 230px;
  height: auto;
  padding: 12px 20px;
}

.top header .w-header .mail_box i{
  margin-right: 8px;
}

.top header .w-header .mail_box p{
  font-size: 14px;
}

/*--------------------------------------------------
  header top nav
  ------------------------------------------------*/
.top header #gnav{
  max-width: 1200px;
  height: 80px;
  margin-inline: 30px;
}

.top header #gnav a{
  padding: 22px;
}

/*--------------------------------------------------
  main visual
  ------------------------------------------------*/
.top #main_visual .p-mainVisual__textLayer{
  padding-bottom: 8vw;
}

.top #main_visual .p-mainVisual__slideTitle{
  font-size: 38px;
}

.top #main_visual .p-mainVisual__slideText{
  font-size: 20px;
}

/*--------------------------------------------------
  top message
  ------------------------------------------------*/
.top #message h2{
  position: relative;
  top: -.5vw;
}
}


@media (min-width: 1550px){
/*--------------------------------------------------
  header top
  ------------------------------------------------*/
.top header .menu_box,
.top #header .l-header__logo{
  max-width: 230px;
}

.top header .c-headLogo .site_name{
  font-size: 22px;
}
}