@charset "utf-8";

/* common.css */

/**********************************************
	common settings
***********************************************/
html,
body {
  width: 100%;
  height: 100%;
}

body {
  font-family: "Zen Maru Gothic", serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 1.5px;
  color: #2D344A;
  background: #fff;
  position: relative;
}
@media screen and (min-width: 520px) {
  body {
    font-size: 15px;
  }
}
@media screen and (min-width: 960px) {
  body {
    font-size: 16px;
  }
}

p {
  text-align: justify;
}

a {
  color: #000;
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

a:focus {
  outline: none;
}

img {
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

input:focus,
select:focus,
textarea:focus {
  outline: none;
}

/**********************************************
	display: block / none
***********************************************/
.tab {
  display: none !important;
}
.pc {
  display: none !important;
}
.sp {
  display: block !important;
}

@media screen and (min-width: 520px) {
  .sp {
    display: none !important;
  }
  .pc {
    display: none !important;
  }
  .tab {
    display: block !important;
  }
}

@media screen and (min-width: 960px) {
  .sp {
    display: none !important;
  }
  .tab {
    display: none !important;
  }
  .pc {
    display: block !important;
  }
}

/**********************************************
	clearfix
***********************************************/
.cf::after {
  content: "";
  display: block;
  clear: both;
}

/**********************************************
	header
***********************************************/
.header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 999;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100px;
  position: relative;
  background-color: rgba(255,255,255,.9);
  padding: 0 20px;
}
@media screen and (min-width: 960px) {
	.header-inner {
		padding: 0px;
		background-color: rgba(255,255,255,0);
	}
}
@media screen and (min-width: 1400px) {
	.header-inner {
	}
}

.header-title {
  width: 138px;
}
@media screen and (min-width: 960px) {
  .header-title {
    width: 200px;
	background-color: rgba(255,255,255,0);
	margin-left: 5%;
  }
}
@media screen and (min-width: 1400px) {
  .header-title {
    width: 286px;
  }
}

.header-title img {
  display: block;
  width: 100%;
  height: 100%;
}

/* ヘッダーのナビ部分 */
.header-nav {
  position: absolute;
  right: 0;
  left: 0;
  top: 0;
  width: 100%;
  height: 100vh;
  transform: translateX(100%);
  background-color: #fff;
  transition: ease .4s;
}
@media screen and (min-width: 960px) {
  .header-nav {
	z-index: 999;
    transform: initial;
    height: inherit;
    display: flex;
    justify-content: end;
	background-color: rgba(255, 255, 255, .8);
	border-radius: 0 0 0 50px;
    margin: 0 0 0 auto;
	width: calc(1325 / 1920 * 100%);
  }
}


.nav-items {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
}

@media screen and (min-width: 960px) {
  .nav-items {
	position: unset;
	transform: translate(0%, 0%);
    width: 100%;
    display: flex;
    align-items: center;
    height: initial;
    justify-content: space-between;
	padding-top: inherit;
    padding-bottom: inherit;
	padding: 0 2%;
  }
}
@media screen and (min-width: 1400px) {
	.nav-items {
		padding: 0 5%;
	}
}

/* ナビのリンク */
.nav-items-item a {
  color: #2d344a;
  width: 100%;
  text-align: center;
  font-size: 20px;
  margin-bottom: 30px;
  display: flex;
	transition: transform 0.3s ease;
}
.nav-items-item a:hover {
	transform: translateY(-5px);
}
@media screen and (min-width: 960px) {
  .nav-items-item a {
    margin-bottom: 0;
  }
}
.nav-items-item:last-child a {
  margin-bottom: 0;
}

.nav-items-img {
	width: 35px;
	margin-right: 10px;
}

.nav-items-text {
	display: block;
}

.nav-items-text > span {
	display: flex;
}

.nav-items-text > span:nth-child(1) {
	font-size: clamp(13px, calc(16 / 1980 * 100vw), 18px);
}

.nav-items-text > span:nth-child(2) {
	color: #AEE6F9;
	font-size: clamp(10px, calc(12 / 1980 * 100vw), 12px);
}

.nav-items-item-button {
	display: none;
}
@media screen and (min-width: 960px) {
	.nav-items-item-button {
		display: block;
		width: 60px;
		height: 60px;
		border: 1px solid #2d344a;
		border-radius: 50%;
		position: relative;
	}
}
.nav-items-img-btn {
	display: none;
}
@media screen and (min-width: 960px) {
	.nav-items-img-btn {
		height: 30px;
		width: auto;
		display: block;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}
}

/* ハンバーガーメニュー */
.header-hamburger {
  width: 48px;
  height: 100%;
}

.hamburger {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0);
	border: 1px solid #2d344a;
	z-index: 9999;
}
@media screen and (min-width: 960px) {
  .hamburger {
    display: none;
  }
}

/* ハンバーガーメニューの線 */
.hamburger span {
	width: 70%;
	height: 1px;
	background-color: #2d344a;
	position: relative;
	transition: ease .4s;
	display: block;
	padding: inherit;
	margin: 0 auto;
}

.hamburger span:nth-child(1) {
  top: 0;
}

.hamburger span:nth-child(2) {
  margin-top: 8px;
	margin-bottom: 8px;
}

.hamburger span:nth-child(3) {
  top: 0;
}

/* ハンバーガーメニュークリック後のスタイル */
.header-nav.active {
  transform: translateX(0);
}

.hamburger.active span:nth-child(1) {
  top: 10px;
  transform: rotate(45deg);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;

}

.hamburger.active span:nth-child(3) {
  top: -10px;
  transform: rotate(-45deg);
}

/**********************************************
    $footer
***********************************************/
.footer {
	background-color: #fff;
	text-align: center;
}
.footer-inner {
	width: calc( 330 / 375 * 100%);
	margin: 0 auto;
}
@media screen and (min-width: 960px) {
	.footer-inner {
		width: calc( 1140 / 1920 * 100%);
	}
}
.reserve-content {
	display: block;
	justify-content: center;
	gap: 20px;
	padding: 20px;
}
@media screen and (min-width: 960px) {
	.reserve-content {
		display: flex;
		padding: 0px;
		padding-top: 100px;
	}
}
.reserve-content > a {
	display: flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
	font-size: 18px;
	border-radius: 5px;
	padding: 20px 0px;
}
@media screen and (min-width: 960px) {
	.reserve-content a {
		display: flex;
		width: 500px;
		height: 115px;
	}
}
.line-reserve {
	background-color: #6FCF97;
	color: #ffffff;
	margin-bottom: 20px;
	transition: transform 0.3s ease;
}
.line-reserve:hover {
	transform: translateY(-5px);
}
@media screen and (min-width: 960px) {
	.link-content {
		display: flex;
		justify-content: space-between;
		gap: 20px;
		padding: 50px 0px;
	}
}

.line-img,
.call-img {
	width: 45px;
	height: auto;
	vertical-align: middle;
	margin-right: 10px;
}
.call {
	background-color: #ffffff;
	color: #2D344A;
	border: 2px solid #6FCF97;
	transition: transform 0.3s ease;
}
.call:hover {
	transform: translateY(-5px);
}
.logo {
	margin: 0 auto;
    margin-top: 50px;
	width: 260px;
	height: auto;
	text-align: center;
}
@media screen and (min-width: 960px) {
	.logo{
		aspect-ratio: 341 / 92;
        height: 92px;
        width: auto;
	}
	.logo > img {
		width: 100%;
    	height: 100%;
	}
}

.footer-links {
	width: calc( 175 / 375 * 100%);
	padding: 50px 0px;
	margin: 0 auto;
}
@media screen and (min-width: 960px) {
	.footer-links {
		margin: 0;
	}
}
@media screen and (min-width: 960px) {
	.footer-links-content {
		display: grid;
		/*justify-content: space-between;*/
		grid-auto-flow: column;
		grid-template-rows: repeat(3, auto);
		gap: 50px;
	}
}
.footer-links-content a {
	display: flex;
    margin-bottom: 40px;
    align-items: center;
    gap: 10px;
	transition: transform 0.3s ease;
}
.footer-links-content a:hover {
	transform: translateY(-5px);
}
@media screen and (min-width: 960px) {
	.footer-links-content a {
		justify-content: unset;
		align-items: center;
		gap: 10px;
		
	}
}
.footer-items-img {
	width: 40px;
	height: auto;
	margin-right: 10px;
}

.footer-items-text > span {
	display: block;
	text-align: left;
}
.footer-items-text > span:nth-child(1) {
	font-size: clamp(14px, calc(15 / 1980 * 100vw), 16px);
}

.footer-items-text > span:nth-child(2) {
	color: #AEE6F9;
	font-size: clamp(10px, calc(12 / 1980 * 100vw), 12px);
}

.copy-light > p {
	display: block;
	text-align: center;
	font-size: 12px;
	padding: 10px 0px;
}

/**********************************************
    $link button
***********************************************/
.button-container {
	text-align: center;
	margin: 50px 0px;
}
.button {
	display: inline-block;
	background: #329CC0;
	color: #fff;
	padding: 15px 35px;
	border-radius: 80px;
	text-decoration: none;
	font-size: 16px;
	letter-spacing: 4px;
	cursor: pointer;
  	transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
}
.button:hover {
  transform: translateY(-5px);
}
/**********************************************
    $subpage title
***********************************************/

/**********************************************
	$breadcrumb list
***********************************************/

/**********************************************
	その他
***********************************************/
body{
	display: none;
}
/*右下予約ボタン*/
.fixed-square {
	position: fixed;
	bottom: 0px;
	right: 0px;
	width: 80px;
	height: 80px;
	background-color: #6FCF97;
	border-radius: 15px 0 0 0;
	text-align: center;
	padding: 10px 0;
	z-index: 10;
}
@media screen and (min-width: 960px) {
	.fixed-square {
		width: 120px;
		height: 120px;
		padding: 25px 0;
	}
}
.fixed-square > img {
	width: 40px;
	height: auto;
	display: block;
	margin: 0 auto;
	margin-bottom: 5px;
}
@media screen and (min-width: 960px) {
	.fixed-square > img {
		width: 50px;
	}
}
.fixed-square > span {
	color: #fff;
	font-size: 13px;
	text-align: center;
}
@media screen and (min-width: 960px) {
	.fixed-square > span {
		font-size: 15px;
	}
}

/*下層ページタイトル*/
.kasou-ttl {
	background-color: #EBFAFF;
	height: calc( 600 / 1080 * 100%);
	padding-top: 100px;
	position: relative;
}
.kasou-ttl-inner {
	/*width: calc( 114 / 375 * 100%);*/
	position: absolute;
	  top: 50%;
	  left: 50%;
	  transform: translate(-50%, -50%);
}
.kasou-ttl-inner > p,
.kasou-ttl-inner > h2 {
	text-align: center;
}
.kasou-ttl-inner > p {
	color: #F2A65A;
	font-size: 14px;
	font-weight: 500;
}
.kasou-ttl-inner > h2 {
	font-size: 28px;
	padding-bottom: 10px;
    border-bottom: 2px solid #F2A65A;
}
/**********************************************
	診療時間
***********************************************/
.home-medical-hours {
	background-color: #ffffff;
	border-radius: 8px;
	padding: 40px 0px;
	margin-bottom: 100px;
}
@media (min-width: 960px) {
	.home-medical-hours {
		margin-bottom: 150px;
		padding: 60px 0px 40px 0px;
	}
}

.home-sec-ttl {
	width: fit-content;
	margin: 0 auto 50px;
	text-align: center;
	font-size: 22px;
	margin-bottom: 50px;
	position: relative;
	z-index: 2;
	line-height: 1.5;
    letter-spacing: 1.5px;
}

.home-sec-ttl::before {
	content: "";
    display: inline-block;
   	width: 50px;
	aspect-ratio:  97 / 106;
    background: url("../img/paws_orange.png") no-repeat;
    background-size: 100% 100%;
	position: absolute;
	left: -35px;
	top: -30%;
	z-index: -1;
}

.medical-hours-table {
	display: grid;
    grid-template-columns: 4em 1fr 1fr;
    grid-template-rows: 3em 5em 5em 5em 5em 5em 5em;
    place-items: center;
    width: 82.4%;
    margin: 0 auto 30px;
}
@media screen and (min-width: 960px) {
    .medical-hours-table {
        grid-template-columns: 9em 1fr 1fr 1fr 1fr 1fr 1fr;
        grid-template-rows: 4em 6em 6em;
    }
}
.medical-hours-table > p {
	width: 100%;
    height: 100%;
    display: grid;
    justify-items: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    position: relative;
	font-size: 13px;
}
@media screen and (min-width: 960px) {
	.medical-hours-table > p {
		font-size: 18px;
	}
}
.table-blank {
	grid-column: 1;
    grid-row: 1;
	background-color: #DFF7FF
}
.time1 {
    grid-column: 2;
    grid-row: 1;
    border-left: 1px solid #AEE6F9;
    border-right: 1px solid #AEE6F9;
	background-color: #DFF7FF;
}
@media screen and (min-width: 960px) {
	.time1 {
		grid-column: 1;
		grid-row: 2;
		border: none;
		border-top: 1px solid #AEE6F9;
		border-bottom: 1px dotted #AEE6F9;
		background-color: #fff;
	}
}
.time2 {
    grid-column: 3;
    grid-row: 1;
	background-color: #DFF7FF
}
@media screen and (min-width: 960px) {
    .time2 {
        grid-column: 1;
        grid-row: 3;
        border: none;
		background-color: #fff;
    }
}
.mon {
    grid-column: 1;
    grid-row: 2;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .mon {
        grid-column: 2;
        grid-row: 1;
        border: none;
        border-left: 1px solid #AEE6F9;
		background-color: #DFF7FF;
    }
}
.tue {
    grid-column: 1;
    grid-row: 3;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .tue {
        grid-column: 3;
        grid-row: 1;
        border: none;
        border-left: 1px solid #AEE6F9;
		background-color: #DFF7FF;
    }
}
.wed {
    grid-column: 1;
    grid-row: 4;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .wed {
        grid-column: 4;
        grid-row: 1;
        border: none;
        border-left: 1px solid #AEE6F9;
		background-color: #DFF7FF;
    }
}
.thu {
    grid-column: 1;
    grid-row: 5;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .thu {
        grid-column: 5;
        grid-row: 1;
        border: none;
        border-left: 1px solid #AEE6F9;
		background-color: #DFF7FF;
    }
}
.fri {
    grid-column: 1;
    grid-row: 6;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .fri {
        grid-column: 6;
        grid-row: 1;
        border: none;
        border-left: 1px solid #AEE6F9;
		background-color: #DFF7FF;
    }
}
.sat {
    grid-column: 1;
    grid-row: 7;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .sat {
        grid-column: 7;
        grid-row: 1;
        border: none;
        border-left: 1px solid #AEE6F9;
		background-color: #DFF7FF;
    }
}
.mon-time1 {
    grid-column: 2;
    grid-row: 2;
    border-left: 1px solid #AEE6F9;
    border-right: 1px solid #AEE6F9;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .mon-time1 {
        grid-column: 2;
        grid-row: 2;
        border: none;
        border-top: 1px solid #AEE6F9;
        border-bottom: 1px dotted #AEE6F9;
        border-left: 1px solid #AEE6F9;
    }
}
.tue-time1 {
    grid-column: 2;
    grid-row: 3;
    border-left: 1px solid #AEE6F9;
    border-right: 1px solid #AEE6F9;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .tue-time1 {
        grid-column: 3;
        grid-row: 2;
        border: none;
        border-top: 1px solid #AEE6F9;
        border-bottom: 1px dotted #AEE6F9;
        border-left: 1px solid #AEE6F9;
    }
}
.wed-time1 {
    grid-column: 2;
    grid-row: 4;
    border-left: 1px solid #AEE6F9;
    border-right: 1px solid #AEE6F9;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .wed-time1 {
        grid-column: 4;
        grid-row: 2;
        border: none;
        border-top: 1px solid #AEE6F9;
        border-bottom: 1px dotted #AEE6F9;
        border-left: 1px solid #AEE6F9;
    }
}
.thu-time1 {
    grid-column: 2;
    grid-row: 5;
    border-left: 1px solid #AEE6F9;
    border-right: 1px solid #AEE6F9;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .thu-time1 {
        grid-column: 5;
        grid-row: 2;
        border: none;
        border-top: 1px solid #AEE6F9;
        border-bottom: 1px dotted #AEE6F9;
        border-left: 1px solid #AEE6F9;
    }
}
.fri-time1 {
    grid-column: 2;
    grid-row: 6;
    border-left: 1px solid #AEE6F9;
    border-right: 1px solid #AEE6F9;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .fri-time1 {
        grid-column: 6;
        grid-row: 2;
        border: none;
        border-top: 1px solid #AEE6F9;
        border-bottom: 1px dotted #AEE6F9;
        border-left: 1px solid #AEE6F9;
    }
}
.sat-time1 {
    grid-column: 2;
    grid-row: 7;
    border-left: 1px dotted #AEE6F9;
    border-right: 1px dotted #AEE6F9;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .sat-time1 {
        grid-column: 7;
        grid-row: 2;
        border: none;
        border-top: 1px solid #AEE6F9;
        border-bottom: 1px dotted #AEE6F9;
        border-left: 1px solid #AEE6F9;
    }
}
.mon-time2 {
    grid-column: 3;
    grid-row: 2;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .mon-time2 {
        grid-column: 2;
        grid-row: 3;
        border: none;
        border-left: 1px solid #AEE6F9;
    }
}
.tue-time2 {
    grid-column: 3;
    grid-row: 3;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .tue-time2 {
        grid-column: 3;
        grid-row: 3;
        border: none;
        border-left: 1px solid #AEE6F9;
    }
}
.wed-time2 {
    grid-column: 3;
    grid-row: 4;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .wed-time2 {
        grid-column: 4;
        grid-row: 3;
        border: none;
        border-left: 1px solid #AEE6F9;
    }
}
.thu-time2 {
    grid-column: 3;
    grid-row: 5;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .thu-time2 {
        grid-column: 5;
        grid-row: 3;
        border: none;
        border-left: 1px solid #AEE6F9;
    }
}
.fri-time2 {
    grid-column: 3;
    grid-row: 6;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .fri-time2 {
        grid-column: 6;
        grid-row: 3;
        border: none;
        border-left: 1px solid #AEE6F9;
    }
}
.sat-time2 {
    grid-column: 3;
    grid-row: 7;
    border-top: 1px solid #AEE6F9;
}
@media screen and (min-width: 960px) {
    .sat-time2 {
        grid-column: 7;
        grid-row: 3;
        border: none;
        border-left: 1px solid #AEE6F9;
    }
}

.table-note {
	font-size: 12px;
	line-height: 2;
	color: #666;
	padding: 0 20px;
}
@media screen and (min-width: 960px) {
	.table-note {
		padding: 0;
		width: 82.4%;
		margin: 0 auto 30px;
		font-size: 14px;
	}
}
.table-note > span {
	font-size: 14px;
	font-weight: 500;
}

@media screen and (min-width: 960px) {
	.table-note > span {
		font-size: 16px;
		font-weight: 500;
	}
}
/**********************************************
	Googlemap
***********************************************/
.map-text {
	margin-top: 30px;
}
@media (min-width: 960px) {
	.map-text {
		display: flex;
	}
}
.acs-adress > p {
	margin: 5px 0;
}
.acs-adress > p:nth-child(1) {
	font-size: 14px;
}
.acs-adress > p:nth-child(2) {
	font-size: 22px;
	font-weight: 500;
}
.acs-adress > p:nth-child(3) {
	font-size: 14px;
}
.acs-left > .button-container {
	text-align: left;
	margin: 20px 0;
}
@media (min-width: 960px) {
	.acs-left {
		width: 50%;
	}
}

.acs-right {
	margin-top: 30px;
}
@media (min-width: 960px) {
	.acs-right {
		margin-top: 0px;
	}
}
@media (min-width: 960px) {
	.acs-right {
		width: 50%;
	}
}
.acs-traffic {
	margin-top: 30px;
}
@media (min-width: 960px) {
	.acs-traffic:nth-last-child() {
		margin-top: 50px;
	}
}
.acs-traffic > h4 {
	font-size: 18px;
	font-weight: 500;
	margin: 10px 0;
}
.acs-traffic > h4::before {
	content: "";
    display: inline-block;
    width: 20px;
	height: 20px;
    aspect-ratio: 1 / 1;
    background: url("../img/paws_orange.png") no-repeat;
    background-size: 100% 100%;
	margin-right: 10px;
}
.acs-traffic > p{
	padding-top: 5px;
}

/* スクロールCSS */
.fade-in {
  opacity: 0;
  transition-duration: 1000ms;
  transition-property: opacity, transform;
}

.fade-in-up {
  transform: translate(0, 100px);
}

.fade-in-down {
  transform: translate(0, -50px);
}

.fade-in-left {
  transform: translate(-50px, 0);
}

.fade-in-right {
  transform: translate(50px, 0);
}

.scroll-in {
  opacity: 1;
  transform: translate(0, 0);
}

.fade-in-text {
  opacity: 0; /* 初めは透明に設定 */
  transform: translate(-50%, 50%); /* 下からスライドするために位置を下に設定 */
    
  animation: fadeInFromBottom 1s forwards; /* フェードインアニメーションの設定 */
}

@keyframes fadeInFromBottom {
  to {
    opacity: 1; /* アニメーション終了時に完全に表示 */
    transform: translate(-50%, -50%); /* アニメーション終了時の位置 */
  }
}