/* Contact: homepage grid and typography with a blue inquiry section. */
.dm-contact-page {
	position: relative;
	z-index: 5;
	color: var(--ink, #000);
	font-family: var(--f, sans-serif);
}
.dm-contact-page :is(p, h1, h2, h3) { margin: 0; }
.dm-contact-page .inner { padding-inline: var(--margin, 56px); }
.dm-contact-page .grid > * { min-width: 0; }
.dm-contact-page .dm-contact-hero {
	padding: calc(var(--nav-h, 64px) + 96px) 0 96px;
}
.dm-contact-kicker { grid-column: 1 / 13; margin-bottom: 32px !important; }
.dm-contact-title {
	grid-column: 1 / 9;
	max-width: 820px;
	font-weight: 400;
	text-wrap: balance;
}
.dm-contact-intro {
	grid-column: 1 / 8;
	max-width: 720px;
	margin-top: 32px !important;
}
.dm-contact-actions { grid-column: 1 / 13; margin-top: 40px; }
.dm-contact-page .lnk { width: fit-content; align-self: flex-start; }
.dm-contact-band {
	position: relative;
	padding: 32px 0;
	background: #d7e8f0;
}
.dm-contact-band > .grid { align-items: baseline; row-gap: 16px; }
.dm-contact-band-label { grid-column: 1 / 5; }
.dm-contact-band-title { grid-column: 5 / 13; font-weight: 400; }
.dm-contact-page .dm-contact-project { padding: 80px 0 120px; scroll-margin-top: 96px; background: #d7e8f0; }
.dm-contact-project > .grid { align-items: start; row-gap: 48px; }
.dm-contact-aside { grid-column: 1 / 4; display: flex; flex-direction: column; gap: 24px; }
.dm-contact-aside h3 { font-weight: 400; }
.dm-contact-aside > .tl { margin-top: 8px; }
.dm-contact-form { grid-column: 5 / 13; }
.dm-contact-page .dm-inquiry { width: 100%; color: inherit; }
.dm-contact-page .dm-inquiry__form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 32px;
	row-gap: 40px;
}
.dm-contact-page .dm-inquiry__form > :is(p, button),
.dm-contact-page .dm-inquiry__field--wide { grid-column: 1 / -1; }
.dm-contact-page .dm-inquiry__field {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.dm-contact-page .dm-inquiry .tl {
	font-family: var(--fm, monospace);
	font-size: var(--sz-u, 17px);
	line-height: var(--lh-u, 24px);
	letter-spacing: var(--ls-u, .3px);
}
.dm-contact-page .dm-inquiry .tb {
	font-size: var(--sz-b, 24px);
	line-height: var(--lh-b, 32px);
}
.dm-contact-page .dm-inquiry__field :is(input, select, textarea) {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	min-height: 56px;
	padding: 10px 0 13px;
	border: 0;
	border-bottom: 1px solid rgba(0, 0, 0, .55);
	border-radius: 0;
	background: transparent;
	color: inherit;
	font-family: var(--f, sans-serif);
	font-size: var(--sz-b, 24px);
	font-weight: 400;
	line-height: var(--lh-b, 32px);
	box-shadow: none;
}
.dm-contact-page .dm-inquiry__field select { padding-right: 24px; }
.dm-contact-page .dm-inquiry__field textarea {
	min-height: 224px;
	padding: 16px;
	border: 1px solid rgba(0, 0, 0, .55);
	resize: vertical;
}
.dm-contact-page .dm-inquiry__field :is(input, textarea)::placeholder { color: #676767; opacity: 1; }
.dm-contact-page :is(input, select, textarea, button, a):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 5px;
}
.dm-contact-page .dm-inquiry__field [aria-invalid="true"] { border-bottom-width: 2px; }
.dm-contact-page .dm-inquiry__field textarea[aria-invalid="true"] { border-width: 2px; }
.dm-contact-page .dm-inquiry__notice,
.dm-contact-page .dm-inquiry__errors {
	padding: 24px;
	margin: 0 0 40px;
	border: 1px solid currentColor;
	font-size: var(--sz-u, 17px);
	line-height: var(--lh-u, 24px);
}
.dm-contact-page .dm-inquiry__errors ul { padding-left: 24px; margin: 16px 0 0; }
.dm-contact-page .dm-inquiry__errors li + li { margin-top: 8px; }
.dm-contact-page .dm-inquiry a { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.dm-contact-page .dm-inquiry__submit {
	justify-self: start;
	align-self: start;
	width: fit-content;
	min-height: 56px;
	padding: 16px 24px;
	border: 1px solid var(--ink, #000);
	border-radius: 0;
	background: var(--ink, #000);
	color: var(--bg, #f9f8f5);
	font-family: var(--fm, monospace);
	font-size: var(--sz-u, 17px);
	font-weight: 400;
	line-height: var(--lh-u, 24px);
	letter-spacing: var(--ls-u, .3px);
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.dm-contact-page .dm-inquiry__submit:hover { background: transparent; color: var(--ink, #000); }
.dm-contact-page .dm-inquiry__submit:focus-visible { outline-color: var(--ink, #000); }
.dm-contact-page .dm-inquiry__trap {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
.dm-contact-band--direct { background: #e4ddf2; }
.dm-contact-page .dm-contact-direct { padding: 80px 0 120px; }
.dm-contact-direct > .grid { row-gap: 48px; }
.dm-contact-detail { grid-column: span 4; display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.dm-contact-detail :is(h2, h3) { font-weight: 400; }
.dm-contact-detail a { color: inherit; overflow-wrap: anywhere; }
.dm-contact-detail .lnk { margin-top: 8px; }
@media (max-width: 900px) {
	.dm-contact-title, .dm-contact-intro { grid-column: 1 / 12; }
	.dm-contact-aside, .dm-contact-form { grid-column: 1 / 13; }
	.dm-contact-aside { max-width: 640px; }
	.dm-contact-page .dm-contact-project, .dm-contact-page .dm-contact-direct { padding: 64px 0 80px; }
	.dm-contact-detail { grid-column: span 6; }
}
@media (max-width: 600px) {
	.dm-contact-page .dm-contact-hero { padding: calc(var(--nav-h, 64px) + 64px) 0 64px; }
	.dm-contact-kicker { margin-bottom: 24px !important; }
	.dm-contact-title, .dm-contact-intro { grid-column: 1 / -1; }
	.dm-contact-intro { margin-top: 24px !important; }
	.dm-contact-actions { margin-top: 32px; }
	.dm-contact-band { padding: 24px 0; }
	.dm-contact-band-label, .dm-contact-band-title { grid-column: 1 / -1; }
	.dm-contact-page .dm-contact-project, .dm-contact-page .dm-contact-direct { padding: 48px 0 64px; }
	.dm-contact-page .dm-inquiry__form { grid-template-columns: minmax(0, 1fr); row-gap: 32px; }
	.dm-contact-page .dm-inquiry__field { grid-column: 1 / -1; }
	.dm-contact-page .dm-inquiry__notice, .dm-contact-page .dm-inquiry__errors { padding: 16px; margin-bottom: 32px; }
	.dm-contact-detail { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
	.dm-contact-page .dm-inquiry__submit { transition: none; }
}

.dm-contact-page #dm-inquiry { scroll-margin-top: calc(var(--nav-h, 64px) + 32px); }

/* Full, ascending ink ikebana: pine fans, open flowers and printed leaves. */
.dm-contact-idea{display:flex;flex-direction:column;align-items:center;width:100%;max-width:320px;color:var(--ink,#000)}
.dm-contact-idea__art{display:block;width:100%;height:auto}
.dm-contact-idea.is-animated .dm-contact-idea__canopy{animation:dm-ikebana-cycle 13s ease-in-out infinite}
.dm-contact-idea.is-animated .dm-ikebana-branch{stroke-dasharray:1;animation:dm-ikebana-draw 13s ease-in-out infinite}
.dm-contact-idea.is-animated .dm-ikebana-branch--side{animation-name:dm-ikebana-draw-side}
.dm-contact-idea.is-animated .dm-ikebana-branch--late{animation-name:dm-ikebana-draw-late}
.dm-ikebana-leaves path,.dm-ikebana-flower,.dm-ikebana-fan{transform-box:fill-box;transform-origin:50% 100%}
.dm-ikebana-fan{transform-origin:0px 0px;transform-box:view-box}
.dm-contact-idea.is-animated .dm-ikebana-fan{animation:dm-ikebana-hanging 13s ease-in-out infinite}
.dm-contact-idea.is-animated .dm-ikebana-leaves--base path{animation:dm-ikebana-leaf 13s ease-in-out infinite}
.dm-contact-idea.is-animated .dm-ikebana-leaves--high path{animation:dm-ikebana-hanging 13s ease-in-out infinite}
.dm-contact-idea.is-animated .dm-ikebana-flower{animation:dm-ikebana-bloom 13s ease-in-out infinite}
.dm-contact-idea.is-animated .dm-ikebana-flower--two{animation-name:dm-ikebana-bloom-late}
.dm-contact-idea.is-animated .dm-ikebana-flower--three{animation-name:dm-ikebana-bloom-last}
.dm-contact-idea.is-animated:not(.is-running) .dm-contact-idea__art *{animation-play-state:paused}
.dm-contact-idea__toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin:8px 0 0;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;opacity:.55}
.dm-contact-idea__toggle[hidden]{display:none}
.dm-contact-idea__toggle:hover,.dm-contact-idea__toggle:focus-visible{opacity:1}
.dm-contact-idea__toggle:focus-visible{outline:1px solid currentColor;outline-offset:3px}
.dm-contact-idea.is-running .dm-contact-idea__play,.dm-contact-idea:not(.is-running) .dm-contact-idea__pause{display:none}
@keyframes dm-ikebana-cycle{0%,3%,100%{opacity:0}7%,87%{opacity:1}97%{opacity:0}}
@keyframes dm-ikebana-draw{0%,4%{stroke-dashoffset:1}40%,100%{stroke-dashoffset:0}}
@keyframes dm-ikebana-draw-side{0%,10%{stroke-dashoffset:1}47%,100%{stroke-dashoffset:0}}
@keyframes dm-ikebana-draw-late{0%,24%{stroke-dashoffset:1}55%,100%{stroke-dashoffset:0}}
@keyframes dm-ikebana-leaf{0%,17%{opacity:0;transform:scale(.05)}37%,100%{opacity:1;transform:scale(1)}}
@keyframes dm-ikebana-hanging{0%,40%{opacity:0;transform:scale(.05)}59%,100%{opacity:1;transform:scale(1)}}
@keyframes dm-ikebana-bloom{0%,44%{opacity:0;transform:scale(.05) rotate(-12deg)}60%,100%{opacity:1;transform:none}}
@keyframes dm-ikebana-bloom-late{0%,51%{opacity:0;transform:scale(.05) rotate(9deg)}66%,100%{opacity:1;transform:none}}
@keyframes dm-ikebana-bloom-last{0%,57%{opacity:0;transform:scale(.05)}71%,100%{opacity:1;transform:none}}
@media(max-width:900px){.dm-contact-page .dm-contact-aside{max-width:200px}.dm-contact-project>.grid{row-gap:24px}}
@media(prefers-reduced-motion:reduce){.dm-contact-idea.is-animated *{animation:none!important;transform:none;stroke-dashoffset:0}.dm-contact-idea__toggle{display:none}}
