/* Small additions that theme.json can't express. Keep this short. */

/* Accessibility: always-visible keyboard focus */
:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--teal);
	outline-offset: 3px;
	border-radius: 4px;
}

/* Header */
.ysg-header {
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.ysg-header .ysg-logo img {
	height: 44px;
	width: auto;
	display: block;
}
@media (max-width: 600px) {
	.ysg-header .ysg-logo img { height: 34px; }
	.ysg-header .wp-block-button__link {
		padding: 0.55rem 0.9rem;
		font-size: 0.9375rem;
	}
	.ysg-header .ysg-header-cta { order: 2; }
}

/* Card block style */
.is-style-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 12px;
	padding: clamp(1.25rem, 3vw, 2rem);
}
.has-teal-soft-background-color .is-style-card { border-color: transparent; }

/* List styles */
.is-style-checks, .is-style-crosses {
	list-style: none;
	padding-left: 0;
}
.is-style-checks li, .is-style-crosses li {
	position: relative;
	padding-left: 1.9rem;
	margin-bottom: 0.6rem;
}
.is-style-checks li::before, .is-style-crosses li::before {
	position: absolute;
	left: 0;
	top: 0.1rem;
	font-weight: 700;
	font-family: var(--wp--preset--font-family--inter);
}
.is-style-checks li::before { content: "\2713"; color: var(--wp--preset--color--teal); }
.is-style-crosses li::before { content: "\2013"; color: var(--wp--preset--color--gray); }

/* Numbered step badge */
.ysg-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: var(--wp--preset--color--teal);
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--inter);
	font-weight: 700;
	margin: 0;
}

/* Eyebrow label above headings */
.ysg-eyebrow {
	font-family: var(--wp--preset--font-family--inter);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--teal-dark);
}

/* FAQ (Details blocks) */
.wp-block-details summary {
	font-family: var(--wp--preset--font-family--inter);
	font-weight: 600;
	font-size: 1.125rem;
	cursor: pointer;
	line-height: 1.4;
}
.wp-block-details[open] summary { margin-bottom: 0.5rem; }
.wp-block-details > :not(summary) { color: var(--wp--preset--color--ink); }

/* Teal bands: keep links readable */
.has-teal-background-color a:not(.wp-block-button__link) { color: var(--wp--preset--color--white); }

/* Photo */
.ysg-photo img { border-radius: 16px; }

/* Booking embed */
.ysg-booking iframe {
	width: 100%;
	min-height: 760px;
	border: 0;
	border-radius: 12px;
	background: var(--wp--preset--color--white);
}

/* Example message box */
.ysg-example {
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: 0.9375rem;
	background: var(--wp--preset--color--off-white);
	border-radius: 8px;
	padding: 1rem 1.25rem;
	border: 1px solid var(--wp--preset--color--line);
}

/* Blog cards */
.ysg-post-card .wp-block-post-title { margin-top: 0.25rem; }
.ysg-post-card .wp-block-post-excerpt__excerpt { margin-bottom: 0; }

/* Fluent Forms: match brand */
.fluentform .ff-btn-submit {
	background-color: var(--wp--preset--color--cta-orange) !important;
	color: var(--wp--preset--color--ink) !important;
	border-radius: 8px !important;
	font-family: var(--wp--preset--font-family--inter) !important;
	font-weight: 600 !important;
	padding: 0.85rem 1.5rem !important;
}
.fluentform .ff-el-form-control { border-radius: 8px; }

/* Mobile header: show only the round mark so logo, menu and CTA fit */
@media (max-width: 480px) {
	.ysg-header .ysg-logo img {
		width: 34px;
		height: 34px;
		object-fit: cover;
		object-position: left center;
	}
}

/* Blog category chips */
.ysg-cat-list { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ysg-cat-list li a {
	display: inline-block;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	padding: 0.3rem 0.85rem;
	text-decoration: none;
	font-size: 0.9375rem;
	background: var(--wp--preset--color--white);
}

/* Footer link lists */
.ysg-footer-links { list-style: none; }
.ysg-footer-links li { margin-bottom: 0.4rem; }
.ysg-footer-links a { text-decoration: none; }
.ysg-footer-links a:hover { text-decoration: underline; }
footer .wp-block-image.ysg-logo img { height: 40px; width: auto; }

/* Full-width sections sit flush against each other and the footer */
.wp-block-post-content > .alignfull,
.wp-block-post-content > .wp-block-block > .alignfull { margin-block: 0; }
.wp-block-post-content > .wp-block-block { margin-block: 0; }
main.wp-block-group + footer,
.wp-site-blocks > footer { margin-block-start: 0; }

/* Accent pull-lines */
p.has-x-large-font-size { line-height: 1.4; }

/* FAQ: plus/minus marker on the right */
.wp-block-details summary { list-style: none; position: relative; padding-right: 2rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "+";
	position: absolute;
	right: 0.25rem;
	top: 50%;
	transform: translateY(-50%);
	color: var(--wp--preset--color--teal);
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1;
}
.wp-block-details[open] summary::after { content: "\2013"; }
.ysg-eyebrow a { text-decoration: none; color: inherit; }
