/**
 * Krittaya theme: supplementary styles.
 * Colours, fonts and spacing come from theme.json presets (CSS variables),
 * so changing them in the Site Editor updates these rules too.
 */

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

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

.has-contrast-background-color :where(a, button):focus-visible,
.has-primary-background-color :where(a, button):focus-visible {
	outline-color: var(--wp--preset--color--base);
}

.wp-element-button:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 3px solid var(--wp--preset--color--contrast);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---------- Header ---------- */

.krittaya-tagline-bar {
	text-align: center;
}

.krittaya-tagline-bar .wp-block-site-tagline,
.krittaya-tagline-bar p {
	margin: 0;
}

.krittaya-header .wp-block-navigation a {
	text-decoration: none;
}

.krittaya-header .wp-block-navigation a:hover,
.krittaya-header .wp-block-navigation a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.3em;
}

.krittaya-header .wp-block-navigation .wp-block-navigation__submenu-container {
	border: 0 !important;
	border-radius: var(--wp--custom--radius--small);
	box-shadow: var(--wp--preset--shadow--soft);
	padding: 0.5rem 0;
}

.krittaya-header .wp-block-navigation .wp-block-navigation__submenu-container a {
	padding: 0.5rem 1rem;
}

.krittaya-logo img {
	display: block;
	height: auto;
}

/* "Button" style for a navigation item (e.g. Get in touch). */
.wp-block-navigation .wp-block-navigation-item.is-style-nav-button > .wp-block-navigation-item__content {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border-radius: var(--wp--custom--radius--pill);
	padding: 0.6rem 1.25rem;
}

.wp-block-navigation .wp-block-navigation-item.is-style-nav-button > .wp-block-navigation-item__content:hover,
.wp-block-navigation .wp-block-navigation-item.is-style-nav-button > .wp-block-navigation-item__content:focus-visible {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	text-decoration: none;
}

/* ---------- Block styles ---------- */

.wp-block-group.is-style-card {
	background: var(--wp--preset--color--base);
	border-radius: var(--wp--custom--radius--medium);
	box-shadow: var(--wp--preset--shadow--soft);
	padding: var(--wp--preset--spacing--50);
}

.wp-block-group.is-style-card > :first-child {
	margin-block-start: 0;
}

.wp-block-image.is-style-portrait-frame {
	position: relative;
	isolation: isolate;
}

.wp-block-image.is-style-portrait-frame img {
	border-radius: var(--wp--custom--radius--large);
	box-shadow: 14px 14px 0 var(--wp--preset--color--tint-strong);
}

.wp-block-image.is-style-circle img {
	border-radius: 50%;
	aspect-ratio: 1;
	object-fit: cover;
}

ul.is-style-hearts {
	list-style: none;
	padding-left: 0;
}

ul.is-style-hearts li {
	position: relative;
	padding-left: 1.9em;
	margin-bottom: 0.4em;
}

ul.is-style-hearts li::before {
	content: "";
	position: absolute;
	left: 0.2em;
	top: 0.45em;
	width: 0.95em;
	height: 0.95em;
	background: var(--wp--preset--color--primary);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-7.5-4.6-10-9.3C.3 8.3 2.4 4 6.4 4c2.2 0 3.7 1.2 4.6 2.6h2C13.9 5.2 15.4 4 17.6 4c4 0 6.1 4.3 4.4 7.7C19.5 16.4 12 21 12 21z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-7.5-4.6-10-9.3C.3 8.3 2.4 4 6.4 4c2.2 0 3.7 1.2 4.6 2.6h2C13.9 5.2 15.4 4 17.6 4c4 0 6.1 4.3 4.4 7.7C19.5 16.4 12 21 12 21z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- Sections ---------- */

.krittaya-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.12em;
}

.krittaya-testimonial {
	height: 100%;
	display: flex;
	flex-direction: column;
}

.krittaya-testimonial .krittaya-testimonial__person {
	margin-top: auto;
}

.krittaya-testimonial .wp-block-image.is-style-circle {
	flex-shrink: 0;
}

.krittaya-service-card {
	height: 100%;
}

.wp-block-columns.is-layout-flex > .wp-block-column > .krittaya-testimonial,
.wp-block-columns.is-layout-flex > .wp-block-column > .krittaya-service-card {
	height: 100%;
}

/* Keep long all-caps statements readable on small screens. */
.krittaya-statement {
	overflow-wrap: anywhere;
}

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

.krittaya-footer a {
	text-underline-offset: 0.2em;
}

.krittaya-footer .wp-block-navigation a {
	text-decoration: none;
}

.krittaya-footer .wp-block-navigation a:hover,
.krittaya-footer .wp-block-navigation a:focus-visible {
	text-decoration: underline;
}

/* ---------- Posts ---------- */

.wp-block-post-featured-image img {
	border-radius: var(--wp--custom--radius--medium);
}

.krittaya-post-card {
	height: 100%;
}

/* ---------- Forms (Contact Form 7 / WPForms Lite) ---------- */

.krittaya-form :is(input[type="text"], input[type="email"], input[type="tel"], textarea, select),
.wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], textarea, select) {
	width: 100%;
	box-sizing: border-box;
	padding: 0.8rem 1rem;
	border: 2px solid var(--wp--preset--color--tint-strong);
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
}

.krittaya-form :is(input, textarea, select):focus,
.wpcf7 :is(input, textarea, select):focus {
	border-color: var(--wp--preset--color--primary);
}

.wpcf7 label {
	display: block;
	font-weight: 700;
}

.wpcf7 .wpcf7-list-item {
	display: block;
	margin: 0.35rem 0;
	font-weight: 400;
}

.wpcf7 input[type="submit"] {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	padding: 0.85rem 2rem;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	cursor: pointer;
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 input[type="submit"]:focus-visible {
	background: var(--wp--preset--color--contrast);
}

.wpcf7 .wpcf7-not-valid-tip {
	color: var(--wp--preset--color--primary-dark);
	font-weight: 700;
}

/* ---------- Small screens ---------- */

@media (max-width: 781px) {
	.krittaya-reverse-on-mobile {
		flex-direction: column-reverse;
	}
}

/* ---------- Utilities ---------- */

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

/* Links inside coloured bands inherit the band's text colour. */
.has-primary-background-color a:where(:not(.wp-element-button)),
.has-contrast-background-color a:where(:not(.wp-element-button)) {
	color: inherit;
}

.krittaya-testimonial__person {
	justify-content: flex-start;
	align-items: center;
}

.krittaya-testimonial__person > p {
	margin: 0;
}

/* Breathing room under page content, unless the page already ends with a full-width band. */
.wp-block-post-content:not(:has(> .alignfull:last-child)) {
	padding-bottom: var(--wp--preset--spacing--70);
}

/* Reserve space for the logo SVGs before they load (avoids layout shift). */
.wp-block-image img[src$="logo-mark-red.svg"],
.wp-block-image img[src$="logo-mark-navy.svg"] {
	aspect-ratio: 96.8 / 74.3;
	height: auto;
}

/* ---------- Mobile menu overlay ---------- */

.krittaya-header .wp-block-navigation__responsive-container.is-menu-open {
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-justify: flex-start;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--base);
}

.krittaya-header .is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: flex-start;
	padding-top: var(--wp--preset--spacing--60);
}

.krittaya-header .wp-block-navigation .is-menu-open .wp-block-navigation__container {
	align-items: flex-start !important;
	gap: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--large);
}

.krittaya-header .wp-block-navigation .is-menu-open .wp-block-navigation-item {
	align-items: flex-start !important;
}

.krittaya-header .is-menu-open .wp-block-navigation__submenu-container {
	box-shadow: none;
	padding: var(--wp--preset--spacing--10) 0 0 var(--wp--preset--spacing--30) !important;
	gap: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--medium);
}

.krittaya-header .is-menu-open .wp-block-navigation__submenu-container a {
	padding: 0;
}

.krittaya-header .is-menu-open .is-style-nav-button {
	margin-top: var(--wp--preset--spacing--30);
}

.krittaya-header .wp-block-navigation:not(.is-menu-open) .wp-block-navigation__submenu-container {
	min-width: 15rem;
}
