@charset "utf-8";

body,div,
h1,h2,h3,h4,h5,h6,
dl,dt,dd,ul,ol,li,
p,blockquote,pre,cite,code,caption,hr,
form,fieldset,legend,input,textarea,select,option,label {margin:0; padding:0;}

img {margin:0; padding:0; border:0; line-height:0; vertical-align:top;}

ul,ol {list-style:none;}
li {list-style-position:outside;}

table {border-collapse:collapse;}
th,td {padding:0; text-align:left; vertical-align:top;}

object,
embed {vertical-align:top;}

*,
::before,
::after {-webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box;}


html {
	margin-bottom:1px;
	height:100%;
    scroll-behavior: smooth;
}


body {
	background:#fff;
	font-family:'Zen Kaku Gothic New', 'ヒラギノ角ゴ Pro W3', 'ヒラギノ角ゴ ProN W3', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
	color: #333;
	font-size: 16px;
	font-feature-settings: "palt"1;
	line-height: 1.5;
	letter-spacing: 0;
	-webkit-text-size-adjust: 100%;
}


img {
	margin:0;
	padding:0;
	vertical-align:bottom;
	line-height:0;
	border:none;
    -webkit-backface-visibility: hidden;}


ul,
ol {
	list-style:none;}

li {
	list-style-position:outside;}


table {
	border-collapse:collapse;}


th,
td {
	padding:0;
	text-align:left;
	vertical-align:top;}


a {
	color:#222;
	text-decoration:none;
	transition: .2s;}

a:hover {
	opacity: .6;}


p {
	text-align:justify;
	text-justify:inter-ideograph;}


/* iOSでinput要素にcssが効かないときの対応 */
* {-webkit-appearance: none;}


::selection {
	background:#ffffa0;}

/* for Firefox */
::-moz-selection {
	background:#ffffa0;}



@media (min-width:641px) {
	.sp {
		display: none !important;
	}
}
@media (max-width:640px) {
	body {
		font-size:25px;
	}

	.pc {
		display: none !important;
	}
}



/* -------------------------------------------------- */

/* header */
header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
	width: 100%;
	height: 82px;
	margin: auto;
	padding: 0 2.5em;
	background: #fff;
	transition: .3s;
}
header h1 {
	font-size: 1.5em;
	font-weight: 500;
    transition: .3s;
}
header h1 a {
	display: flex;
	gap: 0.5em;
	color: #0066a8;
}
header h1 img {
	max-width: 2.1667em;
}
header h1 span {
	padding-top: 0.5em;
}

@media (max-width:640px){
	header {
	padding: 0 2.5em 0 .5em;
}
	header h1 {
		font-size: 1em;
	}
}


/* mainNav */
ul.mainNav {
    width:100%;
    margin: 0;
	flex-wrap: wrap;
	align-content: center;
	justify-content: flex-end;
	gap: 2em;
	letter-spacing: 0;
}
ul.mainNav li {
    position: relative;
}
ul.mainNav li a {
	color: #0066a8;
    font-size: 1rem;
    font-weight: 500;
}
ul.mainNav li a[href^="tel:"] {
	padding: 0.125em 1em 0.1875em;
	background: #cd3240;
	border-radius: 3em;
	color: #fff;
	font-size: 1.5em;
	font-weight: 700;
	line-height: 1;
}
ul.mainNav li a[href^="tel:"] .small {
	font-size: 0.9em;
}

@media (min-width:981px) {
	ul.mainNav {display: flex;}
	ul.mainNav li:first-child {
		display: none;
	}
}
@media (max-width:980px){
    .menu-btn {
        width: 60px;
        height:60px;
        position:fixed; top:10px; right:15px;
        display:flex; justify-content:center; align-items:center;
        border-radius:100%;
        background: #f5ad4f;
        z-index: 90;
    }
    .menu-btn span,
    .menu-btn span:before,
    .menu-btn span:after {
        content: '';
        display: block;
        height: 3px;
        width: 25px;
        border-radius: 3px;
        background:#ffffff;
        position:absolute;
        transition: .3s;
    }
    .menu-btn span:before { bottom:8px;}
    .menu-btn span:after { top:8px;}
    
    #menu-btn-check:checked ~ .menu-btn span {
        background-color: rgba(255, 255, 255, 0);
    }
    #menu-btn-check:checked ~ .menu-btn span::before {
        bottom: 0;
        transform: rotate(45deg);
    }
    #menu-btn-check:checked ~ .menu-btn span::after {
        top: 0;
        transform: rotate(-45deg);
    }
    #menu-btn-check {
        display: none;
    }

    .menu-content {
        width: 100%;
        height:100%;
        position:fixed; top:0; left:100%; /* 画面外へ */
        z-index:80;
        background: rgba(0,102,168,0.7);
        transition:all 0.5s;
    }
    ul.mainNav {
        width:80%;
        margin: 0 auto;
        padding:90px 0 0;
    }
    ul.mainNav li:not(:last-child) {
		margin: 2.5em 0 1.25em;
		border-bottom: dotted 2px #fff;}
	ul.mainNav li:last-child {
		margin-top: 2.5em;}
	ul.mainNav .tel {
		margin-top: 75px;
		border-bottom: none;}
	ul.mainNav .tel a[href^="tel:"] {
		padding-top: 10px;
		padding-bottom: 10px;}
	ul.mainNav .tel a::before {right: 20px;}
	
    ul.mainNav li a {
        width: 100%;
        padding:10px 0;
        display: block;
        position:relative;
		color: #fff;
		font-size: 20px;
    }
    ul.mainNav li:not(:last-child) a::before {
        content: "";
        width: 14px;
        height:14px;
        border-top: solid 3px #ffffff;
        border-right: solid 3px #ffffff;
        transform: rotate(45deg);
        position: absolute;
        right: 11px;
        top: 16px;
    }
	ul.mainNav li:last-child a {
		text-align: center;}
    
    #menu-btn-check:checked ~ .menu-content {
        left: 0; /* 画面内へ*/
    }
}


/* btn */
.btn-typeA {
	position: relative;
	display: block;
	width: fit-content;
	padding: 0.3125em 2.625em 0.4375em;
	background: #f5ad4f;
	border-radius: 3em;
	color: #fff;
	text-align: center;
	line-height: 1.25;
}
.btn-typeA::after {
	position: absolute;
	top: 50%;
	right: 1em;
	width: 0.4375em;
	height: 0.4375em;
	border: 1px solid #fff;
	border-bottom: none;
	border-left: none;
	content: '';
	transform: translateY(-50%) rotate(45deg);
}

.btn-typeB {
	position: relative;
	display: block;
	width: fit-content;
	min-width: 15em;
	margin: 0 auto;
	padding: 0.5625em 2.625em 0.6875em;
	background: #f5ad4f;
	border-radius: 3em;
	color: #fff;
	line-height: 1.25;
}
.btn-typeB::after {
	position: absolute;
	top: 50%;
	right: 1em;
	width: 0.4375em;
	height: 0.4375em;
	border: 1px solid #fff;
	border-bottom: none;
	border-left: none;
	content: '';
	transform: translateY(-50%) rotate(45deg);
}


/* container */
#container {
	overflow: hidden;
}
@media (max-width:1080px) {
	#container {
		width: 1080px;
	}
}
@media (max-width:640px) {
	#container {
		width: 640px;
	}
}


/* section */
h2.typeA {
	display: flex;
	align-items: baseline;
	font-size: 1.5em;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.05em;
}
h2.typeA .en {
	margin-left: 0.625em;
	color: #0066a8;
	font-size: 0.667em;
}

h2.typeB {
	display: flex;
	flex-direction: column;
	align-items: center;
	font-size: 1.75em;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.05em;
}
h2.typeB::before {
	display: block;
	width: 1em;
	height: 0.7931em;
	background: url(../img/share/paw-pad-blue-s.png) left top / 100% 100% no-repeat;
	content: '';
}
h2.typeB .jp {
	margin-top: 0.2142857em;
}
h2.typeB .en {
	margin-top: 0.25em;
	color: #0066a8;
	font-size: 0.571428em;
	letter-spacing: 0.05em;
}


.imgList {
	display: flex;
	gap: 24px;
	width: 100%;
	max-width: 1040px;
	margin: 0 auto;
	padding: 0 40px;
}
.imgItem {
	flex: 1;
	overflow: hidden;
	position: relative;
	border-radius: 8px;
}
.imgItem::before {
	display: block;
	padding-top: 56.25%;
	content: '';
}
.imgItem img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.imgItem[class*="deco"] {
	box-shadow: 8px 8px 0px 0 #0066a8;}

.textArea {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.textArea p {
	font-size: 1.125rem;
	text-align: center;
}
.textArea p + p {
	margin-top: 0.5em;
}


.medicalList {
	display: flex;
	flex-wrap: wrap;
	gap: 36px 24px;
	width: 100%;
	max-width: 1040px;
	margin: 0 auto;
	padding: 0 40px;
}

.medicalItem {
	width: calc(50% - 12px);
}
.medicalItem:nth-child(n+3) {
	width: calc((100% - 48px) / 3);
}
.medicalItem h3 {
	position: relative;
	margin-top: 2.1em;
	color: #0066a8;
	font-size: 1.25em;
	font-weight: 500;
	text-align: center;
	line-height: 1;
	letter-spacing: 0.05em;
}
.medicalItem h3::after {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: -1;
	width: 5.8em;
	height: 5.15em;
	background: url(../img/share/paw-pad-light-blue.png) left top no-repeat;
	background-size: 100% 100%;
	transform: translate(-50%, -50%);
	content: '';
}
.medicalItem p {
	margin-top: 0.625em;
	text-align: center;
	letter-spacing: 0.025em;
}


.infoList {
	display: flex;
	justify-content: center;
	gap: 24px;
	width: 100%;
	max-width: 1040px;
	margin: 0 auto;
	padding: 0 40px;
}

.infoItem {
	flex: 1;
	max-width: 640px;
	padding: 32px;
	background: #fff;
	border-radius: 8px;
}
.infoItem h3 {
	color: #0066a8;
	font-size: 1.25em;
	text-align: center;
	line-height: 1;
}
.infoItem p {
	margin-top: 0.8125em;
}

.infoItem.deco {
	position: relative;
	background-color: #fff;
	background-image: url(../img/share/bicolor01.png), url(../img/share/bicolor02.png);
	background-position: right bottom, right 85.75% top;
	background-size: 11.538% auto, 25.2% auto;
	background-repeat: no-repeat;
}
.infoItem.deco::before {
	position: absolute;
	top: 0;
	left: 50%;
	width: 43.5897%;
	height: 2.0625em;
	background: url(../img/share/bicolor-ear.png) left top / 100% 100% no-repeat;
	content: '';
	transform: translate(-50%, -75.7576%);
}


@media (max-width:640px) {
	.textArea p {
	font-size: 25px;
}
}


/* section-contact */
.section-contact {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	width: 100%;
	max-width: 1160px;
	margin: 0 auto;
	padding: 96px 40px 0;
}
.section-contact .access,
.section-contact .contact,
.section-contact .hours {
	position: relative;
	border-radius: 8px;
}
.section-contact .access,
.section-contact .sec-right {
	width: calc(50% - 12px);
}
.section-contact .access::before,
.section-contact .contact::before,
.section-contact .hours::before {
	display: block;
	position: absolute;
	top: -40px;
	left: -32px;
	width: 18.9394%;
	height: 120px;
	background: url(../img/share/paw-pad-light-blue.png) left top / 100% auto no-repeat;
	content: '';
}
.section-contact .contact::before {
	top: -1px;
	left: 0;
	background-image: url(../img/share/paw-pad-white.png);
}

.section-contact .contact > div {
	position: relative;
}

.section-contact .sec-right {
	display: flex;
	flex-direction: column;
	gap: 1.5em;
}

.access dl {
	margin-top: 0.625em;
}
.access dl div {
	display: flex;
	flex-wrap: wrap;
	gap: 0.444em 1em;
	padding-top: 0.333em;
	font-size: 1.125em;
}
.access dl div::after {
	display: block;
	width: 100%;
	height: 1px;
	background: linear-gradient(to right, #0066a8 6px, transparent 6px) left bottom repeat-x;
	background-size: 10px 1px;
	content: '';
}
.access dl div dt {
	width: 5em;
	color: #0066a8;
	text-align: right;
}
.access dl div dd {
	flex: 1;
}

.access .map {
	position: relative;
	width: 100%;
	margin-top: 1.5em;}
.access .map::before {
	display: block;
	padding-top: 45.45%;
	content: '';}
.access .map iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;}

.contact {
	padding: 40px 32px;
	background: #fcf3f3;
}

.contact  h2.typeA .en {
	color: #cd3240;
}

.contact a[href^="tel:"] {
	display: inline-block;
	margin-top: 0.46875em;
	font-size: 2em;
	font-weight: 500;
	line-height: 1;
}
.contact a[href^="tel:"] .small {
	font-size: 0.9em;
}

@media (min-width:641px) {
	.section-contact .sec-right .imgItem {
		flex: 1;
	}
	.section-contact .sec-right .imgItem::before {
		display: none;
	}
}
@media (max-width:640px) {
	.section-contact .access,
	.section-contact .sec-right {
		width: 100%;
	}
	
	.section-contact .sec-right .imgItem {
		order: 1;
	}
}


/* footer */
footer {
	position: relative;
	width:100%;
	margin: 146px auto 0;
	padding: 40px 0 0;
	background: #f0f6fa;
}
footer::after {
	position: absolute;
	top: -54px;
	width: 100%;
	height: 88px;
	background: url(../img/share/wave-blue.png) center top no-repeat;
	background-size: 1920px 88px;
	content: '';
	pointer-events: none;
}

footer .logo {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5em;
	margin-top: 1.45em;
	color: #0066a8;
	font-size: 1.25em;
	font-weight: 500;
}
footer .logo img {
	width: 4em;
}

footer small {
	display:block;
	width:100%;
	margin-top: 2.8333em;
	padding: 0.75em 0 1.25em;
	background: #0066a8;
	color: #fff;
	font-size: 0.75em;
	font-weight: 500;
	text-align: center;
}

.subNav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5em 2em;}
.subNav a {
	color: #0066a8;
	font-weight: 500;
}

.footer_info {
	margin-top: 0.4375em;
	text-align: center;
}


/* hours */
.hours table {
	width: 100%;
	font-size: 1.125rem;
	font-weight: 700;
}
.hours h2 + table {
	margin-top: 1.3889em;
}
.hours thead th:first-of-type {
	width: 6.667em;
	border-radius: 3px 0 0 0;
}
.hours thead th:last-of-type {
	border-radius: 0 3px 0 0;
}
.hours tbody tr {
	border-bottom: 1px solid #0066a8;
}
.hours th,
.hours td {
	padding: 0.333em 0 0.444em;
	text-align: center;
	vertical-align: middle;
}
.hours th {
	background: #0066a8;
	color: #ffff;
}
.hours th:not(:last-of-type) {
	border-right: 1px solid #fff;
}
.hours td:not(:last-of-type) {
	border-right: 1px solid #fff;
}
.hours td {
	background: #fff;
	color: #0066a8;
}
.hours td:not(:last-of-type) {
	border-right: 1px solid #0066a8;
}

.hours p {
	margin-top: 0.556em;
	font-size: 1.125rem;
}
.hours p + p {
	margin-top: 0.667em;
}
.hours p a {
	color: #cd3240;
	text-decoration: underline;
}


@media (max-width:640px){
	.hours p {
	font-size:25px;
}
}
