/*
Theme Name:   iPrickU
Theme URI:    https://ipricku.com
Description:  Custom theme for ipricku.com in the iPrickU look (teal, charcoal, Jost and brush script). No page builder needed: homepage sections are edited in Customize > iPrickU, everything else in the normal WordPress editor. Tools > iPrickU setup converts the old Elementor content.
Author:       Paul
Version:      1.26.0
Requires at least: 6.3
Requires PHP: 7.4
License:      GPL-2.0-or-later
Text Domain:  ipricku-main
*/

/* ---------------------------------------------------------------
   Brand tokens (same as the shop)
   --------------------------------------------------------------- */
:root {
	color-scheme: dark;
	--teal: #00dce4;
	--bg: #222a34;
	--bg-alt: #2e333a;
	--panel: #1c202a;
	--white: #ffffff;
	--text: #c0c4ca;
	--muted: #959ba3;
	--outline: #a3a7ab;
	--line: rgba(255,255,255,.12);
	--dot: rgba(255,255,255,.42);
	--red: #e5484d;
	--sans: "Jost", "Futura", "Century Gothic", system-ui, sans-serif;
	--script: "Caveat Brush", "Segoe Script", "Bradley Hand", cursive;
	--r-card: 24px;
	--r-img: 16px;
	--gutter: clamp(16px, 4vw, 40px);
	--shadow: 6px 7px 0 rgba(0,0,0,.35);
	--chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3.5l7 7 7-7M5 12l7 7 7-7' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 12h16M13 5.5l6.5 6.5L13 18.5' fill='none' stroke='%23000' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--rings: radial-gradient(circle, transparent 2.6px, var(--dot) 2.9px, var(--dot) 4px, transparent 4.3px);
}

/* ---------------------------------------------------------------
   Base
   --------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 90px; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
}
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--teal); text-decoration: none; }
a:hover, a:focus { color: var(--white); }
:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }
h1, h2, h3, h4, h5, h6 { color: var(--white); font-family: var(--sans); font-weight: 700; line-height: 1.2; margin: 1.6em 0 .6em; }
strong, b { color: var(--white); font-weight: 600; }
hr { border: 0; height: 1px; background: var(--line); margin: 2.5em 0; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto; margin: 0; z-index: 1000;
	top: 8px; left: 8px; padding: 10px 16px; background: var(--teal); color: var(--panel); border-radius: 999px;
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

.ipm-wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 var(--gutter); }
.ipm-wrap--narrow { max-width: 900px; }
.ipm-wrap--content { max-width: 860px; }
.ipm-center { text-align: center; }

.ipm-chev {
	display: block;
	width: 26px;
	height: 26px;
	background: var(--teal);
	-webkit-mask: var(--chev) center / contain no-repeat;
	mask: var(--chev) center / contain no-repeat;
}
.ipm-script { font-family: var(--script); font-weight: 400; color: var(--white); letter-spacing: 0; text-transform: none; }

/* Buttons: pills with the drop shadow and press effect from the links page */
.ipm-btn,
.wp-block-button__link,
.ipm-prose .wp-element-button,
input[type="submit"], button[type="submit"], .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 52px;
	padding: 0 26px;
	border: 2px solid var(--outline);
	border-radius: 999px;
	background: var(--panel);
	color: var(--white);
	font-family: var(--sans);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .12em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	box-shadow: var(--shadow);
	transition: border-color .2s ease, color .2s ease, background-color .2s ease, transform .15s ease, box-shadow .15s ease;
}
.ipm-btn::after, .wp-block-button__link::after {
	content: "";
	width: 20px;
	height: 20px;
	flex: none;
	background: var(--teal);
	-webkit-mask: var(--arrow) center / contain no-repeat;
	mask: var(--arrow) center / contain no-repeat;
	transition: transform .2s ease;
}
.ipm-btn:hover, .wp-block-button__link:hover, input[type="submit"]:hover, button[type="submit"]:hover, .wpcf7-submit:hover { border-color: var(--teal); color: var(--teal); }
.ipm-btn:hover::after, .wp-block-button__link:hover::after { transform: translateX(4px); }
.ipm-btn:active, .wp-block-button__link:active, input[type="submit"]:active, button[type="submit"]:active { transform: translate(4px, 5px); box-shadow: 2px 2px 0 rgba(0,0,0,.35); }
.ipm-btn--main, input[type="submit"], button[type="submit"], .wpcf7-submit { background: var(--teal); border-color: var(--teal); color: var(--panel); }
.ipm-btn--main::after { background: var(--panel); }
.ipm-btn--main:hover, input[type="submit"]:hover, button[type="submit"]:hover, .wpcf7-submit:hover { background: var(--white); border-color: var(--white); color: var(--panel); }

.ipm-arrow-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--white);
	font-weight: 600;
}
.ipm-arrow-link::after {
	content: "";
	width: 20px;
	height: 20px;
	background: var(--teal);
	-webkit-mask: var(--arrow) center / contain no-repeat;
	mask: var(--arrow) center / contain no-repeat;
	transition: transform .2s ease;
}
a.ipm-arrow-link:hover, a:hover .ipm-arrow-link { color: var(--teal); }
a.ipm-arrow-link:hover::after, a:hover .ipm-arrow-link::after { transform: translateX(4px); }

.ipm-pill {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 18px;
	border: 2px solid var(--line);
	border-radius: 999px;
	color: var(--white);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.ipm-pill:hover { border-color: var(--teal); color: var(--teal); }
.ipm-pill.is-current { background: var(--teal); border-color: var(--teal); color: var(--panel); }

/* ---------------------------------------------------------------
   Header
   --------------------------------------------------------------- */
.ipm-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(34,42,52,.92);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid transparent;
	transition: border-color .2s ease, background-color .2s ease;
}
.admin-bar .ipm-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ipm-header { top: 46px; } }
.ipm-header.is-scrolled { border-bottom-color: var(--line); background: rgba(28,32,42,.96); }
.ipm-header__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 14px var(--gutter);
	display: flex;
	align-items: center;
	gap: 24px;
}
.ipm-brand { flex: none; }
.ipm-brand img { display: block; max-height: 56px; width: auto; }
.ipm-brand__name { color: var(--white); font-weight: 800; font-size: 22px; letter-spacing: .08em; text-transform: uppercase; }
.ipm-nav { margin-left: auto; display: flex; align-items: center; gap: 22px; }
.ipm-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 22px; }
.ipm-menu li { position: relative; }
.ipm-menu a {
	display: block;
	padding: 8px 0;
	color: var(--white);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.ipm-menu a:hover, .ipm-menu .current-menu-item > a { color: var(--teal); }
.ipm-menu .sub-menu {
	list-style: none;
	position: absolute;
	top: 100%;
	left: -16px;
	min-width: 220px;
	margin: 0;
	padding: 8px;
	background: var(--panel);
	border: 1px solid var(--line);
	border-radius: 12px;
	box-shadow: 0 12px 32px rgba(0,0,0,.45);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s;
}
.ipm-menu li:hover > .sub-menu, .ipm-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.ipm-menu .sub-menu a { padding: 8px 10px; border-radius: 8px; font-size: 13px; }
.ipm-menu .sub-menu a:hover { background: rgba(255,255,255,.08); }
.ipm-nav__btn { min-height: 44px; padding: 0 20px; font-size: 13px; box-shadow: 4px 5px 0 rgba(0,0,0,.35); }
.ipm-nav__btn::after { width: 16px; height: 16px; }

.ipm-menu-toggle {
	display: none;
	margin-left: auto;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 0 16px;
	border: 2px solid var(--outline);
	border-radius: 999px;
	background: var(--panel);
	color: var(--white);
	font: 700 13px/1 var(--sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: none;
}
.ipm-menu-toggle__bars, .ipm-menu-toggle__bars::before, .ipm-menu-toggle__bars::after {
	display: block;
	width: 18px;
	height: 2px;
	background: var(--teal);
	border-radius: 2px;
	transition: transform .2s ease, opacity .2s ease;
}
.ipm-menu-toggle__bars { position: relative; }
.ipm-menu-toggle__bars::before, .ipm-menu-toggle__bars::after { content: ""; position: absolute; left: 0; }
.ipm-menu-toggle__bars::before { top: -6px; }
.ipm-menu-toggle__bars::after { top: 6px; }
.ipm-menu-open .ipm-menu-toggle__bars { background: transparent; }
.ipm-menu-open .ipm-menu-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.ipm-menu-open .ipm-menu-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1080px) {
	.ipm-menu-toggle { display: inline-flex; }
	.ipm-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: stretch;
		gap: 16px;
		padding: 16px var(--gutter) 24px;
		background: var(--panel);
		border-bottom: 1px solid var(--line);
		max-height: calc(100vh - 80px);
		overflow-y: auto;
	}
	.ipm-menu-open .ipm-nav { display: flex; }
	.ipm-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.ipm-menu a { padding: 12px 4px; border-bottom: 1px solid var(--line); font-size: 15px; }
	.ipm-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 14px; background: transparent; }
	.ipm-nav__btn { align-self: flex-start; }
}

/* ---------------------------------------------------------------
   Section headings (chevrons + big title + small/script line)
   --------------------------------------------------------------- */
.ipm-section { padding: clamp(56px, 8vw, 104px) 0; position: relative; }
.ipm-section--tight { padding: clamp(32px, 5vw, 56px) 0 clamp(48px, 7vw, 80px); }
.ipm-section--alt { background: var(--bg-alt); }
.ipm-head { text-align: center; margin: 0 auto clamp(32px, 5vw, 56px); }
.ipm-head .ipm-chev { margin: 0 auto 14px; }
.ipm-head__title {
	margin: 0;
	font-size: clamp(34px, 6vw, 58px);
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-shadow: var(--shadow);
}
.ipm-head__sub { margin: 10px 0 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 4px 10px; }
.ipm-head__small { color: var(--teal); font-size: 14px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.ipm-head__sub .ipm-script { font-size: 30px; line-height: 1.1; }

/* ---------------------------------------------------------------
   Hero
   --------------------------------------------------------------- */
.ipm-hero { position: relative; overflow: hidden; padding: clamp(40px, 7vw, 96px) 0 clamp(56px, 8vw, 110px); }
.ipm-hero::before, .ipm-hero::after {
	content: "";
	position: absolute;
	width: 180px;
	height: 180px;
	background-image: var(--rings);
	background-size: 20px 20px;
	opacity: .45;
	pointer-events: none;
}
.ipm-hero::before { top: 30px; right: -30px; }
.ipm-hero::after { bottom: 20px; left: -40px; }
.ipm-hero__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
	align-items: center;
	gap: clamp(32px, 6vw, 80px);
	position: relative;
	z-index: 1;
}
.ipm-hero__kicker {
	display: inline-block;
	margin: 0;
	padding: 6px 18px;
	border: 2px solid var(--outline);
	border-radius: 999px;
	color: var(--white);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
}
.ipm-hero__name {
	margin: 10px 0 0;
	color: var(--teal);
	font-size: clamp(72px, 13vw, 150px);
	font-weight: 800;
	line-height: .95;
	letter-spacing: .03em;
	text-transform: uppercase;
	text-shadow: 7px 8px 0 rgba(0,0,0,.35);
}
.ipm-hero__iam { margin: 18px 0 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.ipm-hero__small { color: var(--white); font-size: 15px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.ipm-hero__iam .ipm-script { font-size: clamp(32px, 4vw, 42px); line-height: 1.05; }
.ipm-hero__bio { margin-top: 18px; max-width: 58ch; font-size: 18px; }
.ipm-hero__bio p { margin: 0 0 .8em; }
.ipm-hero__btns { display: flex; flex-wrap: wrap; gap: 14px 16px; margin: 26px 0 0; }
.ipm-stats { list-style: none; margin: 34px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 16px 36px; }
.ipm-stats li { display: flex; flex-direction: column; }
.ipm-stats__num { color: var(--white); font-size: 40px; font-weight: 800; line-height: 1; }
.ipm-stats__label { margin-top: 6px; color: var(--muted); font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.ipm-stats li:first-child .ipm-stats__num { color: var(--teal); }
.ipm-hero__media { display: flex; flex-direction: column; align-items: center; gap: 28px; }
.ipm-hero__photo {
	width: min(100%, 420px);
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	overflow: hidden;
	background: var(--panel);
	box-shadow: 0 0 0 7px var(--bg), 0 0 0 9px rgba(255,255,255,.22), 14px 16px 0 9px rgba(0,0,0,.35);
}
.ipm-hero__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

.ipm-social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ipm-social a {
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	border: 2px solid var(--outline);
	border-radius: 50%;
	background: var(--panel);
	color: var(--white);
	transition: border-color .2s ease, color .2s ease, transform .15s ease;
}
.ipm-social a:hover { border-color: var(--teal); color: var(--teal); }
.ipm-social a:active { transform: translate(2px, 2px); }
.ipm-social svg { width: 20px; height: 20px; }
.ipm-social--hero { justify-content: center; }

@media (max-width: 860px) {
	.ipm-hero__inner { grid-template-columns: minmax(0, 1fr); text-align: center; }
	.ipm-hero__media { order: -1; }
	.ipm-hero__photo { width: min(70vw, 280px); }
	.ipm-hero__iam, .ipm-hero__btns, .ipm-stats { justify-content: center; }
	.ipm-hero__bio { margin-left: auto; margin-right: auto; }
	.ipm-stats li { align-items: center; }
}

/* ---------------------------------------------------------------
   Services
   --------------------------------------------------------------- */
.ipm-services { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ipm-service {
	position: relative;
	padding: 30px 28px 32px;
	background: var(--panel);
	border-radius: var(--r-card);
	box-shadow: var(--shadow);
	display: flex;
	flex-direction: column;
}
.ipm-service .ipm-chev { width: 22px; height: 22px; margin-bottom: 18px; }
.ipm-service__small { margin: 0; color: var(--teal); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ipm-service__title { margin: 6px 0 12px; font-size: 24px; }
.ipm-service__text { flex: 1 1 auto; font-size: 16px; }
.ipm-service__text p { margin: 0 0 1em; }
@media (max-width: 1024px) { .ipm-services { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ipm-services { grid-template-columns: minmax(0, 1fr); } }

/* ---------------------------------------------------------------
   Portfolio grid
   --------------------------------------------------------------- */
.ipm-filters ul { list-style: none; margin: 0 0 32px; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.ipm-works { list-style: none; margin: 0 0 36px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ipm-work__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 14px 14px 22px;
	background: var(--panel);
	border-radius: var(--r-card);
	color: var(--text);
	box-shadow: var(--shadow);
	transition: transform .15s ease, box-shadow .15s ease;
}
.ipm-work__link:hover { color: var(--text); }
.ipm-work__link:active { transform: translate(4px, 5px); box-shadow: 2px 2px 0 rgba(0,0,0,.35); }
.ipm-work__img { display: block; aspect-ratio: 1 / 1; border-radius: var(--r-img); overflow: hidden; background: var(--bg); margin-bottom: 16px; }
.ipm-work__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.ipm-work__link:hover .ipm-work__img img { transform: scale(1.04); }
.ipm-work__noimg { display: block; width: 100%; height: 100%; background-image: var(--rings); background-size: 20px 20px; opacity: .4; }
.ipm-work__cat { padding: 0 6px; color: var(--teal); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ipm-work__title { padding: 2px 6px 10px; color: var(--white); font-size: 18px; font-weight: 600; line-height: 1.35; flex: 1 1 auto; }
.ipm-work__more { margin: 0 6px; }
.ipm-work__more { display: inline-flex; align-items: center; gap: 10px; color: var(--white); font-weight: 600; font-size: 15px; }
.ipm-work__more::after { content: ""; width: 20px; height: 20px; background: var(--teal); -webkit-mask: var(--arrow) center / contain no-repeat; mask: var(--arrow) center / contain no-repeat; transition: transform .2s ease; }
.ipm-work__link:hover .ipm-work__more { color: var(--teal); }
.ipm-work__link:hover .ipm-work__more::after { transform: translateX(4px); }
@media (max-width: 960px) { .ipm-works { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (max-width: 520px) {
	.ipm-works { gap: 12px; }
	.ipm-work__link { padding: 10px 10px 16px; border-radius: 18px; }
	.ipm-work__title { font-size: 15px; }
	.ipm-work__more { font-size: 14px; }
}
.ipm-portfolio { margin: 1em 0; }

/* Page numbers: the timeline dots from ipricku.com */
.ipm-pager { display: flex; justify-content: center; margin: 24px 0; }
.ipm-pager ul.page-numbers { list-style: none; margin: 0; padding: 0; display: inline-flex; align-items: center; flex-wrap: wrap; justify-content: center; }
.ipm-pager li { display: inline-flex; align-items: center; }
.ipm-pager li + li::before { content: ""; width: 18px; height: 2px; background: var(--outline); }
.ipm-pager .page-numbers:not(ul) {
	width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center;
	border: 2px solid var(--outline); border-radius: 50%; background: var(--bg);
	color: var(--white); font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums;
}
.ipm-pager .page-numbers.dots { border-color: transparent; }
.ipm-pager .page-numbers.current { background: var(--teal); border-color: var(--teal); color: var(--panel); }
.ipm-pager a.page-numbers:hover { border-color: var(--teal); color: var(--teal); }

/* ---------------------------------------------------------------
   About teaser
   --------------------------------------------------------------- */
.ipm-about__inner { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(32px, 6vw, 80px); align-items: center; }
.ipm-about__photo { aspect-ratio: 1 / 1; max-width: 360px; width: 100%; justify-self: center; border-radius: 50%; overflow: hidden; background: var(--panel); box-shadow: 0 0 0 7px var(--bg-alt), 0 0 0 9px rgba(255,255,255,.22), 14px 16px 0 9px rgba(0,0,0,.35); }
.ipm-about__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ipm-about .ipm-head { text-align: left; margin-bottom: 20px; }
.ipm-about .ipm-head .ipm-chev { margin-left: 0; }
.ipm-about .ipm-head__sub { justify-content: flex-start; }
@media (max-width: 860px) {
	.ipm-about__inner { grid-template-columns: minmax(0, 1fr); text-align: center; }
	.ipm-about__photo { display: none; }
	.ipm-about .ipm-head { text-align: center; }
	.ipm-about .ipm-head .ipm-chev { margin-left: auto; }
	.ipm-about .ipm-head__sub { justify-content: center; }
}

/* ---------------------------------------------------------------
   FAQ (and any details block in the editor)
   --------------------------------------------------------------- */
.ipm-faq { display: grid; gap: 12px; }
.ipm-faq__item, .ipm-prose details, .wp-block-details {
	background: var(--panel);
	border-radius: 18px;
	border: 1px solid var(--line);
	padding: 0 22px;
	transition: border-color .2s ease;
}
.ipm-faq__item[open], .ipm-prose details[open] { border-color: rgba(0,220,228,.45); }
.ipm-faq__item summary, .ipm-prose details summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 0;
	color: var(--white);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4;
}
.ipm-faq__item summary::-webkit-details-marker, .ipm-prose details summary::-webkit-details-marker { display: none; }
.ipm-faq__item summary::after, .ipm-prose details summary::after {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	background: var(--teal);
	-webkit-mask: var(--chev) center / contain no-repeat;
	mask: var(--chev) center / contain no-repeat;
	transition: transform .2s ease;
}
.ipm-faq__item[open] summary::after, .ipm-prose details[open] summary::after { transform: rotate(180deg); }
.ipm-faq__a { padding: 0 0 18px; border-top: 1px solid var(--line); padding-top: 14px; }
.ipm-faq__a p { margin: 0 0 .8em; }
.ipm-prose details > :not(summary) { margin-top: 0; }
.ipm-prose details summary .ipm-date { display: block; color: var(--muted); font-size: 14px; font-weight: 500; }

/* ---------------------------------------------------------------
   Post cards
   --------------------------------------------------------------- */
.ipm-cards { list-style: none; margin: 0 0 36px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ipm-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--panel);
	border-radius: var(--r-card);
	overflow: hidden;
	color: var(--text);
	box-shadow: var(--shadow);
	transition: transform .15s ease, box-shadow .15s ease;
}
.ipm-card__link:hover { color: var(--text); }
.ipm-card__link:active { transform: translate(4px, 5px); box-shadow: 2px 2px 0 rgba(0,0,0,.35); }
.ipm-card__img { display: block; aspect-ratio: 16 / 10; background: var(--bg); overflow: hidden; }
.ipm-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.ipm-card__link:hover .ipm-card__img img { transform: scale(1.04); }
.ipm-card__noimg { display: block; width: 100%; height: 100%; background-image: var(--rings); background-size: 20px 20px; opacity: .35; }
.ipm-card__body { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px 24px; flex: 1 1 auto; }
.ipm-card__meta { color: var(--teal); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ipm-card__title { color: var(--white); font-size: 20px; font-weight: 700; line-height: 1.3; }
.ipm-card__excerpt { font-size: 15px; flex: 1 1 auto; }
.ipm-card__link:hover .ipm-arrow-link { color: var(--teal); }
@media (max-width: 960px) { .ipm-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ipm-cards { grid-template-columns: minmax(0, 1fr); } }

/* ---------------------------------------------------------------
   Contact
   --------------------------------------------------------------- */
.ipm-contact { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 60px); align-items: start; }
.ipm-contact__info { padding: 28px; background: var(--panel); border-radius: var(--r-card); box-shadow: var(--shadow); }
.ipm-contact__form > p:first-child { margin-top: 0; }
.ipm-info { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 14px; }
.ipm-info li { display: flex; flex-direction: column; }
.ipm-info__label { color: var(--teal); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ipm-info__value { color: var(--white); font-size: 17px; font-weight: 500; }
.ipm-info__value a { color: var(--white); }
.ipm-info__value a:hover { color: var(--teal); }
@media (max-width: 860px) { .ipm-contact { grid-template-columns: minmax(0, 1fr); } }

/* Forms (Contact Form 7 and others) */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="search"], input[type="number"], input[type="password"], textarea, select {
	width: 100%;
	padding: 14px 20px;
	border: 2px solid var(--outline);
	border-radius: 26px;
	background: var(--panel);
	color: var(--white);
	font: 400 16px/1.5 var(--sans);
}
input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]) { border-radius: 999px; }
textarea { min-height: 160px; }
input:focus, textarea:focus, select:focus { border-color: var(--teal); outline: none; }
::placeholder { color: var(--muted); opacity: 1; }
.wpcf7 label, .comment-form label { display: block; color: var(--white); font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.wpcf7 p { margin: 0 0 16px; }
.wpcf7-not-valid-tip { color: #ff8a8a; font-size: 14px; }
.wpcf7 form .wpcf7-response-output { margin: 16px 0 0; padding: 12px 16px; border-radius: 14px; border-color: var(--teal); color: var(--white); }
.search-form { display: flex; gap: 10px; max-width: 520px; margin: 0 auto 24px; }
.search-form label { flex: 1 1 auto; }
.search-form .search-submit { min-height: 52px; }

/* ---------------------------------------------------------------
   Page title band
   --------------------------------------------------------------- */
.ipm-pagehead { padding: clamp(36px, 6vw, 72px) 0 clamp(20px, 3vw, 32px); text-align: center; position: relative; overflow: hidden; }
.ipm-pagehead::before {
	content: "";
	position: absolute;
	top: 10px;
	right: -20px;
	width: 140px;
	height: 140px;
	background-image: var(--rings);
	background-size: 20px 20px;
	opacity: .35;
	pointer-events: none;
}
.ipm-pagehead .ipm-chev { margin: 14px auto; }
.ipm-pagehead__title {
	margin: 0 auto;
	max-width: 20ch;
	font-size: clamp(30px, 5vw, 52px);
	font-weight: 800;
	letter-spacing: .03em;
	text-transform: uppercase;
	text-shadow: var(--shadow);
}
.ipm-pagehead__sub { margin: 12px 0 0; color: var(--muted); font-size: 15px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.ipm-pagehead__sub a { color: var(--teal); }
.ipm-crumbs { font-size: 14px; color: var(--muted); }
.ipm-crumbs a { color: var(--muted); }
.ipm-crumbs a:hover { color: var(--teal); }
.ipm-crumbs .separator { color: var(--teal); padding: 0 4px; }

/* ---------------------------------------------------------------
   Content from the block editor (posts, pages, portfolio)
   --------------------------------------------------------------- */
.ipm-prose { font-size: 18px; }
.ipm-prose > *:first-child { margin-top: 0; }
.ipm-prose p, .ipm-prose ul, .ipm-prose ol, .ipm-prose figure, .ipm-prose table, .ipm-prose blockquote { margin: 0 0 1.3em; }
.ipm-prose h2 { font-size: clamp(26px, 3.4vw, 34px); }
.ipm-prose h3 { font-size: clamp(21px, 2.6vw, 25px); }
.ipm-prose h4 { font-size: 19px; }
.ipm-prose a:not(.wp-block-button__link):not(.ipm-btn) { text-decoration: underline; text-decoration-color: rgba(0,220,228,.45); text-underline-offset: 3px; }
.ipm-prose a:not(.wp-block-button__link):not(.ipm-btn):hover { text-decoration-color: currentColor; }
.ipm-prose ul, .ipm-prose ol { padding-left: 1.3em; }
.ipm-prose li { margin: .3em 0; }
.ipm-prose ul li::marker { color: var(--teal); }
.ipm-prose img { border-radius: var(--r-img); }
.ipm-prose figcaption, .wp-element-caption { color: var(--muted); font-size: 14px; text-align: center; margin-top: 8px; }
.ipm-prose blockquote, .wp-block-quote {
	margin-left: 0;
	padding: 18px 24px;
	border-left: 4px solid var(--teal);
	background: var(--panel);
	border-radius: 0 16px 16px 0;
	color: var(--white);
}
.ipm-prose table { width: 100%; border-collapse: collapse; font-size: 16px; }
.ipm-prose th, .ipm-prose td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; }
.ipm-prose th { color: var(--white); }
.ipm-prose .wp-block-separator { border: 0; height: 1px; background: var(--line); margin: 2.4em 0; opacity: 1; }
.ipm-prose .wp-block-columns { gap: 32px; }
.ipm-prose .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; margin: 1.6em 0; }
.ipm-prose .wp-block-button__link { background: var(--teal); border-color: var(--teal); color: var(--panel); }
.ipm-prose .wp-block-button__link::after { background: var(--panel); }
.ipm-prose .wp-block-button__link:hover { background: var(--white); border-color: var(--white); color: var(--panel); }
.ipm-prose .is-style-outline .wp-block-button__link { background: var(--panel); border-color: var(--outline); color: var(--white); }
.ipm-prose .is-style-outline .wp-block-button__link::after { background: var(--teal); }
.ipm-prose .wp-block-gallery { gap: 12px; }
.ipm-prose .wp-block-gallery img { border-radius: 12px; }
.ipm-prose .wp-block-embed iframe { border-radius: var(--r-img); }
.ipm-prose .alignwide { margin-left: calc(-1 * min(120px, 8vw)); margin-right: calc(-1 * min(120px, 8vw)); max-width: none; }
.ipm-prose .alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; }
.ipm-prose .alignleft { float: left; margin: .3em 1.4em 1em 0; }
.ipm-prose .alignright { float: right; margin: .3em 0 1em 1.4em; }
.ipm-prose .aligncenter { margin-left: auto; margin-right: auto; }
@media (max-width: 960px) { .ipm-prose .alignwide { margin-left: 0; margin-right: 0; } }
.ipm-prose .has-background { border-radius: 16px; padding: 18px 22px; }
.ipm-prose .ipm-portfolio .ipm-works { margin-bottom: 24px; }
.ipm-feature { margin: 0 0 1.6em; }
.ipm-feature img { width: 100%; border-radius: var(--r-card); }
.ipm-tags { margin-top: 2em; display: flex; flex-wrap: wrap; gap: 8px; }
.ipm-tags a { display: inline-block; padding: 4px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--text) !important; text-decoration: none !important; font-size: 14px; }
.ipm-tags a:hover { border-color: var(--teal); color: var(--teal) !important; }
.ipm-postnav { display: flex; justify-content: space-between; gap: 20px; margin: 2.4em 0 1.6em; padding-top: 1.6em; border-top: 1px solid var(--line); font-size: 15px; font-weight: 600; }
.ipm-postnav a { text-decoration: none !important; color: var(--white); }
.ipm-postnav a:hover { color: var(--teal); }
.ipm-postnav__next { margin-left: auto; text-align: right; }

/* Portfolio item details (Piercing / Jewelry / Company) */
.ipm-prose ul.ipm-details {
	list-style: none;
	padding: 18px 22px;
	background: var(--panel);
	border-radius: 18px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 8px 24px;
}
.ipm-prose ul.ipm-details li { margin: 0; display: flex; flex-direction: column; color: var(--white); font-weight: 500; }
.ipm-prose ul.ipm-details strong { color: var(--teal); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }

/* Old Elementor leftovers inside converted content */
.ipm-prose .elementor-widget-container { all: unset; }

/* ---------------------------------------------------------------
   "Ready to get pierced?" band
   --------------------------------------------------------------- */
.ipm-cta { background: linear-gradient(180deg, var(--bg) 0%, #1d4650 60%, #0a8f99 100%); padding: clamp(48px, 7vw, 80px) 0; }
.ipm-cta__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; }
.ipm-cta__text { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.ipm-cta__small { color: var(--white); font-size: 16px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.ipm-cta__text .ipm-script { font-size: clamp(36px, 5vw, 52px); line-height: 1.05; }
.ipm-cta__btns { margin: 0; display: flex; flex-wrap: wrap; gap: 14px 16px; }
@media (max-width: 700px) { .ipm-cta__inner { justify-content: center; text-align: center; } .ipm-cta__text, .ipm-cta__btns { justify-content: center; } }

/* ---------------------------------------------------------------
   Footer: studio info + link columns for every page Google should find
   --------------------------------------------------------------- */
.ipm-foot { background: var(--panel); border-top: 1px solid var(--line); color: var(--text); }
.ipm-foot__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: clamp(48px, 7vw, 80px) var(--gutter) 32px;
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) repeat(3, minmax(0, 1fr)) minmax(0, 1.25fr);
	gap: 36px 28px;
}
.ipm-foot__about .custom-logo { max-height: 56px; width: auto; }
.ipm-foot__note { margin: 14px 0 20px; font-size: 15px; }
.ipm-foot .ipm-info { gap: 10px; }
.ipm-foot .ipm-info__value { font-size: 15px; }
.ipm-foot__title { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: 14px; letter-spacing: .14em; text-transform: uppercase; }
.ipm-foot__title .ipm-chev { width: 16px; height: 16px; }
.ipm-foot__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: 15px; line-height: 1.5; }
.ipm-foot__links a { color: var(--text); }
.ipm-foot__links a:hover { color: var(--teal); }
.ipm-foot__col--areas .ipm-foot__links { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
.ipm-foot__bottom {
	max-width: 1240px;
	margin: 0 auto;
	padding: 20px var(--gutter) 28px;
	border-top: 1px solid var(--line);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 10px 24px;
	font-size: 14px;
	color: var(--muted);
}
.ipm-foot__bottom p { margin: 0; }
.ipm-foot__sites { display: flex; flex-wrap: wrap; gap: 18px; }
.ipm-foot__sites a { color: var(--white); font-weight: 600; }
.ipm-foot__sites a:hover { color: var(--teal); }
@media (max-width: 1100px) {
	.ipm-foot__inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ipm-foot__about { grid-column: 1 / -1; }
	.ipm-foot__col--areas { grid-column: span 2; }
	.ipm-foot__col--areas .ipm-foot__links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.ipm-foot__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ipm-foot__col--areas { grid-column: 1 / -1; }
	.ipm-foot__col--areas .ipm-foot__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ipm-foot__bottom { justify-content: center; text-align: center; }
}

/* Comments */
.ipm-comments { margin-top: 3em; }
.ipm-comments__list { list-style: none; padding: 0; }
.ipm-comments .comment-body { padding: 16px 20px; background: var(--panel); border-radius: 16px; margin-bottom: 12px; }

/* Galleries and columns (backup for WordPress's own block styles) */
.ipm-prose .wp-block-gallery.has-nested-images { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 1.6em; }
.ipm-prose .wp-block-gallery.has-nested-images figure.wp-block-image { margin: 0; width: calc((100% - 24px) / 3); flex-grow: 1; }
.ipm-prose .wp-block-gallery.columns-4.has-nested-images figure.wp-block-image { width: calc((100% - 36px) / 4); flex-grow: 0; }
.ipm-prose .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image img { width: 100%; height: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.ipm-prose .wp-block-gallery.columns-4 figure.wp-block-image img { background: #fff; object-fit: contain !important; }
.ipm-prose .wp-block-columns { display: flex; flex-wrap: wrap; gap: 32px; margin-bottom: 1.6em; }
.ipm-prose .wp-block-column { flex: 1 1 0; min-width: 0; }
@media (max-width: 781px) {
	.ipm-prose .wp-block-columns { flex-direction: column; }
	.ipm-prose .wp-block-column { flex-basis: 100% !important; }
	.ipm-prose .wp-block-gallery.has-nested-images figure.wp-block-image,
	.ipm-prose .wp-block-gallery.columns-4.has-nested-images figure.wp-block-image { width: calc((100% - 12px) / 2); }
}

/* Hero stats fit on one row */
.ipm-stats li { max-width: 170px; }
@media (max-width: 860px) {
	.ipm-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
	.ipm-stats li { max-width: none; }
	.ipm-stats__num { font-size: 30px; }
	.ipm-stats__label { font-size: 11px; letter-spacing: .08em; line-height: 1.35; }
	.ipm-social--hero { gap: 8px; }
	.ipm-social--hero a { width: 38px; height: 38px; }
	.ipm-social--hero svg { width: 18px; height: 18px; }
}

/* Fold-out sections: keep the summary text together */
.ipm-faq__item summary, .ipm-prose details summary { display: block; position: relative; padding-right: 34px; }
.ipm-faq__item summary::after, .ipm-prose details summary::after { position: absolute; right: 0; top: 50%; margin-top: -9px; }
.ipm-prose details summary strong { color: var(--white); }

/* Portfolio grid inside page content */
.ipm-prose .ipm-portfolio a { text-decoration: none !important; }
.ipm-prose .ipm-works, .ipm-prose .ipm-filters ul, .ipm-prose .ipm-pager ul { padding-left: 0; }
.ipm-prose .ipm-works li, .ipm-prose .ipm-filters li, .ipm-prose .ipm-pager li { margin: 0; }
.ipm-prose .ipm-work__title { font-size: 17px; }
@media (max-width: 860px) { .ipm-hero::after { display: none; } }

/* Logo */
.ipm-brand__logo { display: block; color: var(--white); line-height: 0; transition: color .2s ease; }
.ipm-brand__logo:hover { color: var(--teal); }
.ipm-logo { display: block; height: 46px; width: auto; }
.ipm-foot .ipm-logo { height: 52px; }
@media (max-width: 600px) { .ipm-logo { height: 38px; } }

/* Accolade pills overlapping the photo, like the old site */
.ipm-hero__figure { position: relative; width: min(100%, 420px); }
.ipm-hero__figure .ipm-hero__photo { width: 100%; }
.ipm-hero .ipm-stats { list-style: none; margin: 0; padding: 0; display: block; }
.ipm-stats .ipm-stat {
	position: absolute;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 26px 10px 22px;
	border: 2px solid var(--outline);
	border-radius: 999px;
	background: var(--panel);
	box-shadow: var(--shadow);
	white-space: nowrap;
	max-width: none;
	flex-direction: row;
	text-align: left;
}
.ipm-stat__num { color: var(--white); font-size: 40px; font-weight: 800; line-height: 1; letter-spacing: .01em; }
.ipm-stat__num strong { color: var(--teal); font-weight: 800; }
.ipm-stat__label { color: var(--white); font-size: 13px; font-weight: 700; line-height: 1.25; letter-spacing: .1em; text-transform: uppercase; white-space: normal; max-width: 120px; }
.ipm-stat__label strong { color: var(--teal); font-weight: 700; }
.ipm-stats .ipm-stat--1 { top: 14%; left: -18%; }
.ipm-stats .ipm-stat--2 { top: 50%; right: -18%; }
.ipm-stats .ipm-stat--3 { bottom: 0; left: -12%; }
.ipm-hero__media .ipm-social--hero { margin-top: 18px; }
@media (max-width: 1100px) {
	.ipm-stats .ipm-stat--1 { left: -8%; }
	.ipm-stats .ipm-stat--2 { right: -8%; }
	.ipm-stats .ipm-stat--3 { left: -6%; }
}
@media (max-width: 860px) {
	.ipm-hero__figure { width: auto; display: flex; flex-direction: column; align-items: center; }
	.ipm-hero__figure .ipm-hero__photo { width: min(70vw, 280px); }
	.ipm-hero .ipm-stats { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 26px; }
	.ipm-stats .ipm-stat { position: static; padding: 8px 20px 8px 18px; gap: 10px; }
	.ipm-stat__num { font-size: 30px; }
	.ipm-stat__label { font-size: 11px; max-width: 110px; }
}

/* Accolade pills: a row under the buttons and socials (1.0.3) */
.ipm-hero__text .ipm-social--hero { justify-content: flex-start; margin-top: 26px; }
.ipm-hero .ipm-hero__text .ipm-stats { display: flex; flex-wrap: wrap; gap: 14px; margin: 26px 0 0; padding: 0; }
.ipm-hero .ipm-hero__text .ipm-stats .ipm-stat { position: static; padding: 8px 22px 8px 18px; gap: 10px; }
.ipm-hero .ipm-hero__text .ipm-stat__num { font-size: 32px; }
.ipm-hero .ipm-hero__text .ipm-stat__label { font-size: 12px; max-width: 120px; }
@media (max-width: 860px) {
	.ipm-hero__text .ipm-social--hero, .ipm-hero .ipm-hero__text .ipm-stats { justify-content: center; }
	.ipm-hero .ipm-hero__text .ipm-stat__num { font-size: 28px; }
	.ipm-hero .ipm-hero__text .ipm-stat__label { font-size: 11px; }
}
.ipm-hero .ipm-hero__text .ipm-stats { gap: 12px; }
.ipm-hero .ipm-hero__text .ipm-stats .ipm-stat { padding: 8px 18px 8px 16px; gap: 9px; }
.ipm-hero .ipm-hero__text .ipm-stat__num { font-size: 30px; }
.ipm-hero .ipm-hero__text .ipm-stat__label { font-size: 11px; max-width: 104px; letter-spacing: .08em; }
.ipm-hero::after { display: none; }
.ipm-hero .ipm-hero__text .ipm-stat__label { max-width: 92px; }
.ipm-hero .ipm-hero__text .ipm-stats .ipm-stat { padding: 8px 16px 8px 15px; }
@media (min-width: 861px) { .ipm-hero__inner { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); } }

/* 1.0.4: socials under the photo, accolade pills centered under everything, two-line labels */
.ipm-hero__media .ipm-social--hero { justify-content: center; margin-top: 0; }
.ipm-hero .ipm-hero__stats {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	margin: 8px 0 0;
	padding: 0;
}
.ipm-hero .ipm-hero__stats .ipm-stat { position: static; padding: 10px 24px 10px 20px; gap: 12px; }
.ipm-hero .ipm-hero__stats .ipm-stat__num { font-size: 36px; }
.ipm-hero .ipm-hero__stats .ipm-stat__label { font-size: 12px; max-width: none; white-space: nowrap; letter-spacing: .1em; line-height: 1.3; }
@media (max-width: 860px) {
	.ipm-hero .ipm-hero__stats { gap: 12px; margin-top: 4px; }
	.ipm-hero .ipm-hero__stats .ipm-stat { padding: 8px 18px 8px 16px; gap: 10px; }
	.ipm-hero .ipm-hero__stats .ipm-stat__num { font-size: 28px; }
	.ipm-hero .ipm-hero__stats .ipm-stat__label { font-size: 11px; }
}
.ipm-hero__media .ipm-social--hero { gap: 8px; flex-wrap: nowrap; }
.ipm-hero__media .ipm-social--hero a { width: 38px; height: 38px; }
.ipm-hero__media .ipm-social--hero svg { width: 18px; height: 18px; }
@media (max-width: 380px) { .ipm-hero__media .ipm-social--hero { flex-wrap: wrap; } }

/* 1.0.5: "Hello, my name is" without the pill, outlined PAUL */
.ipm-hero__kicker {
	padding: 0;
	border: 0;
	border-radius: 0;
	font-size: 17px;
	font-weight: 800;
	letter-spacing: .12em;
}
.ipm-hero__kicker strong { color: var(--teal); font-weight: 800; }
.ipm-hero__name {
	margin-top: 14px;
	letter-spacing: .08em;
	-webkit-text-stroke: 3px #0d1117;
	paint-order: stroke fill;
	text-shadow: 6px 7px 0 rgba(0,0,0,.45);
}
@media (max-width: 860px) { .ipm-hero__kicker { font-size: 15px; } }

/* 1.1.0: portfolio items laid out like the old site */
.ipm-wrap--wide { max-width: 1240px; }
.ipm-portfolio-single .ipm-pagehead { text-align: left; padding-bottom: 8px; }
.ipm-portfolio-single .ipm-pagehead::before { display: none; }
.ipm-portfolio-single .ipm-pagehead .ipm-wrap { max-width: 1240px; }
.ipm-portfolio-single .ipm-pagehead .ipm-chev { margin: 14px 0; }
.ipm-portfolio-single .ipm-pagehead__title { max-width: none; margin: 0; }
.ipm-portfolio-single .ipm-pagehead__sub { color: var(--teal); font-weight: 700; letter-spacing: .1em; margin-top: 8px; }
.ipm-prose .ipm-topbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px 32px;
	margin: 0 0 32px;
}
.ipm-prose .ipm-topbar ul.ipm-details { flex: 1 1 520px; margin: 0; }
.ipm-prose .ipm-topbar .wp-block-buttons { margin: 0; flex: none; }
.ipm-portfolio-single .ipm-prose > .wp-block-image img { width: 100%; border-radius: var(--r-card); }
/* Description: text left, small logo/photo right; extra photos two across */
.ipm-portfolio-single .ipm-prose > h3.has-text-align-center, .ipm-prose .has-text-align-center { text-align: center; }
.ipm-portfolio-single .ipm-prose > h3 { font-size: clamp(26px, 3.4vw, 34px); margin: 1.6em 0 1em; }
.ipm-prose .wp-block-columns.ipm-desc { gap: 40px; align-items: flex-start; }
.ipm-prose .ipm-desc .wp-block-column:last-child img { width: 100%; border-radius: var(--r-img); }
.ipm-portfolio-single .ipm-prose .wp-block-gallery.has-nested-images { gap: 32px; margin-top: 2.4em; }
.ipm-prose .wp-block-gallery.columns-2.has-nested-images figure.wp-block-image { width: calc((100% - 32px) / 2); flex-grow: 0; }
.ipm-prose .wp-block-gallery.columns-1.has-nested-images figure.wp-block-image { width: 100%; }
.ipm-portfolio-single .ipm-prose .wp-block-gallery.is-cropped figure.wp-block-image img { aspect-ratio: 1 / 1; border-radius: var(--r-img); }
@media (max-width: 781px) {
	.ipm-prose .ipm-desc .wp-block-column:last-child { max-width: 320px; }
	.ipm-portfolio-single .ipm-prose .wp-block-gallery.has-nested-images { gap: 12px; }
	.ipm-prose .wp-block-gallery.columns-2.has-nested-images figure.wp-block-image { width: calc((100% - 12px) / 2); }
}
.ipm-portfolio-single .ipm-postnav { max-width: 860px; margin-left: auto; margin-right: auto; }
@media (min-width: 782px) { .ipm-prose .wp-block-columns { flex-wrap: nowrap; } }

/* 1.2.0: richer "Ready to get pierced?" band */
.ipm-cta { position: relative; overflow: hidden; padding: clamp(56px, 8vw, 96px) 0 clamp(40px, 6vw, 72px); background: linear-gradient(180deg, var(--bg) 0%, #1d4650 55%, #0a8f99 100%); }
.ipm-cta::before {
	content: "";
	position: absolute;
	top: 24px;
	right: -30px;
	width: 180px;
	height: 180px;
	background-image: var(--rings);
	background-size: 20px 20px;
	opacity: .4;
	pointer-events: none;
}
.ipm-cta__inner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 24px 36px; position: relative; }
.ipm-cta__photo {
	width: 140px;
	height: 140px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--panel);
	box-shadow: 0 0 0 5px var(--bg), 0 0 0 7px rgba(255,255,255,.22), 10px 12px 0 7px rgba(0,0,0,.35);
}
.ipm-cta__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ipm-cta__sub { margin: 8px 0 0; color: var(--white); font-size: 16px; opacity: .85; }
.ipm-cta__btns { justify-content: flex-end; }
.ipm-cta__workhead { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 44px 0 14px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.18); }
.ipm-cta__worktitle { margin: 0; color: var(--white); font-size: 14px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.ipm-cta__work { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.ipm-cta__work a {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	border-radius: 16px;
	overflow: hidden;
	background: var(--panel);
	box-shadow: 5px 6px 0 rgba(0,0,0,.3);
	transition: transform .15s ease, box-shadow .15s ease;
}
.ipm-cta__work a:active { transform: translate(3px, 4px); box-shadow: 2px 2px 0 rgba(0,0,0,.3); }
.ipm-cta__work img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.ipm-cta__work a:hover img { transform: scale(1.06); }
.ipm-cta__work span {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	padding: 22px 10px 8px;
	background: linear-gradient(180deg, transparent, rgba(0,0,0,.75));
	color: var(--white);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	opacity: 0;
	transition: opacity .2s ease;
}
.ipm-cta__work a:hover span, .ipm-cta__work a:focus span { opacity: 1; }
@media (max-width: 960px) {
	.ipm-cta__inner { grid-template-columns: auto minmax(0, 1fr); }
	.ipm-cta__btns { grid-column: 1 / -1; justify-content: flex-start; }
	.ipm-cta__work { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.ipm-cta__inner { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; }
	.ipm-cta__photo { width: 110px; height: 110px; }
	.ipm-cta__text, .ipm-cta__btns { justify-content: center; }
	.ipm-cta__work { gap: 10px; }
	.ipm-cta__work li:nth-child(n+7) { display: none; }
}

/* 1.3.0: simpler footer, spread across the width */
.ipm-foot__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 40px 48px; }
.ipm-foot__inner > div { flex: 1 1 200px; max-width: 300px; }
.ipm-foot__about { flex-basis: 260px; }
.ipm-foot__about .ipm-social { margin-top: 18px; }
.ipm-foot .ipm-info { gap: 14px; }
.ipm-foot .ipm-info__value { font-size: 16px; }
@media (max-width: 640px) {
	.ipm-foot__inner > div { flex-basis: 100%; max-width: none; }
}

/* 1.3.1: phones read Hello / PAUL / I am a... first, then photo, socials, bio, buttons, accolades */
@media (max-width: 860px) {
	.ipm-hero__inner { gap: 0; justify-items: center; }
	.ipm-hero__text, .ipm-hero__media { display: contents; }
	.ipm-hero__kicker { order: 1; margin: 0; }
	.ipm-hero__name { order: 2; }
	.ipm-hero__iam { order: 3; justify-content: center; }
	.ipm-hero__photo { order: 4; margin-top: 30px; }
	.ipm-hero__media .ipm-social--hero { order: 5; margin-top: 26px; }
	.ipm-hero__bio { order: 6; margin-top: 24px; }
	.ipm-hero__btns { order: 7; }
	.ipm-hero .ipm-hero__stats { order: 8; margin-top: 30px; }
}
@media (max-width: 860px) { .ipm-hero::before { top: auto; bottom: 30px; right: -60px; opacity: .3; } }

/* 1.3.2: on phones the socials sit under the buttons */
@media (max-width: 860px) {
	.ipm-hero__media .ipm-social--hero { order: 8; margin-top: 26px; }
	.ipm-hero .ipm-hero__stats { order: 9; }
}

/* 1.4.0: services slide sideways: 3 across on desktop, 2 on tablets, swipe on phones */
.ipm-slider { position: relative; }
.ipm-services.ipm-slider__track {
	display: flex !important;
	gap: 22px;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	padding: 4px 4px 18px;
	margin: 0 -4px;
}
.ipm-slider__track::-webkit-scrollbar { display: none; }
.ipm-slider__track > li {
	flex: 0 0 calc((100% - 44px) / 3);
	scroll-snap-align: start;
}
@media (max-width: 1024px) { .ipm-slider__track > li { flex-basis: calc((100% - 22px) / 2); } }
@media (max-width: 640px) {
	.ipm-services.ipm-slider__track { gap: 14px; }
	.ipm-slider__track > li { flex-basis: 86%; }
}

/* Timeline dots, like the old site */
.ipm-slider__dots { display: flex; justify-content: center; align-items: center; margin-top: 26px; }
.ipm-slider.is-static .ipm-slider__dots { display: none; }
.ipm-slider__dot {
	position: relative;
	width: 14px;
	height: 14px;
	margin: 0 0 0 30px;
	padding: 0;
	border: 2px solid var(--outline);
	border-radius: 50%;
	background: var(--bg-alt);
	cursor: pointer;
	box-shadow: none;
	transition: background-color .2s ease, border-color .2s ease;
}
.ipm-slider__dot:first-child { margin-left: 0; }
.ipm-slider__dot + .ipm-slider__dot::before {
	content: "";
	position: absolute;
	top: 50%;
	right: calc(100% + 2px);
	width: 30px;
	height: 2px;
	margin-top: -1px;
	background: var(--outline);
}
.ipm-slider__dot::after {
	content: "";
	position: absolute;
	inset: -22px;
	border: 1px solid rgba(255,255,255,.35);
	border-radius: 50%;
	opacity: 0;
	transform: scale(.6);
	transition: opacity .25s ease, transform .25s ease;
	pointer-events: none;
}
.ipm-slider__dot.is-active { background: var(--teal); border-color: var(--teal); }
.ipm-slider__dot.is-active::after { opacity: 1; transform: none; }
.ipm-slider__dot:hover { border-color: var(--teal); }
.ipm-slider__dot:focus-visible { outline: 2px solid var(--teal); outline-offset: 4px; }

/* 1.4.1: gallery pages load in place */
.ipm-portfolio .ipm-works { transition: opacity .2s ease; }
.ipm-portfolio.is-loading .ipm-works, .ipm-portfolio.is-loading .ipm-pager { opacity: .35; pointer-events: none; }

/* 1.5.0: Load more under the portfolio grid */
.ipm-loadmore { text-align: center; margin: 8px 0 0; }
.ipm-loadmore .is-busy { opacity: .7; pointer-events: none; }

/* 1.5.1: menu links centered between the logo and the Book now button */
@media (min-width: 1081px) {
	.ipm-nav { flex: 1 1 auto; }
	.ipm-menu { margin: 0 auto; justify-content: center; }
}

/* Keep the corner dots behind the booking band text */
.ipm-cta__inner { z-index: 1; }

/* 1.8.0: portfolio item top bar: [Learn about this piercing]  Jewelry | Company  [Get the look] */
.ipm-prose .ipm-topbar { flex-wrap: nowrap; }
.ipm-prose .ipm-topbar ul.ipm-details { flex: 1 1 auto; grid-template-columns: repeat(auto-fit, minmax(150px, max-content)); justify-content: center; text-align: center; gap: 8px 48px; }
.ipm-prose .ipm-topbar ul.ipm-details li { align-items: center; }
.ipm-prose .ipm-topbar .ipm-topbar__about .wp-block-button__link { background: transparent; border-color: var(--outline); color: var(--white); }
.ipm-prose .ipm-topbar .ipm-topbar__about .wp-block-button__link::after { background: var(--teal); }
.ipm-prose .ipm-topbar .ipm-topbar__about .wp-block-button__link:hover { border-color: var(--teal); color: var(--teal); background: transparent; }
@media (max-width: 900px) {
	.ipm-prose .ipm-topbar { flex-wrap: wrap; }
	.ipm-prose .ipm-topbar ul.ipm-details { flex: 1 1 100%; order: -1; }
	.ipm-prose .ipm-topbar .wp-block-buttons { flex: 1 1 0; }
	.ipm-prose .ipm-topbar .wp-block-button, .ipm-prose .ipm-topbar .wp-block-button__link { width: 100%; justify-content: center; }
}
@media (max-width: 560px) {
	.ipm-prose .ipm-topbar .wp-block-buttons { flex: 1 1 100%; }
	.ipm-prose .ipm-topbar .ipm-topbar__about { order: 2; }
}

/* 1.8.1: the top bar sits centered as one group */
@media (min-width: 901px) {
	.ipm-prose .ipm-topbar { justify-content: center; gap: 20px 28px; }
	.ipm-prose .ipm-topbar ul.ipm-details { flex: 0 1 auto; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 48px; padding: 18px 32px; }
}

/* 1.8.2: no "Description" heading, so give the write-up a little room under the photo */
.ipm-portfolio-single .ipm-prose > .wp-block-image + p { margin-top: 1.6em; }

/* 1.8.3: portfolio item title, chevron and breadcrumbs centered over the centered top bar */
.ipm-portfolio-single .ipm-pagehead { text-align: center; }
.ipm-portfolio-single .ipm-pagehead .ipm-chev { margin: 14px auto; }
.ipm-portfolio-single .ipm-pagehead__title { margin: 0 auto; }

/* 1.8.4: homepage intro pattern is a grid of captive bead rings */
:root { --cbr: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'><circle cx='18' cy='18' r='11' fill='none' stroke='%23fff' stroke-width='1.8'/><circle cx='10.2' cy='25.8' r='4.2' fill='%23fff'/></svg>"); }
.ipm-hero::before { width: 216px; height: 216px; background-image: var(--cbr); background-size: 36px 36px; opacity: .5; }

/* 1.8.5: smaller rings, and a second patch in the bottom-left corner of the intro (desktop) */
.ipm-hero::before, .ipm-hero::after { width: 168px; height: 168px; background-image: var(--cbr); background-size: 28px 28px; opacity: .5; }
.ipm-hero::after { display: block; bottom: 24px; left: -28px; }
@media (max-width: 860px) { .ipm-hero::after { display: none; } }

/* 1.8.6: bottom-left rings run off the edge, as if they continue under "What I do" */
.ipm-hero::after { bottom: -70px; left: -14px; }

/* 1.9.0: big faded script word behind each homepage section (Services, Portfolio, F.A.Q. ...) */
.ipm-section[data-bgword] { overflow: hidden; isolation: isolate; }
.ipm-section[data-bgword]::before {
	content: attr(data-bgword);
	position: absolute;
	left: 50%;
	bottom: -0.34em;
	transform: translateX(-50%);
	z-index: -1;
	font-family: var(--script);
	font-size: clamp(120px, 20vw, 300px);
	line-height: 1;
	white-space: nowrap;
	color: rgba(255,255,255,.022);
	pointer-events: none;
	user-select: none;
}

/* 1.10.0: services slider shows it slides: chevron arrows hug the dots, and the next card peeks in */
.ipm-slider__track > li { flex-basis: calc((100% - 66px) / 3.18); }
@media (max-width: 1024px) { .ipm-slider__track > li { flex-basis: calc((100% - 44px) / 2.2); } }
@media (max-width: 640px) { .ipm-slider__track > li { flex-basis: 86%; } }
.ipm-slider .ipm-slider__track { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 70px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 70px), transparent); }
.ipm-slider.is-end .ipm-slider__track { -webkit-mask-image: none; mask-image: none; }
.ipm-slider:not(.is-start):not(.is-end) .ipm-slider__track { -webkit-mask-image: linear-gradient(90deg, transparent, #000 22px, #000 calc(100% - 70px), transparent); mask-image: linear-gradient(90deg, transparent, #000 22px, #000 calc(100% - 70px), transparent); }
.ipm-slider.is-end:not(.is-start) .ipm-slider__track { -webkit-mask-image: linear-gradient(90deg, transparent, #000 22px); mask-image: linear-gradient(90deg, transparent, #000 22px); }
.ipm-slider__arrow {
	width: 40px; height: 40px; flex: none;
	display: inline-flex; align-items: center; justify-content: center;
	padding: 0; border-radius: 50%;
	border: 2px solid var(--outline); background: var(--panel); color: var(--teal);
	box-shadow: 3px 4px 0 rgba(0,0,0,.35);
	cursor: pointer; transition: border-color .2s ease, opacity .2s ease, transform .1s ease;
}
.ipm-slider__arrow--prev { margin-right: 18px; }
.ipm-slider__arrow--prev svg { transform: rotate(180deg); }
.ipm-slider__arrow--next { margin-left: 18px; }
.ipm-slider__arrow:hover:not(:disabled) { border-color: var(--teal); }
.ipm-slider__arrow:active:not(:disabled) { transform: translate(3px, 4px); box-shadow: 0 0 0 rgba(0,0,0,.35); }
.ipm-slider__arrow:disabled { opacity: .3; cursor: default; box-shadow: none; }
.ipm-slider__arrow:focus-visible { outline: 2px solid var(--teal); outline-offset: 4px; }
.ipm-slider__arrow--prev + .ipm-slider__dot { margin-left: 0; }
/* Under the slider: one pill like the buttons, [<  1 / 4  >] (the timeline dots stay hidden) */
.ipm-slider__dots {
	width: max-content; margin: 26px auto 0; padding: 4px; gap: 6px;
	border: 2px solid var(--outline); border-radius: 999px; background: var(--panel);
	box-shadow: 4px 5px 0 rgba(0,0,0,.35);
}
.ipm-slider__dots .ipm-slider__dot { display: none; }
.ipm-slider__arrow, .ipm-slider__arrow--prev, .ipm-slider__arrow--next {
	margin: 0; width: 40px; height: 40px; border: 0; box-shadow: none; background: transparent; color: var(--teal);
}
.ipm-slider__arrow:hover:not(:disabled) { background: rgba(0,220,228,.12); }
.ipm-slider__arrow:active:not(:disabled) { transform: scale(.92); box-shadow: none; }
.ipm-slider__arrow:disabled { opacity: .25; }
.ipm-slider__count { min-width: 64px; text-align: center; color: var(--muted); font-size: 14px; font-weight: 700; letter-spacing: .14em; }
.ipm-slider__count b { color: var(--white); font-weight: 700; }

/* 1.11.4: bigger footer logo, no line under it */
.ipm-foot .ipm-logo { height: 80px; }
.ipm-foot__about .custom-logo { max-height: 80px; }

/* 1.11.8: contact info and the form are matching boxes, same top and same height */
.ipm-contact { align-items: stretch; }
.ipm-contact__info, .ipm-contact__form { padding: 28px; background: var(--panel); border-radius: var(--r-card); box-shadow: var(--shadow); }
.ipm-contact__info { display: flex; flex-direction: column; }
.ipm-contact__info > p:last-child { margin: auto 0 0; }
.ipm-contact__form input[type="text"], .ipm-contact__form input[type="email"], .ipm-contact__form input[type="tel"], .ipm-contact__form textarea { background: var(--bg); }
.ipm-contact__form p:last-child, .ipm-contact__form form > p:last-of-type { margin-bottom: 0; }
.ipm-contact__form p:first-child { margin-top: 0; }

/* 1.12.0: homepage contact info without a box: ring icons, a short line, script labels, spread to match the form */
.ipm-contact .ipm-contact__info { background: none; box-shadow: none; border-radius: 0; padding: 28px 0; display: flex; flex-direction: column; }
.ipm-info--icons { flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 26px; margin: 0; }
.ipm-info--icons li { display: grid; grid-template-columns: 72px 56px minmax(0, 1fr); align-items: start; }
.ipm-info__icon {
	width: 72px; height: 72px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	border: 3px solid var(--outline); background: var(--panel); color: var(--white);
	box-shadow: 6px 7px 0 rgba(0,0,0,.25);
}
.ipm-info__icon svg { width: 28px; height: 28px; }
.ipm-info__line { height: 3px; margin-top: 34.5px; background: var(--outline); }
.ipm-info__text { padding-left: 22px; display: flex; flex-direction: column; gap: 4px; }
.ipm-info--icons .ipm-info__label { font-family: var(--script); font-size: 34px; line-height: 1.1; letter-spacing: 0; text-transform: none; color: var(--white); font-weight: 400; }
.ipm-info--icons .ipm-info__value { color: var(--muted); font-size: 18px; font-weight: 400; line-height: 1.6; }
.ipm-info--icons .ipm-info__value a { color: var(--muted); }
.ipm-info--icons .ipm-info__value a:hover { color: var(--teal); }
.ipm-info--icons li:hover .ipm-info__icon { border-color: var(--teal); color: var(--teal); }
@media (max-width: 860px) {
	.ipm-contact .ipm-contact__info { padding: 0; }
	.ipm-info--icons { gap: 24px; }
}
@media (max-width: 480px) {
	.ipm-info--icons li { grid-template-columns: 60px 28px minmax(0, 1fr); }
	.ipm-info__icon { width: 60px; height: 60px; }
	.ipm-info__icon svg { width: 24px; height: 24px; }
	.ipm-info__line { margin-top: 28.5px; }
	.ipm-info__text { padding-left: 14px; }
	.ipm-info--icons .ipm-info__label { font-size: 28px; }
}

/* 1.12.1: teal Book online button under the three rows, level with Send message */
.ipm-contact .ipm-contact__info > p.ipm-contact__book { margin: 34px 0 0; }

/* 1.13.0: full-width Google map between Contact me and the footer, in gray to sit with the dark theme */
.ipm-map { position: relative; height: clamp(320px, 38vw, 460px); background: var(--panel); border-top: 1px solid var(--line); }
.ipm-map iframe { display: block; width: 100%; height: 100%; border: 0; filter: grayscale(1) brightness(.92) contrast(1.05); transition: filter .4s ease; }
.ipm-map:hover iframe, .ipm-map:focus-within iframe { filter: grayscale(.2) brightness(.95); }

/* 1.13.1: footer logo a bit bigger */
.ipm-foot .ipm-logo { height: 100px; }
.ipm-foot__about .custom-logo { max-height: 100px; }

/* 1.13.2: footer logo back an eighth */
.ipm-foot .ipm-logo { height: 88px; }
.ipm-foot__about .custom-logo { max-height: 88px; }

/* 1.14.0: search in the menu bar, and grouped search results */
.ipm-search { display: flex; align-items: center; gap: 0; position: relative; width: 100%; }
.ipm-search__input { width: 100%; padding-right: 58px; }
.ipm-search .ipm-search__btn {
	position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
	width: 42px; height: 42px; border: 0; border-radius: 50%; padding: 0;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--teal); color: var(--panel); cursor: pointer;
	min-height: 0; box-shadow: none; font-size: 0; letter-spacing: 0;
}
.ipm-search .ipm-search__btn::after { display: none; }
.ipm-search .ipm-search__btn:hover { background: var(--white); border-color: var(--white); color: var(--panel); }
.ipm-search input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }

.ipm-search-toggle {
	flex: none; width: 44px; height: 44px; padding: 0; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	border: 2px solid var(--outline); background: transparent; color: var(--white); cursor: pointer;
	transition: border-color .2s ease, color .2s ease;
}
.ipm-search-toggle:hover, .ipm-search-toggle[aria-expanded="true"] { border-color: var(--teal); color: var(--teal); }
.ipm-nav__search { display: none; }
.ipm-searchpanel { border-top: 1px solid var(--line); background: var(--panel); }
.ipm-searchpanel[hidden] { display: none; }
.ipm-searchpanel__inner { max-width: 760px; margin: 0 auto; padding: 18px var(--gutter) 22px; }
@media (max-width: 1080px) {
	.ipm-search-toggle, .ipm-searchpanel { display: none !important; }
	.ipm-nav__search { display: block; order: -1; }
}

.ipm-results__form { max-width: 760px; margin: 0 auto 26px; }
.ipm-results__jump { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 12px; }
.ipm-results__group { padding-top: 46px; scroll-margin-top: 90px; }
.ipm-results__title { display: flex; align-items: center; gap: 12px; margin: 0 0 22px; color: var(--white); font-size: clamp(24px, 3vw, 32px); font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.ipm-results__title .ipm-chev { margin: 0; }
.ipm-results .ipm-works { margin-bottom: 0; }
.ipm-results .ipm-loadmore { margin-top: 26px; }
.ipm-hits { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ipm-hit--more { display: none; }
.is-expanded .ipm-hit--more { display: block; }
.ipm-hit__link {
	height: 100%; display: flex; flex-direction: column; gap: 8px; padding: 24px 24px 22px;
	background: var(--panel); border-radius: var(--r-card); box-shadow: var(--shadow);
	color: var(--text); text-decoration: none; transition: transform .1s ease, box-shadow .1s ease;
}
.ipm-hit__link:hover { color: var(--text); }
.ipm-hit__link:active { transform: translate(4px, 5px); box-shadow: 2px 2px 0 rgba(0,0,0,.35); }
.ipm-hit__tag, .ipm-hit__date { color: var(--teal); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ipm-hit__title { color: var(--white); font-size: 19px; font-weight: 600; line-height: 1.35; }
.ipm-hit__text { flex: 1 1 auto; font-size: 15px; line-height: 1.6; }
.ipm-hit__link .ipm-arrow-link { margin-top: 6px; }
.ipm-hit__link:hover .ipm-arrow-link { color: var(--teal); }
.ipm-hit--top { grid-column: 1 / -1; }
.ipm-hit--top .ipm-hit__link { border: 2px solid var(--teal); padding: 28px 30px; }
.ipm-hit--top .ipm-hit__title { font-size: clamp(22px, 2.6vw, 28px); }
.ipm-hit--top .ipm-btn { align-self: flex-start; margin-top: 10px; }
.ipm-results__none { max-width: 640px; margin: 20px auto 0; text-align: center; }
.ipm-results__none-title { color: var(--white); font-size: 22px; font-weight: 600; }
.ipm-results__none .ipm-filters { margin: 22px 0 28px; }
@media (max-width: 960px) { .ipm-hits { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ipm-hits { grid-template-columns: minmax(0, 1fr); gap: 14px; } }

/* 1.14.2: captive bead rings everywhere the plain circles used to be */
.ipm-pagehead::before { width: 140px; height: 140px; background-image: var(--cbr); background-size: 28px 28px; opacity: .45; }
.ipm-cta::before { width: 168px; height: 168px; background-image: var(--cbr); background-size: 28px 28px; opacity: .45; }
.ipm-work__noimg, .ipm-card__noimg { background-image: var(--cbr); background-size: 28px 28px; }

/* 1.14.3: on phones the portfolio category pills become one dropdown, styled like the shop's */
.ipm-filters__select { display: none; }
.ipm-select {
	-webkit-appearance: none; appearance: none;
	width: 100%; height: 48px; padding: 0 50px 0 22px;
	border: 2px solid var(--outline); border-radius: 999px;
	background-color: var(--panel);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%2300dce4' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 20px center; background-size: 16px;
	color: var(--white); font: 700 14px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase;
	box-shadow: 4px 5px 0 rgba(0,0,0,.35); cursor: pointer;
}
.ipm-select:hover, .ipm-select:focus { border-color: var(--teal); outline: none; }
.ipm-select option { background: var(--panel); color: var(--white); text-transform: none; letter-spacing: 0; }
@media (max-width: 600px) {
	.ipm-filters > ul { display: none; }
	.ipm-filters__select { display: block; max-width: 360px; margin: 0 auto 28px; }
}

/* 1.14.4: phones see the photo first, then the details box and buttons */
@media (max-width: 900px) {
	.ipm-portfolio-single article.ipm-prose { display: flex; flex-direction: column; }
	.ipm-portfolio-single article.ipm-prose > * { order: 3; }
	.ipm-portfolio-single article.ipm-prose > .ipm-topbar + .wp-block-image { order: 1; margin-top: 0; margin-bottom: 24px; }
	.ipm-portfolio-single article.ipm-prose > .ipm-topbar { order: 2; }
}

/* 1.14.5: footer socials always two rows of four; phones center the whole footer */
.ipm-foot__about .ipm-social { display: grid; grid-template-columns: repeat(4, max-content); gap: 12px; }
@media (max-width: 640px) {
	.ipm-foot__inner { justify-content: center; text-align: center; }
	.ipm-foot__inner > div { flex-basis: 100%; max-width: none; }
	.ipm-foot__about { display: flex; flex-direction: column; align-items: center; }
	.ipm-foot__about .ipm-social { justify-content: center; }
	.ipm-foot__title { justify-content: center; }
	.ipm-foot .ipm-info li { align-items: center; }
	.ipm-foot__links { justify-items: center; }
	.ipm-foot__sites { justify-content: center; }
}

/* 1.15.0: main portfolio photo drifts slower than the page (the frame stays put, the photo moves inside it) */
.ipm-portfolio-single .ipm-prose > .wp-block-image.ipm-parallax { overflow: hidden; border-radius: var(--r-card); }
.ipm-portfolio-single .ipm-prose > .wp-block-image.ipm-parallax img { border-radius: 0; transform: scale(1.2); transform-origin: center; will-change: transform; }

/* 1.16.0: About page */
.ipm-ap-intro { position: relative; overflow: hidden; padding: clamp(40px, 6vw, 80px) 0 clamp(48px, 7vw, 96px); }
.ipm-ap-intro::before { content: ""; position: absolute; top: 24px; right: -28px; width: 168px; height: 168px; background-image: var(--cbr); background-size: 28px 28px; opacity: .45; pointer-events: none; }
.ipm-ap-intro__inner { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 72px); align-items: center; position: relative; z-index: 1; }
.ipm-ap-intro__photo { border-radius: var(--r-card); overflow: hidden; box-shadow: 10px 12px 0 rgba(0,0,0,.35); border: 3px solid var(--outline); aspect-ratio: 4 / 5; background: var(--panel); }
.ipm-ap-intro__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ipm-ap-intro .ipm-chev { margin: 14px 0; }
.ipm-ap-intro__title { margin: 0; color: var(--white); font-size: clamp(34px, 5vw, 58px); font-weight: 800; letter-spacing: .03em; text-transform: uppercase; text-shadow: var(--shadow); line-height: 1.05; }
.ipm-ap-intro__bio { margin-top: 18px; font-size: 17px; }
.ipm-ap-intro__bio p { margin: 0 0 .9em; }
.ipm-hero__stats.ipm-ap-intro__stats, .ipm-ap-intro .ipm-ap-intro__stats { display: flex; flex-wrap: wrap; gap: 12px; margin: 22px 0 0; padding: 0; justify-content: flex-start; }
.ipm-ap-intro__stats .ipm-stat { position: static; flex-direction: row; align-items: center; gap: 10px; padding: 8px 18px 8px 16px; border: 2px solid var(--outline); border-radius: 999px; background: var(--panel); box-shadow: 4px 5px 0 rgba(0,0,0,.35); }
.ipm-ap-intro__stats .ipm-stat__num { font-size: 28px; font-weight: 800; color: var(--white); line-height: 1; }
.ipm-ap-intro__stats .ipm-stat__num strong { color: var(--teal); }
.ipm-ap-intro__stats .ipm-stat__label { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--white); line-height: 1.3; }
.ipm-ap-intro__stats .ipm-stat__label strong { color: var(--teal); }
.ipm-ap-intro__btns { display: flex; flex-wrap: wrap; gap: 14px 16px; margin: 26px 0 0; }
@media (max-width: 860px) {
	.ipm-ap-intro__inner { grid-template-columns: minmax(0, 1fr); text-align: center; }
	.ipm-ap-intro__photo { max-width: 360px; margin: 0 auto; }
	.ipm-ap-intro .ipm-chev { margin: 14px auto; }
	.ipm-ap-intro__stats, .ipm-ap-intro .ipm-ap-intro__stats, .ipm-ap-intro__btns { justify-content: center; }
}

.ipm-ap-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ipm-ap-card { padding: 30px 28px; background: var(--panel); border-radius: var(--r-card); box-shadow: var(--shadow); }
.ipm-ap-card .ipm-chev { width: 22px; height: 22px; margin-bottom: 16px; }
.ipm-ap-card h3 { margin: 0 0 10px; color: var(--white); font-size: 21px; }
.ipm-ap-card p { margin: 0; line-height: 1.7; }
@media (max-width: 860px) { .ipm-ap-cards { grid-template-columns: minmax(0, 1fr); } }

.ipm-ap-where { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; max-width: 900px; margin: 0 auto 56px; }
.ipm-ap-where__col { padding: 24px 26px; background: var(--panel); border-radius: var(--r-card); box-shadow: var(--shadow); }
.ipm-ap-where h3 { margin: 0 0 12px; color: var(--teal); font-size: 13px; letter-spacing: .16em; text-transform: uppercase; }
.ipm-ap-where ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ipm-ap-where li { display: flex; justify-content: space-between; gap: 14px; color: var(--white); font-weight: 500; }
.ipm-ap-where em { font-style: normal; color: var(--muted); font-size: 14px; white-space: nowrap; }
@media (max-width: 700px) { .ipm-ap-where { grid-template-columns: minmax(0, 1fr); } }

.ipm-timeline { list-style: none; margin: 0 auto; padding: 0; max-width: 1040px; position: relative; }
.ipm-timeline::before { content: ""; position: absolute; top: 8px; bottom: 8px; left: 50%; width: 3px; margin-left: -1.5px; background: linear-gradient(var(--teal), rgba(0,220,228,.15)); border-radius: 3px; }
.ipm-tl { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr); align-items: start; margin-bottom: 26px; }
.ipm-tl__mark { grid-column: 2; grid-row: 1; justify-self: center; width: 46px; height: 46px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--bg); border: 3px solid var(--teal); color: var(--teal); position: relative; z-index: 1; }
.ipm-tl__mark svg { width: 26px; height: 26px; }
.ipm-tl--guest .ipm-tl__mark { width: 32px; height: 32px; margin-top: 7px; border-color: var(--outline); color: var(--white); }
.ipm-tl--guest .ipm-tl__mark svg { width: 18px; height: 18px; }
.ipm-tl--moment .ipm-tl__mark { width: 18px; height: 18px; margin-top: 14px; background: var(--teal); }
.ipm-tl__card { grid-row: 1; padding: 20px 24px; background: var(--panel); border-radius: var(--r-card); box-shadow: var(--shadow); }
.ipm-tl:nth-child(odd) .ipm-tl__card { grid-column: 1; text-align: right; }
.ipm-tl:nth-child(even) .ipm-tl__card { grid-column: 3; }
.ipm-tl--moment .ipm-tl__card { background: transparent; box-shadow: none; padding: 10px 6px; }
.ipm-tl__date { display: block; color: var(--teal); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ipm-tl__name { display: block; margin: 4px 0 0; color: var(--white); font-size: 20px; font-weight: 700; line-height: 1.3; }
.ipm-tl--guest .ipm-tl__name { font-size: 18px; }
.ipm-tl__role { display: block; margin-top: 2px; color: var(--muted); font-size: 15px; }
.ipm-tl__card summary, .ipm-ap-edu summary { list-style: none; cursor: pointer; display: block; }
.ipm-tl__card summary::-webkit-details-marker, .ipm-ap-edu summary::-webkit-details-marker { display: none; }
.ipm-tl__more { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; color: var(--white); font-weight: 600; font-size: 14px; }
.ipm-tl__more::after { content: ""; width: 14px; height: 14px; background: var(--teal); -webkit-mask: var(--arrow) center / contain no-repeat; mask: var(--arrow) center / contain no-repeat; transform: rotate(90deg); transition: transform .2s ease; }
details[open] > summary .ipm-tl__more::after { transform: rotate(-90deg); }
details[open] > summary .ipm-tl__more { color: var(--teal); }
.ipm-tl__body, .ipm-ap-edu__body { margin-top: 12px; font-size: 15px; line-height: 1.7; text-align: left; }
.ipm-tl__body p, .ipm-ap-edu__body p { margin: 0 0 .8em; }
@media (max-width: 760px) {
	.ipm-timeline::before { left: 22px; }
	.ipm-tl { grid-template-columns: 46px minmax(0, 1fr); column-gap: 14px; }
	.ipm-tl__mark { grid-column: 1; }
	.ipm-tl:nth-child(odd) .ipm-tl__card, .ipm-tl:nth-child(even) .ipm-tl__card { grid-column: 2; text-align: left; }
}

.ipm-ap-badges { list-style: none; margin: 0 0 30px; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.ipm-ap-badges li { display: flex; align-items: center; gap: 10px; padding: 12px 20px; border: 2px solid var(--teal); border-radius: 999px; background: var(--panel); box-shadow: 4px 5px 0 rgba(0,0,0,.35); }
.ipm-ap-badges .ipm-chev { width: 18px; height: 18px; margin: 0; }
.ipm-ap-badges strong { color: var(--white); font-size: 15px; }
.ipm-ap-badges em { font-style: normal; color: var(--teal); font-weight: 700; font-size: 14px; }
.ipm-ap-filter button { cursor: pointer; font: inherit; }
.ipm-ap-edu { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }
.ipm-ap-edu__item[hidden] { display: none; }
.ipm-ap-edu details { padding: 20px 22px; background: var(--panel); border-radius: var(--r-card); box-shadow: var(--shadow); }
.ipm-ap-edu__date { display: block; color: var(--teal); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ipm-ap-edu__badge { display: inline-block; margin-top: 8px; padding: 3px 10px; border-radius: 999px; background: var(--teal); color: var(--panel); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.ipm-ap-edu__name { display: block; margin-top: 6px; color: var(--white); font-size: 18px; font-weight: 700; line-height: 1.3; }
.ipm-ap-edu__sub { display: block; margin-top: 2px; color: var(--muted); font-size: 14px; }
@media (max-width: 960px) { .ipm-ap-edu { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ipm-ap-edu { grid-template-columns: minmax(0, 1fr); } }

.ipm-ap-seminar { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 30px; padding: 28px 32px; border: 2px dashed var(--teal); border-radius: var(--r-card); background: rgba(0,220,228,.05); }
.ipm-ap-seminar > div { flex: 1 1 380px; }
.ipm-ap-seminar__kicker { color: var(--teal); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.ipm-ap-seminar h3 { margin: 6px 0 8px; color: var(--white); font-size: 24px; }
.ipm-ap-seminar p { margin: 0; }

/* About page filter pills are buttons: match the link pills exactly */
.ipm-ap-filter button.ipm-pill { background: transparent; color: var(--white); border: 2px solid var(--line); box-shadow: none; min-height: 40px; padding: 0 18px; font-size: 14px; font-weight: 700; letter-spacing: .1em; }
.ipm-ap-filter button.ipm-pill::after { display: none; }
.ipm-ap-filter button.ipm-pill:hover { background: transparent; border-color: var(--teal); color: var(--teal); transform: none; }
.ipm-ap-filter button.ipm-pill.is-current, .ipm-ap-filter button.ipm-pill.is-current:hover { background: var(--teal); border-color: var(--teal); color: var(--panel); }
.ipm-ap-edu { align-items: stretch; }
.ipm-ap-edu__item, .ipm-ap-edu details { height: 100%; }

/* 1.16.2: About intro buttons centered */
.ipm-ap-intro__btns { justify-content: center; }

/* 1.17.0: socials sit under the hero buttons; the photo gets the extra room */
.ipm-hero__text .ipm-social--hero { justify-content: flex-start; margin-top: 26px; gap: 10px; flex-wrap: wrap; }
.ipm-hero__text .ipm-social--hero a { width: 42px; height: 42px; }
.ipm-hero__text .ipm-social--hero svg { width: 19px; height: 19px; }
@media (min-width: 861px) {
	.ipm-hero__inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
	.ipm-hero__photo { width: min(100%, 500px); }
}
@media (max-width: 860px) {
	.ipm-hero__text .ipm-social--hero { order: 8; display: grid; grid-template-columns: repeat(4, max-content); justify-content: center; gap: 12px; margin-top: 26px; }
	.ipm-hero__text .ipm-social--hero a { width: 38px; height: 38px; }
}

/* 1.18.0: extra portfolio photos are smaller thumbnails side by side; every photo opens in a lightbox */
.ipm-portfolio-single .ipm-prose .wp-block-gallery.has-nested-images { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin: 2em 0 1.6em; }
.ipm-portfolio-single .ipm-prose .wp-block-gallery.has-nested-images figure.wp-block-image { width: calc((100% - 32px) / 3); flex: 0 0 auto; margin: 0; }
.ipm-portfolio-single .ipm-prose .wp-block-gallery.has-nested-images figure.wp-block-image img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 16px; box-shadow: var(--shadow); }
@media (max-width: 600px) {
	.ipm-portfolio-single .ipm-prose .wp-block-gallery.has-nested-images { gap: 12px; }
	.ipm-portfolio-single .ipm-prose .wp-block-gallery.has-nested-images figure.wp-block-image { width: calc((100% - 12px) / 2); }
}
.ipm-zoomable { cursor: zoom-in; transition: filter .2s ease; }
.ipm-zoomable:hover { filter: brightness(1.06); }
.ipm-zoomable:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
.ipm-lightbox { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 56px 72px; background: rgba(16,20,26,.94); }
.ipm-lightbox[hidden] { display: none; }
.ipm-lightbox-open { overflow: hidden; }
.ipm-lightbox__fig { margin: 0; width: 100%; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.ipm-lightbox__fig img { max-width: min(1100px, 100%); max-height: calc(100vh - 140px); min-width: min(560px, 100%); width: auto; height: auto; object-fit: contain; border-radius: 16px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.ipm-lightbox__count { color: var(--muted); font-size: 13px; font-weight: 700; letter-spacing: .14em; }
.ipm-lightbox button { position: absolute; display: flex; align-items: center; justify-content: center; padding: 0; border: 2px solid var(--outline); border-radius: 50%; background: var(--panel); color: var(--white); cursor: pointer; box-shadow: none; min-height: 0; }
.ipm-lightbox button::after { display: none; }
.ipm-lightbox button:hover { border-color: var(--teal); color: var(--teal); background: var(--panel); transform: none; }
.ipm-lightbox__close { top: 16px; right: 16px; width: 46px; height: 46px; font-size: 30px; line-height: 1; }
.ipm-lightbox__nav { top: 50%; width: 50px; height: 50px; margin-top: -25px; }
.ipm-lightbox__nav::before { content: ""; width: 12px; height: 12px; border: solid currentColor; border-width: 0 3px 3px 0; }
.ipm-lightbox__prev { left: 14px; }
.ipm-lightbox__prev::before { transform: translateX(2px) rotate(135deg); }
.ipm-lightbox__next { right: 14px; }
.ipm-lightbox__next::before { transform: translateX(-2px) rotate(-45deg); }
.ipm-lightbox.is-single .ipm-lightbox__nav { display: none; }
@media (max-width: 600px) {
	.ipm-lightbox { padding: 64px 12px; }
	.ipm-lightbox__nav { top: auto; bottom: 14px; margin-top: 0; }
	.ipm-lightbox__prev { left: calc(50% - 64px); }
	.ipm-lightbox__next { right: calc(50% - 64px); }
}

/* 1.19.0: portfolio item in two columns: photos left, details right */
.ipm-item { max-width: 1240px; margin: 0 auto; padding: clamp(28px, 4vw, 56px) var(--gutter) 36px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.ipm-item__gal { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 16px; align-items: start; }
.ipm-item__main { grid-column: 2; grid-row: 1; display: block; width: 100%; padding: 0; aspect-ratio: 1 / 1; overflow: hidden; border: 3px solid var(--outline); border-radius: var(--r-card); background: var(--panel); box-shadow: 10px 12px 0 rgba(0,0,0,.35); cursor: zoom-in; min-height: 0; }
.ipm-item__main::after { display: none; }
.ipm-item__main:hover { border-color: var(--teal); background: var(--panel); transform: none; }
.ipm-item__main:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
.ipm-item__main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ipm-item__gal:not(:has(.ipm-item__thumbs)) .ipm-item__main { grid-column: 1 / -1; }
.ipm-item__thumbs { grid-column: 1; grid-row: 1; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ipm-item__thumbs button { display: block; width: 84px; height: 84px; padding: 0; overflow: hidden; border: 3px solid transparent; border-radius: 14px; background: var(--panel); box-shadow: 4px 5px 0 rgba(0,0,0,.35); cursor: pointer; min-height: 0; }
.ipm-item__thumbs button::after { display: none; }
.ipm-item__thumbs button:hover { border-color: var(--outline); background: var(--panel); transform: none; }
.ipm-item__thumbs button.is-on { border-color: var(--teal); }
.ipm-item__thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ipm-item__info .ipm-crumbs { margin-bottom: 6px; }
.ipm-item__info .ipm-chev { margin: 10px 0 12px; }
.ipm-item__title { margin: 0; color: var(--white); font-size: clamp(30px, 3.6vw, 44px); font-weight: 800; letter-spacing: .03em; text-transform: uppercase; text-shadow: var(--shadow); line-height: 1.08; }
.ipm-item__details { list-style: none; margin: 22px 0 0; padding: 18px 22px; display: flex; flex-wrap: wrap; gap: 10px 40px; background: var(--panel); border-radius: 18px; }
.ipm-item__details li { display: flex; flex-direction: column; color: var(--white); font-weight: 500; }
.ipm-item__details strong { color: var(--teal); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ipm-item__btns { display: flex; flex-wrap: wrap; gap: 14px 16px; margin: 22px 0 0; }
.ipm-item__text { margin-top: 24px; font-size: 16px; line-height: 1.75; }
.ipm-item__text > :first-child { margin-top: 0; }
.ipm-item__nav { max-width: 1240px; margin: 0 auto 30px; padding: 22px var(--gutter) 0; }
@media (max-width: 900px) {
	.ipm-item { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.ipm-item__info { display: contents; text-align: center; }
	.ipm-item__info .ipm-crumbs { order: 1; }
	.ipm-item__info .ipm-chev { order: 2; margin: 10px auto 12px; }
	.ipm-item__title { order: 3; margin-bottom: 22px; }
	.ipm-item__gal { order: 4; grid-template-columns: minmax(0, 1fr); }
	.ipm-item__main { grid-column: 1; }
	.ipm-item__thumbs { grid-column: 1; grid-row: 2; flex-direction: row; flex-wrap: wrap; justify-content: center; margin-top: 4px; }
	.ipm-item__thumbs button { width: 72px; height: 72px; }
	.ipm-item__details { order: 5; justify-content: center; text-align: center; }
	.ipm-item__details li { align-items: center; }
	.ipm-item__btns { order: 6; }
	.ipm-item__btns .ipm-btn { width: 100%; justify-content: center; }
	.ipm-item__text { order: 7; text-align: left; }
}

/* 1.19.0: booking band line, two centered lines on phones */
.ipm-cta__hours--phone { display: none; }
@media (max-width: 600px) {
	.ipm-cta__body { text-align: center; }
	.ipm-cta__sub span { display: block; }
	.ipm-cta__dot, .ipm-cta__hours--wide { display: none !important; }
	.ipm-cta__hours--phone { display: block; margin-top: 2px; }
}

/* 1.20.0: blog posts */
.ipm-post__head { max-width: 1000px; margin: 0 auto; padding: clamp(32px, 5vw, 64px) var(--gutter) 0; text-align: center; }
.ipm-post__head .ipm-chev { margin: 14px auto; }
.ipm-post__meta { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 14px; color: var(--muted); font-size: 14px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.ipm-post__pill { padding: 6px 14px; border-radius: 999px; background: var(--teal); color: var(--panel); font-weight: 800; font-size: 12px; letter-spacing: .14em; text-decoration: none; }
.ipm-post__pill:hover { background: var(--white); color: var(--panel); }
.ipm-post__title { margin: 18px 0 0; color: var(--white); font-size: clamp(30px, 4.4vw, 52px); font-weight: 800; letter-spacing: .02em; text-transform: uppercase; text-shadow: var(--shadow); line-height: 1.08; }
.ipm-post__hero { max-width: 1100px; margin: 36px auto 0; padding: 0 var(--gutter); }
.ipm-post__hero img { width: 100%; height: auto; aspect-ratio: 16 / 8; object-fit: cover; display: block; border-radius: var(--r-card); border: 3px solid var(--outline); box-shadow: 10px 12px 0 rgba(0,0,0,.35); }
.ipm-post__wrap { max-width: 1100px; margin: 0 auto; padding: clamp(36px, 5vw, 64px) var(--gutter); display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; align-items: start; }
.ipm-post__body { font-size: 18px; line-height: 1.8; }
.ipm-post__body > :first-child { margin-top: 0; }
.ipm-post__body h2, .ipm-post__body h3 { position: relative; padding-left: 30px; color: var(--white); scroll-margin-top: 100px; }
.ipm-post__body h2 { margin: 2em 0 .6em; font-size: clamp(24px, 2.6vw, 30px); }
.ipm-post__body h3 { margin: 1.8em 0 .6em; font-size: clamp(21px, 2.3vw, 26px); }
.ipm-post__body h2::before, .ipm-post__body h3::before { content: ""; position: absolute; left: 0; top: .35em; width: 18px; height: 18px; background: var(--teal); -webkit-mask: var(--chev) center / contain no-repeat; mask: var(--chev) center / contain no-repeat; }
.ipm-post__body h2 ~ h3 { padding-left: 0; }
.ipm-post__body h2 ~ h3::before { display: none; }
.ipm-post__body h4 { margin: 1.4em 0 .3em; color: var(--teal); font-size: 13px; letter-spacing: .16em; text-transform: uppercase; }
.ipm-post__body hr { border: 0; height: 1px; background: var(--line); margin: 2em 0; }
.ipm-post__body .wp-block-gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 1.6em 0; }
.ipm-post__body .wp-block-gallery figure.wp-block-image { margin: 0; width: auto !important; }
.ipm-post__body .wp-block-gallery img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 14px; box-shadow: var(--shadow); }
.ipm-post__body .wp-block-image img { border-radius: 14px; }
.ipm-post__side { position: sticky; top: 100px; display: grid; gap: 22px; }
.admin-bar .ipm-post__side { top: 132px; }
.ipm-post__box { padding: 22px 24px; background: var(--panel); border-radius: var(--r-card); box-shadow: var(--shadow); }
.ipm-post__toc h2, .ipm-post__toc summary { margin: 0 0 12px; color: var(--teal); font-size: 13px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.ipm-post__toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; max-height: calc(100vh - 360px); overflow-y: auto; }
.ipm-post__toc a { display: block; padding: 7px 0 7px 14px; border-left: 3px solid var(--line); color: var(--text); font-size: 15px; line-height: 1.35; text-decoration: none !important; }
.ipm-post__toc a:hover, .ipm-post__toc a.is-on { border-left-color: var(--teal); color: var(--white); }
.ipm-post__me { text-align: center; }
.ipm-post__me img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 4px var(--bg), 0 0 0 6px rgba(255,255,255,.22); }
.ipm-post__me p { margin: 12px 0 16px; font-size: 15px; line-height: 1.5; }
.ipm-post__me strong { display: block; color: var(--white); font-size: 18px; }
.ipm-post__me .ipm-btn { width: 100%; justify-content: center; }
.ipm-post__toc--phone { display: none; }
.ipm-post__author { max-width: 1100px; margin: 0 auto; padding: 0 var(--gutter); }
.ipm-post__author > div { display: flex; gap: 26px; align-items: center; padding: 28px 32px; border: 2px solid var(--teal); border-radius: var(--r-card); background: var(--panel); }
.ipm-post__author img { flex: none; width: 120px; height: 120px; border-radius: 50%; object-fit: cover; }
.ipm-post__author h2 { margin: 0; color: var(--white); font-size: 22px; }
.ipm-post__kicker { color: var(--teal); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.ipm-post__author p { margin: 8px 0 14px; }
.ipm-post__btns { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 !important; }
.ipm-post__more { max-width: 1240px; margin: 0 auto; padding: clamp(48px, 6vw, 80px) var(--gutter) 20px; }
.ipm-post__more .ipm-cards { margin-bottom: 28px; }
.ipm-post__pn { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; max-width: 1240px; margin: 0 auto; padding: 20px var(--gutter) 56px; }
.ipm-post__pn a { display: block; padding: 20px 24px; border: 2px solid var(--line); border-radius: 18px; color: var(--white); font-weight: 600; text-decoration: none; }
.ipm-post__pn a:hover { border-color: var(--teal); color: var(--white); }
.ipm-post__pn span { display: block; margin-bottom: 4px; color: var(--teal); font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ipm-post__pn .ipm-post__next { grid-column: 2; text-align: right; }
.ipm-post__comments { padding-bottom: 48px; }
@media (max-width: 900px) {
	.ipm-post__wrap { grid-template-columns: minmax(0, 1fr); }
	.ipm-post__side { display: none; }
	.ipm-post__toc--phone { display: block; margin: 0 0 26px; }
	.ipm-post__toc--phone summary { margin: 0; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; }
	.ipm-post__toc--phone summary::-webkit-details-marker { display: none; }
	.ipm-post__toc--phone summary::after { content: "+"; color: var(--white); font-size: 22px; line-height: 1; }
	.ipm-post__toc--phone[open] summary::after { content: "\2212"; }
	.ipm-post__toc--phone ol { margin-top: 12px; max-height: none; }
	.ipm-post__body { font-size: 17px; }
	.ipm-post__body .wp-block-gallery { gap: 8px; }
	.ipm-post__body .wp-block-gallery img { border-radius: 10px; }
	.ipm-post__hero img { aspect-ratio: 4 / 3; }
	.ipm-post__author > div { flex-direction: column; text-align: center; }
	.ipm-post__btns { justify-content: center; }
	.ipm-post__pn { grid-template-columns: 1fr; }
	.ipm-post__pn .ipm-post__next { grid-column: 1; text-align: left; }
}

/* ---------------------------------------------------------------
   1.21.0: FAQ page
   --------------------------------------------------------------- */
.ipm-faqpage__intro { margin: 0 auto 32px; max-width: 720px; text-align: center; font-size: 18px; line-height: 1.75; }
.ipm-faqpage__tools { margin: 0 0 40px; display: grid; gap: 18px; justify-items: center; }
.ipm-faqpage__search {
	position: relative; display: block; width: 100%; max-width: 560px;
}
.ipm-faqpage__search svg { position: absolute; left: 20px; top: 50%; width: 20px; height: 20px; transform: translateY(-50%); color: var(--teal); pointer-events: none; }
.ipm-faqpage__search input {
	width: 100%; height: 56px; padding: 0 22px 0 54px;
	background: var(--panel); color: var(--white);
	border: 2px solid var(--line); border-radius: 999px;
	font: inherit; font-size: 17px; box-shadow: var(--shadow);
}
.ipm-faqpage__search input::placeholder { color: var(--muted); }
.ipm-faqpage__search input:focus { outline: none; border-color: var(--teal); }
.ipm-faqpage__pills { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.ipm-faqpage__pills button { font: inherit; cursor: pointer; }
.ipm-faqpage__group { margin: 0 0 44px; }
.ipm-faqpage__topic {
	display: flex; align-items: center; gap: 12px;
	margin: 0 0 18px; font-size: 14px; color: var(--teal);
	letter-spacing: .16em; text-transform: uppercase;
}
.ipm-faqpage__topic::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.ipm-faqpage .ipm-faq__a { color: var(--text); line-height: 1.75; }
.ipm-faqpage__posts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ipm-faqpage__posts a {
	display: flex; align-items: center; gap: 16px; height: 100%;
	padding: 14px 18px 14px 14px;
	background: var(--panel); border: 1px solid var(--line); border-radius: 18px;
	color: var(--white); transition: border-color .2s ease;
}
.ipm-faqpage__posts a:hover { border-color: rgba(0,220,228,.45); color: var(--white); }
.ipm-faqpage__posts img { flex: none; width: 64px; height: 64px; object-fit: cover; border-radius: 12px; }
.ipm-faqpage__ptext { display: grid; gap: 6px; min-width: 0; }
.ipm-faqpage__ptext strong { font-size: 16px; line-height: 1.35; }
.ipm-faqpage__ptext .ipm-arrow-link { font-size: 12px; }
.ipm-faqpage__posts a:hover .ipm-arrow-link { color: var(--teal); }
.ipm-faqpage__none { margin: 0 0 40px; text-align: center; color: var(--muted); }
.ipm-faqpage__ask {
	margin: 12px 0 0; padding: 40px 32px; text-align: center;
	background: var(--panel); border: 2px solid var(--teal); border-radius: var(--r-card);
}
.ipm-faqpage__ask h2 { margin: 10px 0 10px; font-size: clamp(24px, 3vw, 30px); }
.ipm-faqpage__ask p { margin: 0 auto 22px; max-width: 520px; }
.ipm-faqpage__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-bottom: 0 !important; }
@media (max-width: 700px) {
	.ipm-faqpage__intro { font-size: 16px; }
	.ipm-faqpage__pills { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; width: calc(100% + 2 * var(--gutter)); margin: 0 calc(-1 * var(--gutter)); padding: 4px var(--gutter) 8px; scrollbar-width: none; }
	.ipm-faqpage__pills::-webkit-scrollbar { display: none; }
	.ipm-faqpage__pills li { flex: none; }
	.ipm-faqpage__posts { grid-template-columns: 1fr; }
	.ipm-faqpage .ipm-faq__item summary { font-size: 16px; }
	.ipm-faqpage__ask { padding: 32px 20px; }
	.ipm-faqpage__btns .ipm-btn { flex: 1 1 100%; justify-content: center; }
}
.ipm-faqpage__ask .ipm-chev { margin-left: auto; margin-right: auto; }

/* ---------------------------------------------------------------
   1.22.0: Contact page
   --------------------------------------------------------------- */
.ipm-contactpage__label { max-width: 1100px; margin-left: auto; margin-right: auto; }
.ipm-contactpage__cards { list-style: none; margin: 0 auto 56px; padding: 0; max-width: 1100px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ipm-contactpage__cards a {
	position: relative; display: flex; flex-direction: column; gap: 6px; height: 100%;
	padding: 24px 22px 54px;
	background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow);
	color: var(--text); transition: border-color .2s ease, transform .2s ease;
}
.ipm-contactpage__cards a:hover { border-color: var(--teal); color: var(--text); transform: translateY(-3px); }
.ipm-contactpage__icon { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 10px; border-radius: 14px; background: rgba(0,220,228,.12); color: var(--teal); }
.ipm-contactpage__icon svg { width: 26px; height: 26px; }
.ipm-contactpage__cards strong { color: var(--white); font-size: 18px; line-height: 1.3; }
.ipm-contactpage__cards span { font-size: 15px; line-height: 1.5; }
.ipm-contactpage__cards .ipm-arrow-link { position: absolute; left: 22px; bottom: 20px; }
.ipm-contactpage__cards a:hover .ipm-arrow-link::after { transform: translateX(4px); }
.ipm-contactpage__main { max-width: 1100px; margin: 0 auto; }
.ipm-contactpage .ipm-contact__info .ipm-faqpage__topic { margin-bottom: 8px; }
.ipm-contactpage__formtitle { margin: 0 0 12px; font-size: clamp(22px, 2.6vw, 28px); }
.ipm-contactpage__text p { margin: 0 0 1em; font-size: 15px; line-height: 1.7; }
.ipm-contactpage__text { margin-bottom: 22px; padding-bottom: 6px; border-bottom: 1px solid var(--line); }
@media (max-width: 960px) {
	.ipm-contactpage__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
	.ipm-contactpage__cards { gap: 12px; margin-bottom: 40px; }
	.ipm-contactpage__cards a { padding: 18px 16px 46px; }
	.ipm-contactpage__icon { width: 42px; height: 42px; margin-bottom: 6px; }
	.ipm-contactpage__cards strong { font-size: 16px; }
	.ipm-contactpage__cards span { font-size: 14px; }
	.ipm-contactpage__cards .ipm-arrow-link { left: 16px; bottom: 16px; }
}

/* ---------------------------------------------------------------
   1.23.0: Info pages (piercing, jewelry, city and guide pages)
   --------------------------------------------------------------- */
.ipm-guide__hero {
	max-width: 1180px; margin: 0 auto; padding: clamp(32px, 5vw, 64px) var(--gutter) 0;
	display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(32px, 5vw, 64px); align-items: center;
}
.ipm-guide__hero--text { grid-template-columns: minmax(0, 1fr); max-width: 860px; text-align: center; }
.ipm-guide__intro .ipm-chev { margin: 14px 0; }
.ipm-guide__hero--text .ipm-chev { margin: 14px auto; }
.ipm-guide__title { margin: 0 0 22px; color: var(--white); font-size: clamp(36px, 5vw, 62px); font-weight: 800; letter-spacing: .02em; line-height: 1.02; text-transform: uppercase; text-shadow: var(--shadow); }
.ipm-guide__title span { display: block; margin-top: 12px; color: var(--teal); font-size: 14px; font-weight: 700; letter-spacing: .18em; line-height: 1.4; text-shadow: none; }
.ipm-guide__lead p { margin: 0 0 1em; font-size: 18px; line-height: 1.75; }
.ipm-guide__lead p:last-child { margin-bottom: 0; }
.ipm-guide__facts { list-style: none; margin: 26px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ipm-guide__hero--text .ipm-guide__facts, .ipm-guide__hero--text .ipm-guide__btns { justify-content: center; }
.ipm-guide__facts:empty { display: none; }
.ipm-guide__facts li { display: grid; gap: 2px; padding: 10px 16px; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; }
.ipm-guide__facts span { color: var(--teal); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.ipm-guide__facts strong { font-size: 16px; font-weight: 600; }
.ipm-guide__btns { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 0; }
.ipm-guide__photo { margin: 0; position: relative; }
.ipm-guide__photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r-card); border: 3px solid var(--outline); box-shadow: 10px 12px 0 rgba(0,0,0,.35); }
.ipm-guide__photo::before {
	content: ""; position: absolute; z-index: -1; right: -26px; bottom: -26px; width: 150px; height: 150px;
	background: var(--rings); background-size: 28px 28px; opacity: .8;
}

/* Portfolio photos inside "See my work". */
.ipm-guide__work { margin: 1.4em 0 1.2em; }
.ipm-guide__tiles { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ipm-guide__tiles a { position: relative; display: block; border-radius: 14px; overflow: hidden; box-shadow: var(--shadow); }
.ipm-guide__tiles img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 0 !important; transition: transform .35s ease; }
.ipm-guide__tiles span {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 12px 10px;
	background: linear-gradient(transparent, rgba(0,0,0,.75)); color: var(--white);
	font-size: 13px; font-weight: 600; line-height: 1.3; opacity: 0; transition: opacity .25s ease;
}
.ipm-guide__tiles a:hover img { transform: scale(1.05); }
.ipm-guide__tiles a:hover span, .ipm-guide__tiles a:focus-visible span { opacity: 1; }
.ipm-guide__workbtns { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0 0 !important; }
.ipm-guide__workbtns button { font: inherit; cursor: pointer; }

/* FAQ cards and the booking card in the page. */
.ipm-guide__faq { margin: 1em 0 1.6em; }
.ipm-post__body .ipm-faq { gap: 12px; }
.ipm-post__body .ipm-faq + .ipm-faq { margin-top: -12px; }
.ipm-post__body .ipm-faq__item summary { font-size: 17px; }
.ipm-post__body .ipm-faq__a p { margin: 0 0 .6em; font-size: 16px; }
.ipm-guide__book { margin: 2em 0; padding: 30px 32px; background: var(--panel); border: 2px solid var(--teal); border-radius: var(--r-card); }
.ipm-guide__book > h2 { margin-top: 0 !important; }
.ipm-guide__book > :last-child { margin-bottom: 0; }

/* More piercings in the same area. */
.ipm-guide__rel { list-style: none; margin: 0 auto 10px; padding: 0; max-width: 1100px; display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 16px; }
.ipm-guide__rel a { display: grid; gap: 10px; color: var(--white); text-align: center; }
.ipm-guide__relimg { display: block; aspect-ratio: 1 / 1; border-radius: 18px; overflow: hidden; background: var(--panel) var(--rings); background-size: 24px 24px; box-shadow: var(--shadow); border: 2px solid transparent; transition: border-color .2s ease; }
.ipm-guide__relimg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ipm-guide__rel a:hover { color: var(--teal); }
.ipm-guide__rel a:hover .ipm-guide__relimg { border-color: var(--teal); }
.ipm-guide__rel strong { font-size: 15px; font-weight: 600; }
.ipm-guide__related { padding-bottom: clamp(40px, 6vw, 72px); }

@media (max-width: 900px) {
	.ipm-guide__hero { grid-template-columns: minmax(0, 1fr); }
	.ipm-guide__photo { order: -1; max-width: 520px; width: 100%; margin: 0 auto; }
	.ipm-guide__photo img { aspect-ratio: 4 / 3; }
	.ipm-guide__photo::before { display: none; }
	.ipm-guide__intro { text-align: center; }
	.ipm-guide__intro .ipm-chev { margin: 14px auto; }
	.ipm-guide__facts, .ipm-guide__btns { justify-content: center; }
	.ipm-guide__lead p { font-size: 17px; }
}
@media (max-width: 600px) {
	.ipm-guide__tiles { gap: 8px; }
	.ipm-guide__tiles a { border-radius: 10px; }
	.ipm-guide__tiles span { display: none; }
	.ipm-guide__btns .ipm-btn { flex: 1 1 100%; justify-content: center; }
	.ipm-guide__book { padding: 24px 20px; }
	.ipm-guide__rel { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.ipm-guide__facts li { padding: 8px 12px; }
}
.ipm-post__body .ipm-guide__tiles li { margin: 0; padding: 0; }
.ipm-post__body .ipm-guide__tiles li::before { display: none; }
.ipm-guide__tiles li[hidden] { display: none; }
#jp-post-flair, .sharedaddy, .jetpack-likes-widget-wrapper, .sd-like { display: none !important; }

/* 1.24.0: Like button on blog posts */
.ipm-post__likebar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 20px; margin: 2.4em 0 0; padding: 18px 22px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-card); }
.ipm-post__likebar p { margin: 0 !important; color: var(--white); font-size: 17px; font-weight: 600; }
.ipm-like { display: flex; align-items: center; gap: 14px; }
.ipm-like__btn {
	display: inline-flex; align-items: center; gap: 10px; height: 46px; padding: 0 22px;
	background: transparent; color: var(--white); border: 2px solid var(--outline); border-radius: 999px;
	font: inherit; font-size: 14px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
	cursor: pointer; box-shadow: var(--shadow); transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.ipm-like__btn svg { width: 20px; height: 20px; fill: none; stroke: var(--teal); stroke-width: 2.2; stroke-linejoin: round; transition: fill .2s ease, transform .2s ease; }
.ipm-like__btn:hover { border-color: var(--teal); color: var(--teal); }
.ipm-like__btn.is-on { background: var(--teal); border-color: var(--teal); color: var(--panel); }
.ipm-like__btn.is-on svg { fill: var(--panel); stroke: var(--panel); }
.ipm-like__btn.is-pop svg { transform: scale(1.35); }
.ipm-like__count { color: var(--muted); font-size: 15px; }
.ipm-like__count strong { color: var(--white); }
@media (max-width: 520px) {
	.ipm-post__likebar { justify-content: center; text-align: center; }
	.ipm-like { flex-direction: column; gap: 8px; }
}
/* 1.24.1: "More … piercings" row stays centered however many there are. */
.ipm-guide__rel { display: flex; flex-wrap: wrap; justify-content: center; }
.ipm-guide__rel li { flex: 0 0 170px; }
@media (max-width: 600px) { .ipm-guide__rel li { flex: 0 0 calc(50% - 6px); } }

/* ---------------------------------------------------------------
   1.25.0: Types of Piercings page
   --------------------------------------------------------------- */
.ipm-types__intro { max-width: 760px; margin: 0 auto 28px; text-align: center; }
.ipm-types__intro p { margin: 0 0 1em; font-size: 18px; line-height: 1.75; }
.ipm-types__jump { position: sticky; top: 74px; z-index: 5; margin: 0 calc(-1 * var(--gutter)) 24px; padding: 12px var(--gutter); background: rgba(34,42,52,.94); backdrop-filter: blur(6px); }
.admin-bar .ipm-types__jump { top: 106px; }
.ipm-types__jump ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.ipm-types__sec { padding: clamp(32px, 5vw, 56px) 0 8px; scroll-margin-top: 150px; }
.ipm-types__head { max-width: 760px; margin: 0 auto 30px; text-align: center; }
.ipm-types__head .ipm-chev { margin: 0 auto 12px; }
.ipm-types__head h2 { margin: 0 0 14px; font-size: clamp(28px, 3.6vw, 42px); font-weight: 800; letter-spacing: .02em; text-transform: uppercase; text-shadow: var(--shadow); }
.ipm-types__text p { margin: 0 0 1em; line-height: 1.75; }
.ipm-types__text p:last-child { margin-bottom: 0; }
.ipm-types__cards { list-style: none; margin: 0 auto; padding: 0; max-width: 1140px; display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; }
.ipm-types__cards li { flex: 0 1 calc((100% - 48px) / 3); display: flex; }
.ipm-types__card {
	display: flex; flex-direction: column; width: 100%;
	background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden;
	box-shadow: var(--shadow); color: var(--text); transition: border-color .2s ease, transform .2s ease;
}
a.ipm-types__card:hover { border-color: var(--teal); color: var(--text); transform: translateY(-4px); }
.ipm-types__img { display: block; aspect-ratio: 1 / 1; background: var(--bg-alt); overflow: hidden; }
.ipm-types__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
a.ipm-types__card:hover .ipm-types__img img { transform: scale(1.04); }
.ipm-types__body { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 20px 22px 22px; }
.ipm-types__body strong { color: var(--white); font-size: 20px; line-height: 1.25; }
.ipm-types__body > span:not(.ipm-arrow-link) { font-size: 15px; line-height: 1.6; }
.ipm-types__body .ipm-arrow-link { margin-top: auto; padding-top: 8px; }
a.ipm-types__card:hover .ipm-arrow-link { color: var(--teal); }
.ipm-types__end { max-width: 860px; margin: clamp(48px, 7vw, 80px) auto 0; padding: 36px 32px; text-align: center; background: var(--panel); border: 2px solid var(--teal); border-radius: var(--r-card); }
.ipm-types__end h2 { margin: 0 0 12px; font-size: clamp(22px, 2.8vw, 28px); }
.ipm-types__end h2 ~ h2 { margin-top: 30px; padding-top: 28px; border-top: 1px solid var(--line); }
.ipm-types__end p { margin: 0 0 1em; }
.ipm-types__btns { display: flex; justify-content: center; margin: 22px 0 0 !important; }
@media (max-width: 900px) {
	.ipm-types__cards li { flex-basis: calc((100% - 24px) / 2); }
}
@media (max-width: 600px) {
	.ipm-types__intro p { font-size: 16px; }
	.ipm-types__jump { top: 64px; }
	.ipm-types__jump ul { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; }
	.ipm-types__jump ul::-webkit-scrollbar { display: none; }
	.ipm-types__jump li { flex: none; }
	.ipm-types__cards { gap: 12px; }
	.ipm-types__cards li { flex-basis: calc((100% - 12px) / 2); }
	.ipm-types__body { padding: 12px 12px 14px; gap: 4px; }
	.ipm-types__body strong { font-size: 15px; }
	.ipm-types__body > span:not(.ipm-arrow-link) { display: none; }
	.ipm-types__body .ipm-arrow-link { font-size: 11px; }
	.ipm-types__end { padding: 28px 20px; }
}
/* Show each of your Types photos whole, never cropped. */
.ipm-types__img { aspect-ratio: auto; }
.ipm-types__img img { height: auto; object-fit: initial; }
/* 1.25.1: Feature / Hide buttons on piercing page photos (only you see these, when logged in). */
.ipm-guide__tiles li { position: relative; }
.ipm-guide__work { scroll-margin-top: 110px; }
.ipm-guide__tools { position: absolute; top: 8px; right: 8px; display: flex; gap: 6px; z-index: 2; }
.ipm-guide__tools a { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: rgba(28,32,42,.85); color: var(--white); font-size: 15px; line-height: 1; text-decoration: none !important; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.ipm-guide__tools a:hover { background: var(--teal); color: var(--panel); }
.ipm-guide__tools a.is-on { background: var(--teal); color: var(--panel); }
/* 1.25.4: make the whole photo the link (other plugins can grab clicks on bare images). */
.ipm-guide__tiles a { display: block; position: relative; }
.ipm-guide__tiles a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ipm-guide__tiles img, .ipm-guide__relimg img, .ipm-types__img img, .ipm-faqpage__posts img { pointer-events: none; }
.ipm-guide__tiles span { z-index: 2; pointer-events: none; }
.ipm-guide__tools { z-index: 3; }
