/* Lower pages and shared navigation additions */
.policy-links {
	display: flex;
	justify-content: center;
	gap: 24px;
	flex-wrap: wrap;
	margin: 28px 20px 0;
	font-size: 12px
}
.footer nav {
	flex-wrap: wrap
}
.subpage {
	padding-top: var(--header);
	font-size: 15px
}
.sub-hero {
	height: 360px;
	position: relative;
	color: white;
	overflow: hidden
}
.sub-hero > img {
	width: 100%;
	height: 100%;
	object-fit: cover
}
.sub-hero:before {
	content: '';
	position: absolute;
	inset: 0;
	background: #143c4338
}
.sub-hero:after {
	content: '';
	position: absolute;
	bottom: -1px;
	left: -5%;
	width: 110%;
	height: 48px;
	background: var(--cream);
	border-radius: 55% 60% 0 0
}
.sub-hero > div {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-shadow: 0 2px 14px #123b40
}
.sub-hero h1, .sub-heading > p {
	font-family: Georgia, serif;
	font-style: italic;
	letter-spacing: .035em;
	font-weight: normal
}
.sub-hero h1 {
	font-size: clamp(46px, 6vw, 82px);
	line-height: 1.2
}
.sub-hero p {
	margin: 14px 0 0;
	letter-spacing: .16em
}
.section-nav {
	display: flex;
	justify-content: center;
	gap: 32px;
	padding: 25px 20px;
	font-size: 13px;
	flex-wrap: wrap
}
.section-nav a {
	border-bottom: 1px solid #a5c4c3;
	padding-bottom: 5px
}
.sub-intro {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 40px;
	padding-block: 55px 65px;
	max-width: 1080px
}
.sub-intro h2 {
	font-family: serif;
	font-size: clamp(28px, 3vw, 42px);
	font-weight: 500;
	line-height: 1.65;
	letter-spacing: .09em;
	margin-bottom: 25px
}
.sub-intro > img {
	width: 100%;
	max-height: 340px;
	object-fit: contain
}
.sub-intro p {
	line-height: 2.2
}
.benefits {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	max-width: 1080px;
	margin-bottom: 60px
}
.benefits > div {
	background: #fffefa;
	border-radius: 18px 8px 20px 8px;
	text-align: center;
	padding: 26px 12px;
	font-weight: 700;
	border-top: 3px solid #afe1ea
}
.benefits small {
	display: block;
	margin-top: 10px;
	font-size: 12px;
	font-weight: 400
}
.sub-heading {
	text-align: center;
	margin-bottom: 38px
}
.sub-heading > p {
	font-size: 36px;
	line-height: 1.3;
	margin-bottom: 8px;
	color: #174b58
}
.sub-heading h2 {
	font-size: 16px;
	font-weight: 500;
	letter-spacing: .1em
}
.tour-section {
	padding: 55px 0 0
}
.tour-list {
	max-width: 1100px;
	display: grid;
	gap: 24px
}
.tour-row {
	display: grid;
	grid-template-columns: 32% 1fr;
	gap: 32px;
	padding: 18px;
	background: #fffefb;
	border-radius: 20px;
	scroll-margin-top: 110px
}
.tour-row:nth-child(even) {
	grid-template-columns: 1fr 32%
}
.tour-row:nth-child(even) > .tour-photo {
	grid-column: 2;
	grid-row: 1
}
.tour-body {
	padding: 2px 12px
}
.tour-photo {
	width: 100%;
	height: 100%;
	max-height: 320px;
	min-height: 240px;
	object-fit: cover;
	border-radius: 14px
}
.tour-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px
}
.tour-number {
	font-family: Arial, sans-serif;
	font-size: 48px;
	line-height: 1.2;
	color: #fff;
	-webkit-text-stroke: 1px #36aae2;
	font-weight: 700
}
.tour-tag {
	display: inline-block;
	border: 1px solid #addccc;
	border-radius: 30px;
	padding: 3px 12px;
	color: #3a7760;
	font-size: 11px;
	background: #f1faf1
}
.tour-body h3 {
	font-size: 20px;
	color: #14516c;
	margin: 8px 0 12px
}
.tour-body p {
	font-size: 14px;
	line-height: 1.9;
	margin-bottom: 12px
}
.tour-bottom {
	display: flex;
	justify-content: space-between;
	gap: 15px;
	align-items: center;
	flex-wrap: wrap
}
.tour-price {
	color: #a54a22;
	font-weight: 700
}
.tour-price small {
	font-size: 11px;
	color: var(--ink)
}
.tour-bottom .button {
	font-size: 12px;
	min-height: 38px;
	padding: 7px 20px
}
.tour-body details {
	font-size: 12px;
	border-top: 1px solid #dde9e8;
	padding-top: 10px;
	margin-top: 12px
}
.tour-body summary {
	cursor: pointer;
	color: #286579
}
.tour-body details p {
	margin: 12px 0 0;
	font-size: 12px
}
.fine-print {
	font-size: 11px !important
}
.sub-landscape {
	width: 340px;
	max-width: 65%;
	margin: 25px 0 0 auto;
	max-height: 200px;
	object-fit: contain
}
.sub-cafe {
	padding-bottom: 60px
}
.sub-cafe .sub-hero {
	height: 320px
}
.cafe-menu {
	max-width: 1000px
}
.menu-feature {
	display: grid;
	grid-template-columns: 55% 1fr;
	background: #fffefa;
	border-radius: 22px;
	overflow: hidden;
	gap: 32px
}
.menu-feature > img {
	width: 100%;
	height: 100%;
	object-fit: cover
}
.menu-feature > div {
	padding: 36px 30px 30px 0
}
.menu-feature h3 {
	font-size: 25px;
	margin: 16px 0
}
.menu-feature p {
	font-size: 14px
}
.cafe-visit {
	text-align: center;
	padding-top: 50px
}
.cafe-visit h3 {
	font-family: serif;
	font-size: 28px;
	font-weight: 500
}
.cafe-visit dl {
	display: grid;
	grid-template-columns: 100px 1fr;
	max-width: 390px;
	margin: 25px auto;
	text-align: left;
	font-size: 14px;
	gap: 8px
}
.cafe-visit .button {
	font-size: 13px
}
.about-story {
	padding: 60px 0
}
.about-story > .container > p {
	text-align: center;
	line-height: 2.3
}
.story-gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-top: 35px
}
.story-gallery img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	border-radius: 12px
}
.story-gallery img:first-child {
	object-fit: contain;
	background: var(--cream)
}
.inquiry {
	padding: 30px 0 100px
}
.inquiry > .container > p {
	text-align: center
}
.inquiry form {
	max-width: 780px;
	margin: 35px auto 0;
	display: grid;
	grid-template-columns: 155px 1fr;
	gap: 18px 24px;
	align-items: start
}
.inquiry label {
	padding-top: 10px;
	font-size: 14px
}
.inquiry input, .inquiry textarea {
	width: 100%;
	background: white;
	border: 1px solid #bdd8dc;
	border-radius: 8px;
	padding: 12px 16px;
	font: inherit;
	font-size: 14px;
	color: var(--ink)
}
.inquiry textarea {
	resize: vertical
}
.inquiry :is(input, textarea):focus-visible {
	outline: 2px solid #1684b6;
	outline-offset: 3px
}
.form-note, .inquiry form > .button, .line-contact {
	grid-column: 2
}
.form-note {
	font-size: 12px;
	margin: 0
}
.inquiry form > .button {
	justify-self: center;
	font-size: 14px
}
.inquiry button:disabled {
	background: #a0b5bc;
	cursor: not-allowed
}
.line-contact {
	justify-self: center;
	color: #207b55;
	border-bottom: 1px solid currentColor;
	font-size: 14px
}
.policies {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	padding-block: 55px 110px;
	max-width: 1100px
}
.policies article {
	background: #fffefa;
	padding: 34px;
	border-radius: 18px;
	scroll-margin-top: 110px
}
.policies h2 {
	font-size: 20px;
	margin-bottom: 22px
}
.policies p {
	font-size: 14px
}
.policies .eyebrow {
	font-size: 11px !important
}
.policy-draft {
	color: #6d7775;
	border-top: 1px solid #dde9e8;
	padding-top: 15px
}
@media(max-width:767px) {
	.subpage {
		font-size: 14px
	}
	.sub-hero {
		height: 240px
	}
	.sub-hero p {
		font-size: 12px
	}
	.section-nav {
		gap: 16px;
		font-size: 11px
	}
	.sub-intro {
		grid-template-columns: 1fr;
		gap: 10px;
		padding-block: 30px
	}
	.sub-intro > img {
		max-height: 240px
	}
	.sub-intro h2 {
		font-size: 29px
	}
	.sub-intro p br {
		display: none
	}
	.benefits {
		grid-template-columns: repeat(2, 1fr);
		gap: 10px;
		margin-bottom: 35px
	}
	.benefits > div {
		padding: 18px 8px;
		font-size: 13px
	}
	.benefits small {
		font-size: 10px
	}
	.sub-heading > p {
		font-size: 30px
	}
	.tour-section {
		padding-top: 35px
	}
	.tour-row, .tour-row:nth-child(even) {
		grid-template-columns: 1fr;
		gap: 12px;
		padding: 12px
	}
	.tour-row:nth-child(even) > .tour-photo {
		grid-column: auto;
		grid-row: auto
	}
	.tour-photo {
		height: 220px;
		min-height: 0
	}
	.tour-body {
		padding: 0 6px 10px
	}
	.tour-body h3 {
		font-size: 18px
	}
	.tour-number {
		font-size: 40px
	}
	.tour-bottom {
		gap: 6px
	}
	.tour-bottom .button {
		margin-bottom: 8px
	}
	.sub-cafe .sub-hero {
		height: 240px
	}
	.menu-feature {
		grid-template-columns: 1fr;
		gap: 0
	}
	.menu-feature > img {
		height: 240px
	}
	.menu-feature > div {
		padding: 25px
	}
	.cafe-visit h3 {
		font-size: 24px
	}
	.cafe-visit dl {
		font-size: 12px;
		grid-template-columns: 80px 1fr
	}
	.story-gallery {
		gap: 8px
	}
	.story-gallery img {
		height: 125px
	}
	.about-story {
		padding: 40px 0
	}
	.inquiry {
		padding-bottom: 55px
	}
	.inquiry form {
		grid-template-columns: 1fr;
		gap: 10px
	}
	.inquiry label {
		margin-top: 10px
	}
	.form-note, .inquiry form > .button, .line-contact {
		grid-column: 1
	}
	.form-note {
		margin-block: 10px
	}
	.line-contact {
		margin-top: 10px
	}
	.policies {
		grid-template-columns: 1fr;
		padding-block: 30px 80px;
		gap: 18px
	}
	.policies article {
		padding: 26px
	}
	.policy-links {
		gap: 10px 20px;
		font-size: 10px
	}
}
.sub-hero .hero-title {
	font-family: Georgia, serif;
	font-style: italic;
	font-weight: normal;
	font-size: clamp(46px, 6vw, 82px);
	line-height: 1.2;
	letter-spacing: .035em
}
/* Illustrated lower pages: generous scenes, layered photos and winding trails. */
.subpage {
	position: relative
}
.sub-hero {
	height: 440px
}
.sub-hero > div {
	align-items: flex-end;
	padding-right: 12%;
	transform: rotate(-5deg)
}
.sub-hero h1 {
	font-size: clamp(64px, 8vw, 112px)
}
.sub-hero:after {
	height: 75px;
	border-radius: 65% 40% 0 0
}
.section-nav {
	position: relative;
	z-index: 2;
	margin-top: -8px;
	gap: 18px
}
.section-nav a {
	padding: 10px 26px;
	background: #fffdf6;
	border: 1px solid #d9dfca;
	border-radius: 50% 45% 48% 43%;
	box-shadow: 2px 4px 0 #c9d7c333;
	transform: rotate(-3deg)
}
.section-nav a:nth-child(even) {
	transform: rotate(3deg)
}
.section-nav a:hover {
	background: #e5f5f1
}
.sub-intro {
	position: relative;
	padding-block: 80px 95px;
	min-height: 470px
}
.sub-intro h2 {
	font-size: clamp(30px, 3.3vw, 48px);
	transform: rotate(-3deg);
	transform-origin: left bottom
}
.sub-intro > img {
	max-height: 420px;
	width: 120%;
	max-width: none;
	transform: rotate(3deg)
}
.scene-art {
	pointer-events: none;
	object-fit: contain
}
.intro-forest {
	position: absolute;
	left: -35px;
	top: 900px;
	width: 150px;
	opacity: .7
}
.benefits {
	position: relative;
	z-index: 1;
	gap: 25px;
	margin-bottom: 100px
}
.benefits > div {
	border: 0;
	padding: 18px 12px 25px;
	box-shadow: 0 8px 24px #3e705809;
	transform: rotate(-3deg);
	border-radius: 35% 12% 15% 10% / 12% 15% 10% 15%
}
.benefits > div:nth-child(even) {
	transform: rotate(3deg)
}
.benefits img {
	height: 95px;
	width: 120px;
	object-fit: contain;
	margin: 0 auto 15px
}
.benefits > div:last-child img {
	width: 55px
}
.hand-note {
	font-family: serif;
	font-size: 23px;
	letter-spacing: .08em;
	text-align: center;
	transform: rotate(-5deg);
	color: #488280;
	margin-bottom: 18px
}
.sub-heading {
	position: relative;
	z-index: 1;
	margin-bottom: 70px
}
.sub-heading > p {
	font-size: clamp(36px, 4.4vw, 58px);
	transform: rotate(-4deg);
	margin-bottom: 15px
}
.sub-heading h2:after {
	content: '';
	display: block;
	background: url('../img/common/line-b.png') center/100% 100% no-repeat;
	width: 150px;
	height: 7px;
	margin: 15px auto
}
.tour-section {
	padding-top: 80px;
	border-radius: 50% 30% 0 0 / 35px 25px 0 0
}
.plan-source {
	position: absolute;
	width: 260px;
	left: -35px;
	top: -75px
}
.tour-list {
	gap: 0;
	max-width: 1150px;
	position: relative
}
.tour-list:before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	border-left: 3px dashed #85c6d188;
	transform: rotate(3deg)
}
.tour-row, .tour-row:nth-child(even) {
	position: relative;
	isolation: isolate;
	background: transparent;
	border-radius: 0;
	padding: 0;
	grid-template-columns: 46% 1fr;
	gap: 0;
	align-items: center;
	min-height: 365px
}
.tour-row:before {
	content: '';
	position: absolute;
	inset: 20px -15px 5px 32%;
	background: #fffef8;
	border-radius: 50px 16px 55px 18px;
	transform: rotate(2deg);
	z-index: -1;
	box-shadow: 0 8px 25px #33666a09
}
.tour-row:nth-of-type(even) {
	grid-template-columns: 1fr 46%
}
.tour-row:nth-of-type(even) > .tour-photo {
	grid-column: 2;
	grid-row: 1;
	transform: rotate(4deg)
}
.tour-row:nth-of-type(even):before {
	inset: 20px 32% 5px -15px;
	transform: rotate(-2deg)
}
.tour-photo {
	height: 360px;
	max-height: none;
	border: 9px solid #fffdf6;
	border-bottom-width: 28px;
	border-radius: 8px;
	transform: rotate(-4deg);
	box-shadow: 0 12px 25px #24566720;
	z-index: 1
}
.tour-body {
	padding: 20px 25px 25px 38px;
	position: relative;
	z-index: 2
}
.tour-row:nth-of-type(even) .tour-body {
	padding: 20px 38px 25px 25px
}
.tour-number {
	font-size: 76px;
	transform: rotate(-6deg);
	line-height: 1
}
.tour-tag {
	background: #e9f4d6;
	border-color: #bfd595;
	transform: rotate(3deg);
	padding: 5px 14px
}
.tour-body h3 {
	font-size: 23px;
	line-height: 1.7
}
.tour-body details {
	background: #fffef899
}
.trail-break {
	height: 155px;
	position: relative;
	display: flex;
	gap: 28px;
	align-items: center;
	justify-content: flex-end;
	padding-right: 10%;
	z-index: 1
}
.trail-break:nth-of-type(even) {
	justify-content: flex-start;
	padding-left: 10%;
	padding-right: 0
}
.trail-art {
	width: 190px;
	height: 165px
}
.trail-break p {
	font-family: serif;
	font-size: 14px;
	transform: rotate(-5deg);
	color: #45798a;
	margin: 0
}
.trail-break p span {
	display: block;
	font-family: Georgia, serif;
	font-style: italic;
	font-size: 30px
}
.chapter-end {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 60px;
	padding: 70px 20px 35px
}
.chapter-end p {
	font-family: serif;
	font-size: 28px;
	transform: rotate(-5deg);
	line-height: 1.8
}
.chapter-coffee {
	width: 340px
}
.sub-cafe .sub-hero {
	height: 400px
}
.sub-cafe .sub-hero > div {
	align-items: flex-start;
	padding-left: 12%;
	transform: rotate(-5deg)
}
.sub-cafe {
	position: relative
}
.sub-cafe > .sub-intro {
	padding-bottom: 25px
}
.art-request {
	position: relative;
	margin: 10px auto 55px;
	width: 340px;
	max-width: 90%;
	text-align: center
}
.art-request > img {
	width: 100%;
	height: 190px;
	object-fit: contain
}
.art-request figcaption {
	font-size: 11px;
	line-height: 1.8;
	color: #5b7263;
	max-width: 310px;
	margin: -18px auto 0
}
.art-request figcaption span {
	display: block;
	font-size: 10px;
	letter-spacing: .14em;
	color: #7b8d7a;
	margin-bottom: 5px
}
.art-request-cabin {
	margin: 0 8% 40px auto;
	width: 370px
}
.cafe-menu {
	position: relative
}
.menu-feature {
	position: relative;
	overflow: visible;
	background: transparent;
	grid-template-columns: 60% 1fr;
	gap: 0;
	align-items: center
}
.menu-feature > img {
	border: 10px solid #fffdf8;
	border-bottom-width: 40px;
	border-radius: 4px;
	transform: rotate(-5deg);
	box-shadow: 0 15px 30px #684c241c;
	min-height: 400px
}
.menu-feature > div {
	position: relative;
	background: #fffdf8;
	padding: 45px 30px;
	margin-left: -35px;
	transform: rotate(2deg);
	border-radius: 5px 28px 7px 20px;
	box-shadow: 0 12px 30px #684c240f
}
.menu-feature h3 {
	font-size: 29px
}
.menu-sticker {
	position: absolute;
	z-index: 3;
	left: -20px;
	top: -30px;
	border: 2px solid #a38957;
	background: #fff3bd;
	border-radius: 50%;
	width: 135px;
	height: 135px;
	display: grid;
	place-content: center;
	text-align: center;
	font-family: serif;
	font-size: 17px;
	transform: rotate(-13deg);
	box-shadow: 4px 5px 0 #f3df9c80
}
.cafe-visit {
	position: relative;
	margin-top: 100px;
	padding: 40px 30px 50px 38%;
	background: #fffaf0;
	border-radius: 58% 42% 60% 40% / 12% 20% 15% 18%
}
.visit-coffee {
	position: absolute;
	width: 44%;
	left: -6%;
	top: 70px
}
.wide-landscape {
	width: 100%;
	margin: 25px auto -30px;
	max-height: 330px;
	object-fit: contain
}
.about-page .sub-intro > img {
	width: 140%;
	margin-left: -8%
}
.about-story {
	position: relative;
	padding: 95px 0 55px;
	border-radius: 50% 50% 0 0 / 40px 30px 0 0
}
.story-forest {
	position: absolute;
	left: -35px;
	top: -80px;
	width: 200px
}
.story-birds {
	position: absolute;
	right: 4%;
	top: 25px;
	width: 210px
}
.about-story .container {
	position: relative;
	z-index: 1
}
.about-story > .container > p {
	font-size: 17px;
	line-height: 2.6
}
.story-gallery {
	gap: 32px;
	margin: 65px 0 40px;
	padding: 0 20px
}
.story-gallery figure {
	margin: 0;
	background: #fffdf7;
	padding: 12px 12px 20px;
	transform: rotate(-5deg);
	box-shadow: 0 8px 20px #28545a1a
}
.story-gallery figure:nth-child(2) {
	transform: translateY(24px) rotate(4deg)
}
.story-gallery figure:nth-child(3) {
	transform: rotate(-2deg)
}
.story-gallery img {
	border-radius: 0;
	height: 210px
}
.story-gallery figure:not(:first-child) img {
	object-fit: cover
}
.story-gallery figcaption {
	font-family: serif;
	text-align: center;
	font-size: 14px;
	margin-top: 18px;
	letter-spacing: .07em
}
.art-request-friends {
	width: 440px;
	margin: 70px auto 0
}
.art-request-friends > img {
	height: 220px
}
.inquiry {
	padding-top: 70px;
	position: relative
}
.inquiry .container {
	position: relative;
	z-index: 1
}
.contact-forest {
	position: absolute;
	width: 220px;
	right: -40px;
	bottom: 70px
}
.contact-rocks {
	position: absolute;
	width: 230px;
	left: -45px;
	bottom: 0
}
.art-request-letter {
	width: 230px;
	margin: 20px auto
}
.art-request-letter > img {
	height: 140px
}
.inquiry form {
	background: #fffdf4;
	padding: 45px 40px;
	border-radius: 30px 8px 30px 10px;
	box-shadow: 8px 10px 0 #9ccfd02b;
	position: relative
}
.inquiry form:before {
	content: '';
	position: absolute;
	top: -10px;
	left: 43%;
	width: 100px;
	height: 26px;
	background: #d1d8ad99;
	transform: rotate(-5deg)
}
.policies {
	gap: 40px;
	padding-top: 75px
}
.policies article {
	position: relative;
	border-radius: 30px 5px 35px 8px;
	padding: 40px;
	box-shadow: 0 8px 25px #765a2910
}
.policy-leaf {
	position: absolute;
	width: 40px;
	right: 14px;
	top: -15px;
	transform: rotate(25deg)
}
.about-end {
	margin-top: -75px;
	margin-bottom: 20px
}
@media(max-width:1000px) {
	.tour-body h3 {
		font-size: 19px
	}
	.tour-photo {
		height: 330px
	}
	.tour-number {
		font-size: 58px
	}
	.story-birds {
		width: 140px;
		right: 0
	}
	.story-forest {
		width: 130px
	}
	.plan-source {
		width: 180px
	}
	.inquiry form {
		max-width: 740px
	}
	.intro-forest {
		width: 100px
	}
}
@media(max-width:767px) {
	.sub-hero {
		height: 300px
	}
	.sub-hero > div {
		padding-right: 8%
	}
	.sub-hero h1 {
		font-size: 65px
	}
	.sub-hero:after {
		height: 42px
	}
	.section-nav {
		gap: 12px;
		padding-inline: 12px
	}
	.section-nav a {
		padding: 8px 15px
	}
	.sub-intro {
		padding-block: 42px 30px;
		min-height: 0
	}
	.sub-intro h2 {
		font-size: 32px
	}
	.sub-intro > img {
		width: 110%;
		max-height: 290px;
		margin: 0 0 0 -3%
	}
	.intro-forest {
		display: none
	}
	.benefits {
		gap: 16px;
		margin-top: 25px;
		margin-bottom: 70px
	}
	.benefits img {
		height: 72px;
		width: 100px
	}
	.benefits > div {
		padding: 15px 8px 20px
	}
	.tour-section {
		padding-top: 80px
	}
	.plan-source {
		width: 135px;
		top: -50px;
		left: -10px
	}
	.hand-note {
		font-size: 17px
	}
	.sub-heading {
		margin-bottom: 40px
	}
	.sub-heading > p {
		font-size: 36px
	}
	.tour-row, .tour-row:nth-child(even), .tour-row:nth-of-type(even) {
		display: flex;
		flex-direction: column;
		gap: 0;
		min-height: 0
	}
	.tour-row:before, .tour-row:nth-of-type(even):before {
		inset: 130px 0 0;
		border-radius: 25px;
		transform: rotate(1deg)
	}
	.tour-photo, .tour-row:nth-of-type(even) > .tour-photo {
		width: 92%;
		height: 260px;
		min-height: 0;
		border-width: 7px;
		border-bottom-width: 22px;
		transform: rotate(-4deg)
	}
	.tour-row:nth-of-type(even) > .tour-photo {
		transform: rotate(4deg)
	}
	.tour-body, .tour-row:nth-of-type(even) .tour-body {
		width: 100%;
		padding: 25px 22px 28px
	}
	.tour-number {
		font-size: 63px
	}
	.tour-body h3 {
		font-size: 20px
	}
	.tour-top {
		gap: 5px
	}
	.tour-tag {
		font-size: 10px
	}
	.trail-break, .trail-break:nth-of-type(even) {
		height: 140px;
		padding: 0 5%;
		gap: 12px
	}
	.trail-art {
		width: 135px;
		height: 125px
	}
	.trail-break p {
		font-size: 12px
	}
	.trail-break p span {
		font-size: 24px
	}
	.chapter-end {
		gap: 10px;
		padding: 45px 20px 25px
	}
	.chapter-end p {
		font-size: 20px;
		flex-shrink: 0
	}
	.chapter-coffee {
		width: 48%
	}
	.sub-cafe .sub-hero {
		height: 280px
	}
	.art-request-cabin {
		width: 280px;
		margin: 0 auto 45px
	}
	.art-request > img {
		height: 165px
	}
	.menu-feature {
		grid-template-columns: 1fr
	}
	.menu-feature > img {
		min-height: 0;
		height: 300px;
		border-bottom-width: 28px
	}
	.menu-feature > div {
		margin: -15px 0 0 18px;
		padding: 30px 25px;
		transform: rotate(2deg)
	}
	.menu-feature h3 {
		font-size: 26px
	}
	.menu-sticker {
		width: 105px;
		height: 105px;
		font-size: 14px;
		left: -8px;
		top: -30px
	}
	.cafe-visit {
		margin-top: 50px;
		padding: 25px 15px 40px
	}
	.visit-coffee {
		position: relative;
		inset: auto;
		width: 70%;
		margin: 0 auto 20px
	}
	.wide-landscape {
		width: 125%;
		max-width: none;
		margin-left: -12.5%;
		margin-bottom: -20px
	}
	.about-page .sub-intro > img {
		width: 120%;
		margin-left: -5%;
		max-height: 300px
	}
	.about-story {
		padding-top: 80px
	}
	.story-forest {
		width: 110px;
		top: -35px
	}
	.story-birds {
		width: 100px;
		top: 0
	}
	.about-story > .container > p {
		font-size: 14px;
		line-height: 2.5
	}
	.story-gallery {
		grid-template-columns: 1fr;
		max-width: 320px;
		margin: 40px auto;
		gap: 25px;
		padding: 0 15px
	}
	.story-gallery figure:nth-child(2) {
		transform: rotate(5deg)
	}
	.story-gallery img {
		height: 200px
	}
	.story-gallery figcaption {
		font-size: 13px
	}
	.art-request-friends {
		margin-top: 40px
	}
	.art-request-friends > img {
		height: 180px
	}
	.inquiry {
		padding-top: 45px;
		padding-bottom: 100px
	}
	.inquiry form {
		padding: 30px 20px;
		gap: 10px
	}
	.contact-forest {
		width: 130px;
		bottom: -5px;
		right: -25px
	}
	.contact-rocks {
		width: 130px;
		bottom: -10px
	}
	.art-request-letter > img {
		height: 120px
	}
	.policies {
		padding-top: 65px;
		gap: 30px
	}
	.policies article {
		padding: 30px 25px
	}
	.about-end {
		margin-top: -50px;
		margin-bottom: 25px
	}
}
/* Supplied artwork replaces the three lower-page illustration placeholders. */
.illustration-scene {
	position: relative;
	max-width: 90%;
}
.illustration-scene > img {
	display: block;
	width: 100%;
	height: auto;
}
.illustration-cabin {
	width: 470px;
	margin: 0 8% 55px auto;
}
.illustration-friends {
	width: 620px;
	margin: 65px auto 0;
}
.illustration-letter {
	width: 250px;
	margin: 20px auto 30px;
}
@media (max-width: 767px) {
	.illustration-cabin {
		width: 320px;
		margin: 0 auto 45px;
	}
	.illustration-friends {
		width: 380px;
		margin-top: 40px;
	}
	.illustration-letter {
		width: 210px;
	}
}
/* Full-width, irregular section edges use the same artwork as TOP. */
.subpage {
	--wave-height: clamp(38px, 5vw, 86px);
}
.subpage .sub-hero::after {
	inset: auto 0 -1px;
	width: 100%;
	height: var(--wave-height);
	border-radius: 0;
	background: url('../img/common/line-m.png') center bottom / 100% 100% no-repeat;
}
.subpage :is(.tour-section, .about-story, .cafe-picks, .policy-area) {
	border-radius: 0;
}
.subpage :is(.tour-section, .about-story, .cafe-picks, .policy-area)::before {
	content: '';
	position: absolute;
	left: 0;
	top: calc(1px - var(--wave-height));
	width: 100%;
	height: var(--wave-height);
	pointer-events: none;
	background: url('../img/common/line-b.png') center bottom / 100% 100% no-repeat;
	z-index: 0;
}
.subpage .inquiry {
	background: var(--cream);
	padding-top: 100px;
	padding-bottom: 150px;
}
.subpage .inquiry::before {
	content: '';
	position: absolute;
	left: 0;
	top: calc(1px - var(--wave-height));
	width: 100%;
	height: var(--wave-height);
	pointer-events: none;
	background: url('../img/common/line-m.png') center bottom / 100% 100% no-repeat;
}
.sub-cafe > .sub-hero::before {
	inset: 0 0 auto;
	height: var(--wave-height);
	z-index: 2;
	background: url('../img/common/line-b.png') center bottom / 100% 100% no-repeat;
	transform: rotate(180deg);
}
.subpage .cafe-picks {
	position: relative;
	padding: 80px 0 100px;
	margin-top: 110px;
}
.cafe-picks::after, .policy-area::after {
	content: '';
	position: absolute;
	inset: auto 0 -1px;
	height: var(--wave-height);
	pointer-events: none;
	background: url('../img/common/line-m.png') center bottom / 100% 100% no-repeat;
}
.subpage .policy-area {
	position: relative;
	padding-bottom: 65px;
}
.subpage .policy-area .policies {
	padding-bottom: 60px;
}
.subpage .about-story {
	padding-bottom: 115px;
}
.subpage .about-end {
	margin-top: 0;
}
/* Artwork is part of the scene, crossing the edges of the content panels. */
.activity-page > .sub-hero {
	height: clamp(390px, 41vw, 610px);
}
.activity-page > .sub-hero > img {
	object-position: center 55%;
}
.activity-page #activity {
	grid-template-columns: 43% 57%;
	max-width: 1260px;
	padding-block: 40px 0;
	min-height: 570px;
}
.activity-page #activity > div:first-child {
	position: relative;
	z-index: 2;
	padding-bottom: 40px;
}
.intro-adventure {
	position: relative;
	align-self: stretch;
	min-height: 520px;
}
.intro-jump {
	position: relative;
	width: 130%;
	max-width: none;
	margin: -20px 0 0 -10%;
	z-index: 2;
	transform: rotate(-7deg);
}
.intro-stream {
	position: absolute;
	width: 110%;
	max-width: none;
	right: -25%;
	bottom: -65px;
	opacity: .85;
}
.adventure-stamp {
	position: absolute;
	z-index: 3;
	right: 3%;
	top: 3%;
	font: italic 700 clamp(35px, 4.8vw, 68px)/.95 Georgia, serif;
	color: #1498c0;
	transform: rotate(12deg);
	text-shadow: 3px 3px #fff7e6;
}
.activity-page .benefits {
	margin-top: 20px;
	margin-bottom: 145px;
}
.subpage .tour-forest {
	position: absolute;
	width: 230px;
	right: -45px;
	top: -145px;
	z-index: 1;
}
.subpage .plan-source {
	width: 310px;
	top: -90px;
	left: -60px;
}
.subpage .tour-list {
	max-width: 1180px;
}
.subpage .tour-photo {
	height: 415px;
	border-radius: 48% 10% 12% 8% / 12% 8% 15% 9%;
	border-width: 0;
	box-shadow: 12px 15px 0 #f8f7e9;
}
.subpage .tour-row:nth-of-type(even) > .tour-photo {
	border-radius: 8% 45% 10% 14% / 10% 12% 8% 15%;
	box-shadow: -12px 15px 0 #f8f7e9;
}
.subpage .tour-row::before {
	inset: 30px -10px 0 30%;
	transform: rotate(3deg);
}
.subpage .tour-row:nth-of-type(even)::before {
	inset: 30px 30% 0 -10px;
	transform: rotate(-3deg);
}
.subpage .tour-number {
	font-size: 100px;
	margin-top: -28px;
}
.subpage .tour-body h3 {
	font-size: 25px;
}
.subpage .trail-break {
	height: 220px;
	gap: 30px;
}
.subpage .trail-art {
	width: 300px;
	height: 245px;
	transform: rotate(-6deg);
}
.subpage .trail-break:nth-of-type(even) .trail-art {
	transform: rotate(5deg);
}
.subpage .trail-break p span {
	font-size: 40px;
}
.subpage .chapter-end {
	padding-block: 45px 70px;
}
.subpage .chapter-coffee {
	width: 440px;
}
.subpage .cafe-scene-hero {
	height: 500px;
	background: #e1f0e5;
}
.subpage .cafe-scene-hero > img {
	object-position: center 62%;
}
.subpage .cafe-scene-hero > div {
	align-items: flex-end;
	padding-right: 9%;
	padding-left: 0;
	transform: rotate(5deg);
	text-shadow: 0 3px 9px #123b40;
}
.subpage .cafe-scene-hero .hero-title {
	font-size: 100px;
}
.subpage .illustration-cabin {
	width: 620px;
	margin-top: -45px;
	margin-bottom: 100px;
	transform: rotate(3deg);
}
.subpage .menu-forest {
	position: absolute;
	width: 220px;
	left: -55px;
	top: -145px;
}
.subpage .menu-feature {
	padding-top: 20px;
}
.subpage .cafe-visit {
	background: var(--cream);
}
.subpage .visit-coffee {
	width: 53%;
	left: -12%;
	top: 40px;
}
.subpage .story-forest {
	width: 265px;
	left: -75px;
	top: -110px;
}
.subpage .illustration-friends {
	width: 820px;
	margin-top: 80px;
}
.subpage .illustration-letter {
	width: 320px;
	transform: rotate(-10deg);
	margin-top: 0;
	margin-bottom: -5px;
}
.subpage .contact-forest {
	width: 310px;
	right: -65px;
	bottom: 30px;
}
.subpage .contact-rocks {
	width: 330px;
	left: -70px;
	bottom: 0;
}
@media (max-width: 1000px) and (min-width: 768px) {
	.activity-page #activity {
		min-height: 460px;
	}
	.intro-adventure {
		min-height: 430px;
	}
	.subpage .tour-photo {
		height: 360px;
	}
	.subpage .tour-body h3 {
		font-size: 20px;
	}
	.subpage .tour-number {
		font-size: 80px;
	}
}
@media (max-width: 767px) {
	.activity-page > .sub-hero {
		height: 350px;
	}
	.activity-page > .sub-hero > img {
		object-position: 55% center;
	}
	.activity-page #activity {
		grid-template-columns: 1fr;
		padding-top: 35px;
		min-height: 0;
		gap: 0;
	}
	.activity-page #activity > div:first-child {
		padding-bottom: 0;
	}
	.intro-adventure {
		min-height: 0;
		height: 350px;
	}
	.intro-jump {
		width: 118%;
		margin: 0 0 0 -10%;
	}
	.intro-stream {
		width: 85%;
		bottom: -5px;
		right: -18%;
	}
	.adventure-stamp {
		font-size: 48px;
		top: 3%;
		right: 0;
	}
	.activity-page .benefits {
		margin-top: 5px;
		margin-bottom: 100px;
	}
	.subpage .tour-forest {
		width: 140px;
		top: -90px;
		right: -35px;
	}
	.subpage .plan-source {
		width: 160px;
		top: -55px;
		left: -35px;
	}
	.subpage .tour-photo, .subpage .tour-row:nth-of-type(even) > .tour-photo {
		height: 290px;
		width: 92%;
		border-width: 0;
		box-shadow: 7px 9px 0 #f8f7e9;
	}
	.subpage .tour-row::before, .subpage .tour-row:nth-of-type(even)::before {
		inset: 130px 0 0;
		transform: rotate(1deg);
	}
	.subpage .tour-number {
		font-size: 75px;
		margin-top: 0;
	}
	.subpage .tour-body h3 {
		font-size: 21px;
	}
	.subpage .trail-break {
		height: 175px;
		gap: 12px;
	}
	.subpage .trail-art {
		width: 190px;
		height: 175px;
	}
	.subpage .trail-break p {
		font-size: 11px;
	}
	.subpage .trail-break p span {
		font-size: 26px;
	}
	.subpage .chapter-end {
		padding-block: 25px 40px;
	}
	.subpage .chapter-coffee {
		width: 52%;
	}
	.subpage .cafe-scene-hero {
		height: 340px;
	}
	.subpage .cafe-scene-hero .hero-title {
		font-size: 76px;
	}
	.subpage .cafe-scene-hero > div {
		padding-right: 8%;
	}
	.subpage .cafe-scene-hero p {
		font-size: 11px;
	}
	.subpage .illustration-cabin {
		width: 92%;
		margin: 10px auto 85px;
	}
	.subpage .cafe-picks {
		margin-top: 55px;
		padding: 55px 0 70px;
	}
	.subpage .menu-forest {
		width: 120px;
		top: -100px;
		left: -25px;
	}
	.subpage .visit-coffee {
		position: relative;
		width: 95%;
		inset: auto;
		margin: 0 auto 20px;
	}
	.subpage .story-forest {
		width: 150px;
		top: -80px;
		left: -45px;
	}
	.subpage .about-story {
		padding-bottom: 75px;
	}
	.subpage .illustration-friends {
		width: 112%;
		max-width: none;
		margin: 50px 0 0 -6%;
	}
	.subpage .inquiry {
		padding-top: 60px;
		padding-bottom: 120px;
	}
	.subpage .illustration-letter {
		width: 240px;
	}
	.subpage .contact-forest {
		width: 180px;
		right: -40px;
		bottom: 10px;
	}
	.subpage .contact-rocks {
		width: 170px;
		left: -35px;
		bottom: 0;
	}
	.subpage .policy-area {
		padding-bottom: 35px;
	}
	.subpage .policy-area .policies {
		padding-top: 45px;
		padding-bottom: 45px;
	}
}
.subpage .story-gallery img.gallery-illustration {
	object-fit: contain;
}
.activity-page #activity {
	column-gap: 0;
}
.adventure-stamp {
	right: 8%;
}
/* Cafe: one cream wave from activities, then blue menu and cream visit section. */
.cafe-renewed {
	position: relative;
	background: var(--cream);
	padding-top: 20px;
}
.cafe-renewed::before, .cafe-menu-section::before, .cafe-place::before {
	content: '';
	position: absolute;
	width: 100%;
	height: var(--wave-height);
	left: 0;
	top: calc(1px - var(--wave-height));
	pointer-events: none;
	background: url('../img/common/line-m.png') center bottom/100% 100% no-repeat;
}
.activity-page .tour-section {
	padding-bottom: 110px;
}
.cafe-opening {
	display: grid;
	grid-template-columns: 44% 56%;
	align-items: center;
	padding-block: 55px 100px;
	max-width: 1240px;
}
.cafe-opening-copy {
	position: relative;
	z-index: 2;
}
.cafe-opening .hand-note {
	font-size: 17px;
	text-align: left;
	margin-bottom: 35px;
}
.cafe-opening h2 {
	margin-bottom: 30px;
	line-height: 1;
}
.cafe-opening h2 > span {
	display: block;
	font: italic 90px/1 Georgia, serif;
	color: var(--brown);
	transform: rotate(-5deg);
}
.cafe-opening h2 > small {
	display: block;
	color: #6c8964;
	font-size: 14px;
	letter-spacing: .16em;
	margin: 20px 0 0 10px;
}
.cafe-opening h3, .cafe-place h3 {
	font-family: serif;
	font-size: 32px;
	line-height: 1.7;
	font-weight: 500;
	margin-bottom: 24px;
}
.cafe-opening-copy > p:not(.hand-note) {
	line-height: 2.2;
	font-size: 15px;
}
.cafe-opening-art {
	position: relative;
	margin-right: -70px;
}
.cafe-opening-art > img {
	width: 115%;
	max-width: none;
	margin-left: -5%;
	transform: rotate(3deg);
}
.cafe-opening-art > span {
	position: absolute;
	bottom: 2%;
	right: 12%;
	background: #fff8de;
	padding: 22px 28px;
	border-radius: 50%;
	transform: rotate(8deg);
	font-family: serif;
	font-size: 18px;
	box-shadow: 3px 4px 0 #d7d7b480;
}
.cafe-jump {
	display: inline-block;
	border-bottom: 1px solid #9e815b;
	padding-bottom: 5px;
	color: var(--brown);
	font-size: 13px;
}
.cafe-menu-section {
	position: relative;
	background: var(--blue);
	padding: 65px 0 120px;
}
.cafe-menu-section::before {
	background-image: url('../img/common/line-b.png');
}
.cafe-menu-tree {
	position: absolute;
	width: 170px;
	left: -40px;
	top: -95px;
	pointer-events: none;
}
.cafe-menu-inner {
	max-width: 1120px;
	position: relative;
}
.food-picks {
	display: grid;
	grid-template-columns: 1.08fr 1fr;
	gap: 32px;
	align-items: start;
}
.food-card {
	position: relative;
	background: #fffdf7;
	border-radius: 25px 12px 22px 15px;
	box-shadow: 0 10px 25px #215c6810;
}
.cubano-card {
	transform: rotate(-2deg);
}
.rice-card {
	transform: rotate(2deg);
	margin-top: 35px;
}
.food-visual {
	position: relative;
}
.food-visual > img {
	width: 100%;
	height: 330px;
	object-fit: cover;
	border-radius: 25px 12px 0 0;
}
.food-badge {
	position: absolute;
	top: -20px;
	left: 18px;
	width: 98px;
	height: 98px;
	background: #fff2bd;
	border-radius: 50%;
	display: grid;
	place-content: center;
	text-align: center;
	font-family: serif;
	font-size: 18px;
	transform: rotate(-10deg);
}
.food-copy {
	padding: 28px 30px 32px;
}
.menu-kicker {
	font: italic 13px/1.5 Georgia, serif;
	color: #6c8a66;
	letter-spacing: .12em;
	margin-bottom: 10px;
}
.food-copy h3 {
	font-size: 25px;
	margin-bottom: 16px;
	color: #654526;
}
.food-copy > p {
	font-size: 14px;
	line-height: 2;
}
.menu-price {
	font-size: 24px !important;
	font-weight: 700;
	color: #a24b25;
	margin: 12px 0;
}
.menu-price small {
	font-size: 12px;
	color: #665e51;
	font-weight: 400;
	display: block;
}
.set-note {
	border-top: 1px dashed #c5baa1;
	padding-top: 18px;
	margin-top: 20px;
	font-size: 12px;
}
.set-note strong {
	font-size: 13px;
}
.set-note p {
	margin: 10px 0;
}
.set-note b {
	color: #a24b25;
	font-size: 21px;
}
.set-note small {
	font-size: 11px;
}
.rice-visual {
	height: 270px;
	position: relative;
	/*display: grid;
	place-content: center;
	background: #f4edcf;*/
	border-radius: 25px 12px 40% 12% / 25px 12px 12% 8%;
	/*padding-top: 20px;*/
	overflow: hidden
}
.rice-visual > img {
	width: 100%;
	/*height: 215px;
	object-fit: contain;*/
	height: 100%;
	object-fit: cover;
}
.rice-local {
	position: absolute;
	top: 20px;
	left: 22px;
	font-size: 13px;
	color: #5d704b;
	letter-spacing: .1em;
}
.rice-note {
	position: absolute;
	bottom: 8px;
	right: 20px;
	font-family: serif;
	font-size: 16px;
	transform: rotate(-7deg);
	color: #7b6b43;
}
.menu-lines {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 10px 18px;
	margin: 20px 0 0;
	font-size: 14px;
}
.menu-lines dt, .menu-lines dd {
	margin: 0;
	padding-bottom: 9px;
	border-bottom: 1px dotted #d0c8b4;
}
.menu-lines dd {
	white-space: nowrap;
	font-weight: 600;
	color: #80532d;
}
.little-menu {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
	margin-top: 35px;
}
.little-menu article {
	background: #fffdf7;
	border-radius: 14px 25px 12px 22px;
	padding: 28px 24px;
	position: relative;
}
.little-menu h3 {
	font-size: 19px;
	margin-bottom: 15px;
	color: #654526;
}
.little-menu p {
	font-size: 13px;
}
.little-menu .menu-lines {
	font-size: 13px;
}
.drink-leaf {
	position: absolute;
	width: 35px;
	right: 8px;
	top: -10px;
	transform: rotate(20deg);
}
.drinks-board {
	margin: 35px auto 0;
	padding: 35px 40px;
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	align-items: center;
	gap: 35px;
	background: #fffdf6;
	border-radius: 12px;
	border: 1px solid #e1d9c5;
}
.drinks-board h3 {
	font-family: serif;
	font-size: 24px;
	font-weight: 500;
	margin-bottom: 16px;
}
.drinks-board p {
	font-size: 12px;
}
.drinks-board .menu-lines {
	margin-top: 0;
}
.picnic-box {
	display: grid;
	grid-template-columns: 46% 54%;
	gap: 25px;
	align-items: center;
	margin: 55px 0 30px;
}
.picnic-box > img {
	width: 115%;
	max-width: none;
	margin-left: -10%;
}
.picnic-box > div {
	position: relative;
	z-index: 1;
	background: #fff9e9;
	padding: 30px;
	border-radius: 22px 8px 28px 12px;
	transform: rotate(-2deg);
}
.picnic-box h3 {
	font-size: 23px;
	margin-bottom: 15px;
}
.picnic-box p {
	font-size: 13px;
	margin-bottom: 12px;
}
.reservation-tag {
	display: inline-block;
	color: #a24b25;
	font-size: 12px;
	border: 1px solid #d3a874;
	border-radius: 30px;
	padding: 3px 12px;
	margin-bottom: 15px;
}
.picnic-box .button {
	font-size: 13px;
}
.menu-footnote {
	font-size: 11px;
	text-align: center;
	margin-top: 40px;
}
.full-menu {
	max-width: 760px;
	margin: 25px auto 0;
}
.full-menu summary {
	cursor: pointer;
	background: var(--brown);
	color: #fffaf0;
	padding: 12px 25px;
	border-radius: 30px;
	width: 300px;
	max-width: 100%;
	margin: auto;
	text-align: center;
	font-size: 14px;
}
.full-menu summary span {
	margin-left: 15px;
}
.full-menu[open] summary {
	margin-bottom: 25px;
}
.full-menu > img {
	width: 100%;
	height: auto;
	border-radius: 8px;
}
.cafe-place {
	position: relative;
	background: var(--cream);
	padding: 65px 0 110px;
}
.cafe-place-inner {
	display: grid;
	grid-template-columns: 52% 48%;
	align-items: center;
	gap: 40px;
	max-width: 1160px;
}
.cafe-place-visual {
	position: relative;
	padding-bottom: 100px;
}
.cafe-place-visual > img:first-child {
	width: 110%;
	max-width: none;
	margin-left: -10%;
	transform: rotate(-4deg);
}
.cafe-place-visual .place-building {
	width: 80%;
	margin: -15px 0 -50px 10%;
	transform: rotate(3deg);
}
.cafe-place-copy {
	padding-right: 30px;
}
.cafe-place-copy .hand-note {
	text-align: left;
	font-size: 22px;
}
.cafe-place-copy > p {
	font-size: 14px;
}
.cafe-place .menu-lines {
	grid-template-columns: 90px 1fr;
	font-size: 13px;
	margin-bottom: 25px;
}
.cafe-place .menu-lines dd {
	white-space: normal;
}
.cafe-place .button {
	font-size: 13px;
}
@media(max-width:767px) {
	.activity-page .tour-section {
		padding-bottom: 85px;
	}
	.cafe-opening {
		grid-template-columns: 1fr;
		padding: 35px 0 80px;
	}
	.cafe-opening .hand-note {
		font-size: 14px;
	}
	.cafe-opening h2 > span {
		font-size: 76px;
	}
	.cafe-opening h3, .cafe-place h3 {
		font-size: 27px;
	}
	.cafe-opening-art {
		margin: 35px -10px 0;
	}
	.cafe-opening-art > img {
		width: 110%;
	}
	.cafe-opening-art > span {
		padding: 14px 18px;
		font-size: 14px;
		bottom: 0;
		right: 8%;
	}
	.cafe-menu-section {
		padding: 50px 0 90px;
	}
	.cafe-menu-tree {
		width: 100px;
		left: -25px;
		top: -70px;
	}
	.cafe-menu-section .sub-heading h2 {
		font-size: 13px;
	}
	.food-picks {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.rice-card {
		margin-top: 0;
	}
	.food-visual > img {
		height: 270px;
	}
	.food-copy {
		padding: 25px;
	}
	.rice-visual {
		height: 245px;
	}
	.rice-visual > img {
		height: 190px;
	}
	.rice-local {
		font-size: 12px;
	}
	.little-menu {
		grid-template-columns: 1fr;
		gap: 18px;
		margin-top: 30px;
	}
	.little-menu article {
		padding: 25px;
	}
	.little-menu .menu-lines {
		font-size: 14px;
	}
	.little-menu h3 {
		font-size: 21px;
	}
	.drinks-board {
		grid-template-columns: 1fr;
		gap: 10px;
		padding: 25px 20px;
	}
	.drinks-board .menu-lines {
		font-size: 12px;
		gap: 8px 10px;
	}
	.picnic-box {
		grid-template-columns: 1fr;
		gap: 0;
		margin-top: 35px;
	}
	.picnic-box > img {
		width: 110%;
		margin-left: -5%;
	}
	.picnic-box > div {
		margin-top: -12px;
		padding: 25px;
	}
	.picnic-box h3 {
		font-size: 22px;
	}
	.menu-footnote {
		line-height: 1.9;
	}
	.cafe-place {
		padding: 35px 0 80px;
	}
	.cafe-place-inner {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.cafe-place-visual {
		padding-bottom: 20px;
	}
	.cafe-place-visual .place-building {
		margin-bottom: 0;
	}
	.cafe-place-copy {
		padding-right: 0;
	}
	.cafe-place .menu-lines {
		font-size: 12px;
		grid-template-columns: 80px 1fr;
	}
}
.picnic-box {
	grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
}
.cafe-place-inner {
	grid-template-columns: minmax(0, 52fr) minmax(0, 48fr);
}
@media(max-width:767px) {
	.picnic-box, .cafe-place-inner {
		grid-template-columns: minmax(0, 1fr);
	}
}
/* About: landscape-led introduction and alternating, readable story panels. */
.about-page .about-hero { height:390px; }
.about-page #about { padding-block:55px 95px; max-width:1160px; }
.about-page #about h2 { font-size:clamp(32px,3.8vw,50px); }
.about-page #about>img { width:125%; margin-left:-5%; max-height:440px; }
.about-page .about-story { padding-top:70px; }
.about-page .about-moments { display:grid; grid-template-columns:1.15fr 1fr 1fr; gap:24px; align-items:center; margin:60px auto 20px; padding:0; }
.about-page .about-moments figure { padding:9px 9px 22px; }
.about-page .about-moments img { height:280px; object-fit:cover!important; }
.about-page .about-moments figure:nth-child(2) { transform:translateY(40px) rotate(4deg); }
.about-page .about-moments figure:nth-child(3) { transform:translateY(-15px) rotate(-4deg); }
.about-page .illustration-friends { width:640px; margin-top:65px; }
.about-page .inquiry { padding-top:65px; }
.about-page .illustration-letter { width:190px; margin:0 auto 20px; }
.about-page .inquiry form { max-width:860px; grid-template-columns:165px minmax(0,1fr); border:1px solid #e5e0cb; padding:40px; }
.inquiry .field-help { grid-column:2; margin:-10px 0 0; font-size:12px; color:#59685f; }
.inquiry label small { font-size:10px; color:#986148; }
.inquiry .form-trap { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.inquiry .form-note { line-height:1.9; padding:12px 14px; background:#eef5ee; border-radius:6px; }
.inquiry .form-note.is-success { border:1px solid #6e9a72; color:#315b38; }
.inquiry [aria-invalid="true"] { border-color:#ad5036; }
.inquiry noscript { grid-column:1/-1; font-size:13px; }
@media(max-width:767px) {
 .about-page .about-hero { height:270px; }.about-page #about { padding-block:30px 65px; }
 .about-page #about>img { width:115%; max-height:300px; }
 .about-page .about-moments { grid-template-columns:1fr; max-width:320px; gap:30px; margin-top:40px; }
 .about-page .about-moments img { height:220px; }.about-page .about-moments figure:nth-child(2) { transform:rotate(4deg); }.about-page .about-moments figure:nth-child(3) { transform:rotate(-4deg); }
 .about-page .illustration-friends { width:110%; margin:40px 0 0 -5%; }
 .about-page .inquiry { padding-top:40px; }.about-page .inquiry form { grid-template-columns:minmax(0,1fr); padding:28px 20px; }
 .inquiry .field-help { grid-column:1; margin:0; }.about-page .illustration-letter { width:165px; }
}

/* Like TOP's Instagram ending, keep the landscape inside the blue section. */
.about-page .policy-area { padding-bottom: 0; }
.about-page .policy-area::after { content: none; }
.about-page .policy-area .policies { position: relative; z-index: 2; padding-bottom: 60px; }
.about-page .policy-landscape {
 width: 120%; max-width: none; height: auto; max-height: none;
 position: relative; left: 50%; transform: translateX(-50%); z-index: 1;
 margin: -260px 0 -60px; pointer-events: none;
}
@media (max-width: 767px) {
 .about-page .policy-area .policies { padding-bottom: 0; }
 .about-page .policy-landscape { width: 150%; margin: 20px 0 -25px; }
}

/* Let the landscape's natural edge paint over the footer, without vertical clipping. */
main.about-page {
 overflow-x: clip;
 overflow-y: visible;
 position: relative;
 z-index: 1;
}
.about-page + .footer {
 position: relative;
 z-index: 0;
 padding-top: 110px;
}
.about-page + .footer::before { content: none; }
@media (max-width: 767px) {
 .about-page + .footer { padding-top: 55px; }
}
/* Fade the section background beneath the transparent artwork into the footer. */
.about-page .policy-area {
 background: linear-gradient(to bottom, transparent calc(100% - 180px), #e5fbfb 100%), var(--blue);
}
