/**
 * WCAG 2.2 Level AA — Accessibility Stylesheet
 * -------------------------------------------------------
 * Focus indicators, skip links, target sizes, reflow,
 * screen-reader utilities, and high-contrast fixes.
 * -------------------------------------------------------
 */

/* ============================================================
   1. Skip-to-content link (WCAG 2.4.1)
   ============================================================ */
.gdlr-skip-to-content {
	position: absolute;
	left: -9999px;
	top: 5px;
	z-index: 999999;
	padding: 12px 24px;
	background: #000;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	border-radius: 0 0 4px 0;
	transition: left 0.15s ease;
}
.gdlr-skip-to-content:focus {
	left: 5px;
	outline: 3px solid #ffcc00;
	outline-offset: 2px;
}

/* ============================================================
   2. Screen reader only (WCAG 1.3.1)
   ============================================================ */
.screen-reader-text,
.sr-only {
	clip: rect(1px, 1px, 1px, 1px) !important;
	clip-path: inset(50%) !important;
	position: absolute !important;
	height: 1px !important;
	width: 1px !important;
	overflow: hidden !important;
	white-space: nowrap !important;
	border: 0 !important;
	padding: 0 !important;
	margin: -1px !important;
	color: #000000 !important;
	background-color: #ffffff !important;
}
.screen-reader-text:focus,
.sr-only:focus {
	clip: auto !important;
	clip-path: none !important;
	position: static !important;
	height: auto !important;
	width: auto !important;
	overflow: visible !important;
	white-space: normal !important;
	margin: 0 !important;
}

/* ============================================================
   3. Visible focus indicators (WCAG 2.4.7, 2.4.11, 2.4.12)
   ============================================================ */
*:focus-visible {
	outline: 3px solid #1a73e8 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(26, 115, 232, 0.3) !important;
}

/* Fallback for older browsers */
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus,
[tabindex]:focus {
	outline: 3px solid #1a73e8;
	outline-offset: 2px;
}

/* Remove default dotted outlines that are hard to see */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible) {
	outline: none;
	box-shadow: none;
}

/* ============================================================
   4. Minimum target size (WCAG 2.5.8 — 24x24 min, 44x44 ideal)
   ============================================================ */
.gdlr-navigation a,
.gdlr-responsive-navigation a,
.sf-menu a,
.dl-menu a,
.gdlr-pagination a,
.gdlr-pagination span,
.tab-title,
.accordion-title,
button,
input[type="submit"],
.gdlr-button,
.social-icon a {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

/* Ensure touch targets have adequate spacing */
.sf-menu > li > a {
	padding-top: 12px;
	padding-bottom: 12px;
}

/* ============================================================
   5. Scroll padding for sticky/fixed header (WCAG 2.4.11)
   ============================================================ */
html {
	scroll-padding-top: 80px;
}

/* ============================================================
   6. Reflow support at 320px (WCAG 1.4.10)
   ============================================================ */
img,
video,
iframe,
object,
embed {
	max-width: 100%;
	height: auto;
}

/* ============================================================
   7. Text spacing / resize support (WCAG 1.4.4, 1.4.12)
   ============================================================ */
body {
	word-wrap: break-word;
	overflow-wrap: break-word;
}

/* ============================================================
   8. Link disambiguation — links with headings (WCAG 1.3.1)
   ============================================================ */
/* Headings that contain links get a subtle indicator */
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Non-link headings are visually distinct */
h1, h2, h3, h4, h5, h6 {
	text-decoration: none;
}

/* ============================================================
   9. Non-color indicators (WCAG 1.4.1)
   ============================================================ */
/* Required fields marker */
.gdlr-comments-area input[aria-required="true"],
.gdlr-comments-area textarea[aria-required="true"],
form input[aria-required="true"],
form textarea[aria-required="true"] {
	border-left: 3px solid #c62828;
}

/* Error states */
.wpcf7-not-valid {
	border-color: #c62828 !important;
	border-left: 3px solid #c62828 !important;
}

/* ============================================================
   10. Carousel controls (WCAG 2.2.1, 2.2.2)
   ============================================================ */
.gdlr-carousel-pause-btn {
	position: absolute;
	bottom: 10px;
	right: 10px;
	z-index: 100;
	padding: 8px 12px;
	background: rgba(0, 0, 0, 0.7);
	color: #fff;
	border: 2px solid #fff;
	border-radius: 4px;
	cursor: pointer;
	font-size: 14px;
	min-height: 44px;
	min-width: 44px;
}
.gdlr-carousel-pause-btn:hover,
.gdlr-carousel-pause-btn:focus {
	background: rgba(0, 0, 0, 0.9);
}

/* ============================================================
   11. Chat widget accessibility (WCAG 4.1.2)
   ============================================================ */
/* Ensure chat iframe/widget wrappers are properly labelled */
iframe[src*="chat"],
iframe[src*="tawk"],
iframe[src*="livechat"],
iframe[src*="zendesk"],
iframe[src*="crisp"],
iframe[src*="intercom"] {
	border: none;
}

/* ============================================================
   12. Table accessibility (WCAG 1.3.1)
   ============================================================ */
table {
	border-collapse: collapse;
}
table th {
	text-align: left;
	font-weight: 700;
}
table th,
table td {
	padding: 8px 12px;
	border: 1px solid #ccc;
}

/* ============================================================
   13. Accessibility statement styling
   ============================================================ */
.gdlr-accessibility-statement {
	max-width: 800px;
	padding: 30px;
	line-height: 1.8;
}
.gdlr-accessibility-statement h2 {
	margin-bottom: 15px;
}
.gdlr-accessibility-statement h3 {
	margin-top: 25px;
	margin-bottom: 10px;
}

/* ============================================================
   14. Reduced motion preference (WCAG 2.3.3)
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ============================================================
   15. Copyright link contrast fix (WCAG 1.4.3)
   -------------------------------------------------------
   Background: ~#262626 (dark)
   Plain text: #d1d1d1 on #262626 = 10.5:1 (PASS AA)
   Links:      #ff9a8a on #262626 = 5.0:1 (PASS AA)
   ============================================================ */
.copyright-wrapper {
	color: #d1d1d1 !important;
}
.copyright-wrapper .copyright-left,
.copyright-wrapper .copyright-right {
	color: #d1d1d1 !important;
}
.copyright-wrapper a {
	color: #ff9a8a !important;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.copyright-wrapper a:hover,
.copyright-wrapper a:focus {
	color: #ffbfb3 !important;
	text-decoration: underline;
}

/* ============================================================
   16. Footer link contrast (WCAG 1.4.3)
   -------------------------------------------------------
   Ensure all links within the dark footer area have
   sufficient contrast ratios against dark backgrounds.
   ============================================================ */
.footer-wrapper a {
	text-decoration: underline;
	text-underline-offset: 2px;
}
.footer-wrapper a:hover,
.footer-wrapper a:focus {
	text-decoration: underline;
}

/* ============================================================
   17. Social wrapper nav element reset (WCAG 1.3.1)
   -------------------------------------------------------
   The top-social-wrapper is now a <nav> element. Reset
   display to match the original div styling.
   ============================================================ */
nav.top-social-wrapper {
	display: block;
}

/* ============================================================
   18. Links within dark-background sections (WCAG 1.4.1)
   -------------------------------------------------------
   Add underlines so links are distinguishable from
   surrounding text without relying on color alone.
   ============================================================ */
.gdlr-skin-dark-skin a,
.gdlr-skin-dark-service a {
	text-decoration: underline;
	text-underline-offset: 2px;
}
.gdlr-skin-dark-skin a:hover,
.gdlr-skin-dark-skin a:focus,
.gdlr-skin-dark-service a:hover,
.gdlr-skin-dark-service a:focus {
	text-decoration: underline;
}

/* Navigation links should NOT be underlined (menus are visually distinct) */
.gdlr-navigation a,
.gdlr-responsive-navigation a,
.sf-menu a,
.dl-menu a {
	text-decoration: none;
}

/* Hide decorative menu separator from screen readers (WCAG 1.3.1)
   -------------------------------------------------------
   The theme uses content:"ll" (two lowercase L characters) as a
   visual pipe-separator before each menu item. NVDA reads this
   as "LL" before every link. Override with CSS alt-text so it
   remains visually identical but is silent to assistive tech. */
.gdlr-navigation-wrapper .gdlr-main-menu > li > a::before,
.gdlr-navigation-wrapper .gdlr-main-menu > li > a:before {
	content: "ll" / "" !important;  /* CSS Generated Content alt text: visually "ll", SR reads "" */
	speak: never !important;
	-webkit-alt: "" !important;
	aria-hidden: true;
}

/* ============================================================
   19. Gold/accent color contrast fix (WCAG 1.4.3)
   -------------------------------------------------------
   On light backgrounds (#fff):
     #7a6b28 on #fff = 5.18:1 (PASS AA normal text)
   On dark backgrounds (#1f2023):
     #e8cc7a on #1f2023 = 8.7:1 (PASS AA & AAA)
   ============================================================ */
.gdlr-item-title,
.gdlr-skin-title,
h3.gdlr-item-title,
h1.gdlr-item-title,
.stunning-item-title,
.gdlr-page-title,
.gdlr-page-caption,
.gdlr-skin-link-color {
	color: #7a6b28 !important;
}
/* On dark backgrounds, use a brighter shade that still passes AA */
.gdlr-skin-dark-skin .gdlr-skin-title,
.gdlr-skin-dark-skin .gdlr-skin-link-color,
.gdlr-skin-dark-skin .gdlr-item-title,
.gdlr-skin-dark-service .gdlr-skin-title,
.gdlr-color-wrapper .gdlr-item-title,
.gdlr-color-wrapper .gdlr-skin-title,
.gdlr-color-wrapper .stunning-item-title,
.gdlr-full-size-wrapper .gdlr-item-title,
.gdlr-full-size-wrapper .gdlr-skin-title {
	color: #e8cc7a !important;
}

/* ============================================================
   20. Portfolio overlay accessibility (WCAG 4.1.2)
   ============================================================ */
.portfolio-overlay-wrapper {
	position: relative;
}
.portfolio-overlay,
.portfolio-icon {
	/* Ensure overlay is decorative */
}

/* ============================================================
   21. Enhanced form validation indicators (WCAG 3.3.1, 1.4.1)
   ============================================================ */
.wpcf7-not-valid-tip {
	color: #c62828;
	font-weight: 700;
	padding: 4px 0;
}
.wpcf7-not-valid-tip::before {
	content: "⚠ ";
}
.wpcf7-response-output.wpcf7-validation-errors {
	border-color: #c62828 !important;
	color: #c62828;
	font-weight: 700;
}
.wpcf7-response-output.wpcf7-mail-sent-ok {
	border-color: #2e7d32 !important;
	color: #2e7d32;
	font-weight: 700;
}

/* ============================================================
   22. Forced-colors / high-contrast mode support (WCAG 1.4.3)
   ============================================================ */
@media (forced-colors: active) {
	.gdlr-skip-to-content {
		background: Canvas;
		color: LinkText;
		border: 2px solid LinkText;
	}
	*:focus-visible {
		outline: 3px solid Highlight !important;
	}
	.wpcf7-not-valid {
		border: 2px solid Mark !important;
	}
}

/* ============================================================
   23. Footer link target size (WCAG 2.5.8)
   ============================================================ */
.footer-wrapper a,
.copyright-wrapper a {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

/* ============================================================
   24. Print styles — ensure content is readable without color
   ============================================================ */
@media print {
	a[href]::after {
		content: " (" attr(href) ")";
		font-size: 0.8em;
		color: #000;
	}
	.gdlr-skip-to-content,
	.gdlr-responsive-navigation,
	.gdlr-menu-search {
		display: none !important;
	}
}

/* ============================================================
   25. MasterSlider accessible controls (WCAG 2.1.1, 2.5.8)
   ============================================================ */
.master-slider-parent .ms-nav-prev,
.master-slider-parent .ms-nav-next {
	cursor: pointer;
}
.master-slider-parent .ms-nav-prev:focus-visible,
.master-slider-parent .ms-nav-next:focus-visible {
	outline: 3px solid #ffcc00 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(255, 204, 0, 0.4) !important;
}

.master-slider-parent .ms-bullet:focus-visible {
	outline: 3px solid #ffcc00 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(255, 204, 0, 0.4) !important;
}

/* MasterSlider pause button */
.gdlr-ms-pause-btn {
	position: absolute;
	bottom: 10px;
	right: 10px;
	z-index: 110;
}

/* Ensure MasterSlider links in slides are focusable */
.master-slider .ms-slide a:focus-visible {
	outline: 3px solid #ffcc00 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 4px rgba(255, 204, 0, 0.4) !important;
}

/* ============================================================
   26. Focusable section headings (WCAG 2.4.3)
   -------------------------------------------------------
   Content section headings receive tabindex="0" so they
   are reachable via Tab. Show a subtle focus ring without
   disrupting the visual design.
   ============================================================ */
h1[tabindex="0"]:focus-visible,
h2[tabindex="0"]:focus-visible,
h3[tabindex="0"]:focus-visible,
h4[tabindex="0"]:focus-visible,
.gdlr-widget-title[tabindex="0"]:focus-visible {
	outline: 2px solid #1a73e8;
	outline-offset: 4px;
	border-radius: 2px;
}

/* Remove focus ring on mouse click (keyboard-only focus styles) */
h1[tabindex="0"]:focus:not(:focus-visible),
h2[tabindex="0"]:focus:not(:focus-visible),
h3[tabindex="0"]:focus:not(:focus-visible),
h4[tabindex="0"]:focus:not(:focus-visible),
.gdlr-widget-title[tabindex="0"]:focus:not(:focus-visible) {
	outline: none;
	box-shadow: none;
}

/* ============================================================
   27. Copyright container focus (WCAG 2.1.1)
   ============================================================ */
.copyright-wrapper .copyright-left:focus-visible {
	outline: 2px solid #ffcc00;
	outline-offset: 4px;
}
.copyright-wrapper .copyright-left:focus:not(:focus-visible) {
	outline: none;
}

/* ============================================================
   28. Footer widget title focus (WCAG 2.4.6)
   ============================================================ */
.footer-wrapper .gdlr-widget-title:focus-visible {
	outline: 2px solid #ffcc00;
	outline-offset: 4px;
}
.footer-wrapper .gdlr-widget-title:focus:not(:focus-visible) {
	outline: none;
}

/* ============================================================
   29. Footer content text focus (WCAG 2.1.1)
   ============================================================ */
.footer-wrapper .contact-info li:focus-visible,
.footer-wrapper .textwidget p:focus-visible,
.footer-wrapper .textwidget:focus-visible {
	outline: 2px solid #ffcc00;
	outline-offset: 4px;
}
.footer-wrapper .contact-info li:focus:not(:focus-visible),
.footer-wrapper .textwidget p:focus:not(:focus-visible),
.footer-wrapper .textwidget:focus:not(:focus-visible) {
	outline: none;
}

/* ============================================================
   30. Banner content text focus (WCAG 2.1.1)
   ============================================================ */
.gdlr-left-service-content:focus-visible,
.gdlr-right-service-content:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.7);
	outline-offset: 6px;
	border-radius: 4px;
}
.gdlr-left-service-content:focus:not(:focus-visible),
.gdlr-right-service-content:focus:not(:focus-visible) {
	outline: none;
}

/* ============================================================
   31. Content paragraph focus — site-wide (WCAG 2.1.1)
   -------------------------------------------------------
   Paragraphs across all pages get tabindex="0" via JS.
   Show a very subtle focus indicator that doesn't disrupt
   the reading experience but confirms keyboard position.
   ============================================================ */
.content-wrapper p[tabindex="0"]:focus-visible,
.gdlr-content-item[tabindex="0"]:focus-visible,
.portfolio-excerpt[tabindex="0"]:focus-visible {
	outline: 2px solid #1a73e8;
	outline-offset: 3px;
	border-radius: 2px;
}
.content-wrapper p[tabindex="0"]:focus:not(:focus-visible),
.gdlr-content-item[tabindex="0"]:focus:not(:focus-visible),
.portfolio-excerpt[tabindex="0"]:focus:not(:focus-visible) {
	outline: none;
}

