@charset "UTF-8";
/* ==========================================================================
   Pretty-Wan — site styles
   Direction: deep pine + warm ivory, quiet editorial typography, one
   signature shape (small round left / large round right = the invitation)
   and one signature motion (a thin line that draws itself).
   ========================================================================== */

/* ---- tokens ------------------------------------------------------------ */
:root {
	--paper:#f6f3ea;
	--paper-2:#eee9db;
	--sage:#dfe7d6;
	--white:#fffdf6;
	--pine:#14473a;
	--pine-deep:#0c2f26;
	--ink:#1c3835;
	--muted:#566a66;
	--gold:#b58545;
	--line:rgba(28,56,53,.16);
	--line-strong:rgba(28,56,53,.32);
	--serif:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;
	--sans:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
	--en:"Cormorant Garamond",Georgia,"Times New Roman",serif;
	--gutter:clamp(20px,5vw,72px);
	--header:78px;
	--ease:cubic-bezier(.22,.8,.24,1);
	--ease-in-out:cubic-bezier(.65,0,.35,1);
	--radius:6px;
	--pill:6px 999px 999px 6px;
}

/* ---- base -------------------------------------------------------------- */
* {
	box-sizing:border-box
}
html {
	scroll-behavior:smooth;
	scroll-padding-top:calc(var(--header) + 24px);
	-webkit-text-size-adjust:100%
}
body {
	margin:0;
	background:var(--paper);
	color:var(--ink);
	font:400 15px/2 var(--sans);
	-webkit-font-smoothing:antialiased;
	overflow-x:clip;
	font-feature-settings:"palt";
	overflow-wrap:break-word
}
/* 安全装置: 枠に入らない文字は、はみ出さずに折り返す(iPhoneの横ずれ対策) */
a {
	color:inherit;
	text-decoration:none
}
img {
	display:block;
	max-width:100%;
	height:auto
}
figure {
	margin:0
}
p {
	margin:0 0 1.4em
}
button {
	font:inherit;
	color:inherit;
	background:none;
	border:0;
	padding:0;
	cursor:pointer
}
button,summary,a {
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation
}
h1,h2,h3 {
	font-family:var(--serif);
	font-weight:500;
	line-height:1.5;
	letter-spacing:.03em;
	margin:0
}
h2 {
	font-size:clamp(27px,3.3vw,46px)
}
h3 {
	font-size:clamp(20px,1.9vw,27px)
}
small {
	font-size:12px
}
ul,ol {
	list-style:none;
	margin:0;
	padding:0
}
[hidden] {
	display:none!important
}
a:focus-visible,button:focus-visible,summary:focus-visible,.pup-track:focus-visible {
	outline:3px solid var(--gold);
	outline-offset:5px;
	border-radius:3px
}
::selection {
	background:var(--pine);
	color:var(--white)
}
.wrap {
	max-width:1360px;
	margin-inline:auto;
	padding-inline:var(--gutter)
}
.visually-hidden {
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0,0,0,0);
	white-space:nowrap;
	border:0
}
.sp {
	display:none
}
.skip-link {
	position:fixed;
	top:8px;
	left:8px;
	z-index:100;
	background:var(--pine);
	color:var(--white);
	padding:8px 16px;
	transform:translateY(-150%)
}
.skip-link:focus {
	transform:none
}

.eyebrow {
	display:flex;
	align-items:center;
	gap:14px;
	font:500 12px/1.5 var(--en);
	letter-spacing:.24em;
	text-transform:uppercase;
	margin-bottom:22px;
	color:var(--gold)
}
.eyebrow::before {
	content:"";
	flex:none;
	width:22px;
	height:24px;
	margin-right:-2px;
	background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='24' viewBox='0 0 22 24'%3E%3Cpath d='M11 23V10' fill='none' stroke='%238fa86d' stroke-width='1.3' stroke-linecap='round'/%3E%3Cpath d='M11 13C5 13 2 9.5 2 3.5 8 3.5 11 7 11 13z' fill='%238fa86d'/%3E%3Cpath d='M11 10C11 4.5 14 1.5 20 1.5 20 7 17 10 11 10z' fill='%238fa86d' opacity='.78'/%3E%3C/svg%3E") center/contain no-repeat
}
.inverse .eyebrow {
	color:#d9b27a
}
.inverse .eyebrow::before,.footer .eyebrow::before {
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='24' viewBox='0 0 22 24'%3E%3Cpath d='M11 23V10' fill='none' stroke='%23d3e3b0' stroke-width='1.3' stroke-linecap='round'/%3E%3Cpath d='M11 13C5 13 2 9.5 2 3.5 8 3.5 11 7 11 13z' fill='%23d3e3b0'/%3E%3Cpath d='M11 10C11 4.5 14 1.5 20 1.5 20 7 17 10 11 10z' fill='%23d3e3b0' opacity='.78'/%3E%3C/svg%3E")
}
.ico {
	width:1em;
	height:1em;
	fill:none;
	stroke:currentColor;
	stroke-width:1.4;
	stroke-linecap:round;
	stroke-linejoin:round
}

/* ---- motion primitives --------------------------------------------------- */
.js .reveal {
	opacity:0;
	transform:translateY(34px);
	transition:opacity 1.1s var(--ease),transform 1.1s var(--ease);
	transition-delay:var(--d,0s)
}
.js .reveal.in {
	opacity:1;
	transform:none
}
/* the target of an in-page link is shown at once, in its final place: otherwise the jump is measured against the 34px-lower start state and lands 34px too high */
.js .reveal:target {
	opacity:1;
	transform:none;
	transition:none
}

.frame {
	position:relative;
	overflow:hidden;
	border-radius:var(--radius);
	background:var(--sage)
}
.frame>img {
	width:100%;
	height:100%;
	object-fit:cover
}
.js .frame {
	clip-path:inset(0 0 100% 0 round var(--radius));
	transition:clip-path 1.3s var(--ease)
}
.js .frame>img {
	transform:scale(1.18);
	transition:transform 1.8s var(--ease)
}
.js .in .frame,.js .frame.in {
	clip-path:inset(0 0 0 0 round var(--radius))
}
.js .in .frame>img,.js .frame.in>img {
	transform:scale(1)
}
.js .reveal.in .frame.zoom>img,.frame.zoom>img {
	transition:transform 1.2s var(--ease)
}
.zoom:hover>img,a:hover .zoom>img,.service-slot:hover .service-card .zoom>img {
	transform:scale(1.06)!important
}

.draw path {
	fill:none;
	stroke:currentColor;
	stroke-width:1.2;
	stroke-dasharray:1;
	transition:stroke-dashoffset 2.6s var(--ease-in-out)
}
.js .draw path {
	stroke-dashoffset:1
}
/* JSが無いときは、線を最初から描いた状態で見せる */
.js .draw.in path {
	stroke-dashoffset:0
}

/* ---- header ---------------------------------------------------------------- */
.site-header {
	position:sticky;
	top:0;
	z-index:50;
	background:rgba(246,243,234,.82);
	backdrop-filter:blur(14px) saturate(1.2);
	-webkit-backdrop-filter:blur(14px) saturate(1.2);
	transition:box-shadow .4s,background .4s
}
.site-header.scrolled {
	background:rgba(246,243,234,.94);
	box-shadow:0 1px 0 var(--line)
}
.header-inner {
	max-width:1360px;
	padding:0 var(--gutter);
	margin:auto;
	height:var(--header);
	display:flex;
	align-items:center;
	gap:30px;
	transition:height .4s var(--ease)
}
:root {
	--header-s:var(--header)
}
/* the header keeps one height; sticky bars below use it */
.scrolled .header-inner {
	height:var(--header-s)
}
.progress {
	position:absolute;
	left:0;
	bottom:0;
	height:2px;
	width:100%;
	background:var(--gold);
	transform:scaleX(var(--p,0));
	transform-origin:left
}
.brand {
	flex:0 0 auto;
	width:196px;
	transition:width .4s var(--ease)
}

.brand img {
	width:100%;
	max-height:64px;
	object-fit:contain;
	margin-left:-2.86%
}
/* the SVG artboard has a 2.86% left margin; cancel it so the drawing sits on the content edge */
.desktop-nav {
	margin-left:auto;
	display:flex;
	align-items:center;
	gap:6px;
	font-size:13px;
	letter-spacing:.08em;
	white-space:nowrap
}
.desktop-nav a {
	position:relative;
	padding:10px 14px
}
.desktop-nav a::after {
	content:"";
	position:absolute;
	left:14px;
	right:14px;
	bottom:6px;
	height:1px;
	background:var(--pine);
	transform:scaleX(0);
	transform-origin:right;
	transition:transform .45s var(--ease)
}
.desktop-nav a:hover::after,.desktop-nav [aria-current]::after {
	transform:scaleX(1);
	transform-origin:left
}

/* ---- the invitation button ------------------------------------------------ */
.invite {
	--bg:var(--pine);
	--ink-c:var(--white);
	--hover-bg:var(--pine-deep);
	--hover-ink:var(--white);
	position:relative;
	display:inline-flex;
	align-items:center;
	justify-content:space-between;
	gap:26px;
	min-height:76px;
	padding:16px 20px 16px 32px;
	background:var(--bg);
	color:var(--ink-c);
	border:1px solid var(--bg);
	border-radius:6px 80px 80px 6px;
	isolation:isolate;
	overflow:hidden;
	line-height:1.45;
	transition:color .5s var(--ease),border-color .5s,transform .5s var(--ease),box-shadow .5s var(--ease)
}
.invite::before {
	content:"";
	position:absolute;
	inset:5px;
	border:1px solid currentColor;
	border-radius:2px 70px 70px 2px;
	opacity:.38;
	pointer-events:none;
	z-index:2
}
.invite::after {
	content:"";
	position:absolute;
	inset:0;
	background:var(--hover-bg);
	z-index:-1;
	clip-path:circle(0 at 92% 50%);
	transition:clip-path .7s var(--ease)
}
.invite:hover {
	color:var(--hover-ink);
	transform:translateY(-2px);
	box-shadow:0 14px 30px -14px rgba(12,47,38,.55)
}
.invite:hover::after {
	clip-path:circle(160% at 92% 50%)
}
.invite-text {
	position:relative;
	z-index:1
}
.invite-main {
	font-family:var(--serif);
	font-size:22px;
	letter-spacing:.08em
}
.invite-sub {
	display:block;
	margin-top:4px;
	font:500 10px/1.4 var(--en);
	letter-spacing:.24em
}
.arrow {
	position:relative;
	z-index:1;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex:none;
	width:40px;
	height:40px;
	border-radius:50%;
	background:var(--ink-c);
	color:var(--bg);
	transition:transform .5s var(--ease),background .5s,color .5s
}
.arrow svg {
	width:20px;
	height:20px;
	stroke:currentColor;
	fill:none;
	stroke-width:1.4;
	stroke-linecap:round;
	stroke-linejoin:round;
	transition:transform .5s var(--ease)
}
.invite:hover .arrow {
	transform:scale(1.08);
	background:var(--hover-ink);
	color:var(--hover-bg)
}
.invite:hover .arrow svg {
	transform:translateX(3px)
}
.hero-cta .arrow {
	animation:ring 3.2s 2s infinite
}
@keyframes ring {
	0% {
		box-shadow:0 0 0 0 rgba(255,253,246,.55)
	}
	70%,100% {
		box-shadow:0 0 0 16px rgba(255,253,246,0)
	}
}
.invite.compact {
	min-height:44px;
	padding:8px 8px 8px 22px;
	gap:14px;
	flex:none;
	border-radius:99px;
	box-shadow:0 6px 16px -10px rgba(12,47,38,.6)
}
.invite.compact::before {
	display:none
}
.invite.compact::after {
	clip-path:circle(0 at calc(100% - 22px) 50%)
}
.invite.compact:hover::after {
	clip-path:circle(170% at calc(100% - 22px) 50%)
}
.compact .invite-main {
	font-family:var(--sans);
	font-size:13px;
	letter-spacing:.1em;
	font-weight:500
}
.compact .arrow {
	width:28px;
	height:28px;
	background:rgba(255,253,246,.14);
	color:var(--white);
	border:1px solid rgba(255,253,246,.5)
}
.compact .arrow svg {
	width:15px;
	height:15px
}
.invite.compact:hover .arrow {
	background:var(--white);
	color:var(--pine);
	transform:none
}
/* Olive-stem service link ("the line becomes the stem").
   Built to stay quiet:
   - at rest it is only a thin rule, a label and an arrow
   - leaves sprout along the rule on hover / keyboard focus, left to right
   - the box never changes size, so nothing shifts
   - touch screens (no hover) show the leaves, still pale and still
   - reduced-motion shows the leaves without animation */
.olive-link {
	--leaf:#7f9c5a;
	--leaf2:#9db77c;
	--stem:#7f9c5a;
	position:relative;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	width:100%;
	max-width:400px;
	padding:36px 0 6px;
	color:var(--pine);
	font-weight:500;
	font-size:14px;
	letter-spacing:.06em
}
.vine {
	position:absolute;
	left:0;
	top:0;
	width:100%;
	height:auto;
	aspect-ratio:400/30;
	overflow:visible;
	pointer-events:none
}
.vine .stem {
	fill:none;
	stroke:var(--line-strong);
	stroke-width:1.2;
	stroke-linecap:round;
	stroke-dasharray:1;
	transition:stroke .6s
}
.vine .lf path {
	fill:var(--leaf);
	transform-box:fill-box;
	transform-origin:0 50%;
	transform:scale(0);
	transition:transform .7s var(--ease);
	transition-delay:calc(var(--i) * 45ms)
}
.vine .lf:nth-of-type(even) path {
	fill:var(--leaf2)
}
.olive-link:hover .vine .stem,.olive-link:focus-visible .vine .stem {
	stroke:var(--stem)
}
.olive-link:hover .vine .lf path,.olive-link:focus-visible .vine .lf path {
	transform:scale(1)
}
.ol-text {
	word-break:keep-all;
	overflow-wrap:anywhere;
	line-height:1.7;
	transition:transform .6s var(--ease)
}
.ol-arrow {
	flex:none;
	width:28px;
	transition:transform .5s var(--ease)
}
.ol-arrow svg {
	display:block;
	width:28px;
	height:12px;
	stroke:currentColor;
	fill:none;
	stroke-width:1.2;
	stroke-linecap:round;
	stroke-linejoin:round
}
.olive-link:hover .ol-text,.olive-link:focus-visible .ol-text {
	transform:translateX(4px)
}
.olive-link:hover .ol-arrow,.olive-link:focus-visible .ol-arrow {
	transform:translateX(6px)
}
@media(hover:none) {
	.vine .lf path {
		transform:scale(1)
	}
	.vine .stem {
		stroke:var(--stem)
	}
}
.inverse .olive-link {
	--leaf:#b9cf93;
	--leaf2:#cfe0b0;
	--stem:#b9cf93;
	color:var(--white)
}
.inverse .vine .stem {
	stroke:rgba(255,255,255,.4)
}
.service-card .olive-link {
	margin-top:auto
}
.text-link {
	display:inline-flex;
	align-items:center;
	gap:16px;
	padding-block:8px;
	font-size:13px;
	letter-spacing:.08em;
	line-height:1.7;
	position:relative
}
.text-link::after {
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:3px;
	height:1px;
	background:currentColor;
	opacity:.4;
	transform-origin:left;
	transition:transform .5s var(--ease)
}
.text-link:hover::after {
	transform:scaleX(.0);
	transform-origin:right
}
.text-arrow {
	display:inline-block;
	width:28px;
	transition:transform .5s var(--ease)
}
.text-arrow svg {
	width:28px;
	height:12px;
	stroke:currentColor;
	fill:none;
	stroke-width:1.2;
	stroke-linecap:round;
	stroke-linejoin:round;
	display:block
}
.text-link:hover .text-arrow {
	transform:translateX(6px)
}

/* ---- mobile menu ------------------------------------------------------------ */
.mobile-menu {
	display:none
}
.menu-toggle {
	list-style:none;
	display:grid;
	place-items:center;
	width:44px;
	height:44px;
	margin-right:-10px;
	cursor:pointer;
	position:relative;
	z-index:3
}
.menu-toggle::-webkit-details-marker {
	display:none
}
.menu-lines {
	width:24px;
	height:15px;
	position:relative;
	background:linear-gradient(var(--ink),var(--ink)) 0 50%/24px 1.5px no-repeat;
	transition:background-size .3s var(--ease)
}
/* 真ん中の線。3本線にして、メニューと分かるように */
.menu-lines::before,.menu-lines::after {
	content:"";
	position:absolute;
	left:0;
	height:1.5px;
	background:var(--ink);
	transition:transform .5s var(--ease),width .5s var(--ease),top .5s var(--ease),background .3s
}
.menu-lines::before {
	top:0;
	width:24px
}
.menu-lines::after {
	top:13.5px;
	width:24px
}
.mobile-menu[open] .menu-lines {
	background-size:0 1.5px
}
.mobile-menu[open] .menu-lines::before {
	top:7px;
	transform:rotate(45deg);
	background:var(--white)
}
.mobile-menu[open] .menu-lines::after {
	top:7px;
	width:24px;
	transform:rotate(-45deg);
	background:var(--white)
}
.menu-panel {
	position:fixed;
	inset:0;
	z-index:55;
	height:100vh;
	height:100dvh;
	background:var(--pine-deep);
	color:var(--white);
	padding:calc(var(--header) + 12px) var(--gutter) 28px;
	overflow-y:auto;
	display:flex;
	flex-direction:column
}
.mobile-menu.opening .menu-panel {
	animation:menu-in .6s var(--ease)
}
@keyframes menu-in {
	from {
		clip-path:circle(0 at calc(100% - 40px) 38px)
	}
	to {
		clip-path:circle(150% at calc(100% - 40px) 38px)
	}
}
.menu-panel a {
	display:flex;
	justify-content:space-between;
	align-items:center;
	padding:8px 0;
	border-bottom:1px solid rgba(255,255,255,.16);
	font:500 19px/1.4 var(--serif);
	letter-spacing:.06em;
}
.mobile-menu.opening .menu-panel a {
	opacity:0;
	transform:translateY(18px);
	animation:menu-link .7s var(--ease) forwards
}
.menu-panel a::after {
	content:"→";
	font:14px var(--sans);
	opacity:.6
}
.mobile-menu.opening .menu-panel a {
	animation-delay:calc(.12s + var(--i,0) * .05s)
}
/* 項目の数に関わらず、0.05秒ずつ、一定の間隔で出る */
@keyframes menu-link {
	to {
		opacity:1;
		transform:none
	}
}
.menu-foot {
	margin:auto 0 0;
	padding-top:20px;
	font:500 11px/1.8 var(--en);
	letter-spacing:.26em;
	opacity:.6
}
html:has(.mobile-menu[open]) {
	overflow:hidden
}
/* lock on the root so the scroll position survives */
/* backdrop-filter makes the header the containing block of position:fixed children, which would
   squash the full-screen menu into the header's height; drop it (and the bar) while the menu is open */
.site-header:has(.mobile-menu[open]) {
	-webkit-backdrop-filter:none;
	backdrop-filter:none;
	background:transparent;
	box-shadow:none
}
.site-header:has(.mobile-menu[open]) .progress {
	display:none
}
.mobile-menu[open] .menu-toggle {
	position:relative;
	z-index:60
}

/* ---- hero ------------------------------------------------------------------ */
.hero {
	position:relative;
	padding:clamp(28px,4vw,60px) 0 clamp(90px,10vw,150px);
	overflow:hidden
}
.hero-trail {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	pointer-events:none;
	color:var(--gold)
}
.hero-trail path {
	fill:none;
	stroke:currentColor;
	stroke-width:1.1;
	stroke-dasharray:1
}
.js .hero-trail path {
	stroke-dashoffset:1
}
.hero-trail .t1 {
	opacity:.7
}
.hero-trail .t2 {
	opacity:.28;
	stroke-dasharray:.004 .012;
	stroke-dashoffset:0;
	animation:none
}
.is-loaded .hero-trail .t1 {
	animation:trail 3.4s .5s var(--ease-in-out) forwards
}
.hero-trail .t2 {
	stroke-dasharray:6 10
}
.is-loaded .hero-trail .t2 {
	animation:fade 2s 1.8s both
}
@keyframes trail {
	to {
		stroke-dashoffset:0
	}
}
@keyframes fade {
	from {
		opacity:0
	}
}
.hero-inner {
	position:relative;
	display:grid;
	grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
	gap:clamp(30px,4vw,70px);
	align-items:center
}
.hero-copy {
	position:relative;
	z-index:2
}
.kicker {
	font:500 13px/1.8 var(--sans);
	letter-spacing:.2em;
	margin-bottom:26px;
	color:var(--pine);
	display:flex;
	align-items:center;
	gap:14px
}
.kicker::before {
	content:"";
	width:34px;
	height:1px;
	background:var(--gold)
}
.hero h1 {
	font-size:clamp(38px,4.35vw,78px);
	line-height:1.4;
	letter-spacing:.02em;
	font-weight:500;
	white-space:nowrap
}
.line {
	display:block;
	overflow:hidden;
	padding-block:.06em;
	margin-block:-.06em
}
.line>span {
	display:block
}
.js .line>span {
	transform:translateY(110%);
	transition:transform 1.3s var(--ease)
}
.js.is-loaded .line>span {
	transform:none
}
.line:nth-child(2)>span {
	transition-delay:.12s
}
.line:nth-child(3)>span {
	transition-delay:.24s
}
.mark {
	position:relative;
	display:inline-block;
	color:var(--pine)
}
.mark svg {
	position:absolute;
	left:0;
	bottom:-.06em;
	width:100%;
	height:.2em;
	overflow:visible;
	color:var(--gold)
}
.mark path {
	fill:none;
	stroke:currentColor;
	stroke-width:3;
	stroke-linecap:round;
	stroke-dasharray:1
}
.js .mark path {
	stroke-dashoffset:1
}
.is-loaded .mark path {
	animation:trail 1.4s 1.2s var(--ease-in-out) forwards
}
.hero-intro {
	margin:clamp(24px,3vw,38px) 0 clamp(26px,3vw,38px);
	font-size:clamp(13.5px,1.1vw,15.5px);
	line-height:2.2
}
.experience-line {
	display:inline-block;
	margin-top:8px;
	font-family:var(--serif);
	font-size:1.12em;
	letter-spacing:.1em;
	color:var(--pine)
}
.hero-cta .invite {
	min-width:300px
}
.cta-note {
	font-size:11.5px;
	letter-spacing:.06em;
	margin:12px 0 26px 6px;
	color:var(--muted)
}
.js .hero-intro,.js .hero-cta,.js .hero-copy>.text-link,.js .kicker {
	opacity:0;
	transform:translateY(20px);
	transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)
}
.js.is-loaded .hero-intro,
.js.is-loaded .hero-cta,
.js.is-loaded .hero-copy>.text-link,
.js.is-loaded .kicker {
	opacity:1;
	transform:none
}
.js .kicker {
	transition-delay:.05s
}
.js .hero-intro {
	transition-delay:.7s
}
.js .hero-cta {
	transition-delay:.85s
}
.js .hero-copy>.text-link {
	transition-delay:1s
}

.hero-visual {
	position:relative
}
.hero-frame {
	position:relative;
	height:clamp(430px,44vw,640px);
	border-radius:8px 320px 320px 8px;
	overflow:hidden;
	background:var(--sage)
}
.js .hero-frame {
	clip-path:inset(0 100% 0 0 round 8px 320px 320px 8px);
	transition:clip-path 1.6s .15s var(--ease)
}
.js.is-loaded .hero-frame {
	clip-path:inset(0 0 0 0 round 8px 320px 320px 8px)
}
.hero-photo {
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:60% 50%;
	transform:scale(1.14);
	transition:transform 2.4s .15s var(--ease)
}
.is-loaded .hero-photo {
	transform:scale(1)
}
.rest-inset {
	position:absolute;
	left:-7%;
	bottom:-6%;
	width:min(42%,250px);
	z-index:3;
	animation:float 9s ease-in-out infinite
}
.rest-inset img {
	width:100%;
	aspect-ratio:1;
	object-fit:cover;
	object-position:38% 62%;
	border:7px solid var(--paper);
	border-radius:50%;
	box-shadow:0 24px 40px -22px rgba(12,47,38,.5)
}
.rest-inset figcaption {
	position:absolute;
	left:100%;
	bottom:14%;
	margin-left:12px;
	white-space:nowrap;
	font:500 12px/1.6 var(--serif);
	letter-spacing:.1em
}
.js .rest-inset {
	opacity:0;
	transition:opacity 1s 1.3s
}
.js.is-loaded .rest-inset {
	opacity:1
}
@keyframes float {
	50% {
		transform:translateY(-12px)
	}
}
.badge {
	position:absolute;
	right:-3%;
	top:-6%;
	width:clamp(125px,12vw,178px);
	aspect-ratio:1;
	z-index:3;
	display:grid;
	place-items:center;
	color:var(--paper);
	background:var(--pine);
	border-radius:50%;
	box-shadow:0 20px 36px -18px rgba(12,47,38,.7)
}
.badge svg {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	animation:spin 28s linear infinite
}
.badge text {
	font:500 15px/1 var(--en);
	letter-spacing:.14em;
	fill:currentColor
}
.badge-core {
	position:relative;
	font-family:var(--serif);
	text-align:center;
	line-height:1;
	display:flex;
	align-items:baseline;
	gap:2px
}
.badge-core b {
	font-size:clamp(36px,4.1vw,58px);
	font-weight:500
}
.badge-core small {
	font-size:clamp(12px,1.1vw,14.5px)
}
@keyframes spin {
	to {
		transform:rotate(360deg)
	}
}
.side-note {
	position:absolute;
	right:4%;
	bottom:-48px;
	font:500 12px/1.9 var(--serif);
	letter-spacing:.14em;
	text-align:right;
	color:var(--muted)
}
.scroll-cue {
	position:absolute;
	left:50%;
	bottom:38px;
	width:1px;
	height:56px;
	background:var(--line);
	overflow:hidden;
	transform:translateX(-50%)
}
.scroll-cue span {
	position:absolute;
	inset:0;
	background:var(--pine);
	animation:cue 2.4s var(--ease-in-out) infinite
}
@keyframes cue {
	0% {
		transform:translateY(-100%)
	}
	60%,100% {
		transform:translateY(100%)
	}
}

/* ---- finder ---------------------------------------------------------------- */
.finder {
	position:relative;
	z-index:2;
	margin-top:clamp(-70px,-5vw,-30px);
	padding-bottom:clamp(44px,6vw,80px)
}
.finder-head {
	display:block;
	margin-bottom:clamp(44px,5vw,70px)
}
/* heading on the left, so the right edge above the tiles stays free for the dog */
.finder-head h2 {
	font-size:clamp(22px,2.2vw,30px)
}
.finder-head .eyebrow {
	margin-bottom:12px
}
.finder-grid {
	display:grid;
	grid-template-columns:repeat(6,minmax(0,1fr));
	gap:14px
}
.finder-tile {
	position:relative;
	display:flex;
	flex-direction:column;
	height:100%;
	min-height:196px;
	padding:22px 20px 20px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 44px 6px 6px;
	overflow:hidden;
	isolation:isolate;
	transition:transform .6s var(--ease),border-color .6s,color .6s,box-shadow .6s var(--ease)
}
.finder-tile::before {
	content:"";
	position:absolute;
	inset:0;
	background:var(--pine);
	z-index:-1;
	transform:translateY(101%);
	transition:transform .7s var(--ease);
	border-radius:inherit
}
.finder-grid>li:hover .finder-tile,.finder-tile:focus-visible {
	transform:translateY(-6px);
	color:var(--white);
	border-color:var(--pine);
	box-shadow:0 24px 40px -24px rgba(12,47,38,.55)
}
.finder-grid>li:hover .finder-tile::before,.finder-tile:focus-visible::before {
	transform:none
}
.finder-icon {
	font-size:42px;
	color:var(--pine);
	width:1em;
	height:1em;
	display:block;
	margin-bottom:auto;
	transition:color .5s,transform .7s var(--ease)
}
.finder-grid>li:hover .finder-icon,.finder-tile:focus-visible .finder-icon {
	color:#e6c996;
	transform:translateY(-4px) rotate(-6deg)
}
.finder-label {
	margin-top:26px;
	font:500 18px/1.4 var(--serif);
	letter-spacing:.06em
}
.finder-sub {
	margin-top:6px;
	font-size:11px;
	line-height:1.7;
	color:var(--muted);
	transition:color .5s
}
.finder-grid>li:hover .finder-sub,.finder-tile:focus-visible .finder-sub {
	color:rgba(255,255,255,.75)
}
.finder-go {
	position:absolute;
	right:16px;
	top:18px;
	width:24px;
	height:24px;
	opacity:.35;
	transition:opacity .4s,transform .6s var(--ease)
}
.finder-go svg {
	width:100%;
	height:100%;
	stroke:currentColor;
	fill:none;
	stroke-width:1.3;
	stroke-linecap:round;
	stroke-linejoin:round
}
.finder-grid>li:hover .finder-go,.finder-tile:focus-visible .finder-go {
	opacity:1;
	transform:translateX(4px)
}

/* ---- marquee ----------------------------------------------------------------- */
.marquee {
	overflow:hidden;
	border-block:1px solid var(--line);
	padding-block:clamp(18px,2.4vw,30px);
	background:var(--paper-2)
}
.marquee-track {
	display:flex;
	width:max-content;
	gap:0;
	animation:marquee 46s linear infinite
}
.marquee:hover .marquee-track {
	animation-play-state:paused
}
.marquee-track>span {
	font:500 clamp(30px,4.6vw,66px)/1.2 var(--serif);
	letter-spacing:.06em;
	white-space:nowrap;
	color:transparent;
	-webkit-text-stroke:1px var(--pine);
	padding-inline:clamp(18px,2.5vw,40px)
}
.marquee-track>span:nth-of-type(odd) {
	color:var(--pine);
	-webkit-text-stroke:0
}
.orn {
	display:inline-grid;
	place-items:center;
	font-size:clamp(26px,3vw,40px);
	color:var(--gold);
	align-self:center
}
@keyframes marquee {
	to {
		transform:translateX(-50%)
	}
}

/* ---- daily ------------------------------------------------------------------- */
.daily {
	padding-block:clamp(70px,10vw,150px)
}
.daily-layout {
	display:grid;
	grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
	gap:clamp(40px,7vw,120px);
	align-items:start
}
.daily-sticky {
	position:sticky;
	top:calc(var(--header) + 40px)
}
.daily-heading h2 {
	font-size:clamp(26px,2.7vw,40px);
	line-height:1.6;
	word-break:keep-all;
	overflow-wrap:anywhere
}
.daily-heading p {
	margin:28px 0 0;
	font-size:14px;
	color:var(--muted)
}
.years {
	margin-top:clamp(30px,4vw,56px);
	padding-top:30px;
	border-top:1px solid var(--line)
}
.years-num {
	display:flex;
	align-items:baseline;
	gap:8px;
	font-family:var(--serif);
	color:var(--pine);
	line-height:1
}
.years-num b {
	font-size:clamp(84px,10vw,150px);
	font-weight:400;
	letter-spacing:-.02em;
	background:linear-gradient(180deg,var(--pine) 40%,var(--gold));
	-webkit-background-clip:text;
	background-clip:text;
	color:transparent;
	font-variant-numeric:tabular-nums
}
.years-num small {
	font-size:clamp(16px,1.6vw,22px)
}
.years p {
	margin:18px 0 18px;
	font-size:12.5px;
	line-height:2;
	color:var(--muted);
	max-width:480px
}
.daily-cards {
	display:grid;
	gap:clamp(40px,6vw,90px)
}
.daily-card:nth-child(2) {
	margin-left:clamp(0px,6vw,90px)
}
.daily-card:nth-child(3) {
	margin-right:clamp(0px,4vw,60px)
}
.daily-card .frame {
	aspect-ratio:1.28;
	border-radius:var(--radius) 90px var(--radius) var(--radius)
}
.daily-card:nth-child(2) .frame {
	aspect-ratio:1.1
}
.daily-card .frame>img {
	height:118%;
	margin-top:-9%
}
.daily-card figcaption {
	display:flex;
	gap:20px;
	align-items:baseline;
	margin-top:20px
}
.daily-card .num {
	font:500 13px var(--en);
	letter-spacing:.2em;
	color:var(--gold)
}
.daily-card h3 {
	font-size:clamp(24px,2.4vw,34px)
}
.daily-card p {
	margin:8px 0 0;
	font-size:13px;
	color:var(--muted);
	line-height:1.9
}

/* ---- growing (puppy carousel) ------------------------------------------------------ */
.growing {
	position:relative;
	padding-block:clamp(40px,6vw,90px) clamp(70px,9vw,130px);
	background:var(--sage);
	overflow:hidden;
	border-radius:clamp(30px,5vw,80px) clamp(30px,5vw,80px) 0 0
}
.growing>.wrap {
	position:relative;
	z-index:2
}
.growing-head {
	display:flex;
	justify-content:space-between;
	align-items:end;
	gap:40px;
	margin-bottom:clamp(28px,4vw,50px)
}
.growing-head p {
	margin:20px 0 0;
	font-size:14px
}
.growing-side {
	display:flex;
	flex-direction:column;
	align-items:flex-end;
	gap:26px
}
.handwritten {
	font-family:var(--serif);
	font-size:14px;
	line-height:2;
	letter-spacing:.14em;
	font-weight:500;
	display:inline-block;
	transform:rotate(-6deg);
	color:var(--pine)
}
.carousel-ctl {
	display:flex;
	gap:10px
}
.ctl {
	width:52px;
	height:52px;
	border:1px solid var(--pine);
	border-radius:6px 26px 26px 6px;
	display:grid;
	place-items:center;
	color:var(--pine);
	transition:background .4s,color .4s,transform .4s var(--ease)
}
.ctl.prev {
	border-radius:26px 6px 6px 26px
}
.ctl svg {
	width:22px;
	height:22px;
	stroke:currentColor;
	fill:none;
	stroke-width:1.3;
	stroke-linecap:round;
	stroke-linejoin:round
}
.ctl:hover {
	background:var(--pine);
	color:var(--white);
	transform:scale(1.06)
}
.ctl[disabled] {
	opacity:.3;
	pointer-events:none
}
.pup-track {
	--edge:max(var(--gutter),calc((100vw - 1360px) / 2 + var(--gutter)));
	display:flex;
	gap:clamp(14px,1.8vw,26px);
	overflow-x:auto;
	scroll-snap-type:x mandatory;
	padding-inline:var(--edge);
	padding-block:6px 20px;
	scrollbar-width:none;
	scroll-padding-inline:var(--edge);
	position:relative;
	z-index:2
}
.pup-track::-webkit-scrollbar {
	display:none
}
.pup-track {
	-webkit-overflow-scrolling:touch;
	overscroll-behavior-x:contain;
	cursor:grab
}
.pup-track.is-dragging {
	cursor:grabbing;
	scroll-snap-type:none;
	scroll-behavior:auto
}
.pup-track.is-dragging * {
	pointer-events:none;
	user-select:none
}
.pup-track img {
	-webkit-user-drag:none;
	user-select:none
}
.pup-progress {
	position:relative;
	height:2px;
	margin-top:6px;
	background:rgba(20,71,58,.18);
	border-radius:2px;
	overflow:hidden
}
.pup-progress span {
	position:absolute;
	inset:0 auto 0 0;
	width:var(--w,30%);
	background:var(--pine);
	border-radius:2px;
	transform:translateX(var(--x,0))
}
.pup-slide {
	flex:0 0 clamp(210px,21vw,290px);
	scroll-snap-align:start
}
.pup-slide a {
	display:block
}
.pup-slide .frame {
	aspect-ratio:.86;
	border-radius:6px 32px 6px 6px
}
.pup-slide .frame>img {
	transition:transform 1s var(--ease)
}
.pup-slide a:hover .frame>img {
	transform:scale(1.07)
}
.pup-name {
	display:block;
	font:500 20px/1.5 var(--serif)
}
.pup-name small {
	display:block;
	margin-top:2px;
	font:400 12px/1.6 var(--sans);
	color:var(--muted)
}
.pup-more a {
	display:flex;
	flex-direction:column;
	justify-content:flex-end;
	gap:16px;
	height:100%;
	min-height:340px;
	padding:28px;
	background:var(--pine);
	color:var(--white);
	border-radius:6px 32px 6px 6px;
	font:500 20px/1.6 var(--serif);
	transition:background .5s
}
.pup-more a:hover {
	background:var(--pine-deep)
}
.pup-more-count {
	font:400 clamp(70px,7vw,100px)/1 var(--serif);
	color:#e6c996
}
.arrow-line {
	width:38px;
	transition:transform .5s var(--ease)
}
.arrow-line svg {
	width:38px;
	height:14px;
	stroke:currentColor;
	fill:none;
	stroke-width:1.2;
	stroke-linecap:round;
	stroke-linejoin:round
}
.pup-more a:hover .arrow-line {
	transform:translateX(8px)
}
.pup-note {
	margin:6px auto 0!important;
	position:relative;
	z-index:2
}
.botanical {
	position:absolute;
	overflow:visible;
	pointer-events:none;
	user-select:none;
	color:#7f9c5a
}
.botanical .stem {
	fill:none;
	stroke:#6f8d49;
	stroke-width:1.6;
	stroke-linecap:round;
	stroke-dasharray:1;
	stroke-dashoffset:0
}
.botanical .lf path {
	fill:#7f9c5a;
	transform-box:fill-box;
	transform-origin:0 50%
}
.botanical .lf:nth-of-type(even) path {
	fill:#9db77c
}
.js .botanical .stem {
	stroke-dashoffset:1;
	transition:stroke-dashoffset 2.2s var(--ease-in-out)
}
.js .botanical .lf path {
	transform:scale(0);
	transition:transform .9s var(--ease);
	transition-delay:calc(.5s + var(--i) * 90ms)
}
.js .botanical.in .stem {
	stroke-dashoffset:0
}
.js .botanical.in .lf path {
	transform:scale(1)
}
.botanical-growing {
	width:230px;
	height:230px;
	right:-64px;
	top:-36px;
	opacity:.95;
	z-index:1;
	transform-origin:100% 100%;
	animation:sway 8s ease-in-out infinite
}
@keyframes sway {
	50% {
		transform:rotate(-3deg)
	}
}

/* ---- support ------------------------------------------------------------------- */
.support {
	position:relative;
	background:var(--pine);
	color:var(--white);
	padding-block:clamp(70px,9vw,130px);
	overflow:hidden
}
.support-glow {
	position:absolute;
	width:70vw;
	height:70vw;
	max-width:900px;
	max-height:900px;
	right:-20vw;
	top:-30%;
	border-radius:50%;
	background:radial-gradient(circle,rgba(230,201,150,.18),transparent 62%);
	pointer-events:none
}
.support-inner {
	position:relative;
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:clamp(36px,6vw,100px);
	align-items:center
}
.support-frame {
	aspect-ratio:1.05;
	border-radius:6px 120px 6px 6px;
	background:var(--pine-deep)
}
.support-frame>img {
	height:116%;
	margin-top:-8%
}
.support-figure {
	position:relative
}
.support-photo-note {
	display:block;
	margin:18px 0 0 22px;
	color:#e6c996
}
.support h2 {
	font-size:clamp(28px,3.3vw,48px);
	line-height:1.5
}
.support-copy p {
	font-size:14px;
	line-height:2.1;
	margin:24px 0
}
.support-copy .invite {
	margin-top:8px
}
.support .locations {
	margin:18px 0 0;
	font-size:11.5px;
	opacity:.75
}
.steps-wrap {
	position:relative;
	margin-top:clamp(60px,8vw,110px)
}
.steps-line {
	display:block;
	width:100%;
	height:auto;
	aspect-ratio:1000/60;
	overflow:visible;
	color:#d9b27a
}
.steps-line .nodes circle {
	transform-box:fill-box;
	transform-origin:center
}
.steps-line .node-core {
	fill:#e6c996;
	transition:fill .5s,transform .6s var(--ease)
}
.steps-line .node.lit .node-core {
	fill:#fff1cf;
	transform:scale(1.35)
}
.steps-line .node-burst {
	fill:#e6c996;
	opacity:0;
	transform-box:fill-box;
	transform-origin:center
}
.steps-line .node.burst .node-burst {
	animation:node-burst 1.3s var(--ease) 1
}
@keyframes node-burst {
	0% {
		opacity:.7;
		transform:scale(.8)
	}
	100% {
		opacity:0;
		transform:scale(4.2)
	}
}
.steps-line .node-ring {
	fill:none;
	stroke:#e6c996;
	stroke-width:1;
	opacity:.45;
	animation:node-ring 4s ease-out infinite;
	animation-delay:var(--d,0s)
}
@keyframes node-ring {
	0% {
		transform:scale(.8);
		opacity:.6
	}
	70%,100% {
		transform:scale(1.9);
		opacity:0
	}
}
.steps-line .ball .core {
	fill:#fff1cf
}
.steps-line .ball .halo {
	fill:#e6c996;
	opacity:.28;
	animation:halo 2.4s ease-in-out infinite
}
@keyframes halo {
	50% {
		opacity:.5;
		transform:scale(1.25)
	}
}
.steps-line .ball circle {
	transform-box:fill-box;
	transform-origin:center
}
.steps {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:clamp(20px,4vw,60px);
	padding-top:14px
}
.step {
	position:relative
}
.step-dot {
	display:none
}
.step-no {
	display:block;
	transition:color .6s,transform .7s var(--ease),text-shadow .6s;
	transform-origin:0 100%;
	font:400 clamp(36px,3.6vw,52px)/1 var(--en);
	letter-spacing:.04em;
	color:#e6c996;
	font-style:italic
}
.step h3 {
	font-size:clamp(21px,2.1vw,28px);
	margin:10px 0 10px;
	transition:transform .7s var(--ease)
}
.step.lit .step-no {
	color:#fff1cf;
	transform:scale(1.18);
	text-shadow:0 0 18px rgba(255,241,207,.45)
}
.step.lit h3 {
	transform:translateX(4px)
}
.step p {
	margin:0;
	font-size:13px;
	line-height:2;
	opacity:.82
}

/* ---- services --------------------------------------------------------------------- */
.services {
	padding-block:clamp(70px,9vw,130px)
}
.service-intro {
	margin-bottom:clamp(30px,4vw,56px)
}
.service-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:clamp(18px,2.4vw,36px)
}
.service-slot {
	display:flex
}
.service-slot>.service-card {
	flex:1;
	min-width:0
}
.service-card {
	position:relative;
	display:flex;
	flex-direction:column;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 70px 6px 6px;
	overflow:hidden;
	transition:transform .7s var(--ease),box-shadow .7s var(--ease)
}
.service-slot:hover .service-card {
	transform:translateY(-8px);
	box-shadow:0 34px 50px -34px rgba(12,47,38,.45)
}
.service-card .frame {
	--radius:0px;
	aspect-ratio:1.4;
	border-radius:0
}
.service-body {
	position:relative;
	display:flex;
	flex-direction:column;
	flex:1;
	padding:28px 28px 30px
}
.service-no {
	position:absolute;
	right:26px;
	top:20px;
	font:italic 400 44px/1 var(--en);
	color:var(--sage)
}
.service-card h3 {
	margin-bottom:12px
}
.service-card p {
	font-size:13.5px;
	line-height:1.95;
	margin:0 0 12px
}
.service-card .locations {
	font-size:11.5px;
	color:var(--muted);
	margin-bottom:24px;
	line-height:1.9
}
.service-card .invite {
	margin-top:auto
}
.quiet-values {
	margin-top:clamp(44px,6vw,80px);
	padding-top:30px;
	border-top:1px solid var(--line);
	display:grid;
	grid-template-columns:1fr 2fr;
	gap:44px
}
.quiet-values p {
	font-size:13.5px;
	margin:0;
	line-height:2.1;
	color:var(--muted)
}

/* ---- stores (home) ------------------------------------------------------------------ */
.stores {
	padding-block:clamp(50px,7vw,100px);
	background:var(--paper-2);
	border-radius:clamp(30px,5vw,80px) clamp(30px,5vw,80px) 0 0
}
.stores-head {
	display:flex;
	justify-content:space-between;
	align-items:end;
	gap:30px;
	margin-bottom:clamp(26px,4vw,50px)
}
.store-row {
	display:grid;
	grid-template-columns:190px minmax(0,1fr) 230px 190px;
	gap:24px;
	align-items:center;
	padding:24px 0;
	border-top:1px solid var(--line);
	transition:padding .6s var(--ease),background .6s
}
.store-row:last-child {
	border-bottom:1px solid var(--line)
}
.store-row:hover {
	padding-inline:20px;
	background:rgba(255,253,246,.7)
}
.store-row h3 {
	font-size:clamp(20px,1.8vw,26px)
}
.store-row {
	position:relative
}
/* the whole row is the link to that store (stretched link); the phone number stays a separate tap target on top */
.store-row h3 a::after {
	content:"";
	position:absolute;
	inset:0;
	z-index:1
}
.store-row .store-tel {
	position:relative;
	z-index:2
}
.store-row h3 a:focus-visible {
	outline:none
}
.store-row:has(h3 a:focus-visible) {
	outline:3px solid var(--gold);
	outline-offset:-3px;
	border-radius:4px
}
.store-row h3 a {
	transition:color .4s
}
.store-row:hover h3 a {
	color:var(--pine);
	text-decoration:underline;
	text-underline-offset:6px;
	text-decoration-thickness:1px
}
.store-row::after {
	content:"";
	position:absolute;
	right:0;
	top:50%;
	width:10px;
	height:10px;
	margin-top:-5px;
	border-top:1.5px solid var(--pine);
	border-right:1.5px solid var(--pine);
	transform:translateX(-4px) rotate(45deg);
	opacity:0;
	transition:opacity .4s,transform .5s var(--ease);
	pointer-events:none
}
.store-row:hover::after {
	opacity:.6;
	transform:translateX(-14px) rotate(45deg)
}
.store-tags {
	display:flex;
	flex-wrap:wrap;
	gap:6px
}
.store-tags li,.service-tag {
	padding:3px 12px;
	border:1px solid var(--line-strong);
	border-radius:99px;
	font-size:11.5px;
	line-height:1.8;
	color:var(--pine);
	background:transparent
}
.store-hours {
	margin:0;
	font-size:12px;
	line-height:1.7;
	color:var(--muted);
	display:flex;
	flex-direction:column
}
.store-tel {
	display:inline-flex;
	align-items:center;
	gap:10px;
	color:var(--pine);
	font:500 clamp(16px,1.4vw,19px)/1 var(--sans);
	letter-spacing:.1em;
	font-variant-numeric:lining-nums tabular-nums;
	min-height:44px;
	transition:color .4s
}
.store-tel .ico {
	font-size:20px
}
.store-tel:hover {
	color:var(--gold)
}

/* ---- visit ---------------------------------------------------------------------------- */
.visit {
	position:relative;
	padding-block:clamp(70px,10vw,150px);
	overflow:hidden
}
.visit-inner {
	position:relative;
	display:grid;
	grid-template-columns:minmax(0,1fr) auto;
	gap:70px;
	align-items:end;
	padding-left:calc(var(--gutter) + clamp(0px,9vw,130px))
}
.visit h2 {
	font-size:clamp(30px,4.2vw,64px);
	line-height:1.45
}
.visit p {
	font-size:14px;
	margin:24px 0 0
}
.visit-quote {
	font:500 clamp(20px,1.9vw,26px)/1.7 var(--serif)!important;
	color:var(--pine)
}
.visit-action {
	justify-self:end
}
.visit-decoration {
	position:absolute;
	left:0;
	top:0;
	width:clamp(120px,15vw,210px);
	height:240px
}
.botanical-visit {
	width:min(26vw,260px);
	height:auto;
	aspect-ratio:1;
	left:calc(var(--gutter) * -1);
	top:78px;
	transform:scaleX(-1);
	transform-origin:50% 100%;
	animation:sway-r 8s ease-in-out infinite
}
@keyframes sway-r {
	50% {
		transform:scaleX(-1) rotate(-3deg)
	}
}
.visit-decoration .handwritten {
	position:absolute;
	left:20px;
	top:0
}

/* ---- footer --------------------------------------------------------------------------------- */
.footer {
	position:relative;
	overflow:hidden;
	background:var(--pine-deep);
	color:rgba(255,255,255,.88);
	padding-top:clamp(50px,6vw,90px)
}
.footer::before {
	content:"";
	position:absolute;
	right:max(-4vw,-60px);
	top:clamp(20px,3vw,50px);
	width:clamp(260px,34vw,520px);
	aspect-ratio:174.8/116.79;
	background:#fff;
	opacity:.05;
	-webkit-mask:url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSLjg6zjgqTjg6Tjg7xfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCAxNzQuOCAxMTYuNzkiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDE3NC44IDExNi43OSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+IDxnPiA8cGF0aCBmaWxsPSIjMDAwIiBkPSJNNzguMDgsOTUuNTFjLTEuNjEsMC0yLjk5LDEuMDEtMy41NSwyLjQyYy0wLjMtMS44MS0xLjg2LTMuMjEtMy43Ni0zLjIxYy0xLjU0LDAtMi44NiwwLjkyLTMuNDYsMi4yMyBjLTAuMi0xLjkyLTEuODEtMy40NC0zLjc4LTMuNDRjLTIuMTEsMC0zLjgyLDEuNzEtMy44MiwzLjgyczEuNzEsMy44MiwzLjgyLDMuODJjMS41NCwwLDIuODYtMC45MiwzLjQ2LTIuMjMgYzAuMiwxLjkzLDEuODEsMy40NCwzLjc4LDMuNDRjMS42MSwwLDIuOTktMS4wMSwzLjU1LTIuNDJjMC4zLDEuODEsMS44NiwzLjIxLDMuNzYsMy4yMWMyLjExLDAsMy44Mi0xLjcxLDMuODItMy44MiBDODEuOSw5Ny4yMiw4MC4xOSw5NS41MSw3OC4wOCw5NS41MXoiLz4gPHBhdGggZmlsbD0iIzAwMCIgZD0iTTExMS4yMyw5My41MWMtMS45NywwLTMuNTksMS41MS0zLjc4LDMuNDRjLTAuNjEtMS4zMS0xLjkzLTIuMjMtMy40Ni0yLjIzYy0xLjksMC0zLjQ2LDEuMzktMy43NiwzLjIxIGMtMC41Ni0xLjQxLTEuOTMtMi40Mi0zLjU1LTIuNDJjLTIuMTEsMC0zLjgyLDEuNzEtMy44MiwzLjgyczEuNzEsMy44MiwzLjgyLDMuODJjMS45LDAsMy40Ni0xLjM5LDMuNzYtMy4yMSBjMC41NiwxLjQxLDEuOTQsMi40MiwzLjU1LDIuNDJjMS45OCwwLDMuNTktMS41MSwzLjc4LTMuNDRjMC42MSwxLjMxLDEuOTMsMi4yMywzLjQ2LDIuMjNjMi4xMSwwLDMuODItMS43MSwzLjgyLTMuODIgUzExMy4zNCw5My41MSwxMTEuMjMsOTMuNTF6Ii8+IDxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik04Ny4zOCw5NC40NWMtMi44OSwwLTUuMjQsMi4zNS01LjI0LDUuMjRzMi4zNSw1LjI0LDUuMjQsNS4yNHM1LjI0LTIuMzUsNS4yNC01LjI0IFM5MC4yNyw5NC40NSw4Ny4zOCw5NC40NXoiLz4gPHBhdGggZmlsbD0iIzAwMCIgZD0iTTg3LjMzLDg2Ljc2YzQuNzMsMCw3LjY3LTIuMTIsNy42Ny01LjUyYzAtMS44My0wLjgyLTMuMDYtMi41MS0zLjc3Yy0xLjUxLTAuNjMtMy41NS0wLjcxLTUuMTYtMC43MSBzLTMuNjUsMC4wOC01LjE2LDAuNzFjLTEuNjksMC43MS0yLjUxLDEuOTQtMi41MSwzLjc3Qzc5LjY2LDg0LjY0LDgyLjYsODYuNzYsODcuMzMsODYuNzZ6Ii8+IDxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik02NC45OSw4MC43OGM0LjIzLDAsNy42Ny0zLjQ0LDcuNjctNy42N2MwLTQuMjMtMy40NC03LjY3LTcuNjctNy42N2MtMS40NSwwLTIuODUsMC40LTQuMDYsMS4xNiBsLTEuNzktMS43OWMtMC43LTAuNy0xLjkzLTAuNy0yLjYzLDBjLTAuNzIsMC43Mi0wLjcyLDEuOSwwLDIuNjNsMS44MywxLjgzYy0wLjY3LDEuMTYtMS4wMiwyLjQ4LTEuMDIsMy44MyBDNTcuMzIsNzcuMzUsNjAuNzYsODAuNzgsNjQuOTksODAuNzh6Ii8+IDxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0xMTAuMDksODAuNzhjNC4yMywwLDcuNjctMy40NCw3LjY3LTcuNjdjMC00LjIzLTMuNDQtNy42Ny03LjY3LTcuNjdjLTEuNDUsMC0yLjg1LDAuNC00LjA2LDEuMTYgbC0xLjc4LTEuNzljLTAuNy0wLjctMS45My0wLjctMi42MywwYy0wLjcyLDAuNzItMC43MiwxLjksMCwyLjYzbDEuODMsMS44M2MtMC42NywxLjE2LTEuMDIsMi40OC0xLjAyLDMuODMgQzEwMi40Miw3Ny4zNSwxMDUuODYsODAuNzgsMTEwLjA5LDgwLjc4eiIvPiA8cGF0aCBmaWxsPSIjMDAwIiBkPSJNMTU0Ljc5LDIyLjk4Yy0wLjI0LTAuMzMtMC41Ni0wLjU5LTAuOTMtMC43NGMtMC4zMi0wLjEzLTcuOS0zLjEzLTE3LjkzLTIuNDEgYy0xLjQxLDAuMS0yLjgzLDAuMjgtNC4yMywwLjUzYy0xLjExLTIuODQtMy4xNi01LjIzLTUuOC02Ljc0Yy00LjI0LTIuNDMtOS40NS0yLjM1LTEzLjYyLDAuMmMtNS45NS0xLjg3LTEyLjQ5LDAuNjktMTUuNTksNi4xMSBjLTEuNiwyLjc5LTIuMTMsNi4wNy0xLjUxLDkuMjNjLTAuMzEsMC40Mi0wLjYsMC44Ni0wLjg2LDEuMzJjLTEuMzgsMi40LTEuOTcsNS4yMy0xLjY5LDcuOTljLTcuNTgtMC4yMy0xNS40NiwwLjA1LTIyLjI1LDAuODEgYy00LjE5LTYuMzktOS4yOC0xMS4zLTE1LjEyLTE0LjU5Yy00Ljk4LTIuOC0xMC40OS00LjQzLTE2LjQtNC44NmMtOS43Mi0wLjctMTcuMTEsMi4wOC0xNy45MiwyLjRjLTAuMSwwLjA0LTAuMTksMC4wOC0wLjM2LDAuMTkgbDAuMTcsMC4ybDAsMGwtMC4yMy0wLjE2Yy0wLjA2LDAuMDQtMC4xMiwwLjA5LTAuMTYsMC4xM2MtMC4wNSwwLjA0LTAuMSwwLjA5LTAuMTEsMC4xYy0wLjA2LDAuMDYtMC4xMSwwLjExLTAuMTgsMC4xOSBjLTAuMDEsMC4wMi0wLjAzLDAuMDMtMC4wNCwwLjA1bC0wLjA0LDAuMDVjLTAuMjUsMC4zNi02LjE4LDguOTctNi4zLDI2LjQzYy0wLjA3LDEwLjQ4LDQuNzQsMTkuNiwxMy45NCwyNi4zNyBjNC4yNiwzLjE0LDguNTUsNS4wOCwxMC45NCw2LjAzYy0wLjAxLDAuMDEtMC4wMywwLjAzLTAuMDQsMC4wNGMtMC40OSwwLjQ5LTAuNzIsMS4xOC0wLjYsMS44NmMwLjEyLDAuNjgsMC41NiwxLjI2LDEuMTksMS41NSBjMC44NCwwLjM5LDEuNzQsMC43NCwyLjY4LDEuMDVjLTAuODYsMC42My0xLjU3LDEuMDktMS43MiwxLjE5Yy0wLjYxLDAuMzktMC45NywxLjA2LTAuOTcsMS43OWMwLjAxLDAuNzMsMC4zOCwxLjM5LDEsMS43OCBjNi4xLDMuNzcsMTYuNzQsNi40OCwxNy4xOSw2LjU5YzAuMTcsMC4wNCwwLjM1LDAuMDcsMC41MiwwLjA3YzAuOTcsMCwxLjgtMC42NSwyLjA0LTEuNTljMC4xNC0wLjU1LDAuMDYtMS4xMS0wLjIzLTEuNTkgYy0wLjI5LTAuNDgtMC43NS0wLjgzLTEuMjktMC45NmMtMC4wNy0wLjAyLTcuNDgtMS45MS0xMy4xMy00LjU2YzEuMTYtMC45LDIuMDQtMS43MiwyLjY0LTIuNDRjMC40OS0wLjU5LDAuNjItMS4zOSwwLjM1LTIuMTEgYy0wLjI4LTAuNzEtMC45Mi0xLjIyLTEuNjgtMS4zM2MtMC4yNC0wLjA0LTEuNDItMC4yMy0yLjk2LTAuN2MwLjE0LTAuMjEsMC4yNy0wLjQsMC4zNy0wLjU5YzAuMzItMC41NywwLjM2LTEuMjQsMC4xMi0xLjg0IGMtMC4yNC0wLjU5LTAuNzYtMS4wNS0xLjM3LTEuMjNjLTAuMjYtMC4wNy02LjM4LTEuODYtMTIuNTQtNi40Yy04LjIxLTYuMDItMTIuMzItMTMuNzQtMTIuMjYtMjIuOTUgYzAuMDktMTMuMDIsMy43My0yMC44MSw0Ljk3LTIzLjA5YzEyLjU2LDAuNywyMi41NSw0LjM4LDI4LjksMTAuNjRjNC43OCw0LjcyLDUuOTUsOS40Niw1Ljk2LDkuNWMwLjI1LDEuMTQsMS4zNSwxLjg0LDIuNSwxLjYxIGMwLjU1LTAuMTIsMS4wMi0wLjQ0LDEuMzItMC45MmMwLjMxLTAuNDcsMC40MS0xLjA0LDAuMjktMS41OGMtMC4wNS0wLjIzLTEuMjctNS43OC02Ljk4LTExLjQ4Yy00LjgyLTQuODEtMTEuMzMtOC4yNC0xOS4zNi0xMC4yIGMxLjA3LTAuMDEsMi4xMywwLjAzLDMuMTYsMC4xYzUuMjcsMC4zOSwxMC4xOCwxLjg2LDE0LjU5LDQuMzVjNS41NCwzLjEzLDEwLjM1LDcuOTMsMTQuMjksMTQuMjVjMC40MywwLjY5LDEuMjMsMS4wNywyLjA0LDAuOTggYzUuMzktMC42NywxMS41NS0xLjAyLDE3LjgyLTEuMDJjMi4xNCwwLDQuMjksMC4wNCw2LjM5LDAuMTJjMS4xNywyLjU0LDMuMDYsNC42Miw1LjQ5LDYuMDFjMS41NSwwLjg5LDMuMjQsMS40NSw1LDEuNjYgYzEuMTQsMS42NSwyLjYsMi45OSw0LjM0LDMuOTljMy4wOSwxLjc3LDYuNywyLjIzLDEwLjE1LDEuMjljMy40NS0wLjk0LDYuMzItMy4xNiw4LjEtNi4yNWMwLjI1LTAuNDQsMC40OC0wLjksMC42OS0xLjM4IGMzLjM3LTAuOTYsNi4xOC0zLjE2LDcuOTItNi4yYzIuMTktMy44MiwyLjMzLTguNjEsMC4zNy0xMi41OGM0LjczLTEuNjIsMTAuMTQtMi42MSwxNi4wOC0yLjkyYzQuNTIsOC4xOCw0Ljk1LDE5Ljc0LDQuOTcsMjMuMSBjMC4wNyw5LjE4LTQuMDMsMTYuODktMTIuMTcsMjIuOTFjLTYuMjgsNC42NC0xMi41Myw2LjQzLTEyLjYsNi40NGMtMC42MiwwLjE4LTEuMTIsMC42Mi0xLjM3LDEuMjNjLTAuMjUsMC42LTAuMiwxLjI3LDAuMTIsMS44NCBjMC4xMSwwLjE5LDAuMjMsMC4zOCwwLjM3LDAuNTljLTEuNjcsMC41MS0yLjk1LDAuNjktMi45NiwwLjY5Yy0wLjc2LDAuMTEtMS40LDAuNjEtMS42OCwxLjMzYy0wLjI4LDAuNzEtMC4xNCwxLjUyLDAuMzUsMi4xMSBjMC42LDAuNzIsMS40OCwxLjU0LDIuNjQsMi40NGMtNS41NiwyLjYxLTEyLjgyLDQuNDgtMTMuMTMsNC41NmMtMC41NCwwLjE0LTEsMC40OC0xLjI5LDAuOTZzLTAuMzcsMS4wNS0wLjIzLDEuNTkgYzAuMjksMS4xMywxLjQzLDEuODEsMi41NiwxLjUyYzAuNDUtMC4xMSwxMS4wOC0yLjgxLDE3LjItNi41OWMwLjYyLTAuMzgsMC45OS0xLjA1LDEtMS43OGMwLjAxLTAuNzMtMC4zNi0xLjQtMC45OC0xLjc5IGMtMC4wOS0wLjA2LTAuODMtMC41NC0xLjcxLTEuMThjMC45NC0wLjMxLDEuODQtMC42NiwyLjY4LTEuMDVjMC42My0wLjI5LDEuMDctMC44NywxLjE5LTEuNTVzLTAuMS0xLjM4LTAuNi0xLjg2IGMtMC4wMS0wLjAxLTAuMDMtMC4wMy0wLjA0LTAuMDRjMi4zOS0wLjk1LDYuNjgtMi44OSwxMC45NC02LjAzYzkuMTktNi43OCwxNC4wMS0xNS44OSwxMy45NC0yNi4zNyBDMTYwLjk2LDMxLjkzLDE1NS4wNCwyMy4zMywxNTQuNzksMjIuOThMMTU0Ljc5LDIyLjk4eiBNOTkuMDksMjUuNjNjMC4xMy0xLjI4LDAuNTMtMi41MywxLjE3LTMuNjVjMS42NC0yLjg2LDQuNzEtNC42NCw4LjAyLTQuNjQgYzAuNTcsMCwxLjE0LDAuMDUsMS43LDAuMTZjMC44MSwwLjE1LDEuNiwwLjQyLDIuMzUsMC43OGMwLjIxLDAuMSwwLjM4LDAuMTksMC41MywwLjI4YzAuNTQsMC4zMSwxLjA0LDAuNjcsMS41LDEuMDcgYy0wLjkxLDAuNC0xLjc1LDAuOTYtMi40NiwxLjYzYy0xLjUzLTAuMzUtMy4xMS0wLjI5LTQuNiwwLjE4Yy0xLjUyLDAuNDgtMi44OSwxLjM3LTMuOTUsMi41NyBDMTAxLjg3LDI0LjMsMTAwLjQsMjQuODYsOTkuMDksMjUuNjN6IE0xMjMuODMsMTcuMmMxLjkyLDEuMSwzLjM5LDIuODcsNC4xMiw0Ljk3YzAuMjIsMC42MiwwLjM3LDEuMjUsMC40NSwxLjg3IGMwLjAxLDAuMDUsMC4wMSwwLjEsMC4wMSwwLjE1bDAuMDIsMC4xOGMwLjA3LDAuNzMsMC4wNSwxLjQ1LTAuMDUsMi4xNWMtMC4wOSwwLjYyLTAuMjQsMS4yNC0wLjQ2LDEuODQgYy0wLjE4LDAuNS0wLjQsMC45OC0wLjY2LDEuNDRjLTAuMDgsMC4xNC0wLjE3LDAuMjgtMC4yNSwwLjQyYy0wLjE0LTAuMTgtMC4yOS0wLjM2LTAuNDQtMC41MmMtMC4wMy0wLjAzLTAuMDYtMC4wNy0wLjA5LTAuMSBjMC4zMi0xLjQxLDAuMjktMi45LTAuMS00LjMxYy0wLjI1LTAuODktMC42My0xLjczLTEuMTQtMi41Yy0wLjc2LTEuMTUtMS43NS0yLjA4LTIuOTUtMi43N2MtMC45NC0wLjU0LTEuOTUtMC44OS0zLjAyLTEuMDYgYy0wLjY5LTEtMS41MS0xLjktMi40My0yLjY3QzExOS4xOSwxNS42NywxMjEuNzEsMTUuOTksMTIzLjgzLDE3LjJ6IE0xMDcuNTIsMzcuMTNjMC4wOC0wLjU4LDAuMjctMS4xMywwLjU2LTEuNjQgYzAuMDQtMC4wOCwwLjA5LTAuMTYsMC4xNi0wLjI1YzAuMTQtMC4yMSwwLjI5LTAuNDEsMC40Ni0wLjU5YzAuMDEsMC4wMiwwLjAxLDAuMDMsMC4wMiwwLjA1YzAuMTEsMC4zNiwwLjI1LDAuNywwLjQxLDEuMDIgYzAuMjMsMC40NiwwLjUzLDAuOSwwLjg3LDEuM2MwLjMxLDAuMzYsMC42NSwwLjY5LDEuMDIsMC45N2wwLDBjMC4xMywwLjA5LDAuMjIsMC4xNywwLjMyLDAuMjNjMC4xMywwLjA4LDAuMjYsMC4xNywwLjM5LDAuMjQgYzAuMDMsMC4wMiwwLjA2LDAuMDMsMC4wOCwwLjA1YzAuNDYsMS4zMywxLjI0LDIuNTMsMi4yNiwzLjVjLTAuMTEsMC4wNS0wLjIxLDAuMS0wLjMyLDAuMTRjLTEuMywwLjQ5LTIuNzQsMC4zOC0zLjk0LTAuMzEgYy0wLjY2LTAuMzgtMS4yMi0wLjkyLTEuNjItMS41NWMtMC41LTAuOC0wLjc0LTEuNzEtMC43MS0yLjdDMTA3LjQ4LDM3LjQyLDEwNy40OSwzNy4yNywxMDcuNTIsMzcuMTN6IE0xMTguMDMsMzguNiBjMC4xNS0wLjA4LDAuMjctMC4xNCwwLjM4LTAuMjFjMC44NC0wLjUsMS41NS0xLjE4LDIuMS0xLjk5YzAuMTEtMC4xNiwwLjE4LTAuMjgsMC4yNC0wLjM5YzAuMDItMC4wMywwLjAzLTAuMDUsMC4wNS0wLjA4IGMxLjMzLTAuNDYsMi41NC0xLjI0LDMuNS0yLjI2YzAuMDEsMC4wMywwLjAzLDAuMDYsMC4wNCwwLjA5YzAuMDQsMC4wOSwwLjA4LDAuMTksMC4xMSwwLjI4YzAuMjIsMC42MSwwLjMyLDEuMjQsMC4yOCwxLjg4IGMtMC4wNCwwLjcyLTAuMjUsMS4zOS0wLjYsMi4wMWMtMC45NiwxLjY3LTIuOCwyLjU3LTQuNywyLjI4Yy0wLjItMC4wMy0wLjQxLTAuMDgtMC42Ny0wLjE1Yy0wLjM1LTAuMTEtMC42OC0wLjI0LTAuOTYtMC40MSBjLTAuMDktMC4wNS0wLjE4LTAuMTEtMC4yNS0wLjE2Yy0wLjItMC4xMy0wLjQtMC4yOC0wLjU5LTAuNDZDMTE3LjMxLDM4LjkzLDExNy42OCwzOC43OCwxMTguMDMsMzguNnogTTExNi4yNSwzMC41NyBjMC4xMywwLjA4LDAuMjYsMC4xNywwLjM5LDAuMjhjMC4xMSwwLjA5LDAuMiwwLjE5LDAuMzEsMC4zMmwwLjEyLDAuMTZjMC4zMiwwLjQ2LDAuNDYsMS4wMiwwLjQyLDEuNjFjMCwwLjAzLDAsMC4wNi0wLjAxLDAuMSBjLTAuMDQsMC4zMy0wLjE0LDAuNjMtMC4zMSwwLjkyYy0wLjE2LDAuMjktMC4zOCwwLjUzLTAuNjIsMC43MmwtMC4xNCwwLjFjLTAuNDYsMC4zMi0xLjAyLDAuNDctMS41OCwwLjQyIGMtMC4wNSwwLTAuMS0wLjAxLTAuMTMtMC4wMWMtMC4zMi0wLjA0LTAuNjMtMC4xNC0wLjkyLTAuMzFjLTAuMjktMC4xNi0wLjUzLTAuMzgtMC43Mi0wLjYybC0wLjEtMC4xNCBjLTAuMzEtMC40NS0wLjQ2LTEuMDEtMC40Mi0xLjU4YzAtMC4wNSwwLjAxLTAuMSwwLjAxLTAuMTNjMC4wMy0wLjIsMC4wOC0wLjQsMC4xNi0wLjYxYzAuMDUtMC4xMiwwLjEtMC4yMiwwLjE1LTAuMzEgYzAuMDYtMC4xMSwwLjE0LTAuMjEsMC4yMy0wLjMzYzAuMTMtMC4xNiwwLjI2LTAuMjksMC4zOS0wLjM5bDAuMTQtMC4xYzAuMjItMC4xNSwwLjQ2LTAuMjYsMC43Mi0wLjMzIGMwLjIyLTAuMDYsMC40NS0wLjA5LDAuNjktMC4wOWMwLjA2LDAsMC4xMywwLDAuMiwwLjAxYzAuMDMsMCwwLjA3LDAsMC4xMSwwLjAxYzAuMDgsMC4wMSwwLjE1LDAuMDIsMC4yNCwwLjA0IEMxMTUuODEsMzAuMzYsMTE2LjA0LDMwLjQ1LDExNi4yNSwzMC41N3ogTTExOS43NiwyMy4zOGMwLjE0LDAuMDYsMC4zMSwwLjE0LDAuNDcsMC4yM2MwLjUzLDAuMywwLjk4LDAuNjksMS4zNSwxLjE3IGMwLjQzLDAuNTUsMC43MywxLjIsMC44OCwxLjg5YzAuMTIsMC41NCwwLjE0LDEuMSwwLjA2LDEuNjRjLTAuMDgsMC41OC0wLjI3LDEuMTMtMC41NywxLjY0Yy0wLjA0LDAuMDgtMC4wOSwwLjE2LTAuMTYsMC4yNSBjLTAuMTQsMC4yMS0wLjI5LDAuNDEtMC40NiwwLjU5Yy0wLjA5LTAuMy0wLjIxLTAuNi0wLjM0LTAuODhsLTAuMDktMC4xOWMtMC4yOC0wLjU1LTAuNjQtMS4wNy0xLjA3LTEuNTIgYy0wLjMzLTAuMzUtMC42OS0wLjY2LTEuMTMtMC45N2MtMC4xMy0wLjA5LTAuMjYtMC4xNy0wLjQtMC4yNWMtMC4wMy0wLjAyLTAuMDUtMC4wMy0wLjA4LTAuMDRjLTAuMDItMC4wNi0wLjA0LTAuMTItMC4wNi0wLjE4IGMtMC40Ny0xLjI2LTEuMjItMi40LTIuMTktMy4zMmMwLjQ3LTAuMjEsMC45Ny0wLjM1LDEuNDktMC40MUMxMTguMjQsMjIuOTQsMTE5LjAzLDIzLjA3LDExOS43NiwyMy4zOHogTTEwNS45MiwyNy40OSBjMC41LTAuODYsMS4yNS0xLjUzLDIuMTctMS45MmMwLjc5LTAuMzQsMS42My0wLjQ3LDIuNTItMC4zNGMwLjU4LDAuMDgsMS4xMywwLjI3LDEuNjQsMC41NmMwLjA4LDAuMDUsMC4xNywwLjEsMC4yNSwwLjE2IGMwLjIxLDAuMTQsMC40MSwwLjI5LDAuNTksMC40NmMtMC4zNywwLjExLTAuNzMsMC4yNi0xLjA3LDAuNDNjLTAuNTIsMC4yNi0xLjAyLDAuNjEtMS40NywxLjAyYy0wLjQsMC4zNy0wLjc0LDAuNzctMS4wMywxLjIgYy0wLjA3LDAuMTEtMC4xNiwwLjI1LTAuMjUsMC4zOWMtMC4wMSwwLjAzLTAuMDMsMC4wNS0wLjA0LDAuMDhjLTEuMzEsMC40Ni0yLjU0LDEuMjUtMy41MSwyLjI2IEMxMDUuMDksMzAuNDEsMTA1LjE1LDI4LjgzLDEwNS45MiwyNy40OXogTTEwNy43NSw0NS40MWMxLjgzLDEuMDUsMy45OCwxLjQsNi4wNiwwLjk5YzAuNjYtMC4xMywxLjI5LTAuMzMsMS45LTAuNmwwLjExLDAuMDkgYzAuNDUsMC4zNCwwLjkyLDAuNjUsMS4zOSwwLjkyYzEuNjEsMC45MywzLjQzLDEuNTEsNS4yOSwxLjdjLTEuMjYsMS42LTMuMDMsMi43NC01LjAzLDMuMjRjLTIuMzIsMC41OC00Ljc1LDAuMjQtNi44Mi0wLjk0IGMtMC44Ny0wLjUtMS42NS0xLjEzLTIuMzEtMS44OGMtMC41Ni0wLjYzLTEuMDItMS4zMi0xLjM5LTIuMDdjLTAuNC0wLjgxLTAuNjgtMS43MS0wLjgyLTIuNjIgQzEwNi42Myw0NC42OCwxMDcuMTcsNDUuMDgsMTA3Ljc1LDQ1LjQxeiBNMTI3LjcxLDM5Ljk5YzAuOTMtMS42MywxLjMyLTMuNTUsMS4wOS01LjQyYzAuNzktMC44MSwxLjQ4LTEuNzIsMi4wNC0yLjcgYzAuMTctMC4yOSwwLjMzLTAuNiwwLjUtMC45OGMwLjEtMC4yMiwwLjItMC40NCwwLjI5LTAuNjZjMS44NiwyLjkyLDEuOTYsNi41OCwwLjI0LDkuNTdjLTEuMDQsMS44Mi0yLjYzLDMuMi00LjU4LDMuOTggYy0wLjc1LDAuMy0xLjU0LDAuNS0yLjM1LDAuNmMtMS4wMiwwLjEyLTIuMDcsMC4wNy0zLjA3LTAuMTVDMTI0LjMsNDMuNzEsMTI2LjQ2LDQyLjE2LDEyNy43MSwzOS45OXogTTEwMS44OSw0Mi40NSBjLTAuMDIsMS4wNiwwLjA4LDIuMTEsMC4zLDMuMTRjLTAuMy0wLjEzLTAuNTktMC4yOC0wLjg3LTAuNDRjLTEuNDctMC44NC0yLjY3LTIuMDctMy40OS0zLjU1Yy0wLjQtMC43My0wLjctMS41MS0wLjg5LTIuMzIgYy0wLjU1LTIuMjgtMC4yMS00LjY4LDAuOTYtNi43NWMwLjQxLTAuNzEsMC45MS0xLjM2LDEuNDktMS45NWMwLjU0LTAuNTQsMS4xNS0xLjAxLDEuODEtMS40Yy0wLjE4LDIuNDUsMC42Nyw0Ljg1LDIuMzcsNi42NSBjLTAuMDUsMC4yMy0wLjEsMC40Ny0wLjEzLDAuN2MtMC4yMywwLjQ0LTAuNDQsMC44OC0wLjYxLDEuMzJjLTAuMjQsMC42MS0wLjQ1LDEuMjctMC42LDEuOTYgQzEwMi4wMiw0MC42OCwxMDEuOTEsNDEuNTYsMTAxLjg5LDQyLjQ1eiBNMTMyLjU4LDI0LjQ3YzEuMTctMC4yLDIuMzYtMC4zNSwzLjU0LTAuNDRjMC45OC0wLjA3LDEuOTYtMC4xLDIuOTgtMC4xIGMtMi4wNCwwLjUtNCwxLjA5LTUuODMsMS43OGMtMC4yMi0wLjIyLTAuNDQtMC40Mi0wLjY2LTAuNjJDMTMyLjYsMjQuODgsMTMyLjYsMjQuNjgsMTMyLjU4LDI0LjQ3eiIvPiA8L2c+IDwvc3ZnPg==") center/contain no-repeat;
	mask:url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSLjg6zjgqTjg6Tjg7xfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCAxNzQuOCAxMTYuNzkiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDE3NC44IDExNi43OSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+IDxnPiA8cGF0aCBmaWxsPSIjMDAwIiBkPSJNNzguMDgsOTUuNTFjLTEuNjEsMC0yLjk5LDEuMDEtMy41NSwyLjQyYy0wLjMtMS44MS0xLjg2LTMuMjEtMy43Ni0zLjIxYy0xLjU0LDAtMi44NiwwLjkyLTMuNDYsMi4yMyBjLTAuMi0xLjkyLTEuODEtMy40NC0zLjc4LTMuNDRjLTIuMTEsMC0zLjgyLDEuNzEtMy44MiwzLjgyczEuNzEsMy44MiwzLjgyLDMuODJjMS41NCwwLDIuODYtMC45MiwzLjQ2LTIuMjMgYzAuMiwxLjkzLDEuODEsMy40NCwzLjc4LDMuNDRjMS42MSwwLDIuOTktMS4wMSwzLjU1LTIuNDJjMC4zLDEuODEsMS44NiwzLjIxLDMuNzYsMy4yMWMyLjExLDAsMy44Mi0xLjcxLDMuODItMy44MiBDODEuOSw5Ny4yMiw4MC4xOSw5NS41MSw3OC4wOCw5NS41MXoiLz4gPHBhdGggZmlsbD0iIzAwMCIgZD0iTTExMS4yMyw5My41MWMtMS45NywwLTMuNTksMS41MS0zLjc4LDMuNDRjLTAuNjEtMS4zMS0xLjkzLTIuMjMtMy40Ni0yLjIzYy0xLjksMC0zLjQ2LDEuMzktMy43NiwzLjIxIGMtMC41Ni0xLjQxLTEuOTMtMi40Mi0zLjU1LTIuNDJjLTIuMTEsMC0zLjgyLDEuNzEtMy44MiwzLjgyczEuNzEsMy44MiwzLjgyLDMuODJjMS45LDAsMy40Ni0xLjM5LDMuNzYtMy4yMSBjMC41NiwxLjQxLDEuOTQsMi40MiwzLjU1LDIuNDJjMS45OCwwLDMuNTktMS41MSwzLjc4LTMuNDRjMC42MSwxLjMxLDEuOTMsMi4yMywzLjQ2LDIuMjNjMi4xMSwwLDMuODItMS43MSwzLjgyLTMuODIgUzExMy4zNCw5My41MSwxMTEuMjMsOTMuNTF6Ii8+IDxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik04Ny4zOCw5NC40NWMtMi44OSwwLTUuMjQsMi4zNS01LjI0LDUuMjRzMi4zNSw1LjI0LDUuMjQsNS4yNHM1LjI0LTIuMzUsNS4yNC01LjI0IFM5MC4yNyw5NC40NSw4Ny4zOCw5NC40NXoiLz4gPHBhdGggZmlsbD0iIzAwMCIgZD0iTTg3LjMzLDg2Ljc2YzQuNzMsMCw3LjY3LTIuMTIsNy42Ny01LjUyYzAtMS44My0wLjgyLTMuMDYtMi41MS0zLjc3Yy0xLjUxLTAuNjMtMy41NS0wLjcxLTUuMTYtMC43MSBzLTMuNjUsMC4wOC01LjE2LDAuNzFjLTEuNjksMC43MS0yLjUxLDEuOTQtMi41MSwzLjc3Qzc5LjY2LDg0LjY0LDgyLjYsODYuNzYsODcuMzMsODYuNzZ6Ii8+IDxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik02NC45OSw4MC43OGM0LjIzLDAsNy42Ny0zLjQ0LDcuNjctNy42N2MwLTQuMjMtMy40NC03LjY3LTcuNjctNy42N2MtMS40NSwwLTIuODUsMC40LTQuMDYsMS4xNiBsLTEuNzktMS43OWMtMC43LTAuNy0xLjkzLTAuNy0yLjYzLDBjLTAuNzIsMC43Mi0wLjcyLDEuOSwwLDIuNjNsMS44MywxLjgzYy0wLjY3LDEuMTYtMS4wMiwyLjQ4LTEuMDIsMy44MyBDNTcuMzIsNzcuMzUsNjAuNzYsODAuNzgsNjQuOTksODAuNzh6Ii8+IDxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0xMTAuMDksODAuNzhjNC4yMywwLDcuNjctMy40NCw3LjY3LTcuNjdjMC00LjIzLTMuNDQtNy42Ny03LjY3LTcuNjdjLTEuNDUsMC0yLjg1LDAuNC00LjA2LDEuMTYgbC0xLjc4LTEuNzljLTAuNy0wLjctMS45My0wLjctMi42MywwYy0wLjcyLDAuNzItMC43MiwxLjksMCwyLjYzbDEuODMsMS44M2MtMC42NywxLjE2LTEuMDIsMi40OC0xLjAyLDMuODMgQzEwMi40Miw3Ny4zNSwxMDUuODYsODAuNzgsMTEwLjA5LDgwLjc4eiIvPiA8cGF0aCBmaWxsPSIjMDAwIiBkPSJNMTU0Ljc5LDIyLjk4Yy0wLjI0LTAuMzMtMC41Ni0wLjU5LTAuOTMtMC43NGMtMC4zMi0wLjEzLTcuOS0zLjEzLTE3LjkzLTIuNDEgYy0xLjQxLDAuMS0yLjgzLDAuMjgtNC4yMywwLjUzYy0xLjExLTIuODQtMy4xNi01LjIzLTUuOC02Ljc0Yy00LjI0LTIuNDMtOS40NS0yLjM1LTEzLjYyLDAuMmMtNS45NS0xLjg3LTEyLjQ5LDAuNjktMTUuNTksNi4xMSBjLTEuNiwyLjc5LTIuMTMsNi4wNy0xLjUxLDkuMjNjLTAuMzEsMC40Mi0wLjYsMC44Ni0wLjg2LDEuMzJjLTEuMzgsMi40LTEuOTcsNS4yMy0xLjY5LDcuOTljLTcuNTgtMC4yMy0xNS40NiwwLjA1LTIyLjI1LDAuODEgYy00LjE5LTYuMzktOS4yOC0xMS4zLTE1LjEyLTE0LjU5Yy00Ljk4LTIuOC0xMC40OS00LjQzLTE2LjQtNC44NmMtOS43Mi0wLjctMTcuMTEsMi4wOC0xNy45MiwyLjRjLTAuMSwwLjA0LTAuMTksMC4wOC0wLjM2LDAuMTkgbDAuMTcsMC4ybDAsMGwtMC4yMy0wLjE2Yy0wLjA2LDAuMDQtMC4xMiwwLjA5LTAuMTYsMC4xM2MtMC4wNSwwLjA0LTAuMSwwLjA5LTAuMTEsMC4xYy0wLjA2LDAuMDYtMC4xMSwwLjExLTAuMTgsMC4xOSBjLTAuMDEsMC4wMi0wLjAzLDAuMDMtMC4wNCwwLjA1bC0wLjA0LDAuMDVjLTAuMjUsMC4zNi02LjE4LDguOTctNi4zLDI2LjQzYy0wLjA3LDEwLjQ4LDQuNzQsMTkuNiwxMy45NCwyNi4zNyBjNC4yNiwzLjE0LDguNTUsNS4wOCwxMC45NCw2LjAzYy0wLjAxLDAuMDEtMC4wMywwLjAzLTAuMDQsMC4wNGMtMC40OSwwLjQ5LTAuNzIsMS4xOC0wLjYsMS44NmMwLjEyLDAuNjgsMC41NiwxLjI2LDEuMTksMS41NSBjMC44NCwwLjM5LDEuNzQsMC43NCwyLjY4LDEuMDVjLTAuODYsMC42My0xLjU3LDEuMDktMS43MiwxLjE5Yy0wLjYxLDAuMzktMC45NywxLjA2LTAuOTcsMS43OWMwLjAxLDAuNzMsMC4zOCwxLjM5LDEsMS43OCBjNi4xLDMuNzcsMTYuNzQsNi40OCwxNy4xOSw2LjU5YzAuMTcsMC4wNCwwLjM1LDAuMDcsMC41MiwwLjA3YzAuOTcsMCwxLjgtMC42NSwyLjA0LTEuNTljMC4xNC0wLjU1LDAuMDYtMS4xMS0wLjIzLTEuNTkgYy0wLjI5LTAuNDgtMC43NS0wLjgzLTEuMjktMC45NmMtMC4wNy0wLjAyLTcuNDgtMS45MS0xMy4xMy00LjU2YzEuMTYtMC45LDIuMDQtMS43MiwyLjY0LTIuNDRjMC40OS0wLjU5LDAuNjItMS4zOSwwLjM1LTIuMTEgYy0wLjI4LTAuNzEtMC45Mi0xLjIyLTEuNjgtMS4zM2MtMC4yNC0wLjA0LTEuNDItMC4yMy0yLjk2LTAuN2MwLjE0LTAuMjEsMC4yNy0wLjQsMC4zNy0wLjU5YzAuMzItMC41NywwLjM2LTEuMjQsMC4xMi0xLjg0IGMtMC4yNC0wLjU5LTAuNzYtMS4wNS0xLjM3LTEuMjNjLTAuMjYtMC4wNy02LjM4LTEuODYtMTIuNTQtNi40Yy04LjIxLTYuMDItMTIuMzItMTMuNzQtMTIuMjYtMjIuOTUgYzAuMDktMTMuMDIsMy43My0yMC44MSw0Ljk3LTIzLjA5YzEyLjU2LDAuNywyMi41NSw0LjM4LDI4LjksMTAuNjRjNC43OCw0LjcyLDUuOTUsOS40Niw1Ljk2LDkuNWMwLjI1LDEuMTQsMS4zNSwxLjg0LDIuNSwxLjYxIGMwLjU1LTAuMTIsMS4wMi0wLjQ0LDEuMzItMC45MmMwLjMxLTAuNDcsMC40MS0xLjA0LDAuMjktMS41OGMtMC4wNS0wLjIzLTEuMjctNS43OC02Ljk4LTExLjQ4Yy00LjgyLTQuODEtMTEuMzMtOC4yNC0xOS4zNi0xMC4yIGMxLjA3LTAuMDEsMi4xMywwLjAzLDMuMTYsMC4xYzUuMjcsMC4zOSwxMC4xOCwxLjg2LDE0LjU5LDQuMzVjNS41NCwzLjEzLDEwLjM1LDcuOTMsMTQuMjksMTQuMjVjMC40MywwLjY5LDEuMjMsMS4wNywyLjA0LDAuOTggYzUuMzktMC42NywxMS41NS0xLjAyLDE3LjgyLTEuMDJjMi4xNCwwLDQuMjksMC4wNCw2LjM5LDAuMTJjMS4xNywyLjU0LDMuMDYsNC42Miw1LjQ5LDYuMDFjMS41NSwwLjg5LDMuMjQsMS40NSw1LDEuNjYgYzEuMTQsMS42NSwyLjYsMi45OSw0LjM0LDMuOTljMy4wOSwxLjc3LDYuNywyLjIzLDEwLjE1LDEuMjljMy40NS0wLjk0LDYuMzItMy4xNiw4LjEtNi4yNWMwLjI1LTAuNDQsMC40OC0wLjksMC42OS0xLjM4IGMzLjM3LTAuOTYsNi4xOC0zLjE2LDcuOTItNi4yYzIuMTktMy44MiwyLjMzLTguNjEsMC4zNy0xMi41OGM0LjczLTEuNjIsMTAuMTQtMi42MSwxNi4wOC0yLjkyYzQuNTIsOC4xOCw0Ljk1LDE5Ljc0LDQuOTcsMjMuMSBjMC4wNyw5LjE4LTQuMDMsMTYuODktMTIuMTcsMjIuOTFjLTYuMjgsNC42NC0xMi41Myw2LjQzLTEyLjYsNi40NGMtMC42MiwwLjE4LTEuMTIsMC42Mi0xLjM3LDEuMjNjLTAuMjUsMC42LTAuMiwxLjI3LDAuMTIsMS44NCBjMC4xMSwwLjE5LDAuMjMsMC4zOCwwLjM3LDAuNTljLTEuNjcsMC41MS0yLjk1LDAuNjktMi45NiwwLjY5Yy0wLjc2LDAuMTEtMS40LDAuNjEtMS42OCwxLjMzYy0wLjI4LDAuNzEtMC4xNCwxLjUyLDAuMzUsMi4xMSBjMC42LDAuNzIsMS40OCwxLjU0LDIuNjQsMi40NGMtNS41NiwyLjYxLTEyLjgyLDQuNDgtMTMuMTMsNC41NmMtMC41NCwwLjE0LTEsMC40OC0xLjI5LDAuOTZzLTAuMzcsMS4wNS0wLjIzLDEuNTkgYzAuMjksMS4xMywxLjQzLDEuODEsMi41NiwxLjUyYzAuNDUtMC4xMSwxMS4wOC0yLjgxLDE3LjItNi41OWMwLjYyLTAuMzgsMC45OS0xLjA1LDEtMS43OGMwLjAxLTAuNzMtMC4zNi0xLjQtMC45OC0xLjc5IGMtMC4wOS0wLjA2LTAuODMtMC41NC0xLjcxLTEuMThjMC45NC0wLjMxLDEuODQtMC42NiwyLjY4LTEuMDVjMC42My0wLjI5LDEuMDctMC44NywxLjE5LTEuNTVzLTAuMS0xLjM4LTAuNi0xLjg2IGMtMC4wMS0wLjAxLTAuMDMtMC4wMy0wLjA0LTAuMDRjMi4zOS0wLjk1LDYuNjgtMi44OSwxMC45NC02LjAzYzkuMTktNi43OCwxNC4wMS0xNS44OSwxMy45NC0yNi4zNyBDMTYwLjk2LDMxLjkzLDE1NS4wNCwyMy4zMywxNTQuNzksMjIuOThMMTU0Ljc5LDIyLjk4eiBNOTkuMDksMjUuNjNjMC4xMy0xLjI4LDAuNTMtMi41MywxLjE3LTMuNjVjMS42NC0yLjg2LDQuNzEtNC42NCw4LjAyLTQuNjQgYzAuNTcsMCwxLjE0LDAuMDUsMS43LDAuMTZjMC44MSwwLjE1LDEuNiwwLjQyLDIuMzUsMC43OGMwLjIxLDAuMSwwLjM4LDAuMTksMC41MywwLjI4YzAuNTQsMC4zMSwxLjA0LDAuNjcsMS41LDEuMDcgYy0wLjkxLDAuNC0xLjc1LDAuOTYtMi40NiwxLjYzYy0xLjUzLTAuMzUtMy4xMS0wLjI5LTQuNiwwLjE4Yy0xLjUyLDAuNDgtMi44OSwxLjM3LTMuOTUsMi41NyBDMTAxLjg3LDI0LjMsMTAwLjQsMjQuODYsOTkuMDksMjUuNjN6IE0xMjMuODMsMTcuMmMxLjkyLDEuMSwzLjM5LDIuODcsNC4xMiw0Ljk3YzAuMjIsMC42MiwwLjM3LDEuMjUsMC40NSwxLjg3IGMwLjAxLDAuMDUsMC4wMSwwLjEsMC4wMSwwLjE1bDAuMDIsMC4xOGMwLjA3LDAuNzMsMC4wNSwxLjQ1LTAuMDUsMi4xNWMtMC4wOSwwLjYyLTAuMjQsMS4yNC0wLjQ2LDEuODQgYy0wLjE4LDAuNS0wLjQsMC45OC0wLjY2LDEuNDRjLTAuMDgsMC4xNC0wLjE3LDAuMjgtMC4yNSwwLjQyYy0wLjE0LTAuMTgtMC4yOS0wLjM2LTAuNDQtMC41MmMtMC4wMy0wLjAzLTAuMDYtMC4wNy0wLjA5LTAuMSBjMC4zMi0xLjQxLDAuMjktMi45LTAuMS00LjMxYy0wLjI1LTAuODktMC42My0xLjczLTEuMTQtMi41Yy0wLjc2LTEuMTUtMS43NS0yLjA4LTIuOTUtMi43N2MtMC45NC0wLjU0LTEuOTUtMC44OS0zLjAyLTEuMDYgYy0wLjY5LTEtMS41MS0xLjktMi40My0yLjY3QzExOS4xOSwxNS42NywxMjEuNzEsMTUuOTksMTIzLjgzLDE3LjJ6IE0xMDcuNTIsMzcuMTNjMC4wOC0wLjU4LDAuMjctMS4xMywwLjU2LTEuNjQgYzAuMDQtMC4wOCwwLjA5LTAuMTYsMC4xNi0wLjI1YzAuMTQtMC4yMSwwLjI5LTAuNDEsMC40Ni0wLjU5YzAuMDEsMC4wMiwwLjAxLDAuMDMsMC4wMiwwLjA1YzAuMTEsMC4zNiwwLjI1LDAuNywwLjQxLDEuMDIgYzAuMjMsMC40NiwwLjUzLDAuOSwwLjg3LDEuM2MwLjMxLDAuMzYsMC42NSwwLjY5LDEuMDIsMC45N2wwLDBjMC4xMywwLjA5LDAuMjIsMC4xNywwLjMyLDAuMjNjMC4xMywwLjA4LDAuMjYsMC4xNywwLjM5LDAuMjQgYzAuMDMsMC4wMiwwLjA2LDAuMDMsMC4wOCwwLjA1YzAuNDYsMS4zMywxLjI0LDIuNTMsMi4yNiwzLjVjLTAuMTEsMC4wNS0wLjIxLDAuMS0wLjMyLDAuMTRjLTEuMywwLjQ5LTIuNzQsMC4zOC0zLjk0LTAuMzEgYy0wLjY2LTAuMzgtMS4yMi0wLjkyLTEuNjItMS41NWMtMC41LTAuOC0wLjc0LTEuNzEtMC43MS0yLjdDMTA3LjQ4LDM3LjQyLDEwNy40OSwzNy4yNywxMDcuNTIsMzcuMTN6IE0xMTguMDMsMzguNiBjMC4xNS0wLjA4LDAuMjctMC4xNCwwLjM4LTAuMjFjMC44NC0wLjUsMS41NS0xLjE4LDIuMS0xLjk5YzAuMTEtMC4xNiwwLjE4LTAuMjgsMC4yNC0wLjM5YzAuMDItMC4wMywwLjAzLTAuMDUsMC4wNS0wLjA4IGMxLjMzLTAuNDYsMi41NC0xLjI0LDMuNS0yLjI2YzAuMDEsMC4wMywwLjAzLDAuMDYsMC4wNCwwLjA5YzAuMDQsMC4wOSwwLjA4LDAuMTksMC4xMSwwLjI4YzAuMjIsMC42MSwwLjMyLDEuMjQsMC4yOCwxLjg4IGMtMC4wNCwwLjcyLTAuMjUsMS4zOS0wLjYsMi4wMWMtMC45NiwxLjY3LTIuOCwyLjU3LTQuNywyLjI4Yy0wLjItMC4wMy0wLjQxLTAuMDgtMC42Ny0wLjE1Yy0wLjM1LTAuMTEtMC42OC0wLjI0LTAuOTYtMC40MSBjLTAuMDktMC4wNS0wLjE4LTAuMTEtMC4yNS0wLjE2Yy0wLjItMC4xMy0wLjQtMC4yOC0wLjU5LTAuNDZDMTE3LjMxLDM4LjkzLDExNy42OCwzOC43OCwxMTguMDMsMzguNnogTTExNi4yNSwzMC41NyBjMC4xMywwLjA4LDAuMjYsMC4xNywwLjM5LDAuMjhjMC4xMSwwLjA5LDAuMiwwLjE5LDAuMzEsMC4zMmwwLjEyLDAuMTZjMC4zMiwwLjQ2LDAuNDYsMS4wMiwwLjQyLDEuNjFjMCwwLjAzLDAsMC4wNi0wLjAxLDAuMSBjLTAuMDQsMC4zMy0wLjE0LDAuNjMtMC4zMSwwLjkyYy0wLjE2LDAuMjktMC4zOCwwLjUzLTAuNjIsMC43MmwtMC4xNCwwLjFjLTAuNDYsMC4zMi0xLjAyLDAuNDctMS41OCwwLjQyIGMtMC4wNSwwLTAuMS0wLjAxLTAuMTMtMC4wMWMtMC4zMi0wLjA0LTAuNjMtMC4xNC0wLjkyLTAuMzFjLTAuMjktMC4xNi0wLjUzLTAuMzgtMC43Mi0wLjYybC0wLjEtMC4xNCBjLTAuMzEtMC40NS0wLjQ2LTEuMDEtMC40Mi0xLjU4YzAtMC4wNSwwLjAxLTAuMSwwLjAxLTAuMTNjMC4wMy0wLjIsMC4wOC0wLjQsMC4xNi0wLjYxYzAuMDUtMC4xMiwwLjEtMC4yMiwwLjE1LTAuMzEgYzAuMDYtMC4xMSwwLjE0LTAuMjEsMC4yMy0wLjMzYzAuMTMtMC4xNiwwLjI2LTAuMjksMC4zOS0wLjM5bDAuMTQtMC4xYzAuMjItMC4xNSwwLjQ2LTAuMjYsMC43Mi0wLjMzIGMwLjIyLTAuMDYsMC40NS0wLjA5LDAuNjktMC4wOWMwLjA2LDAsMC4xMywwLDAuMiwwLjAxYzAuMDMsMCwwLjA3LDAsMC4xMSwwLjAxYzAuMDgsMC4wMSwwLjE1LDAuMDIsMC4yNCwwLjA0IEMxMTUuODEsMzAuMzYsMTE2LjA0LDMwLjQ1LDExNi4yNSwzMC41N3ogTTExOS43NiwyMy4zOGMwLjE0LDAuMDYsMC4zMSwwLjE0LDAuNDcsMC4yM2MwLjUzLDAuMywwLjk4LDAuNjksMS4zNSwxLjE3IGMwLjQzLDAuNTUsMC43MywxLjIsMC44OCwxLjg5YzAuMTIsMC41NCwwLjE0LDEuMSwwLjA2LDEuNjRjLTAuMDgsMC41OC0wLjI3LDEuMTMtMC41NywxLjY0Yy0wLjA0LDAuMDgtMC4wOSwwLjE2LTAuMTYsMC4yNSBjLTAuMTQsMC4yMS0wLjI5LDAuNDEtMC40NiwwLjU5Yy0wLjA5LTAuMy0wLjIxLTAuNi0wLjM0LTAuODhsLTAuMDktMC4xOWMtMC4yOC0wLjU1LTAuNjQtMS4wNy0xLjA3LTEuNTIgYy0wLjMzLTAuMzUtMC42OS0wLjY2LTEuMTMtMC45N2MtMC4xMy0wLjA5LTAuMjYtMC4xNy0wLjQtMC4yNWMtMC4wMy0wLjAyLTAuMDUtMC4wMy0wLjA4LTAuMDRjLTAuMDItMC4wNi0wLjA0LTAuMTItMC4wNi0wLjE4IGMtMC40Ny0xLjI2LTEuMjItMi40LTIuMTktMy4zMmMwLjQ3LTAuMjEsMC45Ny0wLjM1LDEuNDktMC40MUMxMTguMjQsMjIuOTQsMTE5LjAzLDIzLjA3LDExOS43NiwyMy4zOHogTTEwNS45MiwyNy40OSBjMC41LTAuODYsMS4yNS0xLjUzLDIuMTctMS45MmMwLjc5LTAuMzQsMS42My0wLjQ3LDIuNTItMC4zNGMwLjU4LDAuMDgsMS4xMywwLjI3LDEuNjQsMC41NmMwLjA4LDAuMDUsMC4xNywwLjEsMC4yNSwwLjE2IGMwLjIxLDAuMTQsMC40MSwwLjI5LDAuNTksMC40NmMtMC4zNywwLjExLTAuNzMsMC4yNi0xLjA3LDAuNDNjLTAuNTIsMC4yNi0xLjAyLDAuNjEtMS40NywxLjAyYy0wLjQsMC4zNy0wLjc0LDAuNzctMS4wMywxLjIgYy0wLjA3LDAuMTEtMC4xNiwwLjI1LTAuMjUsMC4zOWMtMC4wMSwwLjAzLTAuMDMsMC4wNS0wLjA0LDAuMDhjLTEuMzEsMC40Ni0yLjU0LDEuMjUtMy41MSwyLjI2IEMxMDUuMDksMzAuNDEsMTA1LjE1LDI4LjgzLDEwNS45MiwyNy40OXogTTEwNy43NSw0NS40MWMxLjgzLDEuMDUsMy45OCwxLjQsNi4wNiwwLjk5YzAuNjYtMC4xMywxLjI5LTAuMzMsMS45LTAuNmwwLjExLDAuMDkgYzAuNDUsMC4zNCwwLjkyLDAuNjUsMS4zOSwwLjkyYzEuNjEsMC45MywzLjQzLDEuNTEsNS4yOSwxLjdjLTEuMjYsMS42LTMuMDMsMi43NC01LjAzLDMuMjRjLTIuMzIsMC41OC00Ljc1LDAuMjQtNi44Mi0wLjk0IGMtMC44Ny0wLjUtMS42NS0xLjEzLTIuMzEtMS44OGMtMC41Ni0wLjYzLTEuMDItMS4zMi0xLjM5LTIuMDdjLTAuNC0wLjgxLTAuNjgtMS43MS0wLjgyLTIuNjIgQzEwNi42Myw0NC42OCwxMDcuMTcsNDUuMDgsMTA3Ljc1LDQ1LjQxeiBNMTI3LjcxLDM5Ljk5YzAuOTMtMS42MywxLjMyLTMuNTUsMS4wOS01LjQyYzAuNzktMC44MSwxLjQ4LTEuNzIsMi4wNC0yLjcgYzAuMTctMC4yOSwwLjMzLTAuNiwwLjUtMC45OGMwLjEtMC4yMiwwLjItMC40NCwwLjI5LTAuNjZjMS44NiwyLjkyLDEuOTYsNi41OCwwLjI0LDkuNTdjLTEuMDQsMS44Mi0yLjYzLDMuMi00LjU4LDMuOTggYy0wLjc1LDAuMy0xLjU0LDAuNS0yLjM1LDAuNmMtMS4wMiwwLjEyLTIuMDcsMC4wNy0zLjA3LTAuMTVDMTI0LjMsNDMuNzEsMTI2LjQ2LDQyLjE2LDEyNy43MSwzOS45OXogTTEwMS44OSw0Mi40NSBjLTAuMDIsMS4wNiwwLjA4LDIuMTEsMC4zLDMuMTRjLTAuMy0wLjEzLTAuNTktMC4yOC0wLjg3LTAuNDRjLTEuNDctMC44NC0yLjY3LTIuMDctMy40OS0zLjU1Yy0wLjQtMC43My0wLjctMS41MS0wLjg5LTIuMzIgYy0wLjU1LTIuMjgtMC4yMS00LjY4LDAuOTYtNi43NWMwLjQxLTAuNzEsMC45MS0xLjM2LDEuNDktMS45NWMwLjU0LTAuNTQsMS4xNS0xLjAxLDEuODEtMS40Yy0wLjE4LDIuNDUsMC42Nyw0Ljg1LDIuMzcsNi42NSBjLTAuMDUsMC4yMy0wLjEsMC40Ny0wLjEzLDAuN2MtMC4yMywwLjQ0LTAuNDQsMC44OC0wLjYxLDEuMzJjLTAuMjQsMC42MS0wLjQ1LDEuMjctMC42LDEuOTYgQzEwMi4wMiw0MC42OCwxMDEuOTEsNDEuNTYsMTAxLjg5LDQyLjQ1eiBNMTMyLjU4LDI0LjQ3YzEuMTctMC4yLDIuMzYtMC4zNSwzLjU0LTAuNDRjMC45OC0wLjA3LDEuOTYtMC4xLDIuOTgtMC4xIGMtMi4wNCwwLjUtNCwxLjA5LTUuODMsMS43OGMtMC4yMi0wLjIyLTAuNDQtMC40Mi0wLjY2LTAuNjJDMTMyLjYsMjQuODgsMTMyLjYsMjQuNjgsMTMyLjU4LDI0LjQ3eiIvPiA8L2c+IDwvc3ZnPg==") center/contain no-repeat;
	pointer-events:none;
	transform:rotate(-8deg)
}
.footer>.wrap {
	position:relative
}
.footer a {
	transition:color .3s
}
.footer-main {
	display:flex;
	justify-content:space-between;
	align-items:flex-end;
	gap:40px;
	padding-bottom:clamp(36px,5vw,64px)
}
.footer-lead {
	display:flex;
	flex-direction:column;
	gap:22px
}
.footer-brand {
	width:230px
}
.footer-brand img {
	filter:brightness(0) invert(1);
	opacity:.95;
	margin-left:-2.86%
}
.footer-tagline {
	font:500 clamp(20px,2.2vw,30px)/1.7 var(--serif);
	margin:0;
	letter-spacing:.08em
}
.footer-nav {
	display:flex;
	gap:10px 30px;
	flex-wrap:wrap;
	justify-content:flex-end;
	font-size:13px;
	letter-spacing:.08em;
	max-width:520px
}
.footer-nav a {
	padding:8px 0;
	position:relative
}
.footer-nav a:hover {
	color:#e6c996
}
.legal {
	padding-block:34px 18px;
	border-top:1px solid rgba(255,255,255,.16)
}
.legal-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:30px clamp(24px,3vw,48px)
}
.legal-store {
	padding-top:16px;
	border-top:1px solid rgba(255,255,255,.2)
}
.legal-store h3 {
	margin:0 0 10px;
	font:500 14px/1.6 var(--sans);
	letter-spacing:.08em;
	color:#e6c996
}
.legal-store dl {
	margin:0;
	font-size:11.5px;
	line-height:1.8
}
.legal-store dl>div {
	display:grid;
	grid-template-columns:11.5em minmax(0,1fr);
	gap:10px;
	padding:5px 0;
	border-top:1px solid rgba(255,255,255,.1)
}
.legal-store dl>div:first-child {
	border-top:0
}
.legal-store dt {
	opacity:.62
}
.legal-store dd {
	margin:0;
	overflow-wrap:anywhere
}
.legal-store .pending {
	display:inline-block;
	padding:0 10px;
	border:1px dashed rgba(230,201,150,.7);
	border-radius:99px;
	font-size:11px;
	color:#e6c996
}
@media(max-width:1180px) {
	.legal-grid {
		grid-template-columns:repeat(2,minmax(0,1fr))
	}
}
@media(max-width:700px) {
	.legal-grid {
		grid-template-columns:1fr
	}
	.legal-store dl>div {
		grid-template-columns:1fr;
		gap:0;
		padding:7px 0
	}
}
.legal-title {
	display:flex;
	justify-content:space-between;
	align-items:baseline;
	gap:20px;
	margin-bottom:20px
}
.legal-title h2 {
	font:500 15px/1.5 var(--sans);
	letter-spacing:.08em
}
.legal-title p {
	font-size:11px;
	margin:0;
	opacity:.65
}
.footer-bottom {
	padding-block:26px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	font-size:11px;
	gap:25px;
	border-top:1px solid rgba(255,255,255,.16);
	margin-top:20px
}
.footer-bottom p {
	margin:0;
	opacity:.6
}
.footer-bottom a {
	text-decoration:underline;
	text-underline-offset:5px
}
.footer-bottom a:hover {
	color:#e6c996
}

/* ---- inner pages ------------------------------------------------------------------------------ */
.breadcrumb {
	font-size:11px;
	color:var(--muted);
	padding-block:22px 6px;
	display:flex;
	gap:12px;
	flex-wrap:wrap;
	letter-spacing:.04em
}
.breadcrumb a {
	text-decoration:underline;
	text-underline-offset:4px;
	text-decoration-color:var(--line-strong)
}
.page-hero {
	position:relative;
	padding:clamp(30px,5vw,70px) 0 clamp(40px,6vw,80px)
}
.hero-orn {
	z-index:0;
	position:absolute;
	right:0;
	top:0;
	width:min(60%,620px);
	height:auto;
	color:var(--gold);
	opacity:.7;
	pointer-events:none;
	overflow:visible
}
.page-hero h1 {
	font-size:clamp(32px,4.2vw,64px);
	line-height:1.45;
	position:relative;
	text-wrap:balance
}
@media(min-width:961px) {
	.page-hero h1 .line {
		white-space:nowrap
	}
}
.page-hero p {
	max-width:640px;
	margin:26px 0 0;
	font-size:14.5px;
	line-height:2.1;
	position:relative
}
.with-photo .hero-orn {
	display:none
}
@media(max-width:560px) {
	.hero-orn {
		display:none
	}
}
/* 狭い画面では、見出しや文章に重なるので出さない */
.page-hero.with-photo {
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(0,1fr);
	gap:clamp(30px,5vw,80px);
	align-items:center
}
.page-hero-copy {
	position:relative
}
.page-hero-frame {
	position:relative;
	z-index:1;
	height:clamp(300px,34vw,460px);
	border-radius:6px 220px 6px 6px
}
.page-hero-frame .page-hero-photo {
	width:100%;
	height:100%;
	object-fit:cover
}
.page-content {
	padding-block:10px clamp(60px,8vw,110px)
}
.prose {
	max-width:760px;
	margin-inline:auto
}
.prose section {
	position:relative;
	padding-block:clamp(34px,5vw,56px)
}
.prose h2 {
	font-size:clamp(23px,2.7vw,34px);
	margin-bottom:24px
}
.prose p {
	line-height:2.25;
	margin:0 0 1.5em
}
.chap {
	display:block;
	font:italic 400 clamp(30px,3.4vw,44px)/1 var(--en);
	color:var(--gold);
	margin-bottom:16px
}
.break {
	margin-block:20px 44px;
	aspect-ratio:2.2;
	border-radius:6px 120px 6px 6px
}
.break>img {
	height:120%;
	margin-top:-10%
}
.callout {
	position:relative;
	padding:clamp(26px,4vw,44px);
	margin-block:36px;
	background:var(--pine);
	color:var(--white);
	border-radius:6px 70px 6px 6px
}
.callout h3 {
	font-size:clamp(21px,2.2vw,28px);
	margin-bottom:14px
}
.callout p {
	font-size:14px;
	margin-bottom:14px
}
.callout p:last-child {
	margin-bottom:0
}
.callout .text-link {
	color:#f1deb9
}
.related-stores {
	position:relative;
	padding-block:clamp(36px,5vw,56px)
}
.related-stores h2 {
	font-size:clamp(22px,2.2vw,28px)
}
.store-links {
	display:flex;
	gap:12px;
	flex-wrap:wrap;
	margin-top:24px
}
.store-links a,.directory-nav a {
	display:inline-flex;
	align-items:center;
	gap:12px;
	min-height:46px;
	border:1px solid var(--line-strong);
	border-radius:6px 99px 99px 6px;
	padding:8px 22px 8px 20px;
	font-size:14px;
	letter-spacing:.05em;
	background:var(--white);
	transition:background .4s,color .4s,border-color .4s,transform .4s var(--ease)
}
.store-links a .ico {
	font-size:18px;
	color:var(--gold);
	transition:color .4s
}
.store-links a:hover,.directory-nav a:hover {
	background:var(--pine);
	color:var(--white);
	border-color:var(--pine);
	transform:translateY(-2px)
}
.store-links a:hover .ico {
	color:#e6c996
}
.reference-note {
	font-size:12px!important;
	color:var(--muted);
	line-height:1.85!important
}
.reference-note a {
	text-decoration:underline;
	text-underline-offset:3px
}

.article-layout {
	display:grid;
	grid-template-columns:230px minmax(0,1fr);
	gap:clamp(30px,5vw,80px);
	align-items:start
}
.toc {
	position:sticky;
	top:calc(var(--header) + 30px);
	display:flex;
	flex-direction:column;
	padding-top:26px;
	border-top:1px solid var(--line)
}
.toc-title {
	font:500 11px var(--en);
	letter-spacing:.3em;
	color:var(--gold);
	margin-bottom:12px
}
.toc a {
	display:flex;
	gap:12px;
	padding:9px 0;
	font-size:12.5px;
	line-height:1.6;
	color:var(--muted);
	transition:color .3s,transform .4s var(--ease)
}
.toc a span {
	font:italic 400 15px/1.3 var(--en);
	color:var(--gold)
}
.toc a:hover,.toc a.on {
	color:var(--pine);
	transform:translateX(5px)
}
.toc a.on {
	font-weight:700
}
.article-layout .prose {
	margin:0;
	max-width:none
}
.text-blocks {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:clamp(20px,3vw,40px);
	margin:30px 0
}
.text-blocks article {
	border-top:1px solid var(--line);
	padding-top:22px
}
.text-blocks h3 {
	margin-bottom:14px
}
.text-blocks p {
	font-size:14px;
	line-height:2.1
}

/* store label: colour-coded, with a pin, readable at a glance */
.store-tag {
	--tag:var(--pine);
	display:inline-flex;
	align-items:center;
	gap:6px;
	padding:5px 14px 5px 10px;
	border-radius:99px;
	background:var(--tag);
	color:#fff;
	font:500 12.5px/1.4 var(--sans);
	letter-spacing:.06em;
	white-space:nowrap;
	box-shadow:0 4px 12px -6px rgba(12,47,38,.6)
}
.store-tag .ico {
	font-size:15px;
	color:rgba(255,255,255,.92)
}
[data-store=kodeki] {
	--tag:#9a6a35
}
[data-store=issha] {
	--tag:#4f6b8a
}
[data-store=ginan] {
	--tag:#6b7f3a
}
[data-store=matsuriba] {
	--tag:#8a4f5f
}
a.store-tag {
	transition:transform .4s var(--ease),box-shadow .4s
}
a.store-tag:hover {
	transform:translateY(-2px);
	box-shadow:0 10px 18px -8px rgba(12,47,38,.6)
}
.pup-store.store-tag {
	margin-top:14px;
	font-size:11.5px;
	padding:4px 12px 4px 9px
}

/* puppies list */
.puppy-toolbar {
	display:flex;
	justify-content:space-between;
	gap:22px;
	align-items:baseline;
	border-top:1px solid var(--line);
	padding-block:24px
}
.puppy-toolbar h2 {
	font-size:clamp(19px,1.8vw,24px)
}
.puppy-toolbar p {
	font-size:12px;
	margin:0;
	color:var(--muted)
}
.filters {
	display:grid;
	gap:16px;
	margin-bottom:34px;
	padding:24px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 44px 6px 6px
}
.js .filters {
	display:grid
}
.filter-group {
	border:0;
	margin:0;
	padding:0;
	display:grid;
	grid-template-columns:5em 1fr;
	gap:12px;
	align-items:start
}
.filter-group legend {
	float:left;
	width:5em;
	padding:0;
	font:500 12px/2.4 var(--sans);
	letter-spacing:.1em;
	color:var(--muted)
}
.chip-row {
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	grid-column:2
}
.chip {
	padding:5px 16px;
	min-height:36px;
	border:1px solid var(--line-strong);
	border-radius:99px;
	font-size:13px;
	transition:background .3s,color .3s,border-color .3s,transform .3s var(--ease)
}
.chip:hover {
	border-color:var(--pine);
	transform:translateY(-1px)
}
.chip[aria-pressed=true] {
	background:var(--pine);
	color:var(--white);
	border-color:var(--pine)
}
.filter-status {
	margin:4px 0 0;
	font-size:12.5px;
	color:var(--muted);
	display:flex;
	gap:6px;
	align-items:baseline;
	flex-wrap:wrap
}
.filter-status b {
	font:500 24px/1 var(--serif);
	color:var(--pine)
}
.filter-reset {
	margin-left:14px;
	text-decoration:underline;
	text-underline-offset:4px;
	color:var(--pine);
	font-size:12.5px
}
.puppy-grid {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:clamp(36px,4vw,56px) clamp(16px,2vw,28px)
}
.puppy-card {
	display:block;
	position:relative
}
.puppy-card .frame {
	aspect-ratio:.95;
	border-radius:6px 32px 6px 6px
}
.puppy-photo {
	transition:transform 1s var(--ease)
}
.puppy-badge {
	position:absolute;
	left:12px;
	bottom:12px;
	z-index:2
}
.puppy-title {
	display:block;
	margin:18px 0 4px
}
.puppy-title .puppy-sex {
	margin-top:4px
}
.puppy-title h3 {
	font-size:clamp(18px,1.6vw,22px);
	transition:color .3s
}
/* 新HP: 犬種の登録が無い子は見出しが空になるので、高さだけ残して隣とそろえる */
.puppy-title h3:empty::before {
	content:"\00a0"
}
.puppy-card:hover h3 {
	color:var(--gold)
}
.puppy-sex {
	font-size:11.5px;
	white-space:nowrap;
	display:inline-flex;
	align-items:center;
	gap:6px
}
.puppy-sex::before {
	content:"";
	width:8px;
	height:8px;
	border-radius:50%;
	background:#7aa6b8
}
.puppy-sex[data-sex="女の子"]::before {
	background:#d99b9b
}
.puppy-meta {
	font-size:12px;
	color:var(--muted);
	line-height:1.85
}
.puppy-price {
	margin-top:12px;
	padding-top:12px;
	border-top:1px solid var(--line);
	display:flex;
	justify-content:space-between;
	align-items:center;
	font-size:13.5px;
	gap:12px
}
.puppy-price .has-amount {
	font-size:clamp(20px,1.8vw,24px);
	font-weight:500;
	letter-spacing:.03em;
	line-height:1.3
}
.puppy-price .text-arrow {
	transition:transform .5s var(--ease)
}
.puppy-card:hover .text-arrow {
	transform:translateX(6px)
}
.puppy-caption {
	font:500 11px var(--en);
	letter-spacing:.2em;
	color:var(--muted);
	margin-top:8px
}
.puppy-card[hidden] {
	display:none
}
.empty-note {
	padding:60px 0;
	text-align:center;
	color:var(--muted)
}
.puppy-grid+.empty-note+.callout {
	margin-top:60px
}

/* detail */
.detail-layout {
	display:grid;
	grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
	gap:clamp(30px,5vw,80px);
	padding-block:20px 70px;
	align-items:start
}
.detail-photo {
	width:100%;
	height:100%;
	object-fit:cover
}
.detail-info h1 {
	font-size:clamp(34px,4vw,54px);
	margin:14px 0 22px
}
.detail-number {
	font:500 12px/1.5 var(--en);
	letter-spacing:.28em;
	color:var(--gold)
}
.detail-info dl {
	margin:24px 0 26px
}
.detail-info dl>div {
	display:grid;
	grid-template-columns:6em 1fr;
	padding:13px 0;
	border-bottom:1px solid var(--line);
	gap:20px;
	font-size:13.5px
}
.detail-info dt {
	color:var(--muted)
}
.detail-info dd {
	margin:0
}
.detail-info .invite {
	margin-top:24px
}
.detail-story {
	position:relative;
	max-width:760px;
	margin:auto;
	padding-block:30px 80px
}
.detail-story h2 {
	font-size:clamp(24px,2.8vw,34px);
	margin-bottom:24px
}
.detail-story p {
	font-size:14.5px;
	line-height:2.2
}
.back-link {
	margin-top:26px
}

/* ---- puppy detail: gallery / specs / comment / costs ---- */
.detail-layout {
	grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
	align-items:start
}
.detail-figure {
	position:sticky;
	top:calc(var(--header) + 24px)
}
.gallery-main {
	aspect-ratio:8/5;
	border-radius:6px 32px 6px 6px
}
/* source photos are 8:5 landscape: show them uncropped */
.gallery-main .detail-photo {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	transition:opacity .35s
}
.gallery-main.is-swapping .detail-photo {
	opacity:0
}
.gallery-thumbs {
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(84px,1fr));
	gap:10px;
	margin-top:12px
}
.thumb {
	position:relative;
	display:block;
	aspect-ratio:8/5;
	border-radius:6px;
	overflow:hidden;
	background:var(--sage);
	outline:1px solid transparent;
	transition:transform .5s var(--ease),outline-color .3s,opacity .3s;
	opacity:.75
}
.thumb img {
	width:100%;
	height:100%;
	object-fit:cover
}
.thumb:hover {
	opacity:1;
	transform:translateY(-2px)
}
.thumb[aria-current=true] {
	opacity:1;
	outline:2px solid var(--pine);
	outline-offset:2px
}
.spec {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:0 28px;
	margin:22px 0 8px
}
.spec>div {
	display:grid;
	grid-template-columns:5.2em 1fr;
	gap:12px;
	padding:13px 0;
	border-bottom:1px solid var(--line);
	font-size:13.5px
}
.spec dt {
	color:var(--muted)
}
.spec dd {
	margin:0;
	display:flex;
	flex-direction:column;
	gap:2px
}
.spec dd small {
	font-size:11px;
	color:var(--muted)
}
.spec .spec-store {
	grid-column:1/-1;
	align-items:baseline
}
/* 「いる店舗」・店舗の札・案内リンクの文字の底(ベースライン)を揃える */
.spec-store dd {
	display:block
}
/* 横に並べるのは inline の並び(ベースライン揃え)にする */
.spec-store dd>* {
	vertical-align:baseline
}
.spec-store .store-tag {
	align-items:baseline
}
/* 札のベースライン=札の中の文字の底(先頭が絵なので、そのままだと絵の底になる) */
.spec-store .store-tag {
	margin-right:14px
}
.spec-store .store-tag .ico {
	position:relative;
	top:2px
}
.spec-store dd>.jump-store {
	display:inline-block;
	margin:0;
	padding:2px 0;
	line-height:1.7
}
.jump-store {
	font-size:12px;
	color:var(--muted);
	text-decoration:underline;
	text-underline-offset:4px
}
.staff-comment {
	margin-top:30px;
	padding:22px 24px 24px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 44px 6px 6px
}
.staff-comment .eyebrow {
	margin-bottom:10px
}
.staff-comment h2 {
	font-size:clamp(19px,1.8vw,24px);
	margin-bottom:10px
}
.comment-body p {
	font-size:13.5px;
	line-height:2;
	margin:0 0 .7em
}
.comment-body p:last-child {
	margin-bottom:0
}
.slot {
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:4px;
	padding:22px 16px;
	text-align:center;
	color:var(--pine);
	border:1px dashed rgba(20,71,58,.4);
	border-radius:6px;
	background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(20,71,58,.07) 14px 15px),#eef2e6
}
.slot .ico {
	font-size:26px;
	opacity:.7
}
.slot-title {
	font:500 15px var(--serif);
	letter-spacing:.08em
}
.slot-desc {
	font-size:11.5px;
	color:var(--muted);
	line-height:1.8
}
.jump-cost {
	display:inline-flex;
	align-items:center;
	gap:10px;
	margin-top:26px;
	padding-block:8px;
	font-size:14px;
	font-weight:500;
	letter-spacing:.06em;
	color:var(--pine);
	border-bottom:1px solid var(--line-strong)
}
.jump-cost svg {
	width:18px;
	height:18px;
	stroke:currentColor;
	fill:none;
	stroke-width:1.3;
	stroke-linecap:round;
	stroke-linejoin:round;
	transition:transform .5s var(--ease)
}
.jump-cost:hover svg {
	transform:translateY(4px)
}

.detail-cost {
	position:relative;
	margin-block:20px 60px;
	padding-top:clamp(36px,5vw,60px);
	scroll-margin-top:0
}
.cost-head {
	margin-bottom:clamp(22px,3vw,36px)
}
.cost-head h2 {
	font-size:clamp(26px,3vw,40px)
}
.cost-head .reference-note {
	margin:10px 0 0
}
.cost-grid {
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(300px,380px);
	gap:clamp(24px,4vw,56px);
	align-items:start
}
.cost-options {
	display:grid;
	gap:26px
}
.cost-block {
	margin:0;
	padding:0 0 26px;
	border:0;
	border-bottom:1px solid var(--line);
	min-width:0
}
.cost-block:last-child {
	border-bottom:0
}
.cost-block h3,.cost-block legend {
	padding:0;
	margin:0 0 14px;
	font:500 14px/1.6 var(--sans);
	letter-spacing:.14em;
	color:var(--muted)
}
.cost-block legend {
	float:left;
	width:100%
}
.cost-block legend+* {
	clear:both
}
.cost-price {
	margin:0 0 6px;
	font:500 clamp(32px,3.6vw,48px)/1.2 var(--serif);
	letter-spacing:.02em;
	font-variant-numeric:lining-nums
}
.cost-block .reference-note {
	margin:6px 0 0
}
.opt-grid {
	display:grid;
	gap:10px
}
.opt-grid.three {
	grid-template-columns:repeat(3,minmax(0,1fr))
}
.opt {
	position:relative;
	display:block;
	cursor:pointer
}
.opt input {
	position:absolute;
	opacity:0;
	inset:0;
	margin:0;
	cursor:pointer
}
.opt-body {
	display:block;
	height:100%;
	padding:16px 18px;
	background:var(--white);
	border:1px solid var(--line-strong);
	border-radius:6px 28px 6px 6px;
	transition:border-color .3s,background .3s,box-shadow .4s var(--ease),transform .4s var(--ease)
}
.opt:hover .opt-body {
	border-color:var(--pine);
	transform:translateY(-1px)
}
.opt input:checked+.opt-body {
	border-color:var(--pine);
	background:#eef3e6;
	box-shadow:inset 0 0 0 1px var(--pine)
}
.opt input:focus-visible+.opt-body {
	outline:3px solid var(--gold);
	outline-offset:3px
}
.opt-head {
	display:flex;
	flex-wrap:wrap;
	align-items:baseline;
	gap:4px 10px
}
.opt-head b {
	font:500 16px/1.5 var(--serif);
	letter-spacing:.06em
}
.opt-head small {
	font-size:12px;
	color:var(--muted)
}
.opt-grid.three .opt-head {
	flex-direction:column;
	align-items:flex-start;
	gap:2px
}
.opt-grid.three .opt-price {
	margin-left:0;
	margin-top:6px;
	font-size:20px
}
.opt-price {
	margin-left:auto;
	font:500 18px/1.4 var(--sans);
	font-style:normal;
	letter-spacing:.04em;
	font-variant-numeric:lining-nums tabular-nums;
	color:var(--pine)
}
.opt em {
	display:block;
	margin-top:2px;
	font-style:normal;
	font-size:11.5px;
	color:var(--muted)
}
.opt-items {
	margin:10px 0 0;
	padding:10px 0 0;
	border-top:1px dashed var(--line-strong);
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:4px 18px;
	font-size:12px;
	line-height:1.7;
	color:var(--muted)
}
.opt-items li {
	position:relative;
	padding-left:1.1em
}
.opt-items li::before {
	content:"";
	position:absolute;
	left:0;
	top:.75em;
	width:.55em;
	height:1px;
	background:var(--gold)
}
.program-more {
	margin:12px 0 0
}
.program-more .text-link {
	font-size:12.5px
}
.vaccine-calc {
	margin:0;
	padding:6px 18px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 20px 6px 6px
}
.vaccine-calc>div {
	display:flex;
	justify-content:space-between;
	align-items:baseline;
	gap:16px;
	padding:10px 0;
	border-bottom:1px dashed var(--line-strong);
	font-size:13.5px
}
.vaccine-calc dt {
	color:var(--muted)
}
.vaccine-calc dd {
	margin:0;
	text-align:right;
	font-variant-numeric:lining-nums tabular-nums
}
.vaccine-calc .vc-total {
	border-bottom:0;
	padding-top:14px
}
.vaccine-calc .vc-total dt {
	color:var(--ink);
	font-weight:500
}
.vaccine-calc .vc-total dd {
	font:500 22px var(--sans);
	letter-spacing:.04em;
	color:var(--pine)
}
.vaccine-notes {
	margin:12px 0 0;
	display:grid;
	gap:4px;
	font-size:12px;
	line-height:1.8;
	color:var(--muted)
}
.vaccine-notes li {
	position:relative;
	padding-left:1.3em
}
.vaccine-notes li::before {
	content:"※";
	position:absolute;
	left:0
}
.cost-summary {
	position:sticky;
	top:calc(var(--header) + 24px);
	padding:26px 26px 24px;
	background:var(--pine);
	color:var(--white);
	border-radius:6px 56px 6px 6px
}
.cost-summary h3 {
	font:500 14px/1.6 var(--sans);
	letter-spacing:.16em;
	margin-bottom:12px;
	color:#e6c996
}
.sum-lines {
	margin:0
}
.sum-lines>div {
	display:flex;
	justify-content:space-between;
	gap:12px;
	padding:8px 0;
	border-bottom:1px solid rgba(255,255,255,.16);
	font-size:13px
}
.sum-lines dt {
	opacity:.8
}
.sum-lines dd {
	margin:0;
	font-variant-numeric:lining-nums tabular-nums
}
.sum-total {
	display:flex;
	justify-content:space-between;
	align-items:baseline;
	margin:16px 0 14px;
	font-size:13px
}
.sum-total b {
	font:500 clamp(30px,3vw,40px)/1.1 var(--serif);
	letter-spacing:.02em;
	font-variant-numeric:lining-nums tabular-nums;
	color:#fff1cf
}
.sum-notes {
	margin:0 0 18px;
	padding:12px 0 0;
	border-top:1px solid rgba(255,255,255,.16);
	font-size:11.5px;
	line-height:1.85;
	opacity:.82;
	display:grid;
	gap:2px
}
.cost-actions {
	display:grid;
	gap:10px;
	justify-items:start
}
.cost-summary .contact-btn .invite-main {
	white-space:nowrap;
	font-size:13px;
	letter-spacing:.04em
}
@media(max-width:380px) {
	.cost-summary .contact-btn .invite-main,.cost-inquiry .contact-btn .invite-main {
		white-space:normal;
		font-size:12.5px;
		line-height:1.6
	}
}
/* 幅320pxで、ボタンの文字が矢印と一緒にはみ出していた */
.cost-summary .contact-btn {
	--bg:var(--white);
	--ink-c:var(--pine);
	--hover-bg:#f1deb9;
	--hover-ink:var(--pine);
	width:100%;
	justify-content:space-between;
	min-height:52px;
	border-radius:99px;
	padding-left:22px
}
.cost-summary .contact-btn::before {
	display:none
}
.cost-summary .contact-btn .arrow {
	background:var(--pine);
	color:#fff;
	border:0
}
.cost-summary .contact-btn:hover .arrow {
	background:var(--pine);
	color:#fff
}
.cost-summary .tel-btn {
	background:transparent;
	border:1px solid rgba(255,255,255,.5);
	box-shadow:none;
	width:100%;
	justify-content:flex-start
}
.cost-summary .tel-btn:hover {
	background:#fff;
	color:var(--pine)
}
.cost-summary .tel-btn:hover .ico {
	background:var(--pine);
	color:#fff
}
.admin-no {
	margin:14px 0 0;
	font:500 11px/1.6 var(--en);
	letter-spacing:.18em;
	opacity:.6
}
.cost-inquiry {
	max-width:560px;
	padding:28px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 44px 6px 6px
}
.cost-price-label {
	margin:0;
	font-size:12px;
	color:var(--muted);
	letter-spacing:.14em
}
.cost-inquiry .cost-actions {
	margin-top:18px
}
.cost-inquiry .contact-btn {
	--bg:var(--pine);
	--ink-c:var(--white);
	min-height:48px;
	border-radius:99px;
	padding-left:22px
}
.cost-inquiry .contact-btn::before {
	display:none
}
.cost-inquiry .admin-no {
	color:var(--muted)
}
.loan-sim {
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(300px,420px);
	gap:clamp(24px,4vw,56px);
	align-items:center;
	margin-top:30px;
	padding:clamp(22px,3vw,34px);
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 44px 6px 6px
}
.loan-intro .eyebrow {
	display:block;
	margin-bottom:6px
}
.loan-intro h3 {
	font:500 20px/1.5 var(--serif,var(--sans));
	letter-spacing:.06em;
	color:var(--pine);
	margin:0 0 8px
}
.loan-intro p {
	margin:0;
	font-size:14px
}
.loan-cond {
	list-style:none;
	margin:16px 0 0;
	padding:0;
	display:grid;
	gap:4px;
	font-size:12px;
	line-height:1.8;
	color:var(--muted)
}
.loan-cond li {
	position:relative;
	padding-left:14px
}
.loan-cond li::before {
	content:"";
	position:absolute;
	left:0;
	top:.85em;
	width:6px;
	height:1px;
	background:var(--gold)
}
.loan-ctl {
	display:grid;
	gap:14px
}
.loan-pick {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	font-size:13px;
	letter-spacing:.08em
}
.loan-sel {
	display:inline-flex;
	align-items:center;
	gap:8px
}
.loan-sel i {
	font-style:normal;
	font-size:13px
}
.loan-sel select {
	appearance:none;
	-webkit-appearance:none;
	font:500 18px var(--sans);
	min-width:96px;
	padding:8px 36px 8px 16px;
	border:1px solid var(--line-strong);
	border-radius:999px;
	color:var(--pine);
	cursor:pointer;
	background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2314473a' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center
}
.loan-out {
	display:grid;
	grid-template-columns:1fr 1fr;
	background:var(--paper);
	border-radius:6px 28px 6px 6px
}
.loan-out p {
	display:grid;
	gap:4px;
	margin:0;
	padding:16px 20px
}
.loan-out p+p {
	border-left:1px solid var(--line)
}
.loan-out span {
	font-size:11.5px;
	letter-spacing:.14em;
	color:var(--muted)
}
.loan-out b {
	font:500 clamp(22px,2.6vw,28px)/1.3 var(--sans);
	letter-spacing:.03em;
	color:var(--pine);
	white-space:nowrap
}
.loan-fee {
	margin:0;
	font-size:12px;
	color:var(--muted);
	text-align:right;
	line-height:1.8
}
.loan-fee b {
	font-weight:500;
	color:var(--ink)
}
.loan-fee span {
	margin-left:.6em
}
.loan-sim.is-off .loan-out b {
	color:var(--muted)
}
@media(max-width:820px) {
	.loan-sim {
		grid-template-columns:1fr
	}
}
@media(max-width:1180px) {
	.opt-grid.three {
		grid-template-columns:1fr
	}
	.opt-items {
		grid-template-columns:1fr
	}
}
@media(max-width:960px) {
	.detail-figure {
		position:static
	}
	.cost-grid,.loan-sim {
		grid-template-columns:1fr
	}
	.cost-summary {
		position:static
	}
	.spec {
		grid-template-columns:1fr
	}
}
@media(max-width:760px) {
	.gallery-main {
		border-radius:6px 24px 6px 6px
	}
	.gallery-thumbs {
		grid-template-columns:repeat(5,1fr)
	}
	.opt-head .opt-price {
		margin-left:0;
		width:100%
	}
	.staff-comment,.cost-inquiry,.loan-sim {
		padding:20px 18px
	}
	.cost-summary {
		padding:22px 20px;
		border-radius:6px 40px 6px 6px
	}
}

/* detail page: the store this puppy is at */
.jump-store {
	display:inline-flex;
	align-items:center;
	gap:10px;
	margin-top:22px;
	padding-block:8px;
	font-size:14px;
	font-weight:500;
	letter-spacing:.06em;
	color:var(--pine);
	border-bottom:1px solid var(--line-strong)
}
.jump-store svg {
	width:18px;
	height:18px;
	stroke:currentColor;
	fill:none;
	stroke-width:1.3;
	stroke-linecap:round;
	stroke-linejoin:round;
	transition:transform .5s var(--ease)
}
.jump-store:hover svg {
	transform:translateY(4px)
}
.detail-store {
	--p:clamp(24px,4vw,48px);
	--R:70px;
	display:grid;
	grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
	gap:clamp(28px,5vw,72px);
	align-items:stretch;
	margin-block:10px 70px;
	padding:var(--p);
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px var(--R) 6px 6px;
	scroll-margin-top:0
}
.detail-store-label {
	margin:0 0 6px;
	font:500 13px/1.6 var(--sans);
	letter-spacing:.14em;
	color:var(--muted)
}
.detail-store-name {
	display:block;
	font-size:clamp(34px,4vw,56px);
	line-height:1.25;
	letter-spacing:.04em;
	margin-bottom:10px
}
.store-pin {
	display:inline-grid;
	place-items:center;
	width:.92em;
	height:.92em;
	margin-right:.3em;
	vertical-align:.1em;
	border-radius:50%;
	background:var(--tag,var(--pine));
	color:#fff;
	box-shadow:0 8px 18px -10px rgba(12,47,38,.7)
}
.store-pin .ico {
	width:.5em;
	height:.5em
}
.detail-store dl {
	margin:12px 0 20px;
	font-size:14px
}
.detail-store dl>div {
	display:grid;
	grid-template-columns:5em 1fr;
	gap:18px;
	padding:11px 0;
	border-bottom:1px solid var(--line)
}
.detail-store dt {
	color:var(--muted)
}
.detail-store dd {
	margin:0
}
.detail-store .reference-note {
	margin:16px 0 4px
}
/* concentric corners: inner radius = outer radius - padding (the 1px border is absorbed) */
.detail-store .store-frame {
	grid-area:auto;
	width:100%;
	height:100%;
	min-height:280px;
	border-radius:6px max(6px,calc(var(--R) - var(--p) - 1px)) 6px 6px
}
.detail-store-links {
	margin-top:4px
}

/* stores page */
.directory-nav {
	display:flex;
	gap:10px;
	flex-wrap:wrap;
	padding-block:14px;
	position:sticky;
	top:var(--header-s);
	z-index:20;
	background:rgba(246,243,234,.9);
	backdrop-filter:blur(10px);
	-webkit-backdrop-filter:blur(10px);
	border-bottom:1px solid var(--line);
	margin-inline:calc(var(--gutter) * -1);
	padding-inline:var(--gutter)
}
.directory-nav a {
	min-height:40px;
	font-size:13px;
	padding:6px 18px
}
.directory-store {
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(0,1fr);
	grid-template-areas:"main frame" "info frame";
	gap:0 clamp(30px,5vw,80px);
	padding-block:clamp(44px,6vw,80px);
	border-bottom:1px solid var(--line);
	scroll-margin-top:70px;
	align-content:start
}
.store-main {
	grid-area:main
}
.store-frame {
	grid-area:frame;
	width:100%;
	height:100%;
	min-height:340px;
	border-radius:6px 120px 6px 6px;
	align-self:stretch
}
.store-front {
	width:100%;
	height:100%;
	object-fit:cover
}
.store-info {
	grid-area:info
}
.directory-store:nth-of-type(even) {
	grid-template-areas:"frame main" "frame info"
}
.directory-store .eyebrow {
	margin-bottom:14px
}
.directory-store h2 {
	font-size:clamp(30px,3.6vw,50px)
}
.directory-store p {
	font-size:14px;
	margin:18px 0
}
.service-tags {
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-bottom:12px
}
.service-tag {
	transition:background .3s,color .3s,border-color .3s
}
.service-tag[href]:hover {
	background:var(--pine);
	color:var(--white);
	border-color:var(--pine)
}
.supplies {
	font-size:11.5px!important;
	color:var(--muted);
	margin-top:0!important
}
.store-info dl {
	font-size:14px;
	line-height:1.9;
	margin:10px 0 18px
}
.store-info dl>div {
	display:grid;
	grid-template-columns:5em 1fr;
	gap:20px;
	padding:11px 0;
	border-bottom:1px solid var(--line)
}
.store-info dt {
	color:var(--muted)
}
.store-info dd {
	margin:0
}
/* phone button: same family as the header button (full pill, ringed circle, sans numerals) */
.tel-btn {
	display:inline-flex;
	align-items:center;
	gap:14px;
	min-height:46px;
	margin-top:6px;
	padding:5px 26px 5px 5px;
	background:var(--pine);
	color:var(--white);
	border-radius:99px;
	font:500 clamp(17px,1.5vw,20px)/1 var(--sans);
	letter-spacing:.1em;
	font-variant-numeric:lining-nums tabular-nums;
	box-shadow:0 6px 16px -10px rgba(12,47,38,.6);
	transition:background .4s,transform .5s var(--ease),box-shadow .5s var(--ease)
}
.tel-btn .ico {
	flex:none;
	width:36px;
	height:36px;
	padding:9px;
	border:1px solid rgba(255,253,246,.5);
	border-radius:50%;
	background:rgba(255,253,246,.14);
	transition:background .4s,color .4s
}
.tel-btn .phone {
	font:inherit
}
.tel-btn:hover {
	background:var(--pine-deep);
	transform:translateY(-2px);
	box-shadow:0 14px 24px -14px rgba(12,47,38,.7)
}
.tel-btn:hover .ico {
	background:var(--white);
	color:var(--pine)
}
.store-map {
	margin-top:10px
}
.dogrun-intro {
	margin-block:clamp(44px,6vw,80px);
	display:block;
	scroll-margin-top:70px
}
.dogrun-intro .frame {
	aspect-ratio:1.4;
	border-radius:6px 120px 6px 6px
}
.dogrun-intro h2 {
	font-size:clamp(26px,3vw,40px);
	margin-bottom:18px
}
.dogrun-intro p {
	font-size:14px
}

/* ---- photo placeholders ("atari") ------------------------------------------------------------------ */
.ph {
	--ph-line:rgba(20,71,58,.14);
	position:relative;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:6px;
	width:100%;
	height:100%;
	min-height:150px;
	padding:clamp(14px,2.4vw,32px);
	text-align:center;
	color:var(--pine);
	background:repeating-linear-gradient(135deg,transparent 0 14px,var(--ph-line) 14px 15px),linear-gradient(160deg,#e8eddf,#d8e2cf);
	overflow:hidden
}
.ph::before {
	content:"";
	position:absolute;
	inset:10px;
	border:1px dashed rgba(20,71,58,.4);
	border-radius:inherit;
	pointer-events:none
}
.ph-icon {
	font-size:clamp(28px,3.2vw,44px);
	opacity:.75
}
.ph-no {
	font:500 11px/1.4 var(--en);
	letter-spacing:.3em;
	color:var(--gold);
	padding:2px 12px;
	border:1px solid currentColor;
	border-radius:99px;
	background:rgba(255,253,246,.7)
}
.ph-title {
	font:500 clamp(17px,1.8vw,24px)/1.5 var(--serif);
	letter-spacing:.08em
}
.ph-desc {
	max-width:30em;
	font-size:12px;
	line-height:1.8;
	color:var(--muted)
}
.ph-spec {
	font:500 10.5px/1.6 var(--sans);
	letter-spacing:.06em;
	color:var(--muted);
	opacity:.85
}
.frame>.ph,.hero-frame>.ph {
	height:100%;
	transform:none
}
.daily-card .frame>.ph,.support-frame>.ph,.break>.ph {
	margin:0
}
.rest-inset .ph {
	aspect-ratio:1;
	height:auto;
	min-height:0;
	width:100%;
	border:7px solid var(--paper);
	border-radius:50%;
	padding:12px;
	gap:2px;
	box-shadow:0 24px 40px -22px rgba(12,47,38,.5)
}
.rest-inset .ph::before {
	inset:6px
}
.rest-inset .ph-desc,.rest-inset .ph-spec,.rest-inset .ph-icon,.service-card .ph-spec {
	display:none
}
.rest-inset .ph-title {
	font-size:13px
}
.rest-inset .ph-no {
	font-size:9px;
	padding:1px 8px
}
.hero-frame .ph::before {
	inset:18px;
	border-radius:8px 300px 300px 8px
}
@media(max-width:760px) {
	.ph-desc {
		font-size:11px
	}
	.ph-spec {
		display:none
	}
	.rest-inset .ph-title {
		font-size:11px
	}
	.rest-inset .ph-no {
		display:none
	}
}

/* ---- dog hotel: how each store spends the day ---- */
.hotel-stores {
	position:relative;
	margin-block:40px 30px;
	padding-top:clamp(36px,5vw,64px)
}
.hotel-stores h2 {
	font-size:clamp(28px,3.4vw,46px)
}
.hotel-stores-lead {
	margin:12px 0 clamp(22px,3vw,36px);
	font-size:13.5px;
	color:var(--muted)
}
.hotel-store-grid {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:clamp(20px,3vw,40px)
}
.hotel-frame {
	aspect-ratio:2/1;
	border-radius:6px 32px 6px 6px
}
.hotel-photo {
	width:100%;
	height:100%;
	object-fit:cover
}
.hotel-store-body {
	padding-top:20px
}
.hotel-store-body h3 {
	margin:14px 0 10px;
	font-size:clamp(22px,2.2vw,30px)
}
.hotel-store-body p {
	font-size:14px;
	line-height:2.05;
	margin:0 0 14px
}
.hotel-tags {
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	margin-bottom:12px
}
.hotel-tags li {
	padding:3px 12px;
	border:1px solid var(--line-strong);
	border-radius:99px;
	font-size:11.5px;
	line-height:1.8;
	color:var(--pine)
}
.hotel-store-body .hotel-turn {
	font-size:12px;
	color:var(--muted);
	margin-bottom:10px
}
@media(max-width:760px) {
	.hotel-store-grid {
		grid-template-columns:1fr
	}
}

/* ---- dog hotel: price tables ---- */
.price-section {
	position:relative;
	margin-block:30px 40px;
	padding-top:clamp(36px,5vw,64px);
	scroll-margin-top:0
}
.price-head {
	display:grid;
	grid-template-columns:auto 1fr auto;
	gap:6px 36px;
	align-items:end;
	margin-bottom:clamp(22px,3vw,36px)
}
.price-head .eyebrow {
	grid-column:1/-1;
	margin-bottom:6px
}
.price-head h2 {
	font-size:clamp(28px,3.4vw,46px)
}
.price-head p {
	margin:0;
	font-size:13.5px;
	color:var(--muted)
}
.price-legend {
	display:flex;
	gap:18px;
	font-size:12px;
	color:var(--muted)
}
.price-legend li {
	display:flex;
	align-items:center;
	gap:8px
}
.lg {
	display:inline-block;
	width:14px;
	height:14px;
	border-radius:4px;
	border:1px solid var(--line-strong);
	background:var(--white)
}
.lg-member {
	background:var(--pine);
	border-color:var(--pine)
}
.plan-grid {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:clamp(14px,2vw,24px);
	align-items:stretch
}
.plan {
	padding:24px 26px 14px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 44px 6px 6px
}
.plan-head {
	display:flex;
	align-items:center;
	gap:14px;
	margin-bottom:12px
}
.plan-ico {
	display:grid;
	place-items:center;
	width:46px;
	height:46px;
	border-radius:50%;
	background:var(--sage);
	color:var(--pine);
	font-size:24px
}
.plan-head h3 {
	font-size:clamp(22px,2.2vw,30px);
	line-height:1.2
}
.plan-table {
	width:100%;
	table-layout:fixed;
	border-collapse:separate;
	border-spacing:0
}
.plan-table thead th:first-child {
	width:28%
}
.plan-table thead th:nth-child(2),.plan-table thead th:nth-child(3) {
	width:36%
}
.plan-table thead th {
	padding:7px 8px;
	font:500 12px/1.6 var(--sans);
	letter-spacing:.14em;
	color:var(--muted);
	text-align:center
}
.plan-table thead th.col-member {
	background:var(--pine);
	color:#fff;
	border-radius:10px 10px 0 0;
	text-align:center
}
.plan-table tbody th {
	padding:16px 8px 16px 0;
	text-align:left;
	font:500 15px/1.5 var(--serif);
	letter-spacing:.06em;
	white-space:nowrap
}
.plan-table tbody td,.plan-table tbody th {
	border-top:1px dashed var(--line-strong)
}
.plan-table tbody tr:first-child td,.plan-table tbody tr:first-child th {
	border-top:0
}
.pc {
	padding:14px 8px;
	text-align:center;
	font-variant-numeric:lining-nums tabular-nums;
	white-space:nowrap
}
.pc b {
	font:500 22px/1.2 var(--sans);
	letter-spacing:.02em
}
.pc small {
	margin-left:2px;
	font-size:12px;
	color:var(--muted)
}
.pc-member {
	background:#eef3e6
}
.pc-member b {
	color:var(--pine);
	font-size:24px
}
.plan-table tbody tr:last-child td.pc-member {
	border-radius:0 0 10px 10px
}
.pc-na {
	color:var(--muted);
	opacity:.6
}
.pc-none,.pc-consult {
	text-align:center;
	color:var(--muted);
	font-size:13px
}
.pc-consult span {
	display:inline-block;
	padding:3px 16px;
	border:1px solid var(--line-strong);
	border-radius:99px;
	color:var(--pine);
	font-weight:500;
	letter-spacing:.1em
}
.price-extra {
	display:grid;
	grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
	gap:clamp(14px,2vw,24px);
	margin-top:clamp(14px,2vw,24px)
}
.price-extra section {
	padding:22px 26px 24px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 44px 6px 6px
}
.price-extra h3 {
	margin-bottom:14px;
	font:500 14px/1.6 var(--sans);
	letter-spacing:.14em;
	color:var(--muted)
}
.discount ul {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:10px
}
.discount li {
	display:flex;
	flex-direction:column;
	gap:2px;
	padding:14px 14px 12px;
	background:#eef3e6;
	border-radius:6px 22px 6px 6px
}
.disc-label {
	font:500 15px/1.5 var(--serif);
	letter-spacing:.06em
}
.disc-value {
	font:500 24px/1.3 var(--sans);
	color:var(--pine);
	font-variant-numeric:lining-nums tabular-nums;
	letter-spacing:.02em
}
.disc-value small {
	margin-left:3px;
	font-size:12px;
	color:var(--muted)
}
.disc-detail {
	font-size:11.5px;
	color:var(--muted)
}
.options li {
	display:flex;
	align-items:baseline;
	gap:10px;
	padding:12px 0;
	border-bottom:1px dashed var(--line-strong);
	font:500 15px/1.5 var(--serif);
	letter-spacing:.06em
}
.options li:last-child {
	border-bottom:0
}
.options li b {
	margin-left:auto;
	font:500 22px var(--sans);
	color:var(--pine);
	font-variant-numeric:lining-nums tabular-nums
}
.options li b small,.opt-unit {
	font:400 12px var(--sans);
	color:var(--muted)
}
.price-slot {
	margin-top:clamp(14px,2vw,24px)
}
.member-card-note {
	margin:14px 0 0
}
.price-size-note {
	margin-top:clamp(14px,2vw,24px)
}
.discount .reference-note {
	margin:12px 0 0
}
.tax-note {
	margin:0 0 clamp(12px,1.6vw,18px);
	font-size:13px;
	color:var(--ink)
}
.tax-note::before {
	content:"";
	display:inline-block;
	width:8px;
	height:8px;
	margin-right:10px;
	border-radius:50%;
	background:var(--gold);
	vertical-align:1px
}
@media(max-width:960px) {
	.price-head {
		grid-template-columns:1fr
	}
	.plan-grid {
		grid-template-columns:1fr
	}
	.price-extra {
		grid-template-columns:1fr
	}
}
@media(max-width:560px) {
	.plan {
		padding:20px 16px 10px
	}
	.pc b {
		font-size:19px
	}
	.pc-member b {
		font-size:21px
	}
	.plan-table tbody th {
		font-size:14px
	}
	.discount ul {
		grid-template-columns:1fr
	}
	.discount li {
		flex-direction:row;
		align-items:baseline;
		gap:12px
	}
	.price-extra section {
		padding:18px 16px 20px
	}
}

/* kindergarten price: single-price cards and the details list share the hotel language */
.plan-table.single th {
	width:40%;
	padding:18px 8px 18px 0
}
.plan-table.single td.pc-single {
	text-align:center;
	padding:18px 8px
}
.plan-table.single .pc-single b {
	font-size:30px;
	color:var(--pine)
}
.plan-table.single tbody tr:first-child td,.plan-table.single tbody tr:first-child th {
	border-top:0
}
.price-detail {
	margin-top:clamp(14px,2vw,24px);
	padding:22px 26px 12px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 44px 6px 6px
}
.price-detail h3 {
	margin-bottom:6px;
	font:500 14px/1.6 var(--sans);
	letter-spacing:.14em;
	color:var(--muted)
}
.price-detail dl {
	margin:0
}
.price-detail dl>div {
	display:grid;
	grid-template-columns:9em minmax(0,1fr);
	gap:20px;
	padding:14px 0;
	border-top:1px dashed var(--line-strong);
	font-size:14px;
	line-height:1.95
}
.price-detail dl>div:first-child {
	border-top:0
}
.price-detail dt {
	color:var(--muted)
}
.price-detail dd {
	margin:0
}
@media(max-width:560px) {
	.price-detail {
		padding:18px 16px 8px
	}
	.price-detail dl>div {
		grid-template-columns:1fr;
		gap:2px
	}
}

/* ---- small decorative dogs (cut-outs) ----
   Rules: only in empty space or sitting on an edge; never over text; hidden from
   screen readers; smaller or removed on narrow screens. */
.decor {
	position:absolute;
	height:auto;
	pointer-events:none;
	user-select:none;
	filter:drop-shadow(0 6px 8px rgba(12,47,38,.18));
	z-index:1
}
.js .decor {
	opacity:0;
	transition:opacity 1.2s .25s var(--ease)
}
.js .decor.in {
	opacity:1
}
.finder-stage {
	position:relative
}
.decor-finder {
	width:clamp(94px,9.6vw,139px);
	right:clamp(4px,3vw,44px);
	bottom:calc(100% - 3px);
	animation:decor-bob 7s ease-in-out infinite
}
.decor-daily {
	position:relative;
	display:block;
	width:clamp(144px,13.2vw,192px);
	margin:clamp(20px,3vw,40px) 0 0 4px;
	transform-origin:50% 100%
}
.support .decor-support {
	width:clamp(115px,10.8vw,163px);
	right:clamp(16px,6vw,96px);
	bottom:0;
	transform:translateY(34%);
	filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))
}
.visit-action {
	position:relative
}
.decor-visit {
	width:clamp(94px,8.4vw,125px);
	right:6px;
	bottom:calc(100% - 4px)
}
.puppy-toolbar {
	position:relative
}
.decor-hero {
	width:clamp(100px,9.6vw,138px);
	right:clamp(8px,4vw,64px);
	bottom:-30px
}
/* sits on the lower edge of the page header (photo or open space), clear of the text */
.page-hero {
	overflow:visible
}
@media(max-width:960px) {
	.page-hero:not(.with-photo) .decor-hero:not(.decor-pair) {
		display:none
	}
}
/* no photo to sit on: on narrow screens there is no free corner */
.page-hero:has(.decor-pair) {
	--pair-w:clamp(150px,18vw,260px);
	padding-bottom:calc(var(--pair-w)*.75 - 40px + 18px)
}
/* 犬の高さ − はみ出し + すき間: 文章に重ならない */
.with-photo .decor-hero.dog-pomeranian {
	width:clamp(110px,10.6vw,152px);
	bottom:-16px
}
/* ポメラニアンは背が低いので、少し大きく・高くして、写真の角に重ねる */
@media(max-width:560px) {
	.with-photo .decor-hero.dog-pomeranian {
		width:101px;
		bottom:-20px
	}
}
.decor-hero.decor-pair {
	width:var(--pair-w);
	bottom:-40px
}

.decor-list {
	width:clamp(84px,7.2vw,110px);
	right:4px;
	bottom:calc(100% - 2px)
}
.puppy-toolbar {
	margin-top:clamp(56px,6vw,84px)
}
/* clear space above the rule: the dog sits there, never on the notes */
.tax-global {
	margin:0;
	padding-top:18px;
	border-top:1px solid rgba(255,255,255,.16);
	font-size:12px;
	line-height:1.8;
	color:rgba(255,255,255,.82)
}
@keyframes decor-bob {
	50% {
		transform:translateY(-3px) rotate(-1deg)
	}
}
@media(max-width:960px) {
	.decor-daily {
		display:none
	}
}
@media(max-width:960px) {
	.decor-finder {
		width:92px
	}
	.visit-action {
		display:flex;
		flex-direction:column;
		align-items:flex-start;
		gap:6px
	}
	.decor-visit {
		position:static;
		width:100px;
		align-self:flex-end;
		margin-right:6px;
		margin-bottom:-4px
	}
}
@media(max-width:560px) {
	.decor-hero {
		width:92px;
		right:8px;
		bottom:-26px
	}
	.decor-finder {
		width:84px;
		right:6px
	}
	.decor-visit {
		width:96px
	}
	.decor-list {
		width:76px
	}
	.puppy-toolbar {
		margin-top:72px
	}
}

/* ---- olive vine rules: the section divider is a thin vine that grows (left to right) when it scrolls in ---- */
.prose section::before,
.related-stores::before,
.detail-story::before,
.detail-cost::before,
.hotel-stores::before,
.price-section::before {
	content:"";
	position:absolute;
	left:0;
	right:0;
	top:-11px;
	height:22px;
	background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='22' viewBox='0 0 96 22'%3E%3Cpath d='M0 12C16 10 32 14 48 12S80 10 96 12' fill='none' stroke='rgba%2828%2C56%2C53%2C.30%29' stroke-width='1.1'/%3E%3Cpath d='M14 11C16 5 24 3 30 7 25 11 18 12 14 11z' fill='%238fa86d'/%3E%3Cpath d='M44 13C46 19 54 21 60 17 55 13 48 12 44 13z' fill='%23a9bf88'/%3E%3Cpath d='M74 11C76 5 84 3 90 7 85 11 78 12 74 11z' fill='%238fa86d'/%3E%3C/svg%3E") left center/96px 22px repeat-x;
	pointer-events:none
}
.js .prose section::before,
.js .related-stores::before,
.js .detail-story::before,
.js .detail-cost::before,
.js .hotel-stores::before,
.js .price-section::before {
	clip-path:inset(0 100% 0 0);
	transition:clip-path 1.6s .2s var(--ease-in-out)
}
.js .in.prose section::before,
.js .prose section.in::before,
.js .related-stores.in::before,
.js .detail-story.in::before,
.js .detail-cost.in::before,
.js .hotel-stores.in::before,
.js .price-section.in::before {
	clip-path:inset(0 0 0 0)
}
.prose section:first-child::before {
	display:none
}

/* ---- trimming: store tabs, breed table, options ---- */
.trim-price .price-head {
	margin-bottom:clamp(18px,2.6vw,30px)
}
.trim-tools {
	display:flex;
	flex-wrap:wrap;
	gap:14px 28px;
	align-items:center;
	justify-content:space-between;
	margin-bottom:18px
}
.trim-tools[hidden] {
	display:none
}
.store-tabs {
	display:inline-flex;
	flex-wrap:wrap;
	gap:4px;
	padding:5px;
	background:#e9eee0;
	border-radius:99px
}
.store-tab {
	--tag:var(--pine);
	position:relative;
	display:inline-flex;
	align-items:center;
	gap:9px;
	min-height:42px;
	padding:8px 20px;
	border:0;
	border-radius:99px;
	background:transparent;
	font:500 14px/1.4 var(--sans);
	letter-spacing:.05em;
	color:var(--muted);
	transition:background .35s,color .35s,box-shadow .4s var(--ease)
}
.tab-dot {
	flex:none;
	width:9px;
	height:9px;
	border-radius:50%;
	background:var(--tag);
	opacity:.55;
	transition:opacity .3s,transform .4s var(--ease)
}
.store-tab:hover {
	color:var(--ink)
}
.store-tab:hover .tab-dot {
	opacity:1
}
.store-tab[aria-pressed=true] {
	background:#fff;
	color:var(--ink);
	box-shadow:0 2px 10px -3px rgba(12,47,38,.35),inset 0 -2px 0 var(--tag)
}
.store-tab[aria-pressed=true] .tab-dot {
	opacity:1;
	transform:scale(1.25)
}
.store-tab[data-store=kodeki] {
	--tag:#9a6a35
}
.store-tab[data-store=issha] {
	--tag:#4f6b8a
}
.store-tab[data-store=ginan] {
	--tag:#6b7f3a
}
.store-tab[data-store=matsuriba] {
	--tag:#8a4f5f
}
.breed-search {
	display:flex;
	align-items:center;
	gap:12px;
	font-size:13px;
	color:var(--muted)
}
.breed-search input {
	width:min(280px,60vw);
	min-height:44px;
	padding:8px 18px;
	border:1px solid var(--line-strong);
	border-radius:99px;
	background:#fff;
	font:400 14px var(--sans);
	color:var(--ink)
}
.breed-search input:focus-visible {
	outline:3px solid var(--gold);
	outline-offset:2px
}
.price-panel {
	padding:clamp(18px,2.6vw,30px);
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 44px 6px 6px;
	margin-bottom:clamp(14px,2vw,22px)
}
.js .price-panel[hidden] {
	display:none
}
.pp-head {
	display:flex;
	flex-wrap:wrap;
	gap:10px 24px;
	align-items:center;
	justify-content:space-between;
	margin-bottom:14px
}
.pp-head h3 {
	display:flex;
	align-items:center;
	gap:10px;
	font-size:clamp(20px,2vw,26px)
}
.pp-head h3 .tab-dot {
	width:12px;
	height:12px;
	opacity:1;
	background:var(--tag,var(--pine))
}
.pp-reserve {
	margin:0;
	font-size:12.5px;
	color:var(--muted);
	display:flex;
	align-items:center;
	gap:8px
}
.pp-tel {
	display:inline-flex;
	align-items:center;
	gap:6px;
	min-height:40px;
	font:500 17px var(--sans);
	letter-spacing:.08em;
	color:var(--pine);
	font-variant-numeric:lining-nums tabular-nums
}
.pp-tel .ico {
	font-size:17px
}
.pp-scroll {
	overflow-x:auto
}
.trim-table {
	width:100%;
	border-collapse:separate;
	border-spacing:0;
	min-width:520px
}
.trim-table thead th {
	position:sticky;
	top:0;
	padding:10px 12px;
	font:500 12px/1.6 var(--sans);
	letter-spacing:.1em;
	color:#fff;
	background:var(--pine);
	text-align:center;
	white-space:nowrap
}
.trim-table thead th:first-child {
	text-align:left;
	border-radius:10px 0 0 0
}
.trim-table thead th:last-child {
	border-radius:0 10px 0 0
}
.trim-table tbody th {
	padding:12px 12px;
	text-align:left;
	font:500 14.5px/1.5 var(--serif);
	letter-spacing:.04em;
	border-bottom:1px dashed var(--line-strong)
}
.trim-table tbody td {
	padding:12px 12px;
	text-align:center;
	border-bottom:1px dashed var(--line-strong);
	font-variant-numeric:lining-nums tabular-nums;
	white-space:nowrap
}
.trim-table tbody tr {
	transition:background .3s
}
.trim-table tbody tr:hover {
	background:#eef3e6
}
.trim-table .tw {
	color:var(--muted);
	font-size:13px
}
.tc b {
	font:500 18px var(--sans);
	letter-spacing:.02em
}
.tc small {
	margin-left:2px;
	font-size:12px;
	color:var(--muted)
}
.tc-none {
	color:var(--muted);
	opacity:.55
}
.tc-consult span {
	display:inline-block;
	padding:2px 14px;
	border:1px solid var(--line-strong);
	border-radius:99px;
	font-size:12px;
	color:var(--pine);
	font-weight:500;
	letter-spacing:.08em
}
.tc-check {
	margin-left:6px;
	padding:1px 8px;
	border-radius:99px;
	background:#f6ecd8;
	color:#8a6230;
	font-size:10.5px;
	font-style:normal
}
.pp-empty {
	margin:14px 0 0;
	font-size:13px;
	color:var(--muted)
}
.trim-notes {
	margin-top:clamp(14px,2vw,22px);
	padding:22px 26px 24px;
	background:#f6ecd8;
	border:1px solid #e3cf9f;
	border-radius:6px 28px 6px 6px
}
.trim-notes h3 {
	margin-bottom:10px;
	font:500 13px/1.6 var(--sans);
	letter-spacing:.14em;
	color:#8a6230
}
.trim-notes ul {
	display:grid;
	gap:4px
}
.trim-notes li {
	position:relative;
	padding-left:1.2em;
	font-size:13px;
	line-height:1.9
}
.trim-notes li::before {
	content:"";
	position:absolute;
	left:0;
	top:.95em;
	width:.6em;
	height:1px;
	background:#b58545
}
.trim-options {
	margin-block:44px 30px;
	padding-top:clamp(36px,5vw,64px);
	position:relative
}
.trim-options h2 {
	font-size:clamp(26px,3.2vw,42px)
}
.trim-lead {
	margin:12px 0 clamp(22px,3vw,36px);
	font-size:13.5px;
	color:var(--muted);
	max-width:44em
}
.trim-opt-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:clamp(18px,2.4vw,32px)
}
.trim-opt {
	display:flex;
	flex-direction:column;
	padding:0 0 22px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 32px 6px 6px;
	overflow:hidden
}
.opt-frame {
	aspect-ratio:2/1;
	border-radius:0;
	--radius:0px
}
.opt-photo {
	width:100%;
	height:100%;
	object-fit:cover
}
.trim-opt h3 {
	margin:18px 22px 8px;
	font-size:clamp(19px,1.8vw,24px)
}
.trim-opt p {
	margin:0 22px 14px;
	font-size:13px;
	line-height:1.95;
	color:var(--ink)
}
.opt-stores {
	display:flex;
	flex-wrap:wrap;
	align-content:flex-start;
	align-items:center;
	gap:6px;
	min-height:84px;
	margin:auto 22px 0
}
/* room for two rows of tags, so the label sits at the same height in every card */
.opt-stores>span {
	flex:0 0 100%;
	margin:0 0 2px;
	font-size:11px;
	letter-spacing:.14em;
	color:var(--muted)
}
.opt-stores .store-tag {
	font-size:11.5px;
	padding:3px 11px 3px 8px
}
.trim-opt-grid .opt-stores .store-tag .ico {
	font-size:13px
}
@media(max-width:1100px) {
	.trim-opt-grid {
		grid-template-columns:repeat(2,minmax(0,1fr))
	}
}
@media(max-width:700px) {
	.trim-table {
		min-width:0;
		table-layout:fixed
	}
	.trim-table thead th {
		padding:9px 4px;
		font-size:11px;
		letter-spacing:.04em;
		white-space:normal
	}
	.trim-table thead th:first-child {
		width:36%;
		padding-left:8px
	}
	.trim-table thead th:nth-child(2) {
		width:16%
	}
	.trim-table tbody th {
		font-size:13px;
		line-height:1.45;
		word-break:keep-all;
		overflow-wrap:anywhere
	}
	.trim-table tbody td {
		padding:11px 2px;
		white-space:normal
	}
	.tc small {
		display:block;
		margin:0;
		font-size:10.5px
	}
	.tw {
		font-size:11.5px!important
	}
	.tc-check {
		display:block;
		margin:2px 0 0;
		padding:0 4px
	}
	.trim-opt-grid {
		grid-template-columns:1fr
	}
	.trim-tools {
		align-items:stretch
	}
	.breed-search {
		width:100%;
		flex-wrap:wrap
	}
	.breed-search input {
		width:100%
	}
	.store-tabs {
		border-radius:22px
	}
	.store-tab {
		padding:8px 14px;
		font-size:13px;
		gap:7px
	}
	.trim-notes {
		padding:18px 16px 20px
	}
	.trim-table tbody th {
		font-size:13.5px;
		padding:11px 8px
	}
	.trim-table tbody td {
		padding:11px 6px
	}
	.tc b {
		font-size:16px
	}
}

/* ---- socialization page ---- */
.soc {
	padding-top:0
}
.soc h2,.soc-title {
	word-break:keep-all;
	overflow-wrap:anywhere
}
/* keep-all のままだと、iPhoneのSafariは「、」でも折り返さず、画面からはみ出す。入らないときだけ、途中で折る */
@media(min-width:961px) {
	.page-hero h1.soc-title {
		font-size:clamp(30px,3.6vw,54px)
	}
}
.soc-intro,.soc-block {
	position:relative;
	padding-block:clamp(44px,6vw,84px)
}
.soc-intro {
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
	gap:clamp(24px,5vw,80px);
	align-items:start;
	border-top:0
}
.soc-intro h2,.soc-block h2 {
	font-size:clamp(26px,3.2vw,44px);
	line-height:1.5
}
.soc-intro-body p {
	font-size:15px;
	line-height:2.2;
	margin:0 0 1.2em
}
.soc-intro-body p:first-child {
	font:500 clamp(17px,1.5vw,20px)/2.1 var(--serif);
	color:var(--pine)
}
.soc-block::before {
	content:"";
	position:absolute;
	left:0;
	right:0;
	top:-11px;
	height:22px;
	background:inherit
}
.soc-block .eyebrow {
	margin-bottom:16px
}
.soc-lead {
	max-width:44em;
	margin:16px 0 clamp(24px,3.4vw,40px);
	font-size:14px;
	line-height:2.1;
	color:var(--muted)
}
.soc-exp-grid {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:clamp(12px,1.6vw,22px);
	margin-top:clamp(22px,3vw,36px)
}
.soc-exp {
	padding:26px 22px 24px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 32px 6px 6px;
	transition:transform .6s var(--ease),box-shadow .6s var(--ease)
}
.soc-exp {
	position:relative
}
.soc-exp::after {
	content:"";
	position:absolute;
	left:0;
	right:0;
	top:100%;
	height:8px
}
/* 持ち上がっても、元の位置までカーソルを拾う(境界での震え防止) */
.soc-exp:hover {
	transform:translateY(-6px);
	box-shadow:0 24px 36px -26px rgba(12,47,38,.45)
}
.soc-ico {
	display:grid;
	place-items:center;
	width:58px;
	height:58px;
	margin-bottom:18px;
	border-radius:50%;
	background:var(--sage);
	color:var(--pine);
	font-size:32px;
	transition:background .5s,color .5s,transform .6s var(--ease)
}
.soc-exp:hover .soc-ico {
	background:var(--pine);
	color:#fff;
	transform:rotate(-6deg)
}
.soc-exp h3 {
	margin-bottom:8px;
	font-size:clamp(18px,1.6vw,22px)
}
.soc-exp p {
	margin:0;
	font-size:13px;
	line-height:2
}
.soc-flow-block {
	background:var(--sage);
	margin-inline:calc(var(--gutter) * -1);
	padding-inline:var(--gutter);
	border-radius:clamp(30px,5vw,80px)
}
.soc-flow-block::before {
	display:none
}
.soc-flow {
	position:relative;
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:clamp(14px,2vw,28px);
	counter-reset:flow
}
.soc-flow::before {
	content:"";
	position:absolute;
	left:4%;
	right:4%;
	top:36px;
	height:1px;
	background:repeating-linear-gradient(90deg,var(--pine) 0 6px,transparent 6px 12px);
	opacity:.35
}
.soc-stage {
	position:relative;
	padding-top:6px
}
.soc-stage-ico {
	position:relative;
	display:grid;
	place-items:center;
	width:72px;
	height:72px;
	margin-bottom:18px;
	border-radius:50%;
	background:var(--paper);
	color:var(--pine);
	box-shadow:0 0 0 7px var(--sage)
}
.soc-stage:nth-child(1) .soc-stage-ico {
	font-size:22px
}
.soc-stage:nth-child(2) .soc-stage-ico {
	font-size:30px
}
.soc-stage:nth-child(3) .soc-stage-ico {
	font-size:38px
}
.soc-stage:nth-child(4) .soc-stage-ico {
	font-size:46px;
	background:var(--pine);
	color:#e6c996
}
.soc-stage h3 {
	margin-bottom:8px;
	font-size:clamp(18px,1.7vw,23px)
}
.soc-stage p {
	margin:0;
	font-size:13px;
	line-height:2
}
.soc-not-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:clamp(14px,2vw,28px);
	margin-top:clamp(22px,3vw,36px)
}
.soc-not {
	padding:24px 24px 26px;
	border:1px solid var(--line-strong);
	border-radius:6px 32px 6px 6px;
	background:transparent
}
.soc-no {
	display:inline-block;
	margin-bottom:12px;
	padding:2px 14px;
	border:1px solid #8a4f5f;
	border-radius:99px;
	font:500 11px/1.8 var(--sans);
	letter-spacing:.2em;
	color:#8a4f5f
}
.soc-not h3 {
	margin-bottom:10px;
	font-size:clamp(19px,1.8vw,24px)
}
.soc-not h3 small {
	display:block;
	margin-top:2px;
	font:400 13px var(--sans);
	color:var(--muted);
	letter-spacing:.06em
}
.soc-not p {
	margin:0;
	font-size:13px;
	line-height:2
}
.soc-steps {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:clamp(14px,2vw,28px)
}
.soc-step {
	padding:22px 24px 24px;
	background:var(--pine);
	color:#fff;
	border-radius:6px 32px 6px 6px
}
.soc-step-no {
	display:block;
	font:italic 400 clamp(34px,3.4vw,48px)/1 var(--en);
	color:#e6c996
}
.soc-step h3 {
	margin:8px 0 8px;
	font-size:clamp(19px,1.8vw,24px)
}
.soc-step p {
	margin:0;
	font-size:13px;
	line-height:2;
	opacity:.85
}
.soc-family {
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
	gap:clamp(24px,5vw,80px);
	align-items:start
}
.soc-family-body p {
	font-size:14.5px;
	line-height:2.2;
	margin:0 0 1.2em
}
.soc-matrix-wrap {
	overflow-x:auto;
	margin-top:6px
}
.soc-matrix {
	width:100%;
	min-width:560px;
	border-collapse:separate;
	border-spacing:0;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 32px 6px 6px;
	overflow:hidden
}
.soc-matrix thead th {
	padding:18px 14px 14px;
	font:500 17px/1.4 var(--serif);
	letter-spacing:.06em;
	text-align:center;
	background:var(--paper-2)
}
.soc-matrix thead th small {
	display:block;
	margin-top:4px;
	font:500 15px var(--sans);
	color:var(--pine);
	font-variant-numeric:lining-nums tabular-nums
}
.soc-matrix thead th.best {
	background:var(--pine);
	color:#fff
}
.soc-matrix thead th.best small {
	color:#e6c996
}
.soc-matrix tbody th {
	width:26%;
	padding:15px 18px;
	text-align:left;
	font:500 13.5px/1.6 var(--sans);
	letter-spacing:.04em;
	border-top:1px dashed var(--line-strong)
}
.soc-matrix td {
	padding:15px 10px;
	text-align:center;
	font-size:13px;
	border-top:1px dashed var(--line-strong)
}
.soc-matrix td.best {
	background:#eef3e6;
	color:var(--pine);
	font-weight:500
}
.soc-matrix td.off {
	color:var(--muted);
	opacity:.5
}
.soc-programs .reference-note {
	margin-top:14px
}
.soc-voices .soc-lead {
	margin-bottom:clamp(22px,3vw,36px)
}
.voice-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:clamp(14px,2vw,28px)
}
.voice {
	margin:0;
	display:flex;
	flex-direction:column;
	padding:26px 26px 22px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 32px 6px 6px
}
.voice blockquote {
	margin:0
}
.voice p {
	margin:0 0 18px;
	font-size:14px;
	line-height:2.1
}
.voice figcaption {
	margin-top:auto;
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:6px 12px;
	font-size:12px;
	color:var(--muted)
}
.voice figcaption b {
	font-weight:500;
	color:var(--ink);
	font-size:13px
}
.voice-empty {
	align-items:flex-start;
	background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(20,71,58,.06) 14px 15px),#eef2e6;
	border:1px dashed rgba(20,71,58,.4);
	color:var(--pine)
}
.voice-quote {
	font:italic 400 56px/.7 var(--en);
	color:var(--gold);
	margin-bottom:6px
}
.voice-empty p {
	color:var(--muted);
	font-size:13px
}
@media(max-width:960px) {
	.voice-grid {
		grid-template-columns:1fr
	}
}
.soc-callout {
	margin-block:clamp(10px,2vw,24px)
}
@media(max-width:1100px) {
	.soc-exp-grid {
		grid-template-columns:repeat(2,minmax(0,1fr))
	}
	.soc-flow {
		grid-template-columns:repeat(2,minmax(0,1fr));
		row-gap:36px
	}
	.soc-flow::before {
		display:none
	}
}
@media(max-width:860px) {
	.soc-intro,.soc-family {
		grid-template-columns:1fr
	}
	.soc-not-grid,.soc-steps {
		grid-template-columns:1fr
	}
}
@media(max-width:700px) {
	.soc-matrix {
		min-width:0
	}
	.soc-matrix thead th {
		padding:12px 4px 10px;
		font-size:13px
	}
	.soc-matrix thead th small {
		font-size:12.5px
	}
	.soc-matrix tbody th {
		padding:12px 8px;
		font-size:12px
	}
	.soc-matrix td {
		padding:12px 4px;
		font-size:11.5px
	}
}
@media(max-width:560px) {
	.soc-exp-grid,.soc-flow {
		grid-template-columns:1fr
	}
	.soc-flow-block {
		border-radius:32px
	}
	.page-hero h1.soc-title {
		font-size:clamp(25px,7.4vw,40px)
	}
}

.svc-filter {
	scroll-margin-top:0;
	margin:clamp(6px,1.4vw,16px) 0 clamp(18px,2.6vw,30px)
}
.svc-filter h2 {
	margin-bottom:14px;
	font-size:clamp(20px,2vw,26px)
}
.svc-filter .chip small {
	margin-left:7px;
	padding:0 7px;
	border-radius:99px;
	background:rgba(20,71,58,.1);
	font-size:11px;
	font-variant-numeric:lining-nums
}
.svc-filter .chip[aria-pressed=true] small {
	background:rgba(255,255,255,.22)
}
.svc-status {
	margin:16px 0 0;
	padding:12px 18px;
	display:flex;
	flex-wrap:wrap;
	gap:8px 18px;
	align-items:center;
	background:#eef3e6;
	border-left:3px solid var(--pine);
	border-radius:0 6px 6px 0;
	font-size:14px;
	color:var(--ink)
}
.svc-status[hidden],
.svc-filter[hidden],
.directory-store[hidden],
.dogrun-intro[hidden],
.directory-nav a[hidden] {
	display:none!important
}
.svc-status .filter-reset {
	margin:0;
	text-decoration:underline;
	text-underline-offset:4px;
	color:var(--pine);
	font-size:13px
}

.dogrun-section h2 {
	font-size:clamp(28px,3.4vw,46px)
}
.dogrun-card .hotel-store-body p {
	margin-bottom:12px
}
.dogrun-notice {
	margin-bottom:clamp(18px,2.4vw,28px)
}
.dogrun-notice b,.vaccine-notice b {
	font-weight:700;
	color:#8a6230
}
.vaccine-notice {
	margin-bottom:clamp(12px,1.6vw,18px)
}

/* ---- first visit ---- */
.first-visit {
	position:relative;
	margin-block:clamp(10px,2vw,24px) clamp(30px,4vw,56px);
	padding:clamp(28px,4vw,52px);
	background:var(--sage);
	border-radius:6px clamp(40px,6vw,90px) 6px 6px;
	scroll-margin-top:0
}
.fv-head h2 {
	font-size:clamp(26px,3.2vw,42px)
}
.fv-head p {
	margin:12px 0 clamp(20px,3vw,32px);
	font-size:14px;
	line-height:2.1;
	max-width:40em
}
.fv-grid {
	display:grid;
	grid-template-columns:repeat(5,minmax(0,1fr));
	gap:clamp(12px,1.6vw,20px)
}
.fv-item {
	padding:20px 20px 22px;
	background:var(--white);
	border-radius:6px 24px 6px 6px
}
.fv-ico {
	display:grid;
	place-items:center;
	width:46px;
	height:46px;
	margin-bottom:14px;
	border-radius:50%;
	background:var(--sage);
	color:var(--pine);
	font-size:26px
}
.fv-item h3 {
	margin-bottom:6px;
	font-size:clamp(16px,1.5vw,19px);
	line-height:1.6
}
.fv-item p {
	margin:0;
	font-size:12.5px;
	line-height:1.95;
	color:var(--muted)
}
.fv-purposes {
	margin-top:clamp(18px,2.4vw,28px);
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:10px 16px
}
.fv-purposes>span {
	font-size:12px;
	letter-spacing:.06em;
	color:var(--pine)
}
.fv-purposes ul {
	display:flex;
	flex-wrap:wrap;
	gap:6px
}
.fv-purposes li {
	padding:3px 14px;
	border:1px solid rgba(20,71,58,.35);
	border-radius:99px;
	font-size:12px;
	line-height:1.8;
	color:var(--pine);
	background:rgba(255,253,246,.6)
}
.visit-welcome {
	font-size:14px!important;
	color:var(--pine)
}
.visit-note {
	margin:6px 0 0;
	font-size:12.5px;
	line-height:1.9;
	color:var(--ink)
}
@media(max-width:1180px) {
	.fv-grid {
		grid-template-columns:repeat(3,minmax(0,1fr))
	}
}
@media(max-width:760px) {
	.fv-grid {
		grid-template-columns:repeat(2,minmax(0,1fr))
	}
}
@media(max-width:560px) {
	.fv-grid {
		grid-template-columns:1fr
	}
	.first-visit {
		padding:24px 18px
	}
}

/* ---- contract flow (puppy page) ---- */
.contract-flow {
	position:relative;
	margin-block:10px 54px;
	padding-top:clamp(30px,4vw,48px)
}
.contract-flow h2 {
	font-size:clamp(24px,2.8vw,36px);
	margin-bottom:clamp(20px,3vw,32px)
}
.cf-list {
	position:relative;
	display:grid;
	grid-template-columns:repeat(5,minmax(0,1fr));
	gap:0;
	counter-reset:cf
}
.cf-step {
	position:relative;
	display:flex;
	flex-direction:column;
	align-items:center;
	text-align:center;
	padding:22px 14px 22px;
	margin-right:26px;
	transition:transform .6s var(--ease),box-shadow .6s var(--ease);
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 28px 6px 6px
}
.cf-step:last-child {
	margin-right:0;
	background:var(--pine);
	border-color:var(--pine);
	color:#fff
}
.cf-vine {
	position:absolute;
	right:-44px;
	top:calc(50% - 12px);
	width:60px;
	height:24px;
	overflow:visible;
	pointer-events:none;
	z-index:2
}
.cf-vine .stem {
	fill:none;
	stroke:#7f9c5a;
	stroke-width:1.4;
	stroke-linecap:round;
	stroke-dasharray:1;
	stroke-dashoffset:0;
	transition:stroke-dashoffset .9s var(--ease-in-out);
	transition-delay:calc(.3s + var(--i) * .5s)
}
.cf-vine .lf path {
	fill:#8fa86d;
	transform-box:fill-box;
	transform-origin:0 50%;
	transform:scale(1);
	transition:transform .6s var(--ease);
	transition-delay:calc(.7s + var(--i) * .5s)
}
.cf-vine .lf:nth-of-type(even) path {
	fill:#a9bf88
}
.js .contract-flow .cf-vine .stem {
	stroke-dashoffset:1
}
.js .contract-flow .cf-vine .lf path {
	transform:scale(0)
}
.js .contract-flow.in .cf-vine .stem {
	stroke-dashoffset:0
}
.js .contract-flow.in .cf-vine .lf path {
	transform:scale(1)
}
.cf-sprout {
	position:absolute;
	right:12px;
	top:12px;
	width:26px;
	height:26px;
	color:#e6c996;
	opacity:.9;
	fill:none;
	stroke:currentColor;
	stroke-width:1.4;
	stroke-linecap:round;
	stroke-linejoin:round
}
.decor-cf {
	width:clamp(70px,6.4vw,92px);
	right:14%;
	bottom:calc(100% - 14px);
	z-index:3
}
.cf-step:last-child {
	overflow:visible
}
.cf-no {
	font:italic 500 clamp(28px,2.6vw,36px)/1 var(--en);
	letter-spacing:.02em;
	color:var(--gold);
	margin-bottom:8px
}
.cf-step:last-child .cf-no {
	color:#e6c996
}
.cf-step::after {
	content:"";
	position:absolute;
	left:0;
	right:0;
	top:100%;
	height:8px
}
.cf-step:hover {
	transform:translateY(-4px);
	box-shadow:0 20px 30px -22px rgba(12,47,38,.5)
}
.cf-ico {
	display:grid;
	place-items:center;
	width:52px;
	height:52px;
	margin-bottom:12px;
	border-radius:50%;
	background:var(--sage);
	color:var(--pine);
	font-size:28px;
	transition:background .5s,color .5s,transform .6s var(--ease)
}
.cf-step:hover .cf-ico {
	background:var(--pine);
	color:#fff;
	transform:rotate(-6deg)
}
.cf-step:last-child .cf-ico {
	background:rgba(255,255,255,.14);
	color:#e6c996
}
.cf-step h3 {
	font-size:clamp(14px,1.3vw,17px);
	line-height:1.6;
	margin:0;
	word-break:keep-all;
	overflow-wrap:anywhere
}
.cf-step p {
	word-break:keep-all;
	overflow-wrap:anywhere
}
.cf-step p {
	margin:6px 0 0;
	font-size:11.5px;
	line-height:1.7;
	color:var(--muted)
}
.contract-flow .reference-note {
	margin-top:16px
}
@media(max-width:960px) {
	.cf-list {
		grid-template-columns:1fr;
		gap:26px;
		padding-left:0
	}
	.cf-step {
		flex-direction:row;
		text-align:left;
		gap:14px;
		margin-right:0;
		padding:14px 18px;
		align-items:center
	}
	.cf-no {
		margin:0;
		min-width:1em;
		font-size:30px
	}
	.cf-ico {
		margin:0;
		flex:none;
		width:44px;
		height:44px;
		font-size:24px
	}
	.cf-text {
		flex:1;
		text-align:left
	}
	.cf-step p {
		margin:2px 0 0
	}
	.cf-vine {
		right:auto;
		left:calc(50% - 30px);
		top:calc(100% - 6px);
		width:60px;
		height:24px;
		transform:rotate(90deg);
		transform-origin:50% 50%;
		margin-top:6px
	}
	.decor-cf {
		right:18px;
		bottom:calc(100% - 12px);
		width:72px
	}
	.cf-sprout {
		top:50%;
		transform:translateY(-50%)
	}
}

.face-mark {
	display:block;
	width:clamp(86px,9vw,120px);
	aspect-ratio:174.8/116.79;
	margin:0 auto 14px;
	background:var(--pine);
	opacity:.78;
	-webkit-mask:url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSLjg6zjgqTjg6Tjg7xfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCAxNzQuOCAxMTYuNzkiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDE3NC44IDExNi43OSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+IDxnPiA8cGF0aCBmaWxsPSIjMDAwIiBkPSJNNzguMDgsOTUuNTFjLTEuNjEsMC0yLjk5LDEuMDEtMy41NSwyLjQyYy0wLjMtMS44MS0xLjg2LTMuMjEtMy43Ni0zLjIxYy0xLjU0LDAtMi44NiwwLjkyLTMuNDYsMi4yMyBjLTAuMi0xLjkyLTEuODEtMy40NC0zLjc4LTMuNDRjLTIuMTEsMC0zLjgyLDEuNzEtMy44MiwzLjgyczEuNzEsMy44MiwzLjgyLDMuODJjMS41NCwwLDIuODYtMC45MiwzLjQ2LTIuMjMgYzAuMiwxLjkzLDEuODEsMy40NCwzLjc4LDMuNDRjMS42MSwwLDIuOTktMS4wMSwzLjU1LTIuNDJjMC4zLDEuODEsMS44NiwzLjIxLDMuNzYsMy4yMWMyLjExLDAsMy44Mi0xLjcxLDMuODItMy44MiBDODEuOSw5Ny4yMiw4MC4xOSw5NS41MSw3OC4wOCw5NS41MXoiLz4gPHBhdGggZmlsbD0iIzAwMCIgZD0iTTExMS4yMyw5My41MWMtMS45NywwLTMuNTksMS41MS0zLjc4LDMuNDRjLTAuNjEtMS4zMS0xLjkzLTIuMjMtMy40Ni0yLjIzYy0xLjksMC0zLjQ2LDEuMzktMy43NiwzLjIxIGMtMC41Ni0xLjQxLTEuOTMtMi40Mi0zLjU1LTIuNDJjLTIuMTEsMC0zLjgyLDEuNzEtMy44MiwzLjgyczEuNzEsMy44MiwzLjgyLDMuODJjMS45LDAsMy40Ni0xLjM5LDMuNzYtMy4yMSBjMC41NiwxLjQxLDEuOTQsMi40MiwzLjU1LDIuNDJjMS45OCwwLDMuNTktMS41MSwzLjc4LTMuNDRjMC42MSwxLjMxLDEuOTMsMi4yMywzLjQ2LDIuMjNjMi4xMSwwLDMuODItMS43MSwzLjgyLTMuODIgUzExMy4zNCw5My41MSwxMTEuMjMsOTMuNTF6Ii8+IDxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik04Ny4zOCw5NC40NWMtMi44OSwwLTUuMjQsMi4zNS01LjI0LDUuMjRzMi4zNSw1LjI0LDUuMjQsNS4yNHM1LjI0LTIuMzUsNS4yNC01LjI0IFM5MC4yNyw5NC40NSw4Ny4zOCw5NC40NXoiLz4gPHBhdGggZmlsbD0iIzAwMCIgZD0iTTg3LjMzLDg2Ljc2YzQuNzMsMCw3LjY3LTIuMTIsNy42Ny01LjUyYzAtMS44My0wLjgyLTMuMDYtMi41MS0zLjc3Yy0xLjUxLTAuNjMtMy41NS0wLjcxLTUuMTYtMC43MSBzLTMuNjUsMC4wOC01LjE2LDAuNzFjLTEuNjksMC43MS0yLjUxLDEuOTQtMi41MSwzLjc3Qzc5LjY2LDg0LjY0LDgyLjYsODYuNzYsODcuMzMsODYuNzZ6Ii8+IDxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik02NC45OSw4MC43OGM0LjIzLDAsNy42Ny0zLjQ0LDcuNjctNy42N2MwLTQuMjMtMy40NC03LjY3LTcuNjctNy42N2MtMS40NSwwLTIuODUsMC40LTQuMDYsMS4xNiBsLTEuNzktMS43OWMtMC43LTAuNy0xLjkzLTAuNy0yLjYzLDBjLTAuNzIsMC43Mi0wLjcyLDEuOSwwLDIuNjNsMS44MywxLjgzYy0wLjY3LDEuMTYtMS4wMiwyLjQ4LTEuMDIsMy44MyBDNTcuMzIsNzcuMzUsNjAuNzYsODAuNzgsNjQuOTksODAuNzh6Ii8+IDxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0xMTAuMDksODAuNzhjNC4yMywwLDcuNjctMy40NCw3LjY3LTcuNjdjMC00LjIzLTMuNDQtNy42Ny03LjY3LTcuNjdjLTEuNDUsMC0yLjg1LDAuNC00LjA2LDEuMTYgbC0xLjc4LTEuNzljLTAuNy0wLjctMS45My0wLjctMi42MywwYy0wLjcyLDAuNzItMC43MiwxLjksMCwyLjYzbDEuODMsMS44M2MtMC42NywxLjE2LTEuMDIsMi40OC0xLjAyLDMuODMgQzEwMi40Miw3Ny4zNSwxMDUuODYsODAuNzgsMTEwLjA5LDgwLjc4eiIvPiA8cGF0aCBmaWxsPSIjMDAwIiBkPSJNMTU0Ljc5LDIyLjk4Yy0wLjI0LTAuMzMtMC41Ni0wLjU5LTAuOTMtMC43NGMtMC4zMi0wLjEzLTcuOS0zLjEzLTE3LjkzLTIuNDEgYy0xLjQxLDAuMS0yLjgzLDAuMjgtNC4yMywwLjUzYy0xLjExLTIuODQtMy4xNi01LjIzLTUuOC02Ljc0Yy00LjI0LTIuNDMtOS40NS0yLjM1LTEzLjYyLDAuMmMtNS45NS0xLjg3LTEyLjQ5LDAuNjktMTUuNTksNi4xMSBjLTEuNiwyLjc5LTIuMTMsNi4wNy0xLjUxLDkuMjNjLTAuMzEsMC40Mi0wLjYsMC44Ni0wLjg2LDEuMzJjLTEuMzgsMi40LTEuOTcsNS4yMy0xLjY5LDcuOTljLTcuNTgtMC4yMy0xNS40NiwwLjA1LTIyLjI1LDAuODEgYy00LjE5LTYuMzktOS4yOC0xMS4zLTE1LjEyLTE0LjU5Yy00Ljk4LTIuOC0xMC40OS00LjQzLTE2LjQtNC44NmMtOS43Mi0wLjctMTcuMTEsMi4wOC0xNy45MiwyLjRjLTAuMSwwLjA0LTAuMTksMC4wOC0wLjM2LDAuMTkgbDAuMTcsMC4ybDAsMGwtMC4yMy0wLjE2Yy0wLjA2LDAuMDQtMC4xMiwwLjA5LTAuMTYsMC4xM2MtMC4wNSwwLjA0LTAuMSwwLjA5LTAuMTEsMC4xYy0wLjA2LDAuMDYtMC4xMSwwLjExLTAuMTgsMC4xOSBjLTAuMDEsMC4wMi0wLjAzLDAuMDMtMC4wNCwwLjA1bC0wLjA0LDAuMDVjLTAuMjUsMC4zNi02LjE4LDguOTctNi4zLDI2LjQzYy0wLjA3LDEwLjQ4LDQuNzQsMTkuNiwxMy45NCwyNi4zNyBjNC4yNiwzLjE0LDguNTUsNS4wOCwxMC45NCw2LjAzYy0wLjAxLDAuMDEtMC4wMywwLjAzLTAuMDQsMC4wNGMtMC40OSwwLjQ5LTAuNzIsMS4xOC0wLjYsMS44NmMwLjEyLDAuNjgsMC41NiwxLjI2LDEuMTksMS41NSBjMC44NCwwLjM5LDEuNzQsMC43NCwyLjY4LDEuMDVjLTAuODYsMC42My0xLjU3LDEuMDktMS43MiwxLjE5Yy0wLjYxLDAuMzktMC45NywxLjA2LTAuOTcsMS43OWMwLjAxLDAuNzMsMC4zOCwxLjM5LDEsMS43OCBjNi4xLDMuNzcsMTYuNzQsNi40OCwxNy4xOSw2LjU5YzAuMTcsMC4wNCwwLjM1LDAuMDcsMC41MiwwLjA3YzAuOTcsMCwxLjgtMC42NSwyLjA0LTEuNTljMC4xNC0wLjU1LDAuMDYtMS4xMS0wLjIzLTEuNTkgYy0wLjI5LTAuNDgtMC43NS0wLjgzLTEuMjktMC45NmMtMC4wNy0wLjAyLTcuNDgtMS45MS0xMy4xMy00LjU2YzEuMTYtMC45LDIuMDQtMS43MiwyLjY0LTIuNDRjMC40OS0wLjU5LDAuNjItMS4zOSwwLjM1LTIuMTEgYy0wLjI4LTAuNzEtMC45Mi0xLjIyLTEuNjgtMS4zM2MtMC4yNC0wLjA0LTEuNDItMC4yMy0yLjk2LTAuN2MwLjE0LTAuMjEsMC4yNy0wLjQsMC4zNy0wLjU5YzAuMzItMC41NywwLjM2LTEuMjQsMC4xMi0xLjg0IGMtMC4yNC0wLjU5LTAuNzYtMS4wNS0xLjM3LTEuMjNjLTAuMjYtMC4wNy02LjM4LTEuODYtMTIuNTQtNi40Yy04LjIxLTYuMDItMTIuMzItMTMuNzQtMTIuMjYtMjIuOTUgYzAuMDktMTMuMDIsMy43My0yMC44MSw0Ljk3LTIzLjA5YzEyLjU2LDAuNywyMi41NSw0LjM4LDI4LjksMTAuNjRjNC43OCw0LjcyLDUuOTUsOS40Niw1Ljk2LDkuNWMwLjI1LDEuMTQsMS4zNSwxLjg0LDIuNSwxLjYxIGMwLjU1LTAuMTIsMS4wMi0wLjQ0LDEuMzItMC45MmMwLjMxLTAuNDcsMC40MS0xLjA0LDAuMjktMS41OGMtMC4wNS0wLjIzLTEuMjctNS43OC02Ljk4LTExLjQ4Yy00LjgyLTQuODEtMTEuMzMtOC4yNC0xOS4zNi0xMC4yIGMxLjA3LTAuMDEsMi4xMywwLjAzLDMuMTYsMC4xYzUuMjcsMC4zOSwxMC4xOCwxLjg2LDE0LjU5LDQuMzVjNS41NCwzLjEzLDEwLjM1LDcuOTMsMTQuMjksMTQuMjVjMC40MywwLjY5LDEuMjMsMS4wNywyLjA0LDAuOTggYzUuMzktMC42NywxMS41NS0xLjAyLDE3LjgyLTEuMDJjMi4xNCwwLDQuMjksMC4wNCw2LjM5LDAuMTJjMS4xNywyLjU0LDMuMDYsNC42Miw1LjQ5LDYuMDFjMS41NSwwLjg5LDMuMjQsMS40NSw1LDEuNjYgYzEuMTQsMS42NSwyLjYsMi45OSw0LjM0LDMuOTljMy4wOSwxLjc3LDYuNywyLjIzLDEwLjE1LDEuMjljMy40NS0wLjk0LDYuMzItMy4xNiw4LjEtNi4yNWMwLjI1LTAuNDQsMC40OC0wLjksMC42OS0xLjM4IGMzLjM3LTAuOTYsNi4xOC0zLjE2LDcuOTItNi4yYzIuMTktMy44MiwyLjMzLTguNjEsMC4zNy0xMi41OGM0LjczLTEuNjIsMTAuMTQtMi42MSwxNi4wOC0yLjkyYzQuNTIsOC4xOCw0Ljk1LDE5Ljc0LDQuOTcsMjMuMSBjMC4wNyw5LjE4LTQuMDMsMTYuODktMTIuMTcsMjIuOTFjLTYuMjgsNC42NC0xMi41Myw2LjQzLTEyLjYsNi40NGMtMC42MiwwLjE4LTEuMTIsMC42Mi0xLjM3LDEuMjNjLTAuMjUsMC42LTAuMiwxLjI3LDAuMTIsMS44NCBjMC4xMSwwLjE5LDAuMjMsMC4zOCwwLjM3LDAuNTljLTEuNjcsMC41MS0yLjk1LDAuNjktMi45NiwwLjY5Yy0wLjc2LDAuMTEtMS40LDAuNjEtMS42OCwxLjMzYy0wLjI4LDAuNzEtMC4xNCwxLjUyLDAuMzUsMi4xMSBjMC42LDAuNzIsMS40OCwxLjU0LDIuNjQsMi40NGMtNS41NiwyLjYxLTEyLjgyLDQuNDgtMTMuMTMsNC41NmMtMC41NCwwLjE0LTEsMC40OC0xLjI5LDAuOTZzLTAuMzcsMS4wNS0wLjIzLDEuNTkgYzAuMjksMS4xMywxLjQzLDEuODEsMi41NiwxLjUyYzAuNDUtMC4xMSwxMS4wOC0yLjgxLDE3LjItNi41OWMwLjYyLTAuMzgsMC45OS0xLjA1LDEtMS43OGMwLjAxLTAuNzMtMC4zNi0xLjQtMC45OC0xLjc5IGMtMC4wOS0wLjA2LTAuODMtMC41NC0xLjcxLTEuMThjMC45NC0wLjMxLDEuODQtMC42NiwyLjY4LTEuMDVjMC42My0wLjI5LDEuMDctMC44NywxLjE5LTEuNTVzLTAuMS0xLjM4LTAuNi0xLjg2IGMtMC4wMS0wLjAxLTAuMDMtMC4wMy0wLjA0LTAuMDRjMi4zOS0wLjk1LDYuNjgtMi44OSwxMC45NC02LjAzYzkuMTktNi43OCwxNC4wMS0xNS44OSwxMy45NC0yNi4zNyBDMTYwLjk2LDMxLjkzLDE1NS4wNCwyMy4zMywxNTQuNzksMjIuOThMMTU0Ljc5LDIyLjk4eiBNOTkuMDksMjUuNjNjMC4xMy0xLjI4LDAuNTMtMi41MywxLjE3LTMuNjVjMS42NC0yLjg2LDQuNzEtNC42NCw4LjAyLTQuNjQgYzAuNTcsMCwxLjE0LDAuMDUsMS43LDAuMTZjMC44MSwwLjE1LDEuNiwwLjQyLDIuMzUsMC43OGMwLjIxLDAuMSwwLjM4LDAuMTksMC41MywwLjI4YzAuNTQsMC4zMSwxLjA0LDAuNjcsMS41LDEuMDcgYy0wLjkxLDAuNC0xLjc1LDAuOTYtMi40NiwxLjYzYy0xLjUzLTAuMzUtMy4xMS0wLjI5LTQuNiwwLjE4Yy0xLjUyLDAuNDgtMi44OSwxLjM3LTMuOTUsMi41NyBDMTAxLjg3LDI0LjMsMTAwLjQsMjQuODYsOTkuMDksMjUuNjN6IE0xMjMuODMsMTcuMmMxLjkyLDEuMSwzLjM5LDIuODcsNC4xMiw0Ljk3YzAuMjIsMC42MiwwLjM3LDEuMjUsMC40NSwxLjg3IGMwLjAxLDAuMDUsMC4wMSwwLjEsMC4wMSwwLjE1bDAuMDIsMC4xOGMwLjA3LDAuNzMsMC4wNSwxLjQ1LTAuMDUsMi4xNWMtMC4wOSwwLjYyLTAuMjQsMS4yNC0wLjQ2LDEuODQgYy0wLjE4LDAuNS0wLjQsMC45OC0wLjY2LDEuNDRjLTAuMDgsMC4xNC0wLjE3LDAuMjgtMC4yNSwwLjQyYy0wLjE0LTAuMTgtMC4yOS0wLjM2LTAuNDQtMC41MmMtMC4wMy0wLjAzLTAuMDYtMC4wNy0wLjA5LTAuMSBjMC4zMi0xLjQxLDAuMjktMi45LTAuMS00LjMxYy0wLjI1LTAuODktMC42My0xLjczLTEuMTQtMi41Yy0wLjc2LTEuMTUtMS43NS0yLjA4LTIuOTUtMi43N2MtMC45NC0wLjU0LTEuOTUtMC44OS0zLjAyLTEuMDYgYy0wLjY5LTEtMS41MS0xLjktMi40My0yLjY3QzExOS4xOSwxNS42NywxMjEuNzEsMTUuOTksMTIzLjgzLDE3LjJ6IE0xMDcuNTIsMzcuMTNjMC4wOC0wLjU4LDAuMjctMS4xMywwLjU2LTEuNjQgYzAuMDQtMC4wOCwwLjA5LTAuMTYsMC4xNi0wLjI1YzAuMTQtMC4yMSwwLjI5LTAuNDEsMC40Ni0wLjU5YzAuMDEsMC4wMiwwLjAxLDAuMDMsMC4wMiwwLjA1YzAuMTEsMC4zNiwwLjI1LDAuNywwLjQxLDEuMDIgYzAuMjMsMC40NiwwLjUzLDAuOSwwLjg3LDEuM2MwLjMxLDAuMzYsMC42NSwwLjY5LDEuMDIsMC45N2wwLDBjMC4xMywwLjA5LDAuMjIsMC4xNywwLjMyLDAuMjNjMC4xMywwLjA4LDAuMjYsMC4xNywwLjM5LDAuMjQgYzAuMDMsMC4wMiwwLjA2LDAuMDMsMC4wOCwwLjA1YzAuNDYsMS4zMywxLjI0LDIuNTMsMi4yNiwzLjVjLTAuMTEsMC4wNS0wLjIxLDAuMS0wLjMyLDAuMTRjLTEuMywwLjQ5LTIuNzQsMC4zOC0zLjk0LTAuMzEgYy0wLjY2LTAuMzgtMS4yMi0wLjkyLTEuNjItMS41NWMtMC41LTAuOC0wLjc0LTEuNzEtMC43MS0yLjdDMTA3LjQ4LDM3LjQyLDEwNy40OSwzNy4yNywxMDcuNTIsMzcuMTN6IE0xMTguMDMsMzguNiBjMC4xNS0wLjA4LDAuMjctMC4xNCwwLjM4LTAuMjFjMC44NC0wLjUsMS41NS0xLjE4LDIuMS0xLjk5YzAuMTEtMC4xNiwwLjE4LTAuMjgsMC4yNC0wLjM5YzAuMDItMC4wMywwLjAzLTAuMDUsMC4wNS0wLjA4IGMxLjMzLTAuNDYsMi41NC0xLjI0LDMuNS0yLjI2YzAuMDEsMC4wMywwLjAzLDAuMDYsMC4wNCwwLjA5YzAuMDQsMC4wOSwwLjA4LDAuMTksMC4xMSwwLjI4YzAuMjIsMC42MSwwLjMyLDEuMjQsMC4yOCwxLjg4IGMtMC4wNCwwLjcyLTAuMjUsMS4zOS0wLjYsMi4wMWMtMC45NiwxLjY3LTIuOCwyLjU3LTQuNywyLjI4Yy0wLjItMC4wMy0wLjQxLTAuMDgtMC42Ny0wLjE1Yy0wLjM1LTAuMTEtMC42OC0wLjI0LTAuOTYtMC40MSBjLTAuMDktMC4wNS0wLjE4LTAuMTEtMC4yNS0wLjE2Yy0wLjItMC4xMy0wLjQtMC4yOC0wLjU5LTAuNDZDMTE3LjMxLDM4LjkzLDExNy42OCwzOC43OCwxMTguMDMsMzguNnogTTExNi4yNSwzMC41NyBjMC4xMywwLjA4LDAuMjYsMC4xNywwLjM5LDAuMjhjMC4xMSwwLjA5LDAuMiwwLjE5LDAuMzEsMC4zMmwwLjEyLDAuMTZjMC4zMiwwLjQ2LDAuNDYsMS4wMiwwLjQyLDEuNjFjMCwwLjAzLDAsMC4wNi0wLjAxLDAuMSBjLTAuMDQsMC4zMy0wLjE0LDAuNjMtMC4zMSwwLjkyYy0wLjE2LDAuMjktMC4zOCwwLjUzLTAuNjIsMC43MmwtMC4xNCwwLjFjLTAuNDYsMC4zMi0xLjAyLDAuNDctMS41OCwwLjQyIGMtMC4wNSwwLTAuMS0wLjAxLTAuMTMtMC4wMWMtMC4zMi0wLjA0LTAuNjMtMC4xNC0wLjkyLTAuMzFjLTAuMjktMC4xNi0wLjUzLTAuMzgtMC43Mi0wLjYybC0wLjEtMC4xNCBjLTAuMzEtMC40NS0wLjQ2LTEuMDEtMC40Mi0xLjU4YzAtMC4wNSwwLjAxLTAuMSwwLjAxLTAuMTNjMC4wMy0wLjIsMC4wOC0wLjQsMC4xNi0wLjYxYzAuMDUtMC4xMiwwLjEtMC4yMiwwLjE1LTAuMzEgYzAuMDYtMC4xMSwwLjE0LTAuMjEsMC4yMy0wLjMzYzAuMTMtMC4xNiwwLjI2LTAuMjksMC4zOS0wLjM5bDAuMTQtMC4xYzAuMjItMC4xNSwwLjQ2LTAuMjYsMC43Mi0wLjMzIGMwLjIyLTAuMDYsMC40NS0wLjA5LDAuNjktMC4wOWMwLjA2LDAsMC4xMywwLDAuMiwwLjAxYzAuMDMsMCwwLjA3LDAsMC4xMSwwLjAxYzAuMDgsMC4wMSwwLjE1LDAuMDIsMC4yNCwwLjA0IEMxMTUuODEsMzAuMzYsMTE2LjA0LDMwLjQ1LDExNi4yNSwzMC41N3ogTTExOS43NiwyMy4zOGMwLjE0LDAuMDYsMC4zMSwwLjE0LDAuNDcsMC4yM2MwLjUzLDAuMywwLjk4LDAuNjksMS4zNSwxLjE3IGMwLjQzLDAuNTUsMC43MywxLjIsMC44OCwxLjg5YzAuMTIsMC41NCwwLjE0LDEuMSwwLjA2LDEuNjRjLTAuMDgsMC41OC0wLjI3LDEuMTMtMC41NywxLjY0Yy0wLjA0LDAuMDgtMC4wOSwwLjE2LTAuMTYsMC4yNSBjLTAuMTQsMC4yMS0wLjI5LDAuNDEtMC40NiwwLjU5Yy0wLjA5LTAuMy0wLjIxLTAuNi0wLjM0LTAuODhsLTAuMDktMC4xOWMtMC4yOC0wLjU1LTAuNjQtMS4wNy0xLjA3LTEuNTIgYy0wLjMzLTAuMzUtMC42OS0wLjY2LTEuMTMtMC45N2MtMC4xMy0wLjA5LTAuMjYtMC4xNy0wLjQtMC4yNWMtMC4wMy0wLjAyLTAuMDUtMC4wMy0wLjA4LTAuMDRjLTAuMDItMC4wNi0wLjA0LTAuMTItMC4wNi0wLjE4IGMtMC40Ny0xLjI2LTEuMjItMi40LTIuMTktMy4zMmMwLjQ3LTAuMjEsMC45Ny0wLjM1LDEuNDktMC40MUMxMTguMjQsMjIuOTQsMTE5LjAzLDIzLjA3LDExOS43NiwyMy4zOHogTTEwNS45MiwyNy40OSBjMC41LTAuODYsMS4yNS0xLjUzLDIuMTctMS45MmMwLjc5LTAuMzQsMS42My0wLjQ3LDIuNTItMC4zNGMwLjU4LDAuMDgsMS4xMywwLjI3LDEuNjQsMC41NmMwLjA4LDAuMDUsMC4xNywwLjEsMC4yNSwwLjE2IGMwLjIxLDAuMTQsMC40MSwwLjI5LDAuNTksMC40NmMtMC4zNywwLjExLTAuNzMsMC4yNi0xLjA3LDAuNDNjLTAuNTIsMC4yNi0xLjAyLDAuNjEtMS40NywxLjAyYy0wLjQsMC4zNy0wLjc0LDAuNzctMS4wMywxLjIgYy0wLjA3LDAuMTEtMC4xNiwwLjI1LTAuMjUsMC4zOWMtMC4wMSwwLjAzLTAuMDMsMC4wNS0wLjA0LDAuMDhjLTEuMzEsMC40Ni0yLjU0LDEuMjUtMy41MSwyLjI2IEMxMDUuMDksMzAuNDEsMTA1LjE1LDI4LjgzLDEwNS45MiwyNy40OXogTTEwNy43NSw0NS40MWMxLjgzLDEuMDUsMy45OCwxLjQsNi4wNiwwLjk5YzAuNjYtMC4xMywxLjI5LTAuMzMsMS45LTAuNmwwLjExLDAuMDkgYzAuNDUsMC4zNCwwLjkyLDAuNjUsMS4zOSwwLjkyYzEuNjEsMC45MywzLjQzLDEuNTEsNS4yOSwxLjdjLTEuMjYsMS42LTMuMDMsMi43NC01LjAzLDMuMjRjLTIuMzIsMC41OC00Ljc1LDAuMjQtNi44Mi0wLjk0IGMtMC44Ny0wLjUtMS42NS0xLjEzLTIuMzEtMS44OGMtMC41Ni0wLjYzLTEuMDItMS4zMi0xLjM5LTIuMDdjLTAuNC0wLjgxLTAuNjgtMS43MS0wLjgyLTIuNjIgQzEwNi42Myw0NC42OCwxMDcuMTcsNDUuMDgsMTA3Ljc1LDQ1LjQxeiBNMTI3LjcxLDM5Ljk5YzAuOTMtMS42MywxLjMyLTMuNTUsMS4wOS01LjQyYzAuNzktMC44MSwxLjQ4LTEuNzIsMi4wNC0yLjcgYzAuMTctMC4yOSwwLjMzLTAuNiwwLjUtMC45OGMwLjEtMC4yMiwwLjItMC40NCwwLjI5LTAuNjZjMS44NiwyLjkyLDEuOTYsNi41OCwwLjI0LDkuNTdjLTEuMDQsMS44Mi0yLjYzLDMuMi00LjU4LDMuOTggYy0wLjc1LDAuMy0xLjU0LDAuNS0yLjM1LDAuNmMtMS4wMiwwLjEyLTIuMDcsMC4wNy0zLjA3LTAuMTVDMTI0LjMsNDMuNzEsMTI2LjQ2LDQyLjE2LDEyNy43MSwzOS45OXogTTEwMS44OSw0Mi40NSBjLTAuMDIsMS4wNiwwLjA4LDIuMTEsMC4zLDMuMTRjLTAuMy0wLjEzLTAuNTktMC4yOC0wLjg3LTAuNDRjLTEuNDctMC44NC0yLjY3LTIuMDctMy40OS0zLjU1Yy0wLjQtMC43My0wLjctMS41MS0wLjg5LTIuMzIgYy0wLjU1LTIuMjgtMC4yMS00LjY4LDAuOTYtNi43NWMwLjQxLTAuNzEsMC45MS0xLjM2LDEuNDktMS45NWMwLjU0LTAuNTQsMS4xNS0xLjAxLDEuODEtMS40Yy0wLjE4LDIuNDUsMC42Nyw0Ljg1LDIuMzcsNi42NSBjLTAuMDUsMC4yMy0wLjEsMC40Ny0wLjEzLDAuN2MtMC4yMywwLjQ0LTAuNDQsMC44OC0wLjYxLDEuMzJjLTAuMjQsMC42MS0wLjQ1LDEuMjctMC42LDEuOTYgQzEwMi4wMiw0MC42OCwxMDEuOTEsNDEuNTYsMTAxLjg5LDQyLjQ1eiBNMTMyLjU4LDI0LjQ3YzEuMTctMC4yLDIuMzYtMC4zNSwzLjU0LTAuNDRjMC45OC0wLjA3LDEuOTYtMC4xLDIuOTgtMC4xIGMtMi4wNCwwLjUtNCwxLjA5LTUuODMsMS43OGMtMC4yMi0wLjIyLTAuNDQtMC40Mi0wLjY2LTAuNjJDMTMyLjYsMjQuODgsMTMyLjYsMjQuNjgsMTMyLjU4LDI0LjQ3eiIvPiA8L2c+IDwvc3ZnPg==") center/contain no-repeat;
	mask:url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSLjg6zjgqTjg6Tjg7xfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCAxNzQuOCAxMTYuNzkiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDE3NC44IDExNi43OSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+IDxnPiA8cGF0aCBmaWxsPSIjMDAwIiBkPSJNNzguMDgsOTUuNTFjLTEuNjEsMC0yLjk5LDEuMDEtMy41NSwyLjQyYy0wLjMtMS44MS0xLjg2LTMuMjEtMy43Ni0zLjIxYy0xLjU0LDAtMi44NiwwLjkyLTMuNDYsMi4yMyBjLTAuMi0xLjkyLTEuODEtMy40NC0zLjc4LTMuNDRjLTIuMTEsMC0zLjgyLDEuNzEtMy44MiwzLjgyczEuNzEsMy44MiwzLjgyLDMuODJjMS41NCwwLDIuODYtMC45MiwzLjQ2LTIuMjMgYzAuMiwxLjkzLDEuODEsMy40NCwzLjc4LDMuNDRjMS42MSwwLDIuOTktMS4wMSwzLjU1LTIuNDJjMC4zLDEuODEsMS44NiwzLjIxLDMuNzYsMy4yMWMyLjExLDAsMy44Mi0xLjcxLDMuODItMy44MiBDODEuOSw5Ny4yMiw4MC4xOSw5NS41MSw3OC4wOCw5NS41MXoiLz4gPHBhdGggZmlsbD0iIzAwMCIgZD0iTTExMS4yMyw5My41MWMtMS45NywwLTMuNTksMS41MS0zLjc4LDMuNDRjLTAuNjEtMS4zMS0xLjkzLTIuMjMtMy40Ni0yLjIzYy0xLjksMC0zLjQ2LDEuMzktMy43NiwzLjIxIGMtMC41Ni0xLjQxLTEuOTMtMi40Mi0zLjU1LTIuNDJjLTIuMTEsMC0zLjgyLDEuNzEtMy44MiwzLjgyczEuNzEsMy44MiwzLjgyLDMuODJjMS45LDAsMy40Ni0xLjM5LDMuNzYtMy4yMSBjMC41NiwxLjQxLDEuOTQsMi40MiwzLjU1LDIuNDJjMS45OCwwLDMuNTktMS41MSwzLjc4LTMuNDRjMC42MSwxLjMxLDEuOTMsMi4yMywzLjQ2LDIuMjNjMi4xMSwwLDMuODItMS43MSwzLjgyLTMuODIgUzExMy4zNCw5My41MSwxMTEuMjMsOTMuNTF6Ii8+IDxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik04Ny4zOCw5NC40NWMtMi44OSwwLTUuMjQsMi4zNS01LjI0LDUuMjRzMi4zNSw1LjI0LDUuMjQsNS4yNHM1LjI0LTIuMzUsNS4yNC01LjI0IFM5MC4yNyw5NC40NSw4Ny4zOCw5NC40NXoiLz4gPHBhdGggZmlsbD0iIzAwMCIgZD0iTTg3LjMzLDg2Ljc2YzQuNzMsMCw3LjY3LTIuMTIsNy42Ny01LjUyYzAtMS44My0wLjgyLTMuMDYtMi41MS0zLjc3Yy0xLjUxLTAuNjMtMy41NS0wLjcxLTUuMTYtMC43MSBzLTMuNjUsMC4wOC01LjE2LDAuNzFjLTEuNjksMC43MS0yLjUxLDEuOTQtMi41MSwzLjc3Qzc5LjY2LDg0LjY0LDgyLjYsODYuNzYsODcuMzMsODYuNzZ6Ii8+IDxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik02NC45OSw4MC43OGM0LjIzLDAsNy42Ny0zLjQ0LDcuNjctNy42N2MwLTQuMjMtMy40NC03LjY3LTcuNjctNy42N2MtMS40NSwwLTIuODUsMC40LTQuMDYsMS4xNiBsLTEuNzktMS43OWMtMC43LTAuNy0xLjkzLTAuNy0yLjYzLDBjLTAuNzIsMC43Mi0wLjcyLDEuOSwwLDIuNjNsMS44MywxLjgzYy0wLjY3LDEuMTYtMS4wMiwyLjQ4LTEuMDIsMy44MyBDNTcuMzIsNzcuMzUsNjAuNzYsODAuNzgsNjQuOTksODAuNzh6Ii8+IDxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0xMTAuMDksODAuNzhjNC4yMywwLDcuNjctMy40NCw3LjY3LTcuNjdjMC00LjIzLTMuNDQtNy42Ny03LjY3LTcuNjdjLTEuNDUsMC0yLjg1LDAuNC00LjA2LDEuMTYgbC0xLjc4LTEuNzljLTAuNy0wLjctMS45My0wLjctMi42MywwYy0wLjcyLDAuNzItMC43MiwxLjksMCwyLjYzbDEuODMsMS44M2MtMC42NywxLjE2LTEuMDIsMi40OC0xLjAyLDMuODMgQzEwMi40Miw3Ny4zNSwxMDUuODYsODAuNzgsMTEwLjA5LDgwLjc4eiIvPiA8cGF0aCBmaWxsPSIjMDAwIiBkPSJNMTU0Ljc5LDIyLjk4Yy0wLjI0LTAuMzMtMC41Ni0wLjU5LTAuOTMtMC43NGMtMC4zMi0wLjEzLTcuOS0zLjEzLTE3LjkzLTIuNDEgYy0xLjQxLDAuMS0yLjgzLDAuMjgtNC4yMywwLjUzYy0xLjExLTIuODQtMy4xNi01LjIzLTUuOC02Ljc0Yy00LjI0LTIuNDMtOS40NS0yLjM1LTEzLjYyLDAuMmMtNS45NS0xLjg3LTEyLjQ5LDAuNjktMTUuNTksNi4xMSBjLTEuNiwyLjc5LTIuMTMsNi4wNy0xLjUxLDkuMjNjLTAuMzEsMC40Mi0wLjYsMC44Ni0wLjg2LDEuMzJjLTEuMzgsMi40LTEuOTcsNS4yMy0xLjY5LDcuOTljLTcuNTgtMC4yMy0xNS40NiwwLjA1LTIyLjI1LDAuODEgYy00LjE5LTYuMzktOS4yOC0xMS4zLTE1LjEyLTE0LjU5Yy00Ljk4LTIuOC0xMC40OS00LjQzLTE2LjQtNC44NmMtOS43Mi0wLjctMTcuMTEsMi4wOC0xNy45MiwyLjRjLTAuMSwwLjA0LTAuMTksMC4wOC0wLjM2LDAuMTkgbDAuMTcsMC4ybDAsMGwtMC4yMy0wLjE2Yy0wLjA2LDAuMDQtMC4xMiwwLjA5LTAuMTYsMC4xM2MtMC4wNSwwLjA0LTAuMSwwLjA5LTAuMTEsMC4xYy0wLjA2LDAuMDYtMC4xMSwwLjExLTAuMTgsMC4xOSBjLTAuMDEsMC4wMi0wLjAzLDAuMDMtMC4wNCwwLjA1bC0wLjA0LDAuMDVjLTAuMjUsMC4zNi02LjE4LDguOTctNi4zLDI2LjQzYy0wLjA3LDEwLjQ4LDQuNzQsMTkuNiwxMy45NCwyNi4zNyBjNC4yNiwzLjE0LDguNTUsNS4wOCwxMC45NCw2LjAzYy0wLjAxLDAuMDEtMC4wMywwLjAzLTAuMDQsMC4wNGMtMC40OSwwLjQ5LTAuNzIsMS4xOC0wLjYsMS44NmMwLjEyLDAuNjgsMC41NiwxLjI2LDEuMTksMS41NSBjMC44NCwwLjM5LDEuNzQsMC43NCwyLjY4LDEuMDVjLTAuODYsMC42My0xLjU3LDEuMDktMS43MiwxLjE5Yy0wLjYxLDAuMzktMC45NywxLjA2LTAuOTcsMS43OWMwLjAxLDAuNzMsMC4zOCwxLjM5LDEsMS43OCBjNi4xLDMuNzcsMTYuNzQsNi40OCwxNy4xOSw2LjU5YzAuMTcsMC4wNCwwLjM1LDAuMDcsMC41MiwwLjA3YzAuOTcsMCwxLjgtMC42NSwyLjA0LTEuNTljMC4xNC0wLjU1LDAuMDYtMS4xMS0wLjIzLTEuNTkgYy0wLjI5LTAuNDgtMC43NS0wLjgzLTEuMjktMC45NmMtMC4wNy0wLjAyLTcuNDgtMS45MS0xMy4xMy00LjU2YzEuMTYtMC45LDIuMDQtMS43MiwyLjY0LTIuNDRjMC40OS0wLjU5LDAuNjItMS4zOSwwLjM1LTIuMTEgYy0wLjI4LTAuNzEtMC45Mi0xLjIyLTEuNjgtMS4zM2MtMC4yNC0wLjA0LTEuNDItMC4yMy0yLjk2LTAuN2MwLjE0LTAuMjEsMC4yNy0wLjQsMC4zNy0wLjU5YzAuMzItMC41NywwLjM2LTEuMjQsMC4xMi0xLjg0IGMtMC4yNC0wLjU5LTAuNzYtMS4wNS0xLjM3LTEuMjNjLTAuMjYtMC4wNy02LjM4LTEuODYtMTIuNTQtNi40Yy04LjIxLTYuMDItMTIuMzItMTMuNzQtMTIuMjYtMjIuOTUgYzAuMDktMTMuMDIsMy43My0yMC44MSw0Ljk3LTIzLjA5YzEyLjU2LDAuNywyMi41NSw0LjM4LDI4LjksMTAuNjRjNC43OCw0LjcyLDUuOTUsOS40Niw1Ljk2LDkuNWMwLjI1LDEuMTQsMS4zNSwxLjg0LDIuNSwxLjYxIGMwLjU1LTAuMTIsMS4wMi0wLjQ0LDEuMzItMC45MmMwLjMxLTAuNDcsMC40MS0xLjA0LDAuMjktMS41OGMtMC4wNS0wLjIzLTEuMjctNS43OC02Ljk4LTExLjQ4Yy00LjgyLTQuODEtMTEuMzMtOC4yNC0xOS4zNi0xMC4yIGMxLjA3LTAuMDEsMi4xMywwLjAzLDMuMTYsMC4xYzUuMjcsMC4zOSwxMC4xOCwxLjg2LDE0LjU5LDQuMzVjNS41NCwzLjEzLDEwLjM1LDcuOTMsMTQuMjksMTQuMjVjMC40MywwLjY5LDEuMjMsMS4wNywyLjA0LDAuOTggYzUuMzktMC42NywxMS41NS0xLjAyLDE3LjgyLTEuMDJjMi4xNCwwLDQuMjksMC4wNCw2LjM5LDAuMTJjMS4xNywyLjU0LDMuMDYsNC42Miw1LjQ5LDYuMDFjMS41NSwwLjg5LDMuMjQsMS40NSw1LDEuNjYgYzEuMTQsMS42NSwyLjYsMi45OSw0LjM0LDMuOTljMy4wOSwxLjc3LDYuNywyLjIzLDEwLjE1LDEuMjljMy40NS0wLjk0LDYuMzItMy4xNiw4LjEtNi4yNWMwLjI1LTAuNDQsMC40OC0wLjksMC42OS0xLjM4IGMzLjM3LTAuOTYsNi4xOC0zLjE2LDcuOTItNi4yYzIuMTktMy44MiwyLjMzLTguNjEsMC4zNy0xMi41OGM0LjczLTEuNjIsMTAuMTQtMi42MSwxNi4wOC0yLjkyYzQuNTIsOC4xOCw0Ljk1LDE5Ljc0LDQuOTcsMjMuMSBjMC4wNyw5LjE4LTQuMDMsMTYuODktMTIuMTcsMjIuOTFjLTYuMjgsNC42NC0xMi41Myw2LjQzLTEyLjYsNi40NGMtMC42MiwwLjE4LTEuMTIsMC42Mi0xLjM3LDEuMjNjLTAuMjUsMC42LTAuMiwxLjI3LDAuMTIsMS44NCBjMC4xMSwwLjE5LDAuMjMsMC4zOCwwLjM3LDAuNTljLTEuNjcsMC41MS0yLjk1LDAuNjktMi45NiwwLjY5Yy0wLjc2LDAuMTEtMS40LDAuNjEtMS42OCwxLjMzYy0wLjI4LDAuNzEtMC4xNCwxLjUyLDAuMzUsMi4xMSBjMC42LDAuNzIsMS40OCwxLjU0LDIuNjQsMi40NGMtNS41NiwyLjYxLTEyLjgyLDQuNDgtMTMuMTMsNC41NmMtMC41NCwwLjE0LTEsMC40OC0xLjI5LDAuOTZzLTAuMzcsMS4wNS0wLjIzLDEuNTkgYzAuMjksMS4xMywxLjQzLDEuODEsMi41NiwxLjUyYzAuNDUtMC4xMSwxMS4wOC0yLjgxLDE3LjItNi41OWMwLjYyLTAuMzgsMC45OS0xLjA1LDEtMS43OGMwLjAxLTAuNzMtMC4zNi0xLjQtMC45OC0xLjc5IGMtMC4wOS0wLjA2LTAuODMtMC41NC0xLjcxLTEuMThjMC45NC0wLjMxLDEuODQtMC42NiwyLjY4LTEuMDVjMC42My0wLjI5LDEuMDctMC44NywxLjE5LTEuNTVzLTAuMS0xLjM4LTAuNi0xLjg2IGMtMC4wMS0wLjAxLTAuMDMtMC4wMy0wLjA0LTAuMDRjMi4zOS0wLjk1LDYuNjgtMi44OSwxMC45NC02LjAzYzkuMTktNi43OCwxNC4wMS0xNS44OSwxMy45NC0yNi4zNyBDMTYwLjk2LDMxLjkzLDE1NS4wNCwyMy4zMywxNTQuNzksMjIuOThMMTU0Ljc5LDIyLjk4eiBNOTkuMDksMjUuNjNjMC4xMy0xLjI4LDAuNTMtMi41MywxLjE3LTMuNjVjMS42NC0yLjg2LDQuNzEtNC42NCw4LjAyLTQuNjQgYzAuNTcsMCwxLjE0LDAuMDUsMS43LDAuMTZjMC44MSwwLjE1LDEuNiwwLjQyLDIuMzUsMC43OGMwLjIxLDAuMSwwLjM4LDAuMTksMC41MywwLjI4YzAuNTQsMC4zMSwxLjA0LDAuNjcsMS41LDEuMDcgYy0wLjkxLDAuNC0xLjc1LDAuOTYtMi40NiwxLjYzYy0xLjUzLTAuMzUtMy4xMS0wLjI5LTQuNiwwLjE4Yy0xLjUyLDAuNDgtMi44OSwxLjM3LTMuOTUsMi41NyBDMTAxLjg3LDI0LjMsMTAwLjQsMjQuODYsOTkuMDksMjUuNjN6IE0xMjMuODMsMTcuMmMxLjkyLDEuMSwzLjM5LDIuODcsNC4xMiw0Ljk3YzAuMjIsMC42MiwwLjM3LDEuMjUsMC40NSwxLjg3IGMwLjAxLDAuMDUsMC4wMSwwLjEsMC4wMSwwLjE1bDAuMDIsMC4xOGMwLjA3LDAuNzMsMC4wNSwxLjQ1LTAuMDUsMi4xNWMtMC4wOSwwLjYyLTAuMjQsMS4yNC0wLjQ2LDEuODQgYy0wLjE4LDAuNS0wLjQsMC45OC0wLjY2LDEuNDRjLTAuMDgsMC4xNC0wLjE3LDAuMjgtMC4yNSwwLjQyYy0wLjE0LTAuMTgtMC4yOS0wLjM2LTAuNDQtMC41MmMtMC4wMy0wLjAzLTAuMDYtMC4wNy0wLjA5LTAuMSBjMC4zMi0xLjQxLDAuMjktMi45LTAuMS00LjMxYy0wLjI1LTAuODktMC42My0xLjczLTEuMTQtMi41Yy0wLjc2LTEuMTUtMS43NS0yLjA4LTIuOTUtMi43N2MtMC45NC0wLjU0LTEuOTUtMC44OS0zLjAyLTEuMDYgYy0wLjY5LTEtMS41MS0xLjktMi40My0yLjY3QzExOS4xOSwxNS42NywxMjEuNzEsMTUuOTksMTIzLjgzLDE3LjJ6IE0xMDcuNTIsMzcuMTNjMC4wOC0wLjU4LDAuMjctMS4xMywwLjU2LTEuNjQgYzAuMDQtMC4wOCwwLjA5LTAuMTYsMC4xNi0wLjI1YzAuMTQtMC4yMSwwLjI5LTAuNDEsMC40Ni0wLjU5YzAuMDEsMC4wMiwwLjAxLDAuMDMsMC4wMiwwLjA1YzAuMTEsMC4zNiwwLjI1LDAuNywwLjQxLDEuMDIgYzAuMjMsMC40NiwwLjUzLDAuOSwwLjg3LDEuM2MwLjMxLDAuMzYsMC42NSwwLjY5LDEuMDIsMC45N2wwLDBjMC4xMywwLjA5LDAuMjIsMC4xNywwLjMyLDAuMjNjMC4xMywwLjA4LDAuMjYsMC4xNywwLjM5LDAuMjQgYzAuMDMsMC4wMiwwLjA2LDAuMDMsMC4wOCwwLjA1YzAuNDYsMS4zMywxLjI0LDIuNTMsMi4yNiwzLjVjLTAuMTEsMC4wNS0wLjIxLDAuMS0wLjMyLDAuMTRjLTEuMywwLjQ5LTIuNzQsMC4zOC0zLjk0LTAuMzEgYy0wLjY2LTAuMzgtMS4yMi0wLjkyLTEuNjItMS41NWMtMC41LTAuOC0wLjc0LTEuNzEtMC43MS0yLjdDMTA3LjQ4LDM3LjQyLDEwNy40OSwzNy4yNywxMDcuNTIsMzcuMTN6IE0xMTguMDMsMzguNiBjMC4xNS0wLjA4LDAuMjctMC4xNCwwLjM4LTAuMjFjMC44NC0wLjUsMS41NS0xLjE4LDIuMS0xLjk5YzAuMTEtMC4xNiwwLjE4LTAuMjgsMC4yNC0wLjM5YzAuMDItMC4wMywwLjAzLTAuMDUsMC4wNS0wLjA4IGMxLjMzLTAuNDYsMi41NC0xLjI0LDMuNS0yLjI2YzAuMDEsMC4wMywwLjAzLDAuMDYsMC4wNCwwLjA5YzAuMDQsMC4wOSwwLjA4LDAuMTksMC4xMSwwLjI4YzAuMjIsMC42MSwwLjMyLDEuMjQsMC4yOCwxLjg4IGMtMC4wNCwwLjcyLTAuMjUsMS4zOS0wLjYsMi4wMWMtMC45NiwxLjY3LTIuOCwyLjU3LTQuNywyLjI4Yy0wLjItMC4wMy0wLjQxLTAuMDgtMC42Ny0wLjE1Yy0wLjM1LTAuMTEtMC42OC0wLjI0LTAuOTYtMC40MSBjLTAuMDktMC4wNS0wLjE4LTAuMTEtMC4yNS0wLjE2Yy0wLjItMC4xMy0wLjQtMC4yOC0wLjU5LTAuNDZDMTE3LjMxLDM4LjkzLDExNy42OCwzOC43OCwxMTguMDMsMzguNnogTTExNi4yNSwzMC41NyBjMC4xMywwLjA4LDAuMjYsMC4xNywwLjM5LDAuMjhjMC4xMSwwLjA5LDAuMiwwLjE5LDAuMzEsMC4zMmwwLjEyLDAuMTZjMC4zMiwwLjQ2LDAuNDYsMS4wMiwwLjQyLDEuNjFjMCwwLjAzLDAsMC4wNi0wLjAxLDAuMSBjLTAuMDQsMC4zMy0wLjE0LDAuNjMtMC4zMSwwLjkyYy0wLjE2LDAuMjktMC4zOCwwLjUzLTAuNjIsMC43MmwtMC4xNCwwLjFjLTAuNDYsMC4zMi0xLjAyLDAuNDctMS41OCwwLjQyIGMtMC4wNSwwLTAuMS0wLjAxLTAuMTMtMC4wMWMtMC4zMi0wLjA0LTAuNjMtMC4xNC0wLjkyLTAuMzFjLTAuMjktMC4xNi0wLjUzLTAuMzgtMC43Mi0wLjYybC0wLjEtMC4xNCBjLTAuMzEtMC40NS0wLjQ2LTEuMDEtMC40Mi0xLjU4YzAtMC4wNSwwLjAxLTAuMSwwLjAxLTAuMTNjMC4wMy0wLjIsMC4wOC0wLjQsMC4xNi0wLjYxYzAuMDUtMC4xMiwwLjEtMC4yMiwwLjE1LTAuMzEgYzAuMDYtMC4xMSwwLjE0LTAuMjEsMC4yMy0wLjMzYzAuMTMtMC4xNiwwLjI2LTAuMjksMC4zOS0wLjM5bDAuMTQtMC4xYzAuMjItMC4xNSwwLjQ2LTAuMjYsMC43Mi0wLjMzIGMwLjIyLTAuMDYsMC40NS0wLjA5LDAuNjktMC4wOWMwLjA2LDAsMC4xMywwLDAuMiwwLjAxYzAuMDMsMCwwLjA3LDAsMC4xMSwwLjAxYzAuMDgsMC4wMSwwLjE1LDAuMDIsMC4yNCwwLjA0IEMxMTUuODEsMzAuMzYsMTE2LjA0LDMwLjQ1LDExNi4yNSwzMC41N3ogTTExOS43NiwyMy4zOGMwLjE0LDAuMDYsMC4zMSwwLjE0LDAuNDcsMC4yM2MwLjUzLDAuMywwLjk4LDAuNjksMS4zNSwxLjE3IGMwLjQzLDAuNTUsMC43MywxLjIsMC44OCwxLjg5YzAuMTIsMC41NCwwLjE0LDEuMSwwLjA2LDEuNjRjLTAuMDgsMC41OC0wLjI3LDEuMTMtMC41NywxLjY0Yy0wLjA0LDAuMDgtMC4wOSwwLjE2LTAuMTYsMC4yNSBjLTAuMTQsMC4yMS0wLjI5LDAuNDEtMC40NiwwLjU5Yy0wLjA5LTAuMy0wLjIxLTAuNi0wLjM0LTAuODhsLTAuMDktMC4xOWMtMC4yOC0wLjU1LTAuNjQtMS4wNy0xLjA3LTEuNTIgYy0wLjMzLTAuMzUtMC42OS0wLjY2LTEuMTMtMC45N2MtMC4xMy0wLjA5LTAuMjYtMC4xNy0wLjQtMC4yNWMtMC4wMy0wLjAyLTAuMDUtMC4wMy0wLjA4LTAuMDRjLTAuMDItMC4wNi0wLjA0LTAuMTItMC4wNi0wLjE4IGMtMC40Ny0xLjI2LTEuMjItMi40LTIuMTktMy4zMmMwLjQ3LTAuMjEsMC45Ny0wLjM1LDEuNDktMC40MUMxMTguMjQsMjIuOTQsMTE5LjAzLDIzLjA3LDExOS43NiwyMy4zOHogTTEwNS45MiwyNy40OSBjMC41LTAuODYsMS4yNS0xLjUzLDIuMTctMS45MmMwLjc5LTAuMzQsMS42My0wLjQ3LDIuNTItMC4zNGMwLjU4LDAuMDgsMS4xMywwLjI3LDEuNjQsMC41NmMwLjA4LDAuMDUsMC4xNywwLjEsMC4yNSwwLjE2IGMwLjIxLDAuMTQsMC40MSwwLjI5LDAuNTksMC40NmMtMC4zNywwLjExLTAuNzMsMC4yNi0xLjA3LDAuNDNjLTAuNTIsMC4yNi0xLjAyLDAuNjEtMS40NywxLjAyYy0wLjQsMC4zNy0wLjc0LDAuNzctMS4wMywxLjIgYy0wLjA3LDAuMTEtMC4xNiwwLjI1LTAuMjUsMC4zOWMtMC4wMSwwLjAzLTAuMDMsMC4wNS0wLjA0LDAuMDhjLTEuMzEsMC40Ni0yLjU0LDEuMjUtMy41MSwyLjI2IEMxMDUuMDksMzAuNDEsMTA1LjE1LDI4LjgzLDEwNS45MiwyNy40OXogTTEwNy43NSw0NS40MWMxLjgzLDEuMDUsMy45OCwxLjQsNi4wNiwwLjk5YzAuNjYtMC4xMywxLjI5LTAuMzMsMS45LTAuNmwwLjExLDAuMDkgYzAuNDUsMC4zNCwwLjkyLDAuNjUsMS4zOSwwLjkyYzEuNjEsMC45MywzLjQzLDEuNTEsNS4yOSwxLjdjLTEuMjYsMS42LTMuMDMsMi43NC01LjAzLDMuMjRjLTIuMzIsMC41OC00Ljc1LDAuMjQtNi44Mi0wLjk0IGMtMC44Ny0wLjUtMS42NS0xLjEzLTIuMzEtMS44OGMtMC41Ni0wLjYzLTEuMDItMS4zMi0xLjM5LTIuMDdjLTAuNC0wLjgxLTAuNjgtMS43MS0wLjgyLTIuNjIgQzEwNi42Myw0NC42OCwxMDcuMTcsNDUuMDgsMTA3Ljc1LDQ1LjQxeiBNMTI3LjcxLDM5Ljk5YzAuOTMtMS42MywxLjMyLTMuNTUsMS4wOS01LjQyYzAuNzktMC44MSwxLjQ4LTEuNzIsMi4wNC0yLjcgYzAuMTctMC4yOSwwLjMzLTAuNiwwLjUtMC45OGMwLjEtMC4yMiwwLjItMC40NCwwLjI5LTAuNjZjMS44NiwyLjkyLDEuOTYsNi41OCwwLjI0LDkuNTdjLTEuMDQsMS44Mi0yLjYzLDMuMi00LjU4LDMuOTggYy0wLjc1LDAuMy0xLjU0LDAuNS0yLjM1LDAuNmMtMS4wMiwwLjEyLTIuMDcsMC4wNy0zLjA3LTAuMTVDMTI0LjMsNDMuNzEsMTI2LjQ2LDQyLjE2LDEyNy43MSwzOS45OXogTTEwMS44OSw0Mi40NSBjLTAuMDIsMS4wNiwwLjA4LDIuMTEsMC4zLDMuMTRjLTAuMy0wLjEzLTAuNTktMC4yOC0wLjg3LTAuNDRjLTEuNDctMC44NC0yLjY3LTIuMDctMy40OS0zLjU1Yy0wLjQtMC43My0wLjctMS41MS0wLjg5LTIuMzIgYy0wLjU1LTIuMjgtMC4yMS00LjY4LDAuOTYtNi43NWMwLjQxLTAuNzEsMC45MS0xLjM2LDEuNDktMS45NWMwLjU0LTAuNTQsMS4xNS0xLjAxLDEuODEtMS40Yy0wLjE4LDIuNDUsMC42Nyw0Ljg1LDIuMzcsNi42NSBjLTAuMDUsMC4yMy0wLjEsMC40Ny0wLjEzLDAuN2MtMC4yMywwLjQ0LTAuNDQsMC44OC0wLjYxLDEuMzJjLTAuMjQsMC42MS0wLjQ1LDEuMjctMC42LDEuOTYgQzEwMi4wMiw0MC42OCwxMDEuOTEsNDEuNTYsMTAxLjg5LDQyLjQ1eiBNMTMyLjU4LDI0LjQ3YzEuMTctMC4yLDIuMzYtMC4zNSwzLjU0LTAuNDRjMC45OC0wLjA3LDEuOTYtMC4xLDIuOTgtMC4xIGMtMi4wNCwwLjUtNCwxLjA5LTUuODMsMS43OGMtMC4yMi0wLjIyLTAuNDQtMC40Mi0wLjY2LTAuNjJDMTMyLjYsMjQuODgsMTMyLjYsMjQuNjgsMTMyLjU4LDI0LjQ3eiIvPiA8L2c+IDwvc3ZnPg==") center/contain no-repeat
}
.empty-note,.pp-empty {
	text-align:center
}
.pp-empty .face-mark {
	width:84px;
	margin-bottom:8px
}
.empty-note p,.pp-empty p {
	margin:0
}
.nf {
	max-width:640px;
	margin:clamp(40px,8vw,110px) auto;
	text-align:center
}
.nf .eyebrow {
	justify-content:center
}
.nf .decor-nf {
	position:static;
	display:block;
	width:clamp(200px,28vw,300px);
	height:auto;
	margin:0 auto 22px
}
.nf h1 {
	font-size:clamp(28px,4vw,48px);
	line-height:1.5;
	margin-bottom:20px
}
.nf p {
	font-size:14px;
	line-height:2.1;
	color:var(--muted)
}
.nf-links {
	margin-top:22px;
	display:inline-block;
	text-align:left
}

.new-badge {
	position:absolute;
	left:12px;
	top:12px;
	z-index:3;
	display:inline-flex;
	align-items:center;
	gap:7px;
	padding:6px 16px 6px 11px;
	border-radius:99px;
	background:var(--white);
	color:var(--pine);
	font:700 13px/1.4 var(--en);
	letter-spacing:.2em;
	box-shadow:0 8px 18px -8px rgba(12,47,38,.55)
}
.nb-sprout {
	flex:none;
	width:17px;
	height:17px;
	fill:none;
	stroke:currentColor;
	stroke-width:2.4;
	stroke-linecap:round;
	stroke-linejoin:round;
	transform-origin:50% 90%;
	will-change:transform;
	animation:nb-sway 4.2s cubic-bezier(.45,.05,.55,.95) infinite
}
.nb-text {
	display:inline-block;
	will-change:transform;
	animation:nb-bob 4.2s cubic-bezier(.45,.05,.55,.95) infinite
}
/* transform only (no letter-spacing / layout changes), long smooth easing, same period for both so they move as one */
@keyframes nb-sway {
	0%,100% {
		transform:rotate(-6deg)
	}
	50% {
		transform:rotate(6deg)
	}
}
@keyframes nb-bob {
	0%,100% {
		transform:translate3d(0,0,0)
	}
	50% {
		transform:translate3d(2px,0,0)
	}
}
.gallery-main .new-badge {
	left:18px;
	top:18px;
	font-size:14px;
	padding:7px 18px 7px 13px
}
.gallery-main .nb-sprout {
	width:19px;
	height:19px
}
@media(max-width:560px) {
	.new-badge {
		left:8px;
		top:8px;
		font-size:11px;
		padding:4px 12px 4px 8px;
		gap:5px
	}
	.nb-sprout {
		width:14px;
		height:14px
	}
	.gallery-main .new-badge {
		left:10px;
		top:10px;
		font-size:12px
	}
}
@media(prefers-reduced-motion:reduce) {
	.nb-sprout,.nb-text {
		animation:none
	}
}

.hotel-info {
	margin:0 0 clamp(16px,2.2vw,26px);
	padding:clamp(20px,2.6vw,30px);
	background:#eef3e6;
	border:1px solid #d3dfc7;
	border-radius:6px 32px 6px 6px
}
.hotel-info>h3 {
	margin-bottom:clamp(14px,1.8vw,20px);
	font:500 13px/1.6 var(--sans);
	letter-spacing:.16em;
	color:var(--pine)
}
.hi-foot {
	display:flex;
	align-items:center;
	gap:12px;
	margin:clamp(16px,2vw,22px) 0 0;
	padding-top:clamp(14px,1.8vw,18px);
	border-top:1px solid #d3dfc7;
	font-size:13.5px;
	line-height:1.9
}
.hi-foot b {
	font-weight:500;
	color:var(--pine)
}
.hi-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:clamp(16px,2.4vw,32px)
}
.hi-item {
	display:flex;
	gap:14px;
	align-items:flex-start;
	position:relative
}
.hi-item+.hi-item::before {
	content:"";
	position:absolute;
	left:calc(clamp(16px,2.4vw,32px) / -2);
	top:4px;
	bottom:4px;
	width:1px;
	background:rgba(20,71,58,.18)
}
.hi-ico {
	flex:none;
	display:grid;
	place-items:center;
	width:40px;
	height:40px;
	border-radius:50%;
	background:var(--pine);
	color:#fff;
	font-size:22px
}
.hi-item h3 {
	margin:0 0 4px;
	font:500 15px/1.6 var(--serif);
	letter-spacing:.06em
}
.hi-item p {
	margin:0;
	font-size:13px;
	line-height:1.95
}
.hi-item .text-link {
	margin-top:2px;
	font-size:12px
}
@media(max-width:960px) {
	.hi-grid {
		grid-template-columns:1fr
	}
	.hi-item+.hi-item::before {
		left:0;
		right:0;
		top:calc(clamp(16px,2.4vw,32px) / -2);
		bottom:auto;
		width:auto;
		height:1px
	}
}

/* ---- warranty page ---- */
.warranty {
	padding-top:0
}
.wp-block {
	position:relative;
	padding-block:clamp(34px,5vw,64px)
}
.wp-block h2 {
	font-size:clamp(24px,2.8vw,36px);
	margin-bottom:clamp(18px,2.4vw,28px)
}
.wp-plans {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:clamp(12px,1.8vw,22px)
}
.wp-plan {
	padding:24px 24px 22px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 32px 6px 6px
}
.wp-plan h3 {
	font-size:clamp(19px,1.8vw,24px);
	margin-bottom:8px
}
.wp-fee {
	margin:0 0 14px;
	font-size:13px;
	line-height:1.9;
	color:var(--muted)
}
.wp-period {
	margin:0;
	display:flex;
	align-items:baseline;
	gap:12px;
	padding-top:12px;
	border-top:1px dashed var(--line-strong)
}
.wp-period span {
	font-size:11.5px;
	letter-spacing:.14em;
	color:var(--muted)
}
.wp-period b {
	font:500 clamp(28px,3vw,38px)/1 var(--serif);
	color:var(--pine);
	font-variant-numeric:lining-nums
}
.wp-benefit {
	margin-top:clamp(14px,2vw,22px);
	padding:clamp(22px,3vw,34px);
	background:var(--pine);
	color:#fff;
	border-radius:6px 44px 6px 6px
}
.wp-benefit-label {
	display:block;
	margin-bottom:8px;
	font:500 12px/1.6 var(--sans);
	letter-spacing:.2em;
	color:#e6c996
}
.wp-benefit-main {
	margin:0 0 12px;
	font:500 clamp(22px,2.8vw,34px)/1.5 var(--serif);
	letter-spacing:.04em
}
.wp-benefit p:last-child {
	margin:0;
	font-size:13px;
	line-height:2;
	opacity:.85
}
.wp-tags {
	display:flex;
	flex-wrap:wrap;
	gap:10px
}
.wp-tags li {
	padding:6px 18px;
	background:var(--white);
	border:1px solid var(--line-strong);
	border-radius:99px;
	font-size:13.5px;
	line-height:1.7
}
.wp-excl {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:clamp(10px,1.4vw,16px);
	counter-reset:ex
}
.wp-excl li {
	display:flex;
	gap:16px;
	align-items:flex-start;
	padding:18px 20px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 22px 6px 6px
}
.ex-no {
	flex:none;
	display:grid;
	place-items:center;
	width:34px;
	height:34px;
	border-radius:50%;
	background:var(--sage);
	color:var(--pine);
	font:italic 500 17px/1 var(--en)
}
.wp-excl p {
	margin:0;
	font-size:13.5px;
	line-height:2
}
.wp-notes {
	margin-top:clamp(16px,2vw,24px);
	display:grid;
	gap:4px;
	font-size:13px;
	line-height:1.95;
	color:var(--muted)
}
@media(max-width:960px) {
	.wp-plans {
		grid-template-columns:1fr
	}
	.wp-excl {
		grid-template-columns:1fr
	}
}

.rest-inset {
	position:absolute
}

/* ---- notices ---- */
.member-benefit {
	display:flex;
	gap:12px;
	align-items:flex-start;
	margin:0 0 18px;
	padding:12px 14px;
	background:#eef3e6;
	border-radius:6px 18px 6px 6px;
	font-size:12.5px;
	line-height:1.8;
	color:var(--ink)
}
.member-benefit .member-ico {
	width:28px;
	height:28px;
	font-size:17px;
	margin-top:1px
}
.member-benefit b {
	color:var(--pine)
}
.member-benefit a {
	margin-left:8px;
	color:var(--pine);
	text-decoration:underline;
	text-underline-offset:4px;
	white-space:nowrap
}
.cost-summary .member-benefit {
	background:rgba(255,255,255,.1);
	color:#fff
}
.cost-summary .member-benefit b,.cost-summary .member-benefit a {
	color:#f1deb9
}
.cost-summary .member-benefit .member-ico {
	background:#e6c996;
	color:var(--pine)
}
.cost-inquiry .member-benefit {
	margin:16px 0 0
}
.member-ico {
	flex:none;
	display:grid;
	place-items:center;
	width:34px;
	height:34px;
	border-radius:50%;
	background:var(--pine);
	color:#fff;
	font-size:21px
}
.notice {
	display:flex;
	gap:16px;
	align-items:flex-start;
	margin:0 0 clamp(14px,2vw,24px);
	padding:18px 22px;
	background:#f6ecd8;
	border:1px solid #e3cf9f;
	border-radius:6px 28px 6px 6px
}
.notice-ico {
	flex:none;
	display:grid;
	place-items:center;
	width:34px;
	height:34px;
	border-radius:50%;
	background:#b58545;
	color:#fff;
	font-size:22px
}
.notice p {
	margin:0;
	font-size:13.5px;
	line-height:1.9
}
.notice-title {
	font:500 13px/1.6 var(--sans)!important;
	letter-spacing:.14em;
	color:#8a6230;
	margin-bottom:4px!important
}
.notice .store-tag {
	margin-right:10px;
	vertical-align:1px
}
.notice-sub {
	margin-top:4px!important;
	font-size:12px!important;
	color:var(--muted)
}
.store-note {
	margin:14px 0 4px!important;
	padding:12px 16px;
	background:#f6ecd8;
	border-left:3px solid #b58545;
	border-radius:0 6px 6px 0;
	font-size:12.5px!important;
	line-height:1.8
}
.store-note b {
	display:block;
	margin-bottom:2px;
	font-size:11.5px;
	letter-spacing:.14em;
	color:#8a6230
}
.service-card .locations.loc-note {
	margin-top:-14px;
	color:#8a6230
}
@media(max-width:560px) {
	.notice {
		padding:16px 16px;
		gap:12px
	}
	.notice .store-tag {
		display:flex;
		width:max-content;
		margin:0 0 8px
	}
}

/* ---- parallax (scroll-driven, progressive) ---------------------------------------------------- */
@supports (animation-timeline:view()) {
	.parallax>img {
		animation:parallax linear both;
		animation-timeline:view();
		animation-range:cover 0% cover 100%
	}
	@keyframes parallax {
		from {
			transform:translateY(-5%) scale(1.10)
		}
		to {
			transform:translateY(5%) scale(1.10)
		}
	}
	/* 拡大率は 1+2×ずれ幅 以上にする(足りないと、端に下地が見える) */
	.js .parallax.frame>img,.js .in .parallax.frame>img {
		transition:none
	}
	.hero-photo {
		animation:hero-par linear both;
		animation-timeline:scroll(root);
		animation-range:0 90vh
	}
	@keyframes hero-par {
		to {
			transform:translateY(5%) scale(1.10)
		}
	}
	.badge {
		animation:badge-par linear both;
		animation-timeline:scroll(root);
		animation-range:0 90vh
	}
	@keyframes badge-par {
		to {
			transform:translateY(-60px)
		}
	}
}

/* ---- ページ移動の切り替え(クロスページ・トランジション)は使わない ---------------------------------
   使うと、iPhoneのSafariで、ページ移動のときだけ、見出しの「下から出る」動きが2回再生されて見えた
   (更新では1回、リンクで移動すると2回)。各ページの見出し・ブロックの動きだけにしてある。 */

/* ---- responsive ------------------------------------------------------------------------------------- */
@media(min-width:1700px) {
	body {
		font-size:16px
	}
	.wrap,.header-inner {
		max-width:1480px
	}
}
@media(max-width:1180px) {
	.finder-grid {
		grid-template-columns:repeat(3,minmax(0,1fr))
	}
	.puppy-grid {
		grid-template-columns:repeat(3,minmax(0,1fr))
	}
	.store-row {
		grid-template-columns:160px minmax(0,1fr) 190px
	}
	.store-row .store-tel {
		grid-column:1/-1
	}
}
@media(max-width:1180px) {
	:root {
		--header:70px
	}
	.desktop-nav {
		display:none
	}
	.header-inner>.invite {
		margin-left:auto
	}
	.mobile-menu {
		display:block
	}
	.brand {
		width:164px
	}
}
@media(max-width:960px) {
	.gallery {
		max-width:720px
	}
	.support {
		padding-bottom:clamp(110px,18vw,140px)
	}
	/* the small dog sits below the last step, not on it */
	.finder {
		margin-top:0;
		padding-top:clamp(50px,8vw,80px)
	}
	.side-note,.rest-inset figcaption {
		display:none
	}
	.detail-store {
		grid-template-columns:1fr
	}
	.detail-store .store-frame {
		order:-1;
		min-height:0;
		aspect-ratio:1.6
	}
	.hero-inner {
		grid-template-columns:1fr;
		gap:56px
	}
	.hero-frame {
		height:clamp(320px,56vw,520px)
	}
	.hero h1 {
		font-size:clamp(38px,8.2vw,72px)
	}
	.rest-inset {
		left:-2%
	}
	.side-note {
		bottom:-40px
	}
	.daily-layout {
		grid-template-columns:1fr
	}
	.daily-sticky {
		position:static
	}
	.daily-card:nth-child(n) {
		margin-inline:0
	}
	.support-inner {
		grid-template-columns:1fr
	}
	.support-frame {
		aspect-ratio:1.4;
		border-radius:6px 90px 6px 6px
	}
	.service-grid {
		grid-template-columns:1fr 1fr
	}
	.service-slot:last-child {
		grid-column:1/-1
	}
	.service-slot:last-child .service-card {
		flex-direction:row
	}
	.service-slot:last-child .service-card .frame {
		aspect-ratio:auto;
		flex:0 0 46%
	}
	.quiet-values {
		grid-template-columns:1fr;
		gap:14px
	}
	.visit-inner {
		grid-template-columns:1fr;
		gap:30px;
		padding-left:var(--gutter)
	}
	.visit-decoration {
		position:relative;
		width:100%;
		height:110px
	}
	.botanical-visit {
		left:-20px;
		top:0;
		width:150px
	}
	.visit-decoration .handwritten {
		left:120px;
		top:24px
	}
	.visit-action {
		justify-self:start
	}
	.page-hero.with-photo {
		grid-template-columns:1fr
	}
	.page-hero-frame {
		height:clamp(260px,50vw,400px);
		border-radius:6px 120px 6px 6px
	}
	.article-layout {
		grid-template-columns:1fr
	}
	.toc {
		position:static;
		flex-direction:row;
		flex-wrap:wrap;
		gap:4px 18px;
		padding:18px 0
	}
	.toc-title {
		width:100%
	}
	.detail-layout {
		grid-template-columns:1fr
	}
	.detail-figure {
		position:static
	}
	.directory-store,.directory-store:nth-of-type(even) {
		grid-template-columns:1fr;
		grid-template-areas:"main" "frame" "info";
		gap:20px
	}
	.directory-store .store-frame {
		min-height:0;
		border-radius:6px 90px 6px 6px!important
	}
	.dogrun-intro {
		grid-template-columns:1fr
	}
	.footer-main {
		flex-direction:column;
		align-items:flex-start
	}
	.footer-nav {
		justify-content:flex-start
	}
}
@media(max-width:760px) {
	:root {
		--header:64px
	}
	body {
		font-size:14px
	}
	.sp {
		display:inline
	}
	.header-inner {
		gap:10px
	}
	.brand {
		width:140px
	}
	.header-inner>.invite.compact {
		padding:7px 7px 7px 16px;
		gap:10px;
		min-height:40px
	}
	.compact .invite-main {
		font-size:12px;
		letter-spacing:.06em
	}
	.compact .arrow {
		width:26px;
		height:26px
	}
	.hero {
		padding-top:18px;
		padding-bottom:84px
	}
	.kicker {
		font-size:12px;
		margin-bottom:18px
	}
	.hero h1 {
		font-size:clamp(34px,9.6vw,46px)
	}
	.hero-cta .invite {
		min-width:0;
		width:100%;
		max-width:340px;
		min-height:72px
	}
	.hero-cta .invite-main {
		font-size:20px
	}
	.hero-frame {
		height:auto;
		aspect-ratio:1.18;
		border-radius:6px 150px 150px 6px
	}
	.js .hero-frame {
		clip-path:inset(0 100% 0 0 round 6px 150px 150px 6px)
	}
	.js.is-loaded .hero-frame {
		clip-path:inset(0 0 0 0 round 6px 150px 150px 6px)
	}
	.rest-inset {
		width:36%;
		bottom:-8%
	}
	.rest-inset figcaption {
		display:none
	}
	.badge {
		right:0;
		top:-10%;
		width:118px
	}
	.badge text {
		font-size:14px
	}
	.side-note {
		display:none
	}
	.scroll-cue {
		display:none
	}
	.finder {
		margin-top:-30px
	}
	.finder-grid {
		grid-template-columns:1fr 1fr;
		gap:10px
	}
	.finder-tile {
		min-height:158px;
		padding:16px 15px
	}
	.finder-icon {
		font-size:34px
	}
	.finder-label {
		font-size:16px;
		margin-top:16px
	}
	.finder-sub {
		font-size:10.5px
	}
	.growing-head {
		flex-direction:column;
		align-items:flex-start;
		gap:20px
	}
	.growing-side {
		flex-direction:row;
		align-items:center;
		justify-content:space-between;
		width:100%
	}
	.pup-slide {
		flex-basis:62vw
	}
	.carousel-ctl {
		display:none
	}
	.growing-side {
		justify-content:flex-start
	}
	.botanical-growing {
		width:104px;
		height:104px;
		right:-30px;
		top:-22px
	}
	.daily-card .frame,.daily-card:nth-child(2) .frame {
		aspect-ratio:1.2;
		border-radius:6px 70px 6px 6px
	}
	.daily-card figcaption {
		gap:14px
	}
	.support-frame {
		border-radius:6px 64px 6px 6px;
		aspect-ratio:1.2
	}
	.support-photo-note {
		left:18px;
		bottom:16px;
		font-size:12px
	}
	.steps-line {
		display:none
	}
	.steps {
		grid-template-columns:1fr;
		gap:34px;
		padding:0 0 0 30px;
		position:relative;
		border-left:1px solid rgba(217,178,122,.55);
		margin-left:6px
	}
	.steps::after {
		content:"";
		position:absolute;
		left:-7px;
		top:calc(var(--p,0) * (100% - 13px));
		width:13px;
		height:13px;
		border-radius:50%;
		background:#fff1cf;
		box-shadow:0 0 0 6px rgba(230,201,150,.3);
		opacity:var(--o,0)
	}
	.step-dot {
		display:block;
		left:-37px;
		top:10px
	}
	.step-no {
		font-size:36px
	}
	.step.lit .step-no,.step.lit h3 {
		transform:none;
		text-shadow:none
	}
	.service-grid {
		grid-template-columns:1fr
	}
	.service-slot:last-child .service-card {
		flex-direction:column
	}
	.service-slot:last-child .service-card .frame {
		aspect-ratio:1.4;
		flex:none
	}
	.store-row {
		grid-template-columns:1fr;
		gap:12px;
		padding:22px 0
	}
	.store-row:hover {
		padding-inline:0;
		background:none
	}
	.stores-head {
		flex-direction:column;
		align-items:flex-start
	}
	.legal-title {
		flex-direction:column;
		gap:6px
	}
	.footer-bottom {
		flex-direction:column;
		align-items:flex-start;
		gap:12px
	}
	.page-hero h1 {
		font-size:clamp(32px,9vw,44px)
	}
	.page-hero p {
		font-size:13.5px
	}
	.text-blocks {
		grid-template-columns:1fr
	}
	.break {
		aspect-ratio:1.5;
		border-radius:6px 70px 6px 6px
	}
	.callout {
		border-radius:6px 50px 6px 6px
	}
	.puppy-toolbar {
		display:block
	}
	.puppy-toolbar p {
		margin-top:8px
	}
	.filters {
		padding:18px 16px
	}
	.filter-group {
		grid-template-columns:1fr;
		gap:6px
	}
	.filter-group legend {
		float:none;
		width:auto;
		line-height:1.6
	}
	.chip-row {
		grid-column:1
	}
	.puppy-grid {
		grid-template-columns:1fr 1fr;
		gap:30px 14px
	}
	.puppy-card .frame {
		border-radius:6px 24px 6px 6px
	}
	.puppy-title {
		display:block;
		margin-top:12px
	}
	.puppy-title h3 {
		font-size:17px
	}
	.puppy-price {
		font-size:12px;
		align-items:flex-start
	}
	.puppy-badge {
		left:8px;
		bottom:8px;
		font-size:11px;
		padding:3px 10px 3px 8px
	}
	.puppy-badge .ico {
		font-size:13px
	}
	.store-info dl>div {
		gap:14px
	}
	.tel-btn {
		font-size:20px
	}
	.directory-nav {
		flex-wrap:nowrap;
		overflow-x:auto;
		scrollbar-width:none
	}
	.directory-nav a {
		flex:none
	}
}
@media(max-width:420px) {
	.brand {
		width:112px
	}
	.header-inner {
		gap:6px;
		padding-inline:14px
	}
	.header-inner>.invite.compact {
		padding:7px 7px 7px 13px;
		gap:8px
	}
	.compact .arrow {
		width:24px;
		height:24px
	}
	.compact .invite-main {
		font-size:11.5px;
		letter-spacing:.04em
	}
	.finder-grid {
		gap:8px
	}
	.puppy-grid {
		gap:26px 10px
	}
}

/* ---- reduced motion & print --------------------------------------------------------------------------- */
@media(prefers-reduced-motion:reduce) {
	html {
		scroll-behavior:auto
	}
	*,*::before,*::after {
		animation:none!important;
		transition:none!important
	}
	.js .decor,
	.js .reveal,
	.js .line>span,
	.js .frame,
	.js .frame>img,
	.js .hero-frame,
	.js .hero-intro,
	.js .hero-cta,
	.js .kicker,
	.js .hero-copy>.text-link,
	.js .rest-inset {
		opacity:1!important;
		transform:none!important;
		clip-path:none!important
	}
	.draw path,.hero-trail path,.mark path {
		stroke-dashoffset:0!important
	}
	.vine .lf path {
		transform:scale(1)!important
	}
	.marquee-track {
		animation:none
	}
	.mobile-menu .menu-panel a {
		opacity:1!important;
		transform:none!important
	}
	.steps-line .ball {
		opacity:1!important
	}
	.js .botanical .stem {
		stroke-dashoffset:0!important
	}
	.js .prose section::before,
	.js .related-stores::before,
	.js .detail-story::before,
	.js .detail-cost::before,
	.js .hotel-stores::before,
	.js .price-section::before {
		clip-path:none!important
	}
	.marquee {
		overflow-x:auto
	}
}
@media print {
	.site-header {
		position:static
	}
	.mobile-menu,.skip-link,.marquee,.scroll-cue {
		display:none
	}
	.js .reveal,.js .frame {
		opacity:1;
		transform:none;
		clip-path:none
	}
	body {
		background:#fff
	}
	.footer {
		background:#fff;
		color:#000
	}
	.footer-brand img {
		filter:none
	}
}

/* ドッグランの料金 */
.dogrun-fee {
	margin:16px 0 14px;
	padding:14px 16px 12px;
	background:#eef3e6;
	border-radius:6px 22px 6px 6px
}
.dogrun-fee h4 {
	font:500 13px/1.6 var(--sans);
	letter-spacing:.14em;
	color:var(--pine);
	margin:0 0 6px
}
.dogrun-fee h4 small {
	margin-left:.6em;
	font-size:11px;
	color:var(--muted);
	letter-spacing:.06em
}
.dogrun-fee dl {
	margin:0;
	display:grid;
	gap:4px
}
.dogrun-fee dl div {
	display:flex;
	justify-content:space-between;
	align-items:baseline;
	gap:12px;
	font-size:13.5px;
	padding:4px 0;
	border-bottom:1px dotted var(--line-strong)
}
.dogrun-fee dd {
	margin:0;
	font:500 17px var(--sans);
	color:var(--pine)
}
.closed-note {
	display:block;
	margin-top:2px;
	font-size:12px;
	color:var(--muted);
	line-height:1.8
}
.dogrun-fee.dogrun-operator p {
	margin:0 0 10px;
	font-size:13.5px;
	line-height:1.9;
	color:var(--ink)
}
.dogrun-use {
	margin:0 0 14px;
	font-size:13px;
	line-height:1.9
}
.dogrun-fee p {
	margin:8px 0 0;
	font-size:12px;
	color:var(--muted)
}

/* 社会化の時期の目安 */
.soc-period-grid {
	list-style:none;
	margin:26px 0 0;
	padding:0;
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:clamp(12px,1.8vw,22px)
}
.soc-period-grid li {
	padding:24px 24px 22px;
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 32px 6px 6px
}
.soc-period-grid li:first-child {
	background:#eef3e6
}
.sp-when {
	display:inline-block;
	padding:3px 14px;
	border-radius:99px;
	background:var(--pine);
	color:#fff;
	font-size:12px;
	letter-spacing:.12em
}
.soc-period-grid h3 {
	font:500 clamp(19px,1.8vw,24px)/1.5 var(--serif);
	margin:12px 0 6px
}
.soc-period-grid p {
	margin:0;
	font-size:14px;
	line-height:2
}
.soc-period .reference-note {
	margin-top:14px
}
@media(max-width:760px) {
	.soc-period-grid {
		grid-template-columns:1fr
	}
}

/* Instagramへのリンク */
.sns-link {
	display:inline-flex;
	align-items:center;
	gap:8px;
	font-size:13px;
	letter-spacing:.06em;
	color:var(--pine);
	border-bottom:1px solid var(--line-strong);
	padding:2px 0 3px;
	transition:color .3s,border-color .3s
}
.sns-link:hover {
	color:var(--gold);
	border-color:var(--gold)
}
.sns-ico {
	display:inline-grid;
	place-items:center;
	width:20px;
	height:20px;
	flex:none
}
.sns-ico svg {
	width:100%;
	height:100%;
	fill:none;
	stroke:currentColor;
	stroke-width:3;
	stroke-linecap:round;
	stroke-linejoin:round
}
.sns-ext {
	font-size:11px;
	opacity:.7
}
.store-sns {
	margin-top:12px
}
.closed-note a {
	color:var(--pine);
	border-bottom:1px solid var(--line-strong)
}
.footer-sns {
	margin-top:clamp(26px,3vw,40px);
	padding-top:clamp(18px,2vw,24px);
	border-top:1px solid rgba(255,255,255,.14);
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:10px 22px
}
.footer-sns-title {
	font-size:12px;
	letter-spacing:.16em;
	color:rgba(255,255,255,.6)
}
.footer-sns ul {
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	flex-wrap:wrap;
	gap:8px 18px
}
.footer-sns a {
	display:inline-flex;
	align-items:center;
	gap:7px;
	color:#fff;
	font-size:13px;
	letter-spacing:.06em;
	opacity:.9;
	transition:opacity .3s,color .3s
}
.footer-sns a:hover {
	opacity:1;
	color:#e6c996
}

/* お客様の声(質問ごとに表示するカード) */
.voice-grid.single {
	grid-template-columns:minmax(0,820px)
}
.voice-grid.single .voice,.voice-grid.multi .voice {
	padding:clamp(24px,3vw,36px)
}
.voice-grid.single figcaption,.voice-grid.multi figcaption {
	margin-top:22px;
	padding-top:16px;
	border-top:1px solid var(--line)
}
.voice-grid.multi {
	grid-template-columns:repeat(2,minmax(0,1fr));
	align-items:start
}
@media(max-width:960px) {
	.voice-grid.multi {
		grid-template-columns:1fr
	}
}

/* 卒業した子たち(アルバム) */
.grad-tile {
	font:inherit;
	color:inherit;
	text-align:left;
	background:none;
	border:0;
	padding:0;
	cursor:zoom-in;
	width:100%
}
.grad-tile .frame {
	aspect-ratio:1;
	position:relative
}
.lightbox {
	border:0;
	padding:0;
	background:transparent;
	max-width:none;
	max-height:none;
	width:100%;
	height:100dvh;
	color:#fff;
	box-sizing:border-box
}
/* 100vw だと、縦スクロールバーの幅だけ、右にはみ出す */
.lightbox[open] {
	display:grid;
	grid-template-columns:56px minmax(0,1fr) 56px;
	align-items:center;
	justify-items:center
}
.lightbox::backdrop {
	background:rgba(10,36,29,.92)
}
.lightbox figure {
	margin:0;
	display:grid;
	gap:12px;
	justify-items:center;
	max-width:min(92vw,980px)
}
.lightbox img {
	width:auto;
	height:auto;
	max-width:100%;
	max-height:78dvh;
	border-radius:6px 40px 6px 6px;
	box-shadow:0 30px 60px -30px rgba(0,0,0,.6)
}
.lightbox figcaption {
	font:500 14px/1.8 var(--sans);
	letter-spacing:.08em
}
.lightbox button {
	font:300 34px/1 var(--sans);
	color:#fff;
	background:rgba(255,255,255,.12);
	border:1px solid rgba(255,255,255,.3);
	width:44px;
	height:44px;
	border-radius:50%;
	cursor:pointer;
	transition:background .3s
}
.lightbox button:hover {
	background:rgba(255,255,255,.28)
}
.lb-close {
	position:fixed;
	right:16px;
	top:16px;
	font-size:26px!important
}
@media(max-width:640px) {
	.lightbox[open] {
		grid-template-columns:44px minmax(0,1fr) 44px
	}
	.lightbox button {
		width:38px;
		height:38px;
		font-size:28px
	}
}

/* 拡大画面の、この子の写真の一覧 */
.lb-thumbs {
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	gap:8px;
	flex-wrap:wrap;
	justify-content:center
}
.lb-thumbs:empty {
	display:none
}
.lb-thumbs button {
	width:56px;
	height:56px;
	padding:0;
	border-radius:8px!important;
	overflow:hidden;
	opacity:.6;
	transition:opacity .3s,transform .3s
}
.lb-thumbs button[aria-current=true] {
	opacity:1;
	outline:2px solid #e6c996;
	outline-offset:2px
}
.lb-thumbs button:hover {
	opacity:1
}
.lb-thumbs img {
	width:100%;
	height:100%;
	max-height:none;
	object-fit:cover;
	border-radius:0;
	box-shadow:none
}

/* ---- 卒業した子たち: 見出しの写真の重なり・月ごとの区切り・小さな絞り込み ------------------------------ */
.grad-hero {
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(280px,460px);
	gap:clamp(24px,4vw,64px);
	align-items:center;
	padding-bottom:clamp(36px,5vw,64px)
}
.grad-hero-copy {
	position:relative
}
.grad-collage {
	position:relative;
	height:clamp(250px,30vw,380px)
}
.grad-collage img {
	position:absolute;
	width:46%;
	aspect-ratio:1;
	object-fit:cover;
	border:6px solid var(--paper);
	border-radius:6px 36px 6px 6px;
	box-shadow:0 22px 34px -22px rgba(12,47,38,.55);
	background:#e4e9da
}
.grad-collage img:nth-child(1) {
	left:2%;
	top:6%;
	transform:rotate(-5deg);
	z-index:2
}
.grad-collage img:nth-child(2) {
	right:2%;
	top:0;
	transform:rotate(4deg);
	z-index:1
}
.grad-collage img:nth-child(3) {
	left:14%;
	bottom:0;
	transform:rotate(3deg);
	z-index:3
}
.grad-collage img:nth-child(4) {
	right:0;
	bottom:6%;
	transform:rotate(-3deg);
	z-index:2
}
@media(max-width:960px) {
	.grad-hero {
		grid-template-columns:1fr
	}
	.grad-collage {
		height:clamp(220px,52vw,320px);
		max-width:520px;
		margin-inline:auto;
		width:100%
	}
}
.grad-content .puppy-toolbar {
	margin-top:clamp(8px,2vw,24px)
}
.grad-filters {
	padding:0;
	margin:0 0 clamp(26px,3vw,40px);
	background:none;
	border:0;
	border-radius:0;
	gap:10px
}
.grad-filters .filter-group {
	grid-template-columns:3.4em 1fr;
	gap:8px;
	align-items:center
}
.grad-filters .filter-group legend {
	width:3.4em;
	line-height:1.6
}
.grad-filters .chip {
	min-height:30px;
	padding:3px 13px;
	font-size:12.5px
}
.grad-filters .filter-status {
	margin-top:2px
}
@media(max-width:760px) {
	.grad-filters .filter-group {
		grid-template-columns:1fr;
		gap:4px;
		align-items:start
	}
	.grad-filters .filter-group legend {
		width:auto
	}
	.grad-filters .chip-row {
		grid-column:1
	}
}
/* スマホ: 見出しをボタンの上に。(2列のままだと、ボタンが細い左の列に押し込まれる) */
@media(max-width:700px) {
	.grad-filters .chip-row {
		flex-wrap:nowrap;
		overflow-x:auto;
		padding-bottom:4px;
		scrollbar-width:none
	}
	.grad-filters .chip-row::-webkit-scrollbar {
		display:none
	}
	.grad-filters .chip {
		flex:none
	}
}
.grad-month+.grad-month {
	margin-top:clamp(40px,5vw,72px)
}
.grad-month>h3 {
	display:flex;
	align-items:baseline;
	gap:8px;
	margin:0 0 clamp(18px,2.4vw,28px);
	padding-bottom:12px;
	border-bottom:1px solid var(--line);
	font:400 14px/1.6 var(--sans);
	letter-spacing:.14em;
	color:var(--muted)
}
.grad-month>h3 span {
	font:500 clamp(22px,2.4vw,30px)/1.3 var(--serif);
	letter-spacing:.06em;
	color:var(--pine)
}
.grad-month[hidden] {
	display:none
}

/* ---- トップの入口(卒業した子たち) ---- */
.grad-teaser {
	display:grid;
	grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
	gap:clamp(24px,4vw,64px);
	align-items:center;
	margin-top:clamp(48px,6vw,88px)
}
.grad-teaser-photos {
	display:flex;
	min-width:0;
	padding-left:clamp(10px,2vw,28px)
}
.grad-teaser-photos img {
	flex:1 1 0;
	min-width:0;
	max-width:150px;
	width:auto;
	aspect-ratio:1;
	object-fit:cover;
	border:5px solid var(--paper);
	border-radius:6px 28px 6px 6px;
	margin-left:clamp(-34px,-3vw,-16px);
	box-shadow:0 16px 26px -18px rgba(12,47,38,.55);
	transition:transform .6s var(--ease)
}
.grad-teaser-photos img:nth-child(odd) {
	transform:rotate(-3deg)
}
.grad-teaser-photos img:nth-child(even) {
	transform:rotate(3deg) translateY(10px)
}
.grad-teaser-photos:hover img {
	transform:rotate(0) translateY(-4px)
}
.grad-teaser-copy h3 {
	font-size:clamp(20px,2vw,26px);
	margin:0 0 10px
}
.grad-teaser-copy p {
	font-size:14px;
	margin:0 0 14px
}
@media(max-width:820px) {
	.grad-teaser {
		grid-template-columns:1fr
	}
	.grad-teaser-photos {
		justify-content:center;
		padding-left:34px
	}
}
.voice-more {
	margin:26px 0 0
}

/* 卒業した子たち: 『すでにご家族が決まっています』と、はっきり分かるように */
.grad-badge {
	position:absolute;
	left:0;
	top:12px;
	z-index:3;
	width:138px;
	height:30px;
	padding:0 0 0 14px;
	display:flex;
	align-items:center;
	filter:drop-shadow(0 5px 7px rgba(12,47,38,.26))
}
/* 線で描いたリボン。英語だけ(日本語は写真の下) */
.grad-ribbon {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	z-index:-1;
	overflow:visible
}
.gb-en {
	display:block;
	font:italic 600 13px/1 var(--en);
	letter-spacing:.14em;
	color:#8a6230;
	margin-top:-1px
}
.grad-state {
	display:inline-block;
	margin-top:8px;
	padding:2px 12px;
	border:1px solid #b58545;
	border-radius:99px;
	font:500 11.5px/1.7 var(--sans);
	letter-spacing:.2em;
	color:#8a6230
}
@media(max-width:560px) {
	.grad-badge {
		transform:scale(.88);
		transform-origin:left top
	}
}
.lb-note {
	margin:0;
	padding:3px 14px;
	border-radius:99px;
	background:rgba(255,253,246,.16);
	border:1px solid rgba(255,255,255,.4);
	color:#fff;
	font:500 12.5px/1.7 var(--sans);
	letter-spacing:.1em
}

.lb-note i {
	font:italic 500 13px/1 var(--en);
	letter-spacing:.12em;
	color:#e6c996;
	margin-right:.9em
}

/* ---- 卒業した子たち: 並べ替え・表示件数・ページ番号 ---- */
.grad-controls {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:10px 22px;
	margin:0 0 clamp(20px,2.4vw,32px);
	padding:12px 0;
	border-block:1px solid var(--line)
}
.grad-select {
	display:inline-flex;
	align-items:center;
	gap:8px;
	font-size:12.5px;
	color:var(--muted);
	letter-spacing:.08em
}
.grad-select select {
	appearance:none;
	-webkit-appearance:none;
	font:500 14px var(--sans);
	padding:6px 34px 6px 14px;
	border:1px solid var(--line-strong);
	border-radius:99px;
	color:var(--pine);
	cursor:pointer;
	background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2314473a' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center
}
.grad-count {
	margin:0 0 0 auto;
	font-size:13px;
	color:var(--muted)
}
.grad-count b {
	font:500 24px/1 var(--serif);
	color:var(--pine);
	margin-right:2px
}
.grad-controls .filter-reset {
	font-size:12.5px
}
@media(max-width:640px) {
	.grad-count {
		margin-left:0;
		width:100%
	}
}
.pager {
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	align-items:center;
	gap:8px;
	margin:clamp(34px,4vw,56px) 0 0
}
.pager button {
	min-width:42px;
	height:42px;
	padding:0 12px;
	border:1px solid var(--line-strong);
	border-radius:99px;
	background:#fff;
	color:var(--pine);
	font:500 14px var(--sans);
	cursor:pointer;
	transition:background .3s,color .3s,border-color .3s
}
.pager button:hover:not([disabled]) {
	border-color:var(--pine)
}
.pager button[aria-current=page] {
	background:var(--pine);
	border-color:var(--pine);
	color:#fff;
	cursor:default
}
.pager button[disabled] {
	opacity:.35;
	cursor:default
}
.pager-gap {
	color:var(--muted)
}
.grad-list:empty {
	display:none
}

/* トリミングの料金の見出しに座る、ビションフリーゼ */
.trim-price .price-head {
	position:relative
}
.decor.decor-trim-price {
	width:clamp(96px,10vw,140px);
	right:clamp(0px,2vw,24px);
	bottom:calc(var(--gap, 0px) - 26px);
	animation:none
}
@media(max-width:760px) {
	.decor.decor-trim-price {
		width:92px;
		right:0;
		bottom:auto;
		top:-26px
	}
}

/* ---- お客様の声: 抜き出した一言+『全文を読む』 ---- */
.voice-grid.strip {
	grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));
	align-items:stretch
}
.voice-grid.strip.single {
	grid-template-columns:minmax(0,680px)
}
.voice.vq {
	padding:clamp(22px,2.4vw,30px)
}
.vq-text {
	position:relative;
	margin:0 0 14px!important;
	padding-top:22px;
	font:500 clamp(16px,1.4vw,18px)/1.95 var(--serif)!important;
	letter-spacing:.04em;
	color:var(--pine)
}
.vq-text::before {
	content:"“";
	position:absolute;
	left:-2px;
	top:-8px;
	font:italic 400 52px/1 var(--en);
	color:var(--gold)
}
.voice.vq figcaption {
	margin-top:20px;
	padding-top:14px;
	border-top:1px solid var(--line)
}
.vq-tags {
	list-style:none;
	margin:12px 0 0;
	padding:0;
	display:flex;
	flex-wrap:wrap;
	gap:6px
}
.vq-tags li {
	padding:2px 11px;
	border:1px solid var(--line-strong);
	border-radius:99px;
	font-size:11.5px;
	line-height:1.8;
	color:var(--muted)
}
.voice-strip {
	margin-block:clamp(48px,6vw,88px)
}
.voice-strip h2 {
	font-size:clamp(22px,2.4vw,32px);
	margin-bottom:clamp(16px,2vw,26px)
}
.strip-lead {
	margin:0 0 18px;
	font-size:14px;
	color:var(--muted)
}
.voices-app .voice-list {
	margin-top:6px
}

/* 写真つきの声: 写真は枠の中に、このサイトの角丸(右上だけ大きく)で。うしろに金の細い線をずらして置き、引用符の丸い札を写真の角にかける */
.vq-photo {
	--vqr:6px 58px 6px 6px;
	position:relative;
	margin:0 10px 26px 0;
	aspect-ratio:3/2
}
.vq-photo::before {
	content:"";
	position:absolute;
	inset:0;
	transform:translate(10px,10px);
	border:1px solid var(--gold);
	border-radius:var(--vqr);
	opacity:.75;
	transition:transform .6s var(--ease)
}
.vq-photo img {
	position:relative;
	width:100%;
	height:100%;
	object-fit:cover;
	border-radius:var(--vqr);
	animation:vqPhoto 1.3s var(--ease) both
}
.voice.vq.has-photo:hover .vq-photo::before {
	transform:translate(14px,14px)
}
@keyframes vqPhoto {
	from {
		clip-path:inset(0 0 100% 0 round 6px 58px 6px 6px);
		transform:scale(1.12)
	}
	to {
		clip-path:inset(0 0 0 0 round 6px 58px 6px 6px);
		transform:none
	}
}
@media (prefers-reduced-motion:reduce) {
	.vq-photo img {
		animation:none
	}
}
@media (max-width:560px) {
	.vq-photo {
		--vqr:6px 40px 6px 6px
	}
}
.voice.vq blockquote {
	flex:1 1 auto
}
/* 横に並ぶ声は、写真・一言・名前の行・タグの行を、カードをまたいで同じ高さにそろえる(subgrid)。非対応の古いブラウザでは、上の積み方のまま */
@media (min-width:700px) {
	@supports (grid-template-rows:subgrid) {
		/* 1列のとき(スマホ)は、そろえる相手がいないので使わない。iPhoneで、行の高さの計算がずれて、カードの下に文字が重なったため */
		.voice-grid.strip {
			row-gap:0
		}
		.voice-grid.strip>.voice.vq {
			display:grid;
			grid-template-rows:subgrid;
			grid-row:span 5;
			grid-template-columns:minmax(0,1fr);
			margin-bottom:clamp(14px,2vw,28px);
			row-gap:0
		}
		.voice-grid.strip>.voice.vq>.vq-photo {
			grid-row:1
		}
		.voice-grid.strip>.voice.vq>blockquote {
			grid-row:2;
			flex:none
		}
		.voice-grid.strip>.voice.vq>.vq-link {
			grid-row:3
		}
		.voice-grid.strip>.voice.vq>figcaption {
			grid-row:4;
			align-self:start
		}
		.voice-grid.strip>.voice.vq>.vq-tags {
			grid-row:5;
			align-self:start
		}
		.voice-grid.strip>.voice.vq:not(.has-photo)>blockquote {
			padding-top:0
		}
	}
}

.vq-link {
	display:inline-flex;
	align-items:center;
	gap:10px;
	align-self:flex-start;
	justify-self:start;
	font-size:13px;
	letter-spacing:.08em;
	color:var(--pine);
	border-bottom:1px solid var(--line-strong);
	padding-bottom:2px;
	margin-top:2px
}
.vq-link .text-arrow {
	transition:transform .5s var(--ease)
}
.voice.vq:hover .vq-link .text-arrow,.vq-link:hover .text-arrow {
	transform:translateX(6px)
}
.voice.vq blockquote {
	flex:1 1 auto
}

/* ---- 声の1件ずつのページ ---- */
.voice-story {
	padding-block:clamp(10px,2vw,28px) clamp(48px,7vw,96px)
}
.vs-head {
	display:grid;
	gap:clamp(28px,4vw,56px);
	align-items:center;
	padding-block:clamp(16px,3vw,40px) clamp(40px,6vw,80px)
}
.vs-head.has-photo {
	grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)
}
.vs-copy {
	min-width:0
}
.vs-title {
	font-size:clamp(15px,1.3vw,17px);
	font-weight:500;
	letter-spacing:.14em;
	color:var(--muted);
	margin:6px 0 clamp(18px,2.4vw,30px)
}
.vs-quote {
	margin:0;
	position:relative;
	padding-top:clamp(34px,4vw,52px)
}
.vs-quote::before {
	content:"\201C";
	position:absolute;
	left:-4px;
	top:-6px;
	font:italic 400 clamp(72px,8vw,110px)/1 var(--en);
	color:var(--gold)
}
.vs-quote p {
	margin:0;
	font:500 clamp(23px,2.7vw,36px)/1.85 var(--serif);
	letter-spacing:.04em;
	color:var(--pine);
	word-break:auto-phrase;
	text-wrap:pretty
}
.vs-who {
	margin:clamp(20px,2.6vw,32px) 0 14px;
	font-size:13px;
	color:var(--muted);
	letter-spacing:.06em
}
.vs-meta {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:10px 14px
}
.vs-meta .vq-tags {
	margin:0
}
.vs-photo {
	--vsr:6px 96px 6px 6px;
	position:relative;
	margin:0 14px 14px 0
}
.vs-photo::before {
	content:"";
	position:absolute;
	inset:0;
	transform:translate(14px,14px);
	border:1px solid var(--gold);
	border-radius:var(--vsr);
	opacity:.75
}
.vs-photo img {
	position:relative;
	width:100%;
	height:auto;
	aspect-ratio:3/2;
	object-fit:cover;
	border-radius:var(--vsr);
	animation:vqPhoto 1.4s var(--ease) both
}
.vs-body {
	max-width:820px;
	margin-inline:auto;
	border-top:1px solid var(--line-strong)
}
.vs-qa {
	display:grid;
	grid-template-columns:3.2em minmax(0,1fr);
	column-gap:clamp(12px,2vw,24px);
	padding-block:clamp(26px,3.4vw,44px);
	border-bottom:1px solid var(--line)
}
.vs-no {
	grid-row:span 2;
	font:italic 400 clamp(28px,3vw,38px)/1.1 var(--en);
	color:var(--gold)
}
.vs-qa h2 {
	font:500 clamp(13px,1.1vw,14.5px)/1.8 var(--sans);
	letter-spacing:.14em;
	color:var(--muted);
	margin-bottom:10px
}
.vs-text {
	margin:0;
	grid-column:2
}
.vs-text p {
	margin:0 0 .9em;
	font:400 clamp(15.5px,1.3vw,17.5px)/2.15 var(--serif);
	letter-spacing:.04em;
	color:var(--ink)
}
.vs-text p:last-child {
	margin-bottom:0
}
.voice-story>.reference-note {
	max-width:820px;
	margin:clamp(24px,3vw,40px) auto 0
}
.vs-nav {
	max-width:820px;
	margin:clamp(36px,5vw,64px) auto 0;
	display:grid;
	grid-template-columns:1fr auto 1fr;
	gap:16px;
	align-items:stretch
}
.vs-nav a {
	display:flex;
	flex-direction:column;
	gap:2px;
	padding:16px 20px;
	border:1px solid var(--line);
	border-radius:6px 24px 6px 6px;
	background:var(--white);
	transition:border-color .3s,transform .5s var(--ease)
}
.vs-nav a:hover {
	border-color:var(--gold);
	transform:translateY(-3px)
}
.vs-nav small {
	font:500 11px var(--en);
	letter-spacing:.2em;
	color:var(--gold)
}
.vs-nav b {
	font:500 15px/1.6 var(--serif)
}
.vs-nav span {
	font-size:12px;
	color:var(--muted)
}
.vs-next {
	text-align:right
}
.vs-nav .vs-list {
	align-self:center;
	border:0;
	background:none;
	border-bottom:1px solid var(--line-strong);
	border-radius:0;
	padding:4px 0;
	font-size:13px;
	letter-spacing:.08em
}
@media(max-width:860px) {
	.vs-head.has-photo {
		grid-template-columns:1fr
	}
	.vs-photo {
		order:-1;
		--vsr:6px 56px 6px 6px
	}
}
@media(max-width:620px) {
	.vs-nav {
		grid-template-columns:1fr 1fr
	}
	.vs-nav .vs-list {
		grid-column:1/-1;
		grid-row:2;
		justify-self:center
	}
	.vs-qa {
		grid-template-columns:2.4em minmax(0,1fr)
	}
}
@media (prefers-reduced-motion:reduce) {
	.vs-photo img {
		animation:none
	}
}

/* ---- トリミング料金: スマホは、犬種ごとのカード(表は6列になり入り切らないため)。パソコンは表 ---- */
.pc-list {
	display:none;
	list-style:none;
	margin:0;
	padding:0;
	gap:10px
}
.pc[hidden] {
	display:none
}
.pc {
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 22px 6px 6px;
	padding:12px 14px 14px
}
.pc-head {
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	gap:8px;
	margin-bottom:8px;
	padding-bottom:8px;
	border-bottom:1px dashed var(--line-strong)
}
.pc-head b {
	font:500 15.5px/1.4 var(--serif);
	letter-spacing:.04em;
	word-break:keep-all;
	overflow-wrap:anywhere
}
.pc-head small {
	font-size:12px;
	color:var(--muted);
	white-space:nowrap
}
.pc-prices {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:8px;
	margin:0
}
.pc-prices>div {
	background:#f3f1e6;
	border-radius:6px;
	padding:7px 10px 8px;
	min-width:0
}
.pc-prices dt {
	font-size:10.5px;
	letter-spacing:.08em;
	color:var(--muted);
	line-height:1.5
}
.pc-prices dd {
	margin:0;
	font:500 17px/1.4 var(--sans);
	white-space:nowrap
}
.pc-prices dd small {
	font-size:11px;
	color:var(--muted);
	margin-left:1px
}
.pc-prices dd.consult {
	font-size:12.5px;
	letter-spacing:.06em;
	color:var(--pine)
}
.price-panel-wide .trim-table {
	min-width:0
}
@media(max-width:1100px) {
	.price-panel-wide .trim-table thead th {
		padding:10px 6px;
		letter-spacing:.04em
	}
	.price-panel-wide .trim-table tbody th,.price-panel-wide .trim-table tbody td {
		padding:12px 6px
	}
	.price-panel-wide .trim-table .tc b {
		font-size:16px
	}
}
@media(max-width:700px) {
	.pp-scroll {
		display:none
	}
	.pc-list {
		display:grid
	}
	.pp-empty[hidden] {
		display:none
	}
}

/* ---- トリミング: コースの内容 ---- */
.trim-courses {
	margin:clamp(18px,2.4vw,30px) 0 clamp(22px,3vw,36px);
	padding:clamp(18px,2.4vw,28px);
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 32px 6px 6px
}
.trim-courses h3 {
	font:500 15px/1.6 var(--sans);
	letter-spacing:.14em;
	color:var(--muted);
	margin-bottom:14px
}
.trim-courses dl {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:clamp(14px,2vw,24px) clamp(20px,3vw,40px);
	margin:0
}
.trim-courses dt {
	font:500 16px/1.6 var(--serif);
	letter-spacing:.05em;
	color:var(--pine);
	margin-bottom:4px;
	display:flex;
	align-items:center;
	gap:8px
}
.trim-courses dt::before {
	content:"";
	width:7px;
	height:7px;
	border-radius:50%;
	background:var(--gold)
}
.trim-courses dd {
	margin:0;
	font-size:13.5px;
	line-height:2
}
.trim-courses .reference-note {
	margin:14px 0 0
}
@media(max-width:760px) {
	.trim-courses dl {
		grid-template-columns:1fr
	}
}

/* ---- コースごとのテーマ色(自然な色合い。シャンプー=青、カットコース=緑、スピードカット=黄、デザインカット=ピンク) ---- */
:root {
	--cs-bg:#e2ebee;
	--cs-ink:#3f6573;
	--cs-dot:#86a9b8;
	--cc-bg:#e4ebd7;
	--cc-ink:#4d6a3a;
	--cc-dot:#8fa96d;
	--cp-bg:#f3ead0;
	--cp-ink:#7f6420;
	--cp-dot:#d3b055;
	--cd-bg:#f2e1de;
	--cd-ink:#93524f;
	--cd-dot:#cf9592
}
[data-course=shampoo] {
	--cb:var(--cs-bg);
	--ci:var(--cs-ink);
	--cdot:var(--cs-dot)
}
[data-course=cut] {
	--cb:var(--cc-bg);
	--ci:var(--cc-ink);
	--cdot:var(--cc-dot)
}
[data-course=speed_cut] {
	--cb:var(--cp-bg);
	--ci:var(--cp-ink);
	--cdot:var(--cp-dot)
}
[data-course=design_cut] {
	--cb:var(--cd-bg);
	--ci:var(--cd-ink);
	--cdot:var(--cd-dot)
}
.pc-prices>div[data-course] {
	background:var(--cb)
}
.pc-prices>div[data-course] dt {
	color:var(--ci)
}
.trim-table thead th[data-course] {
	box-shadow:inset 0 -3px 0 var(--cdot)
}
.trim-courses dl>div[data-course] dt::before {
	background:var(--cdot)
}
.trim-courses dl>div[data-course] dt {
	color:var(--ci)
}

/* ---- ブリーディング ---- */
.stud-card .frame {
	aspect-ratio:8/5
}
.stud-card .puppy-title {
	margin-top:14px
}
.stud-grid {
	grid-template-columns:repeat(4,minmax(0,1fr))
}
@media(max-width:1180px) {
	.stud-grid {
		grid-template-columns:repeat(3,minmax(0,1fr))
	}
}
@media(max-width:860px) {
	.stud-grid {
		grid-template-columns:repeat(2,minmax(0,1fr))
	}
}
@media(max-width:480px) {
	.stud-grid {
		grid-template-columns:1fr
	}
}
.fee-label {
	display:block;
	font-size:11px;
	letter-spacing:.14em;
	color:var(--muted);
	margin-bottom:2px
}
.stud-comment {
	margin:14px 0 0;
	padding:12px 16px;
	background:var(--white);
	border-left:3px solid var(--gold);
	font-size:14px;
	line-height:1.9
}
.stud-fee {
	display:flex;
	align-items:baseline;
	gap:10px;
	margin:22px 0 8px;
	padding:14px 0;
	border-top:1px solid var(--line);
	border-bottom:1px solid var(--line)
}
.stud-fee span {
	font-size:13px;
	color:var(--muted);
	letter-spacing:.08em
}
.stud-fee b {
	font:500 clamp(26px,3vw,34px)/1.2 var(--sans);
	letter-spacing:.02em
}
.stud-fee small {
	font-size:13px;
	color:var(--muted)
}
.stud-terms {
	margin-block:clamp(40px,6vw,80px)
}
.stud-terms h2 {
	margin-bottom:clamp(18px,2.4vw,30px)
}
.stud-terms-grid {
	display:grid;
	grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
	gap:clamp(20px,3vw,44px);
	align-items:start
}
.stud-terms h3 {
	font:500 15px/1.6 var(--sans);
	letter-spacing:.14em;
	color:var(--muted);
	margin-bottom:12px
}
.stud-flow,.stud-side article {
	padding:clamp(18px,2.4vw,28px);
	background:var(--white);
	border:1px solid var(--line);
	border-radius:6px 32px 6px 6px
}
.stud-side {
	display:grid;
	gap:clamp(14px,2vw,22px)
}
.stud-flow ol {
	list-style:none;
	margin:0;
	padding:0;
	display:grid;
	gap:16px
}
.stud-flow li {
	display:grid;
	grid-template-columns:2.2em minmax(0,1fr);
	gap:12px;
	align-items:start
}
.flow-no {
	font:italic 400 24px/1.2 var(--en);
	color:var(--gold)
}
.stud-flow li p,.stud-side li {
	margin:0;
	font-size:14px;
	line-height:1.95
}
.stud-side ul {
	margin:0;
	padding-left:1.2em
}
.stud-contact p {
	margin:0;
	font-size:14px;
	line-height:2
}
@media(max-width:860px) {
	.stud-terms-grid {
		grid-template-columns:1fr
	}
}

/* 新HP（PHP化）で追加: 仔犬の個別ページの注記の余白（試作では style 属性で指定していた） */
.detail-note {
	margin-top:20px
}

/* 新HP（PHP化）で追加: お問い合わせフォーム（試作には無いページ。サイトの色・書体に合わせる） */
.contact-content {
	max-width:760px
}
.contact-form {
	display:grid;
	gap:22px;
	margin:8px 0 40px
}
.contact-field {
	display:grid;
	gap:8px;
	border:0;
	padding:0;
	margin:0
}
.contact-label {
	font-weight:700;
	color:var(--ink)
}
.contact-label b {
	display:inline-block;
	margin-left:10px;
	padding:1px 8px;
	border-radius:999px;
	background:var(--pine);
	color:var(--white);
	font-size:.75em;
	font-weight:500;
	vertical-align:2px
}
.contact-label small {
	margin-left:10px;
	color:var(--muted);
	font-weight:400
}
.contact-field input[type=text],
.contact-field input[type=tel],
.contact-field input[type=email],
.contact-field select,
.contact-field textarea {
	width:100%;
	padding:12px 14px;
	border:1px solid var(--line-strong);
	border-radius:var(--radius);
	background:var(--white);
	font:inherit;
	color:var(--ink)
}
.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus {
	outline:2px solid var(--pine);
	outline-offset:1px
}
.contact-field label {
	display:inline-flex;
	gap:8px;
	align-items:center;
	margin-right:24px
}
.contact-hp {
	position:absolute;
	left:-9999px;
	width:1px;
	height:1px;
	overflow:hidden
}
.contact-actions {
	display:flex;
	gap:14px;
	flex-wrap:wrap
}
.contact-submit,.contact-back {
	padding:14px 32px;
	border-radius:999px;
	border:1px solid var(--pine);
	font:inherit;
	font-weight:700;
	cursor:pointer
}
.contact-submit {
	background:var(--pine);
	color:var(--white)
}
.contact-back {
	background:transparent;
	color:var(--pine)
}
.contact-errors {
	margin:0 0 24px;
	padding:16px 20px;
	border:1px solid #c98a7f;
	border-radius:var(--radius);
	background:#f8ece8;
	color:#7a3a30
}
.contact-errors ul {
	margin:0;
	padding-left:1.2em
}
.contact-confirm {
	display:grid;
	gap:12px;
	margin:0
}
.contact-confirm div {
	display:grid;
	grid-template-columns:12em 1fr;
	gap:12px;
	padding-bottom:12px;
	border-bottom:1px solid var(--line)
}
.contact-confirm dt {
	font-weight:700
}
.contact-confirm dd {
	margin:0;
	word-break:break-all
}
.contact-done {
	font-size:1.1em
}
.contact-tel {
	margin-top:48px;
	padding-top:28px;
	border-top:1px solid var(--line)
}
.contact-tel h2 {
	font-family:var(--serif);
	font-size:1.3em;
	margin:0 0 14px
}
.contact-tel ul {
	list-style:none;
	margin:0;
	padding:0;
	display:grid;
	gap:8px
}
.contact-tel li {
	display:flex;
	gap:16px
}
.contact-tel li span {
	min-width:8em
}
@media (max-width:600px) {
	.contact-confirm div {
		grid-template-columns:1fr;
		gap:4px
	}
}

/* 新HP: お知らせのページ（管理画面は移りました）の見出しは、普通の大きさにする（ユーザー指示 2026-11-13） */
.nf-notice h1 {
	font-size:clamp(18px,2vw,22px);
	line-height:1.6;
	margin-bottom:16px
}
