:root { --plum: #4f1d3a; --plum-deep: #321328; --berry: #76264f; --cream: #f7ebde; --paper: #fffaf4; --ink: #271c20; --muted: #796b6c; --line: rgba(79,29,58,.18); }
* { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; color: var(--ink); background: var(--paper); font-family: 'DM Sans', sans-serif; line-height: 1.5; } a { color: inherit; text-decoration: none; } img { max-width: 100%; display: block; }
.site-header { align-items: center; display: flex; justify-content: space-between; max-width: 1240px; margin: 0 auto; padding: 0px 44px; position: relative; z-index: 5; } .brand, .footer-brand { align-items: center; color: var(--plum); display: flex; font-family: 'Playfair Display', serif; font-size: 1.15rem; line-height: .9; } .brand img, .footer-brand img { height: 30px; margin-right: 9px; object-fit: contain; width: 30px; } .brand small, .footer-brand small { display: block; font-family: 'DM Sans', sans-serif; font-size: .43rem; font-weight: 700; letter-spacing: .22em; margin-top: 7px; text-transform: uppercase; } .site-nav { align-items: center; display: flex; gap: 30px; font-size: .77rem; letter-spacing: .08em; position: relative; text-transform: uppercase; } .site-nav > a { padding: 8px 0 9px; transition: color .2s ease; } .site-nav a:hover, .site-nav a[aria-current="location"] { color: var(--berry); } .nav-button { padding: 8px 0 9px; } .nav-indicator { background: var(--plum); height: 1px; left: 0; opacity: 0; pointer-events: none; position: absolute; top: 0; transform: translate3d(var(--indicator-x, 0px), var(--indicator-y, 0px), 0); transition: transform .35s cubic-bezier(.2,.8,.2,1), width .3s ease, opacity .2s ease; width: var(--indicator-width, 0px); } .nav-indicator.is-visible { opacity: 1; } .menu-toggle { display: none; }
.hero { background: var(--cream); min-height: 650px; overflow: hidden; padding: 80px max(44px, calc((100vw - 1152px) / 2)); position: relative; display: flex; align-items: center; } .hero-copy { max-width: 640px; position: relative; z-index: 2; } .eyebrow { color: var(--berry); font-size: .7rem; font-weight: 700; letter-spacing: .18em; margin: 0 0 22px; text-transform: uppercase; } h1, h2 { font-family: 'Playfair Display', serif; font-weight: 600; letter-spacing: -.04em; line-height: .98; margin: 0; } h1 { color: var(--plum); font-size: clamp(4.2rem, 7.4vw, 7.8rem); } h1 em, h2 em { color: var(--berry); font-style: italic; font-weight: 500; } .hero-intro { font-size: 1rem; max-width: 480px; margin: 34px 0; } .hero-actions { align-items: center; display: flex; gap: 28px; } .button { border: 0; display: inline-flex; font-size: .76rem; font-weight: 700; gap: 18px; letter-spacing: .08em; padding: 17px 20px; text-transform: uppercase; transition: transform .2s ease, background .2s ease; } .button:hover { transform: translateY(-3px); } .button-primary { background: var(--plum); color: white; } .text-link { border-bottom: 1px solid currentColor; font-size: .78rem; font-weight: 700; letter-spacing: .08em; padding-bottom: 7px; text-transform: uppercase; } .text-link span { margin-left: 12px; }
.hero-art { align-items: center; background: var(--plum); border-radius: 50%; display: flex; height: min(41vw, 550px); justify-content: center; margin-left: auto; position: relative; width: min(41vw, 550px); } .hero-art:after { border: 1px solid rgba(247,235,222,.25); border-radius: 50%; content: ''; inset: 22px; position: absolute; } .hero-art img { filter: brightness(0) invert(1); opacity: .95; width: 47%; } .art-ring { border: 1px solid rgba(247,235,222,.25); border-radius: 50%; inset: 55px; position: absolute; } .art-note { bottom: 19%; color: var(--cream); font-family: 'Playfair Display', serif; font-size: 1.35rem; left: 12%; line-height: 1.05; position: absolute; } .art-coordinate { bottom: 12%; color: rgba(247,235,222,.65); font-size: .6rem; letter-spacing: .14em; position: absolute; right: 14%; } .hero-stamp { border: 1px solid var(--berry); color: var(--berry); font-size: .75rem; font-weight: 700; line-height: 1.1; padding: 12px; position: absolute; right: 44px; text-align: center; top: 90px; transform: rotate(9deg); } .hero-stamp span { font-size: .55rem; font-weight: 400; }
.trust-strip { align-items: center; background: var(--plum-deep); color: var(--cream); display: flex; gap: 44px; justify-content: space-between; padding: 21px max(44px, calc((100vw - 1152px) / 2)); } .trust-strip p { font-family: 'Playfair Display', serif; font-size: 1.05rem; margin: 0 auto 0 0; } .trust-strip div { color: rgba(247,235,222,.7); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; } .trust-strip div span { color: #dd9fbb; margin-right: 8px; }
.section { margin: 0 auto; max-width: 1240px; padding: 130px 44px; } .services-section { display: grid; gap: 10%; grid-template-columns: .8fr 1.2fr; } h2 { color: var(--plum); font-size: clamp(3rem, 5vw, 5rem); } .section-heading > p:last-child { color: var(--muted); font-size: .95rem; margin-top: 34px; max-width: 320px; } .service-list { border-top: 1px solid var(--line); } .service-entry { border-bottom: 1px solid var(--line); } .service-item { align-items: center; appearance: none; background: transparent; border: 0; color: inherit; cursor: pointer; display: grid; font: inherit; gap: 28px; grid-template-columns: 45px 1fr 30px; list-style: none; padding: 16px 0; text-align: left; transition: padding .25s ease, color .25s ease; width: 100%; } .service-item::-webkit-details-marker { display: none; } .service-item:hover, .service-item:focus-visible { color: var(--berry); padding-left: 10px; } .service-item:focus-visible { outline: 2px solid var(--berry); outline-offset: 3px; } .service-number { color: var(--berry); font-size: .7rem; } .service-item strong { display: block; font-family: 'Playfair Display', serif; font-size: 1.5rem; font-weight: 600; } .service-item small { color: var(--muted); display: block; font-size: .75rem; margin-top: 4px; } .service-description { color: var(--muted); font-size: .9rem; line-height: 1.55; margin: 0 54px 20px 73px; max-width: 600px; } .service-arrow { font-size: 1.3rem; text-align: right; transition: transform .25s ease; } .service-entry[open] .service-arrow { transform: rotate(45deg); }
.process-section { background: var(--plum); color: var(--cream); display: grid; grid-template-columns: 1fr 1fr; min-height: 670px; } .process-image { background: linear-gradient(145deg, rgba(79,29,58,.08), rgba(79,29,58,.45)), url('assets/tomlinson-wood-mark.png') center 48% / 37% no-repeat, #d6b99f; position: relative; } .process-image:before { border: 1px solid rgba(255,255,255,.45); content: ''; inset: 9%; position: absolute; } .image-caption { bottom: 12%; color: var(--plum); font-family: 'Playfair Display', serif; font-size: 2rem; left: 14%; line-height: 1; position: absolute; } .process-copy { align-self: center; max-width: 490px; padding: 80px; } .process-copy h2 { color: var(--cream); } .process-copy h2 em { color: #dc9fba; } .process-copy > p:not(.eyebrow) { color: rgba(247,235,222,.72); font-size: .95rem; margin: 34px 0; } .steps { list-style: none; margin: 0 0 42px; padding: 0; } .steps li { align-items: center; border-top: 1px solid rgba(247,235,222,.24); display: flex; gap: 18px; padding: 15px 0; } .steps li:last-child { border-bottom: 1px solid rgba(247,235,222,.24); } .steps span { color: #dc9fba; font-size: .7rem; } .steps strong { font-family: 'Playfair Display', serif; font-size: 1.05rem; font-weight: 500; } .light-link { color: var(--cream); }
.guides-top { align-items: end; display: flex; justify-content: space-between; margin-bottom: 50px; } .guide-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); } .guide-grid article { border-top: 3px solid var(--berry); min-height: 275px; padding: 25px 25px 20px 0; } .guide-type { color: var(--berry); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; } .guide-grid h3 { font-family: 'Playfair Display', serif; font-size: 1.65rem; font-weight: 500; line-height: 1.1; margin: 42px 0 35px; max-width: 270px; } .guide-grid a { border-bottom: 1px solid var(--plum); font-size: .7rem; font-weight: 700; letter-spacing: .08em; padding-bottom: 7px; text-transform: uppercase; }
.contact-section { background: var(--berry); color: var(--cream); display: grid; gap: 10%; grid-template-columns: .85fr 1.15fr; padding: 110px max(44px, calc((100vw - 1152px) / 2)); } .contact-section h2 { color: var(--cream); } .contact-section h2 em { color: #f0c8d8; } .contact-section > div > p:not(.eyebrow):not(.contact-detail) { color: rgba(247,235,222,.8); max-width: 340px; margin: 32px 0; } .contact-detail { font-size: .85rem; line-height: 1.8; } .contact-form { display: grid; gap: 23px; } .contact-form label { color: rgba(247,235,222,.75); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; } input, select { background: transparent; border: 0; border-bottom: 1px solid rgba(247,235,222,.55); border-radius: 0; color: var(--cream); display: block; font: inherit; font-size: 1.1rem; letter-spacing: 0; margin-top: 7px; outline: none; padding: 9px 0; text-transform: none; width: 100%; } input::placeholder { color: rgba(247,235,222,.45); } select option { color: var(--ink); } .button-cream { background: var(--cream); color: var(--plum); cursor: pointer; justify-content: space-between; margin-top: 10px; max-width: 290px; } .form-message { color: var(--cream); font-size: .8rem; margin: 0; }
.site-footer { align-items: center; background: var(--plum-deep); color: rgba(247,235,222,.7); display: flex; gap: 42px; justify-content: space-between; padding: 30px max(44px, calc((100vw - 1152px) / 2)); } .footer-brand { color: var(--cream); } .footer-brand img { filter: brightness(0) invert(1); opacity: .85; } .site-footer .footer-links { display: flex; gap: 24px; font-size: .7rem; text-transform: uppercase; } .site-footer p { font-size: .65rem; margin: 0; } .reveal { animation: rise .8s ease both; } .reveal-delay { animation-delay: .15s; } @keyframes rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 800px) { .site-header { padding: 18px 22px; } .brand { font-size: 1rem; } .brand img { height: 27px; width: 27px; } .menu-toggle { background: none; border: 0; color: var(--plum); display: block; font: inherit; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; } .menu-toggle span { font-size: 1.2rem; margin-left: 8px; } .site-nav { background: var(--paper); box-shadow: 0 15px 30px rgba(39,28,32,.08); display: none; flex-direction: column; gap: 20px; left: 22px; padding: 24px; position: absolute; right: 22px; top: 70px; } .site-nav.is-open { display: flex; } .hero { display: block; min-height: auto; padding: 64px 22px 80px; } h1 { font-size: clamp(3.8rem, 16vw, 6rem); } .hero-art { height: 78vw; margin: 58px auto 0; width: 78vw; } .hero-stamp { right: 22px; top: 84px; } .trust-strip { align-items: flex-start; flex-wrap: wrap; gap: 16px 24px; padding: 22px; } .trust-strip p { flex-basis: 100%; } .trust-strip div { font-size: .6rem; } .section { padding: 80px 22px; } .services-section, .contact-section { display: block; } .section-heading { margin-bottom: 52px; } .service-item { gap: 16px; grid-template-columns: 32px 1fr 20px; } .service-item strong { font-size: 1.2rem; } .process-section { display: block; } .process-image { min-height: 390px; } .process-copy { padding: 70px 22px; } .guides-top { align-items: start; display: block; } .guides-top .text-link { display: inline-block; margin-top: 30px; } .guide-grid { display: block; } .guide-grid article { min-height: 0; padding: 24px 0 32px; } .guide-grid h3 { margin: 24px 0; } .contact-section { padding: 80px 22px; } .contact-form { margin-top: 52px; } .site-footer { align-items: start; flex-direction: column; gap: 22px; padding: 30px 22px; } }

.brand .brand-mark { flex: 0 0 auto; height: 90px; margin: 0; object-fit: contain; width: 90px; }
.brand .brand-wordmark { flex: 0 1 auto; height: 90px; margin: 0; max-width: 100%; object-fit: contain; width: auto; }
.hero h1 { font-size: clamp(4.2rem, 4.8vw, 5.2rem); }
.hero-stamp { display: none; }
.footer-brand img { height: auto; max-width: 260px; width: 100%; }
.guide-grid article ol { color: var(--muted); font-size: .85rem; line-height: 1.65; margin: 20px 0 0; padding-left: 20px; }
.guide-grid article li { margin: 0 0 10px; }
.contact-detail a { text-decoration: underline; text-underline-offset: 3px; }
.contact-address { align-self: center; border-left: 1px solid rgba(247,235,222,.35); padding-left: 34px; }
.contact-address .eyebrow { color: #f0c8d8; }
.contact-address address { font-size: 1rem; font-style: normal; line-height: 1.7; }
.contact-address > p:not(.eyebrow) { color: rgba(247,235,222,.75); font-size: .8rem; margin: 18px 0 26px; }
@media (max-width: 800px) {
	.site-header { align-items: flex-start; flex-wrap: wrap; gap: 12px; }
	.hero h1 { font-size: clamp(3.8rem, 16vw, 6rem); }
	.brand { gap: 6px; }
	.brand .brand-mark { height: 81px; width: 81px; }
	.brand .brand-wordmark { width: min(245px, calc(100vw - 132px)); }
	.menu-toggle { margin-left: auto; }
	.site-nav { top: 118px; }
	.contact-address { border-left: 0; border-top: 1px solid rgba(247,235,222,.35); margin-top: 48px; padding: 32px 0 0; }
	.footer-brand img { max-width: 230px; }
}

:root {
	--content-gutter: max(44px, calc((100vw - 1152px) / 2));
	--header-space: 100px;
}

html {
	scroll-snap-type: y proximity;
	scroll-padding-top: 0;
}

.site-header {
	background: rgba(255, 250, 244, .96);
	backdrop-filter: blur(12px);
	left: 0;
	max-width: none;
	padding: 4px var(--content-gutter);
	position: fixed;
	right: 0;
	top: 0;
	width: 100%;
}

.page-panel {
	min-height: 100vh;
	min-height: 100svh;
	position: relative;
	scroll-snap-align: start;
	width: 100%;
}

.landing-panel {
	background: var(--cream);
	display: flex;
	flex-direction: column;
	padding-top: var(--header-space);
}

.landing-panel .hero {
	flex: 1;
	min-height: 0;
	padding: 30px var(--content-gutter);
}

.landing-panel .trust-strip {
	flex: 0 0 auto;
	min-height: 76px;
}

.section.page-panel {
	align-content: center;
	margin: 0;
	max-width: none;
	padding: calc(var(--header-space) + 20px) var(--content-gutter) 40px;
}

.services-section {
	gap: 7%;
}

.section.page-panel.services-section {
	align-content: start;
	align-items: start;
}

.service-item {
	padding: 16px 0;
}

.process-section {
	min-height: 100vh;
	min-height: 100svh;
	padding-top: var(--header-space);
}

.process-copy {
	align-self: start;
	margin-top: max(0px, calc((100svh - var(--header-space) - 444px) / 2 - 66px));
	padding: 13px clamp(22px, 3vw, 44px);
}

.process-copy h2 {
	font-size: clamp(2.6rem, 3.5vw, 4rem);
}

.process-copy > p:not(.eyebrow) {
	font-size: .88rem;
	line-height: 1.4;
	margin: 20px 0;
}

.steps {
	margin-bottom: 20px;
}

.steps li {
	padding: 10px 0;
}

.process-steps {
	margin-top: 42px;
}

.process-step {
	border-top: 1px solid rgba(247,235,222,.24);
}

.process-step:last-child {
	border-bottom: 1px solid rgba(247,235,222,.24);
}

.process-step summary {
	align-items: center;
	cursor: pointer;
	display: grid;
	gap: 14px;
	grid-template-columns: 24px 1fr 22px;
	list-style: none;
	padding: 11px 0;
}

.process-step summary::-webkit-details-marker {
	display: none;
}

.process-step summary:focus-visible {
	outline: 2px solid #f0c8d8;
	outline-offset: 3px;
}

.process-step summary > span:first-child {
	color: #dc9fba;
	font-size: .7rem;
}

.process-step summary strong {
	font-family: 'Playfair Display', serif;
	font-size: 1rem;
	font-weight: 500;
}

.process-step-arrow {
	font-size: 1.15rem;
	text-align: right;
	transition: transform .25s ease;
}

.process-step[open] .process-step-arrow {
	transform: rotate(45deg);
}

.process-step > p {
	color: rgba(247,235,222,.72);
	font-size: .82rem;
	line-height: 1.45;
	margin: 0 26px 14px 38px;
}

.guides-section {
	align-content: center;
	background: #263b35;
	color: var(--cream);
}

.guides-top {
	margin-bottom: 30px;
}

.guides-top .eyebrow {
	color: #e7bd79;
}

.guides-top h2 {
	color: var(--cream);
}

.guides-top h2 em {
	color: #e7bd79;
}

.guides-top > div > p:last-child {
	color: rgba(247,235,222,.72);
	font-size: .9rem;
	margin: 18px 0 0;
}

.guide-grid {
	gap: 7%;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.guide-grid article {
	min-height: 0;
	border-top: 1px solid rgba(247,235,222,.3);
	padding-top: 18px;
}

.guide-grid .guide-type {
	color: #e7bd79;
}

.guide-grid h3 {
	color: var(--cream);
	font-size: 1.8rem;
	margin: 14px 0 22px;
}

.guide-timeline {
	list-style: none;
	margin: 0;
	padding: 0;
}

.guide-timeline li {
	display: grid;
	gap: 12px;
	grid-template-columns: 12px minmax(0, 1fr);
	padding-bottom: 16px;
	position: relative;
}

.guide-node {
	background: #e7bd79;
	border: 2px solid #263b35;
	border-radius: 50%;
	height: 10px;
	margin-top: 4px;
	outline: 1px solid #e7bd79;
	position: relative;
	width: 10px;
}

.guide-timeline li:not(:last-child)::after {
	background: rgba(247,235,222,.28);
	content: '';
	left: 4px;
	position: absolute;
	top: 18px;
	width: 1px;
}

.guide-timeline strong {
	color: var(--cream);
	display: block;
	font-family: 'Playfair Display', serif;
	font-size: 1.08rem;
	font-weight: 500;
	line-height: 1.15;
}

.guide-timeline p {
	color: rgba(247,235,222,.72);
	font-size: .78rem;
	line-height: 1.4;
	margin: 5px 0 0;
}

.guide-tax-note {
	align-items: center;
	border-top: 1px solid rgba(247,235,222,.3);
	display: flex;
	gap: 15px;
	margin-top: 14px;
	padding-top: 15px;
}

.guide-tax-note > span {
	align-items: center;
	border: 1px solid #e7bd79;
	border-radius: 50%;
	color: #e7bd79;
	display: inline-flex;
	flex: 0 0 30px;
	height: 30px;
	justify-content: center;
}

.guide-tax-note p {
	color: rgba(247,235,222,.76);
	font-size: .75rem;
	line-height: 1.45;
	margin: 0;
}

.guide-tax-note strong {
	color: var(--cream);
}

.contact-section {
	--contact-gutter: var(--content-gutter);
	align-items: center;
	column-gap: 10%;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	grid-template-rows: 1fr auto;
	row-gap: 14px;
	min-height: 100vh;
	min-height: 100svh;
	padding: var(--header-space) var(--contact-gutter) 0;
}

.contact-intro {
	align-self: center;
	max-width: 480px;
}

.contact-details {
	border-top: 1px solid rgba(247,235,222,.35);
	margin-top: 24px;
	padding-top: 16px;
}

.contact-details .eyebrow {
	color: #f0c8d8;
}

.contact-detail a {
	display: block;
	font-size: .95rem;
	margin: 12px 0;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.contact-detail .contact-person {
	align-items: center;
	display: flex;
	gap: 12px;
}

.contact-person img {
	border: 1px solid rgba(247,235,222,.65);
	border-radius: 50%;
	height: 72px;
	object-fit: cover;
	width: 72px;
}

.contact-detail .contact-email {
	align-items: center;
	display: flex;
	gap: 12px;
}

.contact-email img {
	filter: brightness(0) invert(1);
	height: 72px;
	object-fit: cover;
	width: 72px;
}

.contact-form {
	align-self: center;
	display: grid;
	gap: 4px;
	max-width: 560px;
	width: 100%;
}

.contact-form label {
	color: rgba(247,235,222,.85);
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .1em;
	margin-top: 4px;
	text-transform: uppercase;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
	background: rgba(50,19,40,.18);
	border: 1px solid rgba(247,235,222,.42);
	border-radius: 0;
	color: var(--cream);
	display: block;
	font: inherit;
	font-size: .9rem;
	letter-spacing: 0;
	margin: 0;
	min-height: 38px;
	padding: 10px 12px;
	text-transform: none;
	width: 100%;
}

.contact-form textarea {
	min-height: 78px;
	resize: vertical;
}

.contact-form select option {
	background: var(--paper);
	color: var(--ink);
}

.contact-form input:focus-visible,
.contact-form select:focus-visible,
.contact-form textarea:focus-visible {
	outline: 2px solid var(--cream);
	outline-offset: 2px;
}

.form-note {
	color: rgba(247,235,222,.72);
	font-size: .72rem;
	margin: 2px 0 5px;
}

.contact-form .button {
	align-self: start;
	border: 0;
}

.contact-form .button:disabled {
	cursor: not-allowed;
	opacity: .65;
	transform: none;
}

.form-honeypot {
	height: 1px;
	left: -10000px;
	overflow: hidden;
	position: absolute;
	top: auto;
	width: 1px;
}

.contact-turnstile {
	min-height: 0;
}

.form-status {
	font-size: .8rem;
	line-height: 1.4;
	margin: 0;
}

.form-status[data-state="success"] {
	color: #e2f2dc;
}

.form-status[data-state="error"] {
	color: #ffe0dc;
}

.form-status[data-state="info"] {
	color: rgba(247,235,222,.8);
}

.contact-section h2 {
	font-size: clamp(3rem, 4.2vw, 4.2rem);
}

.site-footer {
	align-items: stretch;
	display: grid;
	gap: 8px;
	grid-column: 1 / -1;
	grid-template-columns: 1fr;
	margin: 0 calc(-1 * var(--contact-gutter));
	padding: 10px var(--contact-gutter) 4px;
}

.footer-top {
	align-items: start;
	display: grid;
	gap: 18px;
	grid-template-columns: 1.1fr 1fr auto;
	padding-bottom: 10px;
}

.footer-brand {
	max-width: 200px;
}

.footer-office .eyebrow,
.footer-action .eyebrow {
	color: #f0c8d8;
	margin-bottom: 10px;
}

.footer-office address {
	color: var(--cream);
	font-size: .85rem;
	font-style: normal;
	line-height: 1.6;
}

.footer-action .button {
	white-space: nowrap;
}

.footer-legal {
	border-top: 1px solid rgba(247,235,222,.3);
	color: rgba(247,235,222,.72);
	font-size: .72rem !important;
	line-height: 1.45;
	padding-top: 10px;
}

.footer-legal a {
	color: var(--cream);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.footer-copyright {
	color: rgba(247,235,222,.65);
	font-size: .68rem !important;
}

.footer-bottom,
.footer-policies {
	align-items: center;
	display: flex;
	gap: 18px;
}

.footer-bottom {
	justify-content: space-between;
}

.footer-policies a {
	color: var(--cream);
	font-size: .68rem;
	text-decoration: underline;
	text-underline-offset: 2px;
}

@supports (animation-timeline: view()) {
	.page-panel > * {
		animation: panel-enter linear both;
		animation-timeline: view();
		animation-range: entry 0% entry 35%;
	}

	@keyframes panel-enter {
		from { opacity: .55; transform: translateY(18px); }
		to { opacity: 1; transform: translateY(0); }
	}
}

@media (max-width: 800px) {
	:root { --content-gutter: 22px; --header-space: 84px; }
	.site-header {
		align-items: center;
		gap: 12px;
		justify-content: flex-start;
		padding: 10px 18px;
		flex-wrap: nowrap;
	}
	.brand { flex: 0 0 auto; gap: 4px; }
	.brand .brand-mark,
	.brand .brand-wordmark { height: clamp(42px, 13.3vw, 52px); }
	.brand .brand-mark { width: clamp(42px, 13.3vw, 52px); }
	.brand .brand-wordmark { width: auto; }
	.menu-toggle {
		align-items: center;
		background: var(--paper);
		border: 1px solid var(--line);
		border-radius: 999px;
		color: var(--plum);
		display: inline-flex;
		font: inherit;
		font-size: .68rem;
		gap: 8px;
		letter-spacing: .08em;
		margin-left: 0;
		min-height: 44px;
		padding: 5px 10px 5px 13px;
		text-transform: uppercase;
		transition: background .2s ease, border-color .2s ease;
	}
	.menu-toggle:hover,
	.menu-toggle:focus-visible { background: var(--cream); border-color: var(--berry); }
	.menu-toggle:focus-visible { outline: 2px solid var(--berry); outline-offset: 3px; }
	.menu-toggle span {
		align-items: center;
		border: 1px solid currentColor;
		border-radius: 50%;
		display: inline-flex;
		font-size: 1rem;
		height: 22px;
		justify-content: center;
		line-height: 1;
		margin: 0;
		width: 22px;
	}
	.site-nav { left: 18px; right: 18px; top: calc(100% + 8px); }
	.landing-panel .hero { padding: 28px var(--content-gutter) 38px; }
	.hero-art { flex-direction: column; }
	.hero-art img { transform: none; width: 42%; }
	.hero-art .art-note {
		bottom: 17%;
		font-size: .9rem;
		left: 25%;
		line-height: 1.05;
		position: absolute;
		width: max-content;
	}
	.hero-art .art-coordinate { bottom: 9%; }
	.trust-strip { padding: 18px var(--content-gutter); }
	.section.page-panel { padding: calc(var(--header-space) + 18px) var(--content-gutter) 44px; }
	.section-heading { margin-bottom: 28px; }
	.service-item { padding: 12px 0; }
	.process-section { padding-top: var(--header-space); }
	.process-copy { margin-top: 0; padding: 48px var(--content-gutter); }
	.guides-top { margin-bottom: 24px; }
	.guide-grid { gap: 24px; grid-template-columns: 1fr; }
	.guide-grid article { padding: 18px 0 0; }
	.guide-grid h3 { margin: 12px 0 18px; }
	.guide-timeline li { padding-bottom: 14px; }
	.guide-tax-note { align-items: flex-start; margin-top: 10px; }
	.contact-section { padding: calc(var(--header-space) + 4px) var(--content-gutter) 0; }
	.contact-details { margin-top: 22px; }
	.contact-form { margin-top: 30px; }
	.site-footer { margin-top: 24px; padding: 18px var(--content-gutter) 12px; }
	.footer-top { gap: 18px; grid-template-columns: 1fr 1fr; }
	.footer-brand { grid-column: 1 / -1; }
	.footer-action { align-self: end; }
	.footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; }
}

@media (max-width: 360px) {
	.site-header { gap: 8px; padding-left: 12px; padding-right: 12px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.page-panel > * { animation: none !important; }
}

@media (min-width: 801px) and (max-width: 1100px) {
	.brand .brand-mark { height: 76px; width: 76px; }
	.brand .brand-wordmark { height: 76px; }
	.site-header { gap: 20px; }
	.site-nav { gap: 18px; }
}

.policy-page {
	background: var(--paper);
	color: var(--ink);
	min-height: 100vh;
}

.policy-header {
	align-items: center;
	background: var(--cream);
	display: flex;
	justify-content: space-between;
	padding: 10px var(--content-gutter);
}

.policy-header .brand .brand-mark,
.policy-header .brand .brand-wordmark {
	height: 56px;
}

.policy-header .brand .brand-mark {
	width: 56px;
}

.policy-header nav,
.policy-footer nav {
	display: flex;
	gap: 22px;
}

.policy-header nav a {
	color: var(--plum);
	font-size: .75rem;
	text-transform: uppercase;
}

.policy-main {
	margin: 0 auto;
	max-width: 900px;
	padding: 58px 28px 84px;
}

.policy-main h1 {
	color: var(--plum);
	font-size: clamp(3rem, 5vw, 4.5rem);
	margin-bottom: 12px;
}

.policy-updated {
	color: var(--muted);
	font-size: .82rem;
	margin: 0 0 26px;
}

.policy-review-note {
	background: var(--cream);
	border-left: 3px solid var(--berry);
	font-size: .88rem;
	line-height: 1.6;
	margin-bottom: 42px;
	padding: 16px 18px;
}

.policy-main section {
	border-top: 1px solid var(--line);
	margin-top: 32px;
	padding-top: 24px;
}

.policy-main h2 {
	font-size: 1.8rem;
	margin-bottom: 16px;
}

.policy-main p,
.policy-main li {
	font-size: .95rem;
	line-height: 1.7;
}

.policy-main li + li {
	margin-top: 8px;
}

.policy-table {
	border-collapse: collapse;
	font-size: .82rem;
	margin: 24px 0;
	width: 100%;
}

.policy-table th,
.policy-table td {
	border-bottom: 1px solid var(--line);
	padding: 12px 10px;
	text-align: left;
	vertical-align: top;
}

.policy-table th {
	color: var(--plum);
	font-size: .7rem;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.policy-main a {
	color: var(--berry);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.policy-footer {
	align-items: center;
	background: var(--plum-deep);
	color: var(--cream);
	display: flex;
	justify-content: space-between;
	padding: 20px var(--content-gutter);
}

.policy-footer a {
	color: var(--cream);
	font-size: .75rem;
}

.policy-footer [aria-current="page"] {
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 600px) {
	.policy-header .brand .brand-mark,
	.policy-header .brand .brand-wordmark { height: 44px; }
	.policy-header .brand .brand-mark { width: 44px; }
	.policy-header nav,
	.policy-footer nav { gap: 12px; }
	.policy-header nav a,
	.policy-footer a { font-size: .65rem; }
	.policy-main { padding: 42px 22px 60px; }
	.policy-main h2 { font-size: 1.55rem; }
	.policy-table { font-size: .74rem; }
	.policy-table th,
	.policy-table td { padding: 9px 6px; }
	.policy-footer { align-items: flex-start; flex-direction: column; gap: 10px; }
}