/*
 * Maryna theme - main stylesheet
 * Ported 1:1 from the static Astro build (marynesterchuk.com).
 * Sections below keep the original cascade order.
 */


/* ======================================================================
   BASE - global layout, nav, page hero, buttons, sections, process, includes, strip, FAQ, CTA band, add-ons, footer, reveal, cursor, floating CTA (from about.css)
   ====================================================================== */

:root {
	--bg: #FFF4E6;
	--bg-warm: #FFE6C8;
	--ink: #1F1A17;
	--ink-soft: #3b322b;
	--muted: #7a6e64;
	--coral: #EF476F;
	--mustard: #FFD166;
	--teal: #06A0B5;
	--sage: #B8C4A3;
	--plum: #6B4F7A;
	--cream: #FFFBF3;
	--line: #2b2420;
}
* {
	box-sizing:border-box;
}
html,
body {
	margin:0;
	padding:0;
}
body {
	background:var(--bg);
	color:var(--ink);
	font-family:DM Sans,system-ui,sans-serif;
	font-size:17px;
	line-height:1.55;
	-webkit-font-smoothing:antialiased;
	overflow-x:hidden;
}
a {
	color:inherit;
}
img {
	max-width:100%;
	display:block;
}
body:before {
	content:"";
	position:fixed;
	inset:0;
	pointer-events:none;
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.12  0 0 0 0 0.10  0 0 0 0 0.08  0 0 0 0.08 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
	opacity:.55;
	mix-blend-mode:multiply;
	z-index:1;
}
.content {
	position:relative;
	z-index:2;
}
.script {
	font-family:Caveat,cursive;
	font-weight:600;
	letter-spacing:-.01em;
}
.display {
	font-family:Fraunces,Times New Roman,serif;
	font-weight:400;
	letter-spacing:-.02em;
}
.eyebrow,
.is-style-eyebrow {
	font-family:DM Sans,sans-serif;
	text-transform:uppercase;
	letter-spacing:.22em;
	font-size:12px;
	font-weight:600;
	color:var(--ink-soft);
}
nav.top {
	position:sticky;
	top:0;
	z-index:50;
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:18px 40px;
	background:#fff4e6cc;
	backdrop-filter:blur(14px);
	-webkit-backdrop-filter:blur(14px);
	border-bottom:1px solid rgba(43,36,32,.08);
}
nav.top .brand {
	display:flex;
	align-items:center;
	gap:10px;
	text-decoration:none;
}
nav.top .brand .mark {
	width:36px;
	height:36px;
	border-radius:50%;
	background:var(--coral);
	display:grid;
	place-items:center;
	color:var(--cream);
	font-family:Caveat,cursive;
	font-size:26px;
	font-weight:700;
	line-height:1;
	transform:rotate(-8deg);
	box-shadow:2px 2px 0 var(--ink);
}
nav.top .brand .name {
	font-family:Fraunces,serif;
	font-size:20px;
	font-weight:500;
}
nav.top ul {
	list-style:none;
	display:flex;
	gap:28px;
	margin:0;
	padding:0;
}
nav.top a.nav-link {
	text-decoration:none;
	font-size:15px;
	font-weight:500;
	position:relative;
}
nav.top a.nav-link:after {
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:-4px;
	height:2px;
	background:var(--coral);
	transform:scaleX(0);
	transform-origin:left;
	transition:transform .3s ease;
}
nav.top a.nav-link:hover:after,
nav.top a.nav-link.current:after {
	transform:scaleX(1);
}
nav.top .cta {
	background:var(--ink);
	color:var(--cream);
	padding:10px 18px;
	border-radius:999px;
	font-size:14px;
	font-weight:500;
	text-decoration:none;
	transition:transform .2s ease,background .2s ease;
}
nav.top .cta:hover {
	background:var(--coral);
	transform:translateY(-1px);
}
.nav-toggle {
	display:none;
	background:none;
	border:none;
	cursor:pointer;
	padding:4px;
	color:var(--ink);
}
@media (max-width: 768px) {
	nav.top {
		padding:14px 20px;
	}
	nav.top ul {
		display:none;
		position:absolute;
		top:100%;
		left:0;
		right:0;
		background:#fff4e6f7;
		backdrop-filter:blur(14px);
		flex-direction:column;
		gap:0;
		padding:16px 0;
		border-bottom:1px solid rgba(43,36,32,.1);
		box-shadow:0 8px 24px #00000014;
	}
	nav.top ul.open {
		display:flex;
	}
	nav.top ul li a {
		padding:12px 20px;
		display:block;
		font-size:16px;
	}
	nav.top .cta {
		display:none;
	}
	.nav-toggle {
		display:block;
	}
}
.page-hero {
	position:relative;
	padding:80px 40px 40px;
	overflow:hidden;
}
.page-hero .crumbs {
	font-size:13px;
	color:var(--muted);
	margin-bottom:20px;
	display:flex;
	gap:8px;
	align-items:center;
}
.page-hero .crumbs a {
	text-decoration:none;
	color:var(--ink);
}
.page-hero .crumbs a:hover {
	color:var(--coral);
}
.page-hero .crumbs .sep {
	opacity:.4;
}
.page-hero-grid {
	display:grid;
	grid-template-columns:1.2fr .8fr;
	gap:60px;
	max-width:1400px;
	margin:0 auto;
	align-items:center;
}
@media (max-width: 1000px) {
	.page-hero-grid {
		grid-template-columns:1fr;
		gap:40px;
	}
}
.page-hero h1 {
	font-family:Fraunces,serif;
	font-weight:400;
	font-size:clamp(52px,7.5vw,112px);
	line-height:.96;
	letter-spacing:-.035em;
	margin:0 0 24px;
}
.page-hero h1 .script-word {
	font-family:Caveat,cursive;
	font-weight:700;
	color:var(--coral);
	display:inline-block;
	transform:rotate(-3deg);
}
.page-hero h1 .italic {
	font-style:italic;
	font-weight:300;
	color:var(--teal);
}
.page-hero .lede,
.page-hero .is-style-lede {
	font-size:19px;
	color:var(--ink-soft);
	max-width:500px;
	margin-bottom:32px;
	line-height:1.6;
}
.page-hero .chips {
	display:flex;
	gap:8px;
	flex-wrap:wrap;
	margin-bottom:28px;
}
.page-hero .chip {
	padding:8px 14px;
	border:1.5px solid var(--ink);
	border-radius:999px;
	background:var(--cream);
	font-size:13px;
	font-weight:500;
}
.page-hero .price-big {
	display:flex;
	align-items:baseline;
	gap:8px;
	margin-bottom:28px;
}
.page-hero .price-big .from {
	font-size:14px;
	color:var(--muted);
	text-transform:uppercase;
	letter-spacing:.16em;
}
.page-hero .price-big .amount {
	font-family:Fraunces,serif;
	font-size:64px;
	font-weight:400;
	line-height:1;
	color:var(--ink);
}
.page-hero .price-big .unit {
	font-size:14px;
	color:var(--muted);
}
.btn-row {
	display:flex;
	gap:14px;
	flex-wrap:wrap;
	align-items:center;
}
.btn {
	display:inline-flex;
	align-items:center;
	gap:10px;
	padding:16px 28px;
	border-radius:999px;
	text-decoration:none;
	font-weight:600;
	font-size:15px;
	transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
	border:2px solid var(--ink);
	cursor:pointer;
}
.btn.primary {
	background:var(--coral);
	color:var(--cream);
	box-shadow:4px 4px 0 var(--ink);
}
.btn.primary:hover {
	transform:translate(-2px,-2px);
	box-shadow:6px 6px 0 var(--ink);
}
.btn.ghost {
	background:transparent;
	color:var(--ink);
}
.btn.ghost:hover {
	background:var(--ink);
	color:var(--cream);
}
.hero-art {
	position:relative;
	min-height:500px;
}
.cover-float {
	position:absolute;
	border-radius:4px;
	box-shadow:0 1px 2px #0000001a,0 8px 24px #3c281426,0 28px 60px #3c28142e;
	overflow:hidden;
	background:#fff;
	transition:transform .5s cubic-bezier(.2,.8,.2,1);
}
.cover-float img {
	width:100%;
	height:100%;
	object-fit:cover;
}
.tape {
	position:absolute;
	top:-12px;
	left:50%;
	transform:translate(-50%) rotate(-2deg);
	width:60px;
	height:18px;
	background:#ffd166b3;
	border-left:1px dashed rgba(0,0,0,.08);
	border-right:1px dashed rgba(0,0,0,.08);
}
section {
	padding:90px 40px;
	position:relative;
}
.section-head {
	max-width:1400px;
	margin:0 auto 50px;
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:32px;
	flex-wrap:wrap;
}
.section-head .title {
	font-family:Fraunces,serif;
	font-size:clamp(36px,4.5vw,64px);
	line-height:1;
	letter-spacing:-.03em;
	margin:0;
	max-width:760px;
	font-weight:400;
}
.section-head .title .hl {
	font-family:Caveat,cursive;
	color:var(--coral);
	font-weight:700;
	font-style:normal;
	font-size:1.05em;
	line-height:.9;
	display:inline-block;
	transform:translateY(4px) rotate(-2deg);
}
.section-head .kicker {
	color:var(--muted);
	font-size:15px;
	max-width:360px;
	line-height:1.55;
}
.process-grid {
	max-width:1400px;
	margin:0 auto;
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:20px;
}
@media (max-width: 900px) {
	.process-grid {
		grid-template-columns:repeat(2,1fr);
	}
}
@media (max-width: 500px) {
	.process-grid {
		grid-template-columns:1fr;
	}
}
.step {
	background:var(--cream);
	border:1.5px solid var(--ink);
	border-radius:20px;
	padding:28px;
	position:relative;
	transition:transform .3s ease;
}
.step:hover {
	transform:translateY(-4px) rotate(-.5deg);
}
.step .num {
	position:absolute;
	top:-18px;
	left:20px;
	width:48px;
	height:48px;
	border-radius:50%;
	background:var(--coral);
	color:var(--cream);
	display:grid;
	place-items:center;
	font-family:Caveat,cursive;
	font-size:28px;
	font-weight:700;
	box-shadow:2px 2px 0 var(--ink);
	transform:rotate(-8deg);
}
.step:nth-child(2) .num {
	background:var(--teal);
}
.step:nth-child(3) .num {
	background:var(--mustard);
	color:var(--ink);
}
.step:nth-child(4) .num {
	background:var(--plum);
}
.step .step-title {
	font-family:Fraunces,serif;
	font-size:22px;
	font-weight:500;
	margin:16px 0 8px;
}
.step .step-body {
	font-size:14px;
	color:var(--ink-soft);
	line-height:1.6;
}
.step .step-time {
	margin-top:14px;
	font-size:12px;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:var(--muted);
	font-weight:600;
}
.includes-layout {
	max-width:1400px;
	margin:0 auto;
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:60px;
	align-items:start;
}
@media (max-width: 900px) {
	.includes-layout {
		grid-template-columns:1fr;
	}
}
.includes-list {
	background:var(--cream);
	border:1.5px solid var(--ink);
	border-radius:24px;
	padding:36px;
	box-shadow:6px 6px 0 var(--ink);
}
.includes-list h3 {
	font-family:Fraunces,serif;
	font-size:28px;
	font-weight:500;
	margin:0 0 24px;
}
.includes-list ul {
	list-style:none;
	padding:0;
	margin:0;
}
.includes-list li {
	padding:14px 0;
	display:flex;
	gap:14px;
	align-items:flex-start;
	border-bottom:1px dashed rgba(0,0,0,.12);
	font-size:15px;
	line-height:1.5;
}
.includes-list li:last-child {
	border:none;
}
.includes-list li:before {
	content:"✓";
	color:var(--cream);
	background:var(--teal);
	width:22px;
	height:22px;
	border-radius:50%;
	display:inline-grid;
	place-items:center;
	font-size:12px;
	font-weight:700;
	flex-shrink:0;
	margin-top:2px;
}
.includes-list li b {
	color:var(--ink);
	font-weight:600;
	display:block;
}
.includes-list li .desc {
	color:var(--muted);
	font-size:13px;
	margin-top:2px;
}
.includes-side h3 {
	font-family:Fraunces,serif;
	font-size:36px;
	font-weight:400;
	margin:0 0 16px;
	line-height:1.1;
	letter-spacing:-.02em;
}
.includes-side h3 .hl {
	font-family:Caveat,cursive;
	font-weight:700;
	color:var(--coral);
	display:inline-block;
	transform:rotate(-2deg);
}
.includes-side p {
	font-size:16px;
	color:var(--ink-soft);
	line-height:1.65;
	margin-bottom:16px;
}
.testimonial-inline {
	background:var(--bg-warm);
	border-radius:16px;
	padding:24px;
	margin-top:24px;
	border-left:4px solid var(--coral);
}
.testimonial-inline .stars {
	color:var(--mustard);
	letter-spacing:2px;
	margin-bottom:8px;
}
.testimonial-inline .body {
	font-style:italic;
	font-size:15px;
	color:var(--ink);
	margin-bottom:12px;
}
.testimonial-inline .who {
	font-size:13px;
	color:var(--muted);
}
.strip {
	max-width:1400px;
	margin:0 auto;
	display:grid;
	gap:20px;
}
.strip.cols-4 {
	grid-template-columns:repeat(4,1fr);
}
.strip.cols-3 {
	grid-template-columns:repeat(3,1fr);
}
@media (max-width: 900px) {
	.strip.cols-4,
	.strip.cols-3 {
		grid-template-columns:repeat(2,1fr);
	}
}
@media (max-width: 500px) {
	.strip.cols-4,
	.strip.cols-3 {
		grid-template-columns:1fr;
	}
}
.strip .item {
	border-radius:14px;
	overflow:hidden;
	aspect-ratio:2/3;
	background:var(--bg-warm);
	transition:transform .35s ease;
}
.strip .item.square {
	aspect-ratio:1;
}
.strip .item:hover {
	transform:translateY(-4px) rotate(-.5deg);
}
.strip .item img {
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .6s ease;
}
.strip .item:hover img {
	transform:scale(1.05);
}
.faq-wrap {
	max-width:900px;
	margin:0 auto;
}
.qa {
	border-bottom:1.5px solid var(--ink);
	padding:20px 0;
}
.qa:first-child {
	border-top:1.5px solid var(--ink);
}
.qa summary {
	list-style:none;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	font-family:Fraunces,serif;
	font-size:22px;
	font-weight:500;
	cursor:pointer;
}
.qa summary::-webkit-details-marker {
	display:none;
}
.qa .plus {
	width:32px;
	height:32px;
	border-radius:50%;
	background:var(--cream);
	border:1.5px solid var(--ink);
	display:grid;
	place-items:center;
	flex-shrink:0;
	font-size:18px;
	transition:transform .3s ease,background .3s ease;
}
.qa[open] .plus {
	transform:rotate(45deg);
	background:var(--coral);
	color:var(--cream);
	border-color:var(--coral);
}
.qa .ans {
	padding:14px 52px 0 0;
	color:var(--ink-soft);
	font-size:15px;
	line-height:1.65;
}
.cta-band {
	background:var(--teal);
	color:var(--cream);
	position:relative;
	overflow:hidden;
	text-align:center;
}
.cta-band:before {
	content:"";
	position:absolute;
	top:-80px;
	right:-80px;
	width:240px;
	height:240px;
	border-radius:50%;
	background:var(--coral);
	opacity:.9;
}
.cta-band:after {
	content:"";
	position:absolute;
	bottom:-80px;
	left:-80px;
	width:220px;
	height:220px;
	border-radius:50%;
	background:var(--mustard);
	opacity:.85;
}
.cta-band .inner {
	position:relative;
	z-index:2;
	max-width:800px;
	margin:0 auto;
}
.cta-band h2 {
	font-family:Fraunces,serif;
	font-size:clamp(44px,6vw,80px);
	font-weight:400;
	line-height:1;
	letter-spacing:-.03em;
	margin:0 0 20px;
	color:var(--cream);
}
.cta-band h2 .script-word {
	font-family:Caveat,cursive;
	font-weight:700;
	color:var(--mustard);
	display:inline-block;
	transform:rotate(-3deg);
}
.cta-band p {
	font-size:18px;
	opacity:.92;
	margin-bottom:28px;
}
.cta-band .btn.primary {
	background:var(--cream);
	color:var(--ink);
	border-color:var(--cream);
	box-shadow:4px 4px 0 var(--ink);
}
.cta-band .btn.ghost {
	color:var(--cream);
	border-color:var(--cream);
}
.cta-band .btn.ghost:hover {
	background:var(--cream);
	color:var(--ink);
}
.addons {
	max-width:1400px;
	margin:0 auto;
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:20px;
}
@media (max-width: 900px) {
	.addons {
		grid-template-columns:1fr;
	}
}
.addon {
	background:var(--cream);
	border:1.5px solid var(--ink);
	border-radius:20px;
	padding:28px;
	display:flex;
	flex-direction:column;
	gap:10px;
}
.addon .label {
	font-family:Fraunces,serif;
	font-size:22px;
	font-weight:500;
}
.addon .desc {
	font-size:14px;
	color:var(--ink-soft);
	line-height:1.55;
	flex:1;
}
.addon .amt {
	font-family:Fraunces,serif;
	font-size:32px;
	color:var(--coral);
	margin-top:12px;
}
.site-footer {
	background:var(--ink);
	color:var(--cream);
	padding:60px 40px 28px;
}
.site-footer .inner {
	max-width:1400px;
	margin:0 auto;
	display:grid;
	grid-template-columns:1.2fr 1fr 1fr;
	gap:48px;
	align-items:start;
}
@media (max-width: 800px) {
	.site-footer .inner {
		grid-template-columns:1fr;
	}
}
.site-footer .sig {
	font-family:Caveat,cursive;
	font-size:64px;
	line-height:.9;
	color:var(--mustard);
}
.site-footer .tag {
	opacity:.7;
	margin-top:8px;
	max-width:340px;
	font-size:14px;
	line-height:1.6;
}
.site-footer h4 {
	font-family:DM Sans,sans-serif;
	font-size:12px;
	letter-spacing:.2em;
	text-transform:uppercase;
	font-weight:600;
	opacity:.7;
	margin:0 0 16px;
}
.site-footer a {
	display:block;
	color:var(--cream);
	text-decoration:none;
	padding:6px 0;
	font-size:14px;
	opacity:.85;
	transition:opacity .2s ease,transform .2s ease;
}
.site-footer a:hover {
	opacity:1;
	transform:translate(4px);
}
.site-footer .legal {
	grid-column:1 / -1;
	margin-top:40px;
	padding-top:24px;
	border-top:1px solid rgba(255,248,234,.12);
	display:flex;
	justify-content:space-between;
	font-size:12px;
	opacity:.6;
	flex-wrap:wrap;
	gap:12px;
}
.reveal {
	opacity:0;
	transform:translateY(24px);
	transition:opacity .8s ease,transform .8s ease;
}
.reveal.in {
	opacity:1;
	transform:translateY(0);
}
.cursor-dot {
	position:fixed;
	left:0;
	top:0;
	width:10px;
	height:10px;
	background:var(--coral);
	border-radius:50%;
	pointer-events:none;
	z-index:9999;
	transform:translate(-50%,-50%);
	mix-blend-mode:multiply;
	transition:width .3s ease,height .3s ease,background .3s ease;
}
.cursor-dot.big {
	width:64px;
	height:64px;
	background:#ffd166b3;
}
@media (pointer: coarse) {
	.cursor-dot {
		display:none;
	}
}
@media (max-width: 768px) {
	section {
		padding:60px 20px;
	}
	.page-hero {
		padding:40px 20px 30px;
	}
}
.addbl-cta {
	position:fixed;
	bottom:28px;
	right:28px;
	z-index:9999;
	display:flex;
	flex-direction:column;
	align-items:center;
}
.addbl-cta__items {
	display:flex;
	flex-direction:column-reverse;
	align-items:center;
	gap:10px;
	margin-bottom:10px;
	pointer-events:none;
}
.addbl-cta__item {
	width:46px;
	height:46px;
	border-radius:50%;
	color:#fff;
	border:2px solid var(--ink);
	box-shadow:2px 2px 0 var(--ink);
	display:grid;
	place-items:center;
	text-decoration:none;
	position:relative;
	opacity:0;
	transform:translateY(20px) scale(.6);
	transition:opacity .22s ease,transform .22s ease,box-shadow .15s ease;
}
.addbl-cta__icon {
	display:flex;
	align-items:center;
	justify-content:center;
	line-height:0;
}
.addbl-cta__item svg {
	width:20px;
	height:20px;
	display:block;
}
.addbl-cta__item:hover {
	box-shadow:3px 3px 0 var(--ink);
	transform:translateY(-2px) scale(1.08)!important;
}
.addbl-cta__tooltip {
	position:absolute;
	right:calc(100% + 10px);
	top:50%;
	transform:translateY(-50%);
	background:var(--ink);
	color:var(--cream);
	font-size:12px;
	font-weight:600;
	font-family:DM Sans,sans-serif;
	white-space:nowrap;
	padding:5px 10px;
	border-radius:6px;
	opacity:0;
	pointer-events:none;
	transition:opacity .15s ease;
}
.addbl-cta__tooltip:before {
	content:"";
	position:absolute;
	left:100%;
	top:50%;
	transform:translateY(-50%);
	border:5px solid transparent;
	border-left-color:var(--ink);
}
.addbl-cta__item:hover .addbl-cta__tooltip {
	opacity:1;
}
.addbl-cta__main {
	width:56px;
	height:56px;
	border-radius:50%;
	background:#bb73aa;
	color:#fff;
	border:2px solid var(--ink);
	box-shadow:3px 3px 0 var(--ink);
	cursor:pointer;
	padding:0;
	display:flex;
	align-items:center;
	justify-content:center;
	position:relative;
	flex-shrink:0;
	transition:transform .2s ease,box-shadow .2s ease;
}
.addbl-cta__main:hover {
	transform:translateY(-2px);
	box-shadow:5px 5px 0 var(--ink);
}
.addbl-cta__main-icon,
.addbl-cta__main-close {
	position:absolute;
	inset:0;
	display:flex;
	align-items:center;
	justify-content:center;
	transition:opacity .2s ease,transform .25s ease;
}
.addbl-cta__main svg {
	width:24px;
	height:24px;
	display:block;
	flex-shrink:0;
}
.addbl-cta__main-icon {
	opacity:1;
	transform:rotate(0) scale(1);
}
.addbl-cta__main-close {
	opacity:0;
	transform:rotate(-90deg) scale(.4);
}
.addbl-cta.is-open .addbl-cta__main-icon {
	opacity:0;
	transform:rotate(90deg) scale(.4);
}
.addbl-cta.is-open .addbl-cta__main-close {
	opacity:1;
	transform:rotate(0) scale(1);
}
.addbl-cta.is-open .addbl-cta__items {
	pointer-events:auto;
}
.addbl-cta.is-open .addbl-cta__item {
	opacity:1;
	transform:translateY(0) scale(1);
}
.addbl-cta.is-open .addbl-cta__item:nth-child(1) {
	transition-delay:.04s;
}
.addbl-cta.is-open .addbl-cta__item:nth-child(2) {
	transition-delay:.09s;
}
.addbl-cta.is-open .addbl-cta__item:nth-child(3) {
	transition-delay:.14s;
}
.addbl-cta.is-open .addbl-cta__item:nth-child(4) {
	transition-delay:.19s;
}
@media (max-width: 600px) {
	.addbl-cta {
		bottom:20px;
		right:16px;
	}
}

/* ======================================================================
   HOME SECTIONS - hero, marquee, masonry, covers, services, testimonials, home contact (from index.css)
   ====================================================================== */

.hero {
	position:relative;
	padding:70px 40px 40px;
	overflow:hidden;
}
.hero .decor {
	position:absolute;
	pointer-events:none;
}
.hero .sun {
	width:220px;
	height:220px;
	border-radius:50%;
	background:radial-gradient(circle at 35% 35%,#FFD79A,var(--mustard) 60%,#D9823A);
	top:60px;
	right:6%;
	filter:blur(.4px);
	animation:floatY 9s ease-in-out infinite;
}
.hero .blob-teal {
	width:160px;
	height:160px;
	border-radius:50%;
	background:var(--teal);
	opacity:.18;
	bottom:80px;
	left:-40px;
	animation:floatY 7s ease-in-out infinite reverse;
}
.hero .squiggle {
	top:140px;
	left:42%;
	color:var(--coral);
	font-size:40px;
	font-family:Caveat,cursive;
	transform:rotate(-12deg);
}
.hero .dots {
	top:260px;
	left:5%;
	opacity:.5;
}
@keyframes floatY {
	0%,
	to {
		transform:translateY(0);
	}
	50% {
		transform:translateY(-18px);
	}
}
.hero-grid {
	display:grid;
	grid-template-columns:1.15fr .85fr;
	gap:50px;
	align-items:center;
	max-width:1400px;
	margin:0 auto;
}
@media (max-width: 1000px) {
	.hero-grid {
		grid-template-columns:1fr;
	}
	.hero-art-wrap {
		order:-1;
	}
}
.hero h1 {
	font-family:Fraunces,serif;
	font-weight:400;
	font-size:clamp(56px,8vw,128px);
	line-height:.95;
	letter-spacing:-.035em;
	margin:0 0 24px;
	color:var(--ink);
}
.hero h1 .italic {
	font-style:italic;
	font-weight:300;
	color:var(--coral);
}
.hero h1 .script-word {
	font-family:Caveat,cursive;
	font-weight:700;
	font-style:normal;
	color:var(--teal);
	display:inline-block;
	transform:rotate(-3deg);
}
.hero .lede,
.hero .is-style-lede {
	font-size:19px;
	color:var(--ink-soft);
	max-width:480px;
	margin-bottom:32px;
	line-height:1.6;
}
.hero-meta {
	display:flex;
	gap:28px;
	margin-top:40px;
	align-items:center;
}
.hero-meta .stat .num {
	font-family:Fraunces,serif;
	font-size:32px;
	font-weight:500;
	color:var(--ink);
	line-height:1;
}
.hero-meta .stat .lbl {
	font-size:13px;
	color:var(--muted);
	margin-top:4px;
}
.hero-meta .stars {
	color:var(--mustard);
	font-size:22px;
	letter-spacing:2px;
}
.hero-art-wrap {
	position:relative;
	height:560px;
}
.hero-art-wrap .cover-float {
	position:absolute;
	border-radius:4px;
	box-shadow:0 1px 2px #0000001a,0 8px 24px #3c281426,0 28px 60px #3c28142e;
	overflow:hidden;
	background:#fff;
	transition:transform .5s cubic-bezier(.2,.8,.2,1);
}
.hero-art-wrap .cover-float img {
	width:100%;
	height:100%;
	object-fit:cover;
}
.hero-art-wrap .c1 {
	width:260px;
	height:380px;
	top:20px;
	left:30px;
	transform:rotate(-7deg);
}
.hero-art-wrap .c2 {
	width:240px;
	height:350px;
	top:70px;
	left:230px;
	transform:rotate(5deg);
	z-index:2;
}
.hero-art-wrap .c3 {
	width:200px;
	height:290px;
	top:300px;
	left:80px;
	transform:rotate(-3deg);
	z-index:3;
}
.hero-art-wrap .c4 {
	width:180px;
	height:260px;
	top:270px;
	left:290px;
	transform:rotate(8deg);
	z-index:4;
}
.marquee {
	border-top:2px solid var(--ink);
	border-bottom:2px solid var(--ink);
	background:var(--ink);
	color:var(--cream);
	overflow:hidden;
	padding:14px 0;
}
.marquee-inner {
	display:flex;
	gap:48px;
	white-space:nowrap;
	animation:scroll-x 40s linear infinite;
	font-family:Fraunces,serif;
	font-size:22px;
	font-style:italic;
	font-weight:300;
}
.marquee-inner span {
	display:inline-flex;
	align-items:center;
	gap:48px;
}
.marquee-inner .dot {
	width:10px;
	height:10px;
	border-radius:50%;
	background:var(--mustard);
	display:inline-block;
}
@keyframes scroll-x {
	0% {
		transform:translate(0);
	}
	to {
		transform:translate(-50%);
	}
}
#illustrations {
	background:var(--cream);
}
.masonry {
	max-width:1400px;
	margin:0 auto;
	column-count:3;
	column-gap:24px;
}
@media (max-width: 900px) {
	.masonry {
		column-count:2;
	}
}
@media (max-width: 560px) {
	.masonry {
		column-count:1;
	}
}
.tile {
	break-inside:avoid;
	margin-bottom:24px;
	position:relative;
	border-radius:14px;
	overflow:hidden;
	background:#eaddc6;
	transition:transform .35s ease;
	cursor:pointer;
}
.tile a.glightbox {
	display:block;
	line-height:0;
}
.tile img {
	width:100%;
	height:auto;
	display:block;
	transition:transform .8s ease;
}
.tile:hover {
	transform:translateY(-4px) rotate(-.4deg);
}
.tile:hover img {
	transform:scale(1.04);
}
.tile .cap {
	position:absolute;
	left:14px;
	bottom:12px;
	background:#fff8eaf2;
	padding:6px 12px;
	border-radius:999px;
	font-size:13px;
	font-weight:500;
	opacity:0;
	transform:translateY(6px);
	transition:all .3s ease;
}
.tile:hover .cap {
	opacity:1;
	transform:translateY(0);
}
#covers {
	background:linear-gradient(180deg,var(--bg) 0%,#F3D9AE 100%);
}
.covers-grid {
	max-width:1400px;
	margin:0 auto;
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:40px 32px;
}
@media (max-width: 1000px) {
	.covers-grid {
		grid-template-columns:repeat(3,1fr);
	}
}
@media (max-width: 700px) {
	.covers-grid {
		grid-template-columns:repeat(2,1fr);
	}
}
.book {
	position:relative;
	perspective:1000px;
	transition:transform .4s ease;
}
.book:hover {
	transform:translateY(-6px);
}
.book .shadow {
	position:absolute;
	left:8%;
	right:8%;
	bottom:-12px;
	height:18px;
	border-radius:50%;
	background:#28190a40;
	filter:blur(10px);
	z-index:0;
}
.book-cover {
	position:relative;
	aspect-ratio:2/3;
	border-radius:2px 6px 6px 2px;
	overflow:hidden;
	box-shadow:-4px 0 #00000014 inset,0 8px 24px #28190a2e;
	background:#fff;
	transform-style:preserve-3d;
	transition:transform .5s cubic-bezier(.2,.8,.2,1);
}
.book:hover .book-cover {
	transform:rotateY(-8deg);
}
.book-cover:after {
	content:"";
	position:absolute;
	left:4px;
	top:0;
	bottom:0;
	width:8px;
	background:linear-gradient(90deg,#0000002e,#0000);
	pointer-events:none;
}
.book-cover a.glightbox {
	display:block;
	width:100%;
	height:100%;
	line-height:0;
}
.book-cover img {
	width:100%;
	height:100%;
	object-fit:cover;
}
.book-meta {
	margin-top:16px;
	display:flex;
	justify-content:space-between;
	align-items:baseline;
	gap:10px;
}
.book-meta .title {
	font-family:Fraunces,serif;
	font-size:18px;
	font-weight:500;
}
.book-meta .year {
	font-size:12px;
	color:var(--muted);
	font-weight:500;
	letter-spacing:.1em;
}
#services {
	background:var(--ink);
	color:var(--cream);
}
#services .section-head .title {
	color:var(--cream);
}
#services .section-head .kicker {
	color:#fff8eaa6;
}
.service-cards {
	max-width:1400px;
	margin:0 auto;
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:24px;
}
@media (max-width: 1100px) {
	.service-cards {
		grid-template-columns:repeat(2,1fr);
	}
}
@media (max-width: 700px) {
	.service-cards {
		grid-template-columns:1fr;
	}
}
.svc {
	background:var(--cream);
	color:var(--ink);
	border-radius:24px;
	padding:36px 32px 32px;
	position:relative;
	overflow:hidden;
	transition:transform .35s ease;
}
.svc:hover {
	transform:translateY(-6px);
}
.svc.featured {
	background:var(--coral);
	color:var(--cream);
}
.svc .ribbon {
	position:absolute;
	top:18px;
	right:-34px;
	transform:rotate(35deg);
	background:var(--mustard);
	color:var(--ink);
	padding:4px 40px;
	font-size:11px;
	font-weight:700;
	letter-spacing:.18em;
	text-transform:uppercase;
}
.svc .svc-title {
	font-family:Fraunces,serif;
	font-size:28px;
	font-weight:500;
	margin-bottom:6px;
	letter-spacing:-.01em;
}
.svc .subtitle {
	font-size:14px;
	opacity:.75;
	margin-bottom:24px;
}
.svc .price {
	display:flex;
	align-items:baseline;
	gap:4px;
	margin-bottom:24px;
}
.svc .price .amount {
	font-family:Fraunces,serif;
	font-size:56px;
	font-weight:400;
	line-height:1;
}
.svc .price .unit {
	font-size:14px;
	opacity:.65;
}
.svc ul {
	list-style:none;
	padding:0;
	margin:0 0 28px;
}
.svc li {
	padding:10px 0;
	font-size:14px;
	display:flex;
	gap:10px;
	align-items:flex-start;
	border-bottom:1px dashed rgba(0,0,0,.1);
}
.svc.featured li {
	border-color:#fff8ea2e;
}
.svc li:before {
	content:"✓";
	color:var(--teal);
	font-weight:700;
}
.svc.featured li:before {
	color:var(--mustard);
}
.svc .svc-cta {
	display:block;
	text-align:center;
	padding:14px;
	border-radius:999px;
	background:var(--ink);
	color:var(--cream);
	text-decoration:none;
	font-weight:600;
	font-size:14px;
	transition:transform .2s ease;
}
.svc.featured .svc-cta {
	background:var(--cream);
	color:var(--ink);
}
.svc .svc-cta:hover {
	transform:translateY(-2px);
}
#testimonials {
	background:var(--bg-warm);
}
.t-grid {
	max-width:1400px;
	margin:0 auto;
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:24px;
}
@media (max-width: 800px) {
	.t-grid {
		grid-template-columns:1fr;
	}
}
.tcard {
	background:var(--cream);
	border-radius:20px;
	padding:36px;
	position:relative;
	border:1.5px solid var(--ink);
	box-shadow:6px 6px 0 var(--ink);
}
.tcard.tilt-l {
	transform:rotate(-1deg);
}
.tcard.tilt-r {
	transform:rotate(1deg);
}
.tcard .quote-mark {
	position:absolute;
	top:16px;
	right:28px;
	font-family:Fraunces,serif;
	font-size:90px;
	font-style:italic;
	color:var(--coral);
	line-height:1;
	opacity:.4;
}
.tcard .stars {
	color:var(--mustard);
	font-size:18px;
	letter-spacing:3px;
	margin-bottom:12px;
}
.tcard .tcard-title {
	font-family:Fraunces,serif;
	font-size:22px;
	font-weight:500;
	margin-bottom:12px;
}
.tcard .body {
	font-size:15px;
	color:var(--ink-soft);
	line-height:1.6;
	margin-bottom:22px;
}
.tcard .who {
	display:flex;
	align-items:center;
	gap:12px;
	padding-top:16px;
	border-top:1px dashed rgba(0,0,0,.15);
}
.tcard .avatar {
	width:44px;
	height:44px;
	border-radius:50%;
	display:grid;
	place-items:center;
	font-family:Caveat,cursive;
	font-size:22px;
	font-weight:700;
	color:var(--cream);
}
.tcard .who .name {
	font-weight:600;
	font-size:14px;
}
.tcard .who .role {
	font-size:12px;
	color:var(--muted);
}
#contact {
	background:var(--teal);
	color:var(--cream);
	position:relative;
	overflow:hidden;
}
#contact:before {
	content:"";
	position:absolute;
	top:-120px;
	right:-120px;
	width:360px;
	height:360px;
	border-radius:50%;
	background:var(--coral);
	opacity:.9;
}
#contact:after {
	content:"";
	position:absolute;
	bottom:-80px;
	left:-80px;
	width:240px;
	height:240px;
	border-radius:50%;
	background:var(--mustard);
	opacity:.85;
}
.contact-wrap {
	position:relative;
	z-index:2;
	max-width:1400px;
	margin:0 auto;
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:60px;
	align-items:start;
}
@media (max-width: 900px) {
	.contact-wrap {
		grid-template-columns:1fr;
	}
}
#contact h2 {
	font-family:Fraunces,serif;
	font-size:clamp(48px,6vw,88px);
	line-height:1;
	letter-spacing:-.03em;
	margin:0 0 24px;
	color:var(--cream);
}
#contact h2 .script-word {
	font-family:Caveat,cursive;
	font-weight:700;
	color:var(--mustard);
	display:inline-block;
	transform:rotate(-3deg);
}
#contact .intro,
#contact .is-style-intro {
	font-size:18px;
	line-height:1.6;
	max-width:480px;
	margin-bottom:32px;
	opacity:.92;
}
#contact .socials {
	display:flex;
	gap:12px;
	flex-wrap:wrap;
}
.social-chip {
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:12px 18px;
	background:#fff8ea24;
	border:1.5px solid rgba(255,248,234,.4);
	border-radius:999px;
	color:var(--cream);
	text-decoration:none;
	font-size:14px;
	font-weight:500;
	transition:background .2s ease,transform .2s ease;
}
.social-chip:hover {
	background:var(--cream);
	color:var(--ink);
	transform:translateY(-2px);
}
.form-card {
	background:var(--cream);
	color:var(--ink);
	border-radius:24px;
	padding:36px;
	border:1.5px solid var(--ink);
	box-shadow:8px 8px 0 var(--ink);
}
.form-card h3 {
	font-family:Fraunces,serif;
	font-size:28px;
	font-weight:500;
	margin:0 0 24px;
}
.field {
	margin-bottom:18px;
}
.field label {
	display:block;
	font-size:12px;
	letter-spacing:.12em;
	text-transform:uppercase;
	font-weight:600;
	color:var(--ink-soft);
	margin-bottom:8px;
}
.field input,
.field textarea {
	width:100%;
	padding:14px 16px;
	border:1.5px solid var(--ink);
	border-radius:12px;
	background:#fff;
	color:var(--ink);
	font-family:inherit;
	font-size:15px;
	outline:none;
	transition:box-shadow .2s ease;
}
.field input:focus,
.field textarea:focus {
	box-shadow:0 0 0 4px #ef476f40;
	border-color:var(--coral);
}
.field textarea {
	min-height:110px;
	resize:vertical;
}
.chip-row {
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-bottom:8px;
}
.chip {
	padding:8px 14px;
	border:1.5px solid var(--ink);
	border-radius:999px;
	background:#fff;
	font-size:13px;
	font-weight:500;
	cursor:pointer;
	transition:all .2s ease;
	user-select:none;
}
.chip:hover {
	background:var(--bg-warm);
}
.chip.active {
	background:var(--ink);
	color:var(--cream);
}
.send {
	width:100%;
	padding:16px;
	border:2px solid var(--ink);
	border-radius:999px;
	background:var(--coral);
	color:var(--cream);
	font-weight:700;
	font-size:15px;
	cursor:pointer;
	box-shadow:4px 4px 0 var(--ink);
	transition:all .2s ease;
}
.send:hover {
	transform:translate(-2px,-2px);
	box-shadow:6px 6px 0 var(--ink);
}
.sent {
	background:var(--teal);
	color:var(--cream);
	padding:18px;
	border-radius:14px;
	font-weight:500;
	text-align:center;
	margin-top:12px;
	display:none;
}
.sent.show {
	display:block;
}
@media (max-width: 768px) {
	.hero {
		padding:40px 20px 30px;
	}
	.hero-art-wrap {
		height:380px;
	}
	.hero-art-wrap .c1 {
		width:170px;
		height:250px;
		left:10px;
	}
	.hero-art-wrap .c2 {
		width:150px;
		height:220px;
		left:160px;
	}
	.hero-art-wrap .c3 {
		width:140px;
		height:200px;
		top:240px;
		left:40px;
	}
	.hero-art-wrap .c4 {
		width:130px;
		height:190px;
		top:220px;
		left:200px;
	}
}

/* ======================================================================
   A+ BANNERS page components
   ====================================================================== */

.banner-mock {
	background:var(--cream);
	border:1.5px solid var(--ink);
	border-radius:16px;
	padding:16px;
	box-shadow:4px 4px 0 var(--ink);
}
.banner-mock .strip-label {
	font-size:11px;
	letter-spacing:.18em;
	text-transform:uppercase;
	color:var(--muted);
	font-weight:600;
	margin-bottom:8px;
}
.banner-row {
	display:grid;
	grid-template-columns:1fr 1.6fr;
	gap:14px;
	padding:14px;
	background:linear-gradient(90deg,#ffd16640,#06a0b526);
	border-radius:10px;
	align-items:center;
	margin-bottom:10px;
}
.banner-row:last-child {
	margin-bottom:0;
}
.banner-row .b-img {
	aspect-ratio:3/4;
	border-radius:6px;
	overflow:hidden;
	box-shadow:0 6px 16px #0000001f;
}
.banner-row .b-img img {
	width:100%;
	height:100%;
	object-fit:cover;
}
.banner-row .b-copy h5 {
	font-family:Fraunces,serif;
	font-size:20px;
	font-weight:500;
	margin:0 0 6px;
	line-height:1.15;
}
.banner-row .b-copy p {
	font-size:13px;
	color:var(--ink-soft);
	line-height:1.5;
	margin:0;
}
.banner-split {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:8px;
	padding:14px;
	background:var(--bg-warm);
	border-radius:10px;
}
.banner-split .cell {
	border-radius:6px;
	padding:14px;
	display:flex;
	flex-direction:column;
	gap:6px;
	justify-content:center;
}
.banner-split .cell.c1 {
	background:var(--coral);
	color:var(--cream);
}
.banner-split .cell.c2 {
	background:var(--teal);
	color:var(--cream);
}
.banner-split .cell.c3 {
	background:var(--mustard);
	color:var(--ink);
}
.banner-split .cell.c4 {
	background:var(--plum);
	color:var(--cream);
}
.banner-split .cell .big {
	font-family:Fraunces,serif;
	font-size:28px;
	line-height:1;
}
.banner-split .cell .lbl {
	font-size:11px;
	letter-spacing:.14em;
	text-transform:uppercase;
	opacity:.85;
}
.metric-row {
	max-width:1400px;
	margin:0 auto;
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:20px;
}
@media (max-width: 800px) {
	.metric-row {
		grid-template-columns:1fr;
	}
}
.metric {
	background:var(--cream);
	border:1.5px solid var(--ink);
	border-radius:20px;
	padding:28px;
}
.metric .n {
	font-family:Fraunces,serif;
	font-size:56px;
	line-height:1;
	color:var(--coral);
	font-weight:400;
}
.metric .l {
	font-size:14px;
	color:var(--ink-soft);
	margin-top:8px;
	line-height:1.5;
}

/* ======================================================================
   FULL PACKAGE page components
   ====================================================================== */

.badge-ribbon,
.is-style-badge {
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:8px 16px;
	background:var(--mustard);
	color:var(--ink);
	border:1.5px solid var(--ink);
	border-radius:999px;
	font-size:12px;
	letter-spacing:.16em;
	text-transform:uppercase;
	font-weight:700;
	margin-bottom:20px;
	transform:rotate(-2deg);
	box-shadow:2px 2px 0 var(--ink);
	display:inline-block;
}
.compare {
	max-width:1200px;
	margin:0 auto;
	background:var(--cream);
	border:1.5px solid var(--ink);
	border-radius:24px;
	overflow:hidden;
	box-shadow:6px 6px 0 var(--ink);
	overflow-x:auto;
}
.compare table {
	width:100%;
	border-collapse:collapse;
	min-width:600px;
}
.compare th,
.compare td {
	padding:16px 18px;
	text-align:left;
	border-bottom:1px dashed rgba(0,0,0,.1);
	font-size:14px;
}
.compare th {
	background:var(--bg-warm);
	font-family:Fraunces,serif;
	font-weight:500;
	font-size:18px;
}
.compare th.featured {
	background:var(--coral);
	color:var(--cream);
}
.compare td.featured {
	background:#ef476f0f;
	font-weight:600;
}
.compare td.check {
	text-align:center;
	font-size:18px;
}
.compare td.check.yes {
	color:var(--teal);
	font-weight:700;
}
.compare td.check.no {
	color:#0003;
}
.compare tr:last-child td {
	border-bottom:none;
}
.compare tr.price-row td {
	background:var(--ink);
	color:var(--cream);
	font-family:Fraunces,serif;
	font-size:22px;
	padding:20px 18px;
}
.compare tr.price-row td.featured {
	background:var(--coral);
}
.bundle-stack {
	max-width:900px;
	margin:0 auto;
	position:relative;
	padding:40px 0;
}
.bundle-card {
	background:var(--cream);
	border:1.5px solid var(--ink);
	border-radius:18px;
	padding:20px 24px;
	display:flex;
	align-items:center;
	gap:20px;
	margin-bottom:14px;
	transition:transform .3s ease;
}
.bundle-card:hover {
	transform:translate(6px) rotate(-.3deg);
}
.bundle-card .ico {
	width:56px;
	height:56px;
	border-radius:50%;
	display:grid;
	place-items:center;
	flex-shrink:0;
	font-family:Caveat,cursive;
	font-size:32px;
	font-weight:700;
	box-shadow:2px 2px 0 var(--ink);
	transform:rotate(-8deg);
}
.bundle-card:nth-child(1) .ico {
	background:var(--coral);
	color:var(--cream);
}
.bundle-card:nth-child(2) .ico {
	background:var(--teal);
	color:var(--cream);
}
.bundle-card:nth-child(3) .ico {
	background:var(--mustard);
	color:var(--ink);
}
.bundle-card:nth-child(4) .ico {
	background:var(--plum);
	color:var(--cream);
}
.bundle-card:nth-child(5) .ico {
	background:#b8c4a3;
	color:var(--ink);
}
.bundle-card .meta {
	flex:1;
}
.bundle-card .t {
	font-family:Fraunces,serif;
	font-size:22px;
	font-weight:500;
	margin-bottom:4px;
}
.bundle-card .d {
	font-size:14px;
	color:var(--ink-soft);
	line-height:1.5;
}
.bundle-card .val {
	font-family:Fraunces,serif;
	font-size:22px;
	color:var(--muted);
	text-decoration:line-through;
}
.bundle-total {
	background:var(--ink);
	color:var(--cream);
	border-radius:20px;
	padding:24px 28px;
	margin-top:24px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:16px;
}
.bundle-total .lbl {
	font-size:14px;
	letter-spacing:.14em;
	text-transform:uppercase;
	opacity:.7;
}
.bundle-total .big {
	font-family:Fraunces,serif;
	font-size:56px;
	line-height:1;
	font-weight:400;
	color:var(--mustard);
}
.bundle-total .save {
	font-size:14px;
	color:var(--cream);
	opacity:.85;
}

/* ======================================================================
   ABOUT page components
   ====================================================================== */

.about-hero-grid {
	display:grid;
	grid-template-columns:.9fr 1.1fr;
	gap:60px;
	max-width:1400px;
	margin:0 auto;
	align-items:center;
}
@media (max-width: 1000px) {
	.about-hero-grid {
		grid-template-columns:1fr;
	}
}
.portrait-wrap {
	position:relative;
	max-width:460px;
	margin:0 auto;
}
.portrait-frame {
	aspect-ratio:3/4;
	border-radius:18px;
	overflow:hidden;
	background:var(--bg-warm);
	border:2px solid var(--ink);
	box-shadow:8px 8px 0 var(--ink);
	transform:rotate(-2deg);
}
.portrait-frame img {
	width:100%;
	height:100%;
	object-fit:cover;
}
.portrait-wrap .sticker {
	position:absolute;
	bottom:-20px;
	right:-20px;
	width:130px;
	height:130px;
	border-radius:50%;
	background:var(--mustard);
	color:var(--ink);
	border:2px solid var(--ink);
	display:grid;
	place-items:center;
	text-align:center;
	font-family:Caveat,cursive;
	font-size:22px;
	font-weight:700;
	line-height:1.1;
	transform:rotate(12deg);
	box-shadow:3px 3px 0 var(--ink);
}
.portrait-wrap .tag-pin {
	position:absolute;
	top:-14px;
	left:40px;
	background:var(--coral);
	color:var(--cream);
	padding:8px 16px;
	border-radius:999px;
	font-size:12px;
	letter-spacing:.14em;
	text-transform:uppercase;
	font-weight:700;
	border:2px solid var(--ink);
	transform:rotate(-6deg);
}
.timeline {
	max-width:880px;
	margin:0 auto;
	position:relative;
}
.timeline:before {
	content:"";
	position:absolute;
	left:36px;
	top:0;
	bottom:0;
	width:3px;
	border-left:3px dashed var(--ink);
	opacity:.4;
}
.tl-item {
	display:grid;
	grid-template-columns:90px 1fr;
	gap:24px;
	align-items:start;
	margin-bottom:36px;
	position:relative;
}
.tl-dot {
	width:72px;
	height:72px;
	border-radius:50%;
	background:var(--coral);
	border:2px solid var(--ink);
	box-shadow:3px 3px 0 var(--ink);
	display:grid;
	place-items:center;
	font-family:Caveat,cursive;
	color:var(--cream);
	font-size:22px;
	font-weight:700;
	line-height:1;
	position:relative;
	z-index:2;
}
.tl-item:nth-child(2) .tl-dot {
	background:var(--teal);
}
.tl-item:nth-child(3) .tl-dot {
	background:var(--mustard);
	color:var(--ink);
}
.tl-item:nth-child(4) .tl-dot {
	background:var(--plum);
}
.tl-item:nth-child(5) .tl-dot {
	background:#b8c4a3;
	color:var(--ink);
}
.tl-card {
	background:var(--cream);
	border:1.5px solid var(--ink);
	border-radius:16px;
	padding:22px 26px;
	box-shadow:3px 3px 0 var(--ink);
}
.tl-card h4 {
	font-family:Fraunces,serif;
	font-size:22px;
	font-weight:500;
	margin:0 0 8px;
}
.tl-card p {
	font-size:15px;
	color:var(--ink-soft);
	line-height:1.6;
	margin:0;
}
.values {
	max-width:1400px;
	margin:0 auto;
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:20px;
}
@media (max-width: 900px) {
	.values {
		grid-template-columns:1fr;
	}
}
.val-card {
	background:var(--cream);
	border:1.5px solid var(--ink);
	border-radius:20px;
	padding:30px;
	transition:transform .35s ease;
}
.val-card:hover {
	transform:translateY(-4px) rotate(-.5deg);
}
.val-card .emoji {
	font-size:36px;
	margin-bottom:14px;
	display:inline-block;
}
.val-card h4 {
	font-family:Fraunces,serif;
	font-size:24px;
	font-weight:500;
	margin:0 0 10px;
}
.val-card p {
	font-size:15px;
	color:var(--ink-soft);
	line-height:1.6;
	margin:0;
}
.facts-row {
	max-width:1400px;
	margin:0 auto;
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:16px;
}
@media (max-width: 900px) {
	.facts-row {
		grid-template-columns:repeat(2,1fr);
	}
}
.fact {
	background:var(--cream);
	border:1.5px solid var(--ink);
	border-radius:16px;
	padding:22px;
}
.fact .k {
	font-size:11px;
	letter-spacing:.18em;
	text-transform:uppercase;
	color:var(--muted);
	font-weight:600;
	margin-bottom:6px;
}
.fact .v {
	font-family:Fraunces,serif;
	font-size:22px;
	line-height:1.2;
}
.tools-grid {
	max-width:1400px;
	margin:0 auto;
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	justify-content:center;
}
.tool-chip {
	padding:12px 20px;
	border:1.5px solid var(--ink);
	border-radius:999px;
	background:var(--cream);
	font-size:14px;
	font-weight:500;
	display:inline-flex;
	gap:8px;
	align-items:center;
}
.tool-chip .em {
	font-size:18px;
}

/* ======================================================================
   CONTACT page components (form rules scoped to .contact-grid)
   ====================================================================== */

.contact-grid {
	max-width:1400px;
	margin:0 auto;
	display:grid;
	grid-template-columns:1fr 1.2fr;
	gap:60px;
	align-items:start;
}
@media (max-width: 1000px) {
	.contact-grid {
		grid-template-columns:1fr;
	}
}
.contact-side h1 {
	font-family:Fraunces,serif;
	font-weight:400;
	font-size:clamp(52px,7vw,104px);
	line-height:.95;
	letter-spacing:-.035em;
	margin:0 0 24px;
}
.contact-side h1 .script-word {
	font-family:Caveat,cursive;
	font-weight:700;
	color:var(--coral);
	display:inline-block;
	transform:rotate(-3deg);
}
.contact-side .lede,
.contact-side .is-style-lede {
	font-size:19px;
	color:var(--ink-soft);
	line-height:1.6;
	max-width:500px;
	margin-bottom:28px;
}
.info-list {
	display:grid;
	gap:14px;
	margin-top:32px;
}
.info-row {
	display:grid;
	grid-template-columns:48px 1fr;
	gap:16px;
	align-items:center;
	background:var(--cream);
	border:1.5px solid var(--ink);
	border-radius:14px;
	padding:16px 20px;
	text-decoration:none;
	color:var(--ink);
	transition:transform .25s ease,box-shadow .25s ease;
}
.info-row:hover {
	transform:translate(4px);
	box-shadow:3px 3px 0 var(--ink);
}
.info-row .ico {
	width:48px;
	height:48px;
	border-radius:50%;
	background:var(--coral);
	color:var(--cream);
	display:grid;
	place-items:center;
	box-shadow:2px 2px 0 var(--ink);
	flex-shrink:0;
}
.info-row:nth-child(2) .ico {
	background:var(--teal);
}
.info-row:nth-child(3) .ico {
	background:var(--mustard);
	color:var(--ink);
}
.info-row:nth-child(4) .ico {
	background:var(--plum);
}
.info-row:nth-child(5) .ico {
	background:#b8c4a3;
	color:var(--ink);
}
.info-row .label {
	font-size:12px;
	letter-spacing:.16em;
	text-transform:uppercase;
	color:var(--muted);
	font-weight:600;
}
.info-row .val {
	font-family:Fraunces,serif;
	font-size:18px;
	margin-top:2px;
}
:where(.contact-grid) .form-card {
	background:var(--cream);
	color:var(--ink);
	border-radius:24px;
	padding:40px;
	border:1.5px solid var(--ink);
	box-shadow:8px 8px 0 var(--ink);
}
:where(.contact-grid) .form-card h3 {
	font-family:Fraunces,serif;
	font-size:32px;
	font-weight:500;
	margin:0 0 8px;
}
:where(.contact-grid) .form-card .sub {
	color:var(--muted);
	font-size:15px;
	margin-bottom:28px;
}
:where(.contact-grid) .field {
	margin-bottom:18px;
}
:where(.contact-grid) .field label {
	display:block;
	font-size:12px;
	letter-spacing:.12em;
	text-transform:uppercase;
	font-weight:600;
	color:var(--ink-soft);
	margin-bottom:8px;
}
:where(.contact-grid) .field input,
:where(.contact-grid) .field textarea,
:where(.contact-grid) .field select {
	width:100%;
	padding:14px 16px;
	border:1.5px solid var(--ink);
	border-radius:12px;
	background:#fff;
	color:var(--ink);
	font-family:inherit;
	font-size:15px;
	outline:none;
	transition:box-shadow .2s ease,border-color .2s ease;
}
:where(.contact-grid) .field input:focus,
:where(.contact-grid) .field textarea:focus,
:where(.contact-grid) .field select:focus {
	box-shadow:0 0 0 4px #ef476f40;
	border-color:var(--coral);
}
:where(.contact-grid) .field textarea {
	min-height:120px;
	resize:vertical;
	font-family:inherit;
}
.two-col {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:14px;
}
@media (max-width: 560px) {
	.two-col {
		grid-template-columns:1fr;
	}
}
:where(.contact-grid) .chip-row {
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}
:where(.contact-grid) .chip {
	padding:9px 14px;
	border:1.5px solid var(--ink);
	border-radius:999px;
	background:#fff;
	font-size:13px;
	font-weight:500;
	cursor:pointer;
	transition:all .2s ease;
	user-select:none;
}
:where(.contact-grid) .chip:hover {
	background:var(--bg-warm);
}
:where(.contact-grid) .chip.active {
	background:var(--ink);
	color:var(--cream);
}
:where(.contact-grid) .send {
	width:100%;
	padding:16px;
	border:2px solid var(--ink);
	border-radius:999px;
	background:var(--coral);
	color:var(--cream);
	font-weight:700;
	font-size:15px;
	cursor:pointer;
	box-shadow:4px 4px 0 var(--ink);
	transition:all .2s ease;
}
:where(.contact-grid) .send:hover {
	transform:translate(-2px,-2px);
	box-shadow:6px 6px 0 var(--ink);
}
:where(.contact-grid) .sent {
	background:var(--teal);
	color:var(--cream);
	padding:18px;
	border-radius:14px;
	font-weight:500;
	text-align:center;
	margin-top:14px;
	display:none;
}
:where(.contact-grid) .sent.show {
	display:block;
}
:where(.contact-grid) .form-error {
	color:#c0392b;
	font-size:14px;
	font-weight:500;
	margin-bottom:10px;
	min-height:0;
	display:none;
}
:where(.contact-grid) .form-error.show {
	display:block;
}
:where(.contact-grid) .send:disabled {
	opacity:.6;
	cursor:not-allowed;
	transform:none!important;
	box-shadow:4px 4px 0 var(--ink)!important;
}

/* ======================================================================
   WORDPRESS ADDITIONS
   Classes that replace inline styles from the static build, block
   helpers, admin bar, editor fixes, journal.
   ====================================================================== */

/* Admin bar offset for the sticky nav */
.admin-bar nav.top { top: 32px; }
@media (max-width: 782px) { .admin-bar nav.top { top: 46px; } }

/* Sections: background presets (were inline styles) */
.is-bg-cream { background: var(--cream); }
.is-bg-warm { background: var(--bg-warm); }
section.is-compact { padding-top: 60px; padding-bottom: 60px; }

/* Paragraph / heading block styles */
p.is-style-eyebrow,
.crumbs { margin: 0 0 20px; }
.page-hero .crumbs { margin-bottom: 20px; }
#contact .is-style-eyebrow,
#contact .eyebrow { color: rgba(255, 248, 234, .8); }
#services .section-head .title .hl { color: var(--mustard); }

/* Section head centered variant */
.section-head.is-center { justify-content: center; text-align: center; flex-direction: column; align-items: center; }
.section-head.is-center .kicker { text-align: center; }

/* Buttons row alignment */
.btn-row.is-center,
.cta-band .btn-row { justify-content: center; }

/* Split intro (left column of the "includes" layout) */
.split-intro h3,
.split-intro .is-style-display {
	font-family: Fraunces, serif;
	font-size: 44px;
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: -.02em;
	margin: 0 0 16px;
}
.split-intro h3 .hl,
.split-intro h3 .script-word {
	font-family: Caveat, cursive;
	color: var(--coral);
	font-weight: 700;
	display: inline-block;
	transform: rotate(-2deg);
}
.split-intro p { font-size: 16px; color: var(--ink-soft); line-height: 1.65; margin: 0 0 12px; }
.split-intro p:last-of-type { margin-bottom: 0; }

/* Home hero: collage column goes first on small screens */
@media (max-width: 1000px) {
	.hero-grid > .m-col:has(.hero-art-wrap) { order: -1; }
}

/* Steps: auto-numbering */
.process-grid { counter-reset: step; }
.process-grid .step { counter-increment: step; }
.process-grid .step .num:empty::before { content: counter(step); }

/* Banner mock (A+ page) - module 3 alternative gradient */
.banner-row.is-pink { background: linear-gradient(90deg, rgba(239, 71, 111, .18), rgba(107, 79, 122, .15)); }
.banners-wrap { max-width: 1100px; margin: 0 auto; display: grid; gap: 24px; }

/* Full package: bundle total */
.bundle-total .was { font-family: Fraunces, serif; font-size: 28px; color: var(--cream); text-decoration: line-through; opacity: .7; }
.bundle-total .btn.primary { background: var(--mustard); color: var(--ink); border-color: var(--mustard); box-shadow: 4px 4px 0 rgba(255, 255, 255, .5); }
.compare th.col-label { width: 32%; }

/* Services: mustard "best value" card (was inline) */
.svc.is-mustard { background: var(--mustard); color: var(--ink); }
.svc.is-mustard .ribbon { background: var(--ink); color: var(--mustard); }
.svc.is-mustard .svc-cta { background: var(--ink); color: var(--cream); }

/* Big quote (About page) */
.big-quote { max-width: 900px; margin: 0 auto; text-align: center; }
.big-quote .q { font-family: Fraunces, serif; font-size: clamp(32px, 4vw, 48px); line-height: 1.15; letter-spacing: -.02em; margin-bottom: 32px; font-weight: 400; }
.big-quote .qm { font-family: Caveat, cursive; color: var(--coral); font-size: 1.3em; line-height: .8; }
.big-quote .by { display: flex; justify-content: center; align-items: center; gap: 14px; }
.big-quote .av { width: 48px; height: 48px; border-radius: 50%; background: var(--coral); color: var(--cream); display: grid; place-items: center; font-family: Caveat, cursive; font-weight: 700; font-size: 24px; }
.big-quote .nm { font-weight: 600; text-align: left; }
.big-quote .rl { font-size: 13px; color: var(--muted); text-align: left; }

/* Contact info: non-link row */
.info-row.is-static { cursor: default; }

/* Contact forms: honeypot */
.form-card .hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.form-card .form-error { color: #c0392b; font-size: 14px; font-weight: 500; margin-bottom: 10px; display: none; }
.form-card .form-error.show { display: block; }
.form-card .send:disabled { opacity: .6; cursor: not-allowed; }

/* Accessibility */
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.skip-link:focus { clip: auto; clip-path: none; height: auto; width: auto; left: 12px; top: 12px; z-index: 100000; background: var(--ink); color: var(--cream); padding: 10px 16px; border-radius: 999px; }

/* ======================================================================
   JOURNAL (blog) - new templates built from existing components
   ====================================================================== */
.journal-grid { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
@media (max-width: 1000px) { .journal-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .journal-grid { grid-template-columns: 1fr; } }
.post-card { background: var(--cream); border: 1.5px solid var(--ink); border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; text-decoration: none; color: var(--ink); transition: transform .35s ease, box-shadow .35s ease; }
.post-card:hover { transform: translateY(-4px) rotate(-.4deg); box-shadow: 6px 6px 0 var(--ink); }
.post-card .thumb { aspect-ratio: 3 / 2; background: var(--bg-warm); overflow: hidden; border-bottom: 1.5px solid var(--ink); }
.post-card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.post-card:hover .thumb img { transform: scale(1.04); }
.post-card .thumb.is-empty { display: grid; place-items: center; font-family: Caveat, cursive; font-size: 56px; color: var(--coral); }
.post-card .body { padding: 24px 26px 28px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.post-card .meta { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.post-card h3 { font-family: Fraunces, serif; font-size: 24px; font-weight: 500; line-height: 1.2; margin: 0; letter-spacing: -.01em; }
.post-card .excerpt { font-size: 15px; color: var(--ink-soft); line-height: 1.6; }
.post-card .excerpt p { margin: 0; }
.post-card .more { margin-top: auto; padding-top: 8px; font-weight: 600; font-size: 14px; color: var(--coral); }

.journal-cats { max-width: 1400px; margin: 0 auto 40px; display: flex; gap: 8px; flex-wrap: wrap; }
.journal-cats a { padding: 8px 14px; border: 1.5px solid var(--ink); border-radius: 999px; background: var(--cream); font-size: 13px; font-weight: 500; text-decoration: none; transition: background .2s ease; }
.journal-cats a:hover, .journal-cats a.current { background: var(--ink); color: var(--cream); }

.pagination-wrap .nav-links { max-width: 1400px; margin: 48px auto 0; display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.pagination-wrap .page-numbers { min-width: 44px; height: 44px; padding: 0 14px; display: inline-grid; place-items: center; border: 1.5px solid var(--ink); border-radius: 999px; background: var(--cream); text-decoration: none; font-weight: 600; font-size: 14px; }
.pagination-wrap .page-numbers.current, .pagination-wrap a.page-numbers:hover { background: var(--ink); color: var(--cream); }

.post-hero { padding: 80px 40px 40px; }
.post-hero .inner { max-width: 820px; margin: 0 auto; }
.post-hero h1 { font-family: Fraunces, serif; font-weight: 400; font-size: clamp(40px, 5.5vw, 76px); line-height: 1; letter-spacing: -.03em; margin: 0 0 20px; }
.post-hero .post-meta { font-size: 14px; color: var(--muted); display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.post-hero .post-meta a { color: var(--ink); }
.post-cover { max-width: 1100px; margin: 0 auto; padding: 0 40px; }
.post-cover img { width: 100%; height: auto; border-radius: 18px; border: 2px solid var(--ink); box-shadow: 8px 8px 0 var(--ink); }
@media (max-width: 768px) { .post-hero { padding: 40px 20px 24px; } .post-cover { padding: 0 20px; } }

.prose { max-width: 720px; margin: 0 auto; font-size: 18px; line-height: 1.75; color: var(--ink-soft); }
.prose > * { margin-top: 0; margin-bottom: 1.2em; }
.prose h2, .prose h3, .prose h4 { font-family: Fraunces, serif; font-weight: 500; color: var(--ink); line-height: 1.15; letter-spacing: -.02em; margin-top: 1.8em; margin-bottom: .6em; }
.prose h2 { font-size: 38px; }
.prose h3 { font-size: 28px; }
.prose h4 { font-size: 22px; }
.prose a { color: var(--coral); text-underline-offset: 3px; }
.prose img { height: auto; border-radius: 14px; }
.prose figure { margin-left: 0; margin-right: 0; }
.prose figcaption { font-size: 14px; color: var(--muted); text-align: center; margin-top: 10px; }
.prose blockquote { margin-left: 0; margin-right: 0; padding: 24px 28px; background: var(--bg-warm); border-left: 4px solid var(--coral); border-radius: 16px; font-family: Fraunces, serif; font-size: 22px; font-style: italic; color: var(--ink); }
.prose blockquote p:last-child { margin-bottom: 0; }
.prose blockquote cite { display: block; margin-top: 10px; font-family: DM Sans, sans-serif; font-size: 14px; font-style: normal; color: var(--muted); }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li { margin-bottom: .4em; }
.prose ul li::marker { color: var(--coral); }
.prose hr { border: none; border-top: 1.5px dashed rgba(0, 0, 0, .2); margin: 2.4em 0; }
.prose code { background: var(--bg-warm); padding: 2px 6px; border-radius: 6px; font-size: .9em; }
.prose .alignwide { max-width: 1100px; margin-left: calc(50% - min(550px, 50vw - 20px)); margin-right: calc(50% - min(550px, 50vw - 20px)); }
.prose .alignfull { max-width: none; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.prose .wp-block-image img { border: 1.5px solid var(--ink); }
.prose .wp-block-gallery { gap: 12px; }
.prose .wp-block-button__link { display: inline-flex; padding: 14px 26px; border-radius: 999px; background: var(--coral); color: var(--cream); border: 2px solid var(--ink); box-shadow: 4px 4px 0 var(--ink); font-weight: 600; text-decoration: none; }

.post-tags { max-width: 720px; margin: 40px auto 0; display: flex; gap: 8px; flex-wrap: wrap; }
.post-tags a { padding: 6px 12px; border: 1.5px solid var(--ink); border-radius: 999px; font-size: 13px; text-decoration: none; background: var(--cream); }
.post-nav { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.post-nav a { display: block; padding: 22px 26px; background: var(--cream); border: 1.5px solid var(--ink); border-radius: 16px; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
.post-nav a:hover { transform: translateY(-3px); box-shadow: 4px 4px 0 var(--ink); }
.post-nav .lbl { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.post-nav .t { font-family: Fraunces, serif; font-size: 20px; margin-top: 4px; }
.post-nav .next { text-align: right; grid-column: 2; }
@media (max-width: 640px) { .post-nav { grid-template-columns: 1fr; } .post-nav .next { grid-column: 1; } }

.search-form { display: flex; gap: 10px; max-width: 520px; }
.search-form input[type="search"] { flex: 1; padding: 14px 18px; border: 1.5px solid var(--ink); border-radius: 999px; background: #fff; font: inherit; font-size: 15px; }
.search-form button { padding: 14px 22px; border: 2px solid var(--ink); border-radius: 999px; background: var(--ink); color: var(--cream); font-weight: 600; cursor: pointer; }

.not-found { text-align: center; padding: 120px 40px; }
.not-found h1 { font-family: Fraunces, serif; font-weight: 400; font-size: clamp(56px, 9vw, 140px); line-height: .95; letter-spacing: -.035em; margin: 0 0 20px; }
.not-found h1 .script-word { font-family: Caveat, cursive; font-weight: 700; color: var(--coral); display: inline-block; transform: rotate(-3deg); }
.not-found p { font-size: 19px; color: var(--ink-soft); margin: 0 auto 32px; max-width: 520px; }
.not-found .btn-row { justify-content: center; }

/* Misc helpers */
.dim { opacity: .5; }
.strip .item a { display: block; height: 100%; line-height: 0; }
p.is-style-badge { margin-top: 0; }
.post-hero .crumbs { font-size: 13px; color: var(--muted); margin-bottom: 20px; display: flex; gap: 8px; align-items: center; }
.post-hero .crumbs a { text-decoration: none; color: var(--ink); }
.post-hero .crumbs a:hover { color: var(--coral); }
.post-hero .crumbs .sep { opacity: .4; }

/* reCAPTCHA v3: hide the floating badge (it collides with the social button) - the form shows the required notice instead */
.grecaptcha-badge { visibility: hidden !important; }
.form-card .recaptcha-note { font-size: 11px; color: var(--muted); margin: 12px 0 0; text-align: center; line-height: 1.4; }
.form-card .recaptcha-note a { color: inherit; }

/* Brand surname in the nav: was ink at 60% opacity (4.4:1, fails WCAG AA) - solid warm grey, same look, 5.6:1 */
nav.top .brand .name i { font-style: italic; color: #6b6058; }

/* Accessibility (WCAG AA 4.5:1): muted grey was #7a6e64 (4.1:1 on warm sections) */
:root { --muted: #6b6058; }
/* Coral as small text on cream is 3.5:1 - use a deeper coral for text links only */
.post-card .more { color: #c62a52; }
