/*
Theme Name: Sanori
Theme URI: https://sanori.ch
Description: Custom child theme for Sanori Physiotherapie Appenzell.
Author: Peter Hadorn / WebEvolve
Author URI: https://webevolve.ch
Template: twentytwentyfive
Version: 1.18.1
License: GNU General Public License v2 or later
Text Domain: sanori
*/

:root {
	--sanori-shadow-soft: 0 24px 48px rgba(22, 58, 84, 0.08);
	--sanori-shadow-strong: 0 40px 80px rgba(22, 58, 84, 0.14);
	--sanori-radius-card: 1rem;
	--sanori-radius-panel: 1.25rem;
	--sanori-gradient-soft: radial-gradient(circle at top left, rgba(90, 138, 114, 0.16), transparent 42%), linear-gradient(135deg, #fffdf9 0%, #f5f0e8 100%);
	--sanori-border: rgba(22, 58, 84, 0.08);
	--sanori-border-mid: rgba(22, 58, 84, 0.12);
	--sanori-border-strong: rgba(22, 58, 84, 0.14);
	--sanori-border-hover: rgba(22, 58, 84, 0.24);
	--sanori-text-muted: rgba(22, 58, 84, 0.86);
	--sanori-text-soft: rgba(22, 58, 84, 0.88);
	--sanori-bg-white: #ffffff;
	--sanori-bg-overlay: rgba(255, 255, 255, 0.88);
	--sanori-error: #8b2e2e;
	--sanori-gold: #FBBE5E;
	--sanori-gold-text: #B8860B;
	--sanori-gold-soft: rgba(251, 190, 94, 0.15);
	--sanori-gold-border: rgba(251, 190, 94, 0.35);
	--sanori-navy-deep: #002A3E;
	--sanori-teal-dark: var(--sanori-teal-dark);
}

.sanori-homepage,
.sanori-homepage *,
.sanori-page-shell,
.sanori-page-shell * {
	box-sizing: border-box;
}

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

body {
	text-wrap: pretty;
}

.wp-site-blocks {
	min-height: auto;
}

/* ── Buttons — hover & focus states ── */

.wp-element-button {
	transition: background-color 200ms ease, transform 200ms ease, box-shadow 200ms ease, color 200ms ease;
}

/* Darken teal buttons for WCAG AA contrast with white text (5.1:1) */
.wp-element-button.has-accent-1-background-color {
	background-color: var(--sanori-teal-dark) !important;
}

.wp-element-button:hover {
	background-color: var(--sanori-gold);
	color: var(--wp--preset--color--contrast) !important;
	text-decoration: none !important;
	transform: translateY(-3px);
	box-shadow: 0 6px 24px rgba(251, 190, 94, 0.4), 0 0 40px rgba(251, 190, 94, 0.15);
}

.wp-element-button:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-1);
	outline-offset: 2px;
}

.wp-element-button:active {
	transform: translateY(1px);
	box-shadow: 0 2px 6px rgba(0, 60, 88, 0.12);
}

/* Outline buttons — fill on hover */
.is-style-outline .wp-element-button {
	transition: background-color 200ms ease, color 200ms ease, transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}

.is-style-outline .wp-element-button:hover {
	background-color: var(--sanori-gold) !important;
	color: var(--wp--preset--color--contrast) !important;
	border-color: var(--sanori-gold) !important;
	transform: translateY(-3px);
	box-shadow: 0 6px 24px rgba(251, 190, 94, 0.4), 0 0 40px rgba(251, 190, 94, 0.15);
}

.is-style-outline .wp-element-button:active {
	transform: translateY(1px);
	box-shadow: 0 2px 6px rgba(58, 150, 162, 0.1);
}

/* ── Global element resets ── */

.wp-block-site-title a,
.wp-block-button__link {
	text-decoration: none;
}

/* ── Logo ── */

.sanori-logo-link {
	display: block;
	flex-shrink: 0;
	text-decoration: none;
}

.sanori-logo {
	display: block;
	width: auto;
	height: 4.5rem;
}

.sanori-logo--footer {
	height: 4rem;
	filter: brightness(0) invert(1);
	transition: transform 0.3s ease-out;
}

/* ── Header ── */

.sanori-site-header {
	position: sticky;
	top: 0;
	z-index: 20;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	background: rgba(253, 249, 244, 0.92);
	backdrop-filter: blur(14px);
	box-shadow: 0 10px 30px var(--sanori-border);
}

.sanori-site-header .wp-block-site-title {
	letter-spacing: 0.01em;
}

.sanori-site-header .wp-block-buttons {
	gap: 0.75rem;
}

/* ── Navigation ── */

.sanori-nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	gap: 0.25rem 1rem;
	margin: 0;
}

.sanori-nav-links a {
	position: relative;
	padding: 0.6rem 0.5rem;
	color: var(--wp--preset--color--contrast) !important;
	text-decoration: none;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.sanori-nav-links a:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-1);
	outline-offset: 2px;
}

/* Constrain header + footer inner width to match content */
.sanori-site-header > .alignwide,
.sanori-site-footer > .alignwide {
	max-width: var(--wp--style--global--content-size, 72rem) !important;
}

/* CTA button in header — no underline, extra left spacing */
.sanori-site-header .wp-block-buttons {
	margin-left: 0.75rem;
}

/* Header CTA — base state */
.sanori-site-header .wp-block-buttons a[class],
.sanori-site-header .wp-block-buttons a[class]:link,
.sanori-site-header .wp-block-buttons a[class]:visited {
	color: #fff !important;
	background-color: var(--sanori-teal-dark) !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	text-decoration-color: transparent !important;
	text-decoration-thickness: 0 !important;
	text-underline-offset: 0 !important;
	border-bottom: none !important;
	box-shadow: none !important;
	background-image: none !important;
	-webkit-text-decoration: none !important;
	font-weight: 600;
	padding: 0.7rem 1.5rem !important;
	border-radius: 0.5rem;
	transition: background-color 200ms ease, color 200ms ease, transform 200ms ease, box-shadow 200ms ease;
}

/* Header CTA — gold hover with glow */
.sanori-site-header .wp-block-buttons a[class]:hover,
.sanori-site-header .wp-block-buttons a[class]:focus {
	color: var(--wp--preset--color--contrast) !important;
	background-color: var(--sanori-gold) !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	text-decoration-color: transparent !important;
	border-bottom: none !important;
	background-image: none !important;
	-webkit-text-decoration: none !important;
	transform: scale(1.04);
	box-shadow: 0 4px 16px rgba(251, 190, 94, 0.4), 0 0 30px rgba(251, 190, 94, 0.15) !important;
}

.sanori-site-header .wp-block-buttons a[class]:active {
	color: var(--wp--preset--color--contrast) !important;
	background-color: var(--sanori-gold) !important;
	text-decoration: none !important;
	border-bottom: none !important;
	background-image: none !important;
	transform: scale(0.97);
	box-shadow: 0 2px 4px rgba(251, 190, 94, 0.2) !important;
}

.sanori-nav-links a:not(.wp-block-button__link)::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0;
	height: 2px;
	background: var(--wp--preset--color--accent-1);
	transition: width 0.3s ease-out;
}

.sanori-nav-links a:not(.wp-block-button__link):hover::after,
.sanori-nav-links a:not(.wp-block-button__link):focus-visible::after {
	width: 100%;
}

.sanori-nav-links a:not(.wp-block-button__link).is-active {
	color: var(--wp--preset--color--accent-1);
}

.sanori-nav-links a:not(.wp-block-button__link).is-active::after {
	width: 100%;
	background: var(--wp--preset--color--accent-1);
}

/* ── Footer ── */

.sanori-site-footer {
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
	border-top: 3px solid var(--sanori-gold);
}

.sanori-site-footer a {
	color: inherit;
}

.sanori-site-footer .wp-block-columns {
	gap: 2.5rem;
}

.sanori-site-footer h4 {
	margin-bottom: 0.75rem;
	color: var(--sanori-gold);
}

/* ── Shared UI ── */

.sanori-eyebrow {
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sanori-hero .sanori-eyebrow {
	color: var(--sanori-gold);
	text-align: left;
}

.sanori-hero .wp-block-buttons {
	justify-content: flex-start;
}

.sanori-hero .is-layout-constrained > * {
	margin-left: 0 !important;
}

.sanori-philosophy-band .sanori-eyebrow {
	color: var(--sanori-gold);
}

.sanori-homepage__label {
	display: inline-block;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-1);
}

.sanori-surface-card {
	border: 1px solid var(--sanori-border);
	border-radius: var(--sanori-radius-card);
	box-shadow: var(--sanori-shadow-soft);
}

/* ── WP block layout overrides for homepage ── */

.sanori-home-section--services > .wp-block-heading,
.sanori-home-section--services > p,
.sanori-home-section--services > .sanori-eyebrow {
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* ── Homepage shell ── */

.sanori-homepage {
	display: grid;
	justify-items: center;
	gap: clamp(2.5rem, 5vw, 5rem);
	width: 100%;
	max-width: none !important;
	padding: clamp(1.25rem, 2vw, 2rem) 1rem clamp(4rem, 7vw, 7rem);
	overflow: hidden;
}

.sanori-homepage > section {
	box-sizing: border-box;
	width: min(1180px, 100%);
}

/* ── Hero ── */

.sanori-hero {
	display: flex;
	gap: clamp(1.5rem, 4vw, 3rem);
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border: 1px solid rgba(58, 150, 162, 0.2);
	border-radius: 1.25rem;
	background: linear-gradient(135deg, var(--wp--preset--color--contrast) 0%, var(--wp--preset--color--contrast-2) 50%, #185A6A 100%);
	box-shadow: 0 12px 32px rgba(0, 60, 88, 0.12);
}

.sanori-hero__intro {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 0.75rem;
	flex: 1.3;
	min-width: 0;
	text-align: left;
}

.sanori-hero h1 {
	margin: 0;
	max-width: 18ch;
	font-size: clamp(2.2rem, 4vw, 3.8rem) !important;
	line-height: 1.05 !important;
	letter-spacing: -0.03em;
	color: var(--wp--preset--color--base);
}

.sanori-hero__lead {
	max-width: 39rem;
	margin: 0;
	font-size: clamp(1.08rem, 1.35vw, 1.28rem);
	line-height: 1.618;
	color: rgba(253, 249, 244, 0.85);
}

.sanori-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin-top: 0.5rem;
}

.sanori-secondary-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 700;
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
	transition: color 180ms ease;
}

.sanori-secondary-link:hover {
	color: var(--wp--preset--color--accent-1);
}

.sanori-hero .wp-element-button {
	background-color: var(--sanori-gold);
	color: var(--wp--preset--color--contrast);
}

.sanori-hero .wp-element-button:hover {
	background-color: var(--sanori-gold) !important;
	color: var(--wp--preset--color--contrast) !important;
	box-shadow: 0 6px 24px rgba(251, 190, 94, 0.5), 0 0 50px rgba(251, 190, 94, 0.2) !important;
}

.sanori-hero .sanori-secondary-link {
	color: rgba(253, 249, 244, 0.9);
}

.sanori-hero .sanori-secondary-link:hover {
	color: var(--sanori-gold);
}

.sanori-secondary-link::after {
	content: "\2192";
	transition: transform 180ms ease;
}

.sanori-secondary-link:hover::after {
	transform: translateX(3px);
}

.sanori-hero__aside {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1rem;
	flex: 0.7;
	min-width: 16rem;
}

.sanori-hero__photo {
	overflow: hidden;
	border-radius: var(--sanori-radius-card);
}

.sanori-hero__photo .wp-block-image,
.sanori-philosophy-band__photo .wp-block-image,
.sanori-course-photo .wp-block-image {
	margin: 0;
}

.sanori-hero__photo img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	min-height: 20rem;
	max-height: 32rem;
	object-fit: cover;
	object-position: center 10%;
}

/* ── Homepage post-content styling ── */

.sanori-homepage .wp-block-post-content {
	max-width: 56rem !important;
}

/* Reset WP block gap and establish consistent rhythm */
.sanori-homepage .wp-block-post-content > * {
	margin-top: 1rem !important;
	margin-bottom: 0 !important;
}

.sanori-homepage .wp-block-post-content > *:first-child {
	margin-top: 0 !important;
}

/* Service cards: 2x2 grid with links */
.sanori-services-columns {
	gap: 1.25rem !important;
	margin-bottom: 0 !important;
}

.sanori-service-link {
	padding: 2rem !important;
	background: var(--sanori-bg-white);
	border-radius: var(--sanori-radius-card);
	border: 1px solid var(--sanori-border);
	height: 100%;
	display: flex !important;
	flex-direction: column;
	position: relative;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(22, 58, 84, 0.06);
	transition: border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}

/* Make entire card clickable via the h3 link */
.sanori-service-link h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.sanori-service-arrow {
	margin-top: auto !important;
	padding-top: 1rem;
}

.sanori-service-link:hover {
	border-color: var(--wp--preset--color--accent-1);
	box-shadow: 0 8px 24px rgba(0, 60, 88, 0.12);
	transform: translateY(-2px);
}

.sanori-service-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-1);
	outline-offset: 2px;
}

.sanori-service-icon {
	margin-bottom: 0.75rem !important;
	text-align: center;
}

.sanori-service-icon img {
	width: 112px !important;
	height: 112px !important;
	object-fit: contain;
	margin: 0 auto;
	transition: transform 0.3s ease-out;
}

.sanori-service-link h3 {
	font-size: clamp(1.05rem, 1.4vw, 1.2rem) !important;
	margin-bottom: 0.5rem;
	min-height: 2.4em;
}

.sanori-service-link h3 a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.sanori-service-link p {
	color: var(--sanori-text-soft);
	font-size: 0.92rem;
	min-height: 3.6em;
}

.sanori-service-arrow a {
	color: var(--sanori-teal-dark);
	text-decoration: none;
	font-weight: 600;
	font-size: 1rem;
	transition: color 180ms ease;
}

.sanori-service-link:hover .sanori-service-arrow a {
	color: var(--sanori-gold);
	transform: translateX(6px);
	display: inline-block;
}

.sanori-service-arrow a {
	display: inline-block;
	transition: color 200ms ease, transform 200ms ease;
}

.sanori-service-link .is-layout-constrained > * {
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Section breaks — generous space above h2s */
.sanori-homepage .wp-block-post-content > h2 {
	margin-top: 3.5rem !important;
	padding-top: 2rem;
	border-top: 1px solid var(--sanori-border);
}

.sanori-homepage .wp-block-post-content > h2:first-child {
	margin-top: 0 !important;
	border-top: none;
	padding-top: 0;
}

/* Tighter spacing for service columns after h2 */
.sanori-homepage .wp-block-post-content > .sanori-services-columns {
	margin-top: 1.25rem !important;
}

/* Photo spacing */
.sanori-homepage .wp-block-post-content > .sanori-home-photo {
	margin-top: 2.5rem !important;
}

.sanori-homepage .wp-block-post-content > .sanori-home-photo + h2 {
	border-top: none;
	margin-top: 1.5rem !important;
	padding-top: 0;
}

/* Practice photos tighter to heading */
.sanori-homepage .wp-block-post-content > .sanori-praxis-photos {
	margin-top: 1.25rem !important;
}

/* Photos */
.sanori-homepage .sanori-home-photo {
	margin-top: 3rem;
	margin-bottom: 0;
	overflow: hidden;
	border-radius: var(--sanori-radius-panel);
	max-width: none !important;
}

/* (moved to section spacing block above) */

.sanori-homepage .sanori-home-photo img {
	display: block;
	width: min(100%, 28rem) !important;
	aspect-ratio: 1;
	margin: 0 auto;
	object-fit: cover;
	object-position: center 10%;
	border-radius: var(--sanori-radius-panel);
}

/* Portrait photo — show face */
.sanori-homepage .wp-block-post-content > .sanori-home-photo:nth-of-type(2) img {
	object-position: center 15%;
}

/* Philosophy list — gold bullets */
.sanori-homepage .wp-block-post-content > ul {
	list-style: none;
	padding-left: 0;
}

.sanori-homepage .wp-block-post-content > ul > li {
	position: relative;
	padding-left: 1.25rem;
	margin-bottom: 0.75rem;
}

.sanori-homepage .wp-block-post-content > ul > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.6em;
	width: 8px;
	height: 8px;
	background: var(--sanori-gold);
	border-radius: 50%;
}

/* Alternating section background */
.sanori-homepage .sanori-section-alt {
	background: linear-gradient(135deg, #f5f0e8 0%, #faf6ef 100%);
	margin-left: calc(-50vw + 50%) !important;
	margin-right: calc(-50vw + 50%) !important;
	padding: 3rem calc(50vw - 50%) 3.5rem !important;
	max-width: none !important;
}

.sanori-homepage .sanori-section-alt > h2:first-child {
	margin-top: 0 !important;
	border-top: none;
	padding-top: 0;
}

.sanori-homepage .sanori-section-alt + h2 {
	border-top: none;
}

/* Section-alt inner content inherits homepage styles */

.sanori-homepage .sanori-section-alt > ul {
	list-style: none;
	padding-left: 0;
}

.sanori-homepage .sanori-section-alt > ul > li {
	position: relative;
	padding-left: 1.25rem;
	margin-bottom: 0.75rem;
}

.sanori-homepage .sanori-section-alt > ul > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.6em;
	width: 8px;
	height: 8px;
	background: var(--sanori-gold);
	border-radius: 50%;
}

/* Inline portrait photo inside merged section */
.sanori-portrait-inline {
	max-width: 16rem;
	margin: 1.5rem auto;
	overflow: hidden;
	border-radius: var(--sanori-radius-panel);
}

.sanori-portrait-inline img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	object-position: center 15%;
	border-radius: var(--sanori-radius-panel);
}

/* Praxis photos — 2-col grid, natural aspect ratio, clickable */
.sanori-praxis-photos {
	gap: 1rem !important;
}

.sanori-praxis-photo {
	overflow: hidden;
	border-radius: var(--sanori-radius-card);
	cursor: zoom-in;
}

.sanori-praxis-photo img {
	display: block;
	width: 100% !important;
	height: 16rem;
	object-fit: cover;
	object-position: center center;
	border-radius: var(--sanori-radius-card);
	transition: transform 300ms ease;
}

.sanori-praxis-photo:hover img {
	transform: scale(1.03);
}

/* Lightbox overlay */
.sanori-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(0, 0, 0, 0.85);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: zoom-out;
	opacity: 0;
	transition: opacity 250ms ease;
}

.sanori-lightbox.is-open {
	opacity: 1;
}

.sanori-lightbox img {
	max-width: 90vw;
	max-height: 90vh;
	object-fit: contain;
	border-radius: 0.5rem;
}

/* Praxis photos stacked — tighter spacing */
.sanori-homepage .wp-block-post-content > .sanori-home-photo + .sanori-home-photo {
	margin-top: 1rem !important;
}

/* CTA section — last h2 "Termin anfragen" */
.sanori-homepage .wp-block-post-content > h2:last-of-type {
	margin-top: 3rem;
	padding: 2.5rem 2.5rem 0;
	border-top: none;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	border-radius: var(--sanori-radius-panel) var(--sanori-radius-panel) 0 0;
}

.sanori-homepage .wp-block-post-content > h2:last-of-type ~ p {
	margin-top: 0 !important;
	padding: 0.75rem 2.5rem 0;
	background: var(--wp--preset--color--contrast);
	color: rgba(253, 249, 244, 0.82);
}

.sanori-homepage .wp-block-post-content > h2:last-of-type ~ ul {
	margin-top: 0 !important;
	padding: 1rem 2.5rem 2.5rem;
	background: var(--wp--preset--color--contrast);
	border-radius: 0 0 var(--sanori-radius-panel) var(--sanori-radius-panel);
	list-style: none;
}

.sanori-homepage .wp-block-post-content > h2:last-of-type ~ ul li {
	padding-left: 0;
	padding-bottom: 0.5rem;
	margin-bottom: 0;
	color: rgba(253, 249, 244, 0.88);
	font-size: 1.05rem;
}

.sanori-homepage .wp-block-post-content > h2:last-of-type ~ ul li::before {
	display: none;
}

.sanori-homepage .wp-block-post-content > h2:last-of-type ~ ul a {
	color: var(--sanori-gold);
	text-decoration-color: rgba(251, 190, 94, 0.4);
}

.sanori-services-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.35fr);
	gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: start;
}

.sanori-services-photo {
	overflow: hidden;
	border-radius: var(--sanori-radius-card);
	position: sticky;
	top: 2rem;
}

.sanori-services-photo img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.sanori-home-section__intro h2 {
	margin-bottom: 0.75rem;
	padding-bottom: 0.75rem;
	border-bottom: 2px solid var(--sanori-gold-border);
	font-size: clamp(1.8rem, 2.5vw, 2.5rem);
	line-height: 1.05;
	letter-spacing: -0.03em;
}

.sanori-home-section__intro p {
	color: var(--sanori-text-soft);
}

/* ── Service rows ── */

.sanori-service-list {
	display: grid;
}

.sanori-service-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 1.25rem;
	align-items: start;
	padding: 1.35rem 0;
	border-bottom: 1px solid rgba(0, 60, 88, 0.10);
	text-decoration: none;
	color: inherit;
	transition: transform 180ms ease, border-color 180ms ease;
}

.sanori-service-row:first-child {
	border-top: 1px solid rgba(0, 60, 88, 0.10);
}

.sanori-service-row:last-child {
	border-bottom: 1px solid rgba(0, 60, 88, 0.10);
}

.sanori-service-row:hover,
.sanori-service-row:focus-visible {
	transform: none;
	border-color: var(--sanori-border-hover);
	background: var(--sanori-gold-soft);
}

.sanori-service-row:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-1);
	outline-offset: 2px;
}

.sanori-service-row:hover .sanori-service-row__meta {
	color: var(--sanori-gold);
}

.sanori-service-row__index {
	display: none;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-1);
}

.sanori-service-row__body {
	display: block;
}

.sanori-service-row__title {
	display: block;
	margin: 0 0 0.35rem;
	font-family: var(--wp--preset--font-family--lora);
	font-size: clamp(1.15rem, 1.5vw, 1.4rem);
	font-weight: 700;
	line-height: 1.15;
	color: var(--wp--preset--color--contrast);
}

.sanori-service-row__desc {
	display: block;
	margin: 0;
	color: var(--sanori-text-muted);
}

.sanori-service-row__meta {
	font-weight: 700;
	white-space: nowrap;
	color: var(--sanori-text-muted);
}

.sanori-service-row__arrow {
	font-size: 1.4rem;
	color: var(--wp--preset--color--accent-1);
	transition: transform 180ms ease, color 180ms ease;
	align-self: center;
}

.sanori-service-row:hover .sanori-service-row__arrow {
	transform: translateX(4px);
	color: var(--sanori-gold);
}

/* ── Philosophy band (replaces dark expertise band) ── */

.sanori-philosophy-band {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	padding: clamp(1.8rem, 4vw, 3rem);
	border-radius: var(--sanori-radius-panel);
	background: linear-gradient(165deg, var(--wp--preset--color--contrast) 0%, var(--wp--preset--color--contrast-2) 100%);
	color: rgba(253, 249, 244, 0.88);
}

.sanori-philosophy-band__photo {
	overflow: hidden;
	border-radius: var(--sanori-radius-card);
	aspect-ratio: 1;
	max-width: 16rem;
}

.sanori-philosophy-band__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
}

.sanori-philosophy-band h2 {
	max-width: 22ch;
	color: var(--wp--preset--color--base);
	font-size: clamp(1.6rem, 2.2vw, 2rem) !important;
	margin-bottom: 0;
}

.sanori-philosophy-band p {
	color: rgba(253, 249, 244, 0.82);
}

.sanori-philosophy-band__details {
	display: grid;
	gap: 1rem;
	margin-top: 0.5rem;
	border-top: 2px solid rgba(251, 190, 94, 0.35);
	padding-top: 1rem;
}

.sanori-philosophy-band__details dt {
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--sanori-gold);
}

.sanori-philosophy-band__details dd {
	margin: 0.25rem 0 0;
	color: rgba(253, 249, 244, 0.78);
}

/* ── Course section with photo ── */

.sanori-course-section {
	grid-template-columns: minmax(0, 0.38fr) minmax(0, 0.62fr);
	align-items: start;
}

.sanori-course-section .sanori-eyebrow {
	color: var(--sanori-gold-text);
}

.sanori-course-section__visual {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.sanori-course-photo {
	overflow: hidden;
	border-radius: var(--sanori-radius-card);
	border-top: 3px solid var(--sanori-gold);
}

.sanori-course-photo img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 20rem;
	object-fit: cover;
	object-position: center;
}

.sanori-course-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.sanori-questionnaire-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: 1.2rem;
}

.sanori-course-card {
	display: grid;
	gap: 0.75rem;
	padding: 1.25rem 1.5rem;
	background: transparent;
	border-radius: var(--sanori-radius-card);
	border: 1px solid var(--sanori-border);
	color: inherit;
	text-decoration: none;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.sanori-questionnaire-card {
	display: grid;
	gap: 0.75rem;
	padding: 1.4rem;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 238, 228, 0.9));
	border-top: 3px solid var(--sanori-gold);
	color: inherit;
	text-decoration: none;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

a.sanori-course-card:hover,
a.sanori-course-card:focus-visible {
	transform: translateY(-3px);
	box-shadow: var(--sanori-shadow-strong);
}

.sanori-course-card h3 {
	margin: 0;
	font-size: clamp(1.1rem, 1.4vw, 1.3rem);
}

.sanori-questionnaire-card h3 {
	margin: 0;
	font-size: clamp(1.3rem, 2vw, 1.55rem);
}

.sanori-course-card__title {
	display: block;
	margin: 0;
	font-family: var(--wp--preset--font-family--lora);
	font-size: clamp(1.3rem, 2vw, 1.55rem);
	font-weight: 700;
	line-height: 1.15;
	color: var(--wp--preset--color--contrast);
}

.sanori-course-card__desc {
	display: block;
	color: var(--sanori-text-muted);
}

.sanori-course-card__meta {
	margin: 0;
	font-weight: 700;
	font-size: 0.85rem;
	color: var(--wp--preset--color--accent-1);
}

.sanori-course-card--action {
	align-content: end;
	background: transparent;
}

/* ── Final CTA ── */

.sanori-final-cta {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 1.5rem;
	padding: clamp(1.8rem, 4vw, 2.8rem);
	border-radius: var(--sanori-radius-panel);
	background: linear-gradient(135deg, var(--wp--preset--color--contrast) 0%, var(--wp--preset--color--contrast-2) 100%);
	color: rgba(253, 249, 244, 0.88);
}

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

.sanori-final-cta .sanori-eyebrow {
	color: var(--sanori-gold);
}

.sanori-final-cta .wp-element-button {
	background-color: var(--sanori-gold);
	color: var(--wp--preset--color--contrast);
}

.sanori-final-cta .wp-element-button:hover {
	background-color: #F5AD3A;
	transform: translateY(-3px);
	box-shadow: 0 6px 20px rgba(251, 190, 94, 0.3);
}

.sanori-final-cta .sanori-secondary-link {
	color: rgba(253, 249, 244, 0.9);
}

.sanori-final-cta .sanori-secondary-link:hover {
	color: var(--sanori-gold);
}

/* ── Inline panel ── */

.sanori-page-cta {
	border-radius: var(--sanori-radius-panel);
}

.sanori-page-cta p {
	color: rgba(253, 249, 244, 0.82);
}

.sanori-page-cta .is-style-outline .wp-element-button {
	color: var(--wp--preset--color--base) !important;
	border-color: rgba(253, 249, 244, 0.4) !important;
}

.sanori-page-cta .is-style-outline .wp-element-button:hover {
	background: var(--sanori-gold) !important;
	color: var(--wp--preset--color--contrast) !important;
	border-color: var(--sanori-gold) !important;
	box-shadow: 0 6px 24px rgba(251, 190, 94, 0.4), 0 0 40px rgba(251, 190, 94, 0.15) !important;
}

.sanori-page-cta .wp-element-button:hover {
	background-color: var(--sanori-gold) !important;
	color: var(--wp--preset--color--contrast) !important;
	box-shadow: 0 6px 24px rgba(251, 190, 94, 0.5), 0 0 50px rgba(251, 190, 94, 0.2) !important;
}

.sanori-inline-panel {
	border-radius: 1.5rem;
}

/* ── Service page layout ── */

.sanori-page-shell {
	display: grid;
	gap: clamp(2rem, 4vw, 3rem);
	width: min(80%, 1200px);
	margin: 0 auto;
}

/* Force page shell wide */
.sanori-page-shell.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: 90% !important;
}

.sanori-page-shell.is-layout-constrained > .alignwide {
	max-width: 90% !important;
}

.sanori-page-hero {
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border: 1px solid var(--sanori-border);
	border-radius: var(--sanori-radius-panel);
	background: var(--sanori-gradient-soft);
	box-shadow: var(--sanori-shadow-soft);
	max-width: none !important;
	width: 100% !important;
}

/* Content page icons — centered at top of content */
.sanori-content-icon {
	margin: 1.5rem auto 0.5rem !important;
	text-align: center;
}

.sanori-content-icon img {
	width: 160px !important;
	height: 160px !important;
	object-fit: contain;
	margin: 0 auto;
}

.sanori-page-hero .wp-block-post-title {
	margin-top: 0.2rem;
	font-size: clamp(2rem, 2.8vw, 3rem) !important;
	line-height: 0.98 !important;
	letter-spacing: -0.04em;
	text-wrap: balance;
}

.sanori-page-hero__lead {
	max-width: 40rem;
	margin: 0;
	font-size: clamp(1.02rem, 1.2vw, 1.16rem);
}

.sanori-page-hero__actions {
	margin-top: 1.5rem;
}

.sanori-page-hero__card {
	padding: 1.5rem;
	background: rgba(255, 255, 255, 0.82);
	backdrop-filter: blur(10px);
}

.sanori-page-hero__list {
	margin: 0;
	padding-left: 1.15rem;
}

.sanori-page-hero__list li + li {
	margin-top: 0.75rem;
}

.sanori-page-columns {
	align-items: start;
}

.sanori-content-panel {
	background: linear-gradient(180deg, var(--sanori-bg-white), rgba(245, 240, 232, 0.82));
}

.sanori-content-panel .wp-block-post-content,
.sanori-content-panel .wp-block-post-content > * {
	max-width: none;
}

.sanori-sticky-column {
	position: sticky;
	top: 5rem;
	max-height: calc(100vh - 6rem);
}

/* ── Map, form, booking ── */

.sanori-map-card,
.sanori-booking-embed {
	overflow: hidden;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--sanori-border-mid);
	border-radius: var(--sanori-radius-card);
	box-shadow: var(--sanori-shadow-soft);
}

.sanori-map-card iframe {
	display: block;
	width: 100%;
	min-height: 28rem;
	border: 0;
}

.sanori-form-message {
	margin: 1rem 0 1.25rem;
	padding: 0.95rem 1rem;
	border-radius: 0.75rem;
	font-weight: 700;
}

.sanori-form-message--success {
	background: rgba(193, 217, 206, 0.45);
	color: var(--wp--preset--color--contrast);
}

.sanori-form-message--error {
	background: rgba(180, 69, 69, 0.12);
	color: var(--sanori-error);
}

/* ── Modern contact form ── */

.sanori-contact-form {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: 1.5rem;
	background: var(--sanori-bg-white);
	border-radius: var(--sanori-radius-panel);
	border: 1px solid var(--sanori-border);
	box-shadow: var(--sanori-shadow-soft);
}

.sanori-contact-form__title {
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
	margin: 0 0 0.25rem;
}

.sanori-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.85rem;
}

/* Floating label */
.sanori-floating-label {
	position: relative;
}

.sanori-floating-label input,
.sanori-floating-label textarea {
	width: 100%;
	padding: 1.5rem 1rem 0.5rem;
	min-height: 3.25rem;
	font-size: 1rem;
	font-family: inherit;
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	border: 1.5px solid var(--sanori-border-mid);
	border-radius: 0.75rem;
	outline: none;
	transition: border-color 200ms ease, box-shadow 200ms ease;
}

.sanori-floating-label label {
	position: absolute;
	left: 1rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1rem;
	color: var(--sanori-text-soft);
	pointer-events: none;
	transition: all 200ms ease;
}

.sanori-floating-label textarea + label {
	top: 1.25rem;
	transform: none;
}

/* Float up when focused or has value */
.sanori-floating-label input:focus + label,
.sanori-floating-label input:not(:placeholder-shown) + label {
	top: 0.5rem;
	transform: none;
	font-size: 0.75rem;
	color: var(--wp--preset--color--accent-1);
}

.sanori-floating-label textarea:focus + label,
.sanori-floating-label textarea:not(:placeholder-shown) + label {
	top: 0.35rem;
	font-size: 0.75rem;
	color: var(--wp--preset--color--accent-1);
}

/* Focus ring */
.sanori-floating-label input:focus,
.sanori-floating-label textarea:focus {
	border-color: var(--wp--preset--color--accent-1);
	box-shadow: 0 0 0 3px rgba(58, 150, 162, 0.12);
}

/* Checkbox field for topic selection */
.sanori-checkbox-field {
	border: 1.5px solid var(--sanori-border-mid);
	border-radius: 0.75rem;
	padding: 0.75rem 1rem;
	margin: 0;
}

.sanori-checkbox-field__label {
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--contrast);
	padding: 0 0.25rem;
}

.sanori-checkbox-option {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.35rem 0;
	cursor: pointer;
	font-size: 0.92rem;
	color: var(--wp--preset--color--contrast);
}

.sanori-checkbox-option input[type="checkbox"] {
	width: 1.1rem;
	height: 1.1rem;
	accent-color: var(--wp--preset--color--accent-1);
	cursor: pointer;
	flex-shrink: 0;
}

.sanori-checkbox-option span {
	font-weight: 500;
}

/* Submit button */
.sanori-submit-btn {
	width: 100%;
	padding: 1rem !important;
	font-size: 1.05rem !important;
	font-weight: 600;
	background-color: var(--wp--preset--color--accent-1) !important;
	color: var(--wp--preset--color--base) !important;
	border: none;
	border-radius: 0.75rem !important;
	cursor: pointer;
	transition: background-color 180ms ease, transform 120ms ease;
}

.sanori-submit-btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-1);
	outline-offset: 2px;
}

.sanori-submit-btn:hover {
	background-color: var(--wp--preset--color--contrast) !important;
}

.sanori-submit-btn:active {
	transform: scale(0.98);
}

/* Validation errors */
.sanori-floating-label small[role="alert"] {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--sanori-error);
}

.sanori-booking-embed__frame {
	display: block;
	width: 100%;
	min-height: 600px;
	border: 0;
	overflow: hidden;
	background: var(--wp--preset--color--base);
}

/* ── Service photos ── */

.sanori-service-photo {
	overflow: hidden;
	border-radius: var(--sanori-radius-card);
}

.sanori-service-photo img {
	display: block;
	width: 100% !important;
	height: auto !important;
	max-height: 32rem;
	object-fit: cover;
	aspect-ratio: 4 / 5;
	object-position: center 20%;
}

.sanori-page-hero--about .sanori-service-photo img {
	aspect-ratio: 3 / 4;
	object-position: top center;
}

/* ── Post content ── */

.wp-block-post-content {
	max-width: 90% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.wp-block-post-content.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: none !important;
}

.wp-block-post-content > h2,
.wp-block-post-content > h3 {
	margin-top: 2.4rem;
}

/* Enforce type scale: H1 > H2 > H3 > H4 */
h1, .wp-block-heading:where(h1) {
	font-size: clamp(2rem, 2.8vw, 3rem) !important;
}

h2, .wp-block-heading:where(h2) {
	font-size: clamp(1.5rem, 2.2vw, 1.9rem) !important;
}

h3, .wp-block-heading:where(h3) {
	font-size: clamp(1.2rem, 1.6vw, 1.45rem) !important;
}

h4, .wp-block-heading:where(h4) {
	font-size: clamp(1.05rem, 1.3vw, 1.15rem) !important;
	letter-spacing: 0.01em;
}

.wp-block-post-content ul {
	padding-left: 1.15rem;
}

.wp-block-post-content li + li {
	margin-top: 0.55rem;
}

.wp-block-post-content a {
	word-break: break-word;
}

/* ── Mobile hamburger menu ── */

.sanori-menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: none;
	border-radius: 0.5rem;
	background: transparent;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.sanori-menu-toggle svg {
	width: 1.25rem;
	height: 1.25rem;
	stroke: currentColor;
	stroke-width: 2;
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.sanori-menu-toggle:hover,
.sanori-menu-toggle:focus-visible {
	background: var(--sanori-border);
}

.sanori-menu-toggle .sanori-menu-close {
	display: none;
}

.sanori-site-header.menu-open .sanori-menu-toggle .sanori-menu-open {
	display: none;
}

.sanori-site-header.menu-open .sanori-menu-toggle .sanori-menu-close {
	display: block;
}

/* ── Responsive: tablet ── */

@media (max-width: 768px) {
	.sanori-menu-toggle {
		display: flex;
		order: 2;
	}

	.sanori-site-header .alignwide > .wp-block-group:last-child {
		flex-wrap: nowrap !important;
		align-items: center;
		gap: 0.5rem;
	}

	.sanori-nav-links {
		display: none !important;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		gap: 0;
		margin: 0;
		padding: 0.5rem 0;
		background: rgba(253, 249, 244, 0.98);
		backdrop-filter: blur(14px);
		box-shadow: 0 8px 24px var(--sanori-border);
		border-bottom: 1px solid var(--sanori-border);
		z-index: 100;
	}

	.sanori-nav-links a {
		display: block;
		padding: 0.85rem var(--wp--preset--spacing--40, 1.5rem) !important;
		font-size: 1rem;
	}

	.sanori-nav-links a:hover {
		background: var(--sanori-border);
	}

	.sanori-site-header.menu-open .sanori-nav-links {
		display: flex !important;
	}

	.sanori-site-header {
		position: sticky;
	}

	.sanori-site-header > .wp-block-group {
		position: relative;
	}

	/* Bug #1 + #4: CTA hidden by default, visible inside nav dropdown */
	.sanori-site-header .wp-block-buttons {
		display: none !important;
	}

	.sanori-site-header.menu-open .sanori-nav-links .wp-block-buttons {
		display: flex !important;
		padding: 0.75rem var(--wp--preset--spacing--40, 1.5rem);
	}

	.sanori-site-header.menu-open .sanori-nav-links .wp-block-button {
		width: 100%;
	}

	.sanori-site-header.menu-open .sanori-nav-links .wp-block-button__link {
		width: 100%;
		text-align: center;
	}

	/* Bug #3 + #8: Force page columns to single column on mobile */
	.sanori-page-columns {
		flex-direction: column !important;
	}

	.sanori-page-columns > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}

	/* Bug #8: Hide sticky sidebar on mobile (it's redundant nav) */
	.sanori-sticky-column {
		display: none;
	}
}

@media (max-width: 960px) {
	.sanori-hero {
		flex-direction: column;
	}

	.sanori-hero__aside {
		min-width: 0;
	}

	.sanori-home-section--services,
	.sanori-course-section,
	.sanori-final-cta {
		grid-template-columns: 1fr;
	}

	.sanori-philosophy-band {
		grid-template-columns: 1fr;
	}

	.sanori-philosophy-band__photo img {
		max-height: 24rem;
	}

	.sanori-card-grid,
	.sanori-course-grid,
	.sanori-questionnaire-grid {
		grid-template-columns: 1fr;
	}

	.sanori-form-row {
		grid-template-columns: 1fr;
	}

	.sanori-service-row {
		grid-template-columns: minmax(0, 1fr);
	}

	.sanori-service-row__meta {
		grid-column: 1;
	}

	.sanori-nav-links {
		justify-content: flex-start;
	}

	.sanori-page-hero__columns,
	.sanori-page-columns {
		flex-direction: column !important;
		flex-wrap: nowrap !important;
	}

	.sanori-page-hero__columns > .wp-block-column,
	.sanori-page-columns > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}

	.sanori-sticky-column {
		position: static;
	}
}

/* ── Responsive: small mobile ── */

@media (max-width: 640px) {
	body {
		--wp--style--root--padding-right: 0.5rem;
		--wp--style--root--padding-left: 0.5rem;
	}

	.sanori-page-shell {
		padding-left: 0.5rem !important;
		padding-right: 0.5rem !important;
	}

	.sanori-site-header,
	.sanori-site-footer {
		padding-left: 0.5rem !important;
		padding-right: 0.5rem !important;
	}

	.sanori-hero,
	.sanori-final-cta,
	.sanori-page-hero,
	.sanori-page-cta,
	.sanori-inline-panel,
	.sanori-section-alt {
		padding-left: 0.5rem !important;
		padding-right: 0.5rem !important;
	}

	.sanori-content-panel {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	.wp-block-post-content {
		max-width: 100% !important;
	}

	.sanori-booking-embed {
		border: none;
		border-radius: 0;
		box-shadow: none;
	}

	.sanori-content-panel {
		padding: 0.5rem !important;
		border-radius: 0.75rem;
	}

	.sanori-service-link {
		padding: 1.25rem !important;
	}

	.sanori-service-icon img {
		width: 80px !important;
		height: 80px !important;
	}

	.sanori-service-link h3 {
		min-height: auto;
	}

	.sanori-service-link p {
		min-height: auto;
	}

	.sanori-content-panel .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
	.sanori-content-panel .wp-block-post-content.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
	.sanori-content-panel.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
		max-width: none !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	.sanori-page-hero .sanori-page-hero__columns {
		gap: 0.75rem !important;
	}

	.sanori-page-hero .wp-block-column[style*="flex-basis:40%"],
	.sanori-page-hero .wp-block-column[style*="flex-basis:44%"] {
		display: none;
	}

	.sanori-philosophy-band {
		padding-left: 1.1rem;
		padding-right: 1.1rem;
	}

	.sanori-homepage > section {
		width: min(100vw - 1rem, 100%);
	}

	/* Bug #6 + #7: Smaller headings on mobile to prevent ugly word breaks */
	.sanori-hero h1,
	.sanori-page-hero h1,
	.sanori-page-hero .wp-block-post-title {
		font-size: 1.5rem !important;
		word-break: normal;
		overflow-wrap: anywhere;
		hyphens: none;
	}

	.sanori-page-hero {
		padding: 1rem !important;
	}

	.sanori-page-hero .sanori-eyebrow {
		font-size: 0.7rem !important;
	}

	.sanori-site-header .wp-block-button__link {
		width: auto;
	}

	/* Bug #9: Map card needs more height on mobile */
	.sanori-map-card iframe {
		min-height: 22rem;
	}

	.sanori-hero h1 {
		max-width: none;
	}

	.sanori-actions,
	.sanori-page-hero__actions {
		align-items: stretch;
	}

	.sanori-actions .wp-element-button,
	.sanori-page-hero__actions .wp-element-button,
	.sanori-service-row__meta {
		width: 100%;
	}

	/* Homepage service cards mobile */
	.sanori-services-columns {
		flex-direction: column !important;
		gap: 1rem !important;
	}

	.sanori-service-link {
		padding: 1.15rem !important;
	}

	.sanori-homepage .sanori-home-photo img {
		height: 14rem;
	}

	.sanori-homepage .wp-block-post-content > h2:last-of-type {
		padding: 1.75rem 1.25rem 0;
	}

	.sanori-homepage .wp-block-post-content > h2:last-of-type ~ p {
		padding: 0.5rem 1.25rem 0;
	}

	.sanori-homepage .wp-block-post-content > h2:last-of-type ~ ul {
		padding: 0.5rem 1.25rem 1.75rem;
	}
}

/* ── Scroll-reveal animations ── */
@keyframes sanori-reveal {
	from {
		opacity: 0;
		transform: translateY(1.5rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.sanori-reveal {
	opacity: 0;
}

.sanori-reveal.is-visible {
	animation: sanori-reveal 0.5s ease-out forwards;
}

/* Stagger service cards */
.sanori-services-columns .sanori-service-link.sanori-reveal.is-visible:nth-child(1) { animation-delay: 0s; }
.sanori-services-columns .sanori-service-link.sanori-reveal.is-visible:nth-child(2) { animation-delay: 0.1s; }

/* ── Icon hover animation ── */
.sanori-service-link:hover .sanori-service-icon img {
	transform: rotate(3deg) scale(1.05);
	transition: transform 0.3s ease-out;
}

/* ── Gold accent bar under section headings ── */
.sanori-homepage .wp-block-post-content > h2::after {
	content: "";
	display: block;
	width: 2.5rem;
	height: 3px;
	background: var(--sanori-gold);
	margin-top: 0.6rem;
	border-radius: 2px;
}

/* No gold bar on CTA heading (it's on dark bg) */
.sanori-homepage .wp-block-post-content > h2:last-of-type::after {
	display: none;
}

/* Footer headings — keep at body size despite being h3 */
.sanori-site-footer h3.has-body-font-size {
	font-size: 1rem !important;
}

/* ── Footer link hover ── */
.sanori-site-footer a {
	transition: color 200ms ease;
}

.sanori-site-footer a:hover {
	color: var(--sanori-gold) !important;
}

/* ── Footer logo hover ── */
.sanori-logo-link--footer:hover .sanori-logo--footer {
	transform: scale(1.05);
}

@media (prefers-reduced-motion: reduce) {
	.sanori-reveal.is-visible {
		animation: none;
		opacity: 1;
	}

	.sanori-service-link:hover .sanori-service-icon img,
	.sanori-logo--footer,
	.sanori-nav-links a::after {
		transition: none !important;
	}

	.overview-btn--filled {
		animation: none;
	}
}
