@charset "utf-8";

*,
::before,
::after {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

ul,
ol {
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
}

body {
  font-family: Arial,Helvetica,"游ゴシック体";
  color: #004E87;
  line-height: 1;
  background-color: #D3E2EA;
}

img {
  max-width: 100%;
}

.header-inner {
  max-width: 1200px;
  height: 110px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.toggle-menu-button {
  display: none;
}

.l-header {
  position: relative;
  z-index: 9999;
}

.menu,
.menu__inner {
  position: relative;
  z-index: 9999;
}

.menu__contents,
.menu__item--fit .menu__contents {
  z-index: 10000;
}

.l-header__inner {
  padding-left: 20px; /* ←好みで10〜30pxくらい */
}

.header-logo {
  display: block;
  width: 170px;
}

.site-menu ul {
  display: flex;
}

.site-menu ul li {
  margin-left: 20px;
  margin-right: 20px;
  -webkit-transition: all 0.3s ease;/*ふわっとさせる間隔 Google Chrome、Safari*/
  -moz-transition: all 0.3s ease;/*ふわっとさせる間隔 Firefox*/
  -ms-transition: all 0.3s ease;/*ふわっとさせる間隔 IE*/
  -o-transition: all 0.3s ease;/*ふわっとさせる間隔 Opera*/
  transition: all  0.3s ease;/*ふわっとさせる間隔*/
  text-align: center;
  cursor: pointer;
}

.site-menu ul li a {
  font-family: Arial,Helvetica,"游ゴシック体";
  font-weight: bold;
}

.site-menu ul li:hover {
  color: #b379ff;
}

/* Submenu */
 
.site-menu ul li ul{
  position: absolute;
  top: 55px;
  margin: 10px;
  width: 230px;
    padding: 0;
    z-index: 100;
}
.site-menu ul li ul li{
  display: block;
    line-height: 1.5;
    font-size: 14px;
    padding: 0;
    margin: 0;
    text-align: left;
    position: relative;
}
.site-menu ul li ul li a{
  background-color: #004E87;
  color: #ffffff;
}
.site-menu ul li ul li a:hover{
  background-color: #C7DDE8;  
  color: #b379ff;
	font-size: 17px;
	font-weight: bold;
}

.site-menu ul li ul{
  display: none;
}
.site-menu ul li:hover ul{
  display: block;
}

.footer {
  color: #004E87;
  background-color: #C7DDE8;
  padding-top: 30px;
  padding-bottom: 15px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.footer-logo {
  display: block;
  width: 235px;
  margin-top: 90px;
}

.footer-tel {
  font-size: 26px;
  font-weight: bold;
  margin-top: 28px;
}

.footer-time {
  font-size: 13px;
  margin-top: 16px;
}

.copyright {
  font-size: 14px;
  font-weight: bold;
  margin-top: 90px;
}

.link-button-area {
  text-align: center;
  margin-top: 40px;
}

.link-button {
  background-color: #81c5e9;
  display: inline-block;
  min-width: 180px;
  line-height: 48px;
  border-radius: 24px;
  font-family: Arial,Helvetica,"游ゴシック体";
  font-size: 24px;
  color: #fff;
}

.link-button:hover {
  background-color: #e14ec8;
}


.first-view {
  height: calc(100vh - 110px);
  background-image: url(../images/index/titleback.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  display: flex;
  align-items: center;
}

.top-view {
  height: calc(100vh - 110px);
  background-image: url(../images/main01.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  display: flex;
  align-items:center;
}

.top-view img {
  width: 360px;
  margin-right: 15%;
}

.first-view02 {
  height: calc(100vh - 110px);
  background-image: url(../images/index/titleback02.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  display: flex;
  align-items: center;
}

.first-view-text {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 180px;
  padding-bottom: 300px;
  color: #004E87;
  font-weight: bold;
  text-shadow: 1px 1px 20px #ffffff;
}

.first-view02-text {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 180px;
  padding-bottom: 300px;
  color: #004E87;
  font-weight: bold;
  text-shadow: 1px 1px 20px #ffffff;
}

.top-view-text {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 180px;
  padding-bottom: 0px;
  padding-top: 25vh; /* ← 数値を増やすとさらに下がります */
}

.first-view-text h1 {
  font-family: Arial,Helvetica,"游ゴシック体";
  font-size: 56px;
  line-height: 72px;
  text-shadow: 1px 1px 20px #ffffff;
}

.first-view-text p {
  font-family: Arial,Helvetica,"游ゴシック体";
  font-size: 18px;
  margin-top: 20px;
  text-shadow: 1px 1px 20px #ffffff;
}

.top-view-text h1 {
  font-family: "游ゴシック体";
  font-size: 60px;
  line-height: 72px;
  color: #fff;
  text-shadow:
    0 0 5px rgba(0, 0, 0, 0.9),
    0 0 10px rgba(0, 0, 0, 0.9),
    0 0 15px rgba(0, 0, 0, 0.9),
    0 0 25px rgba(0, 0, 0, 0.95),
    0 0 40px rgba(0, 0, 0, 1);
  letter-spacing: 0.05em;
  font-weight: 900;
}

.top-view-text p {
  font-family: "游ゴシック体";
  font-size: 20px;
  margin-top: 20px;
  color: #fff;
  text-shadow:
    0 0 5px rgba(0, 0, 0, 0.9),
    0 0 10px rgba(0, 0, 0, 0.9),
    0 0 15px rgba(0, 0, 0, 0.9),
    0 0 25px rgba(0, 0, 0, 0.95),
    0 0 40px rgba(0, 0, 0, 1);
  letter-spacing: 0.05em;
  font-weight: 400;
  line-height: 1.8;
  font-weight: 900;
}

.first-view02-text h1 {
  font-family: Arial,Helvetica,"游ゴシック体";
  font-size: 56px;
  line-height: 72px;
  text-shadow: 1px 1px 20px #ffffff;
}

.first-view02-text p {
  font-family: Arial,Helvetica,"游ゴシック体";
  font-size: 18px;
  margin-top: 20px;
  text-shadow: 1px 1px 20px #ffffff;
}

.lead {
  font-family: Arial,Helvetica,"游ゴシック体";
  max-width: 1200px;
  margin: 60px auto;
}

.lead p {
  line-height: 2;
  text-align: center;
}

.lead2 {
  display: block;
  justify-content: space-between;
  width: 930px;
  max-width: 90%;
  margin-top: 75px;
  margin-left: auto;
  margin-right: auto;
  align-items: flex-start;
  text-align: center;
}

.lead2-text {
  max-width: 860px;
  margin-right: 40px;
  display: inline-block;
}

.lead2-text h2 {
  font-size: 22px;
  font-weight: bold;
  line-height: 18px;
}

.lead2-text h2::after {
  content: '';
  display: block;
  width: 170px;
  height: 3px;
  background-color: #464c58;
  margin-top: 20px;
}

.lead2-text p {
  font-size: 16px;
  line-height: 28px;
  margin-top: 25px;
}


.lead3 {
  font-family: Arial,Helvetica,"游ゴシック体";
  max-width: 1200px;
  margin: 60px auto;
}

.recommended {
  background-color: #C7DDE8;
  padding-top: 45px;
  padding-bottom: 55px;
}

.recommended h2 {
  font-size: 22px;
  font-weight: bold;
  text-align: center;
}

.recommended h2::after {
  content: '';
  display: block;
  width: 170px;
  height: 3px;
  background-color: #9dacc7;
  margin-top: 20px;
  margin-left: auto;
  margin-right: auto;
}

.recommended p {
  font-size: 18px;
  margin-top: 20px;
  padding-left: 20px;
  padding-right: 20px;
  text-align: left;
  font-family: Arial,Helvetica,"游ゴシック体";
}

.philosophy {
  background-color: #C7DDE8;
  color: #5f3bdf;
  padding-top: 45px;
  padding-bottom: 55px;
  font-family: Arial,Helvetica,"游ゴシック体";
}

.philosophy h2 {
  font-size: 22px;
  font-weight: bold;
  text-align: center;
}

.philosophy h2::after {
  content: '';
  display: block;
  width: 170px;
  height: 3px;
  background-color: #9dacc7;
  margin-top: 20px;
  margin-left: auto;
  margin-right: auto;
}

.philosophy p {
  font-family: Arial,Helvetica,"游ゴシック体";
  font-size: 18px;
  margin-top: 20px;
  text-shadow: 1px 1px 10px #4b2c14;
  text-align: center;
}

.philosophy2 {
  background-color: #C7DDE8;
  color: #5f3bdf;
  padding-top: 45px;
  padding-bottom: 55px;
  padding-left:20%;
  font-family: Arial,Helvetica,"游ゴシック体";
}

.philosophy2 h2 {
  font-size: 22px;
  font-weight: bold;
  text-align: left;
}

.philosophy2 h2::after {
  content: '';
  display: block;
  width: 170px;
  height: 3px;
  background-color: #9dacc7;
  margin-top: 20px;
  margin-left: auto;
  margin-right: auto;
}

.philosophy2 p {
  font-family: Arial,Helvetica,"游ゴシック体";
  font-size: 18px;
  margin-top: 20px;
  text-shadow: 1px 1px 10px #4b2c14;
  text-align: left;
}

.philosophy3 {
  background-color: #C7DDE8;
  color: #5f3bdf;
  padding-top: 45px;
  padding-bottom: 55px;
  padding-right:20%;
  font-family: Arial,Helvetica,"游ゴシック体";
}

.philosophy3 h2 {
  font-size: 22px;
  font-weight: bold;
  text-align: right;
}

.philosophy3 h2::after {
  content: '';
  display: block;
  width: 170px;
  height: 3px;
  background-color: #9dacc7;
  margin-top: 20px;
  margin-left: auto;
  margin-right: auto;
}

.philosophy3 p {
  font-family: Arial,Helvetica,"游ゴシック体";
  font-size: 18px;
  margin-top: 20px;
  text-shadow: 1px 1px 10px #4b2c14;
  text-align: right;
}

.item-list {
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-align-items: center;
  align-items: center;
  padding-top: 40px;
  padding-bottom: 10px;
  padding-left: 60px;
  padding-right: 60px;
  overflow: auto;
}

.item-list li {
  flex-shrink: 0;
  width: 260px;
  margin-left: 75px;
}

.item-list img {
  width: 100%;
}

.item-list p {
  font-family: Arial,Helvetica,"游ゴシック体";
  font-size: 35px;
  color: #000000;
  margin-top: 20px;
  text-shadow: 1px 1px 10px #464c58;
  text-align: center;
  transform: translate(0%,-470%)
}

.item-list li:first-child {
  margin-left: 0;
}

.item-list dl {
  margin-top: 20px;
}

.item-list dt {
  font-weight: bold;
}

.item-list dd {
  font-size: 13px;
  line-height: 20px;
  margin-top: 10px;
}

.item-list .price {
  font-weight: bold;
  margin-top: 15px;
}

.news-list {
  list-style: none outside;
  margin: 0;
  padding: 0;
  height: 440px;
  overflow-y: scroll; /* 縦スクロールだけ */
  overflow-x: hidden; /* 横スクロール非表示 */
  white-space: normal; /* 折り返す */
}

.news-list .item a{
  display: flex;
  flex-wrap: wrap;
  text-decoration: none;
  color: #004E87;
  border-bottom: 1px solid #CCC;
  padding: 20px 20px;
}
.news-list .item:first-child a{
  border-top: 1px solid #CCC;
}
.news-list .item .date{
  margin: 0;
  min-width: 140px;
  font-size: 16px;
  color: #004E87;
  padding: 0 20px 0 0;
}
.news-list .item .category{
  margin: 0;
  min-width: 140px;
  padding: 0 20px 0 0;
}
.news-list .item .category span{
  background: #999;
  color: #FFF;
  text-align: center;
  display: inline-block;
  padding: 5px 20px;
  font-size: 12px;
  line-height: 1;
}
.news-list .item .title{
  margin: 0;
  width: 100%;
}
.news-list .item a:hover .title{
  color: #f00;
}

.newicon {
	background: #F00;
	color: #FFF;
	font-size: 10px;
	padding: 0px 5px;
	border-radius: 2px;
	margin: 0px 5px;
}

.l-header{
	width:100%;
	height:120px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.l-header__inner:before {
	content: "";
	width: 100%;
	height: 120px;
	background: linear-gradient(43.37deg, #C7DDE8 6.71%, #338dba 101.43%);
	position: absolute;
	top: 0;
	left: 0;
	z-index: -100;
}
.sp-menubtn{
	display: none;
}
.menu__inner{
	display: flex;
	justify-content: flex-end;
	align-items: center;
	height:85px;	
	position:relative;
}
.menu__item{
	margin:0 20px;
	height:100%;
}
.menu__contact{
	background: #338dba;
	width: 150px;
	text-align: center;
}
.menu__link{
	display:block;
	color:#fff;
	height:100%;
	line-height: 85px;
}
/*メガメニュー*/
.menu__contents{
	display: none;
	position:absolute;
	top:100%;
	left:0;
	width: calc(100% - 150px);
	background: #6eb4d7;
	padding:20px;	
}
.menu__contents ul {
	display: flex;
	justify-content: space-between;
}
.menu__contents ul li{
	background:#fff;
	width: 100%;
	height:100px;
}
.menu__contents ul li a{
	display:block;
	text-align: center;
	line-height: 100px;
}

  .menu__item--fit .menu__contents{
	display: none;
	position:absolute;
	top:100%;
	right:0;
	width: auto;
	background: #6eb4d7;
	padding:20px;	
  }
  .menu__item--fit .menu__contents ul{
	display: flex;
	justify-content: space-between;
  }
  .menu__item--fit .menu__contents li{
	background:#fff;
	width: 100%;
	height:100px; }

  .menu__item--fit .menu__contents a{ 
	display:block;
	text-align: center;
	line-height: 100px;}

.back-view {
  height: calc(100vh - 110px);
  background-image: url(../images/common/m&a-back.jpg);
  background-repeat: no-repeat;
  background-position:  center;
  background-size: cover;
  align-items: center;
}

.back-view-text {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  margin-top: 180;
  padding-left: 100px;
  padding-bottom: 100px;
  color: #385ea1;
  font-weight: bold;
  text-shadow: 1px 1px 10px #4b2c14;
}

.back-view-text h1 {
  font-family: Arial,Helvetica,"游ゴシック体";
  font-size: 56px;
  line-height: 72px;
  text-shadow: 1px 1px 10px #4b2c14;
}

.back-view-text p {
  font-family: Arial,Helvetica,"游ゴシック体";
  font-size: 18px;
  margin-top: 20px;
  text-shadow: 1px 1px 10px #4b2c14;
}


.feature {
  display: flex;
  justify-content: space-between;
  width: 930px;
  max-width: 90%;
  margin-top: 75px;
  margin-left: auto;
  margin-right: auto;
  align-items: flex-start;
}

.feature img {
  width: 360px;
}

.feature-text {
  max-width: 500px;
  margin-right: 40px;
}

.reverse {
  flex-direction: row-reverse;
}

.reverse .feature-text {
  margin-left: 40px;
  margin-right: 0;
}

.feature-text h2 {
  font-size: 22px;
  font-weight: bold;
  line-height: 18px;
}

.feature-text h2::after {
  content: '';
  display: block;
  width: 170px;
  height: 3px;
  background-color: #b5daed;
  margin-top: 20px;
}

.feature-text p {
  font-size: 15px;
  line-height: 28px;
  margin-top: 25px;
}

.feature2 {
  display: flex;
  justify-content: space-between;
  width: 930px;
  max-width: 90%;
  margin-top: 75px;
  margin-left: auto;
  margin-right: auto;
  align-items: flex-start;
}

.feature2-text {
  max-width: 860px;
  margin-right: 40px;
}

.feature2-text h2 {
  font-size: 22px;
  font-weight: bold;
  line-height: 18px;
}

.feature2-text h2::after {
  content: '';
  display: block;
  width: 170px;
  height: 3px;
  background-color: #b5daed;
  margin-top: 20px;
}

.feature2-text p {
  font-size: 15px;
  line-height: 28px;
  margin-top: 25px;
}

.reverse {
  flex-direction: row-reverse;
}

.feature3 {
  display: flex;
  justify-content: space-between;
  width: 730px;
  max-width: 90%;
  margin-top: 75px;
  margin-left: auto;
  margin-right: auto;
  align-items: flex-start;
}

.feature3 img {  
  width: clamp(220px, 35vw, 420px); /* 最小220px、画面の35%、最大420px */
  height: auto;
  display: block;
}

.feature3-text {
  max-width: 500px;
  margin-right: 40px;
}

.reverse {
  flex-direction: row-reverse;
}

.reverse .feature3-text {
  margin-left: 40px;
  margin-right: 0;
}

.feature3-text h2 {
  font-size: 22px;
  font-weight: bold;
  line-height: 18px;
}

.feature3-text h2::after {
  content: '';
  display: block;
  width: 170px;
  height: 3px;
  background-color: #b5daed;
  margin-top: 20px;
}

.feature3-text p {
  font-size: 15px;
  line-height: 28px;
  margin-top: 25px;
}


.feature4 {
  display: flex;
  justify-content: space-between;
  width: 600px;
  max-width: 90%;
  margin-top: 40px;
  margin-left: auto;
  margin-right: auto;
  align-items: flex-start;
}

.feature4-text {
  max-width: 860px;
  margin-right: 40px;
}

.movie {
  width: 930px;
  max-width: 90%;
  background-color: #C7DDE8;
  padding: 50px 60px;
  margin-top: 55px;
  margin-left: auto;
  margin-right: auto;
}

.movie h2 {
  font-size: 22px;
  font-weight: bold;
  text-align: center;
}

.movie h2::after {
  content: '';
  display: block;
  width: 36px;
  height: 3px;
  background-color: #C7DDE8;
  margin-top: 20px;
  margin-left: auto;
  margin-right: auto;
}

.movie iframe {
  display: block;
  width: 100%;
  height: 456px;
  margin-top: 30px;
}

.movie p {
  font-size: 15px;
  line-height: 28px;
  margin-top: 20px;
}

.footer {
  margin-top: 100px;
}

.company {
  width: 100%;
  margin: auto;
  display:flex;
  justify-content:center;
  }
  
  .company th,
  .company td {
  border: 1px solid #ffffff;
  padding: 20px;
  }
  
  .company th {
  font-weight: bold;
  background-color: #C7DDE8; 
  }

  .achievement {
    width: 100%;
    }
    
    .achievement th,
    .achievement td {
    border: 1px solid #ffffff;
    padding: 30px;
    }
    
    .achievement th {
    font-weight: bold;
    background-color: #C7DDE8; 
    }

    .achievement th img{
      max-width: 100%;
      height: auto;
      display: block;
  }

  .timeline-001__section {
    position: relative;
    padding: 0 1.5em 1.5em 2em;
    margin-left: 160px;
}

.timeline-001__section:not(:last-child)::before,
.timeline-001__section::after {
    position: absolute;
    content: '';
}

.timeline-001__section:not(:last-child)::before {
    bottom: 0;
    left: 11px;
    transform: translateX(-50%);
    width: 3px;
    height: 180%;
    background-color: #fff;
}

.timeline-001__section::after {
    top: 0;
    left: 0;
    width: 14px;
    height: 14px;
    border: 4px solid #fff;
    border-radius: 50%;
    background-color: #5825d0;
}

.timeline-001__content {
    border-bottom: dashed 1px #004E87;
    padding-bottom: 1.5em;
}

.timeline-001__label {
    margin-bottom: .1em;
    color: #004E87;
    font-size: .85em;
}

.timeline-001__title {
    color: #004E87;
    font-size: 1.05em;
    font-weight: 600;
    margin: 0 auto .5em;
}


#menu_links {
  background: #D3E2EA;
}

#menu_links > ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  letter-spacing: -0.4em;
  margin: 0 auto 60px;
  text-align: left;
  width: 1040px;
}

#menu_links > ul > li {
  display: inline-block;
  flex: 0 0 auto;
  letter-spacing: normal;
  padding: 1rem;
  vertical-align: top;
  width: 50%;
}

#menu_links > ul > li > a {
  display: block;
  padding: 1rem;
  background: #C7DDE8;
}

#menu_links > ul > li h3 {
  padding: 10px 0px;
  font-size: 20px;
  color: #5f3bdf;
  font-weight: bold;
  border-bottom: 3px solid #9dacc7;
}

.recommended {
  margin-top: 60px;
}


.cont p {
  margin: 20px 0;
  font-size: 18px;
  line-height: 1.5;
}


.main h2 {
  font-size: 22px;
  font-weight: bold;
  line-height: 30px;
}

.main h2::after {
  content: '';
  display: block;
  width: 36px;
  height: 3px;
  background-color: #C7DDE8;
  margin-top: 20px;
}

.map {
  width: 930px;
  max-width: 90%;
  margin-top: 75px;
  margin-left: auto;
  margin-right: auto;
}

.map iframe {
  display: block;
  width: 100%;
  height: 320px;
  margin-top: 25px;
}

.contact {
  width: 930px;
  max-width: 90%;
  margin-top: 75px;
  margin-left: auto;
  margin-right: auto;
}

.form-area {
  background-color: #D3E2EA;
  border: 1px solid #aaaaaa;
  margin-top: 25px;
  padding: 30px;
  display: flex;
  flex-wrap: wrap;
}

.form-area dt {
  width: 200px;
  padding: 15px 0;
  font-size: 15px;
  font-weight: bold;
  line-height: 24px;
}

.form-area dt .required::after {
  content: '必須';
  font-size: 11px;
  color: #eb4f32;
  margin-left: 10px;
}

.form-area dd {
  width: calc(100% - 200px);
  padding: 15px 0;
}

.input-text {
  width: 100%;
  max-width: 280px;
  height: 40px;
  padding-left: 10px;
  padding-right: 10px;
}

.select-box {
  width: 200px;
  height: 40px;
}

.radio-button {
  display: block;
  margin-top: 20px;
}

.radio-button:first-child {
  margin-top: 0;
}

.radio-button input {
  margin-right: 8px;
}

.message {
  width: 100%;
  height: 260px;
  padding: 10px;
  line-height: 1.5;
}

.confirm-text {
  font-size: 14px;
  line-height: 22px;
  margin-top: 30px;
}

.submit-button {
  background-color: #81c5e9;
  display: inline-block;
  min-width: 180px;
  line-height: 48px;
  border-radius: 24px;
  font-family: Arial,Helvetica,sans-serif;
  font-size: 14px;
  text-align: center;
  margin-top: 20px;
  cursor: pointer;
  border: none;
}

.submit-button:hover {
  background-color: #e14ec8;
}


.staff-list {
  width: 930px;
  max-width: 90%;
  margin-top: 75px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, 240px);
  column-gap: 95px;
  row-gap: 70px;
  justify-content: center;
}

.staff-list dl {
  margin-top: 20px;
}

.staff-list dt {
  font-weight: bold;
  margin-bottom: 15px;
  padding-top: 5px;
  padding-bottom: 15px;
  font-size: 197%;
  border-bottom: 3px  #9dacc7 solid;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden; }
  #profName span {
    font-size: 13px; 
}

.staff-list dd {
  font-size: 13px;
  line-height: 20px;
  margin-top: 10px;
}

.staff-list .price {
  font-weight: bold;
  margin-top: 15px;
}

.staff-list li {
  position: relative;
}

.staff-list .staff-label {
  position: absolute;
  top: 0;
  left: calc(100% + 18px);
  font-size: 10px;
  white-space: nowrap;
  transform-origin: top left;
  transform: rotate(90deg);
}

.profileList {
  width: 900px;
  margin-left: 45px; } 
.profileList li a {
display: block; }
.profileList li a img {
  width: 100%;
  height: 100%; }
  .profileList li a img:first-child {
    border: solid 1px #151515; }
.profileList li h2 {
text-align: center; }

.single .sideBar {
margin-top: 0 !important; }
.single .sideBar h4 {
  position: relative;
  margin-bottom: 15px;
  font-size: 138.5%; }
.single .sideBar .entryList li {
  margin-bottom: 15px;
  padding-bottom: 15px;
  letter-spacing: 1px;
  line-height: 1.6;
  border-bottom: 1px #e2e2e2 solid;
}

#profWrapper {
  width: 600px;
  float: right; } 


  #profHeader {
    position: relative; }
  
  .partner {
    margin-left: 1em;
    padding: 4px 7px;
    background: #FF6B19;
    color: #fff;
    letter-spacing: 1px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    -ms-border-radius: 5px;
    -o-border-radius: 5px;
    border-radius: 5px; }
  
  #profLeft {
    width: 300px;
    margin: 0 auto;
    float: left; } 

  
#profImage {
  width: 300px;
  height: 100%;
  min-height: 360px;
  margin-bottom: 15px; }
  #profImage .flexslider {
    margin-bottom: 0;
    background: none !important;
    border: none !important; }
  #profImage .flex-control-nav {
    bottom: 5px; }
  #profImage .flex-control-paging li a {
    background: #fff !important;
    border: 1px #151515 solid; }
    #profImage .flex-control-paging li a.flex-active {
      background: #143562 !important; }
  #profImage .slides img {
    width: 100%;
    height: 100%;
    border: 1px #000 solid; }

#profLeft .audiojs .scrubber {
  width: calc(100% - 154px); }

#profDownLoad {
  position: absolute;
  top: 0;
  right: 0;
  width: 120px;
  margin: 0 auto 30px;
  display: block; } 

  #profDownLoad a {
    display: block;
    padding: 10px;
    background: #222;
    text-align: center;
    color: #fff;
    font-weight: bold;
    -webkit-border-radius: 22px;
    -moz-border-radius: 22px;
    -ms-border-radius: 22px;
    -o-border-radius: 22px;
    border-radius: 22px;
    -webkit-transition: 300ms !important;
    -moz-transition: 300ms !important;
    -ms-transition: 300ms !important;
    -o-transition: 300ms !important;
    transition: 300ms !important; }
    #profDownLoad a:hover {
      background: #143562; }

#profName {
  margin-bottom: 15px;
  padding-top: 5px;
  padding-bottom: 15px;
  font-size: 197%;
  border-bottom: 3px  #9dacc7 solid;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden; }
  #profName span {
    font-size: 13px; }

#profile {
  position: relative;
  margin-bottom: 30px;
  letter-spacing: 1px;
  line-height: 1.8; }
  #profile dt {
    font-weight: bold;
    width: 120px;
    margin-bottom: 10px;
    float: left; } 

    #profile dd {
      margin: 0 0 15px 120px;
      padding-bottom: 15px;
      border-bottom: 1px #eee solid; }

      #profile dd iframe,
      #profile dd img {
        max-width: 100%; }

      .talentBnrList {
        width: 240px;
        margin: 0 auto 30px;
        clear: both;
        letter-spacing: -.4em; }
        .talentBnrList li {
          display: inline-block;
          width: 240px;
          height: 120px;
          margin: 0 auto 15px;
          letter-spacing: normal; }
          .talentBnrList li a {
            display: block;
            color: #151515; }
          .talentBnrList li img {
            width: 100%;
            height: 100%;
            border: 1px #000 solid; }
      
      #biography {
        margin-bottom: 60px;
        clear: both; 
        word-break:break-all;}
        #biography h2 {
          margin-bottom: 15px;
          padding-bottom: 15px;
          font-size: 197%;
          border-bottom: 1px #004E87; }
        #biography div,
        #biography dl {
          letter-spacing: 1px;
          line-height: 1.8; }
        #biography h3,
        #biography dt {
          position: relative;
          background: #C7DDE8;
          margin: 15px 0;
          padding: 10px 15px;
          font-size: 108%;
          font-weight: bold; }


          #biography div img,
          #biography div iframe,
          #biography dd img,
          #biography dd iframe {
            max-width: 100%; }

            #news, #blog {
              margin-bottom: 60px; }
              #news h2, #blog h2 {
                margin-bottom: 15px;
                padding-bottom: 15px;
                font-size: 197%;
                border-bottom: 1px #D3E2EA; }
              #news ul li, #blog ul li {
                padding: 15px 0;
                border-bottom: 1px #eee solid;
                line-height: 1.8; }
                #news ul li .pubDate, #blog ul li .pubDate {
                  margin-bottom: 5px; }
                  #news ul li .pubDate a, #blog ul li .pubDate a {
                    margin-left: 10px;
                    font-size: 93%; }
            
            .entryNone {
              margin: 60px 0;
              text-align: center; }
            
            #singleProfileList {
              padding-top: 28px;
              background: #f2f2f2;
              -webkit-border-radius: 5px;
              -moz-border-radius: 5px;
              -ms-border-radius: 5px;
              -o-border-radius: 5px;
              border-radius: 5px; }
              #singleProfileList h4 {
                position: relative;
                font-size: 164%;
                margin: 0 0 28px 45px;
                text-align: center; } 

                #singleProfileList .profileList .entry {
                  width: 100px; }

                  #singleProfileList .profileList .entry figure {
                    width: 100px;
                    height: 100px; }
                  #singleProfileList .profileList .entry h4 {
                    font-size: 93%; }

                    .inner {
                      position: relative;
                      width: 960px;
                      margin: 0 auto; } 

                      #content:after {
                        content: '';
                        display: table;
                        clear: both; }

                        
  .leftCol {
    width: 718px;
    float: left; }

  .rightCol {
    width: 242px;
    float: right;
    margin-top: 60px; }

  .loop,
  .pageContent {
    margin: 60px auto !important; }
    .loop .leftCol,
    .pageContent .leftCol {
      width: 690px; }
      .loop .leftCol .catTitle,
      .pageContent .leftCol .catTitle {
        padding: 0 0 60px 0; }
    .loop .rightCol,
    .pageContent .rightCol {
      margin-top: 0 !important; }

  .newsContent .leftCol {
    width: 718px !important; } 

    
.catTitle {
  position: relative;
  padding: 60px 0;
  font-size: 42px;
  font-family: Arial,Helvetica,sans-serif;
  text-align: center; }
  .catTitle:after {
    content: '';
    position: absolute;
    bottom: 50px;
    left: 50%;
    width: 80px;
    margin-left: -40px;
    border-bottom: 1px #151515 solid; }

.entryTitle {
  margin-bottom: 30px;
  font-size: 197%;
  line-height: 1.6; }

.entryContent {
  margin-bottom: 30px;
  font-size: 108%;
  letter-spacing: .8px;
  line-height: 1.6; }
  .entryContent img,
  .entryContent iframe {
    max-width: 100%; }

    
  .entryContent a {
    display: inline-block;
    text-decoration: underline; }

.pageContent .entryContent h3 {
  font-size: 116%; }

.bnrList {
  margin-bottom: 30px;
  overflow: hidden; }
  .bnrList li {
    margin-bottom: 15px; }
    .bnrList li:last-child {
      margin-bottom: 0; }
    .bnrList li a {
      display: block; }
    .bnrList li img {
      width: 240px;
      height: 120px;
      border: 1px #151515 solid; }

#pagination {
  padding-top: 15px;
  clear: both;
  border-top: 1px #151515 solid;
  letter-spacing: -.4em; }
  #pagination a,
  #pagination span {
    display: inline-block;
    width: 44px;
    height: 44px;
    margin: 0 11px 11px 0;
    line-height: 44px;
    text-align: center;
    letter-spacing: normal;
    -webkit-border-radius: 22px;
    -moz-border-radius: 22px;
    -ms-border-radius: 22px;
    -o-border-radius: 22px;
    border-radius: 22px; }
  #pagination a {
    background: #f2f2f2;
    color: #151515;
    -webkit-transition: 300ms !important;
    -moz-transition: 300ms !important;
    -ms-transition: 300ms !important;
    -o-transition: 300ms !important;
    transition: 300ms !important; }
    #pagination a:hover {
      background: #143562;
      color: #fff; }
  #pagination span {
    color: #999; }

    
.profile-inner {
  position: relative;
  padding-top: 3rem
}

.profile-inner .printing-link {
  right: 1rem
}

.profile-inner .pdf-link,.profile-inner .printing-link {
  position: absolute;
  color: #000000;
  top: 1rem;
  font-size: .8rem;
  background-color: #cbd5e8;
  border-radius: .2rem;
  padding: .2rem .5rem
}

.profile-inner .pdf-link {
  right: 5rem
}

.profile-inner:after {
  content: "";
  display: block;
  clear: both
}


.logo-wrapper {
  padding-bottom: .5rem;
  border-bottom: 1px solid #0d0c62
}

.logo-wrapper img.emg {
  width: 10%;
  margin:20px 45%
}


.link-button2-area {
  text-align: center;
  margin-top: 20px;
}

.link-button2 {
  background-color: #81c5e9;
  display: inline-block;
  min-width: 180px;
  line-height: 48px;
  border-radius: 24px;
  font-family: Arial,Helvetica,sans-serif;
  font-size: 16px;
  color: #fff;
}

.link-button2:hover {
  background-color: #ff718b;
}

.item-movie {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
}
.item-movie iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;
}

@media (max-width: 800px) {
  .site-menu ul {
    display: block;
    text-align: center;
  }

  .site-menu li {
    margin-top: 20px;
  }

  /*暫定措置*/
.site-menu ul li:hover ul{
  display: none;
}

  .header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background-color: #C7DDE8;
    height: 90px;
    z-index: 10;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
  }

  .header-inner {
    padding-left: 20px;
    padding-right: 20px;
    height: 100%;
    position: relative;
  }

  .header-logo {
    width: 140px;
    height: auto;
  }

  .header-site-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    color: #004E87;
    background-color: #9ab4cd;
    padding-top: 30px;
    padding-bottom: 50px;
    display: none;
  }

  .header-site-menu.is-show {
    display: block;
  }

  .toggle-menu-button {
    display: block;
    width: 44px;
    height: 34px;
    background-image: url(../images/common/icon-menu.png);
    background-size: 50%;
    background-position: center;
    background-repeat: no-repeat;
    background-color: transparent;
    border: none;
    border-radius: 0;
    outline: none;
  }

  
  
  
  .first-view {
    height: calc(35vh - 50px);
    background-image: url(../images/index/titleback02.jpg);
    align-items: flex-start;
    flex-direction: column;
  } 
  
  .first-view02 {
    height: calc(35vh - 50px);
    background-image: url(../images/index/titleback02.jpg);
    align-items: flex-start;
    flex-direction: column;
  }
  
  .top-view {
    height: calc(35vh - 50px);
    background-image: url(../images/main01.jpg);
    align-items: flex-start;
    flex-direction: column;
  }

  .first-view-text {
    padding-top: 20px;
    padding-left: 20px;
    text-align: center;
  }

  .first-view-text h1 {
    font-size: 36px;
    line-height: 48px;
    color:#fff;
    text-shadow:
    0 0 5px rgba(0, 0, 0, 0.9),
    0 0 10px rgba(0, 0, 0, 0.9),
    0 0 15px rgba(0, 0, 0, 0.9),
    0 0 25px rgba(0, 0, 0, 0.95),
    0 0 40px rgba(0, 0, 0, 1);
  }

  .first-view-text p {
    font-size: 14px;
    margin-top: 15px;
    color:#fff;
    text-shadow:
    0 0 5px rgba(0, 0, 0, 0.9),
    0 0 10px rgba(0, 0, 0, 0.9),
    0 0 15px rgba(0, 0, 0, 0.9),
    0 0 25px rgba(0, 0, 0, 0.95),
    0 0 40px rgba(0, 0, 0, 1);
  }

  
  .first-view02-text {
    padding-top: 20px;
    padding-left: 20px;
    text-align: center;
  }

  .first-view02-text h1 {
    font-size: 36px;
    line-height: 48px;
    color:#fff;
    text-shadow:
    0 0 5px rgba(0, 0, 0, 0.9),
    0 0 10px rgba(0, 0, 0, 0.9),
    0 0 15px rgba(0, 0, 0, 0.9),
    0 0 25px rgba(0, 0, 0, 0.95),
    0 0 40px rgba(0, 0, 0, 1);
  }

  .first-view02-text p {
    font-size: 14px;
    margin-top: 15px;
    color:#fff;
    text-shadow:
    0 0 5px rgba(0, 0, 0, 0.9),
    0 0 10px rgba(0, 0, 0, 0.9),
    0 0 15px rgba(0, 0, 0, 0.9),
    0 0 25px rgba(0, 0, 0, 0.95),
    0 0 40px rgba(0, 0, 0, 1);
  }


  .top-view-text {
    display: none !important;
  }

   /*
  .top-view-text {
    padding-top: 80px;
    padding-left: 20px;
    text-shadow: 2px 2px 20px #ffffff;
    text-align: center;
  }

  .top-view-text h1 {
    font-size: 32px;
    line-height: 48px;
  }

  .top-view-text p {
    font-size: 12px;
    margin-top: 5px;
  }
 
  .top-view-text h1,
  .top-view-text p {
    color: #003366; 
    text-shadow: none !important; 
  }
  */

  .lead {
    padding-left: 20px;
    padding-right: 20px;
  }

  .lead p {
    text-align: left;
  }


  .lead2 {
    width: 100%;
    max-width: 100%;
    margin: 45px auto 0;
    text-align: center!important;
  }

  
  /* ★ここを追加（or 修正） */
  .lead2-text {
    max-width: 100%;
    margin: 0 auto;      /* 左右中央寄せ */
    margin-right: 0;     /* PC用の右マージンを消す */
    display: block;      /* インラインブロックをやめてブロックに */
  }

  .lead2-text h1 {
    font-size: 23px;
    text-align: center!important;
  }
  .lead2-text p {
    font-size: 14px;
    line-height: 1.9;
    text-align: center!important;
  }
  
  .lead3 {
    padding-left: 20px;
    padding-right: 20px;
  }

  .lead3 p {
    text-align: left;
  }

  .item-list {
    display: block;
    padding-left: 20px;
    padding-right: 20px;
    width: 100%;
    margin:0 auto;
  }

  .item-list li {
    width: 60%;
    margin-right: 20%;
    margin-left: 20%;
  }
  
  .item-list p {
    font-family: Arial,Helvetica,"游ゴシック体";
    font-size: 35px;
    color: #000000;
    margin-top: 20px;
    text-shadow: 1px 1px 10px #464c58;
    text-align: center;
    transform: translate(0%,-470%)
  }

  .news-list .item a{
    flex-wrap: wrap;
  }
  .news-list .item .date{
    min-width: 100px;
  }
  .news-list .item .title{
    margin-top: 10px;
  }
   
  *{
    box-sizing: border-box;
  }
  a{
    text-decoration: none;
  }
  body{
    margin: 20px;
  }

  .contents {
    width: 100%;
    max-width: 1200px;
    margin: auto;
}
.contents img {
    width: 100%;
}
.text-center {
    text-align: center;
}
.flexbox {
    display: flex;
}
.box1 {
    width: 30%;
    margin: auto;
}
.box2 {
    width: 30%;
    margin: auto ;
}

    .flexbox {
        display: block;
    }
    .flexbox .box1 {
        width: 60%;
        margin: 0 auto;
    }
    .flexbox .box2 {
        width: 60%;
        margin: 0 auto;
    }

    .header-logo img{
      height:auto;
    }
    .l-header{
      height:60px;
    }
    .l-header__inner:before {
      height: 90px;
    }
    .l-header__inner{
      width:100%;
      height:60px;
      display: flex;
      justify-content: space-between;
      align-items: center;
    }
    .sp-menubtn {
      width: 60px;
      height: 100%;
      position: relative;
      display: block;
      z-index: 5000;
      border: none;
      background: linear-gradient(64.63deg, #338dba 6.71%, #C7DDE8 101.43%);
      cursor: pointer;
    }	
    .sp-menubtn span {
      display: block;
      overflow: hidden;
      white-space: nowrap;
      text-indent: 100%;
      width: 22px;
      height: 3px;
      background: #FFFFFF;
      position: absolute;
      transition: 0.2s;
      left: 50%;
      top: 50%;
    }	
    .sp-menubtn span:nth-child(1) {
      transform: translate(-50%, -9px);
    }	
    .sp-menubtn span:nth-child(2) {
      transform: translate(-50%, -50%);
    }	
    .sp-menubtn span:nth-child(3) {
      transform: translate(-50%, 6px);
    }	
    .sp-menubtn.active span {
      width: 25px;
      height: 2px;
    }	
    .sp-menubtn.active span:nth-child(1) {
      transform: translate(-50%, 50%) rotate(45deg);
    }	
    .sp-menubtn.active span:nth-child(2) {
      opacity: 0;
      left: 50%;
    }	
    .sp-menubtn.active span:nth-child(3) {
      transform: translate(-50%, 50%) rotate(-45deg);
    }
    .menu {
      position: fixed;
      top: 90px;
      left: 0;
      width: 100%;
      height: calc(100% - 60px);
      background: #338dba;
      color: #FFFFFF;
      overflow: auto;
      opacity: 0;
      visibility: hidden;
      transition: opacity .6s ease, visibility .6s ease;
      z-index: 5000;
    }
    .menu.active{
      opacity:100;
      visibility: visible;
    }
    .menu__inner {
      display:block;
      height:auto;
      width: 72.16vw;
      margin-left: auto;
      margin-right: auto;
      padding: 40px 0 60px;
    }	
    .menu__item {
      border-bottom:#bcbbbb solid 2px;
      width: 100%;
      position: relative;
      height: auto;
      min-height: 80px;
    }		
    .menu__link {
      font-weight: bold;
      font-size: 1.6rem;
      letter-spacing: 0.04em;
      height: 80px;
      align-items: center;
    }	
      /*メガメニュー　→アコーディオン*/
    .menu__contents{
      display: none;
      position:static;
      width:100%;
      background: #C7DDE8;
      padding:20px;	
    }
    .menu__contents ul {
      display: block;
    }
    .menu__contents ul li{
      border-bottom:#000;
      width: 100%;
      height:auto;
    }
    .menu__contents ul li a{
      color:#000;
      display:block;
      text-align: center;
      line-height:2.0;
    }
    .menu__item::after{
      content: "";
      position: absolute;
      right: 25px;
      top:35px;
      transform:translateY(-50%);
      transition: all 0.2s ease-in-out;
      display: block;
      width: 10px;
      height: 10px;
      border-top: solid 2px #C7DDE8;
      border-right: solid 2px #C7DDE8;
      -webkit-transform: rotate(135deg);
      transform: rotate(135deg);
    }
    .menu__item.active::after{
      content: "";
      position: absolute;
      right: 25px;
      top:35px;
      transform:translateY(-50%);
      transition: all 0.2s ease-in-out;
      display: block;
      width: 10px;
      height:10px;
      border-top: solid 2px #C7DDE8;
      border-right: solid 2px #C7DDE8;
      -webkit-transform: rotate(-45deg);
      transform: rotate(-45deg);
    }
    
  .menu__item--fit .menu__contents ul {
    display: block !important;   /* PCのflexを無効化 */
  }
  .menu__item--fit .menu__contents ul li {
    width: 100%;
    height: auto;
  }
  .menu__item--fit .menu__contents ul li a {
    display: block;
    line-height: 2.0;
    padding: 12px 10px;
    text-align: center;          /* 左寄せにしたければ left に */
  }


  .main {
    padding-top: 50px;
  }

  .footer-logo {
    margin-top: 60px;
  }

  .footer-tel {
    font-size: 20px;
  }

  .copyright {
    margin-top: 50px;
  }
  
  .back-view {
    height: calc(100vh - 50px);
    background-image: url(../images/index/titleback_sp.jpg);
    align-items: flex-start;
  }

  .back-view-text {
    padding-top: 60px;
    padding-left: 20px;
  }

  .back-view-text h1 {
    font-size: 36px;
    line-height: 48px;
  }

  .back-view-text p {
    font-size: 14px;
    margin-top: 15px;
  }

  
  .feature {
    display: block;
    width: 90%;
    margin-top: 45px;
  }

  .feature-text {
    margin-right: 0;
  }

  .reverse .feature-text {
    margin-left: 0;
  }

  .feature img {
    width: 90%;
    height: auto;
    margin-top: 25px;
  }

  .feature2 {
    display: block;
    width: 90%;
    margin-top: 45px;
  }

  .feature2-text {
    margin-right: 0;
  }
  
  .feature3 {
    display: flex;
    flex-direction: column;
    align-items: center;   /* ←これで中央揃え */
    text-align: center;    /* ←テキスト中央寄せ */
    width: 100%;
    margin: 45px auto 0;
    margin-left: 0px; 
    margin-right: 0px; }

  .feature3-text { 
    margin: 0;
    text-align: center;    /* ←本文中央寄せ */}

  .feature3 > a {
    display: grid;          /* ←中央寄せが確実 */
    place-items: center;
    margin-top: 8px;       /* 上の余白：お好みで 4〜12px */
  }
  
  .feature3-text p {
    margin-top: 12px;
    line-height: 1.7;
  }

  .feature3 img {
    width: clamp(200px, 30vw, 460px);
    height: auto;
    margin: 0;   /* 画像中央寄せ＋余白を微調整 */}

  .movie {
    width: 90%;
    padding: 30px 25px;
  }

  .movie iframe {
    height: 240px;
  }

    .company,
    .company tr,
    .company td,
    .company th {
      display:block;
      width: 100%;
      text-align: center;
      justify-content:center;
      margin: auto;
    }

    .achievement,
    .achievement tr,
    .achievement td{
      display:block;
      width:auto;
    }
    .achievement th {
      display:block;
      width:auto;
    }
    /* 実績テーブル内の画像・動画を流体化（スマホ） */
  .achievement td,
  .achievement th { 
    word-break: break-word; 
    overflow-wrap: anywhere; 
    padding: 16px;
  }

  /* 画像の固定幅を無効化して親幅に合わせる */
  .achievement img {
    width: 100% !important;
    height: auto !important;
  }

  /* YouTube等のiframeもはみ出さないように */
  .achievement iframe {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9; /* 高さは比率で自動 */
  }

    .timeline-001__section {
      list-style: none;
      margin-bottom: 60px;
      margin-left: 0px;
    }

    #menu_links > ul {
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
      letter-spacing: -0.4em;
      margin: 0 auto 60px;
      text-align: left;
      width: 100%;
    }
    
    #menu_links > ul > li {
      display: inline-block;
      flex: 0 0 auto;
      letter-spacing: normal;
      vertical-align: top;
      width: 100%;
    }
    .map,
  .contact {
    width: 500px;
    margin-top: 45px;
  }

  .form-area dt,
  .form-area dd {
    width: 100%;
  }

  .form-area dt {
    padding-bottom: 0;
  }

  .submit-button {
    width: 100%;
  }
  
  .staff-list {
    margin-top: 45px;
    row-gap: 40px;
  }

  #profWrapper {
    width: 100%; }
    #profDownLoad {
      display: none; }
      #profile dt {
        margin-bottom: 5px; } 
      #profile dd {
        margin: 0 0 15px 0; } 
        #profile dd iframe,
        #profile dd img {
          height: auto; } 
      #biography h3,
      #biography dt {
        cursor: pointer; }
        #biography h3.open:after,
        #biography dt.open:after {
          transform: translate(0, -50%) rotate(-90deg) !important; }
        #biography h3:after,
        #biography dt:after {
          content: '';
          position: absolute;
          top: 50%;
          right: 9px;
          width: 18px;
          height: 18px;
          background: url(../../../resources/images/arrow_blk.svg) no-repeat center center;
          background-size: 18px 18px;
          transform: translate(0, -50%) rotate(90deg);
          -webkit-transition: 300ms !important;
          -moz-transition: 300ms !important;
          -ms-transition: 300ms !important;
          -o-transition: 300ms !important;
          transition: 300ms !important; } 
    #biography div img,
    #biography div iframe,
    #biography dd img,
    #biography dd iframe {
      height: auto; } 
      #singleProfileList h4 {
        margin-bottom: 28px;
        text-align: center; } 
    #singleProfileList .profileList {
      text-align: center; } 

      #singleProfileList .profileList .entry:last-child {
        margin-left: 28px; } 
        .inner {
          width: 100%; } 
        #content {
          width: 330px;
          margin: 30px auto 0; } 
      .leftCol {
        margin-bottom: 60px; } 
      .bnrList {
        width: 96%;
        margin: 0 auto; }
        .bnrList li {
          width: 48%;
          height: auto;
          float: left;
          margin: 0 1% 2%; }
          .bnrList li img {
            width: 100%;
            height: auto; } 
            
  .logo-wrapper {
    padding-bottom: .5rem;
    border-bottom: 1px solid #0d0c62
  }
  
  .logo-wrapper img.emg {
    width: 30%;
    margin:20px 35%
  }
}
/* ============================================================
   BCP / CRISIS PREPAREDNESS — TACTICAL OVERRIDE
   Drop-in replacement theme for bcp.html
   HTML変更不要 / 既存common.cssの末尾で上書き
   ============================================================ */

:root {
  --bcp-black: #090b0a;
  --bcp-black-2: #0f1210;
  --bcp-panel: #151a16;
  --bcp-panel-2: #1c221d;
  --bcp-steel: #272e29;
  --bcp-line: #465047;
  --bcp-line-soft: rgba(157, 172, 158, .25);
  --bcp-text: #e7ebe5;
  --bcp-text-dim: #aeb7ad;
  --bcp-olive: #7b8b69;
  --bcp-olive-dark: #394435;
  --bcp-alert: #d2a72a;
  --bcp-alert-soft: #f0c84b;
  --bcp-danger: #9e3b2f;
  --bcp-max: 1120px;
}

html {
  scroll-behavior: smooth;
  background: var(--bcp-black);
}

body {
  margin: 0 !important;
  color: var(--bcp-text) !important;
  background:
    linear-gradient(rgba(255,255,255,.015) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.015) 1px, transparent 1px),
    var(--bcp-black-2) !important;
  background-size: 32px 32px;
  font-family: "Montserrat", "Noto Sans JP", Arial, Helvetica, "游ゴシック体", sans-serif !important;
  line-height: 1.8 !important;
  letter-spacing: .025em;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 15% 20%, rgba(123,139,105,.10), transparent 28%),
    radial-gradient(circle at 90% 75%, rgba(210,167,42,.045), transparent 22%);
}

::selection {
  background: var(--bcp-alert);
  color: #080908;
}

/* ---------- HEADER ---------- */
.l-header {
  height: 92px !important;
  min-height: 92px;
  background: rgba(8,10,9,.97) !important;
  border-bottom: 1px solid #414a42;
  box-shadow: 0 10px 30px rgba(0,0,0,.38);
  position: relative;
}

.l-header::after {
  content: "CRISIS PREPAREDNESS / EMG";
  position: absolute;
  left: 22px;
  bottom: -24px;
  padding: 3px 9px 4px;
  color: #111;
  background: var(--bcp-alert);
  font: 700 9px/1.2 "Montserrat", sans-serif;
  letter-spacing: .18em;
  z-index: 20;
}

.l-header__inner {
  min-height: 92px;
  display: flex;
  align-items: center;
  padding-left: 28px !important;
}

.l-header__inner::before {
  background: linear-gradient(110deg, #080a09 0%, #161b17 60%, #222a23 100%) !important;
  height: 92px !important;
}

.header-logo {
  width: 155px !important;
  position: relative;
  z-index: 3;
}

.header-logo img {
  filter: grayscale(1) brightness(1.8) contrast(1.05);
}

.menu__inner {
  height: 92px !important;
  padding-right: 24px;
}

.menu__item {
  margin: 0 !important;
  height: 92px !important;
  border-left: 1px solid rgba(255,255,255,.08);
}

.menu__item:last-child {
  border-right: 1px solid rgba(255,255,255,.08);
}

.menu__link {
  height: 92px !important;
  line-height: 92px !important;
  padding: 0 24px;
  color: #d8ddd7 !important;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  position: relative;
  transition: background .2s ease, color .2s ease;
}

.menu__link::after {
  content: "";
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 20px;
  height: 2px;
  background: var(--bcp-alert);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s ease;
}

.menu__link:hover {
  color: #fff !important;
  background: rgba(255,255,255,.035);
}

.menu__link:hover::after {
  transform: scaleX(1);
}

/* ---------- HERO ---------- */
.first-view02 {
  min-height: 620px !important;
  height: calc(100vh - 92px) !important;
  max-height: 820px;
  position: relative;
  overflow: hidden;
  background-image:
    linear-gradient(90deg, rgba(5,7,6,.94) 0%, rgba(5,7,6,.72) 43%, rgba(5,7,6,.28) 72%, rgba(5,7,6,.42) 100%),
    url(../images/index/titleback02.jpg) !important;
  background-position: center !important;
  background-size: cover !important;
  display: flex;
  align-items: center !important;
}

.first-view02::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 0 70%, rgba(0,0,0,.66) 100%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.018) 0, rgba(255,255,255,.018) 1px, transparent 1px, transparent 4px);
  pointer-events: none;
}

.first-view02::after {
  content: "RISK / SECURITY / SURVIVAL / CONTINUITY";
  position: absolute;
  right: 28px;
  bottom: 22px;
  color: rgba(255,255,255,.55);
  font: 700 10px/1 "Montserrat", sans-serif;
  letter-spacing: .24em;
}

.first-view02-text {
  width: min(var(--bcp-max), calc(100% - 80px)) !important;
  max-width: var(--bcp-max) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  color: #fff !important;
  position: relative;
  z-index: 2;
}

.first-view02-text::before {
  content: "EMERGENCY PREPAREDNESS UNIT";
  display: inline-block;
  margin-bottom: 24px;
  padding: 7px 10px 6px;
  color: #090b0a;
  background: var(--bcp-alert);
  font: 700 11px/1 "Montserrat", sans-serif;
  letter-spacing: .16em;
}

.first-view02-text h1 {
  margin: 0 !important;
  max-width: 850px;
  color: #f4f6f2 !important;
  font-family: "Montserrat", "Noto Sans JP", "游ゴシック体", sans-serif !important;
  font-size: clamp(46px, 6vw, 82px) !important;
  line-height: 1.12 !important;
  font-weight: 900 !important;
  letter-spacing: .02em;
  text-shadow: 0 8px 28px rgba(0,0,0,.75) !important;
}

.first-view02-text h1::after {
  content: "";
  display: block;
  width: 110px;
  height: 5px;
  margin-top: 26px;
  background: var(--bcp-alert);
  box-shadow: 130px 0 0 #626e62;
}

.first-view02-text p {
  margin-top: 28px !important;
  color: #c5ccc4 !important;
  font: 700 13px/1.8 "Montserrat", sans-serif !important;
  letter-spacing: .19em;
  text-shadow: none !important;
  text-transform: uppercase;
}

/* ---------- SECTION BARS ---------- */
.recommended {
  position: relative;
  padding: 30px 24px 28px !important;
  background: #171b18 !important;
  border-top: 1px solid #3d463e;
  border-bottom: 1px solid #3d463e;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
  overflow: hidden;
}

.recommended::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 8px;
  background: var(--bcp-alert);
}

.recommended::after {
  content: "///";
  position: absolute;
  right: 26px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(210,167,42,.42);
  font: 900 34px/1 monospace;
  letter-spacing: -6px;
}

.recommended h2,
.main .recommended h2 {
  width: min(var(--bcp-max), calc(100% - 32px));
  margin: 0 auto !important;
  color: #eef1eb !important;
  font-family: "Montserrat", "Noto Sans JP", "游ゴシック体", sans-serif !important;
  font-size: clamp(20px, 2.5vw, 30px) !important;
  line-height: 1.45 !important;
  font-weight: 900 !important;
  text-align: left !important;
  letter-spacing: .04em;
}

.recommended h2::after,
.main .recommended h2::after {
  content: "" !important;
  display: block !important;
  width: 72px !important;
  height: 3px !important;
  margin: 14px 0 0 !important;
  background: var(--bcp-alert) !important;
}

/* ---------- CONTENT ROWS ---------- */
.feature,
.feature2,
.feature3,
.feature4 {
  width: min(var(--bcp-max), calc(100% - 64px)) !important;
  max-width: var(--bcp-max) !important;
  margin: 72px auto !important;
  gap: 48px;
  align-items: stretch !important;
}

.feature,
.feature3 {
  padding: 0 !important;
}

.feature-text,
.feature2-text,
.feature3-text,
.feature4-text {
  max-width: none !important;
  margin: 0 !important;
  color: var(--bcp-text);
}

.feature-text {
  flex: 1 1 56%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 34px 36px;
  background: linear-gradient(145deg, #171c18, #111411);
  border: 1px solid var(--bcp-line);
  border-left: 4px solid var(--bcp-olive);
  box-shadow: 0 18px 38px rgba(0,0,0,.23);
  position: relative;
}

.feature-text::before {
  content: "FIELD NOTE";
  display: block;
  margin-bottom: 16px;
  color: var(--bcp-alert);
  font: 700 9px/1 "Montserrat", sans-serif;
  letter-spacing: .22em;
}

.feature img {
  flex: 0 0 40%;
  width: 40% !important;
  min-height: 320px;
  object-fit: cover;
  filter: saturate(.55) contrast(1.08) brightness(.82);
  border: 1px solid #4a544b;
  box-shadow: 0 18px 38px rgba(0,0,0,.30);
}

.feature h2,
.feature2 h2,
.feature3 h2,
.main .feature h2,
.main .feature2 h2,
.main .feature3 h2 {
  color: #f0f3ee !important;
  font-size: 23px !important;
  line-height: 1.45 !important;
  font-weight: 900 !important;
  letter-spacing: .025em;
}

.feature h2 span,
.feature2 h2 span,
.feature3 h2 span {
  color: var(--bcp-text-dim) !important;
  font-weight: 600 !important;
}

.feature h3,
.feature2 h3,
.feature3 h3 {
  margin-top: 8px;
  color: var(--bcp-alert-soft);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.feature-text h2::after,
.feature2-text h2::after,
.feature3-text h2::after,
.main .feature h2::after,
.main .feature2 h2::after,
.main .feature3 h2::after {
  width: 64px !important;
  height: 2px !important;
  margin: 14px 0 0 !important;
  background: var(--bcp-alert) !important;
}

.feature-text p,
.feature2-text p,
.feature3-text p,
.movie p,
.cont p {
  color: #c7cec6 !important;
  font-size: 15px !important;
  line-height: 2 !important;
  letter-spacing: .025em;
}

.feature-text p {
  margin-top: 18px !important;
}

.feature2 {
  display: block !important;
  margin-top: 46px !important;
  margin-bottom: 46px !important;
}

.feature2-text {
  padding: 28px 34px;
  background: #141814;
  border: 1px solid #394139;
  border-left: 4px solid #5d695b;
  box-shadow: 0 14px 28px rgba(0,0,0,.16);
}

.feature3 {
  padding: 34px;
  background: #111411;
  border: 1px solid #3b443c;
}

.feature3 img {
  width: min(38vw, 360px) !important;
  height: 100%;
  min-height: 260px;
  object-fit: cover;
  filter: saturate(.5) contrast(1.08) brightness(.84);
  border: 1px solid #4c564d;
}

/* ---------- SEMINAR / CASE CARDS ---------- */
#menu_links {
  padding: 10px 0 56px;
  background: transparent !important;
}

#menu_links > ul {
  width: min(var(--bcp-max), calc(100% - 64px)) !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  letter-spacing: normal !important;
}

#menu_links > ul > li {
  padding: 0 !important;
  min-width: 0;
}

#menu_links > ul > li > a {
  display: flex !important;
  flex-direction: column;
  height: 100%;
  padding: 0 !important;
  overflow: hidden;
  background: #141814 !important;
  border: 1px solid #3e483f;
  box-shadow: 0 14px 28px rgba(0,0,0,.22);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

#menu_links > ul > li > a:hover {
  transform: translateY(-4px);
  border-color: #7d8d79;
  box-shadow: 0 22px 38px rgba(0,0,0,.28);
}

#menu_links > ul > li h3 {
  order: 2;
  margin: 0 !important;
  padding: 20px 22px 8px;
  color: #f0f3ee !important;
  font-size: 18px !important;
  line-height: 1.5;
  letter-spacing: .025em;
}

#menu_links > ul > li h3::before {
  content: "CASE FILE / ";
  color: var(--bcp-alert);
  font: 700 9px/1 "Montserrat", sans-serif;
  letter-spacing: .15em;
}

#menu_links > ul > li p {
  order: 3;
  margin: 0 !important;
  padding: 0 22px 24px;
  color: #adb6ad !important;
  font-size: 13px !important;
  line-height: 1.85 !important;
}

#menu_links > ul > li img {
  order: 1;
  width: 100%;
  height: 240px;
  object-fit: cover;
  filter: saturate(.45) contrast(1.1) brightness(.78);
  border-bottom: 1px solid #485249;
  transition: filter .25s ease, transform .25s ease;
}

#menu_links > ul > li > a:hover img {
  filter: saturate(.68) contrast(1.08) brightness(.88);
  transform: scale(1.015);
}

/* ---------- ABOUT / BANNER ---------- */
.philosophy,
.philosophy2,
.philosophy3 {
  background: #0c0f0d !important;
  color: var(--bcp-text) !important;
  border-top: 1px solid #343b35;
  border-bottom: 1px solid #343b35;
}

.philosophy img {
  filter: saturate(.7) contrast(1.05);
  border: 1px solid #59645a;
  box-shadow: 0 14px 34px rgba(0,0,0,.38);
}

/* ---------- FORM ---------- */
#mail_form {
  width: min(920px, calc(100% - 64px));
  margin: 64px auto 0 !important;
  padding: 38px !important;
  background: #121612 !important;
  border: 1px solid #404940 !important;
  box-shadow: 0 22px 45px rgba(0,0,0,.25);
  color: var(--bcp-text) !important;
}

#mail_form dl {
  border-color: #343c35 !important;
}

#mail_form dt {
  color: #d9dfd7 !important;
  font-weight: 800 !important;
  letter-spacing: .04em;
}

#mail_form .icon {
  border-radius: 0 !important;
  background: var(--bcp-danger) !important;
  color: #fff !important;
}

#mail_form input[type="text"],
#mail_form input[type="email"],
#mail_form input[type="tel"],
#mail_form textarea,
#mail_form select {
  color: #eef1ec !important;
  background: #0b0e0c !important;
  border: 1px solid #4a554b !important;
  border-radius: 0 !important;
  outline: none !important;
  box-shadow: none !important;
}

#mail_form input:focus,
#mail_form textarea:focus,
#mail_form select:focus {
  border-color: var(--bcp-alert) !important;
  box-shadow: 0 0 0 2px rgba(210,167,42,.13) !important;
}

#confirm-text {
  color: var(--bcp-text-dim) !important;
}

#form_submit_button {
  min-width: 220px !important;
  min-height: 54px;
  border: 1px solid var(--bcp-alert) !important;
  border-radius: 0 !important;
  background: var(--bcp-alert) !important;
  color: #0b0d0b !important;
  font-family: "Montserrat", sans-serif !important;
  font-weight: 900 !important;
  letter-spacing: .12em;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, box-shadow .2s ease;
}

#form_submit_button:hover {
  background: #111511 !important;
  color: var(--bcp-alert-soft) !important;
  box-shadow: inset 0 0 0 1px var(--bcp-alert) !important;
}

/* ---------- FOOTER ---------- */
.footer {
  margin-top: 110px !important;
  padding: 46px 24px 28px !important;
  color: #bbc4ba !important;
  background: #080a09 !important;
  border-top: 1px solid #3b443c;
}

.footer::before {
  content: "END OF BRIEF / EMG SECURITY";
  color: #768175;
  font: 700 9px/1 "Montserrat", sans-serif;
  letter-spacing: .22em;
}

.footer .site-menu ul {
  margin-top: 26px;
}

.footer .site-menu ul li a {
  color: #cbd2ca !important;
  font-size: 12px;
  letter-spacing: .08em;
}

.footer .site-menu ul li:hover,
.footer .site-menu ul li a:hover {
  color: var(--bcp-alert-soft) !important;
}

.footer-logo {
  width: 190px !important;
  margin-top: 54px !important;
}

.footer-logo img {
  filter: grayscale(1) brightness(1.7);
}

.footer-tel {
  margin-top: 24px !important;
  color: #e4e9e2;
  font-size: 18px !important;
}

.footer-time {
  color: #929c92;
}

.copyright {
  margin-top: 48px !important;
  color: #687168;
  font-size: 11px !important;
  letter-spacing: .08em;
}

/* ---------- MISC / LEGACY COLOR CLEANUP ---------- */
.main a:not(.menu__link):not(#menu_links a) {
  transition: color .2s ease, opacity .2s ease;
}

.main a:not(.menu__link):not(#menu_links a):hover {
  color: var(--bcp-alert-soft);
}

.link-button,
.link-button2,
.submit-button {
  border-radius: 0 !important;
  background: var(--bcp-alert) !important;
  color: #0a0c0a !important;
  box-shadow: none !important;
}

.company th,
.achievement th,
.movie {
  background: #171c18 !important;
}

.company th,
.company td,
.achievement th,
.achievement td {
  border-color: #465047 !important;
  color: var(--bcp-text) !important;
}

/* ---------- MOBILE ---------- */
@media (max-width: 800px) {
  body {
    margin: 0 !important;
    background-size: 24px 24px !important;
  }

  .l-header {
    height: 72px !important;
    min-height: 72px;
    position: relative !important;
  }

  .l-header__inner {
    min-height: 72px;
    padding: 0 18px !important;
  }

  .l-header__inner::before {
    height: 72px !important;
  }

  .l-header::after {
    display: none;
  }

  .header-logo {
    width: 125px !important;
  }

  .sp-menubtn {
    display: block !important;
    width: 44px;
    height: 44px;
    margin-left: auto;
    padding: 10px;
    border: 1px solid #586259;
    background: #101410;
    cursor: pointer;
  }

  .sp-menubtn span {
    display: block;
    height: 2px;
    margin: 5px 0;
    background: #d8ded7;
  }

  .menu {
    width: 100%;
  }

  .menu__inner {
    height: auto !important;
    padding: 0 !important;
    background: #0b0e0c;
    border-top: 1px solid #333b34;
  }

  .menu__item {
    height: auto !important;
    border: 0 !important;
    border-bottom: 1px solid #333b34 !important;
  }

  .menu__link {
    height: 54px !important;
    line-height: 54px !important;
    padding: 0 20px;
    text-align: left;
  }

  .menu__link::after {
    left: 20px;
    bottom: 9px;
    width: 34px;
    right: auto;
  }

  .first-view02 {
    min-height: 500px !important;
    height: 68vh !important;
    max-height: 650px;
    background-position: 62% center !important;
    align-items: flex-end !important;
  }

  .first-view02-text {
    width: calc(100% - 40px) !important;
    padding: 0 0 54px !important;
    text-align: left !important;
  }

  .first-view02-text::before {
    margin-bottom: 16px;
    font-size: 9px;
  }

  .first-view02-text h1 {
    font-size: clamp(34px, 10vw, 50px) !important;
    line-height: 1.18 !important;
    text-align: left !important;
  }

  .first-view02-text h1::after {
    width: 72px;
    height: 4px;
    margin-top: 18px;
    box-shadow: 88px 0 0 #626e62;
  }

  .first-view02-text p {
    margin-top: 20px !important;
    font-size: 10px !important;
    letter-spacing: .12em;
    text-align: left !important;
  }

  .first-view02::after {
    right: 14px;
    bottom: 12px;
    font-size: 7px;
  }

  .recommended {
    padding: 25px 20px 23px !important;
  }

  .recommended h2,
  .main .recommended h2 {
    width: calc(100% - 18px);
    padding-right: 24px;
    font-size: 20px !important;
  }

  .recommended::after {
    right: 14px;
    font-size: 24px;
  }

  .feature,
  .feature2,
  .feature3,
  .feature4 {
    width: calc(100% - 32px) !important;
    max-width: none !important;
    margin: 34px auto !important;
    gap: 0;
  }

  .feature,
  .feature.reverse,
  .feature3,
  .feature3.reverse {
    display: flex !important;
    flex-direction: column !important;
  }

  .feature img,
  .feature3 img {
    order: 1;
    width: 100% !important;
    min-height: 0;
    height: 230px !important;
  }

  .feature-text,
  .feature3-text {
    order: 2;
  }

  .feature-text,
  .feature2-text,
  .feature3 {
    padding: 24px 22px !important;
  }

  .feature-text p,
  .feature2-text p,
  .feature3-text p,
  .cont p {
    font-size: 14px !important;
    line-height: 1.9 !important;
  }

  .feature h2,
  .feature2 h2,
  .feature3 h2,
  .main .feature h2,
  .main .feature2 h2,
  .main .feature3 h2 {
    font-size: 20px !important;
  }

  #menu_links {
    padding-bottom: 30px;
  }

  #menu_links > ul {
    width: calc(100% - 32px) !important;
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 18px;
  }

  #menu_links > ul > li {
    width: 100% !important;
    display: block !important;
  }

  #menu_links > ul > li img {
    height: 210px;
  }

  #mail_form {
    width: calc(100% - 32px) !important;
    padding: 22px !important;
    margin-top: 36px !important;
  }

  .footer {
    margin-top: 70px !important;
  }

  .footer .site-menu ul {
    display: block !important;
  }

  .footer .site-menu ul li {
    margin: 10px 0 !important;
  }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}

/* =========================================================
   BCP layout hotfix 2026-08-22
   1) Nakagawa profile: image + caption wrapper inside .feature
   2) Seminar case cards: cancel legacy width:50% on grid items
   ========================================================= */

/* Nakagawa Hayato section uses <p><img>caption</p> instead of a direct <img>.
   Give that wrapper the same column width as the other advisor photos. */
.feature > p:has(> img) {
  flex: 0 0 40%;
  width: 40%;
  min-width: 0;
  margin: 0 !important;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  color: #c7cec6 !important;
  font-size: 10px !important;
  line-height: 1.55 !important;
  font-weight: 700;
}

.feature > p:has(> img) > img {
  flex: 1 1 auto;
  width: 100% !important;
  height: 100% !important;
  min-height: 320px;
  object-fit: cover;
  display: block;
  margin: 0 0 10px !important;
  filter: saturate(.55) contrast(1.08) brightness(.82);
  border: 1px solid #4a544b;
  box-shadow: 0 18px 38px rgba(0,0,0,.30);
}

/* The old stylesheet gives each seminar <li> width:50%.
   In the new 2-column CSS Grid that makes each card only half of its grid track. */
#menu_links > ul > li {
  width: 100% !important;
  max-width: none !important;
}

#menu_links > ul > li > a {
  width: 100% !important;
}

@media (max-width: 768px) {
  .feature > p:has(> img) {
    order: 1;
    flex: none;
    width: 100% !important;
  }

  .feature > p:has(> img) > img {
    width: 100% !important;
    height: 230px !important;
    min-height: 0;
  }
}

/* =========================================================
   Advisor photo sizing / Nakagawa mobile crop fix 2026-08-22
   - Only advisor rows (.feature rows that contain an h2) are affected.
   - Keep the original image aspect ratio; do not crop portraits.
   ========================================================= */

/* Advisor rows only: make portrait/photo column one step smaller. */
.feature:has(.feature-text h2) {
  align-items: center !important;
}

.feature:has(.feature-text h2) > img {
  flex: 0 0 34%;
  width: 34% !important;
  max-width: 360px;
  min-height: 0 !important;
  height: auto !important;
  align-self: center;
  object-fit: contain !important;
}

/* Nakagawa: his image is wrapped in a <p> together with the caption. */
.feature:has(.feature-text h2) > p:has(> img) {
  flex: 0 0 34%;
  width: 34%;
  max-width: 360px;
  align-self: center;
}

.feature:has(.feature-text h2) > p:has(> img) > img {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
}

@media (max-width: 768px) {
  /* Advisor photos should not become huge edge-to-edge panels on phones. */
  .feature:has(.feature-text h2) > img {
    order: 1;
    width: 84% !important;
    max-width: 340px;
    height: auto !important;
    margin: 0 auto 14px !important;
    object-fit: contain !important;
  }

  .feature:has(.feature-text h2) > p:has(> img) {
    order: 1;
    width: 84% !important;
    max-width: 340px;
    margin: 0 auto 14px !important;
    align-self: center;
  }

  .feature:has(.feature-text h2) > p:has(> img) > img {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    object-fit: contain !important;
    object-position: center center !important;
    margin: 0 0 8px !important;
  }
}

/* =========================================================
   ABOUT US logo crop fix 2026-08-22
   Keep the original logo aspect ratio on desktop and mobile.
   The logo lives inside .feature3 > a, so size the wrapper instead
   of forcing a cropped image box.
   ========================================================= */

/* Desktop: slightly smaller logo column, never crop the source image. */
.feature3 > a {
  flex: 0 0 260px !important;
  width: 260px !important;
  max-width: 28% !important;
  align-self: center !important;
  display: block !important;
  margin: 0 !important;
}

.feature3 > a > img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
  margin: 0 !important;
}

/* Let the ABOUT text use the rest of the row naturally. */
.feature3-text {
  flex: 1 1 auto !important;
  min-width: 0;
}

@media (max-width: 768px) {
  /* On phones the old rule forced every .feature3 image to 230px high,
     which cropped the top and bottom of this logo. Cancel that here. */
  .feature3 > a {
    order: 1 !important;
    flex: none !important;
    width: 76% !important;
    max-width: 300px !important;
    margin: 0 auto 18px !important;
    align-self: center !important;
  }

  .feature3 > a > img {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  .feature3-text {
    order: 2 !important;
    width: 100% !important;
  }
}
