@charset "Shift_JIS";

/* fadein
---------------------------------------------------- */
.fadein {
  opacity : 0;
  transform : translate(0, 30px);
  transition : all 1000ms;
}
.fadein.scrollin {
  opacity : 1;
  transform : translate(0, 0);
}


/* fix_btn
---------------------------------------------------- */
a.fix_btn {
	position: fixed;
	right: 0;
	top: 180px;
	padding: 30px 15px;
	letter-spacing: -3px;
	color: #FFF;
	background-color: #1e9a6d;
	-ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
	z-index: 1000;
}
a.fix_btn span {
	background-image: url("../images/common/mail.png");
	background-position: center top;
	background-repeat: no-repeat;
	padding: 40px 5px 0;
}
a.fix_btn:hover {
	opacity: 0.7;
}


/* index
---------------------------------------------------- */

/* main */
.index_main {
	margin-top: 90px;
	min-width: 1200px;
	position: relative;
}
.index_main .inner {
	background-color: #454545;
	width: 42%;
	height: 380px;
	margin: 70px 0;
	position: relative;
	z-index: 10;
	text-align: right;
	padding: 100px 30px;
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
}
.index_main .inner h1 {
	color: #FFF;
	font-size: 30px;
	font-weight: normal;
	padding-bottom: 40px;
}
.index_main .img {
	position: absolute;
	right: 0;
	top: 0;
	background-position: center center;
	background-size: cover;
	width: 62%;
	height: 520px;
}

.index_h2 {
	text-align: center;
	font-weight: normal;
	font-size: 60px;
	margin-bottom: 50px;
	line-height: 1.6;
}
.index_h2 span {
	display: block;
	font-size: 18px;
	position: relative;
	padding-top: 10px;
}
.index_h2 span::before {
	position: absolute;
	content: "";
	width: 162px;
	height: 1px;
	background-color: #1e9a6d;
	top: 0;
	left: 50%;
	margin-left: -81px;	
}

/* works */
.index_puppy {
	padding: 100px 0;
}
.index_puppy ul {
	margin: -30px 0 0 -60px;
}
.index_puppy ul li {
	float: left;
	width: 320px;
	margin: 30px 0 0 60px;
}
.index_puppy ul li h2 {
	text-align: center;
	font-size: 24px;
	font-weight: normal;
	padding-bottom: 12px;
}
.index_puppy ul li figure {
  width: 100%;
  height: 0;
  padding-bottom: 76.4%;
  overflow: hidden;
  position: relative;
	margin-bottom: 10px;
	border-radius: 20px;
}
.index_puppy ul li figure img {
  position: absolute;
  top: 0;
  left: 0;
	object-fit: cover;
  width: 100%;
  height: 100%;
}
.index_puppy ul li a figure img {
	transition-duration: 0.5s;
}
.index_puppy ul li a:hover figure img {
	transform: scale(1.15,1.15);
}
.index_puppy .btn_area {
	text-align: right;
	margin-top: 50px;
}

/* concept */
.index_concept {
	padding: 100px 0;
	min-width: 1200px;
	background-color: #454545;
}

.index_concept .index_h2,
.index_concept p {
	color:#fff;
	text-align:center;
}

/* 通常 */
.index_concept a.btn{
	color:#fff;
	border:2px solid #fff;
}

.index_concept a.btn span{
	background-image:url("../images/common/arr2.png");
}

/* 白幕を仕込む */
.index_concept a.btn::before{
	background:#fff;
}

/* hoverした瞬間 */
.index_concept a.btn:hover{
	color:#454545 !important;
}

/* hoverで矢印も変える */

/* news */
.index_news {
	padding: 100px 0;
	min-width: 1200px;
	background-color: #454545;
}
.index_news .index_h2 {
	color: #FFF;
}
.index_news ul li {
	border-bottom: 1px dotted #FFF;
}
.index_news ul li:last-child {
	border-bottom: none;
}
.index_news ul li a {
	display: block;
	padding: 30px 0;
	color: #FFF;
}
.index_news ul li a:hover {
	color: #1e9a6d;
}
.index_news ul li .date {
	float: left;
}
.index_news ul li .txt {
	padding: 0 60px 0 250px;
	background-image: url("../images/common/arr1.png");
	background-position: right center;
	background-repeat: no-repeat;
}
.index_news a.btn {
	color: #FFF;
	border: 2px solid #FFF;
}
.index_news a.btn span {
	background-image: url("../images/common/arr2.png");
}
.index_news a.btn::before {
  background: #FFF;
}
.index_news a.btn:hover {
  color: #454545;
}

/* contents */
.index_contents {
	padding: 100px 0;
}
.index_contents ul {
	border-left: 1px solid #9b9b9b;
}
.index_contents ul li {
	float: left;
	width: 50%;
	text-align: center;
	border-right: 1px solid #9b9b9b;
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
}
.index_contents ul li a {
	display: block;
}
.index_contents ul li .index_h2 {
	margin-bottom: 20px;
}


/* btn
---------------------------------------------------- */
a.btn {
	font-size: 16px;
	width: 450px;
	line-height: 60px;
	text-align: center;
	color: #1e9a6d;
	margin: 50px auto 0;
	display: block;
	border: 2px solid #1e9a6d;
	border-radius: 50px;
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
  background: transparent;
  position: relative;
  z-index: 1;
  transition: .3s;
	overflow: hidden;
	max-width: 100%;
}
a.btn span {
	display: block;
	background-image: url("../images/common/arr1.png");
	background-position: right 20px center;
	background-repeat: no-repeat;
}
a.btn::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background: #1e9a6d;
  transform-origin: 100% 50%;
  transform: scaleX(0);
  transition: transform ease .3s;
	border-radius: 50px;
}
a.btn:hover {
  color: #fff;
}
a.btn:hover span {
	background-image: url("../images/common/arr2.png");
}
a.btn:hover::before {
  transform-origin: 0% 50%;
  transform: scaleX(1);
}


/* main
---------------------------------------------------- */
.main {
	padding: 80px 0 100px;
	background-color: #454545;
	margin-top: 90px;
	background-image: url("../images/common/main.jpg");
	background-position: right center;
	background-repeat: no-repeat;
	background-size: auto 100%;
}
.main h1 {
	color: #FFF;
	font-weight: normal;
	font-size: 72px;
	line-height: 1.2;
}
.main h1 span {
	display: block;
	font-size: 24px;
	padding-top: 10px;
}


/* gallery
---------------------------------------------------- */
ul.gallery {
	margin: 0 0 0 -60px;
}
ul.gallery li {
	float: left;
	width: 320px;
	margin: 30px 0 0 60px;
}
ul.gallery li figure {
  width: 100%;
  height: 0;
  padding-bottom: 76.4%;
  overflow: hidden;
  position: relative;
	margin-bottom: 10px;
	border-radius: 20px;
}
ul.gallery li figure img {
  position: absolute;
  top: 0;
  left: 0;
	object-fit: cover;
  width: 100%;
  height: 100%;
}


/* table
---------------------------------------------------- */
table.tbl {
	width: 100%;
	border-collapse: collapse;
}
table.tbl tr {
	border-bottom: 1px solid #9b9b9b;
}
table.tbl th { 
	padding: 30px 20px;
	text-align: left;
	width: 160px;
	font-weight: normal;
	vertical-align: top;
}
table.tbl td {
	padding: 30px 0;
	text-align: left;
	vertical-align: middle;
}


/* puppy
--------------------------------------------- */
.puppy_txt {
	margin-bottom: 50px;
}
.puppy_contents {
	float: left;
	width: 740px;
}
.puppy_contents ul {
	margin: -30px 0 0 -60px;
}
.puppy_contents ul li {
	float: left;
	width: 320px;
	margin: 30px 0 0 60px;
}
.puppy_contents ul li h2 {
	text-align: center;
	font-size: 24px;
	font-weight: normal;
	padding-bottom: 12px;
}
.puppy_contents ul li figure {
  width: 100%;
  height: 0;
  padding-bottom: 76.4%;
  overflow: hidden;
  position: relative;
	margin-bottom: 10px;
	border-radius: 20px;
}
.puppy_contents ul li figure img {
  position: absolute;
  top: 0;
  left: 0;
	object-fit: cover;
  width: 100%;
  height: 100%;
}
.puppy_contents ul li a figure img {
	transition-duration: 0.5s;
}
.puppy_contents ul li a:hover figure img {
	transform: scale(1.15,1.15);
}


/* swiper
---------------------------------------------------- */
.swiper {
	width: 100%;
	height: 470px;
	padding: 30px 0 50px!important;
}
.swiper-slide {
	text-align: center;
	font-size: 18px;
}
.swiper-slide img {
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	-ms-transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
	-moz-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	position: absolute;
	left: 50%;
	top: 50%;
	border-radius: 30px;
}


/* flow
---------------------------------------------------- */
.flow {}
.flow li {
	margin-top: 50px;
}
.flow li .ttl {
	margin-bottom: 10px;
}
.flow li .ttl .step {
	display: inline-block;
	color: #1e9a6d;
	font-size: 36px;
	line-height: 28px;
	vertical-align: middle;
}
.flow li .ttl .step span {
	display: block;
	font-size: 16px;
}
.flow li .ttl h2 {
	font-size: 24px;
	font-weight: normal;
	display: inline-block;
	vertical-align: middle;
	padding-left: 30px;
}
.flow li figure {
	float: left;
	width: 350px;
	border-radius: 20px;
	overflow: hidden;
}
.flow li figure img {
	width: 100%;
}
.flow li .txt {
	padding-left: 390px;
}


/* faq
---------------------------------------------------- */
.faq {
	padding-top: 50px;
}
.faq ul {
	margin-bottom: 30px;
	padding-bottom: 20px;
	border-bottom: 1px solid #9b9b9b;
}
.faq li {
	position: relative;
	padding: 7px 0 20px 60px;
}
.faq li a {
	color: #61b7c1;
	text-decoration: underline;
}
.faq li:nth-child(1) {
	font-size: 24px;
	line-height: 1.5;
}
.faq li::after {
	position: absolute;
	top: -2px;
	left: 0;
	color: #1e9a6d;
}
.faq li:nth-child(1)::after {
	content: "Q";
	font-size: 36px;
}
.faq li:nth-child(2)::after {
	content: "A";
	font-size: 24px;
}


/* anc
--------------------------------------------- */
.anc {
	text-align: center;
}
.anc a.btn {
	display: inline-block;
	margin: 50px 20px 0;
}
.anc a.btn span {
	background-image: url("../images/common/anc1.png");
}
.anc a.btn:hover span {
	background-image: url("../images/common/anc2.png");
}
.anc2 a.btn span {
	background-image: url("../images/common/arr1.png");
}
.anc2 a.btn:hover span {
	background-image: url("../images/common/arr2.png");
}


/* news
--------------------------------------------- */
.news_contents {
	float: left;
	width: 740px;
}
.news_contents ul {
	margin-top: 0;
}
.news_contents ul li {
	border-bottom: 1px solid #9b9b9b;
}
.news_contents ul li a {
	display: block;
	padding: 30px 0;
}
.news_contents ul li a .date {
	float: left;
}
.news_contents ul li a .txt {
	padding: 0 60px 0 220px;
	background-image: url("../images/common/arr1.png");
	background-position: right center;
	background-repeat: no-repeat;
}

/* details */
.news_details.blog_details {
	float: none;
	width: 100%;
}
.news_details {
	float: left;
	width: 740px;
}
.news_details .ttl {
	font-size: 30px;
	font-weight: normal;
	padding-bottom: 10px;
  border-bottom: 2px solid #1e9a6d;
	font-family: 'genjyuugothic-medium';
}
.news_details .date {
  margin: 10px 0 30px;
  color: #1e9a6d;
}
.news_details .txt img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 0 auto;
}
.news_details .pager {
	margin-top: 30px;
	padding: 10px;
	height: 30px;
	line-height: 30px;
	position: relative;
	background-color: #f5f5f5;
}
.news_details .pager .list {
	text-align: center;
	position: absolute;
  left: 110px;
  right: 110px;
}
.news_details .pager .previous {
	float: left;
	padding-left: 15px;
	position: relative;
}
.news_details .pager .previous::after {
	position: absolute;
	top: 50%;
	left: 0;
	margin-top: -4px;
	content: "";
	vertical-align: middle;
	width: 6px;
	height: 6px;
	border-top: 2px solid #1e9a6d;
	border-right: 2px solid #1e9a6d;
	-webkit-transform: rotate(225deg);
	transform: rotate(225deg);
}
.news_details .pager .next {
	float: right;
	padding-right: 15px;
	position: relative;
}
.news_details .pager .next::after {
	position: absolute;
	top: 50%;
	right: 0;
	margin-top: -4px;
	content: "";
	vertical-align: middle;
	width: 6px;
	height: 6px;
	border-top: 2px solid #1e9a6d;
	border-right: 2px solid #1e9a6d;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}

/* menu */
.news_menu {
	float: right;
	width: 300px;
}
.news_menu .menu_blc {
	margin-bottom: 40px;
}
.news_menu .menu_blc .ttl {
  font-size: 36px;
	font-weight: normal;
	padding-bottom: 10px;
}
.news_menu .menu_blc ul li {
	border-bottom: 1px solid #9b9b9b;
}
.news_menu .menu_blc ul li a {
	display: block;
	padding: 12px 0;
	position: relative;
	background-image: url("../images/common/arr1.png");
	background-position: right center;
	background-repeat: no-repeat;
	
}


/* pagination
---------------------------------------------------- */
.pagination {
	text-align: center;
	font-size: 0;
	margin-top: 70px;
}
.pagination .page-numbers {
	display: inline-block;
	line-height: 40px;
	width: 40px;
	text-align: center;
	background-color: #d0d0d0;
	color: #FFF;
	font-size: 16px;
	margin: 0 5px;
}
.pagination .current, .pagination a.page-numbers:hover {
	background-color: #1e9a6d;
}
.pagination .dots {
	background-color: transparent;
	margin: 0;
	color: #000;
}


/* contact
---------------------------------------------------- */
table.contact_tbl th { 
	width: 250px;
	padding: 40px 20px;
}
table td input[type=text], table td input[type=email] {
  width: 100%;
  height: 56px;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  padding: 0 10px 0 10px;
  border: #ececec solid 1px;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  margin-top: 0px;
  font-size: 18px;
	background-color: #ececec;
	display: inline-block;
  font-family: 'notosansjp';
}
table td input[type=text].zip {
  width: 150px;
	margin-bottom: 10px;
}
table td textarea {
  width: 100%;
  height: 300px;
	display: block;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  padding: 5px 10px 5px 10px;
  border: #ececec solid 1px;
  font-size: 18px;
	background-color: #ececec;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  font-family: 'notosansjp';
	border-radius: 2px;
	-moz-border-radius: 2px;
	-webkit-border-radius: 2px;
}
table td label {
	margin-right: 0;
}
.formBt {
  margin: 50px auto 0;
  text-align: center;
}
.formBt input {
	display: block;
	font-family: 'notosansjp';
  width: 450px;
  font-size: 16px;
  max-width: 100%;
	background-color: #FFF;
  border: 2px solid #1e9a6d;
	color: #1e9a6d;
  text-align: center;
	margin: 50px auto 0;
	line-height: 60px;
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	border-radius: 50px;
	transition: .3s;
	background-image: url("../images/common/arr1.png");
	background-position: right 20px center;
	background-repeat: no-repeat;
}
.formBt input:hover {
	background-color: #1e9a6d;
	color: #FFF;
	background-image: url("../images/common/arr2.png");
}

table th span.req {
	background-color: #e7333c;
  font-size: 14px;
  font-weight: normal;
  color: #FFFFFF;
  float: right;
  margin: 2px 0 0;
  line-height: 30px;
	position: inherit;
  padding: 0px 15px;
	border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
}
input[type="submit"],
input[type="button"] {
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	box-sizing: border-box;
	cursor: pointer;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
	display: none;
}
input[type="submit"]::focus,
input[type="button"]::focus {
	outline-offset: -2px;
}

.contact_privacy {
	text-align: center;
	margin-top: 20px;
}
.contact_privacy p {
	padding-top: 20px;
}
.contact_privacy p a {
	color: #ff6c00;
	text-decoration: underline;
}

.grecaptcha-badge {
  bottom: 80px !important;
}

p.teln {
	margin: 20px 0 0;
	font-size: 34px;
	text-align: center;
}
p.teln span {
	background-image: url(../images/common/tel.png);
	background-position: left center;
	background-repeat: no-repeat;
	padding-left: 40px;
}


/* privacy
---------------------------------------------------- */
.privacy {
	padding-top: 30px;
}
.privacy h3 {
	font-size: 16px;
}
.privacy ul li {
  padding-left: 1em;
	text-indent: -1em;
}
.privacy ul li::before {
  content: "●";
}



@media only screen and (max-width: 740px) {

/* fix_btn
---------------------------------------------------- */
a.fix_btn {
	width: 40px;
	height: 40px;
	right: 54px;
	top: 5px;
	padding: 0;
	background-image: url("../images/common/mail.png");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 20px auto;
}
a.fix_btn span {
	display: none;
}


/* index
---------------------------------------------------- */

/* main */
.index_main {
	margin-top: 50px;
	min-width: 100%;
}
.index_main .inner {
	width: 100%;
	height: auto;
	margin: 0;
	text-align: center;
	padding: 30px 30px;
}
.index_main .inner h1 {
	font-size: 20px;
	padding-bottom: 10px;
}
.index_main .img {
	position: inherit;
	width: 100%;
	height: 260px;
}

/* h2 */
.index_h2 {
	font-size: 38px;
	margin-bottom: 30px;
}
.index_h2 span {
	font-size: 16px;
}

/* works */
.index_puppy {
	padding: 50px 0;
}
.index_puppy ul {
	margin: -40px 0 0;
}
.index_puppy ul li {
	float: none;
	width: 84%;
	margin: 40px auto 0;
}
.index_puppy ul li h2 {
	font-size: 22px;
}

/* concept */
.index_concept {
	padding: 50px 0;
	min-width: 100%;
}
.index_concept p {
	text-align: left;
}
.index_concept p br {
	display: none;
}

/* news */
.index_news {
	padding: 50px 0;
	min-width: 100%;
}
.index_news ul li a {
	padding: 20px 0;
}
.index_news ul li .date {
	float: none;
}
.index_news ul li .txt {
	padding: 0 30px 0 0;
}

/* contents */
.index_contents {
	padding: 50px 0;
}
.index_contents ul {
	border-top: 1px solid #9b9b9b;
	border-left: none;
}
.index_contents ul li {
	float: none;
	width: 100%;
	border-bottom: 1px solid #9b9b9b;
	border-right: none;
}
.index_contents ul li a {
	padding: 20px 0;
}


/* btn
---------------------------------------------------- */
a.btn {
	margin-top: 40px;
	width: 90%;
}


/* main
---------------------------------------------------- */
.main {
	margin-top: 50px;
	padding: 30px 0 40px;
	background-size: 150px 100%;
}
.main h1 {
	font-size: 36px;
}
.main h1 span {
	font-size: 16px;
}


/* gallery
---------------------------------------------------- */
ul.gallery {
	margin: -10px 0 0;
}
ul.gallery li {
	float: none;
	width: 84%;
	margin: 40px auto 0;
}


/* table
---------------------------------------------------- */
table.tbl {
	width: 100%;
	border-collapse: collapse;
}
table.tbl th { 
	padding: 10px 10px 5px;
	display: block;
  text-align: left;
	width: 100%;
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	border-bottom: none;
}
table.tbl td {
	padding: 0 10px 10px;
	display: block;
	width: 100%;
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
}


/* gmap
---------------------------------------------------- */
.gmap {
	position: relative;
	padding: 0;
  height: 0;
	margin-bottom: 10px;
  padding-bottom: 50%;
  overflow: hidden;
}
.gmap iframe {
	position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; 
}
	
	
/* puppy
--------------------------------------------- */
.puppy_txt {
	margin-bottom: 30px;
}
.puppy_contents {
	float: none;
	width: 100%;
}
.puppy_contents ul {
	margin: -40px 0 0;
}
.puppy_contents ul li {
	float: none;
	width: 84%;
	margin: 40px auto 0;
}
.puppy_contents ul li h2 {
	font-size: 22px;
}


/* swiper
---------------------------------------------------- */
.swiper {
	height: 220px;
}


/* flow
---------------------------------------------------- */
.flow li {
	margin-top: 25px;
}
.flow li figure {
	float: none;
	width: 100%;
	margin-bottom: 10px;
}
.flow li figure img {
	width: 100%;
}
.flow li .txt {
	padding-left: 0;
}


/* faq
---------------------------------------------------- */
.faq {
	padding-top: 50px;
}
.faq ul {
	margin-bottom: 20px;
	line-height: 32px;
	padding-bottom: 10px;
}
.faq li {
	position: relative;
	padding: 0 0 10px 43px;
}
.faq li:nth-child(1) {
	font-size: 16px;
}
.faq li::after {
	top: -2px;
  left: 0;
}
.faq li:nth-child(1)::after {
	content: "Q";
	font-size: 32px;
	top: -14px;
}


/* anc
--------------------------------------------- */
.anc {
}
.anc a.btn {
	display: block;
	margin: 20px auto 0;
}


/* news
--------------------------------------------- */
.news_contents {
	float: none;
	width: 100%;
}
.news_contents ul {
  padding-left: 0;
  margin-top: 0;
	border-top: 1px solid #333;
}
.news_contents ul li a {
  padding: 20px 0;
	line-height: 2;
}
.news_contents ul li a .date {
  float: none;
}
.news_contents ul li a .txt {
  padding: 0 30px 0 0;
}

/* details */
.news_details {
	float: none;
	width: 100%;
}
.news_details .ttl {
	font-size: 20px;
}
.news_details .date {
  margin: 10px 0 20px;
}
.news_details .pager {
	margin-top: 20px;
}

/* menu */
.news_menu {
	float: none;
	width: 100%;
  margin-top: 50px;
}
.news_menu .menu_blc {
  margin: 40px 0 0;
}
.news_menu .menu_blc .ttl {
  font-size: 20px;
}


/* pagination
---------------------------------------------------- */
.pagination {
	margin-top: 40px;
}
.pagination .page-numbers {
	line-height: 30px;
	width: 30px;
	font-size: 12px;
	margin: 0 3px;
}


/* contact
---------------------------------------------------- */
.formBt {
  margin: 30px auto 0;
}
.formBt input {
  width: 90%;
  display: block;
  margin: 0 auto;
	font-size: 16px;
	line-height: 60px;
}
table td textarea {
	height: 200px;
}
table th span.req {
  margin: 2px 0 0;
	font-size: 12px;
	line-height: 24px;
}

input[type="submit"],
input[type="button"] {
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	box-sizing: border-box;
	cursor: pointer;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
	display: none;
}
input[type="submit"]::focus,
input[type="button"]::focus {
	outline-offset: -2px;
}

p.teln {
	font-size: 26px;
}


/* privacy
---------------------------------------------------- */
.privacy {
	padding-top: 25px;
}
.privacy h3 {
	font-size: 15px;
}


}

/* =================================
Concept page
================================= */

.concept h2{
    color:#2f9d6a !important;
    font-size:28px;
    font-weight:600;
    margin-bottom:25px;
}

.concept p{
    font-size:15px;
    line-height:2;
    margin-bottom:40px;
}

.concept_img{
    display:flex;
    gap:30px;
}

.concept_img li{
    width:33.333%;
}

.concept_img li img{
    width:100%;
    height:260px;
    object-fit:cover;
    border-radius:15px;
}


/* 並べる役目（ul） */
.protection_btn{
	display:flex;
	justify-content:center;
	gap:40px;
	margin-top:40px;
	flex-wrap:wrap;
	padding:0;
   }
   
   /* liの点消し */
   .protection_btn li{
	list-style:none;
   }
   
   /* ボタン本体 */
   .protection_btn a{
   
	width:320px;
	height:80px;
   
	border:2px solid #2c9c68;
	color:#2c9c68;
	border-radius:50px;
   
	display:flex;
	align-items:center;
	justify-content:center;
   
	text-decoration:none;
	transition:0.3s;
   }
   
   /* hover */
   .protection_btn a:hover{
	background:#2c9c68;
	color:#fff;
   }

   .protection h2{
    color:#2f9d6a !important;
    font-size:28px;
    font-weight:600;
    margin-bottom:25px;
}

.company h2{
    color:#2f9d6a !important;
    font-size:28px;
    font-weight:600;
    margin-bottom:25px;
}

.company_table{
    width:100%;
    border-collapse:separate;
    border-spacing:0 12px;
    margin-bottom:50px;
}

.company_table th{
    width:160px;
    background:#f5f5f5;
    padding:18px 10px;
    text-align:center;
    vertical-align:middle;
    font-weight:500;
    border-radius:6px 0 0 6px;
}

.company_table td{
    padding:18px 20px;
    background:#fff;
    border:1px solid #eee;
    border-left:none;
    border-radius:0 6px 6px 0;
}

.company_table tr{
    box-shadow:0 2px 4px rgba(0,0,0,0.03);
    transition:0.2s;
}

.company_table tr:hover{
    transform:translateY(-1px);
    box-shadow:0 4px 8px rgba(0,0,0,0.05);
}

.company_map iframe{
    width:100%;
    height:400px;
    border-radius:8px;
}

/* recruit ナビ（protectionと完全同期） */
.recruit_nav{
	display:flex;
	justify-content:center;
	gap:40px;
	margin-top:40px;
	flex-wrap:wrap;
	padding:0;
}

.recruit_nav li{
	list-style:none;
}

.recruit_nav a{

	width:320px;
	height:80px;

	border:2px solid #2c9c68;
	color:#2c9c68;
	border-radius:50px;

	display:flex;
	align-items:center;
	justify-content:center;

	text-decoration:none;
	transition:0.3s;
}

.recruit_nav a:hover{
	background:#2c9c68;
	color:#fff;
}

/* recruit 見出し（他ページと統一） */
.recruit h2{
	color:#2f9d6a !important;
	font-size:28px;
	font-weight:600;
	margin-bottom:25px;
}

html{
	scroll-behavior:smooth;
}

.recruit_box{
	margin-top:80px;
}

.news .contents{
	max-width:800px;
	margin:0 auto;
}

.news_item{
	border-bottom:1px solid #ddd;
	padding:25px 0;
}

.news_date{
	color:#999;
	font-size:14px;
	margin-bottom:5px;
}

.news_title{
	font-size:18px;
}

.news_single_title{
	font-size:32px;
	margin-bottom:20px;
	padding-bottom:10px;
	border-bottom:3px solid #2e8b57;
}

.news_single_meta{
	color:#2e8b57;
	font-size:14px;
	margin-bottom:30px;
}

.news_single_content{
	line-height:2;
	margin-bottom:40px;
}

.news_back a{
	display:block;
	text-align:center;
	background:#eee;
	padding:15px;
	text-decoration:none;
	color:#333;
	transition:0.3s;
}

.news_back a:hover{
	background:#ddd;
}


.contact{
    max-width:800px;
    margin:0 auto;
}

.contact_box{
    margin-top:60px;
}

.contact_title{
    font-size:20px;
    font-weight:bold;
    margin-bottom:10px;
}

.contact_tel{
    margin-bottom:40px;
}

.contact .tel{
    font-size:28px;
    font-weight:bold;
    border-bottom:2px solid #4CAF8F;
    display:inline-block;
    padding-bottom:5px;
}

.contact_mail a{
    display:inline-block;
    border:1px solid #4CAF8F;
    padding:15px 40px;
    margin-top:10px;
}

.contact_h2{
    font-size:28px;
    color:#2f8f6a;
    margin:40px 0 20px;
    border-bottom:2px solid #2f8f6a;
    padding-bottom:5px;
}

.contact_txt{
    margin-bottom:30px;
    line-height:1.8;
}

.contact .tel{
    white-space:nowrap;
}

/* ===== フォーム全体 ===== */

.contact_form{
    margin-top:40px;
}

.form_row{
    display:flex;
    border-bottom:1px solid #e5e5e5;
    padding:18px 0;
    align-items:flex-start;
}

.form_label{
    width:160px;
    font-size:14px;
    color:#333;
    padding-top:10px;
}

.form_input{
    flex:1;
}

/* ===== 入力欄 ===== */

.form_input input,
.form_input textarea{
    width:100%;
    background:#fafafa;
    border:1px solid #ddd;
    padding:12px 14px;
    font-size:16px;
    border-radius:4px;
    transition:0.2s;
}

.form_input input:focus,
.form_input textarea:focus{
    outline:none;
    border-color:#2f8f6a;
    background:#fff;
}

.form_input textarea{
    height:180px;
    resize:vertical;
}

/* ===== ラジオ横並び ===== */

.radio_group{
    display:flex;
    align-items:center;
    gap:25px;
}

.radio_item{
    display:inline-flex;
    align-items:center;
    font-size:14px;
    cursor:pointer;
}

.radio_item input{
    width:auto;
    margin-right:5px;
}

/* ===== 必須バッジ ===== */

.required{
    display:inline-block;
    background:#e74c3c;
    color:#fff;
    font-size:10px;
    padding:2px 6px;
    border-radius:3px;
    margin-left:6px;
    vertical-align:middle;
}

/* ===== 同意 ===== */

.form_agree{
    text-align:center;
    margin-top:30px;
    font-size:13px;
}

/* ===== 送信ボタン ===== */

.contact_btn{
    display:block;
    width:300px;
    margin:40px auto 0;
    padding:18px 0;
    border:2px solid #2f8f6a;
    background:#fff;
    color:#2f8f6a;
    border-radius:50px;
    font-size:16px;
    cursor:pointer;
    transition:0.3s;
}

.contact_btn:hover{
    background:#2f8f6a;
    color:#fff;
}

/* ===== SP対応 ===== */

@media screen and (max-width:768px){

    .form_row{
        flex-direction:column;
    }

    .form_label{
        width:100%;
        margin-bottom:6px;
    }

}

.form_privacy_block{
    max-width:600px;
    margin:30px auto;
}

.contact_privacy{
    max-height:200px;
    overflow-y:scroll;
    border:1px solid #ddd;
    background:#fafafa;
    padding:15px;
    font-size:14px;
    line-height:1.7;
}

.thanks_btn_wrap{
    text-align:center;
    margin-top:40px;
}

.thanks_btn{
    display:inline-block;
    width:300px;
    padding:18px 0;
    border:2px solid #2f8f6a;
    background:#fff;
    color:#2f8f6a;
    border-radius:50px;
    text-align:center;
    font-size:16px;
    transition:0.3s;
}

.thanks_btn:hover{
    background:#2f8f6a;
    color:#fff;
}

.contact_btn{
    text-align:center;
}

/* =========================
TOP Concept 導線
========================= */

.top_concept_area{
    padding:80px 0;
    background:#f7f7f7;
    text-align:center;
}

.top_concept_block{
    margin-bottom:60px;
}

.concept_lead{
    margin:20px 0 30px;
    line-height:1.8;
}


.top_link_3col{
    display:flex;
    justify-content:space-between;
    gap:30px;
}

.top_link_item{
    width:32%;
    display:block;
    text-decoration:none;
}

.top_link_item img{
    width:100%;
    border-radius:10px;
}

.top_link_item p{
    margin-top:10px;
    color:#333;
}


.puppy_slider{
	position:relative;
	text-align:center;
	}
	
	#puppy_slide_img{
	width:100%;
	max-width:700px;
	border-radius:20px;
	}
	
	.slide_btn{
	position:absolute;
	top:50%;
	transform:translateY(-50%);
	background:none;
	border:none;
	font-size:40px;
	cursor:pointer;
	}
	
	.prev{ left:10px; }
	.next{ right:10px; }
	
	.slide_dots{
	margin-top:10px;
	}
	
	.dot{
	display:inline-block;
	width:10px;
	height:10px;
	background:#ccc;
	border-radius:50%;
	margin:0 4px;
	}
	
	.dot.active{
	background:#333;
	}

	.puppy_single_title{
		margin:60px 0 40px;
	}
	
	.puppy_single_title h2{
		font-size:28px;
		font-weight:500;
		padding-bottom:15px;
		border-bottom:2px solid #2f8f6a;
	}

	.puppy_slider{
		position:relative;
		width:100%;
		max-width:800px;
		height:500px; /* ←ここで高さを固定 */
		margin:40px auto;
		overflow:hidden;
		border-radius:20px;
	}
	
	/* 画像は箱いっぱいに収まる */
	.puppy_slider img{
		width:100%;
		height:100%;
		object-fit:cover;
	}

	.puppy_nav{
		display:flex;
		justify-content:space-between;
		align-items:center;
		margin:40px 0;
		}
		
		.puppy_prev,
		.puppy_back,
		.puppy_next{
		flex:1;
		}
		
		.puppy_back{
		text-align:center;
		}
		
		.puppy_next{
		text-align:right;
		}
		
		.puppy_nav a{
		display:inline-block;
		background:#eee;
		padding:15px 30px;
		text-decoration:none;
		color:#333;
		transition:0.3s;
		}
		
		.puppy_nav a:hover{
		background:#ddd;
		}

		.flow_lead{
			font-size:28px;
			color:#2E8B57;
			margin-bottom:20px;
			}
			
			.flow_txt{
			margin-bottom:40px;
			line-height:1.8;
			}
			
			.flow_step{
			margin-bottom:50px;
			border-bottom:1px solid #ddd;
			padding-bottom:30px;
			}
			
			.flow_step_title{
			font-size:28px;
			color:#2E8B57;
			margin-bottom:10px;
			}
			
			.flow_step_txt{
			line-height:1.8;
			}

			/* =========================
footer tel 修正（最優先）
========================= */

.footer_contact .tel{
    display:block;
    text-align:center;
}

.footer_contact .tel a{
    color:#fff !important;
    text-decoration:none;
    white-space:nowrap;
    display:inline;
    font-size:28px;
    font-weight:bold;
}

/* ヘッダーロゴ */
.header_logo img.site-logo{
	max-height: 70px;   /* 好みで 50〜80 */
	width: auto;
	height: auto;
	display: block;
  }
  
  /* フッターロゴ */
  .footer_logo img.site-logo,
  .footer_logo img{
	max-height: 90px;   /* 好みで調整 */
	width: auto;
	height: auto;
	display: block;
  }

  /* ===== フッターロゴ固定サイズ ===== */

.footer_logo{
	display: inline-block;
  }
  
  .footer_logo img.site-logo-footer{
	max-height: 80px;   /* ←ここ好みで調整（60〜100） */
	width: auto !important;
	height: auto;
	display: block;
  }

  /* ===== ヘッダー横並び完全中央揃え ===== */

header .contents{
	display:flex;
	align-items:center;
	justify-content:space-between;
  }
  
  /* ロゴの中身をflexに */
  .header_logo a{
	display:flex;
	align-items:center;
  }
  
  /* ロゴサイズ固定 */
  .header_logo img{
	max-height:60px;
	width:auto;
	display:block;
  }
  
  /* メニュー側も中央基準に */
  .menu{
	display:flex;
	align-items:center;
	transform: translateY(-12px);
  }

  /* liの余計なズレ防止 */
  .menu li{
	line-height:1;
  }

  .front_h1_logo{
    width:auto;
    height:150px;
    margin-top:30px;
    object-fit:contain;
}

.front_h1_logo{
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 40%; /* ←ここで上下調整 */
    width: 200px; /*お好み*/
}

/* ===== 仔犬一覧 3列 強制復旧 ===== */
.index_puppy .contents {
	width: 1080px !important;
	padding: 0 !important;
	box-sizing: content-box !important;
}

.index_puppy ul {
	margin: -30px 0 0 -60px !important;
}

.index_puppy ul li {
	float: left !important;
	width: 300px !important;
	margin: 30px 0 0 60px !important;
}

/* ===== TOP company / recruit ===== */

.index_contents {
	padding: 100px 0;
	background: #fff;
}

.index_contents ul {
	border-left: 1px solid #9b9b9b;
}

.index_contents ul li {
	float: left;
	width: 50%;
	text-align: center;
	border-right: 1px solid #9b9b9b;
	box-sizing: border-box;
}

.index_contents ul li a {
	display: block;
	padding: 25px 0;
}

.index_contents ul li .index_h2 {
	margin-bottom: 20px;
}

.index_contents_icon img {
	width: 80px;
	height: auto;
}

.index_contents ul li:nth-child(2) .index_h2 {
	color: #1e9a6d;
}

@media only screen and (max-width: 740px) {
	.index_contents {
		padding: 50px 0;
	}

	.index_contents ul {
		border-top: 1px solid #9b9b9b;
		border-left: none;
	}

	.index_contents ul li {
		float: none;
		width: 100%;
		border-right: none;
		border-bottom: 1px solid #9b9b9b;
	}

	.index_contents ul li a {
		padding: 30px 0;
	}

	.index_contents_icon img {
		width: 60px;
	}
}


/* =========================
OTO 高級感デザイン調整
黒 / 紺 / ゴールド / 白
========================= */

:root{
	--oto-black:#111111;
	--oto-deep:#171923;
	--oto-navy:#0f1b2d;
	--oto-gold:#b08a3c;
	--oto-gold-light:#d6bd7f;
	--oto-white:#ffffff;
	--oto-gray:#f5f2ec;
	--oto-text:#222222;
}

/* 全体フォント */
body{
	font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","HGS明朝E",serif;
	color:var(--oto-text);
	background:var(--oto-white);
}

/* ヘッダー */
header{
	background:rgba(255,255,255,0.96);
	border-bottom:1px solid rgba(176,138,60,0.25);
}

header .menu li a{
	color:var(--oto-black);
	font-weight:500;
	letter-spacing:0.08em;
}

header .menu li a:hover{
	color:var(--oto-gold);
}

/* 固定問い合わせボタン */
a.fix_btn{
	background:var(--oto-black);
	color:var(--oto-gold-light);
	border-left:1px solid var(--oto-gold);
}

a.fix_btn:hover{
	background:var(--oto-navy);
	opacity:1;
}

/* メインビジュアル */
.index_main .inner{
	background:linear-gradient(135deg,var(--oto-black),var(--oto-navy));
}

.index_main .inner h1{
	color:var(--oto-white);
	letter-spacing:0.15em;
}

/* セクション見出し */
.index_h2,
.main h1{
	font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;
	letter-spacing:0.08em;
	color:var(--oto-black);
}

.index_h2 span,
.main h1 span{
	color:var(--oto-gold);
	font-weight:500;
}

.index_h2 span::before{
	background-color:var(--oto-gold);
}

/* 下層メイン */
.main{
	background-color:var(--oto-black);
}

.main h1{
	color:var(--oto-white);
}

/* Puppyエリア */
.index_puppy{
	background:var(--oto-white);
}

.index_puppy ul li p{
	letter-spacing:0.08em;
}

.index_puppy ul li figure{
	border-radius:4px;
	box-shadow:0 10px 30px rgba(0,0,0,0.12);
}

/* ステータスバッジ */
.available-badge,
.negotiating-badge,
.sold-badge{
	background:var(--oto-black) !important;
	color:var(--oto-gold-light) !important;
	letter-spacing:0.08em;
}

/* Concept / News 黒背景 */
.index_concept,
.index_news{
	background:var(--oto-black);
}

.index_concept .index_h2,
.index_concept p,
.index_news .index_h2{
	color:var(--oto-white);
}

.index_concept .index_h2 span,
.index_news .index_h2 span{
	color:var(--oto-gold-light);
}

/* ボタン */
a.btn,
.contact_btn,
.thanks_btn{
	color:var(--oto-gold);
	border-color:var(--oto-gold);
	border-radius:0;
	letter-spacing:0.12em;
	background:transparent;
}

a.btn::before{
	background:var(--oto-gold);
	border-radius:0;
}

a.btn:hover,
.contact_btn:hover,
.thanks_btn:hover{
	color:var(--oto-black);
	background:var(--oto-gold);
}

a.btn span{
	background-image:none;
}

/* Company / Recruit 導線 */
.index_contents{
	background:var(--oto-gray);
}

.index_contents ul{
	border-left:1px solid rgba(176,138,60,0.45);
}

.index_contents ul li{
	border-right:1px solid rgba(176,138,60,0.45);
}

.index_contents ul li .index_h2{
	color:var(--oto-black);
}

.index_contents ul li:nth-child(2) .index_h2{
	color:var(--oto-navy);
}

/* テーブル */
.company_table th,
table.tbl th{
	background:var(--oto-black);
	color:var(--oto-gold-light);
	font-weight:500;
}

.company_table td,
table.tbl td{
	background:#fff;
	border-color:#e8e1d3;
}

/* FAQ */
.faq li::after{
	color:var(--oto-gold);
}

/* News一覧 */
.news_single_title{
	border-bottom-color:var(--oto-gold);
}

.news_single_meta{
	color:var(--oto-gold);
}

/* Footer */
footer{
	background:var(--oto-black);
	border-top:1px solid var(--oto-gold);
}

footer .footer_contact{
	border-bottom:1px solid rgba(176,138,60,0.45);
}

footer .footer_contact .index_h2{
	color:var(--oto-white);
}

footer .footer_contact .index_h2 span{
	color:var(--oto-gold-light);
}

.footer_contact .tel a{
	color:var(--oto-gold-light) !important;
}

/* ページトップ */
#page_top{
	background:var(--oto-black);
}

/* SP */
@media only screen and (max-width:740px){
	.index_h2{
		font-size:34px;
	}

	.main h1{
		font-size:34px;
	}

	header{
		background:var(--oto-white);
	}

	.panel ul.menu li{
		background:var(--oto-black);
		border-top:1px solid rgba(176,138,60,0.4);
	}

	.panel ul.menu li a{
		color:var(--oto-white) !important;
	}
}

/* =========================
TEXT LOGO
========================= */

.site_text_logo{
	display:inline-block;
	font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","HGS明朝E",serif;
	font-size:28px;
	font-weight:500;
	letter-spacing:0.16em;
	color:#111 !important;
	text-decoration:none;
	line-height:1;
	white-space:nowrap;
}

.site_text_logo:hover{
	color:#b08a3c !important;
	opacity:1;
}

.header_logo{
	display:flex;
	align-items:center;
}

@media only screen and (max-width:740px){
	.site_text_logo{
		font-size:20px;
		letter-spacing:0.1em;
	}
}

/* =========================
FOOTER TEXT LOGO
========================= */

.footer_logo_text{
	display:inline-block;
	font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","HGS明朝E",serif;
	font-size:42px;
	font-weight:500;
	letter-spacing:0.18em;
	color:#fff;
	text-decoration:none;
	line-height:1;
	white-space:nowrap;
}

.footer_logo_text:hover{
	color:#b08a3c;
}

@media only screen and (max-width:740px){

	.footer_logo_text{
		font-size:24px;
	}

}

/* =========================
GREEN REMOVE / OTO FINAL TONE
緑系排除・画像矢印CSS化
========================= */

/* 緑系カラー完全上書き */
a:hover,
a:active,
a.link:link,
a.link:visited,
a.link:hover,
.ttl_h2,
.flow li .ttl .step,
.faq li::after,
.news_details .date,
.news_menu .menu_blc ul li a:hover,
.pagination .current,
.pagination a.page-numbers:hover,
.concept h2,
.protection h2,
.company h2,
.recruit h2,
.contact_h2,
.flow_lead,
.flow_step_title,
.news_single_meta,
.index_contents ul li:nth-child(2) .index_h2{
	color:var(--oto-gold) !important;
}

/* 緑背景の排除 */
.pagination .current,
.pagination a.page-numbers:hover,
.protection_btn a:hover,
.recruit_nav a:hover,
.contact_btn:hover,
.thanks_btn:hover,
.formBt input:hover{
	background:var(--oto-gold) !important;
	color:var(--oto-black) !important;
}

/* 緑ボーダー排除 */
a.btn,
.contact_btn,
.thanks_btn,
.formBt input,
.protection_btn a,
.recruit_nav a,
.contact_h2,
.news_single_title,
.puppy_single_title h2{
	border-color:var(--oto-gold) !important;
}

/* フォームfocus */
.form_input input:focus,
.form_input textarea:focus{
	border-color:var(--oto-gold) !important;
}

/* 必須バッジも高級感寄せ */
.required,
table th span.req{
	background:var(--oto-gold) !important;
	color:var(--oto-black) !important;
}

/* ステータスバッジ */
.available-badge,
.negotiating-badge,
.sold-badge{
	background:var(--oto-black) !important;
	color:var(--oto-gold-light) !important;
}

/* 既存の矢印画像を無効化 */
a.btn span,
.index_news ul li .txt,
.news_contents ul li a .txt,
.news_menu .menu_blc ul li a,
.anc a.btn span,
.anc2 a.btn span,
.formBt input{
	background-image:none !important;
}

/* ボタン矢印をCSS化 */
a.btn span{
	position:relative;
}

a.btn span::after{
	content:"";
	position:absolute;
	top:50%;
	right:24px;
	width:10px;
	height:10px;
	border-top:2px solid currentColor;
	border-right:2px solid currentColor;
	transform:translateY(-50%) rotate(45deg);
}

/* News矢印CSS化 */
.index_news ul li .title,
.index_news ul li .txt,
.news_contents ul li a .txt{
	position:relative;
	background-image:none !important;
}

.index_news ul li .title::after,
.index_news ul li .txt::after,
.news_contents ul li a .txt::after{
	content:"";
	position:absolute;
	top:50%;
	right:10px;
	width:9px;
	height:9px;
	border-top:2px solid var(--oto-gold);
	border-right:2px solid var(--oto-gold);
	transform:translateY(-50%) rotate(45deg);
}

/* 固定お問い合わせ：画像アイコン削除 */
a.fix_btn span{
	background-image:none !important;
	padding:0 5px;
}

a.fix_btn::before{
	content:"✉";
	display:block;
	font-size:20px;
	line-height:1;
	margin-bottom:18px;
	color:var(--oto-gold-light);
	writing-mode:horizontal-tb;
}

/* page top 画像をCSS矢印化 */
#page_top a img{
	display:none !important;
}

#page_top a{
	position:relative;
	background:var(--oto-black);
	border:1px solid var(--oto-gold);
	box-sizing:border-box;
}

#page_top a::before{
	content:"";
	position:absolute;
	top:50%;
	left:50%;
	width:16px;
	height:16px;
	border-top:3px solid var(--oto-gold);
	border-left:3px solid var(--oto-gold);
	transform:translate(-50%,-30%) rotate(45deg);
}

/* 下層・各パーツの緑残り潰し */
.contact .tel,
.contact_mail a{
	border-color:var(--oto-gold) !important;
}

.contact_mail a{
	color:var(--oto-gold) !important;
}

.contact_mail a:hover{
	background:var(--oto-gold);
	color:var(--oto-black) !important;
}

/* company table */
.company_table th,
table.tbl th{
	background:var(--oto-black) !important;
	color:var(--oto-gold-light) !important;
}

.company_table td,
table.tbl td{
	border-color:rgba(176,138,60,0.25) !important;
}

/* フッターコピー */
.copy{
	color:#fff !important;
	letter-spacing:0.12em;
}

.footer_logo_text{
	color:#fff !important;
}

.footer_logo_text:hover{
	color:var(--oto-gold) !important;
}

/* =========================
TOP Company / Recruit CSS Icon
========================= */

.index_contents_icon{
	position:relative;
	display:block;
	width:76px;
	height:76px;
	margin:35px auto 0;
	color:var(--oto-gold);
}

.icon_company{
	position:relative;
	width:70px;
	height:70px;
	margin:35px auto 0;
}

.icon_company::before{
	content:"";
	position:absolute;
	top:50%;
	left:50%;
	width:46px;
	height:46px;
	transform:translate(-50%,-50%) rotate(45deg);
	border:2px solid var(--oto-gold);
}

.icon_company::after{
	content:"";
	position:absolute;
	top:50%;
	left:50%;
	width:18px;
	height:18px;
	transform:translate(-50%,-50%);
	background:var(--oto-gold);
}
.icon_recruit{
	position:relative;
	width:70px;
	height:70px;
	margin:35px auto 0;
}

.icon_recruit::before{
	content:"";
	position:absolute;
	top:10px;
	left:50%;
	width:20px;
	height:20px;
	transform:translateX(-50%);
	border-radius:50%;
	background:var(--oto-gold);
}

.icon_recruit::after{
	content:"";
	position:absolute;
	top:34px;
	left:50%;
	width:34px;
	height:24px;
	transform:translateX(-50%);
	border:2px solid var(--oto-gold);
	border-top-left-radius:20px;
	border-top-right-radius:20px;
	border-bottom:none;
}

/* =========================
固定お問い合わせボタン 文字化け修正
========================= */

a.fix_btn{
	width:70px;
	padding:30px 0;
	text-align:center;
	letter-spacing:0.12em;
}

a.fix_btn::before{
	content:"";
	display:block;
	width:22px;
	height:15px;
	margin:0 auto 18px;
	border:2px solid var(--oto-gold);
	box-sizing:border-box;
	background:
		linear-gradient(135deg, transparent 47%, var(--oto-gold) 49%, var(--oto-gold) 51%, transparent 53%),
		linear-gradient(45deg, transparent 47%, var(--oto-gold) 49%, var(--oto-gold) 51%, transparent 53%);
}

a.fix_btn span{
	background-image:none !important;
	padding:0;
	color:var(--oto-gold);
	font-size:15px;
	line-height:1.8;
}

/* =========================
TOP キャッチコピー
========================= */

.front_catch{
	text-align:center;
}

.front_catch h1{
	color:#fff;
	font-size:56px;
	font-weight:400;
	letter-spacing:0.12em;
	margin-bottom:25px;
	font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;
}

.front_company_name{
	color:var(--oto-gold-light);
	font-size:22px;
	letter-spacing:0.35em;
	font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;
	margin:0;
}

@media only screen and (max-width:740px){

	.front_catch h1{
		font-size:28px;
	}

	.front_company_name{
		font-size:14px;
		letter-spacing:0.15em;
	}

}

/* =========================
Puppy一覧 リード文
========================= */

.puppy_intro{
    max-width:900px;
    margin:0 auto 80px;
}

.puppy_intro h2{
    margin-bottom:25px;
}

.puppy_intro h2 span{
    color:var(--oto-gold);
    font-size:28px;
    font-weight:600;
    line-height:1.8;
}

.puppy_intro p{
    color:#222;
    font-size:15px;
    line-height:2;
    margin-bottom:40px;
}

/* ===== TOP Puppy ===== */

.top_puppy_item{
    max-width:520px;
    margin:0 auto;
    text-align:center;
}

.top_puppy_item a{
    display:block;
    text-decoration:none;
    color:inherit;
}

.top_puppy_item img{
    width:100%;
    height:360px;
    object-fit:cover;
    display:block;
    border-radius:8px;
    box-shadow:0 15px 40px rgba(0,0,0,.12);
}

.top_puppy_item p{
    margin-top:25px;
    font-size:18px;
    line-height:2;
    color:#111;
    letter-spacing:.08em;
}

/* =========================
Puppy 犬種ホバー一覧
========================= */

.puppy_breed_area{
    display:flex;
    gap:80px;
    align-items:center;
    margin-top:70px;
}

.puppy_breed_visual{
    width:62%;
    height:420px;
    position:relative;
}

.breed_slider{
    position:absolute;
    inset:0;
    opacity:0;
    pointer-events:none;
    transition:0.4s;
}

.breed_slider.active{
    opacity:1;
    pointer-events:auto;
}

.breed_slider img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:0;
    transition:0.8s;
    border-radius:4px;
    box-shadow:0 18px 45px rgba(0,0,0,0.14);
}

.breed_slider img.active{
    opacity:1;
}

.breed_no_image{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f5f2ec;
    color:var(--oto-gold);
    border:1px solid rgba(176,138,60,0.4);
    font-size:20px;
    letter-spacing:0.15em;
}

.puppy_breed_nav{
    width:38%;
}

.puppy_breed_nav h2{
    font-size:42px;
    color:var(--oto-black);
    margin-bottom:35px;
    letter-spacing:0.12em;
}

.puppy_breed_nav ul{
    margin:0;
    padding:0;
}

.puppy_breed_nav li{
    list-style:none;
    border-bottom:1px solid rgba(176,138,60,0.45);
}

.puppy_breed_nav button{
    width:100%;
    padding:22px 40px 22px 0;
    background:none;
    border:none;
    text-align:left;
    color:var(--oto-black);
    font-size:18px;
    letter-spacing:0.12em;
    cursor:pointer;
    position:relative;
    font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;
}

.puppy_breed_nav button::after{
    content:"";
    position:absolute;
    top:50%;
    right:8px;
    width:10px;
    height:10px;
    border-top:2px solid var(--oto-gold);
    border-right:2px solid var(--oto-gold);
    transform:translateY(-50%) rotate(45deg);
}

.puppy_breed_nav button:hover,
.puppy_breed_nav button.active{
    color:var(--oto-gold);
}

@media only screen and (max-width:740px){
    .puppy_breed_area{
        display:block;
        margin-top:40px;
    }

    .puppy_breed_visual{
        width:100%;
        height:260px;
        margin-bottom:40px;
    }

    .puppy_breed_nav{
        width:100%;
    }

    .puppy_breed_nav h2{
        font-size:30px;
    }

    .puppy_breed_nav button{
        font-size:16px;
        padding:18px 35px 18px 0;
    }
}

/* =========================
Puppy Archive Breed Area
========================= */

.puppy_breed_area{
	display:flex;
	align-items:center;
	gap:80px;
	margin:70px 0 90px;
}

.puppy_breed_img{
	width:55%;
}

.puppy_breed_img img{
	width:100%;
	height:360px;
	object-fit:cover;
	display:block;
	box-shadow:0 15px 40px rgba(0,0,0,0.12);
}

.puppy_breed_nav{
	width:35%;
}

.puppy_breed_nav h2{
	font-size:42px;
	margin-bottom:35px;
	color:#111;
}

.puppy_breed_nav ul li{
	border-bottom:1px solid rgba(176,138,60,0.45);
}

.puppy_breed_nav ul li a{
	display:block;
	position:relative;
	padding:20px 45px 20px 0;
	color:#111;
	font-size:18px;
	letter-spacing:0.12em;
}

.puppy_breed_nav ul li a::after{
	content:"";
	position:absolute;
	right:10px;
	top:50%;
	width:10px;
	height:10px;
	border-top:2px solid #b08a3c;
	border-right:2px solid #b08a3c;
	transform:translateY(-50%) rotate(45deg);
}

.puppy_breed_nav ul li a:hover{
	color:#b08a3c;
}

@media only screen and (max-width:740px){
	.puppy_breed_area{
		display:block;
		margin:40px 0 60px;
	}

	.puppy_breed_img,
	.puppy_breed_nav{
		width:100%;
	}

	.puppy_breed_img img{
		height:240px;
	}

	.puppy_breed_nav{
		margin-top:35px;
	}

	.puppy_breed_nav h2{
		font-size:30px;
	}
}

/* =========================
Puppy 犬種ページ 表示統一
========================= */

.puppy_archive_list{
    padding:0 !important;
}

.puppy_archive_list .contents{
    width:1080px !important;
    max-width:1080px !important;
    margin:0 auto !important;
    padding:0 !important;
    box-sizing:content-box !important;
}

.puppy_archive_list ul{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:30px 60px !important;
    margin:0 !important;
    padding:0 !important;
}

.puppy_archive_list ul li{
    float:none !important;
    width:300px !important;
    margin:0 !important;
    list-style:none !important;
}

.puppy_archive_list ul li figure{
    width:100% !important;
    height:0 !important;
    padding-bottom:76.4% !important;
    overflow:hidden !important;
    position:relative !important;
    margin-bottom:15px !important;
    border-radius:4px !important;
}

.puppy_archive_list ul li figure img{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
}

.puppy_archive_list ul li p{
    font-size:15px;
    line-height:2;
    letter-spacing:0.08em;
}

@media only screen and (max-width:740px){
    .puppy_archive_list .contents{
        width:100% !important;
        max-width:100% !important;
    }

    .puppy_archive_list ul{
        display:block !important;
    }

    .puppy_archive_list ul li{
        width:84% !important;
        margin:40px auto 0 !important;
    }
}

.protection_item h3{
    color:#b08a3c !important;
    font-size:30px;
    font-weight:700;
    margin-bottom:20px;
}

.protection_item{
    margin-top:70px;
    padding-top:50px;
}

.protection_item:first-of-type{
    margin-top:60px;
}

.protection_item{
    margin-top:70px;
    padding-top:0;
}

@media only screen and (max-width:740px){

  .protection_item h3{
      font-size:22px !important;
      line-height:1.6 !important;
      margin-bottom:18px !important;
  }

  .protection_item p{
      font-size:14px !important;
      line-height:2 !important;
      margin-bottom:20px !important;
  }

}

.protection_item p{
    font-size:15px;
    line-height:2;
    margin-bottom:40px;
}

.company_table th{
    white-space: nowrap;
}

.company_table td{
    line-height: 2;
}

/* =========================
Recruit button color fix
========================= */

.recruit_nav a{
	color: var(--oto-gold) !important;
	border-color: var(--oto-gold) !important;
}

.recruit_nav a:hover{
	background: var(--oto-gold) !important;
	color: var(--oto-black) !important;
}

/* =========================
SP UI FIX
========================= */
@media only screen and (max-width:740px){

  header{
    height:70px;
  }

  header .contents{
    height:70px;
    padding:0 15px;
  }

  .site_text_logo{
    font-size:20px !important;
    letter-spacing:0.08em;
    max-width:230px;
    overflow:hidden;
    white-space:nowrap;
  }

  .sp_btn{
    top:12px;
    right:15px;
    width:46px;
    height:46px;
    background:var(--oto-black) !important;
    border:1px solid var(--oto-gold);
  }

  a.fix_btn{
    top:82px;
    right:0;
    width:58px;
    padding:18px 0;
    font-size:13px;
    z-index:999;
  }

  .main{
    margin-top:70px;
    padding:45px 0 55px;
    background-size:auto 100%;
  }

  .main h1{
    font-size:34px;
    line-height:1.25;
  }

  .main h1 span{
    font-size:15px;
  }

  .contents{
    width:auto !important;
    max-width:none !important;
    padding:0 22px !important;
    box-sizing:border-box !important;
  }

  .blc{
    padding:55px 0;
  }

  .company_table{
    border-spacing:0 12px;
  }

  .company_table th,
  .company_table td{
    display:block;
    width:100% !important;
    box-sizing:border-box;
  }

  .company_table th{
    border-radius:6px 6px 0 0;
    padding:14px 12px;
  }

  .company_table td{
    border-left:1px solid rgba(176,138,60,0.25) !important;
    border-radius:0 0 6px 6px;
    padding:16px;
    word-break:break-all;
  }

  .form_row{
    display:block;
    padding:20px 0;
  }

  .form_label{
    width:100%;
    margin-bottom:10px;
  }

  .radio_group{
    display:block;
  }

  .radio_item{
    display:block;
    margin:10px 0;
  }

  .form_input input,
  .form_input textarea{
    font-size:16px;
  }

  .contact_btn{
    width:100%;
  }
}

/* =========================
TOP Puppy SP FIX
========================= */
@media only screen and (max-width:740px){

  .index_main,
  .index_puppy,
  .index_concept,
  .index_news,
  .index_contents{
    min-width:0 !important;
    width:100% !important;
    overflow:hidden;
  }

  .index_puppy .contents{
    width:100% !important;
    max-width:100% !important;
    padding:0 22px !important;
    box-sizing:border-box !important;
  }

  .top_puppy_item{
    width:100% !important;
    max-width:100% !important;
  }

  .top_puppy_item img{
    width:100% !important;
    height:240px !important;
    object-fit:cover;
  }

  .top_puppy_item p{
    font-size:15px;
    line-height:1.8;
  }

  .index_puppy .btn{
    width:100% !important;
  }
}

/* =========================
SP MENU UI FIX
========================= */
@media only screen and (max-width:740px){

  .panel{
    position:fixed;
    top:70px;
    left:0;
    right:0;
    width:100%;
    background:var(--oto-black);
    z-index:998;
    padding:25px 22px 35px;
    box-sizing:border-box;
  }

  .panel ul.menu{
    display:block !important;
    transform:none !important;
    margin:0 !important;
    padding:0 !important;
  }

  .panel ul.menu li{
    display:block !important;
    width:100% !important;
    float:none !important;
    border-bottom:1px solid rgba(176,138,60,0.45);
    text-align:left;
    line-height:1.5 !important;
  }

  .panel ul.menu li a{
    display:block !important;
    padding:16px 0 !important;
    color:#fff !important;
    font-size:15px !important;
    letter-spacing:0.08em !important;
    writing-mode:horizontal-tb !important;
    text-orientation:mixed !important;
    white-space:normal !important;
    transform:none !important;
  }

  .panel ul.menu li a:hover{
    color:var(--oto-gold) !important;
  }

}

@media only screen and (max-width:740px){

  .panel{
    max-height:calc(100vh - 70px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }

  .panel ul.menu{
    padding-bottom:80px !important;
  }

}

/* =========================
SP MENU SCROLL FIX 最終
========================= */
@media only screen and (max-width:740px){

  .panel{
    position:fixed !important;
    top:70px !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    height:auto !important;
    max-height:none !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
  }

  .panel ul.menu{
    display:block !important;
    padding-bottom:120px !important;
  }

  .panel ul.menu li{
    display:block !important;
    width:100% !important;
  }

}

/* =========================
固定お問い合わせボタン調整
========================= */

a.fix_btn{
  width:72px;
  height:auto;
  top:210px;
  right:0;
  padding:26px 0 24px;
  background:#111;
  border:1px solid #b08a3c;
  border-right:none;
  color:#d6bd7f !important;
  letter-spacing:0.12em;
  text-align:center;
  box-sizing:border-box;
  writing-mode:vertical-rl;
  z-index:999;
}

a.fix_btn span{
  display:block;
  padding:0;
  background:none !important;
  font-size:15px;
  line-height:1.9;
  color:#d6bd7f !important;
}

a.fix_btn::before{
  content:"";
  display:block;
  width:24px;
  height:16px;
  margin:0 auto 18px;
  border:2px solid #b08a3c;
  box-sizing:border-box;
  background:
    linear-gradient(135deg, transparent 47%, #b08a3c 49%, #b08a3c 51%, transparent 53%),
    linear-gradient(45deg, transparent 47%, #b08a3c 49%, #b08a3c 51%, transparent 53%);
}

a.fix_btn:hover{
  background:#0f1b2d;
  color:#fff !important;
  opacity:1;
}

/* スマホでは非表示 */
@media only screen and (max-width:740px){
  a.fix_btn{
    display:none !important;
  }
}

/* =========================
SP contact menu only
========================= */

header .panel ul.menu li.sp_contact{
	display:none !important;
	visibility:hidden !important;
	width:0 !important;
	height:0 !important;
	margin:0 !important;
	padding:0 !important;
	overflow:hidden !important;
}

@media only screen and (max-width:740px){
	header .panel ul.menu li.sp_contact{
		display:block !important;
		visibility:visible !important;
		width:100% !important;
		height:auto !important;
		margin:0 !important;
		padding:0 !important;
		overflow:visible !important;
	}
}

/* =========================
SP 下層ページ共通MV修正
========================= */
@media only screen and (max-width:740px){

  .main{
    margin-top:70px !important;
    padding:35px 0 40px !important;
    min-height:120px !important;
    background-color:#111 !important;
    background-image:none !important;
    display:flex;
    align-items:center;
    box-sizing:border-box;
  }

  .main .contents{
    width:100% !important;
    padding:0 20px !important;
    box-sizing:border-box !important;
  }

  .main h1{
    color:#fff !important;
    font-size:30px !important;
    line-height:1.2 !important;
    letter-spacing:0.08em !important;
    word-break:normal;
  }

  .main h1 span{
    display:block;
    color:#b08a3c !important;
    font-size:13px !important;
    margin-top:6px;
    letter-spacing:0.12em;
  }

}

/* =========================
Concept SP修正
========================= */
@media only screen and (max-width:740px){

  .concept h2{
    font-size:26px !important;
    line-height:1.8 !important;
    margin-bottom:28px !important;
    color:#b08a3c !important;
  }

  .concept h2 span{
    display:block;
  }

  .concept p{
    font-size:15px !important;
    line-height:2.1 !important;
    margin-bottom:40px !important;
  }

  .concept_img{
    display:block !important;
    margin:0 !important;
    padding:0 !important;
  }

  .concept_img li{
    width:100% !important;
    margin:0 0 28px !important;
    list-style:none !important;
  }

  .concept_img li:last-child{
    margin-bottom:0 !important;
  }

  .concept_img li img{
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    object-fit:contain !important;
    display:block !important;
    border-radius:8px !important;
  }

}

/* =========================
SP 全体コンパクト化
========================= */
@media only screen and (max-width:740px){

  body{
    font-size:14px;
    line-height:1.8;
  }

  .blc{
    padding:35px 0 !important;
  }

  .contents{
    padding:0 18px !important;
  }

  /* 下層タイトル */
  .main h1{
    font-size:28px !important;
  }

  .main h1 span{
    font-size:12px !important;
  }

  /* 見出し */
  .concept h2,
  .protection h2,
  .company h2,
  .recruit h2,
  .contact_h2{
    font-size:22px !important;
    line-height:1.6 !important;
    margin-bottom:18px !important;
  }

  /* 本文 */
  .concept p,
  .protection p,
  .page_content p{
    font-size:14px !important;
    line-height:2 !important;
    margin-bottom:20px !important;
  }

  /* ボタン */
  a.btn{
    line-height:52px !important;
    font-size:14px !important;
  }

}

@media only screen and (max-width:740px){

  .puppy_intro h2 span{
    font-size:18px !important;
    line-height:1.8 !important;
  }

}

/* =========================
single puppy SP image fix
========================= */
@media only screen and (max-width:740px){

  .puppy_slider{
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    margin:25px auto 30px !important;
    border-radius:0 !important;
    overflow:visible !important;
  }

  .puppy_slider img,
  #puppy_slide_img{
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    object-fit:contain !important;
    position:static !important;
    transform:none !important;
    border-radius:6px !important;
    display:block !important;
  }

  .slide_btn{
    top:50% !important;
    transform:translateY(-50%) !important;
    font-size:34px !important;
    z-index:5 !important;
  }

  .prev{
    left:8px !important;
  }

  .next{
    right:8px !important;
  }

  .slide_dots{
    margin-top:12px !important;
  }

}

@media only screen and (max-width:740px){

  .company_table td{
    font-size:14px;
    line-height:1.9;
  }

}

/* =========================
Company SP 改行修正
========================= */
@media only screen and (max-width:740px){

  .company_table td{
    font-size:14px !important;
    line-height:1.9 !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    white-space:normal !important;
  }

  .company_table td br{
    display:block;
  }

  /* 登録番号だけ途中改行しない */
  .company_table tr:nth-child(5) td{
    font-size:13px !important;
    line-height:1.9 !important;
    white-space:nowrap !important;
    overflow-x:auto !important;
  }

}

/* =========================
TOP 3リンク 改行・文字調整
========================= */

.front_link_txt{
    width:100%;
    padding:0 24px;
    box-sizing:border-box;
    text-align:center;
}

.front_link_txt h3{
    font-size:28px;
    line-height:1.5;
    margin-bottom:16px;
    letter-spacing:0.08em;
}

.front_link_txt p{
    max-width:420px;
    margin:0 auto;
    font-size:16px;
    line-height:1.8;
    letter-spacing:0.06em;
    text-wrap:balance;
}

/* スマホ */
@media only screen and (max-width:740px){

    .front_link_txt{
        padding:0 20px;
    }

    .front_link_txt h3{
        font-size:22px;
        line-height:1.45;
        margin-bottom:10px;
    }

    .front_link_txt p{
        max-width:280px;
        font-size:14px;
        line-height:1.7;
        letter-spacing:0.04em;
    }

}

/* =========================
全ページ共通：文章の自動整形
PC/SPで読みやすくする
========================= */

/* 下層ページの本文全体 */
.page_content,
.concept,
.protection,
.flow,
.faq,
.company,
.recruit,
.contact,
.news_single_content,
.front_link_txt,
.front_concept_txt{
    line-height:2;
    word-break:normal;
    overflow-wrap:break-word;
}

/* 見出し */
.page_content h2,
.concept h2,
.protection h2,
.protection_item h3,
.flow_lead,
.flow_step_title,
.faq_page_lead,
.company h2,
.recruit h2,
.contact_h2{
    line-height:1.7;
    word-break:keep-all;
    overflow-wrap:break-word;
}

/* 説明文 */
.page_content p,
.concept p,
.protection p,
.protection_item p,
.flow_txt,
.flow_step_txt,
.faq p,
.company p,
.recruit p,
.contact_txt,
.news_single_content p{
    line-height:2;
    word-break:keep-all;
    overflow-wrap:break-word;
}

/* スマホ版：全体的にコンパクト化 */
@media only screen and (max-width:740px){

    .page_content,
    .concept,
    .protection,
    .flow,
    .faq,
    .company,
    .recruit,
    .contact{
        font-size:14px;
        line-height:1.9;
    }

    .page_content h2,
    .concept h2,
    .protection h2,
    .protection_item h3,
    .flow_lead,
    .flow_step_title,
    .company h2,
    .recruit h2,
    .contact_h2{
        font-size:22px !important;
        line-height:1.65 !important;
        margin-bottom:18px !important;
        word-break:keep-all;
        overflow-wrap:break-word;
    }

    .page_content p,
    .concept p,
    .protection p,
    .protection_item p,
    .flow_txt,
    .flow_step_txt,
    .faq p,
    .company p,
    .recruit p,
    .contact_txt,
    .news_single_content p{
        font-size:14px !important;
        line-height:1.9 !important;
        letter-spacing:0.04em;
        word-break:keep-all;
        overflow-wrap:break-word;
    }

}