/* ==========================================================================
   SOL Skin Studio — styles.css
   Design tokens (colors, fonts, sizes) live in theme.json and are consumed
   here through --wp--preset--* custom properties.
   ========================================================================== */

/* ==========================================================================
   1. Base
   ========================================================================== */
html {
	color-scheme: light;
	scroll-behavior: smooth;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

.wp-site-blocks section[id] {
	scroll-margin-top: 88px;
}

h1, h2, h3, h4 {
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

h1 em,
h2 em {
	font-style: italic;
	font-weight: 400;
	color: var(--wp--preset--color--bronze);
}

/* ==========================================================================
   2. Layout helpers
   ========================================================================== */
/* Explicit light surface so sections stay legible even if a dark
   background is set globally (Site Editor > Styles or browser dark mode). */
.sol-landing,
.sol-section {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
}

.sol-section {
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--70);
}

.sol-section__head {
	margin-bottom: var(--wp--preset--spacing--50);
}

.sol-section__head > * {
	max-width: 640px;
}

.sol-section__head > * + * {
	margin-top: 1rem;
}

.sol-landing,
.sol-landing > .wp-block-post-content {
	margin-top: 0;
}

.sol-landing .wp-block-post-content > .alignfull + .alignfull {
	margin-top: 0;
}

/* ==========================================================================
   3. Typography utilities
   ========================================================================== */
.sol-eyebrow {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--bronze);
}

.sol-lead {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.65;
	color: var(--wp--preset--color--muted);
}

.sol-credential {
	display: inline-block;
	width: fit-content;
	padding: 0.45rem 1.1rem;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--cocoa);
}

.sol-checklist {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sol-checklist li {
	position: relative;
	padding: 0.85rem 0 0.85rem 1.75rem;
	border-bottom: 1px solid var(--wp--preset--color--sand);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--cocoa);
}

.sol-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.35rem;
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 50%;
	border: 1px solid var(--wp--preset--color--bronze);
}

.sol-checklist--2col {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 2rem;
}

.sol-bullets {
	margin: 0;
	padding-left: 1.1rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.sol-bullets li + li {
	margin-top: 0.35rem;
}

.sol-bullets li::marker {
	color: var(--wp--preset--color--bronze);
}

/* ==========================================================================
   4. Buttons
   ========================================================================== */
.wp-block-button__link {
	white-space: nowrap;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: var(--wp--preset--shadow--soft);
}

.wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--bronze);
	outline-offset: 3px;
}

.sol-btn-whatsapp .wp-block-button__link::before {
	content: "";
	display: inline-block;
	width: 0.5rem;
	height: 0.5rem;
	margin-right: 0.6rem;
	border-radius: 50%;
	background: #7FCB95;
	vertical-align: 0.08em;
}

.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1px solid var(--wp--preset--color--cocoa);
	background-color: transparent;
	color: var(--wp--preset--color--cocoa);
	padding: 0.95rem 1.9rem;
}

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

.wp-block-button.sol-btn-outline-light > .wp-block-button__link {
	border-color: rgba(244, 239, 232, 0.5);
	color: var(--wp--preset--color--base);
}

.wp-block-button.sol-btn-outline-light > .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--cocoa);
}

/* ==========================================================================
   5. Header
   ========================================================================== */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 100;
}

.admin-bar .wp-site-blocks > header.wp-block-template-part {
	top: 32px;
}

.sol-header {
	padding-top: 1rem;
	padding-bottom: 1rem;
	background-color: rgba(244, 239, 232, 0.9);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid rgba(217, 203, 185, 0.7);
	color: var(--wp--preset--color--ink);
}

.sol-header__inner {
	gap: 2rem;
}

.sol-logo {
	margin: 0;
	line-height: 1;
	white-space: nowrap;
}

.sol-logo a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.sol-nav {
	flex: 1;
	min-width: 0;
	gap: 2rem;
}

.sol-nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--cocoa);
	text-decoration: none;
	transition: color 0.2s ease;
}

.sol-nav .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--bronze);
}

.sol-header__cta {
	margin: 0;
	flex-shrink: 0;
}

.sol-header__cta .wp-block-button__link {
	padding: 0.7rem 1.4rem;
}

/* ==========================================================================
   6. Hero
   ========================================================================== */
.sol-hero {
	background: linear-gradient(180deg, var(--wp--preset--color--cream) 0%, var(--wp--preset--color--base) 100%);
	padding-top: var(--wp--preset--spacing--60);
}

.wp-block-columns.sol-hero__grid {
	gap: clamp(2.5rem, 6vw, 6rem);
}

.sol-hero__content > * + * {
	margin-top: 1.5rem;
}

.sol-hero__title {
	margin-top: 1.25rem;
	line-height: 1.02;
}

.sol-hero__content .sol-lead {
	max-width: 34rem;
}

.sol-hero__actions {
	gap: 0.75rem;
	margin-top: 2.25rem;
}

.sol-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	list-style: none;
	margin-top: 2.5rem;
	padding: 1.5rem 0 0;
	border-top: 1px solid var(--wp--preset--color--sand);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.sol-hero__visual {
	position: relative;
}

.sol-hero__media {
	margin: 0;
}

.sol-hero__media img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 999px 999px 28px 28px;
	box-shadow: var(--wp--preset--shadow--lifted);
}

.sol-hero__badge {
	position: absolute;
	left: -2rem;
	bottom: 3rem;
	padding: 1.25rem 1.6rem;
	border-radius: 20px;
	background: var(--wp--preset--color--white);
	box-shadow: var(--wp--preset--shadow--soft);
}

.sol-hero__badge > * {
	margin: 0;
}

.sol-hero__badge-text {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.22em;
	line-height: 2;
	text-transform: uppercase;
	color: var(--wp--preset--color--cocoa);
}

/* ==========================================================================
   7. Values
   ========================================================================== */
.wp-block-columns.sol-values__grid {
	gap: clamp(2.5rem, 6vw, 6rem);
}

.sol-values__intro {
	flex-basis: 38% !important;
	flex-grow: 0 !important;
}

.sol-values__intro > * + * {
	margin-top: 1.25rem;
}

.wp-block-group.sol-values__list {
	gap: 2.5rem 2rem;
}

.sol-value {
	padding-top: 1.25rem;
	border-top: 1px solid var(--wp--preset--color--sand);
}

.sol-value > * {
	margin: 0;
}

.sol-value > * + * {
	margin-top: 0.6rem;
}

.sol-value__num {
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic;
	font-size: 1.15rem;
	color: var(--wp--preset--color--bronze);
}

.sol-value__title {
	font-size: 1.45rem;
}

.sol-value p:not([class]) {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

/* ==========================================================================
   8. Services
   ========================================================================== */
.wp-block-group.sol-services__grid {
	gap: 1.25rem;
}

.sol-service {
	padding: 2rem;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 22px;
	background: var(--wp--preset--color--base);
	transition: border-color 0.3s ease, background-color 0.3s ease, transform 0.3s ease;
}

.sol-service:hover {
	border-color: var(--wp--preset--color--bronze);
	background: var(--wp--preset--color--white);
	transform: translateY(-3px);
}

.sol-service > * {
	margin: 0;
}

.sol-service > * + * {
	margin-top: 0.75rem;
}

.sol-service__num {
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic;
	font-size: 1.15rem;
	color: var(--wp--preset--color--bronze);
}

.sol-service {
	position: relative;
}

.sol-service > .sol-service__new {
	position: absolute;
	top: 2rem;
	right: 2rem;
	margin: 0;
	padding: 0.2rem 0.7rem;
	border-radius: 999px;
	background: var(--wp--preset--color--cocoa);
	color: var(--wp--preset--color--base);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.sol-service p:not([class]) {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.sol-services__cta {
	gap: 1.5rem;
	margin-top: var(--wp--preset--spacing--50);
	padding-top: 2rem;
	border-top: 1px solid var(--wp--preset--color--sand);
}

.sol-services__note {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.25;
	color: var(--wp--preset--color--ink);
}

/* ==========================================================================
   8b. Results — before & after gallery (core Gallery block, CSS scroll-snap)
   ========================================================================== */
.sol-results__head {
	gap: 1.5rem 3rem;
	margin-bottom: var(--wp--preset--spacing--50);
}

.sol-results__intro {
	max-width: 640px;
}

.sol-results__intro > * {
	margin-top: 0;
	margin-bottom: 0;
}

.sol-results__intro > * + * {
	margin-top: 1rem;
}

.sol-results__actions {
	gap: 0.75rem;
}

.wp-block-gallery.has-nested-images.sol-results__gallery {
	display: flex;
	flex-wrap: nowrap;
	gap: 1.5rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-left: 0;
	padding-bottom: 1.25rem;
	scrollbar-width: thin;
	scrollbar-color: var(--wp--preset--color--taupe) var(--wp--preset--color--sand-light);
	-webkit-overflow-scrolling: touch;
}

.sol-results__gallery::-webkit-scrollbar {
	height: 4px;
}

.sol-results__gallery::-webkit-scrollbar-track {
	border-radius: 999px;
	background: var(--wp--preset--color--sand-light);
}

.sol-results__gallery::-webkit-scrollbar-thumb {
	border-radius: 999px;
	background: var(--wp--preset--color--taupe);
}

.wp-block-gallery.has-nested-images.sol-results__gallery figure.wp-block-image:not(#individual-image) {
	flex: 0 0 min(44%, 600px);
	width: auto;
	margin: 0;
	display: block;
	scroll-snap-align: start;
}

.wp-block-gallery.has-nested-images.sol-results__gallery figure.wp-block-image::before {
	display: none;
}

.wp-block-gallery.has-nested-images.sol-results__gallery figure.wp-block-image img {
	width: 100%;
	height: auto;
	aspect-ratio: 6 / 5;
	object-fit: contain;
	border-radius: 22px;
	background: #F2EEE8;
	box-shadow: var(--wp--preset--shadow--soft);
}

.wp-block-gallery.has-nested-images.sol-results__gallery figure.wp-block-image figcaption {
	position: static;
	max-height: none;
	margin: 1rem 0 0;
	padding: 0;
	overflow: visible;
	background: none;
	text-align: left;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.2;
	color: var(--wp--preset--color--ink);
	text-shadow: none;
}

.sol-results__foot {
	gap: 0.5rem 2rem;
	margin-top: 1rem;
}

.sol-results__foot > * {
	margin: 0;
}

.sol-results__hint {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--bronze);
}

.sol-results__note {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

@media (max-width: 781px) {
	.wp-block-gallery.has-nested-images.sol-results__gallery figure.wp-block-image:not(#individual-image) {
		flex-basis: 85%;
	}
}

/* ==========================================================================
   8c. Reviews (Google)
   ========================================================================== */
.sol-section.sol-reviews {
	background: var(--wp--preset--color--cream);
}

.sol-reviews__head {
	gap: 1.5rem 3rem;
	margin-bottom: var(--wp--preset--spacing--50);
}

.sol-reviews__intro > * {
	margin-top: 0;
	margin-bottom: 0;
}

.sol-reviews__intro > * + * {
	margin-top: 1rem;
}

.sol-reviews__rating {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.4rem 0.75rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.sol-reviews__score {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1;
	color: var(--wp--preset--color--ink);
}

.sol-reviews__actions {
	gap: 0.75rem;
}

.wp-block-group.sol-reviews__grid {
	gap: 1.5rem;
	align-items: stretch;
}

.sol-review {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	height: 100%;
	box-sizing: border-box;
	padding: 2rem 2rem 1.75rem;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 22px;
	background: var(--wp--preset--color--base);
}

.sol-review > * {
	margin: 0;
}

.sol-review__stars {
	letter-spacing: 0.18em;
	font-size: 0.85rem;
	line-height: 1;
	color: var(--wp--preset--color--bronze);
}

.sol-review__text {
	flex: 1;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.7;
	color: var(--wp--preset--color--cocoa);
	text-wrap: pretty;
}

.sol-review__author {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding-top: 1.1rem;
	border-top: 1px solid var(--wp--preset--color--sand);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.2rem;
	line-height: 1.2;
	color: var(--wp--preset--color--ink);
}

.sol-review__author span {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--bronze);
}

/* ==========================================================================
   9. Experience
   ========================================================================== */
.wp-block-columns.sol-experience__grid {
	gap: clamp(2.5rem, 7vw, 7rem);
}

.sol-experience__media {
	margin: 0;
}

.sol-experience__media img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 65%;
	border-radius: 28px 28px 999px 999px;
	box-shadow: var(--wp--preset--shadow--soft);
}

.sol-experience__content > * + * {
	margin-top: 1.25rem;
}

.sol-experience__content .sol-checklist {
	margin-top: 2rem;
}

/* ==========================================================================
   10. Founder
   ========================================================================== */
.wp-block-columns.sol-founder__grid {
	gap: clamp(2.5rem, 7vw, 7rem);
}

.sol-founder__media {
	margin: 0;
}

.sol-founder__media img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 20%;
	border-radius: 28px;
	box-shadow: var(--wp--preset--shadow--soft);
}

.sol-founder__content > * + * {
	margin-top: 1.25rem;
}

.sol-founder__content p:not([class]) {
	color: var(--wp--preset--color--muted);
}

.sol-signature {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--wp--preset--color--sand);
}

.sol-signature > * {
	margin: 0;
}

.sol-signature__quote {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-style: italic;
	line-height: 1.25;
	color: var(--wp--preset--color--ink);
}

.sol-signature__name {
	margin-top: 0.75rem;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--bronze);
}

.sol-founder__content .wp-block-buttons {
	gap: 0.75rem;
	margin-top: 2rem;
}

/* ==========================================================================
   11. Client
   ========================================================================== */
.sol-section.sol-client {
	color: var(--wp--preset--color--base);
}

.sol-client .sol-eyebrow {
	color: var(--wp--preset--color--sand);
}

.sol-client h2 {
	color: var(--wp--preset--color--base);
}

.wp-block-group.sol-client__grid {
	gap: 0 2rem;
}

.sol-trait {
	padding: 1.5rem 0;
	border-top: 1px solid rgba(244, 239, 232, 0.2);
}

.sol-trait__text {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.25;
	color: var(--wp--preset--color--base);
}

/* ==========================================================================
   12. Process
   ========================================================================== */
.wp-block-group.sol-steps {
	gap: 2rem;
}

.sol-step {
	padding-top: 1.75rem;
	border-top: 1px solid var(--wp--preset--color--bronze);
}

.sol-step > * {
	margin: 0;
}

.sol-step > * + * {
	margin-top: 0.75rem;
}

.sol-step__num {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 3rem;
	font-weight: 400;
	line-height: 1;
	color: var(--wp--preset--color--bronze);
}

.sol-step p:not([class]) {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

/* ==========================================================================
   13. Philosophy
   ========================================================================== */
.sol-section.sol-philosophy {
	text-align: center;
	background: var(--wp--preset--color--sand-light);
}

.wp-block-quote.sol-quote {
	max-width: 900px;
	margin: 1.5rem auto 0;
	padding: 0;
	border: 0;
}

.wp-block-quote.sol-quote p {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--xx-large);
	font-style: italic;
	font-weight: 400;
	line-height: 1.05;
	color: var(--wp--preset--color--ink);
}

.wp-block-quote.sol-quote cite {
	display: block;
	margin-top: 1.75rem;
	font-size: var(--wp--preset--font-size--x-small);
	font-style: normal;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--bronze);
}

.wp-block-group.sol-pillars {
	gap: 0.75rem;
	margin-top: 2.5rem;
}

.sol-pillar {
	margin: 0;
	padding: 0.55rem 1.25rem;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--cocoa);
}

/* ==========================================================================
   14. Vision
   ========================================================================== */
.wp-block-group.sol-vision__grid {
	gap: 1.5rem;
}

.sol-phase {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 24px;
	background: var(--wp--preset--color--base);
}

.sol-phase > * {
	margin: 0;
}

.sol-phase__media {
	margin: 0;
}

.sol-phase__media img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.sol-phase__body {
	flex: 1;
	padding: 1.75rem;
}

.sol-phase__body > * {
	margin-top: 0;
	margin-bottom: 0;
}

.sol-phase__body > * + * {
	margin-top: 0.85rem;
}

.sol-phase__label {
	white-space: nowrap;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--bronze);
}

.sol-phase--current {
	border-color: var(--wp--preset--color--bronze);
	box-shadow: var(--wp--preset--shadow--soft);
}

.sol-phase--current .sol-phase__label::after {
	content: "Current";
	display: inline-block;
	margin-left: 0.6rem;
	padding: 0.15rem 0.6rem;
	border-radius: 999px;
	background: var(--wp--preset--color--cocoa);
	color: var(--wp--preset--color--base);
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
}

.sol-phase--bigger {
	background: var(--wp--preset--color--cocoa);
	border-color: var(--wp--preset--color--cocoa);
}

.sol-phase--bigger h3,
.sol-phase--bigger p:not([class]) {
	color: var(--wp--preset--color--base);
}

.sol-phase--bigger .sol-phase__label {
	color: var(--wp--preset--color--sand);
}

.sol-phase--bigger p:not([class]) {
	font-size: var(--wp--preset--font-size--small);
}

/* ==========================================================================
   15. FAQ
   ========================================================================== */
.wp-block-columns.sol-faq__grid {
	gap: clamp(2.5rem, 6vw, 6rem);
}

.sol-faq__intro > * + * {
	margin-top: 1.25rem;
}

.sol-faq__intro p:not([class]) {
	color: var(--wp--preset--color--muted);
}

.sol-faq__intro .wp-block-buttons {
	margin-top: 2rem;
}

.sol-faq__list > * + * {
	margin-top: 0;
}

.sol-faq__item {
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--wp--preset--color--sand);
}

.sol-faq__item:first-child {
	border-top: 1px solid var(--wp--preset--color--sand);
}

.sol-faq__item summary {
	position: relative;
	padding-right: 2.5rem;
	list-style: none;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--wp--preset--color--ink);
	transition: color 0.2s ease;
}

.sol-faq__item summary::-webkit-details-marker {
	display: none;
}

.sol-faq__item summary:hover {
	color: var(--wp--preset--color--bronze);
}

.sol-faq__item summary::after {
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	display: grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 50%;
	font-family: var(--wp--preset--font-family--body);
	font-size: 1.1rem;
	font-weight: 300;
	line-height: 1;
	color: var(--wp--preset--color--cocoa);
	transform: translateY(-50%);
	transition: transform 0.3s ease, background-color 0.3s ease;
}

.sol-faq__item[open] summary::after {
	transform: translateY(-50%) rotate(45deg);
	background: var(--wp--preset--color--cream);
}

.sol-faq__item > p {
	margin-top: 0.85rem;
	max-width: 40rem;
	color: var(--wp--preset--color--muted);
}

/* ==========================================================================
   16. Booking CTA & contact
   ========================================================================== */
.sol-section.sol-booking {
	padding-top: 0;
}

.sol-cta {
	padding: clamp(2.5rem, 7vw, 6rem) clamp(1.5rem, 6vw, 5.5rem);
	border-radius: 36px;
	text-align: center;
	color: var(--wp--preset--color--base);
}

.sol-cta > * {
	margin-left: auto;
	margin-right: auto;
}

.sol-cta .sol-eyebrow {
	color: var(--wp--preset--color--sand);
}

.sol-cta h2 {
	color: var(--wp--preset--color--base);
}

.sol-cta .sol-lead {
	max-width: 34rem;
	color: rgba(244, 239, 232, 0.85);
}

.sol-cta__actions {
	justify-content: center;
	gap: 0.75rem;
	margin-top: 2.25rem;
}

.sol-cta .sol-btn-whatsapp .wp-block-button__link {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--cocoa);
}

.sol-cta .sol-btn-whatsapp .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--white);
}

.wp-block-group.sol-contact {
	gap: 0;
	max-width: none;
	margin-top: clamp(3rem, 6vw, 4.5rem);
	border-top: 1px solid rgba(244, 239, 232, 0.18);
	text-align: left;
}

.sol-contact__item {
	padding: 1.75rem 1.5rem 0 0;
}

.sol-contact__item > * {
	margin: 0;
}

.sol-contact__label {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--sand);
}

.sol-contact__value {
	margin-top: 0.5rem;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
	color: var(--wp--preset--color--base);
	overflow-wrap: anywhere;
}

.sol-contact__value a {
	color: var(--wp--preset--color--base);
	text-decoration-color: rgba(244, 239, 232, 0.35);
	text-underline-offset: 0.25em;
}

.sol-contact__value a:hover {
	color: var(--wp--preset--color--sand);
}

/* ==========================================================================
   17. Footer
   ========================================================================== */
.sol-footer {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: 2rem;
	border-top: 1px solid var(--wp--preset--color--sand);
	background: var(--wp--preset--color--cream);
	color: var(--wp--preset--color--ink);
}

.sol-footer__top {
	align-items: flex-start;
	gap: 2rem;
}

.sol-footer__brand {
	max-width: 26rem;
}

.sol-footer__brand > * + * {
	margin-top: 0.75rem;
}

.sol-footer__logo {
	margin: 0 0 1.25rem;
}

.sol-footer__logo img {
	width: 132px;
	height: 132px;
	border-radius: 50%;
	object-fit: cover;
	box-shadow: var(--wp--preset--shadow--soft);
	transition: transform 0.3s ease;
}

.sol-footer__logo a:hover img {
	transform: rotate(-4deg);
}

.sol-footer__founded {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--bronze);
}

.sol-footer__text {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

/* Social icons: original brand logos, monochrome in the site palette */
.sol-social.wp-block-social-links {
	gap: 0.75rem;
}

.wp-block-social-links.sol-social .wp-social-link {
	background: none;
	color: var(--wp--preset--color--cocoa);
}

.wp-block-social-links.sol-social .wp-social-link a {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	padding: 0;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 50%;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--cocoa);
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.wp-block-social-links.sol-social .wp-social-link a:hover {
	border-color: var(--wp--preset--color--cocoa);
	background: var(--wp--preset--color--cocoa);
	color: var(--wp--preset--color--base);
	transform: translateY(-2px);
}

.wp-block-social-links.sol-social .wp-social-link svg {
	width: 1.25rem;
	height: 1.25rem;
	fill: currentColor;
}

.sol-footer__bottom {
	gap: 0.5rem 2rem;
	margin-top: var(--wp--preset--spacing--50);
	padding-top: 1.5rem;
	border-top: 1px solid var(--wp--preset--color--sand);
}

.sol-footer__legal {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

/* ==========================================================================
   18. Generic pages
   ========================================================================== */
.sol-page {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
}

/* ==========================================================================
   19. Responsive
   ========================================================================== */
@media (max-width: 1100px) {
	.sol-nav {
		gap: 1.25rem;
	}

	.sol-header__cta {
		display: none;
	}
}

@media (max-width: 960px) {
	.sol-hero__badge {
		left: 1rem;
		bottom: 1rem;
	}
}

@media (max-width: 781px) {
	.admin-bar .wp-site-blocks > header.wp-block-template-part {
		top: 46px;
	}

	.sol-hero__visual,
	.sol-founder__visual {
		order: -1;
	}

	.sol-hero__media img,
	.sol-experience__media img,
	.sol-founder__media img {
		max-height: 70vh;
	}

	.sol-values__intro {
		flex-basis: 100% !important;
	}

	.sol-checklist--2col {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 600px) {
	.admin-bar .wp-site-blocks > header.wp-block-template-part {
		top: 0;
	}

	.sol-header__cta {
		display: none;
	}

	.sol-service,
	.sol-phase__body {
		padding: 1.5rem;
	}

	.sol-cta {
		border-radius: 24px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.wp-block-button__link,
	.sol-service,
	.sol-faq__item summary::after {
		transition: none;
	}
}


/* Hero — translucent Book now button over image */
.sol-hero__book {
	position: absolute;
	left: 50%;
	bottom: 22%;
	transform: translateX(-50%);
	margin: 0;
	z-index: 2;
}

.sol-hero__book .wp-block-button__link,
.sol-hero__book .wp-block-button__link:hover {
	background: rgba(244, 239, 232, 0.28);
	color: #FFFFFF;
	border: 1px solid rgba(255, 255, 255, 0.55);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	backdrop-filter: blur(14px) saturate(140%);
	padding: 1rem 2.4rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 0.8125rem;
	box-shadow: 0 10px 30px -12px rgba(35, 27, 22, 0.45);
	transition: background 0.25s ease;
}

.sol-hero__book .wp-block-button__link:hover {
	background: rgba(244, 239, 232, 0.42);
}

@media (max-width: 781px) {
	.sol-hero__book { bottom: 18%; }
}


/* Services — categories */
.sol-services__cats {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--50);
}

.sol-cat {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2.6fr);
	gap: 2rem;
	padding-top: 2rem;
	border-top: 1px solid var(--wp--preset--color--sand);
}

.sol-cat > * { margin: 0; }

.sol-cat__head { margin: 0; }
.sol-cat__head > * { margin: 0; }
.sol-cat__head > * + * { margin-top: 0.5rem; }

.sol-cat__num {
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic;
	color: var(--wp--preset--color--bronze);
}

.sol-cat__title {
	font-size: var(--wp--preset--font-size--large);
}

.sol-cat__count {
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.wp-block-group.sol-cat__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
	gap: 1.25rem;
	margin: 0;
}

@media (max-width: 781px) {
	.sol-cat { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
}

.sol-service > .sol-service__new + * { margin-top: 0; padding-right: 4.5rem; }

/* Services — read more */
.sol-service > p.sol-clamp {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.sol-readmore {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--bronze);
	border-bottom: 1px solid currentColor;
	line-height: 1.6;
}

.sol-readmore:hover { color: var(--wp--preset--color--ink); }

.sol-cta .sol-btn-book .wp-block-button__link { background-color: var(--wp--preset--color--base); color: var(--wp--preset--color--cocoa); }
.sol-cta .sol-btn-book .wp-block-button__link:hover { background-color: var(--wp--preset--color--white); }


/* Visit / contact + map */
.sol-section.sol-visit {
	background-color: var(--wp--preset--color--cocoa);
	color: var(--wp--preset--color--base);
}
.sol-visit .sol-eyebrow { color: var(--wp--preset--color--sand); }
.sol-visit h2 { color: var(--wp--preset--color--base); }
.wp-block-columns.sol-visit__grid { gap: clamp(2.5rem, 6vw, 6rem); }
.sol-visit__info > * + * { margin-top: 1.25rem; }
.sol-visit__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 2rem;
	margin-top: 2rem !important;
}
.sol-visit__item {
	padding: 1.25rem 0;
	border-top: 1px solid rgba(244, 239, 232, 0.2);
}
.sol-visit__item > * { margin: 0; }
.sol-visit__label {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--sand);
}
.sol-visit__value {
	margin-top: 0.4rem !important;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
	color: var(--wp--preset--color--base);
	overflow-wrap: anywhere;
}
.sol-visit__value a {
	color: var(--wp--preset--color--base);
	text-decoration-color: rgba(244, 239, 232, 0.4);
	text-underline-offset: 0.25em;
}
.sol-visit__value a:hover { color: var(--wp--preset--color--sand); }
.sol-visit__actions { gap: 0.75rem; margin-top: 2rem !important; }
.sol-btn-light .wp-block-button__link {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--cocoa);
}
.sol-btn-light .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
}
.sol-map {
	overflow: hidden;
	border-radius: 28px;
	aspect-ratio: 4 / 3.4;
	background: var(--wp--preset--color--ink);
	box-shadow: 0 30px 70px -30px rgba(0, 0, 0, 0.5);
}
.sol-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	filter: grayscale(0.35) sepia(0.2) contrast(0.95);
}
@media (max-width: 600px) {
	.sol-visit__list { grid-template-columns: minmax(0, 1fr); }
	.sol-map { aspect-ratio: 1 / 1; border-radius: 22px; }
}

.sol-ig { display: inline-flex; align-items: center; gap: 0.55rem; }
.sol-ig .sol-ig-icon { flex-shrink: 0; }

.sol-faq-page .sol-faq { padding-top: var(--wp--preset--spacing--60); }

.sol-subpage .sol-reviews { padding-top: var(--wp--preset--spacing--60); }

/* Our philosophy page */
.sol-subpage .sol-experience { padding-top: var(--wp--preset--spacing--60); }
.wp-block-group.sol-values__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.sol-philo__quote {
	margin-top: 2rem !important;
	padding-top: 1.5rem;
	border-top: 1px solid var(--wp--preset--color--sand);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-style: italic;
	line-height: 1.25;
	color: var(--wp--preset--color--ink);
}
.sol-philo__by {
	margin-top: 0.75rem !important;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--bronze);
}

/* Hero — Book now centered on image */
.sol-hero__book { top: 50%; bottom: auto; transform: translate(-50%, -50%); }
@media (max-width: 781px) { .sol-hero__book { top: 50%; bottom: auto; } }

/* Hero — Book now: fully translucent, smaller */
.sol-hero__book .wp-block-button__link,
.sol-hero__book .wp-block-button__link:hover {
	background: transparent;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	box-shadow: none;
	border: 1px solid rgba(255, 255, 255, 0.85);
	padding: 0.6rem 1.5rem;
	font-size: 0.6875rem;
	letter-spacing: 0.18em;
	text-shadow: 0 1px 8px rgba(35, 27, 22, 0.35);
}
.sol-hero__book .wp-block-button__link:hover { background: rgba(255, 255, 255, 0.12); transform: none; }

/* Hero — Book now: soft frosted glass */
.sol-hero__book .wp-block-button__link,
.sol-hero__book .wp-block-button__link:hover {
	background: rgba(244, 239, 232, 0.22);
	-webkit-backdrop-filter: blur(10px) saturate(140%);
	backdrop-filter: blur(10px) saturate(140%);
	border: 1px solid rgba(255, 255, 255, 0.6);
	box-shadow: 0 8px 24px -12px rgba(35, 27, 22, 0.4);
}
.sol-hero__book .wp-block-button__link:hover { background: rgba(244, 239, 232, 0.34); }

/* Treatment categories — accordion */
.sol-services__cats { gap: 0; border-bottom: 1px solid var(--wp--preset--color--sand); }
.sol-cat { display: block; padding-top: 0; }
.sol-cat__head {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 1.25rem;
	padding: 1.75rem 0;
	cursor: pointer;
	user-select: none;
}
.sol-cat__head > * + * { margin-top: 0 !important; }
.sol-cat__head:focus-visible { outline: 2px solid var(--wp--preset--color--bronze); outline-offset: 4px; border-radius: 6px; }
.sol-cat__head:hover .sol-cat__title { color: var(--wp--preset--color--bronze); }
.sol-cat__title { transition: color 0.2s ease; }
.sol-cat__meta { display: flex; align-items: center; gap: 1.25rem; }
.sol-cat__chev {
	position: relative;
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 50%;
	transition: background-color 0.3s ease, border-color 0.3s ease;
}
.sol-cat__chev::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	border-right: 1.5px solid var(--wp--preset--color--cocoa);
	border-bottom: 1.5px solid var(--wp--preset--color--cocoa);
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.3s ease;
}
.sol-cat.is-open .sol-cat__chev { background: var(--wp--preset--color--white); border-color: var(--wp--preset--color--bronze); }
.sol-cat.is-open .sol-cat__chev::before { transform: translateY(2px) rotate(-135deg); }
.wp-block-group.sol-cat__grid { display: none; padding-bottom: 2rem; }
.sol-cat.is-open .wp-block-group.sol-cat__grid { display: grid; }
@media (max-width: 600px) {
	.sol-cat__head { gap: 0.9rem; padding: 1.4rem 0; }
	.sol-cat__count { display: none; }
}

/* Footer — compact single row */
.sol-footer { padding-top: 1.75rem; padding-bottom: 1.75rem; }
.sol-footer__bottom { margin-top: 0 !important; padding-top: 0; border-top: 0; align-items: center; }
.sol-footer__info > * { margin: 0; }
.sol-footer__info > * + * { margin-top: 0.25rem; }

.sol-subpage .sol-founder { padding-top: var(--wp--preset--spacing--60); }
.sol-founder__visual { align-self: flex-start !important; position: sticky; top: 110px; }
@media (max-width: 781px) { .sol-founder__visual { position: static; } }

/* Mobile menu overlay — full screen, large items */
.sol-nav .wp-block-navigation__responsive-container.is-menu-open {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	flex-direction: column;
	padding: 1.5rem var(--wp--preset--spacing--40) 2.5rem;
	background-color: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--ink) !important;
	overflow-y: auto;
}
.admin-bar .sol-nav .wp-block-navigation__responsive-container.is-menu-open { top: 46px; }
.sol-nav .is-menu-open .wp-block-navigation__responsive-close,
.sol-nav .is-menu-open .wp-block-navigation__responsive-dialog,
.sol-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	width: 100%;
	max-width: none;
	height: 100%;
}
.sol-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: stretch !important;
	padding-top: 3rem !important;
}
.sol-nav .is-menu-open .wp-block-navigation__container {
	display: flex;
	flex-direction: column;
	align-items: stretch !important;
	gap: 0 !important;
	width: 100%;
	border-top: 1px solid var(--wp--preset--color--sand);
}
.sol-nav .is-menu-open .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid var(--wp--preset--color--sand);
}
.sol-nav .is-menu-open .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding: 1.1rem 0 !important;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.75rem, 7vw, 2.25rem) !important;
	font-weight: 500;
	line-height: 1.15;
	color: var(--wp--preset--color--ink) !important;
}
.sol-nav .is-menu-open .wp-block-navigation-item__content:active,
.sol-nav .is-menu-open .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--bronze) !important; }
.sol-nav .wp-block-navigation__responsive-container-close {
	top: 1.25rem !important;
	right: var(--wp--preset--spacing--40) !important;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 50%;
	color: var(--wp--preset--color--ink);
}
.sol-nav .wp-block-navigation__responsive-container-close svg { width: 22px; height: 22px; }
.sol-nav .wp-block-navigation__responsive-container-open {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	color: var(--wp--preset--color--ink);
}
.sol-nav .wp-block-navigation__responsive-container-open svg { width: 28px; height: 28px; }

/* Mobile menu — custom overlay */
.sol-menu-toggle { display: none; }
.sol-mobile-menu { display: none; }
@media (max-width: 781px) {
	.sol-header .sol-nav { display: none !important; }
	.sol-menu-toggle {
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		margin-left: auto;
		margin-right: -10px;
		padding: 0;
		border: 0;
		background: none;
		cursor: pointer;
	}
	.sol-menu-toggle span,
	.sol-menu-toggle span::before,
	.sol-menu-toggle span::after {
		display: block;
		width: 24px;
		height: 1.5px;
		background: var(--wp--preset--color--ink);
	}
	.sol-menu-toggle span { position: relative; }
	.sol-menu-toggle span::before,
	.sol-menu-toggle span::after { content: ""; position: absolute; left: 0; }
	.sol-menu-toggle span::before { top: -7px; }
	.sol-menu-toggle span::after { top: 7px; }
	.sol-mobile-menu {
		position: fixed;
		inset: 0;
		z-index: 100000;
		flex-direction: column;
		justify-content: center;
		padding: 5rem var(--wp--preset--spacing--40) 2.5rem;
		background: var(--wp--preset--color--base);
		overflow-y: auto;
	}
	.sol-mobile-menu.is-open { display: flex; }
	.sol-mobile-menu ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--wp--preset--color--sand); }
	.sol-mobile-menu li { border-bottom: 1px solid var(--wp--preset--color--sand); }
	.sol-mobile-menu a {
		display: block;
		padding: 1.1rem 0;
		font-family: var(--wp--preset--font-family--heading);
		font-size: clamp(1.75rem, 7vw, 2.25rem);
		font-weight: 500;
		line-height: 1.15;
		color: var(--wp--preset--color--ink);
		text-decoration: none;
	}
	.sol-mobile-menu a:active, .sol-mobile-menu a:hover { color: var(--wp--preset--color--bronze); }
	.sol-mobile-menu__close {
		position: absolute;
		top: 1.25rem;
		right: var(--wp--preset--spacing--40);
		width: 44px;
		height: 44px;
		border: 1px solid var(--wp--preset--color--sand);
		border-radius: 50%;
		background: none;
		font-size: 1.6rem;
		line-height: 1;
		color: var(--wp--preset--color--ink);
		cursor: pointer;
	}
	.admin-bar .sol-mobile-menu { top: 46px; }
	html.sol-menu-lock, html.sol-menu-lock body { overflow: hidden; }
}

/* Tighten empty space after hero (title-only hero) */
.sol-section.sol-hero { padding-bottom: var(--wp--preset--spacing--50); }
.sol-hero + .sol-services, .sol-hero + * { padding-top: var(--wp--preset--spacing--50); }
.sol-hero__content > *:last-child { margin-bottom: 0; }
@media (max-width: 781px) {
	.sol-section.sol-hero { padding-top: 1.5rem; padding-bottom: 1.5rem; }
	.wp-block-columns.sol-hero__grid { gap: 1.5rem; }
	.sol-hero__title { margin-top: 0; }
	.sol-hero + .sol-services, .sol-hero + * { padding-top: var(--wp--preset--spacing--40); }
}

.sol-logo { font-family: var(--wp--preset--font-family--heading); font-size: 1.6rem; font-weight: 500; letter-spacing: 0.01em; }
@media (max-width: 781px) { .sol-logo { font-size: 1.3rem; } }
@media (max-width: 380px) { .sol-logo { font-size: 1.15rem; } }
