/*
Theme Name: Sigil
Theme URI: https://schedopia.com/themes/sigil
Author: ThinkMatic
Author URI: https://schedopia.com
Description: Sigil is a dark, editorial block theme for tattoo and piercing studios. Near-black backgrounds, bone-white type, a blood-red accent and tall condensed Anton headings put your artists' work front and center. It ships with every page a studio needs: home, custom tattoos, flash with set prices, piercing with a jewelry price list, prices, artists, portfolio, aftercare, the studio, journal, FAQ, contact, booking, studio policies and privacy policy. It works hand in hand with the free Schedopia booking plugin, so clients can book a free consultation, a flash tattoo, a session or a piercing with the artist of their choice, right on your site. One click installs Schedopia and sets up your services, artists, studio hours and pages, so you are ready to take bookings in minutes. Two style variations are included: Flash (cream paper, red and green, like a traditional flash sheet) and Fine Line (off-white, black and serif headings).
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sigil
Tags: block-patterns, block-styles, custom-colors, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, full-width-template, one-column, style-variations, template-editing, threaded-comments, translation-ready, wide-blocks, blog, portfolio
*/

/*
 * Almost all styling lives in theme.json. This file only holds what
 * theme.json cannot express: block style variations and small refinements.
 */

/* ---------- Shared values ---------- */

:root {
	/* Text on photographs. It follows the photo overlay ("shade"): light text
	   on the default dark shade, dark text on Flash's and Fine Line's paper veil. */
	--sigil-on-photo: var(--wp--custom--on-photo--text);
	--sigil-on-photo-accent: var(--wp--custom--on-photo--accent);
}

/* ---------- Accessibility ---------- */

.screen-reader-text:focus {
	clip: auto !important;
	clip-path: none;
	height: auto;
	width: auto;
}

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: var(--wp--custom--radius--sm);
}

::selection {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}

/* Italic accents in headings: Instrument Serif's italic in red, against
   Anton's upright capitals. */
:is(h1, h2, h3, .wp-block-heading) em {
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.08em;
	font-style: italic;
	font-weight: 400;
	letter-spacing: -0.01em;
	text-transform: none;
}

/* Anton is a display face: keep long words from breaking out on phones. */
:is(h1, h2, h3) {
	overflow-wrap: break-word;
	text-wrap: balance;
}

/* ---------- Tag (eyebrow) ---------- */

.is-style-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.85em;
	width: fit-content;
	margin-bottom: 0;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.22em;
	line-height: 1.4;
	text-transform: uppercase;
}

.is-style-eyebrow::before {
	content: "";
	flex: none;
	width: 2.25rem;
	height: 1px;
	background: currentColor;
	opacity: 0.7;
}

.is-style-eyebrow.has-text-align-center {
	margin-left: auto;
	margin-right: auto;
}

.is-style-eyebrow.has-text-align-center::after {
	content: "";
	flex: none;
	width: 2.25rem;
	height: 1px;
	background: currentColor;
	opacity: 0.7;
}

.wp-block-cover .is-style-eyebrow {
	color: var(--sigil-on-photo-accent);
}

.has-deep-background-color .is-style-eyebrow {
	color: inherit;
	opacity: 0.85;
}

/* ---------- Buttons ---------- */

.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	border: 1px solid color-mix(in srgb, currentColor 45%, transparent);
	color: var(--wp--preset--color--contrast);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.wp-block-cover .wp-block-button.is-style-outline > .wp-block-button__link {
	border-color: color-mix(in srgb, var(--sigil-on-photo) 55%, transparent);
	color: var(--sigil-on-photo);
}

.wp-block-cover .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--sigil-on-photo);
	border-color: var(--sigil-on-photo);
	color: var(--wp--preset--color--shade);
}

.has-deep-background-color .wp-block-button.is-style-outline > .wp-block-button__link {
	border-color: color-mix(in srgb, var(--wp--preset--color--on-deep) 55%, transparent);
	color: var(--wp--preset--color--on-deep);
}

.has-deep-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--on-deep);
	border-color: var(--wp--preset--color--on-deep);
	color: var(--wp--preset--color--deep);
}

.wp-block-button.is-style-text-link > .wp-block-button__link {
	background: transparent;
	border: 0;
	border-radius: 0;
	color: var(--wp--preset--color--accent);
	padding: 0 0 0.3em;
	border-bottom: 1px solid color-mix(in srgb, currentColor 45%, transparent);
}

.wp-block-button.is-style-text-link > .wp-block-button__link::after {
	content: "\2192";
	display: inline-block;
	margin-left: 0.5em;
	transition: transform 0.2s ease;
}

.wp-block-button.is-style-text-link > .wp-block-button__link:hover {
	background: transparent;
	border-bottom-color: currentColor;
	color: var(--wp--preset--color--accent-3);
}

.wp-block-button.is-style-text-link > .wp-block-button__link:hover::after {
	transform: translateX(0.3em);
}

.wp-block-button__link.has-base-background-color:hover {
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--on-accent) !important;
}

/* ---------- Images ---------- */

.wp-block-image.is-style-rounded img,
.wp-block-post-featured-image.is-style-rounded img {
	border-radius: var(--wp--custom--radius--sm);
	box-shadow: var(--wp--preset--shadow--lift);
}

/* ---------- Groups ---------- */

.wp-block-group.is-style-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--lg);
	padding: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--contrast);
}

.wp-block-group.is-style-tint-card {
	background: var(--wp--preset--color--accent-2);
	border-radius: var(--wp--custom--radius--lg);
	padding: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--contrast);
}

.has-base-2-background-color .wp-block-group.is-style-tint-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
}

/* ---------- Separators ---------- */

.wp-block-separator.is-style-short {
	border: 0;
	border-top: 1px solid var(--wp--preset--color--accent);
	width: 3rem;
	margin-left: 0;
	opacity: 1;
}

/* ---------- Lists ---------- */

.wp-block-list.is-style-checks {
	list-style: none;
	padding-left: 0;
}

.wp-block-list.is-style-checks li {
	position: relative;
	padding-left: 1.75em;
	margin-bottom: 0.65em;
}

.wp-block-list.is-style-checks li::before {
	content: "";
	position: absolute;
	left: 0.1em;
	top: 0.5em;
	width: 0.7em;
	height: 0.38em;
	border-left: 1.5px solid var(--wp--preset--color--accent);
	border-bottom: 1.5px solid var(--wp--preset--color--accent);
	transform: rotate(-45deg);
}

/* ---------- Announcement bar and header ---------- */

.sigil-announce {
	letter-spacing: 0.04em;
}

.sigil-announce a {
	text-decoration: none;
	font-weight: 500;
}

.sigil-announce a:hover {
	text-decoration: underline;
}

.sigil-announce p {
	margin: 0;
}

.sigil-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--wp--preset--color--line);
	background: transparent !important;
}

/* The frosted backdrop lives on a pseudo-element: a backdrop-filter on the
   header itself would trap the mobile menu overlay inside the header. */
.sigil-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: color-mix(in srgb, var(--wp--preset--color--base) 90%, transparent);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
}

@media (max-width: 599px) {
	.sigil-announce p + p {
		display: none;
	}
}

.admin-bar .sigil-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

@media (max-width: 600px) {
	.admin-bar .sigil-header {
		top: 0;
	}
}

.sigil-header .wp-block-site-title a {
	text-decoration: none;
}

.sigil-header .wp-block-site-title,
.sigil-header .wp-block-button__link,
.sigil-header__phone {
	white-space: nowrap;
}

/* A small sigil mark before the site name when there's no logo. */
.sigil-header .wp-block-site-title a::before {
	content: "";
	display: inline-block;
	width: 0.8em;
	height: 0.8em;
	margin-right: 0.45em;
	vertical-align: -0.05em;
	background: var(--wp--preset--color--accent);
	-webkit-mask: var(--sigil-mark) center / contain no-repeat;
	mask: var(--sigil-mark) center / contain no-repeat;
}

.sigil-header .wp-block-site-logo + .wp-block-site-title a::before {
	display: none;
}

:root {
	--sigil-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='square'%3E%3Cpath d='M12 1.5L21 12l-9 10.5L3 12z'/%3E%3Cpath d='M12 1.5v21M7 12h10'/%3E%3Ccircle cx='12' cy='12' r='2.2' fill='%23000' stroke='none'/%3E%3C/svg%3E");
}

.sigil-header__phone a {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-decoration: none;
}

.sigil-header__phone a:hover {
	color: var(--wp--preset--color--accent);
}

/* Dropdown: a panel-coloured card under the parent item. */
.sigil-header .wp-block-navigation .wp-block-navigation__submenu-container {
	min-width: 15rem !important;
	padding: 0.5rem !important;
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: var(--wp--custom--radius--md);
	background: var(--wp--preset--color--base-2) !important;
	box-shadow: var(--wp--preset--shadow--lift);
}

.sigil-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.65rem 0.75rem !important;
	border-radius: var(--wp--custom--radius--sm);
}

.sigil-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--accent);
}

.sigil-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent);
}

/* Mobile overlay: big, calm list with the submenu always open. */
.sigil-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--preset--spacing--40);
}

.sigil-header .wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation__responsive-container-content, .wp-block-navigation__container, .wp-block-navigation__submenu-container) {
	align-items: flex-start !important;
	text-align: left;
}

.sigil-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 400;
	letter-spacing: 0.01em;
	text-transform: var(--wp--custom--heading-case);
}

.sigil-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	min-width: 0 !important;
	padding: 0.25rem 0 0 1rem !important;
	border: 0 !important;
	box-shadow: none;
	background: transparent !important;
}

.sigil-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
}

/* Collapse the menu into the overlay below 1100px, not WordPress's default 600px. */
@media (max-width: 1099px) {
	.sigil-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.sigil-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}

	.sigil-header__phone {
		display: none;
	}
}

@media (max-width: 599px) {
	.sigil-header .sigil-header__cta {
		display: none;
	}
}

/* The phone number is in the top bar too; drop it here before the menu wraps. */
@media (max-width: 1599px) {
	.sigil-header__phone {
		display: none;
	}
}

.sigil-header .wp-block-navigation__container {
	flex-wrap: nowrap;
}

/* ---------- Photo covers (hero, page heroes, booking band) ---------- */

body .wp-block-cover {
	color: var(--sigil-on-photo);
}

/* Full-width photos keep the page's side padding, also inside post content,
   where WordPress drops it from nested containers. */
.wp-block-cover.alignfull {
	padding-left: 0;
	padding-right: 0;
}

/* Core sets positioned covers' content to width: auto with a doubled class. */
.wp-block-cover.alignfull > .wp-block-cover__inner-container.has-global-padding,
.wp-block-cover.alignfull.has-custom-content-position.has-custom-content-position > .wp-block-cover__inner-container.has-global-padding {
	width: 100%;
	padding-left: var(--wp--style--root--padding-left);
	padding-right: var(--wp--style--root--padding-right);
}

/* Line the text up with the header and the sections below. */
.wp-block-cover.alignfull > .wp-block-cover__inner-container > .alignwide {
	width: 100%;
	max-width: var(--wp--style--global--wide-size);
	margin-left: auto !important;
	margin-right: auto !important;
}

.wp-block-cover :is(h1, h2, h3) em {
	color: var(--sigil-on-photo-accent);
}

.wp-block-cover .has-contrast-2-color,
.wp-block-cover .sigil-hero__lead {
	color: color-mix(in srgb, var(--sigil-on-photo) 84%, transparent) !important;
}

/* A side veil in the overlay colour: strong behind the text on the left,
   clear on the right, so the photo stays bright. Stronger on phones, where
   the text runs across the whole photo. */
.sigil-hero::before,
.sigil-page-hero--photo::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(90deg,
		color-mix(in srgb, var(--wp--preset--color--shade) 88%, transparent) 0%,
		color-mix(in srgb, var(--wp--preset--color--shade) 70%, transparent) 38%,
		color-mix(in srgb, var(--wp--preset--color--shade) 0%, transparent) 72%);
}

@media (max-width: 781px) {
	.sigil-hero::before,
	.sigil-page-hero--photo::before {
		background: linear-gradient(180deg,
			color-mix(in srgb, var(--wp--preset--color--shade) 35%, transparent) 0%,
			color-mix(in srgb, var(--wp--preset--color--shade) 82%, transparent) 55%,
			color-mix(in srgb, var(--wp--preset--color--shade) 90%, transparent) 100%);
	}
}

.sigil-hero .wp-block-cover__inner-container,
.sigil-page-hero--photo .wp-block-cover__inner-container {
	z-index: 2;
}

.sigil-hero h1 {
	max-width: 12ch;
	font-weight: 400;
	line-height: 0.92;
}

.sigil-hero .sigil-hero__lead {
	max-width: 38rem;
}

/* Keep the artist in frame when narrow screens crop the photo's sides. */
.sigil-hero .wp-block-cover__image-background {
	object-position: 68% 50%;
}

@media (prefers-reduced-motion: no-preference) {
	.sigil-hero .wp-block-cover__image-background {
		animation: sigil-drift 24s ease-out both;
	}

	@keyframes sigil-drift {
		from {
			transform: scale(1.06);
		}

		to {
			transform: scale(1);
		}
	}
}

.sigil-chips {
	gap: 0.5rem 1.5rem !important;
}

.sigil-chip {
	margin: 0 !important;
	color: color-mix(in srgb, currentColor 85%, transparent);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.sigil-chip::before {
	content: "";
	display: inline-block;
	width: 0.4rem;
	height: 0.4rem;
	margin-right: 0.7em;
	transform: rotate(45deg);
	background: var(--sigil-on-photo-accent);
	vertical-align: 0.15em;
}

/* ---------- Trust bar ---------- */

.sigil-trust p {
	margin: 0;
}

.sigil-trust__item {
	align-items: center;
}

/* ---------- Icons (feature cards, trust bar) ---------- */

.sigil-icon {
	display: grid;
	place-items: center;
	flex: none;
	width: 3rem;
	height: 3rem;
	margin: 0;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 45%, transparent);
	border-radius: var(--wp--custom--radius--md);
	font-size: 0;
	line-height: 0;
}

.sigil-icon::before {
	content: "";
	width: 1.35rem;
	height: 1.35rem;
	background: var(--wp--preset--color--accent);
	-webkit-mask: var(--sigil-icon) center / contain no-repeat;
	mask: var(--sigil-icon) center / contain no-repeat;
}

.sigil-icon--sm {
	width: 2.5rem;
	height: 2.5rem;
}

.sigil-icon--sm::before {
	width: 1.15rem;
	height: 1.15rem;
}

/* Line icons drawn for Sigil (GPL, see readme.txt). */
.sigil-icon--machine { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20l5.5-5.5'/%3E%3Crect x='8.5' y='7.5' width='6' height='7' rx='1' transform='rotate(45 11.5 11)'/%3E%3Cpath d='M14 6l2-2 4 4-2 2M15.5 4.5L19.5 8.5M17 9.5l-3 3'/%3E%3Ccircle cx='18.5' cy='14.5' r='1.5'/%3E%3C/svg%3E"); }
.sigil-icon--needle { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 4L6.5 17.5M20 4l-2.5 6.5L9.5 18.5 5.5 18.5 5.5 14.5 13.5 6.5z'/%3E%3Cpath d='M5.5 18.5L3 21'/%3E%3C/svg%3E"); }
.sigil-icon--bolt { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2.5L5 13.5h6l-1 8 8-11h-6z'/%3E%3C/svg%3E"); }
.sigil-icon--hoop { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21a6 6 0 01-6-6c0-3 2.2-5.4 5-5.9'/%3E%3Cpath d='M12 21a6 6 0 006-6c0-2.4-1.4-4.4-3.4-5.4'/%3E%3Ccircle cx='12' cy='5' r='2.5'/%3E%3Cpath d='M12 7.5v1.6'/%3E%3C/svg%3E"); }
.sigil-icon--gem { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 4h11L21 9l-9 11L3 9z'/%3E%3Cpath d='M3 9h18M9.5 4L8 9l4 11 4-11-1.5-5'/%3E%3C/svg%3E"); }
.sigil-icon--chat { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v10.5H10L5.5 19.5V15.5H4z'/%3E%3Cpath d='M8 9.5h8M8 12.5h5'/%3E%3C/svg%3E"); }
.sigil-icon--pencil { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20l1-4.5L16 4.5l3.5 3.5L8.5 19z'/%3E%3Cpath d='M14 6.5l3.5 3.5M4 20l4.5-1'/%3E%3C/svg%3E"); }
.sigil-icon--shield { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 4.5-3.4 8.2-8 9-4.6-.8-8-4.5-8-9V6l8-3z'/%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'/%3E%3C/svg%3E"); }
.sigil-icon--users { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0113 0M16 4.7a3.5 3.5 0 010 6.6M18 14a6.5 6.5 0 013.5 6'/%3E%3C/svg%3E"); }
.sigil-icon--id { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='1.5'/%3E%3Ccircle cx='8.5' cy='11' r='2'/%3E%3Cpath d='M5.5 16a3 3 0 016 0M14 10h4M14 13.5h3'/%3E%3C/svg%3E"); }
.sigil-icon--star { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9L12 3z'/%3E%3C/svg%3E"); }
.sigil-icon--heart { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7.5-4.4-7.5-10A4.5 4.5 0 0112 7a4.5 4.5 0 017.5 3c0 5.6-7.5 10-7.5 10z'/%3E%3C/svg%3E"); }
.sigil-icon--clock { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.sigil-icon--calendar { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4M8.5 15l2 2 4-4'/%3E%3C/svg%3E"); }
.sigil-icon--card { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 10h18M7 15h4'/%3E%3C/svg%3E"); }
.sigil-icon--map { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6.5-6-6.5-11a6.5 6.5 0 0113 0c0 5-6.5 11-6.5 11z'/%3E%3Ccircle cx='12' cy='10' r='2.4'/%3E%3C/svg%3E"); }
.sigil-icon--phone { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h3.5l1.8 4.5-2.3 1.4a11 11 0 005.1 5.1l1.4-2.3L19 14.5V18a2 2 0 01-2 2A15 15 0 013 6a2 2 0 012-2z'/%3E%3C/svg%3E"); }
.sigil-icon--droplet { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3s6 6.5 6 11a6 6 0 01-12 0c0-4.5 6-11 6-11z'/%3E%3Cpath d='M9 14.5a3 3 0 003 3'/%3E%3C/svg%3E"); }
.sigil-icon--sun { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2.5v2M12 19.5v2M2.5 12h2M19.5 12h2M5.3 5.3l1.4 1.4M17.3 17.3l1.4 1.4M5.3 18.7l1.4-1.4M17.3 6.7l1.4-1.4'/%3E%3C/svg%3E"); }
.sigil-icon--bandage { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='8' width='19' height='8' rx='4' transform='rotate(-35 12 12)'/%3E%3Cpath d='M10 10l4 4M14 10l-4 4'/%3E%3C/svg%3E"); }
.sigil-icon--bike { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='16' r='3.5'/%3E%3Ccircle cx='18' cy='16' r='3.5'/%3E%3Cpath d='M6 16l4-7h5l3 7M10 9l2.5 7H6M14 6h2.5'/%3E%3C/svg%3E"); }
.sigil-icon--sparkle { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8L12 3z'/%3E%3C/svg%3E"); }
.sigil-icon--image { --sigil-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='1.5'/%3E%3Ccircle cx='9' cy='9.5' r='1.8'/%3E%3Cpath d='M21 16l-5-5-8.5 9'/%3E%3C/svg%3E"); }

/* ---------- Feature cards ---------- */

.sigil-feature {
	height: 100%;
}

.sigil-feature .wp-block-heading {
	margin-top: 0.5rem;
}

/* ---------- Steps ---------- */

.sigil-step__number {
	margin: 0;
	padding-bottom: 0.6rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 400;
	line-height: 1;
}

.sigil-step__number::before {
	content: "0";
}

/* ---------- Team ---------- */

.sigil-person {
	height: 100%;
}

.sigil-person .wp-block-image {
	margin-bottom: 0.75rem;
}

.sigil-person .wp-block-image img {
	box-shadow: none;
	filter: grayscale(0.4) contrast(1.05);
	transition: filter 0.4s ease;
}

.sigil-person:hover .wp-block-image img {
	filter: none;
}

.sigil-person .wp-block-heading {
	margin-top: 0.15rem;
}

.sigil-person__role {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* ---------- Specialty tiles ---------- */

.sigil-tile {
	position: relative;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--lg);
	background: var(--wp--preset--color--surface);
	transition: border-color 0.3s ease;
}

.sigil-tile .wp-block-image {
	margin: 0;
	overflow: hidden;
}

.sigil-tile .wp-block-image img {
	border-radius: 0;
	transition: transform 0.6s ease;
}

.sigil-tile__body {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.sigil-tile .wp-block-heading a {
	color: inherit;
	text-decoration: none;
}

.sigil-tile .wp-block-heading a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.sigil-tile__more {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.sigil-tile__more::after {
	content: "\2192";
	display: inline-block;
	margin-left: 0.5em;
	transition: transform 0.2s ease;
}

.sigil-tile:hover {
	border-color: color-mix(in srgb, var(--wp--preset--color--accent) 55%, transparent);
}

.sigil-tile:hover .sigil-tile__more::after {
	transform: translateX(0.3em);
}

@media (prefers-reduced-motion: no-preference) {
	.sigil-tile:hover .wp-block-image img {
		transform: scale(1.05);
	}
}

/* ---------- Anchor chips ---------- */

.sigil-chipnav {
	gap: 0.5rem !important;
}

.sigil-chipnav p {
	margin: 0;
}

.sigil-chipnav a {
	display: inline-block;
	padding: 0.65em 1.2em;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--sm);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}

.sigil-chipnav a:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

/* ---------- Consultation band ---------- */

.sigil-band {
	border-radius: var(--wp--custom--radius--xl);
	background-image: radial-gradient(50rem 22rem at 100% 0%, color-mix(in srgb, var(--wp--preset--color--accent) 14%, transparent), transparent 70%);
}

/* Muted text on the oxblood (or green, or charcoal) bands follows the band, in every variation. */
.has-deep-background-color .has-contrast-2-color {
	color: color-mix(in srgb, var(--wp--preset--color--on-deep) 80%, transparent) !important;
}

/* ---------- Flash cards ---------- */

.sigil-flash {
	height: 100%;
}

.sigil-flash__image {
	margin: 0 0 0.6rem !important;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--surface);
}

.sigil-flash__image img {
	transition: transform 0.6s ease;
}

.sigil-flash__head {
	gap: 1rem !important;
}

.sigil-flash__head .wp-block-heading {
	margin: 0;
}

.sigil-flash__price {
	flex: none;
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.2;
}

.sigil-flash__meta {
	margin: 0;
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

@media (prefers-reduced-motion: no-preference) {
	.sigil-flash:hover .sigil-flash__image img {
		transform: scale(1.04) rotate(-0.6deg);
	}
}

/* ---------- Opening hours table ---------- */

.sigil-hours {
	margin: 0;
}

.sigil-hours p {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
	padding: 0.6em 0;
	border-bottom: 1px solid color-mix(in srgb, currentColor 16%, transparent);
}

.sigil-hours p span:first-child {
	font-weight: 500;
}

/* ---------- Reviews ---------- */

.sigil-quote .wp-block-quote {
	border: 0;
	padding: 0;
	margin: 0;
}

.sigil-quote .wp-block-quote p {
	font-size: var(--wp--preset--font-size--large);
}

.sigil-quote .wp-block-quote cite {
	display: block;
	margin-top: 1.25rem;
	color: var(--wp--preset--color--contrast-2);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--x-small);
	font-style: normal;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.sigil-stars {
	margin: 0;
	color: var(--wp--preset--color--accent);
	letter-spacing: 0.2em;
	font-size: 0.9em;
}

/* ---------- FAQ (details) ---------- */

.wp-block-details {
	margin: 0;
	padding: var(--wp--preset--spacing--30) 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.wp-block-details + .wp-block-details {
	margin-top: 0 !important;
}

.wp-block-details summary {
	cursor: pointer;
	position: relative;
	padding-right: 2.75rem;
	list-style: none;
	font-family: var(--wp--preset--font-family--body);
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.4;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after {
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	display: grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--md);
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--body);
	font-size: 1.1rem;
	font-weight: 400;
}

.wp-block-details[open] summary::after {
	content: "\2212";
	border-color: var(--wp--preset--color--accent);
}

.wp-block-details > :not(summary) {
	margin-top: 0.75em;
	color: var(--wp--preset--color--contrast-2);
}

/* ---------- Stats ---------- */

.sigil-stat__number {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--huge);
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1;
}

/* ---------- Price lists (add-ons, extras) ---------- */

.sigil-addon {
	gap: 1.5rem !important;
	padding: 1.1rem 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.sigil-addon p {
	margin: 0;
}

.sigil-addon__price {
	flex: none;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
	white-space: nowrap;
}

/* ---------- Portfolio grid ---------- */

.sigil-gallery .wp-block-image {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: var(--wp--custom--radius--sm);
}

.sigil-gallery .wp-block-image img {
	border-radius: 0;
}

.sigil-gallery .wp-block-image figcaption {
	position: absolute;
	inset: auto 0 0;
	margin: 0;
	padding: 2.5rem 1rem 0.9rem;
	background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--wp--preset--color--shade) 80%, transparent));
	color: var(--sigil-on-photo);
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--medium);
	font-style: italic;
	text-align: left;
	opacity: 0;
	transition: opacity 0.35s ease;
}

.sigil-gallery .wp-block-image:hover figcaption,
.sigil-gallery .wp-block-image:focus-within figcaption {
	opacity: 1;
}

@media (hover: none) {
	.sigil-gallery .wp-block-image figcaption {
		opacity: 1;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.sigil-gallery .wp-block-image img {
		transition: transform 0.6s ease;
	}

	.sigil-gallery .wp-block-image:hover img {
		transform: scale(1.04);
	}
}

/* ---------- Comparison cards ---------- */

.sigil-compare .wp-block-heading {
	margin-top: 0;
}

.sigil-compare__tag {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/* ---------- Footer ---------- */

.sigil-footer {
	border-top: 1px solid var(--wp--preset--color--line);
}

.sigil-footer .sigil-brand {
	color: inherit;
	font-size: 2.25rem;
}

.sigil-footer .wp-block-navigation {
	letter-spacing: 0;
	text-transform: none;
}

.sigil-footer .wp-block-navigation-item {
	margin-bottom: 0.15rem;
}

.sigil-footer .wp-block-navigation a:hover {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.sigil-footer .sigil-hours p {
	padding: 0.4em 0;
}

.sigil-footer__heading {
	margin-bottom: 0.75rem;
	opacity: 0.7;
}

/* ---------- Booking placeholder (when Schedopia is not active) ---------- */

.sigil-booking-placeholder {
	border: 1px dashed var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--lg);
	background: var(--wp--preset--color--surface);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	text-align: center;
}

.sigil-booking-placeholder__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 400;
	text-transform: var(--wp--custom--heading-case);
	margin: 0 0 0.4em;
}

.sigil-booking-placeholder p {
	margin: 0.4em 0;
}

/* ---------- Motion ---------- */

@media (prefers-reduced-motion: no-preference) {
	.wp-block-button__link,
	.wp-block-navigation-item__content {
		transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
	}
}

/* ---------- Session preview (before Schedopia is set up) ---------- */

.sigil-preview-note {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--contrast-2);
	margin-bottom: var(--wp--preset--spacing--30);
}

.sigil-services {
	list-style: none;
	margin: var(--wp--preset--spacing--30) 0 0;
	padding: 0;
}

.sigil-services--grid {
	display: grid;
	gap: var(--wp--preset--spacing--30);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
}

@media (min-width: 960px) {
	.sigil-services--grid {
		grid-template-columns: repeat(var(--sigil-cols, 3), minmax(0, 1fr));
	}
}

.sigil-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--lg);
}

.sigil-card img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.sigil-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.5rem;
	padding: var(--wp--preset--spacing--30);
}

.sigil-card__body p,
.sigil-card__body h3 {
	margin: 0;
}

.sigil-card__cat {
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.sigil-card__title {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
	letter-spacing: 0.01em;
	text-transform: var(--wp--custom--heading-case);
}

.sigil-card__desc {
	flex: 1;
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--small);
}

.sigil-card__meta {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--x-small);
}

.sigil-card__foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	margin-top: 0.5rem;
	padding-top: 0.85rem;
	border-top: 1px solid var(--wp--preset--color--line);
	font-size: var(--wp--preset--font-size--small);
}

.sigil-card__price b {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.3rem;
	font-weight: 400;
}

.sigil-card__price span {
	margin-left: 0.35em;
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--x-small);
}

.sigil-card__book {
	padding: 0.6em 1.1em;
	border-radius: var(--wp--custom--radius--sm);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}

.sigil-card__book:hover {
	background: var(--wp--preset--color--accent-3);
	color: var(--wp--preset--color--on-accent);
}

.sigil-card--person img {
	aspect-ratio: 4 / 5;
}

.sigil-menu__row {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 0.25rem 1.5rem;
	align-items: baseline;
	padding: 1rem 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.sigil-menu__row p {
	margin: 0;
}

.sigil-menu__title {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
}

.sigil-menu__desc {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--small);
}

.sigil-menu__meta {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--small);
	white-space: nowrap;
}

.sigil-menu__price {
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
	white-space: nowrap;
}

/* ---------- Muted text and dividers on any background ---------- */

.sigil-muted {
	opacity: 0.78;
}

.sigil-divider {
	border-top-style: solid;
	border-top-color: color-mix(in srgb, currentColor 18%, transparent);
}

/* Anchored sections clear the sticky header. */
[id] {
	scroll-margin-top: 6rem;
}

/* Sections butt up against the header and footer; no gap between template parts. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* ---------- Page heroes ---------- */

.sigil-page-hero:not(.wp-block-cover) {
	background-image: radial-gradient(60rem 30rem at 90% -20%, color-mix(in srgb, var(--wp--preset--color--accent) 12%, transparent), transparent 70%);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.sigil-page-hero h1 {
	font-weight: 400;
}

/* Portraits and tiles two across on phones; tighter type to fit. */
@media (max-width: 599px) {
	.sigil-team,
	.sigil-tiles {
		gap: var(--wp--preset--spacing--30) !important;
	}

	.sigil-team .wp-block-heading,
	.sigil-tiles .wp-block-heading {
		font-size: 1.125rem !important;
	}

	.sigil-team .sigil-person__role {
		font-size: 0.6875rem;
		letter-spacing: 0.08em;
	}

	.sigil-menu__row {
		grid-template-columns: 1fr auto;
	}

	.sigil-menu__meta {
		grid-row: 2;
	}
}
