/*
Theme Name: Yogiva
Theme URI: https://schedopia.com/themes/yogiva
Author: ThinkMatic
Author URI: https://schedopia.com
Description: Yogiva is a boutique block theme for yoga and Pilates studios. Warm oat backgrounds, deep ink, a butter-yellow accent and big Bricolage Grotesque headings give your studio a site that feels current and calm. It ships with every page a studio needs: home, classes, pages for yoga, mat Pilates, reformer and private sessions, a live weekly timetable, pricing with class packs, teachers, a new student guide, about, journal, FAQ, contact, booking, studio policy and privacy policy. It works hand in hand with the free Schedopia booking plugin, so students can pick a class, choose a day and save a place right on your site, with each class closing when its places are gone. One click installs Schedopia and sets up your classes, teachers, prices, opening hours and pages, so you are ready to take bookings in minutes. Two style variations are included: Dusk (aubergine, lilac and saffron with serif headings) and Clay (sand, ochre and clay with 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: yogiva
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
*/

/*
 * 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 a dark shade in every style. */
	--yogiva-on-photo: var(--wp--custom--on-photo--text);
	--yogiva-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);
}

/* Headings: Bricolage Grotesque, big and tight. */
:is(h1, h2, h3, h4, .wp-block-heading, .wp-block-site-title, .wp-block-post-title) {
	font-stretch: var(--wp--custom--heading-stretch, 100%);
}

/* Accents in headings: the same face, on a butter marker stroke. */
:is(h1, h2, h3, .wp-block-heading) em {
	font-style: normal;
	background: linear-gradient(transparent 62%, var(--wp--preset--color--highlight) 62%, var(--wp--preset--color--highlight) 92%, transparent 92%);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/* 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: 700;
	letter-spacing: 0.12em;
	line-height: 1.4;
	text-transform: uppercase;
}

.is-style-eyebrow::before {
	content: "";
	flex: none;
	width: 1.6rem;
	height: 4px;
	border-radius: 2px;
	background: var(--wp--preset--color--highlight);
}

.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: 1.6rem;
	height: 4px;
	border-radius: 2px;
	background: var(--wp--preset--color--highlight);
}

.wp-block-cover .is-style-eyebrow {
	color: var(--yogiva-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(--yogiva-on-photo) 55%, transparent);
	color: var(--yogiva-on-photo);
}

.wp-block-cover .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--yogiva-on-photo);
	border-color: var(--yogiva-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--lg);
	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-card {
	box-shadow: var(--wp--preset--shadow--soft);
}

.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: 2px solid var(--wp--preset--color--accent);
	border-bottom: 2px solid var(--wp--preset--color--accent);
	transform: rotate(-45deg);
}

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

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

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

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

.yogiva-announce p {
	margin: 0;
}

.yogiva-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. */
.yogiva-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) {
	.yogiva-announce p + p {
		display: none;
	}
}

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

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

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

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

/* A small ring-and-dot mark before the site name when there's no logo. */
.yogiva-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(--yogiva-mark) center / contain no-repeat;
	mask: var(--yogiva-mark) center / contain no-repeat;
}

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

:root {
	--yogiva-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.4' stroke-linecap='round'%3E%3Cpath d='M20.5 8.5A9.5 9.5 0 1 0 21.5 12'/%3E%3Ccircle cx='12' cy='12' r='2.6' fill='%23000' stroke='none'/%3E%3C/svg%3E");
}

.yogiva-header__phone a {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	text-decoration: none;
}

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

/* Dropdown: a panel-coloured card under the parent item. */
.yogiva-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);
}

.yogiva-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);
}

.yogiva-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);
}

.yogiva-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. */
.yogiva-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--preset--spacing--40);
}

.yogiva-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;
}

.yogiva-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-stretch: var(--wp--custom--heading-stretch, 100%);
	font-weight: 700;
	letter-spacing: -0.01em;
	text-transform: var(--wp--custom--heading-case);
}

.yogiva-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;
}

.yogiva-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) {
	.yogiva-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

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

	.yogiva-header__phone {
		display: none;
	}
}

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

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

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

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

body .wp-block-cover {
	color: var(--yogiva-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 {
	background: none;
	color: var(--yogiva-on-photo-accent);
}

.wp-block-cover .has-contrast-2-color,
.wp-block-cover .yogiva-hero__lead {
	color: color-mix(in srgb, var(--yogiva-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. */
.yogiva-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) {
	.yogiva-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%);
	}
}

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

/* Home hero: headline on oat, photo on a butter block. */
.yogiva-hero h1 {
	max-width: 11ch;
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 0.98;
}

.yogiva-hero__photo {
	position: relative;
	isolation: isolate;
	margin: 0 1.5rem 1.5rem 0;
}

.yogiva-hero__photo::before {
	content: "";
	position: absolute;
	inset: 1.5rem -1.5rem -1.5rem 1.5rem;
	z-index: -1;
	border-radius: var(--wp--custom--radius--lg);
	background: var(--wp--preset--color--highlight);
}

.yogiva-hero__photo img {
	display: block;
	width: 100%;
	border-radius: var(--wp--custom--radius--lg);
}

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

.yogiva-chip {
	margin: 0 !important;
	color: color-mix(in srgb, currentColor 92%, transparent);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.yogiva-chip::before {
	content: "";
	display: inline-block;
	width: 0.5rem;
	height: 0.5rem;
	margin-right: 0.6em;
	border-radius: 50%;
	background: var(--wp--preset--color--highlight);
	vertical-align: 0.1em;
}

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

.yogiva-trust p {
	margin: 0;
}

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

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

.yogiva-icon {
	display: grid;
	place-items: center;
	flex: none;
	width: 3rem;
	height: 3rem;
	margin: 0;
	border-radius: var(--wp--custom--radius--md);
	background: var(--wp--preset--color--accent-2);
	font-size: 0;
	line-height: 0;
}

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

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

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

/* Line icons drawn for Yogiva (GPL, see readme.txt). */
.yogiva-icon--bolt { --yogiva-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"); }
.yogiva-icon--shield { --yogiva-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"); }
.yogiva-icon--users { --yogiva-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"); }
.yogiva-icon--star { --yogiva-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"); }
.yogiva-icon--heart { --yogiva-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"); }
.yogiva-icon--clock { --yogiva-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"); }
.yogiva-icon--calendar { --yogiva-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"); }
.yogiva-icon--card { --yogiva-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"); }
.yogiva-icon--map { --yogiva-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"); }
.yogiva-icon--phone { --yogiva-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"); }
.yogiva-icon--droplet { --yogiva-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"); }
.yogiva-icon--sun { --yogiva-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"); }
.yogiva-icon--chat { --yogiva-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"); }
.yogiva-icon--sparkle { --yogiva-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"); }
.yogiva-icon--image { --yogiva-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"); }
.yogiva-icon--cup { --yogiva-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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h11v6a5 5 0 01-5 5h-1a5 5 0 01-5-5z'/%3E%3Cpath d='M16 10h1.5a2.5 2.5 0 010 5H16'/%3E%3Cpath d='M8.5 3.5c0 1 1 1 1 2M12 3.5c0 1 1 1 1 2'/%3E%3C/svg%3E"); }
.yogiva-icon--car { --yogiva-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.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16v-4l2-5h12l2 5v4z'/%3E%3Cpath d='M4 12h16'/%3E%3Ccircle cx='7.5' cy='16.5' r='1.8'/%3E%3Ccircle cx='16.5' cy='16.5' r='1.8'/%3E%3C/svg%3E"); }

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

.yogiva-feature {
	height: 100%;
}

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

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

.yogiva-step__number {
	margin: 0;
	padding-bottom: 0.6rem;
	border-bottom: 3px solid var(--wp--preset--color--highlight);
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--xx-large);
	font-stretch: var(--wp--custom--heading-stretch, 100%);
	font-weight: 700;
	line-height: 1;
	width: fit-content;
}

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

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

.yogiva-person {
	height: 100%;
}

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

.yogiva-person .wp-block-image img {
	box-shadow: none;
}

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

.yogiva-person__role {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

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

.yogiva-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);
	box-shadow: var(--wp--preset--shadow--soft);
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

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

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

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

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

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

.yogiva-tile__more {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 650;
}

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

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

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

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

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

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

.yogiva-chipnav p {
	margin: 0;
}

.yogiva-chipnav a {
	display: inline-block;
	padding: 0.55em 1.15em;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
}

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

/* ---------- New here band ---------- */

.yogiva-band {
	border-radius: var(--wp--custom--radius--xl);
	background-image: radial-gradient(26rem 26rem at 104% 120%, color-mix(in srgb, var(--wp--preset--color--highlight) 28%, transparent) 0 62%, transparent 62.5%);
}

.yogiva-band .is-style-eyebrow {
	color: var(--wp--preset--color--highlight);
	opacity: 1;
}

/* Muted text on the deep 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;
}

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

.yogiva-hours {
	margin: 0;
}

.yogiva-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);
}

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

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

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

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

.yogiva-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--small);
	font-style: normal;
	font-weight: 600;
}

.yogiva-stars {
	margin: 0;
	color: var(--wp--preset--color--highlight);
	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 ---------- */

.yogiva-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-stretch: var(--wp--custom--heading-stretch, 100%);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1;
}

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

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

.yogiva-addon p {
	margin: 0;
}

.yogiva-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: 700;
	white-space: nowrap;
}

/* ---------- Gallery grid ---------- */

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

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

.yogiva-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(--yogiva-on-photo);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-align: left;
	opacity: 0;
	transition: opacity 0.35s ease;
}

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

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

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

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

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

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

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

/* ---------- Weekly timetable ---------- */

.yogiva-timetable {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 0.5rem;
}

.yogiva-timetable__day {
	min-width: 0;
}

.yogiva-timetable__name {
	margin: 0 0 0.5rem;
	padding: 0.6rem 0.75rem;
	border-radius: var(--wp--custom--radius--sm);
	background: var(--wp--preset--color--deep);
	color: var(--wp--preset--color--on-deep);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
}

.yogiva-timetable ol {
	display: grid;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.yogiva-class a {
	display: grid;
	gap: 0.1rem;
	padding: 0.7rem 0.75rem;
	border: 1px solid var(--wp--preset--color--line);
	border-left: 4px solid var(--yogiva-class, var(--wp--preset--color--line));
	border-radius: var(--wp--custom--radius--sm);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.35;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.yogiva-class a:hover,
.yogiva-class a:focus-visible {
	box-shadow: var(--wp--preset--shadow--soft);
	transform: translateY(-1px);
}

.yogiva-class--yoga { --yogiva-class: var(--wp--preset--color--highlight); }
.yogiva-class--pilates { --yogiva-class: var(--wp--preset--color--contrast-2); }
.yogiva-class--reformer { --yogiva-class: var(--wp--preset--color--accent); }

.yogiva-class__time {
	font-weight: 700;
}

.yogiva-class__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.2;
}

.yogiva-class__teacher,
.yogiva-class__places {
	color: var(--wp--preset--color--contrast-2);
}

.yogiva-timetable__none,
.yogiva-timetable__empty {
	margin: 0;
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--small);
}

.yogiva-timetable__none {
	padding: 0.7rem 0.75rem;
}

/* Too narrow for seven columns: one day after another. */
@media (max-width: 1080px) {
	.yogiva-timetable {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.25rem;
	}

	.yogiva-timetable ol {
		grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
	}
}

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

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

.yogiva-footer .yogiva-brand {
	color: inherit;
	font-size: 2rem;
}

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

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

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

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

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

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

.yogiva-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;
}

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

.yogiva-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) ---------- */

.yogiva-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);
}

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

.yogiva-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) {
	.yogiva-services--grid {
		grid-template-columns: repeat(var(--yogiva-cols, 3), minmax(0, 1fr));
	}
}

.yogiva-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);
}

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

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

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

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

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

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

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

.yogiva-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);
}

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

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

.yogiva-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;
}

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

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

.yogiva-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);
}

.yogiva-menu__row p {
	margin: 0;
}

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

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

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

.yogiva-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: 700;
	white-space: nowrap;
}

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

.yogiva-muted {
	opacity: 0.78;
}

.yogiva-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 ---------- */

.yogiva-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);
}

.yogiva-page-hero h1 {
	font-weight: 700;
}

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

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

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

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

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