/*
Theme Name: KHACHIKYAN’S GROUP
Theme URI: https://www.youtube.com/@KhachikyansGroup
Author: KHACHIKYAN’S GROUP
Description: Corporate block theme for KHACHIKYAN’S GROUP — commodities trading and business development. Navy-first brand system with editable block patterns for every page. Built for the WordPress Site Editor; no page builder required.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: khachikyans-group
Tags: block-patterns, full-site-editing, block-styles, wide-blocks, translation-ready, accessibility-ready, blog, one-column

Brand artwork (logo files in /assets/images/brand) is the property of KHACHIKYAN’S GROUP and is not covered by the GPL.
Inter font: SIL Open Font License 1.1 — see /assets/fonts/inter/OFL.txt.
*/

/* ------------------------------------------------------------------
   1. Foundations
------------------------------------------------------------------ */
:root {
	--kg-navy: var(--wp--preset--color--deep-navy, #0B2D5B);
	--kg-blue: var(--wp--preset--color--modern-blue, #2B6FC8);
	--kg-soft: var(--wp--preset--color--soft-blue, #E9F2FA);
	--kg-white: var(--wp--preset--color--white, #FFFFFF);
	--kg-line: rgba(11, 45, 91, 0.16);
	--kg-line-strong: rgba(11, 45, 91, 0.5);
	--kg-error: #9F1D20;
	--kg-ease: cubic-bezier(0.2, 0, 0, 1);
}

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

/* Large headings use Inter's Display optical size (Inter Display). */
h1, h2,
.has-display-font-size,
.has-xx-large-font-size,
.has-x-large-font-size {
	font-variation-settings: "opsz" 32;
}

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--kg-blue);
	outline-offset: 3px;
}

::selection {
	background: var(--kg-navy);
	color: var(--kg-white);
}

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

/* Navy fields: white type, white links, lighter rules. */
.has-deep-navy-background-color {
	--kg-line: rgba(255, 255, 255, 0.22);
	--kg-line-strong: rgba(255, 255, 255, 0.7);
}

.has-deep-navy-background-color :where(a:not(.wp-element-button)) {
	color: inherit;
}

.has-deep-navy-background-color :where(a:not(.wp-element-button)):hover {
	color: inherit;
	text-decoration-thickness: 2px;
}

.has-deep-navy-background-color :focus-visible {
	outline-color: var(--kg-white);
}

/* ------------------------------------------------------------------
   2. Block styles registered in functions.php
------------------------------------------------------------------ */

/* Label (small uppercase line above a heading) */
.is-style-kg-label {
	font-size: 0.75rem !important;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--kg-blue);
}

.has-deep-navy-background-color .is-style-kg-label,
.has-deep-navy-background-color.is-style-kg-label {
	color: var(--wp--preset--color--white-80);
}

.has-soft-blue-background-color .is-style-kg-label {
	color: var(--kg-navy);
}

/* Review flag for unverified content: search the site for "[" before launch */
.is-style-kg-placeholder {
	border: 1px dashed var(--kg-line-strong);
	background-color: var(--kg-white);
	padding: 1rem 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.55;
}

.has-deep-navy-background-color .is-style-kg-placeholder {
	background-color: transparent;
}

/* List with hairlines between items */
.is-style-kg-rule-list {
	list-style: none;
	padding-left: 0;
	border-top: 1px solid var(--kg-line);
}

.is-style-kg-rule-list > li {
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--kg-line);
	margin: 0;
}

/* Card */
.is-style-kg-card {
	border: 1px solid var(--kg-line);
	background-color: var(--kg-white);
	transition: border-color 0.25s var(--kg-ease);
	height: 100%;
}

.is-style-kg-card:hover {
	border-color: var(--kg-navy);
}

.has-deep-navy-background-color .is-style-kg-card {
	background-color: transparent;
}

.has-deep-navy-background-color .is-style-kg-card:hover {
	border-color: rgba(255, 255, 255, 0.7);
}

/* Navy field carrying the Open Arc (use once per page) */
.is-style-kg-arc {
	position: relative;
	overflow: hidden;
	background-image: url(assets/images/graphics/open-arc.svg);
	background-repeat: no-repeat;
	background-size: 1040px 1040px;
	background-position: right -450px top -200px;
}

@media (max-width: 1359px) {
	.is-style-kg-arc {
		background-position: right -560px top -200px;
	}
}

/* Buttons for navy fields */
.wp-block-button.is-style-kg-light .wp-block-button__link {
	background-color: var(--kg-white);
	border-color: var(--kg-white);
	color: var(--kg-navy);
}

.wp-block-button.is-style-kg-light .wp-block-button__link:hover {
	background-color: var(--kg-soft);
	border-color: var(--kg-soft);
	color: var(--kg-navy);
}

.wp-block-button.is-style-kg-outline-light .wp-block-button__link {
	background-color: transparent;
	border-color: rgba(255, 255, 255, 0.7);
	color: var(--kg-white);
	font-weight: 500;
}

.wp-block-button.is-style-kg-outline-light .wp-block-button__link:hover {
	background-color: rgba(255, 255, 255, 0.08);
	border-color: var(--kg-white);
	color: var(--kg-white);
}

.wp-block-button .wp-block-button__link {
	transition: background-color 0.2s var(--kg-ease), border-color 0.2s var(--kg-ease), color 0.2s var(--kg-ease);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--kg-navy);
	border-color: var(--kg-navy);
	color: var(--kg-white);
}

/* ------------------------------------------------------------------
   3. Shared components
------------------------------------------------------------------ */

/* Sections sit edge to edge: no white gaps between full-width areas. */
body .wp-site-blocks > *,
body .kg-flush > *,
body .wp-block-post-content > .alignfull,
.editor-styles-wrapper .is-root-container > .alignfull {
	margin-block-start: 0;
}

/* Comfortable line length for introductory paragraphs */
:root .kg-measure {
	max-width: 38rem;
}

/* Illustration panel in sector heroes */
.kg-sector-visual {
	border: 1px solid var(--kg-line);
}

/* Video grid is hidden from visitors until at least one video link is added */
body:not(.editor-styles-wrapper) .kg-video-grid:not(:has(iframe)) {
	display: none;
}

.kg-video-grid iframe {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
}

/* Underlined text link ("Explore Energy", "View all insights") */
.kg-more-link a {
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
	transition: color 0.2s var(--kg-ease);
}

.kg-more-link a:hover {
	color: var(--kg-blue);
}

.has-deep-navy-background-color .kg-more-link a:hover {
	color: var(--kg-white);
	border-bottom-width: 2px;
}

/* Hairline above a row */
.kg-rule-top {
	border-top: 1px solid var(--kg-line);
}

/* Market card illustration area */
.kg-card-media {
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
}

.kg-card-media .wp-block-image {
	width: 78%;
	margin: 0;
}

.kg-card-media .wp-block-image img {
	width: 100%;
	display: block;
}

.kg-card-body {
	flex: 1;
}

.kg-card-body > .kg-more-link:last-child {
	margin-top: auto;
	padding-top: 1rem;
}

/* Connection Axis — straight line, maximum three nodes */
.kg-axis {
	position: relative;
}

.kg-axis::before {
	content: "";
	position: absolute;
	left: 7px;
	right: 0;
	top: 6px;
	height: 2px;
	background-color: var(--kg-blue);
}

.kg-axis > .wp-block-column {
	position: relative;
	padding-top: 2.75rem;
	padding-right: 2rem;
}

.kg-axis > .wp-block-column::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background-color: currentColor;
}

.kg-step-number {
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	opacity: 0.85;
}

@media (max-width: 781px) {
	.kg-axis::before {
		left: 6px;
		right: auto;
		top: 7px;
		bottom: 7px;
		width: 2px;
		height: auto;
	}

	.kg-axis > .wp-block-column {
		padding-top: 0;
		padding-left: 2.5rem;
		padding-right: 0;
	}

	.kg-axis > .wp-block-column::before {
		top: 0.2rem;
	}
}

/* Insight cards */
.kg-post-card {
	height: 100%;
}

.kg-post-card__media {
	position: relative;
	flex-shrink: 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	margin-bottom: 0.5rem;
}

.kg-post-card__media .wp-block-post-terms {
	position: relative;
	font-size: 1.375rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.2;
}

.kg-post-card__media .wp-block-post-terms a {
	text-decoration: none;
}

.kg-post-card__media .wp-block-post-featured-image {
	position: absolute;
	inset: 0;
	margin: 0;
	height: 100%;
	z-index: 1;
}

.kg-post-card__media .wp-block-post-featured-image a,
.kg-post-card__media .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kg-post-card .wp-block-post-title a {
	text-decoration: none;
}

.kg-post-card .wp-block-post-title a:hover {
	color: var(--kg-blue);
}

.kg-card-meta,
.kg-card-meta a {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wp--preset--color--navy-70);
}

.kg-meta-row {
	color: var(--wp--preset--color--navy-70);
}

.has-deep-navy-background-color .kg-meta-row,
.has-deep-navy-background-color .kg-meta-row .wp-block-post-date,
.has-deep-navy-background-color .kg-meta-row .wp-block-post-author-name {
	color: var(--wp--preset--color--white-80);
}

/* Category filter on Market Insights */
.kg-term-nav .wp-block-categories-list,
ul.kg-term-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.kg-term-nav li {
	margin: 0;
}

.kg-term-nav a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 1rem;
	border: 1px solid var(--kg-line);
	border-radius: 2px;
	font-size: 0.9375rem;
	font-weight: 500;
	text-decoration: none;
	transition: border-color 0.2s var(--kg-ease);
}

.kg-term-nav a:hover {
	border-color: var(--kg-navy);
	color: inherit;
}

.kg-term-nav .current-cat > a {
	background-color: var(--kg-navy);
	border-color: var(--kg-navy);
	color: var(--kg-white);
}

/* Pagination */
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 0.75rem;
	text-decoration: none;
	font-weight: 500;
}

.wp-block-query-pagination .page-numbers.current {
	background-color: var(--kg-navy);
	color: var(--kg-white);
}

/* Long-form reading: articles and legal pages */
.kg-prose :where(p, li) {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.65;
}

.kg-prose h2 {
	font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem);
	line-height: 1.2;
	margin-top: 3rem;
}

.kg-prose h3 {
	font-size: 1.25rem;
	line-height: 1.3;
	margin-top: 2.25rem;
}

.kg-prose table {
	border-collapse: collapse;
	width: 100%;
}

.kg-prose th,
.kg-prose td {
	border-bottom: 1px solid var(--kg-line);
	padding: 0.75rem 1rem 0.75rem 0;
	text-align: left;
	vertical-align: top;
}

/* Tables: hairlines only */
.wp-block-table table {
	border-collapse: collapse;
}

.wp-block-table td,
.wp-block-table th {
	border: 0;
	border-bottom: 1px solid var(--kg-line);
	padding: 0.75rem 1rem 0.75rem 0;
	text-align: left;
	vertical-align: top;
}

.wp-block-table tr:first-child td,
.wp-block-table thead th {
	border-top: 1px solid var(--kg-line);
}

.wp-block-table thead {
	border-bottom: 0;
}

.kg-facts .wp-block-table td:first-child {
	font-weight: 500;
	width: 40%;
}

/* ------------------------------------------------------------------
   4. Header and navigation
------------------------------------------------------------------ */
.kg-header {
	position: relative;
	z-index: 50;
}

.kg-brand {
	flex-shrink: 0;
}

.kg-logo {
	margin: 0;
	line-height: 0;
}

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

/* Horizontal logo: 340 px visible width = brand digital minimum. */
.kg-logo--full {
	width: 408px;
	margin-left: -30px !important;
}

.kg-logo--full img {
	width: 408px;
}

.kg-logo--mark {
	width: 60px;
	display: none;
}

.kg-logo--mark img {
	width: 60px;
}

.kg-logo--stacked {
	width: 296px;
	display: none;
	margin-left: -28px !important;
}

.kg-logo--stacked img {
	width: 296px;
}

@media (max-width: 599px) {
	.kg-logo--full {
		display: none;
	}

	.kg-logo--mark {
		display: block;
	}

	/* Home page on phones: the stacked primary signature leads. */
	body.home .kg-logo--mark {
		display: none;
	}

	body.home .kg-logo--stacked {
		display: block;
	}

	body.home .kg-header .kg-header__row {
		align-items: flex-start !important;
	}
}

.kg-primary-nav .wp-block-navigation-item__content {
	white-space: nowrap;
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s var(--kg-ease);
}

.kg-primary-nav .wp-block-navigation-item__content:hover,
.kg-primary-nav .current-menu-item > .wp-block-navigation-item__content {
	color: inherit;
	border-bottom-color: rgba(255, 255, 255, 0.6);
}

.kg-primary-nav .kg-nav-cta > .wp-block-navigation-item__content {
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: 2px;
	padding: 0.7rem 1.25rem;
	transition: background-color 0.2s var(--kg-ease);
}

.kg-primary-nav .kg-nav-cta > .wp-block-navigation-item__content:hover {
	background-color: rgba(255, 255, 255, 0.08);
	border-color: var(--kg-white);
}

/* Menu button (tablet and phone) */
.kg-primary-nav .wp-block-navigation__responsive-container-open {
	width: 48px;
	height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: 2px;
	color: var(--kg-white);
}

/* Desktop dropdown */
.kg-primary-nav .wp-block-navigation__submenu-container {
	border: 1px solid rgba(255, 255, 255, 0.22) !important;
	min-width: 280px !important;
	padding: 0.5rem 0 !important;
}

.kg-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.65rem 1.25rem !important;
	border-bottom: 0;
}

.kg-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background-color: rgba(255, 255, 255, 0.08);
}

/* Full-screen overlay menu */
.kg-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-justify: flex-start;
	--navigation-layout-align: flex-start;
	padding: 1.25rem clamp(1.5rem, 5.6vw, 5rem) 2rem;
	text-align: left;
}

.kg-primary-nav .is-menu-open .wp-block-navigation-item {
	align-items: flex-start !important;
}

.kg-primary-nav .wp-block-navigation__responsive-container-close {
	top: 1.25rem;
	right: clamp(1.5rem, 5.6vw, 5rem);
	width: 48px;
	height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: 2px;
}

.kg-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 5rem !important;
	align-items: stretch !important;
}

.kg-primary-nav .is-menu-open .wp-block-navigation__container {
	gap: 0 !important;
	width: 100%;
	border-top: 1px solid rgba(255, 255, 255, 0.22);
	align-items: stretch !important;
}

.kg-primary-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	border-bottom: 1px solid rgba(255, 255, 255, 0.22);
	width: 100%;
}

.kg-primary-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	min-height: 60px;
	font-size: 1.375rem;
	font-weight: 600;
	border-bottom: 0;
	padding: 0;
}

.kg-primary-nav .is-menu-open .kg-nav-cta > .wp-block-navigation-item__content {
	border: 0;
	padding: 0;
}

.kg-primary-nav .is-menu-open .wp-block-navigation__submenu-container {
	border: 0 !important;
	border-left: 2px solid var(--kg-blue) !important;
	margin: 0 0 1rem 0 !important;
	padding: 0 0 0 1rem !important;
	gap: 0 !important;
}

.kg-primary-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 0 !important;
	font-size: 1rem;
	font-weight: 400;
	color: var(--wp--preset--color--white-80);
}

.kg-primary-nav .is-menu-open .wp-block-navigation-submenu__toggle,
.kg-primary-nav .is-menu-open .wp-block-navigation__submenu-icon {
	display: none;
}

/* Inline menu from 1240 px (the logo needs its 340 px minimum width) */
@media (min-width: 1240px) {
	.kg-primary-nav .wp-block-navigation__responsive-container-open.always-shown {
		display: none;
	}

	.kg-primary-nav .wp-block-navigation__responsive-container.hidden-by-default:not(.is-menu-open) {
		display: block;
		position: relative;
		width: 100%;
		z-index: auto;
		background-color: inherit;
	}

	.kg-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close {
		display: none;
	}
}

/* ------------------------------------------------------------------
   5. Footer
------------------------------------------------------------------ */
.kg-footer a {
	text-decoration: none;
}

.kg-footer a:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}

.kg-footer-logo {
	width: 296px;
	margin: -18px 0 0 -28px !important;
}

.kg-footer-logo img {
	width: 296px;
	display: block;
}

.kg-footer-links {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2.5rem 3rem;
	flex: 0 1 760px;
}

.kg-footer-links > * {
	margin: 0 !important;
}

@media (max-width: 781px) {
	.kg-footer-links {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		flex-basis: 100%;
	}
}

.kg-footer-list {
	list-style: none;
	padding: 0;
	margin: 1rem 0 0;
}

.kg-footer-list li {
	margin: 0 0 0.75rem;
}

.kg-inline-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.75rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

.kg-inline-links li {
	margin: 0;
}

.kg-footer .wp-block-social-links .wp-social-link a {
	padding: 0.5rem;
}

/* ------------------------------------------------------------------
   6. Media (YouTube)
------------------------------------------------------------------ */
.kg-video-panel {
	position: relative;
	aspect-ratio: 16 / 9;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: background-color 0.2s var(--kg-ease);
}

.kg-video-panel .wp-block-image {
	margin: 0;
}

.kg-video-panel .wp-block-image img {
	width: 76px;
}

.wp-block-embed.is-provider-youtube {
	margin: 0;
}

/* ------------------------------------------------------------------
   7. Forms (Contact Form 7)
------------------------------------------------------------------ */
.wpcf7 form {
	display: grid;
	gap: 1.25rem;
}

.wpcf7 form > p {
	margin: 0;
}

.kg-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
}

@media (max-width: 640px) {
	.kg-form-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.kg-form-grid p {
	margin: 0;
}

.wpcf7 label {
	display: block;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.4;
}

.wpcf7 .kg-optional {
	font-weight: 400;
	color: var(--wp--preset--color--navy-70);
}

.wpcf7 .wpcf7-form-control-wrap {
	display: block;
	margin-top: 0.5rem;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	min-height: 48px;
	padding: 0 0.875rem;
	border: 1px solid var(--kg-line-strong);
	border-radius: 2px;
	background-color: var(--kg-white);
	color: var(--kg-navy);
	font: inherit;
	font-size: 1rem;
	box-sizing: border-box;
}

.wpcf7 textarea {
	padding: 0.75rem 0.875rem;
	min-height: 140px;
	resize: vertical;
}

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	outline: 2px solid var(--kg-blue);
	outline-offset: 0;
	border-color: var(--kg-blue);
}

.wpcf7 .wpcf7-acceptance label {
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
	font-weight: 400;
}

.wpcf7 .wpcf7-acceptance input {
	width: 20px;
	height: 20px;
	margin: 0.1rem 0 0;
	accent-color: var(--kg-navy);
}

.wpcf7 .wpcf7-list-item {
	margin: 0;
}

.wpcf7 input[type="submit"] {
	justify-self: start;
	min-height: 52px;
	padding: 0 2rem;
	border: 1px solid var(--kg-navy);
	border-radius: 2px;
	background-color: var(--kg-navy);
	color: var(--kg-white);
	font: inherit;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s var(--kg-ease);
}

.wpcf7 input[type="submit"]:hover {
	background-color: var(--kg-blue);
	border-color: var(--kg-blue);
}

.wpcf7 input[type="submit"]:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.wpcf7 .wpcf7-not-valid {
	border-color: var(--kg-error);
}

.wpcf7 .wpcf7-not-valid-tip {
	color: var(--kg-error);
	font-size: 0.875rem;
	margin-top: 0.375rem;
}

.wpcf7 form .wpcf7-response-output {
	margin: 0;
	padding: 1rem 1.25rem;
	border: 1px solid var(--kg-navy);
	border-radius: 2px;
	font-size: 0.9375rem;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
	border-color: var(--kg-error);
	color: var(--kg-error);
}

.wpcf7 form.sent .wpcf7-response-output {
	background-color: var(--kg-soft);
}

.kg-form-panel {
	border: 1px solid var(--kg-line);
}

.kg-form-missing {
	border: 1px dashed var(--kg-line-strong);
	padding: 1.25rem;
	font-size: 0.9375rem;
}

/* ------------------------------------------------------------------
   8. Responsive adjustments
------------------------------------------------------------------ */
@media (max-width: 781px) {
	/* On narrow screens the text spans the full width, so the arc steps back. */
	.is-style-kg-arc {
		background-image: none;
	}

	.kg-stack-mobile-buttons .wp-block-button {
		width: 100%;
	}

	.kg-stack-mobile-buttons .wp-block-button__link {
		width: 100%;
		box-sizing: border-box;
		text-align: center;
	}
}

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