@charset "utf-8";
/* CSS Document */

@import url('https://fonts.googleapis.com/css2?family=Kanit:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&family=Noto+Sans+JP:wght@100..900&display=swap');

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&family=Poppins:ital,wght@0,400;0,500;0,900;1,700&display=swap');

/* ========================
  Elementor調整部分
======================== */

.elementor-element,.page-content {
	font-size: 1.6rem;
}

.jet-smart-filters-select .jet-select__control{
	font-size: 1.6rem;
}
/* ========================
 見出し
======================== */

.h2-sanz {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
}

.h3-sanz {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 600;
}

.h4-sanz {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 600;
}
.ft-col-nav {
    color: #304387;
}

 ul.actions li h2{
    font-size: 2rem;
    margin-bottom: 10px;
     text-align: center;
} 
ul.actions li h2 i {
    margin-right: 15px;
}

@media screen and (max-width: 736px) {
 ul.actions li h2{
    font-size: 3rem;
    margin-bottom: 10px;
}   
}
/* ========================
   言語切替
   ======================== */
.swhead {
}
@media (max-width: 960px) {
.swhead {
margin-left: auto;
margin-right: 20px;
}	
}
.swicher{
	width: 100%;
	max-width: 80px;
	height: auto;
	margin: auto;
	padding: 0.5rem;
	position: relative;
}
.swicher .wpml-ls-statics-shortcode_actions, .wpml-ls-statics-shortcode_actions .wpml-ls-sub-menu, .wpml-ls-statics-shortcode_actions a {
    border-color: none;
}
.swicher.wpml-ls-legacy-dropdown {
   width: 100px;
    max-width: 100%;
}
.wpml-ls-legacy-dropdown {
    width: 80px;
    max-width: 100%;
}

.wpml-ls-legacy-dropdown>ul {
    position: relative;
    padding: 0;
    margin: 0 !important;/*
    border: 1px solid #ccc;*/
    list-style-type: none
}
.wpml-ls-legacy-dropdown>ul li {
	padding-left: 0;
}
.wpml-ls-legacy-dropdown-click>ul {
    position: relative;
    margin: 0 !important;
    list-style-type: none;
    border: 1px solid #ccc;
    border-radius: 5px;
	padding-left: 0;
}
.wpml-ls-legacy-dropdown-click>ul li {
	padding-left: 0;
}

.wpml-ls-legacy-dropdown-click>ul li.wpml-ls-legacy-dropdown-click a {
    border: none;
    font-size: 2rem;
   padding: 0.8rem;
    font-weight: 900;
    border-radius: 5px;
	border: 1px solid #cdcdcd;
}
.wpml-ls-legacy-dropdown-click a {
    display: block;
    text-decoration: none;
    color: #444;
    border: none; 
    background-color: #fff;
    padding: 5px 10px;
    border-radius: 5px;
    line-height: 1;
}
.wpml-ls-legacy-dropdown-click .wpml-ls-flag {
    display: inline;
    vertical-align: middle;
    min-width: 26px;
}
.wpml-ls-legacy-dropdown>ul li {
    appearance: none;
    min-width: 80px;
    height: 2.8em;
    padding: .4em 3.6em .4em .8em;
    background-color: #f2f2f2;
    color: #333;
    font-size: 1em;
    cursor: pointer;
}

.wpml-ls-legacy-dropdown-click a {
    display: block;
    text-decoration: none;
    color: #444;
    /* border: 1px solid #cdcdcd; */
    background-color: #fff;
    padding: clamp(6px, 0.38vw + 4.15px, 10px);
    line-height: 1;
}


/*.wpml-ls-legacy-dropdown a.wpml-ls-item-toggle:after {
    content: "";
    vertical-align: middle;
    display: inline-block;
    border: .35em solid transparent;
    border-top: .5em solid;
    position: absolute;
    right: 10px;
    top: calc(50% - .175em);
}
*/
.wpml-ls-legacy-dropdown-click .wpml-ls-sub-menu {
    visibility: hidden;
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
	box-sizing: border-box;
    margin: 0;
    list-style-type: none;
    z-index: 101;
	border: 1px solid #ccc;
	background: #fff;
	width: 120px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	padding-left: 0;
}
.wpml-ls-legacy-dropdown-click .wpml-ls-sub-menu li{
	width: 49%;
}

.wpml-ls-legacy-dropdown>ul li:focus {
    outline: 2px solid #f68f27;
}
/* ========================
   Portal Button（既存のまま）
   ======================== */
.hedbtn{
	width: 18%;
    display: flex;
    justify-content: flex-end;}
:root {
	--o1:#F7A332; 
	--o2:#F07C19; 
	--o3:#FFB34A;}
.btn-portal{
  display:inline-flex; align-items:center; gap:1rem;
  padding:.75rem 2rem; border-radius:12px; color:#fff; text-decoration:none; font-weight:700;
  background: #F68F27;
  position:relative; /*box-shadow:0 2px 0 rgba(0,0,0,.12), 0 8px 18px rgba(240,124,25,.15);*/
  border:2px solid #F68F27;
  transform:translateY(0);
  transition:transform .2s ease, box-shadow .2s ease, background-position .4s ease;
  background-size:100% 100%; isolation:isolate;
}
.btn-portal::before{
  content:""; position:absolute; inset:0; border-radius:inherit;
  background: linear-gradient(115deg, rgba(255,255,255,.18), rgba(255,255,255,0) 40%);
  transform:translateX(-120%); transition:transform .5s ease; pointer-events:none;
}
.btn-portal__text{ display:flex; flex-direction:column; line-height:1.2;text-align: center;white-space: nowrap;}
.btn-portal__label{ font-weight:400; font-size:1.2rem; opacity:.9; color:#fff;}
.btn-portal__title{ font-family:"Noto Sans JP", sans-serif; font-weight:700;font-size:18px; letter-spacing:.02em; }
.btn-portal__icon{ width:2.6rem; height:2.6rem; flex:0 0 auto; color:#fff; transition:transform .25s ease, opacity .25s ease; opacity:.95; }
.btn-portal:hover, .btn-portal:focus-visible{
  /*transform:translateY(-2px); box-shadow:0 4px 0 rgba(0,0,0,.12), 0 14px 24px rgba(240,124,25,.22);*/
  background: #fff; color:#F68F27; border:2px solid #F68F27;
}
.btn-portal:hover .btn-portal__label{color:#F68F27;}
.btn-portal:hover::before, .btn-portal:focus-visible::before{ transform:translateX(120%); }
.btn-portal:hover .btn-portal__icon, .btn-portal:focus-visible .btn-portal__icon{ transform:translateX(2px) rotate(0.0001deg);color:#F68F27; }
.btn-portal:focus-visible{ outline:3px solid rgba(255,255,255,.9); outline-offset:2px; }
@media (prefers-reduced-motion: reduce){
  .btn-portal, .btn-portal *{ transition:none }
  .btn-portal::before{ display:none }
}
@media screen and (max-width: 1280px) {
.hedbtn {
    width: 24%;}
.btn-portal{ gap:.5rem; width: 96%; margin: 0 auto 60px;display: flex; }
.btn-portal__label{ font-weight:400; font-size:1rem; }
.btn-portal__title{ font-family:"Noto Sans JP", sans-serif; font-weight:700;font-size:16px; letter-spacing:.02em; }	
.btn-portal__icon{ width:1.6rem; height:1.6rem;  }
}
@media screen and (max-width: 960px) {
 .hedbtn{display: none;}
.btn-portal__text {display: flex;flex-direction: row;line-height: 2.2; width: 100%; align-items: center;}
.btn-portal__title {font-size: 2rem; margin-right: 10px;}
.btn-portal__label {font-size: 1.6rem;}
.btn-portal__icon {width: 2.6rem; height: 2.6rem;}
}

/* mainvisual */
#mainimaeg {
  padding-top: 110px;
  display: -moz-flex;
  display: -webkit-flex;
  display: -ms-flex;
  display: flex;
  -moz-justify-content: center;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
  position: relative;
  flex-wrap: nowrap;	
}
#mainimaeg #banner {
  width: 75%;
  display: -moz-flex;
  display: -webkit-flex;
  display: -ms-flex;
  display: flex;
  -moz-flex-direction: column;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -moz-justify-content: center;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
  cursor: default;
  height: auto;
  overflow: hidden;
  position: relative;
  background-size: cover;
  background-position: center center;
}
#mainimaeg #banner .catcharea {
  position: absolute;
  left: 8%;
	
}
#mainimaeg #banner .catcharea .read {
	color: #fff;
	line-height: 1.7;
  letter-spacing: 1px;
	font-weight: 700;
	font-size: clamp(14px, 2vw, 20px);
	margin-bottom: 4rem;
}
#mainimaeg #banner h2 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  letter-spacing: 2px;
  font-size: clamp(20px, 3.2vw, 48px);
  line-height:1.4;
  margin-bottom: 3rem;
  color: #fff;
}
#mainimaeg #banner h2 span {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  line-height:1.4;
  color: #fff;
}
#mainimaeg #banner h2 span {
	background-color: #f68f27;
	padding: 0 0 0 10px;}
#mainimaeg #banner .marker{/*
 font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 900;*/
  font-style: normal;
  line-height:1.4;
  margin-bottom: 15px;
}


#mainimaeg #btnarea {
   width: calc(25% - 20px);
   margin-left: 20px;
   background:#EBE0D6;
   border-radius: 20px;
   padding: 20px;
   display: flex;
   align-items: center;
}
#mainimaeg #btnarea ul{
   display: flex;
   margin: 0;
   padding: 0;
   flex-direction: column;
   gap: 20px;
   box-sizing: border-box;
}
#mainimaeg #btnarea ul li {
	width: 100%;
	list-style: none;
}

#mainimaeg #btnarea ul li.image a{
    display: block;
	border-radius: 16px;
    transition: all .3s ease-in-out;
    box-shadow: 0 0 0 rgba(0,0,0,.25);
}
#mainimaeg #btnarea ul li.image img{
    width: 100%;
    vertical-align: middle;
}
#mainimaeg #btnarea ul li.image a:hover{
	border-radius: 15px;
    box-shadow: 0 0 14px rgba(0,0,0,.25);
}
#mainimaeg .btn {
	color: #666;
	font-size: 1.8rem;
    font-weight: 700;
	background: #fff;
	border-radius:10px;
	box-shadow: 5px 5px #50C070 ;
	border: 1px solid #fff;
	margin-bottom: 4rem;
	max-width: 320px;
	padding: clamp(10px, 1.2vw, 14px);
}
#mainimaeg .btn a {
	color: #666;
    font-weight: 700;
}
#mainimaeg .btn a:hover {
	color: #666;
}
#mainimaeg .btn:hover,#mainimaeg .btn:active,#mainimaeg.btn:focus{
	background-color:rgba(255,255,255,0.7);
	transform: translateY(-2px);
}
@media screen and (max-width: 768px) {
	#mainimaeg .btn {
	font-size: 1.4rem;
	max-width: 260px;}
	#mainimaeg #banner .catcharea .read {
	line-height: 1.5;}
}
#mainimaeg button {
	color: #fff;
	border: 1px solid #fff;
}
#mainimaeg button:hover,#mainimaeg button:active,#mainimaeg button:focus{
	background-color: #F68F27;
}
#banner .more {
  -moz-transition: -moz-transform 0.75s ease, opacity 0.75s ease;
  -webkit-transition: -webkit-transform 0.75s ease, opacity 0.75s ease;
  -ms-transition: -ms-transform 0.75s ease, opacity 0.75s ease;
  transition: transform 0.75s ease, opacity 0.75s ease;
  -moz-transition-delay: 3.5s;
  -webkit-transition-delay: 3.5s;
  -ms-transition-delay: 3.5s;
  transition-delay: 3.5s;
  -moz-transform: translateY(0);
  -webkit-transform: translateY(0);
  -ms-transform: translateY(0);
  transform: translateY(0);
  border: none;
  bottom: 0;
  color: inherit;
  font-size: 1.5rem;
  height: 8.5em;
 left: 50%;
  transform: translateX(-50%);
-webkit-transform: translateX(-50%);
 -ms-transform: translateX(-50%);
  letter-spacing: 0.225em;
  opacity: 1;
  outline: 0;
  padding-left: 0.225em;
  position: absolute;
  text-align: center;
  width: 16em;
  z-index: 1;
}
#banner .more:after {
  background-image: url("../images/arrow.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  bottom: 4em;
  content: '';
  display: block;
  height: 1.5em;
  left: 50%;
  margin: 0 0 0 -0.75em;
  position: absolute;
  width: 1.5em;
}
#banner:after {
  pointer-events: none;
  -moz-transition: opacity 3s ease-in-out;
  -webkit-transition: opacity 3s ease-in-out;
  -ms-transition: opacity 3s ease-in-out;
  transition: opacity 3s ease-in-out;
  -moz-transition-delay: 1.25s;
  -webkit-transition-delay: 1.25s;
  -ms-transition-delay: 1.25s;
  transition-delay: 1.25s;
  content: '';
  background: #333;
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
}
@media screen and (max-width: 1024px) {
#mainimaeg {
  flex-wrap: wrap;	
}
#mainimaeg #banner {
  width: 100%;
  flex-wrap: wrap;
}
#mainimaeg #banner .catcharea .read {
	margin-bottom: 2rem;
}
#mainimaeg #banner .marker{
  margin-bottom: 8px;
}
  #mainimaeg #btnarea {
   width: calc(100% - 20px);
   margin-left: 10px;
   margin-right: 10px;
   margin-top: 20px;
}

#mainimaeg #btnarea ul{
   display: flex;
   margin: 0;
   padding: 0;
   flex-direction:row;
   justify-content: space-between;
   gap: 20px;
   box-sizing: border-box;
   flex-wrap: wrap;
}
#mainimaeg #btnarea ul li {
	width: calc(50% - 20px);
	list-style: none;
}

	
}
@media screen and (max-width: 736px) {
#mainimaeg {
  padding-top: 10px;
  flex-wrap: wrap;	
  width:100%;
}
	#banner {
   padding: 1em 1em 1em 1em;
    height: auto;
    min-height: 0;
	margin-top: 70px;
  }
#mainimaeg #banner .catcharea {
  left: 5%;
}
  
#mainimaeg #banner h2 {
  margin-bottom: 1.5rem;
}

#mainimaeg #btnarea {
   width: calc(100%);
   padding: 10px;
   border-radius:0;
   margin-left: 0;
   margin-right: 0;
   margin-top:0;
}
	#mainimaeg #btnarea ul{
   gap: 5px;
}
#mainimaeg #btnarea ul li {
	width: calc(50% - 3px);
	list-style: none;
}
}
body.is-preload #banner h2 {
  -moz-transform: scale(0.95);
  -webkit-transform: scale(0.95);
  -ms-transform: scale(0.95);
  transform: scale(0.95);
  opacity: 0;
}
body.is-preload #banner h2:before, body.is-preload #banner h2:after {
  width: 0;
}
body.is-preload #banner .more {
  -moz-transform: translateY(8.5em);
  -webkit-transform: translateY(8.5em);
  -ms-transform: translateY(8.5em);
  transform: translateY(8.5em);
  opacity: 0;
}
body.is-preload #banner:after {
  opacity: 1;
}




/* 見出し */

.intro h2{
  font-family: "Poppins", sans-serif;
  font-size: clamp(40px, 3.2vw, 60px);
  font-weight: 900;
  color: #666666;
  letter-spacing: .04em;
  margin: 0 0 2rem;
  line-height: 4rem;
}
.intro h2 span{font-family: "Poppins", sans-serif;
  font-size: clamp(40px, 3.2vw, 60px);
  font-weight: 900;}
.intro h3{font-size: clamp(14px, 1vw, 16px);font-family: "Noto Sans JP", sans-serif;font-weight: 600;color:#666; }
.intro .subtitle{
 font-family: "Noto Sans JP", sans-serif;
font-weight: 600;
	color:#666;
  font-size: clamp(14px, 1.6vw, 16px);
  margin: 40px auto 0;
}

/*////// ====== TOPICs ====== //////*/
#topic {
  display: -moz-flex;
  display: -webkit-flex;
  display: -ms-flex;
  display: flex;
  cursor: default;
  justify-content: space-between;
  position: relative;
  margin-bottom: 80px;
}
#topic .intro {
  max-width: 340px;
  width: 100%;
  margin-right: 20px;
  margin-bottom: 50px;
}
#topic .intro h2 span{ color: #f68f27; }
#topic .pickup-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(320px,1fr));
  /*grid-auto-rows: minmax(280px, 1fr);*/
  grid-auto-rows: 280px;
  gap:24px;
  width: 100%;
  max-width:1188px;
  margin:0 auto;	
}
/* Card */
.pickup-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #ddd center/cover no-repeat;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s, box-shadow 0.3s;
}
.pickup-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.pickup-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.5));
  z-index: 1;
  transition: background-color 0.3s ease, background 0.3s ease;
}

/* ====== 画像 ====== */
.pickup-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

/* 画像ズーム（ホバー時） */
.pickup-card:hover img {
  transform: scale(1.05);
}

/* ホバー時にオレンジ色をプラス */
.pickup-card:hover::before {
  background: linear-gradient(
      to bottom,
      rgba(255, 140, 26, 0.25),
      rgba(255, 140, 26, 0.45)
  );
}


/* 最初のカードだけ縦2倍（PCのみ適用） */
@media (min-width: 1025px) {
  .pickup-card:first-child {
    grid-row: span 2;
  }
}
@media (max-width: 768px) {
#topic .intro {
  margin-bottom: 20px;
}	
}
/* ====== オーバーレイ ====== */
.pickup-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.5));
  z-index: 1;
  transition: background 0.3s ease;
}

/* ホバー時オレンジに */
.pickup-card:hover::before {
  background: linear-gradient(
    to bottom,
    rgba(255, 140, 26, 0.25),
    rgba(255, 140, 26, 0.45)
  );
}

/* ラベル / 日付 / タイトル */
.pickup-label {
  position: absolute;
  top: 12px;
  left: 0;
  letter-spacing: .1rem;
  background: #F68F27;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 600;
  padding: 4px 8px;
  z-index: 2;
}
.pickup-ttlarea {
  position: absolute;
  left: 12px;
  bottom: 12px;
  z-index: 2;
}
.pickup-date {
  color: #fff;
  font-size: 1.6rem;
  display: block;
  padding-bottom: 5px;
}
.pickup-title {
  color: #fff;
  font-weight: 700;
  font-size: clamp(18px, 2vw, 20px);
  line-height:1.2;
  margin:0;
}

/* ====== Breakpoints ====== */
/* タブレット：2列 */
@media (max-width: 1200px) {
  #topic {
	  display:block;
}
  #topic .pickup-grid {
    grid-template-columns: repeat(2, 1fr);
	grid-auto-rows: minmax(280px, 1fr);
    gap: 20px;
  }
.pickup-card {
    aspect-ratio: 6 / 6; /* 高さを横幅の約半分に */
    overflow: hidden;
  }
  .pickup-card:first-child {
    grid-row: auto; /* 高さを通常に戻す */
  }
}



/* スマホ：1列 */
@media (max-width: 640px) {

#topic h2 {
  max-width: 100%;
  width: 100%;
  margin: 0px 0 1rem;
}
 #topic  .pickup-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
	.pickup-card {
    aspect-ratio: 8 / 6; /* 高さを横幅の約半分に */
    overflow: hidden;
  }
  .pickup-card:first-child {
    grid-row: auto; /* 1カラム時も通常高さ */
  }
 .pickup-card img {
    height: 100%;
    object-fit: cover;
  }
/*	 .pickup-title {
    font-size: clamp(14px, 4.6vw, 18px);
  }*/
  .pickup-date {
    font-size: 1.4rem;
  }
  .pickup-label {
    font-size: 1.4rem;
    padding: 2px 6px;
  }
}

:root{
  --hero: url("../images/katsudo-bg.png");
  --container: min(1200px, 92vw);
}

/*////// ====== NEWS ====== //////*/
#newsarea {
	padding: 80px 0;
	background: #F1F1F1;	
}
#newsarea p {font-size: 1.6rem;}
#newsarea .intro{
  width: var(--container);
  margin: 0 auto 40px;
  text-align: center;
}
#newsarea .intro h2 span{ color:#6699cc; }
#newsarea .intro h3{text-align: center;margin: 0 auto;}
#newsarea .intro .subtitle{
  margin: 40px auto 0;color:#666;
}

#newsarea .news_article,#newsarea .inner {
	width: min(1000px, 94vw);
	margin: auto;
}
#newsarea .news_article dl {
	display: flex;
	align-items: center;
	font-size: 1.6rem;
}
#newsarea .news_article dl dt {
	width: 15%;
	padding: 5px 0;
	box-sizing: border-box;
}
#newsarea .news_article dl dd {
	width: auto;}
#newsarea .news_article dl a {	color: #666;}
#newsarea .news_article dl a:hover {color: #F68F27;}
#newsarea .inner {
	display: flex;
	justify-content:flex-end;
}
.atlink a{
	margin-left: auto;
	font-size: 16px;
	line-height: 1.2;
	position: relative;
	display: block;
	padding: 10px;
	margin-right: 20px;
	color: #666;
}
.atlink a:hover{color:#F68F27;}
.atlink a::after{
	content: '》';
	position: absolute;
	right: -15px;
}
	
	

@media (max-width: 1024px) {
#newsarea .news_article dl dt {
	width: 30%;
}
#newsarea .news_article dl dt dd {
	width: 70%;
}	
.atlink a{
	margin-top: 30px;
	margin-right: 0;
}	
}
@media (max-width: 768px) {
	#newsarea .news_article dl {
	flex-wrap: wrap;
	border-bottom: 1px dotted #666;
    padding-bottom: 5px;
}
	#newsarea .news_article dl dt {
	width: 100%;
}
#newsarea .news_article dl dt dd {
	width: 100%;
}
}
/*////// ====== WE DO ====== //////*/


/* 見出し */
.what-we-do .intro{
  width: var(--container);
  margin: 0 auto 40px;
  text-align: center;
}
.what-we-do .intro h2 span{ color:#55c274; }
.what-we-do .intro h3{text-align: center;margin: 0 auto;}
.what-we-do .intro .subtitle{
  margin: 40px auto 0;color:#666;
}



/* カード背景全体 */
/*.cards-bg{
  background-image:
    linear-gradient(to bottom, rgba(255,255,255,.85) 0%, #fff 100%),
    var(--hero);
  background-size: cover;
  background-position: center;
  padding: 60px 0;
}*/
@media (max-width: 600px){
  .cards-bg{
    padding: 60px 0;
  }
  .card{ flex: 1 1 100%; }
}
.cards-bg{
  background-image: var(--hero);
  background-size: cover;
  background-position: center;
  padding: 80px 0; 
}
/* カード本体 */
.cards{
  display: flex;
  flex-wrap: nowrap;
  gap: 30px;
  justify-content: center;
  width: var(--container);
  margin: 0 auto;
}
.cards a{
	color: #fff;
}
.cards a:hover{
	color: #555;
}
.card{
  flex: 1 1 380px;
  background: rgba(255,255,255,.8);
  border-radius: 16px;
  /*box-shadow: 0 12px 28px rgba(12,24,38,.08);*/
  padding: 30px;
  backdrop-filter: blur(2px);
}
.card h3{ font-size: clamp(24px, 2vw, 30px); margin: 0 0 20px; line-height: 1.4; text-align: center; font-family: "Noto Sans JP", sans-serif;font-weight: 900; color: #666;}
.card p{ font-size: 15px; line-height: 1.8; color:#495159; margin: 0 0 20px; }

/* カード色縁取り */
/*.card-yellow{ outline: 3px solid rgba(251,191,36,.18); }
.card-blue  { outline: 3px solid rgba(56,189,248,.18); }
.card-green { outline: 3px solid rgba(52,211,153,.18); }*/


/* ボタン */
.btn{
  display: block;
  /*display: inline-flex;
  align-items: center;
  justify-content: center;*/
  text-align: center;
  width: 100%;
  padding: 12px 14px;
  margin-top: 10px;
  border-radius: 10px;
  color:#fff;  
  font-family: "Noto Sans JP";
  font-size: clamp(16px, 2vw, 20px); 
  line-height: 1.2;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 6px 14px rgba(0,0,0,.10);
  transition: transform .25s ease, box-shadow .25s ease;
}
.btn span {
	padding-top: 10px;
	display: block;
	font-size: 13px;
	font-weight: 600;
}
/*.btn::after{
  content: "›";
  margin-left: .4em;
  transition: transform .25s ease;
}*/
.btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0,0,0,.15);
}
.btn:hover::after{ transform: translateX(3px); }

/* ボタン色 */
.btn-yellow{ background:#f4584e; }
.btn-blue  { background:#6699cc; }
.btn-green { background:#55c274; }

/* ブレイクポイント */
/*@media (max-width: 992px){
  .card{ flex: 1 1 45%; }
}*/
@media (max-width: 992px){
  .cards{
  flex-wrap: wrap;
}
  .card{ flex: 1 1 100%; }
}

/*////// ====== PARTNERS ====== //////*/
#partners .intro{
  width: var(--container);
  margin: 0 auto 40px;
  text-align: center;
}
#partners  .intro h2 span{ color:#f4584e; }
#partners  .intro h3{text-align: center;margin: 0 auto;}
#partners  .intro .subtitle{
  margin: 40px auto 0;
	color:#666;}

.partner_ban {
	max-width: 1200px;
	margin: auto;
	display: flex;
	justify-content: center;
}
.partner_ban ul {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5rem; 
}
.partner_ban ul li {
	flex: 1 1 calc(100% / 3 - 0.5rem);
	 box-sizing: border-box;
	padding: 0.5rem;
  text-align: center;
}
@media (max-width: 1024px){
.partner_ban ul li {
	flex-basis: calc(100% / 2 - 1rem);
}	
}
@media (max-width: 768px){
.partner_ban ul li {
	flex-basis: calc(100% / 1 - 1rem);
}	
}
/* ========= Base ========= */
  :root{
    --green:#55C274;     /* 左パネルのトーン */
    --amber:#F4584e;     /* 右パネルのトーン */
    --ink:#2a2e33;
    --bg-deep:#4b4f54;   /* フッター背景 */
    --white:#fff;
    --radius:18px;
    --shadow:0 10px 24px rgba(0,0,0,.15);
  }
  

  /* ========= cnvwrap========= */
  .cnvwrap{
    display:flex;
    flex-wrap:nowrap;
    width:100%;
	box-sizing: border-box;
  }
  .panel{
    position:relative;
    flex:1 1 50%;
   /* min-height:360px;   */         /* PCの見栄え用。SPでは後で縮む */
    display:flex;
    /*align-items:center;*/
    justify-content:center;
    text-align:center;
    padding:26px 0;
    overflow:hidden;
  }
  .panel::before{
    content:"";
    position:absolute; inset:0;
    background-size:cover;
    background-position:center;
    filter:grayscale(0);
    z-index:0;
    transform:scale(1.02);
  }
  .panel::after{ 
    content:"";
    position:absolute; inset:0;
    background:rgba(0,0,0,0);
    z-index:0;
  }
  .panel > .inner{
    position:relative; z-index:1;
	width: 100%;
    /*max-width:min(680px,92vw);*/
    color:#fff;
  }
  .panel.left{ --accent: var(--green); }
  .panel.right{ --accent: var(--amber); }
  .panel.left::before{ background-image:url("../images/footerban01_bg.jpg"); }   /* ←差し替え */
  .panel.right::before{ background-image:url("../images/footerban02_bg.jpg"); } /* ←差し替え */

  .eyebrow{
	width: 100%;
    display:flex;
    font-weight:700;
	justify-content: center;
	align-items: center;
	font-family: "Noto Sans JP", sans-serif;
	font-size: clamp(24px, 2vw, 30px);
    letter-spacing:.2rem;
    padding:.5em 0;
    backdrop-filter:saturate(120%) blur(2px);
	line-height: 1.2;
	min-height: 100px;
	position: relative;
  }
.eyebrow div {
	font-family: "Noto Sans JP", sans-serif;
    font-weight:700;}
	
  .panel.left .eyebrow{ background:rgba(85, 194, 116, 0.8); }
  .panel.right .eyebrow{ background:rgba(244, 88, 78, 0.8);}
  .panel.left .headline{
    margin:2rem auto 2rem;
	font-family: "Noto Sans JP", sans-serif;
    font-weight:700;
    line-height:2.1;
	color: #444;
    font-size:clamp(16px,3.2vw,20px);
    /*text-shadow:0 2px 10px rgba(0,0,0,.35);*/
  }
 .panel.right .headline{
    margin:1rem auto 2rem;
	font-family: "Noto Sans JP", sans-serif;
    font-weight:700;
    line-height:1;
	color: #444;
    font-size:clamp(16px,3.2vw,20px);
    /*text-shadow:0 2px 10px rgba(0,0,0,.35);*/
  }
html:not([lang="ja"]) .panel.right .headline {
    line-height:2.1;
}
html:lang(ja) .jpbana{
	display: block;
}
html:lang(ja) .notjpbana{
	display: none;
}
html:not([lang="ja"]) .notjpbana{
	display: block;
}
html:not([lang="ja"]) .jpbana{
	display: none;
}

ruby {font-family: "Noto Sans JP", sans-serif; font-weight:700; ruby-position: over; ruby-align: center;line-height: 1;}
ruby rt{ font-size: 12px; margin: 0; padding: 0; letter-spacing: 0; line-height: 1;display: ruby-text; transform: translateY(0.1em); }

.headline ruby{
  ruby-position: over;   /* ふりがなは上 */
  ruby-align: center;
  line-height: 1;        /* 余計な行間を詰める */
}
.headline ruby>rt{
  font-size: 10px;       /* お好みで */
  line-height: 1;
  margin: 0;
  padding: 0;
  letter-spacing: 0;
  position: relative;
  top: .12em; 
}
.headline ruby>rt{
  margin-block-start: 0.5em; 
}
/*ruby + ruby {
  margin-left: -0.25em;
}*/
  .lead{
    margin:0 auto 1.6rem;
    font-size:clamp(14px,1.6vw,16px);
    opacity:.95;
  }
@media (max-width: 768px){
	.eyebrow{
		min-height:80px;
	}
ruby rt{ font-size: 10px;}
}
  .cta{
    display:inline-flex;
    align-items:center;
    gap:.6em;
    padding:16px 22px;
    font-weight:700;
    border-radius:12px;
    background:var(--accent);
	font-size: clamp(16px,1.6vw,20px);
	letter-spacing: 1px;
    color:#fff;
    box-shadow:0 6px 16px rgba(0,0,0,.15);
    transform:translateY(0);
    transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;
    text-decoration:none;
  }
  .cta:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(0,0,0,.22);
    opacity:.95;
  }

  /* ========= Footer ========= */
  .footer{
    background:#5a5f65 linear-gradient(180deg, #5a5f65 0%, #4f545a 100%);
    color:#e8ecef;
  }
  .footer-inner{
    width:min(1520px,94vw);
    margin:0 auto;
    padding:48px 0 36px;
    display:flex;
    gap:40px;
  }
  .brand{
    flex:1 1 60%;
    display:flex;
    gap:18px;
    align-items:flex-start;
  }
  .brand-badge{
    width:64px;height:64px;border-radius:50%;
    background:conic-gradient(from 45deg, #ff9933 0 25%, #fff 0 50%, #ff9933 0 75%, #fff 0);
    display:inline-block; box-shadow:inset 0 0 0 6px #3336;
  }
.brand-text .logo {width: 50%;}
  .brand-text h3{
    margin:30px 0 .4rem; font-size:1.8rem; letter-spacing:.04em;font-family: "Noto Sans JP", sans-serif; font-weight:700;
  }
  .brand-text p{ margin:.2rem 0; opacity:.9; line-height:1.6;font-size: 1.3rem; }
  .contact{
    flex:1 1 40%;
    display:flex;
    flex-direction:column;
    gap:12px;
    align-items:flex-end;
    justify-content:flex-start;
    text-align:right;
  }
  .linklist{
    display:flex; flex-direction:column; gap:8px;font-size: 1.3rem;
  }
  .linklist a{
    color:#e8ecef; text-decoration:none; opacity:.6;
  }
  .linklist a:hover{ opacity:1; color:#fff;  }
  .copyright{
    text-align:center; color:#d6dbdf; opacity:.8; padding:16px 0 28px;
    font-size:14px; }

  /* ========= Breakpoints ========= */
  /* PC: 1024px〜（初期値がPC想定） */

  /* Tablet: 768〜1023px */
  @media (max-width:1023.98px){
   /* .panel{ min-height:320px; padding:48px 0; }*/
    .footer-inner{ flex-direction:column;gap: 10px; padding:30px 0 0;}
    .contact{ align-items:flex-start; text-align:left; }
    .linklist{ /*flex-direction:row; flex-wrap:wrap; gap:12px 20px; */ display: none;}
	.brand-text .logo { width: 50%; margin: 0 auto 0 0;}
	ul.icons {margin: 5px auto;}
  }

  /* Smartphone: 〜767px */
  @media (max-width:767.98px){
    .cnvwrap{ flex-direction:column; }
    .panel {flex-basis: 100%;min-height: 280px;padding: 20px 0;}
    .brand{ flex-direction:row; }
	.brand-text .logo { width: 56%;}
    .brand-text h3{  margin:20px 0 .8rem;font-size:15px;font-family: "Noto Sans JP", sans-serif; font-weight:700; }
	.brand-text p{ font-size: 1.2rem; }
	.copyright{
     padding:10px 0 18px;}
  }



/* Padding */
.pdb15 {padding-bottom: 1.5rem;}
.pdb20 {padding-bottom: 2rem;}
.pdb30 {padding-bottom: 3rem;}




/* 下層レイアウト　page-one */
#page-one #banner {
  padding-top: 100px;
  display: -moz-flex;
  display: -webkit-flex;
  display: -ms-flex;
  display: flex;
  -moz-flex-direction: column;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -moz-justify-content: center;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
  cursor: default;
  height: 30vh;
  min-height: 20rem;
  overflow: hidden;
  position: relative;
  text-align: center;/*
  background: url("../images/mainvisual.jpg");*/
  background-size: cover;
  background-position:50% 80%;
}

#page-one #banner ::after {
  content: '';
  background-color:rgba(0,19,111,0.5);
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
#page-one #banner h2 {
  -moz-transform: scale(1);
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
  -moz-transition: -moz-transform 0.5s ease, opacity 0.5s ease;
  -webkit-transition: -webkit-transform 0.5s ease, opacity 0.5s ease;
  -ms-transition: -ms-transform 0.5s ease, opacity 0.5s ease;
  transition: transform 0.5s ease, opacity 0.5s ease;
  display: inline-block;
  font-size: 2.5rem;
  font-weight: bold;
  opacity: 1;
  padding: 2rem;
  position: relative;
  z-index: 1;
}
#page-one #banner h2:before, #page-one #banner h2:after {
  height: 0;
}
#page-one .contents .inner {}

.wrapper .catch {
  font-size: 1.75rem;
  margin-bottom: 15px;
  font-weight: 700;
  color: #304387;
}
.wrapper .ans {
  font-size: 1.6rem;
  margin-bottom: 25px;
}

/* 　page-one */
.typehr .txt {
    font-size: 1.6rem;
    line-height: 1.7;
    width: 65%;
	margin-bottom: 1rem;
}

.typehr .txt .signature {
    padding: 0.25rem 0 0 0;
    text-align: right;
    font-weight: 600;
}

.typehr .wtxt {
    font-size: 1.6rem;
    line-height: 1.7;
    margin-bottom: 2rem
}

.typehr .txts {
    font-size: 1.6rem;
    line-height: 1.7;
}
.typehr .image {
    width: 35%;
}
@media screen and (max-width: 736px) {
  .typehr .txt {
    font-size: 1.4rem;
    width: 100%;
}  
  .typehr .image {
    width: 100%;
	margin-bottom: 2rem;
}  
}