/* Footer custom styles based on provided design */
.new-footer__inner {
	display: flex;
	gap: 60px;
	/* increased spacing between .new-footer__left and .new-footer__right */
	padding: 48px 0 0;
}

.new-footer__left {
	flex: 1;
	min-width: 280px
}

.new-footer__right {
	flex: 1.6;
	display: flex;
	flex-direction: column;
	gap: 0px
}

.new-footer__logo img {
	max-width: 340px;
	height: auto
}

/* center footer logo and address while keeping time-table layout intact */
.new-footer__logo {
	display: block;
	text-align: center;
	margin-bottom: 8px;
}

.new-footer__logo img {
	display: block;
	margin: 0 auto;
}

.new-footer__addr-wrap {
	text-align: center;
}
@media all and (min-width: 768px) { /* pc mode */
	.new-footer__addr-wrap {
		display: flex;
		align-items: center;
		justify-content: center;
		/* center address and map buttons */
		gap: 12px;
	}
}
@media all and (max-width: 767px) { /* sp mode */
	.new-footer__addr-wrap {
		padding-bottom: 10px;
	}
}
.new-footer__tel a {
	color: inherit;
	text-decoration: none
}

.new-footer__tel-hours {
	color: #666;
	margin-bottom: 12px
}

.new-footer__addr {
	color: #333;
	font-size: 14px;
	line-height: 1.6;
	margin: 12px 0
}

.new-footer__map-btn {
	display: inline-block;
	background: #fff;
	border: 1px solid #ddd;
	color: #333;
	padding: 4px 12px;
	text-decoration: none;
	border-radius: 4px;
	font-size: 12px
}

.new-footer__map-btn:hover {
	background: #f5f5f5
}

.new-footer__time-table table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 20px
}

.new-footer__time-table th,
.new-footer__time-table td {
	border: 1px solid #e6ded6;
	padding: 14px;
	text-align: center;
	font-size: 12px;
	vertical-align: middle;
}
@media all and (max-width: 767px) { /* sp mode */
	.new-footer__time-table th,
	.new-footer__time-table td {
		padding: 10px;
		font-size: 11px;
	}
}

.new-footer__time-table th {
	background: #faf6f2;
	color: #333
}

.new-footer__time-table td.ok {
	color: #f6ca1c
}

.new-footer__time-table td.no {
	color: #bdb4aa
}

/* ensure time column has enough space and uses border-box so text won't overflow */
.new-footer__time-table th:first-child,
.new-footer__time-table td:first-child {
	white-space: nowrap;
	box-sizing: border-box;
	width: 130px;
	text-align: center;
}
@media all and (max-width: 767px) { /* sp mode */
	.new-footer__time-table th:first-child,
	.new-footer__time-table td:first-child {
		width: 100px;
	}
}

.new-footer__time-table td {
	line-height: 1.6;
}

.new-footer__nav ul {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	list-style: none;
	padding: 0;
	margin: 0 0 12px 0
}

.new-footer__nav ul li a {
	color: #222;
	text-decoration: none
}

.new-footer__nav-columns {
	display: flex;
	gap: 40px
}

.new-footer__nav-columns h4 {
	margin: 0 0 8px 0;
	font-size: 15px
}

.new-footer__nav-columns ul {
	list-style: none;
	padding: 0;
	margin: 0
}

.new-footer__nav-columns ul li {
	margin: 6px 0
}

.new-footer__reserve {
	background: #fff;
	padding: 18px;
	border: 1px solid #e6ded6
}

.new-footer__reserve h3 {
	margin: 0 0 8px 0;
	color: #222
}

.new-footer__reserve p {
	color: #666;
	font-size: 14px
}

.btn-reserve {
	display: inline-block;
	background: #19a67a;
	color: #fff;
	padding: 12px 18px;
	margin: 12px 0;
	text-decoration: none
}

.reserve-tel {
	margin-top: 8px;
	color: #2b6b5a;
	font-weight: 700
}

.btn-line {
	display: inline-block;
	border: 1px solid #19a67a;
	color: #19a67a;
	padding: 10px 14px;
	margin-top: 8px;
	text-decoration: none
}

/* Responsive */
@media(max-width:900px) {
	.new-footer__inner {
		flex-direction: column
	}

	.new-footer__nav-columns {
		flex-direction: column
	}
}

@media all and (min-width: 768px) {

	/* make footer inner width match .home-posts__inner */
	.new-footer__inner.u-inner,
	.new-footer__inner {
		width: 100%;
		max-width: 1580px;
		margin: 0 auto;
		box-sizing: border-box;
		padding: 40px 20px 20px 20px;
	}
}
@media all and (max-width: 767px) { /* sp mode */
	.new-footer__inner.u-inner,
	.new-footer__inner {
		width: 96%;
		margin: 0 auto;
	}
}


/* three column nav grid */
.new-footer__nav-grid {
	display: flex;
	gap: 40px;
	margin-bottom: 20px
}

.new-footer__nav-col {
	flex: 1
}

.new-footer__primary-links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.new-footer__primary-links li {
	margin: 0;
}

.new-footer__nav-col h4 {
	font-size: 14px;
	margin: 0 0 10px
}

.new-footer__nav-col ul {
	list-style: none;
	padding: 0;
	margin: 0
}

.new-footer__nav-col ul li {
	margin: 0;
}

.new-footer__nav-col a {
	color: #222;
	text-decoration: none;
	font-size: 12px;
}

/* sub-links for footer nav (indented, smaller) */
.new-footer__sub-links {
	list-style: none;
	margin: 6px 0 0 12px;
	padding: 0;
}

.new-footer__sub-links li {
	margin: 4px 0;
	padding-left: 6px;
	/* space for marker */
	list-style: none;
}

.new-footer__sub-links li:before {
	content: "┠";
	display: inline-block;
	width: 1em;
	margin-right: 6px;
	color: #cfcfcf;
	font-size: 12px;
	line-height: 1;
	vertical-align: middle;
}

/* last sub-link should use a corner marker */
.new-footer__sub-links li:last-child:before {
	content: "┗";
}

.new-footer__sub-links li a {
	font-size: 12px;
	text-decoration: none;
}

.new-footer__sub-links li a:hover {
	color: #333;
	text-decoration: underline;
}

/* primary links (top list) slightly smaller */
.new-footer__primary-links li a {
	font-size: 14px;
	color: #574B39;
	font-weight: bold;
}

/* reserve box tweaks */
.new-footer__reserve {
	background: #fff;
	padding: 24px;
	border: 1px solid #e6ded6
}

.new-footer__reserve-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 12px
}

.new-footer__reserve-head h3 {
	margin: 0;
	font-size: 18px
}

.reserve-guide {
	color: #19a67a;
	text-decoration: none
}

.new-footer__reserve-body {
	display: flex;
	gap: 18px;
	align-items: center
}

/* small top button area above time table */
.new-footer__top-btns {
	margin-bottom: 12px;
	padding-top: 10px;
}

.new-footer__top-btns .l-header-top-btns__item {
	display: block;
	width: 100%;
	background: #19a67a;
	color: #fff;
	padding: 14px 12px;
	border-radius: 4px;
	text-decoration: none;
	font-size: 16px;
	text-align: center;
	font-weight: 700;
}

.l-header-top-btns__icon {
	vertical-align: -2px;
	margin-right: 8px;
	fill: currentColor;
}

.new-footer__top-btns .l-header-top-btns__item svg path {
	fill: #fff;
}

/* make sure top button and time table use same box sizing and full width of their container */
.new-footer__top-btns,
.new-footer__time-table {
	box-sizing: border-box;
	width: 100%;
	display: block;
}

.new-footer__top-btns .l-header-top-btns__item {
	box-sizing: border-box;
}

/* use the same calendar icon as .l-header-top-btn--main via pseudo-element */
.new-footer__top-btns .l-header-top-btns__item::before {
	content: "";
	display: inline-block;
	width: 26px;
	height: 26px;
	margin-right: 8px;
	vertical-align: middle;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M7 2a1 1 0 0 1 1 1v1h8V3a1 1 0 1 1 2 0v1h1a2 2 0 0 1 2 2v3H3V6a2 2 0 0 1 2-2h1V3a1 1 0 1 1 2 0v1zm14 9v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7zm-5.5 3a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0-3M8 14h4v2H8z'/%3E%3C/svg%3E");
	transform: translateY(1px);
}

/* make the button layout match header's inline-flex so icon sits left */
.new-footer__top-btns .l-header-top-btns__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.new-footer__top-btns .l-header-top-btns__item {
	transition: background-color 180ms ease, transform 120ms ease;
}

.new-footer__top-btns .l-header-top-btns__item:hover {
	background-color: rgba(25, 166, 122, 0.85);
}

/* footer meta row */
.new-footer__meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-top: 1px solid #eee;
	margin-top: 0;
}

/* make meta row match footer inner width */
@media all and (min-width: 768px) {

	.new-footer__meta.u-inner,
	.new-footer__meta {
		width: 100%;
		max-width: 1580px;
		margin: 20px auto 0;
		padding: 20px 20px;
		box-sizing: border-box;
		display: flex;
		justify-content: space-between;
		align-items: center;
		border-top: 1px solid #eee;
	}
}
@media all and (max-width: 767px) { /* sp mode */
	.new-footer__meta.u-inner,
	.new-footer__meta {
		margin-top: 20px;
		padding-bottom: 60px;
	}
}

.new-footer__meta-left {
	color: #9b9b9b;
	font-family: "TsukuAntiqueSGoStd-B-PalatinoSansLTPro-Medium";
}

.new-footer__meta-right {
	list-style: none;
	display: flex;
	font-size: 12px;
	gap: 0px;
	padding: 0;
	margin: 0
}

.new-footer__meta-right li a {
	color: #333;
	text-decoration: none
}

/* separator between meta links */
.new-footer__meta-right li+li:before {
	content: "｜";
	color: #cfcfcf;
	margin: 0 8px;
}

@media(max-width:900px) {
	.new-footer__nav-grid {
		flex-direction: column
	}

	.new-footer__reserve-body {
		flex-direction: column;
		align-items: flex-start
	}

	.new-footer__meta {
		flex-direction: column;
		gap: 8px;
		padding-left: 25px;
		padding-right: 25px
	}
}
