/**
 * Global website CSS.
 * Add styles shared by several pages here.
 * Put component-specific styles in their own file (for example slider.css).
 */

:root {
	--rd-header-scrolled-bg: var(--rd-footer-background, #000000E5);
	--ac-primary: #2563eb;
	--ac-text: #172033;
	--ac-radius: 14px;
}

/* WordPress menu output compatibility. */
/* Restyle Astra's existing control without changing its position or visibility. */
body #ast-scroll-top,
body #ast-scroll-top:hover,
body #ast-scroll-top:focus {
	width: 50px;
	height: 50px;
	padding: 0;
	line-height: 50px;
	border: 0;
	border-radius: 50%;
	background: #F0F0F0 url('../rohtek/icons/top-arrow.svg') center / 18px 21px no-repeat;
	color: #665f5b;
	box-shadow: none;
}

body #ast-scroll-top .ast-icon,
body #ast-scroll-top > svg { display: none; }
body #ast-scroll-top::before,
body #ast-scroll-top::after { content: none; }

.rd-nav__menu {
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rd-nav__menu a {
	display: inline-flex;
	padding: 12px 16px;
	color: inherit;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
}

/* WordPress menus and the desktop/mobile fallback share an active state. */
.rd-nav__menu .current-menu-item > a,
.rd-nav__menu a[aria-current="page"],
.rd-nav__link[aria-current="page"] {
	color: #388af5;
	background-image: var(--rd-blue-text-gradient);
	background-repeat: no-repeat;
	background-size: 100% 2px;
	background-position: bottom;
	opacity: 1;
}

body:not(.home) .rd-header:not(.is-fixed) {
	position: relative;
	background: var(--rd-surface-ink, #101827);
}

body:not(.home) main {
	min-height: 55vh;
}

/* Header stays transparent over the hero, then docks after the hero is passed. */
.rd-header.is-fixed {
	position: fixed;
	top: 0;
	background: var(--rd-header-scrolled-bg);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	animation: rd-header-enter 220ms ease-out both;
}

body.admin-bar .rd-header.is-fixed {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar .rd-header.is-fixed {
		top: 46px;
	}
}

@keyframes rd-header-enter {
	from { transform: translateY(-100%); }
	to { transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
	.rd-header.is-fixed { animation: none; }
}

/* Global Contact Form 7 modal. */
body.rd-modal-open { overflow: hidden; }
.rd-contact-modal { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 20px; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 220ms ease, visibility 220ms ease; }
.rd-contact-modal.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.rd-contact-modal__backdrop { position: absolute; inset: 0; background: rgba(5, 12, 24, .78); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.rd-contact-modal .rd-contact-modal__panel { position: relative; z-index: 1; width: min(920px, calc(100vw - 40px)); max-width: 920px; max-height: min(90vh, 820px); overflow-y: auto; padding: 34px; border: 1px solid rgba(130, 241, 215, .45); border-radius: 24px; background: #fff; box-shadow: 0 28px 80px rgba(0, 0, 0, .34); transform: translateY(18px) scale(.98); transition: transform 220ms ease; }
.rd-contact-modal.is-open .rd-contact-modal__panel { transform: translateY(0) scale(1); }
.rd-contact-modal .rd-contact-modal__close { position: absolute; top: 16px; right: 16px; display: grid; place-items: center; width: 40px; height: 40px; min-width: 40px; padding: 0; border: 0; border-radius: 50%; background: #eef3f8; color: #101827; font-size: 28px; font-weight: 400; line-height: 1; cursor: pointer; }
.rd-contact-modal__header { max-width: 650px; padding-right: 50px; margin-bottom: 26px; }
.rd-contact-modal__eyebrow { display: inline-block; background-image: linear-gradient(224.32deg, #388af5 21.51%, #1b62dd 79.69%); -webkit-background-clip: text; background-clip: text; color: #1b62dd; -webkit-text-fill-color: transparent; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.rd-contact-modal__title { margin: 6px 0 8px; color: #101827; font-size: clamp(28px, 4vw, 42px); line-height: 1.15; }
.rd-contact-modal__intro { margin: 0; color: #526071; font-size: 15px; }
.rd-contact-modal__form, .rd-contact-modal__form .wpcf7 { width: 100%; }
.rd-contact-form { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-auto-flow: row; gap: 18px 20px; width: 100%; }
/* CF7 adds paragraph/line-break wrappers when auto-formatting is enabled.
   `display: contents` keeps the field labels as the actual grid items. */
.rd-contact-form > p { display: contents; margin: 0; }
.rd-contact-form br { display: none; }
.rd-contact-form__field { display: flex; flex-direction: column; gap: 7px; margin: 0; color: #172033; font-size: 13px; font-weight: 700; }
.rd-contact-form__field { grid-column: auto !important; min-width: 0; }
.rd-contact-form__field--full, .rd-contact-form__submit { grid-column: 1 / -1 !important; }
.rd-contact-form .wpcf7-form-control-wrap { display: block; }
.rd-contact-form input:not([type="submit"]), .rd-contact-form select, .rd-contact-form textarea { width: 100%; margin: 0; padding: 12px 14px; border: 1px solid #d7e0ea; border-radius: 10px; background: #f8fafc; color: #101827; font: 500 15px/1.4 'Manrope', sans-serif; outline: none; transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease; }
.rd-contact-form textarea { min-height: 110px; resize: vertical; }
.rd-contact-form input:focus, .rd-contact-form select:focus, .rd-contact-form textarea:focus { border-color: #2f80ed; background: #fff; box-shadow: 0 0 0 3px rgba(47, 128, 237, .14); }
.rd-contact-form .wpcf7-submit { min-width: 150px; padding: 12px 24px; border: 1px solid #2f80ed; border-radius: 40px; background: #2f80ed; color: #fff; font-size: 15px; font-weight: 700; cursor: pointer; }
.rd-contact-form .wpcf7-not-valid-tip { margin-top: 4px; font-size: 12px; }
.rd-contact-modal .wpcf7-response-output { margin: 16px 0 0; padding: 10px 12px; border-radius: 8px; font-size: 13px; }
.rd-contact-modal__success { padding: 46px 20px; text-align: center; }
.rd-contact-modal__success-icon { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 50%; background: #27c9a5; color: #07141d; font-size: 30px; font-weight: 800; }
.rd-contact-modal__success h3 { margin: 0 0 8px; color: #101827; font-size: 30px; }
.rd-contact-modal__success p { max-width: 500px; margin: 0 auto; color: #526071; }
@media (max-width: 700px) {
	.rd-contact-modal { padding: 10px; }
	.rd-contact-modal .rd-contact-modal__panel { width: calc(100vw - 20px); max-height: 94vh; padding: 26px 18px 22px; border-radius: 18px; }
	.rd-contact-modal__header { padding-right: 42px; }
	.rd-contact-form { grid-template-columns: minmax(0, 1fr) !important; gap: 14px; }
	.rd-contact-form__field, .rd-contact-form__field--full, .rd-contact-form__submit { grid-column: 1 / -1 !important; }
	.rd-contact-form .wpcf7-submit { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.rd-contact-modal, .rd-contact-modal__panel { transition: none; }
}
