/*!
Theme Name: rxnwebsolution
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Custom WordPress theme for RXN Web Solutions - WordPress agencija za izradu web sajtova
Version: 1.0.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: rxnwebsolution
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

rxnwebsolution is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of 
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/  
  
/*--------------------------------------------------------------
# Brand tokens (global) 
  
Jedini izvor istine za brend boju. Definisano u style.css jer se on
ucitava na svakoj stranici, pre svih template-specificnih fajlova.

--rxn-brand-rgb je izvor: iz njega se izvode i puna boja i sve rgba()
varijante (senke, ivice, glow), pa se u pravilima uvek pise
rgba(var(--rxn-brand-rgb), alfa) umesto hardkodovane boje.

PAZNJA pri promeni boje po stranici: nije dovoljno pregaziti samo
--rxn-brand-rgb. Custom property se razresava na elementu na kom je
deklarisan i nasledjuje se vec izracunat, pa --rxn-brand i gradijenti
zadrzavaju vrednost koju su dobili ovde na :root. Override mora da
ponovi ceo izvedeni set (ukljucujuci aliase iz pocetna.css) — to radi
RXN_Tools_Brand::declarations() u rxn-tools pluginu.
--------------------------------------------------------------*/
:root {
	--rxn-brand-rgb: 241, 85, 35;
	--rxn-brand: rgb(var(--rxn-brand-rgb));
	--rxn-brand-2: #ff6b35;
	--rxn-brand-3: #ff8c42;
	/* Text drawn ON the brand colour (filled buttons). White works for the
	   default orange and for dark tool colours; a light tool colour — gold,
	   mint — needs dark text instead, so this is computed per tool from the
	   colour's luminance in RXN_Tools_Brand. */
	--rxn-on-brand: #ffffff;
	--rxn-gradient-text: linear-gradient(135deg, var(--rxn-brand), var(--rxn-brand-3));
	--rxn-gradient-cta: linear-gradient(135deg, var(--rxn-brand), var(--rxn-brand-2));
}

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
---------------------------------------------------------------- 
# Generic 
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links 
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/

/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
	color: #404040;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
}

p {
	margin-bottom: 1.5em;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

blockquote {
	margin: 0 1.5em;
}

address {
	margin: 0 0 1.5em;
}

pre {
	background: #eee;
	font-family: "Courier 10 Pitch", courier, monospace;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}

code,
kbd,
tt,
var {
	font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}

mark,
ins {
	background: #fff9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */
body {
	background: #fff;
}

hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

ul,
ol {
	margin: 0 0 1.5em 3em;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

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

figure {
	margin: 1em 0;
}

table {
	margin: 0 0 1.5em;
	width: 100%;
}

/* Links
--------------------------------------------- */
a {
	color: #4169e1;
}

a:visited {
	color: #800080;
}

a:hover,
a:focus,
a:active {
	color: #191970;
}

a:focus {
	outline: thin dotted;
}

a:hover,
a:active {
	outline: 0;
}

/* Forms
--------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: 1px solid;
	border-color: #ccc #ccc #bbb;
	border-radius: 3px;
	background: #e6e6e6;
	color: rgba(0, 0, 0, 0.8);
	line-height: 1;
	padding: 0.6em 1em 0.4em;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	border-color: #ccc #bbb #aaa;
}

button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
	border-color: #aaa #bbb #bbb;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
	color: #666;
	border: 1px solid #ccc;
	border-radius: 3px;
	padding: 3px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	color: #111;
}

select {
	border: 1px solid #ccc;
}

textarea {
	width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/

/* Navigation
--------------------------------------------- */
.main-navigation {
	display: block;
	width: 100%;
}

.main-navigation ul {
	display: none;
	list-style: none;
	margin: 0;
	padding-left: 0;
}

.main-navigation ul ul {
	box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
	float: left;
	position: absolute;
	top: 100%;
	left: -999em;
	z-index: 99999;
}

.main-navigation ul ul ul {
	left: -999em;
	top: 0;
}

.main-navigation ul ul li:hover > ul,
.main-navigation ul ul li.focus > ul {
	display: block;
	left: auto;
}

.main-navigation ul ul a {
	width: 200px;
}

.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
	left: auto;
}

.main-navigation li {
	position: relative;
}

.main-navigation a {
	display: block;
	text-decoration: none;
}

/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
	display: block;
}

@media screen and (min-width: 37.5em) {

	.menu-toggle {
		display: none;
	}

	.main-navigation ul {
		display: flex;
	}
}

.site-main .comment-navigation,
.site-main
.posts-navigation,
.site-main
.post-navigation {
	margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	text-align: end;
	flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
	display: block;
}

.post,
.page {
	margin: 0 0 1.5em;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 1.5em 0 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5em;
}

.widget select {
	max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

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

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

/* Text meant only for screen readers. */
.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;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}
.hero-content h1 span {
    display: block;
}
/*--------------------------------------------------------------
# RXN Global - Navigation
--------------------------------------------------------------*/
.site-nav {
	position: fixed;
	padding: 5px 20px 5px 20px !important;
	width: calc(100% - 48px);
    max-width: 1200px;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	z-index: 1000;
	background: transparent;
	border: 1px solid transparent;
	border-radius: 0;
	transition: top 0.3s ease, width 0.3s ease, background 0.3s ease, box-shadow 0.3s ease, border-radius 0.3s ease, border-color 0.3s ease;
}
.nav-logo, .nav-logo a {
    display: flex;
}
.site-nav.scrolled {
	top: 12px;
	width: calc(100% - 48px); 
	max-width: 1200px;
	background: rgba(10, 10, 15, 0.6);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 16px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

.nav-container {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 2rem;
	height: 70px;
}

.nav-logo img,
.nav-logo .custom-logo {
	max-width: 110px;
	height: auto;
}

/* Inline SVG logo (see rxn_the_logo()). fill="currentColor" inside the file
   means the logo simply follows this `color`, which is bound to the brand
   token — so it recolors along with the rest of a tool page. */
.nav-logo-link {
	display: flex;
	align-items: center;
	color: var(--rxn-brand) !important;
	transition: color 0.3s ease;
}

.nav-logo svg {
	width: 110px;
	height: auto;
	display: block;
}

.nav-menu {
	display: flex;
	align-items: center;
	gap: 2rem;
	list-style: none;
}

.nav-menu a {
	font-family: 'Outfit', sans-serif;
	font-size: 0.9rem;
	font-weight: 500;
	color: #8888a0;
	text-decoration: none;
	transition: color 0.3s ease;
	position: relative;
}

.nav-menu a:hover,
.nav-menu a.active {
	color: var(--rxn-brand);
}

.nav-menu a.active::after {
	content: '';
	position: absolute;
	bottom: -4px;
	left: 0;
	width: 100%;
	height: 2px;
	background: var(--rxn-brand);
	border-radius: 1px;
}

/* A parent whose child page is open: coloured, but without the underline,
   so the underline always marks the page you are actually on. */
.nav-menu a.has-active-child {
	color: var(--rxn-brand);
}

/*--------------------------------------------------------------
# Navigation submenus

Opened on hover and on :focus-within, so keyboard users reach the child
links by tabbing — no JS and no ARIA bookkeeping needed. The panel is kept
in the DOM and only faded/moved, so the pointer never crosses a gap on its
way down from the parent link.
--------------------------------------------------------------*/
.nav-item {
	position: relative;
}

.nav-item--has-sub > a {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.nav-caret {
	width: 13px;
	height: 13px;
	flex-shrink: 0;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.5;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform 0.3s ease;
}

.nav-sub {
	position: absolute;
	top: 100%;
	left: -1rem;
	min-width: 190px;
	/* Bridges the gap between the parent link and the panel so the submenu
	   does not close while the pointer travels across it. */
	padding-top: 18px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s linear 0.25s;
	z-index: 1000;
}

.nav-sub::before {
	content: '';
	position: absolute;
	top: 0px;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(13, 13, 20, 0.92);
	-webkit-backdrop-filter: blur(20px) saturate(140%);
	backdrop-filter: blur(20px) saturate(140%);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 12px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
}

.nav-item--has-sub:hover .nav-sub,
.nav-item--has-sub:focus-within .nav-sub {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition: opacity 0.25s ease, transform 0.25s ease;
}

.nav-item--has-sub:hover .nav-caret,
.nav-item--has-sub:focus-within .nav-caret {
	transform: rotate(180deg);
}

.nav-sub a {
	position: relative;
	display: block;
	padding: 0.7rem 1rem;
	white-space: nowrap;
}

.nav-sub a + a {
	border-top: 1px solid rgba(255, 255, 255, 0.06);
}

/* The sliding underline would sit under the panel edge here. */
.nav-sub a.active::after {
	display: none;
}

.nav-sub a.active {
	color: var(--rxn-brand);
}

.nav-toggle {
	display: none;
	flex-direction: column;
	gap: 5px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 12px;
	min-width: 48px;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	z-index: 1001;
}

.nav-toggle span {
	display: block;
	width: 24px;
	height: 2px;
	background: #e8e8f0;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.nav-toggle span {
	transform-origin: center;
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease;
}

.nav-toggle.is-active span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.nav-toggle.is-active span:nth-child(2) {
	opacity: 0;
	transform: translateX(-12px);
}

.nav-toggle.is-active span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* ===== Mobile slide-in menu panel ===== */
.nav-backdrop {
	display: none;
}

@media (max-width: 1023px) {
	.nav-toggle {
		display: flex;
	}

	/* Dimmed, blurred backdrop behind the panel */
	.nav-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(6, 6, 11, 0.55);
		-webkit-backdrop-filter: blur(6px);
		backdrop-filter: blur(6px);
		opacity: 0;
		visibility: hidden;
		z-index: 998;
		transition: opacity 0.45s ease, visibility 0s linear 0.45s;
	}

	.nav-backdrop.is-visible {
		opacity: 1;
		visibility: visible;
		transition: opacity 0.45s ease;
	}

	/* The panel itself slides in from the right */
	.nav-menu {
		display: flex;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		height: calc(100vh - 24px);
		height: calc(100dvh - 24px);
		width: 100%;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		gap: 0.25rem;
		padding: 3rem 1.25rem .5rem !important;
		background: rgba(13, 13, 20, 0.9);
		-webkit-backdrop-filter: blur(28px) saturate(140%);
		backdrop-filter: blur(28px) saturate(140%);
		box-shadow: -24px 0 60px rgba(0, 0, 0, 0.5);
		border-radius: 16px !important;
		z-index: 999;
		transform: translateX(115%);
		transition: transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
		overscroll-behavior: contain;
	}

	/* Soft orange glow accent at the top of the panel */
	.nav-menu::before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		height: 160px;
		background: radial-gradient(120% 100% at 80% 0%, rgba(var(--rxn-brand-rgb), 0.18), transparent 70%);
		pointer-events: none;
	}

	.site-nav.scrolled .nav-menu {
		top: 0;
		border-radius: 0;
	}

	.nav-menu.is-open {
		transform: translateX(0);
	}

	.nav-menu a {
		font-size: 1.25rem;
		font-weight: 500;
		color: #e8e8f0;
		padding: 0.85rem 0.25rem;
		min-height: 48px;
		display: flex;
		align-items: center;
		border-bottom: 1px solid rgba(255, 255, 255, 0.05);
		/* Each link starts shifted + faded, then animates in (staggered) */
		opacity: 0;
		transform: translateX(28px);
		transition: opacity 0.4s ease, transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), color 0.25s ease;
	}

	.nav-menu a:last-child {
		border-bottom: none;
	}

	.nav-menu.is-open a {
		opacity: 1;
		transform: translateX(0);
	}

	/* Submenus are not dropdowns in the panel — the child links simply sit
	   indented under their parent, so nothing has to be tapped open. */
	.nav-item {
		display: flex;
		flex-direction: column;
	}

	.nav-sub {
		position: static;
		min-width: 0;
		padding-top: 0;
		opacity: 1;
		visibility: visible;
		transform: none;
		transition: none;
	}

	.nav-sub::before { 
		display: none;
	}

	.nav-sub a {
		padding: 0.85rem 0.25rem 0.85rem 1.5rem;
		font-size: 1.05rem;
		color: #b9b9c8;
		white-space: normal;
		border-bottom: 1px solid rgba(255, 255, 255, 0.05);
	}

	/* Small vertical tick marking the link as subordinate. */
	.nav-sub a::before {
		content: '';
		position: absolute;
		left: 0.35rem;
		top: 50%;
		transform: translateY(-50%);
		width: 2px;
		height: 18px;
		background: rgba(var(--rxn-brand-rgb), 0.45);
		border-radius: 1px;
	}

	.nav-sub a + a {
		border-top: none;
	}

	.nav-caret {
		display: none;
	}

	/* Stagger cascades over top-level rows — a parent and its children move
	   together, which is why the wrapper is counted rather than each link. */
	.nav-menu.is-open > a:nth-child(1),
	.nav-menu.is-open > .nav-item:nth-child(1) a { transition-delay: 0.12s; }
	.nav-menu.is-open > a:nth-child(2),
	.nav-menu.is-open > .nav-item:nth-child(2) a { transition-delay: 0.17s; }
	.nav-menu.is-open > a:nth-child(3),
	.nav-menu.is-open > .nav-item:nth-child(3) a { transition-delay: 0.22s; }
	.nav-menu.is-open > a:nth-child(4),
	.nav-menu.is-open > .nav-item:nth-child(4) a { transition-delay: 0.27s; }
	.nav-menu.is-open > a:nth-child(5),
	.nav-menu.is-open > .nav-item:nth-child(5) a { transition-delay: 0.32s; }
	.nav-menu.is-open > a:nth-child(6),
	.nav-menu.is-open > .nav-item:nth-child(6) a { transition-delay: 0.37s; }
	.nav-menu.is-open > a:nth-child(7),
	.nav-menu.is-open > .nav-item:nth-child(7) a { transition-delay: 0.42s; }
	.nav-menu.is-open > a:nth-child(8),
	.nav-menu.is-open > .nav-item:nth-child(8) a { transition-delay: 0.47s; }

	.nav-menu a.active::after {
		display: none;
	}

	.nav-menu a.active {
		color: var(--rxn-brand);
	}

	/* Lock background scroll while the menu is open */
	body.nav-open {
		overflow: hidden;
	}
}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
	.nav-menu,
	.nav-menu a,
	.nav-backdrop,
	.nav-toggle span {
		transition-duration: 0.01ms !important;
		transition-delay: 0s !important;
	}
}

/*--------------------------------------------------------------
# RXN Global - Footer
--------------------------------------------------------------*/
.site-footer-custom {
	background: #0a0a0f;
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	padding: 60px 0 0;
	margin-top: 40px;
}

.site-footer-custom .section-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 2rem;
}

.footer-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	padding-bottom: 20px !important;
}

.footer-brand img,
.footer-brand .custom-logo {
	max-width: 100px;
	height: auto;
	margin-bottom: 1rem;
}

.footer-logo-link {
	display: inline-flex;
	color: var(--rxn-brand) !important;
	margin-bottom: 1rem !important;
	transition: color 0.3s ease;
}

.footer-brand svg {
	width: 100px;
	height: auto;
	display: block;
}

.footer-brand p {
	color: #8888a0;
	font-family: 'Outfit', sans-serif;
	font-size: 0.9rem;
	line-height: 1.7;
}

.footer-links h3,
.footer-contact h3 {
	font-family: 'Orbitron', sans-serif;
	font-size: 0.85rem;
	font-weight: 600;
	color: #ffffff;
	margin-bottom: 1rem;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.footer-links a {
	display: block;
	color: #8888a0;
	font-family: 'Outfit', sans-serif;
	font-size: 0.9rem;
	padding: 0.3rem 0;
	text-decoration: none;
	transition: color 0.3s ease;
}

.footer-links a:hover {
	color: var(--rxn-brand);
}

.footer-contact a {
	display: block;
	color: #8888a0;
	font-family: 'Outfit', sans-serif;
	font-size: 0.9rem;
	text-decoration: none;
	padding: 0.3rem 0;
	transition: color 0.3s ease;
}
 
.footer-contact a:hover {
	color: var(--rxn-brand);
}

.footer-social {
	display: flex;
	gap: 0.85rem;
	margin-top: 0.4rem !important;
}

.footer-social-link {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0 !important;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 50%;
	color: #8888a0;
	transition: color 0.3s ease, border-color 0.3s ease;
}

.footer-social-link svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Brand social icons (SVG image files) */
.footer-social-link img {
	width: 20px;
	height: 20px;
	object-fit: contain;
}

.footer-social-link:hover {
	color: var(--rxn-brand);
	border-color: var(--rxn-brand);
}

.footer-address {
	display: block;
	color: #8888a0;
	font-family: 'Outfit', sans-serif;
	font-size: 0.9rem;
	font-style: normal;
	line-height: 1.5;
	margin-top: 1.1rem !important;
	padding: 0.3rem 0;
}

.footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	padding: 1.5rem 0 !important;
	text-align: center;
	margin-top: 1.5rem !important;
}

.footer-bottom p {
	color: #8888a0;
	font-family: 'Outfit', sans-serif;
	font-size: 0.85rem;
}

/*--------------------------------------------------------------
# Footer legal links — [rxnlk_legal_links] shortcode

RXN Legal Kit renders <nav class="rxnlk-legal-links--inline"><ul><li><a>.
Its own stylesheet is enqueued from inside the shortcode, which runs during
wp_footer, so it prints AFTER this file and would win any tie. Everything
below is therefore scoped under .footer-bottom — (0,2,1) against the
plugin's (0,1,1) — which settles it on specificity instead of order.

Flex is applied whatever the layout attribute says. A footer bar always
wants the inline look, and this way switching layout="list" cannot leave
bullets stacked down the middle of the page.
--------------------------------------------------------------*/
.footer-bottom .rxnlk-legal-links {
	margin-bottom: 1.25rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.footer-bottom .rxnlk-legal-links ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem 1.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-bottom .rxnlk-legal-links__item {
	margin: 0;
	padding: 0;
}

.footer-bottom .rxnlk-legal-links a {
	color: #8888a0;
	font-family: 'Outfit', sans-serif;
	font-size: 0.85rem;
	text-decoration: none;
	transition: color 0.3s ease;
}

.footer-bottom .rxnlk-legal-links a:hover,
.footer-bottom .rxnlk-legal-links a:focus-visible {
	color: var(--rxn-brand);
}

/* Currently unused: the footer renders the shortcode above instead of the
   theme's own <nav>. Kept in case that markup is restored. */
.footer-legal-nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem 1.75rem;
	margin-bottom: 1.25rem !important;
	padding-bottom: 1.25rem !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.footer-legal-nav a {
	color: #8888a0;
	font-family: 'Outfit', sans-serif;
	font-size: 0.85rem;
	text-decoration: none;
	transition: color 0.3s ease;
}

.footer-legal-nav a:hover {
	color: var(--rxn-brand);
}

.footer-legal {
	margin-top: 0.35rem;
	font-size: 0.8rem;
	opacity: 0.85;
}

@media (max-width: 767px) {
	.footer-grid {
		text-align: center;
	}

	.footer-brand {
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.site-nav {
		padding: 5px 10px 5px 15px !important;
	}
	.footer-links,
	.footer-contact {
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.nav-container {
		height: auto;
	}
	.nav-logo img, .nav-logo .custom-logo {
		max-width: 90px;
	}

	.nav-logo svg {
		width: 90px;
	}
}

/* Four columns only once there is room for them. Between 768 and 1023 they
   pair up two by two instead of being squeezed into four narrow strips. */
@media (min-width: 768px) {
	.footer-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 2.5rem 3rem;
	}
}

@media (min-width: 1024px) {
	.footer-grid {
		grid-template-columns: 1.7fr 1fr 1fr 1.2fr;
	}
}

@media (min-width: 1024px) {
	.nav-toggle {
		display: none;
	}

	.nav-menu {
		display: flex;
	}
}

/*--------------------------------------------------------------
# RXN Global - Body defaults for dark theme pages
--------------------------------------------------------------*/
body {
	padding-top: 70px;
}
/* ==========================================================================
   Complianz Cookie Banner — RXN Web Solutions global style
   ========================================================================== */

/* ========== CONTAINER ========== */
.cmplz-cookiebanner {
    background: var(--bg-secondary) !important;
    border: 1px solid var(--border) !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.6) !important;
    font-family: 'Outfit', sans-serif !important;
    color: var(--text-primary) !important;
}

/* ========== LOGO ========== */
.cmplz-cookiebanner .cmplz-logo {
    opacity: 0.85;
    filter: brightness(1.1);
}

/* ========== TITLE ========== */
.cmplz-cookiebanner .cmplz-title {
    font-family: 'Bebas Neue', sans-serif !important;
    font-size: 1.4rem !important;
    font-weight: 400 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    color: var(--text-heading) !important;
}

/* ========== CLOSE ICON ========== */
.cmplz-cookiebanner .cmplz-close {
    color: var(--text-secondary) !important;
    transition: color 0.3s ease !important;
}

.cmplz-cookiebanner .cmplz-close:hover {
    color: var(--accent) !important;
}

/* ========== MESSAGE ========== */
.cmplz-cookiebanner .cmplz-message {
    font-family: 'Outfit', sans-serif !important;
    font-size: 0.9rem !important;
    line-height: 1.7 !important;
    color: var(--text-secondary) !important;
}

.cmplz-cookiebanner .cmplz-message a {
    color: var(--accent) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

.cmplz-cookiebanner .cmplz-message a:hover {
    color: var(--accent-light) !important;
}

/* ========== BUTTONS — BASE ========== */
.cmplz-buttons .cmplz-btn {
    font-family: 'Outfit', sans-serif !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    padding: 10px 22px !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease, color 0.3s ease !important;
}

/* Accept */
.cmplz-buttons .cmplz-btn.cmplz-accept {
    background: linear-gradient(135deg, var(--rxn-brand), var(--rxn-brand-2)) !important;
    color: #ffffff !important;
    border: none !important;
}

.cmplz-buttons .cmplz-btn.cmplz-accept:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 30px rgba(var(--rxn-brand-rgb), 0.3) !important;
}

/* Deny */
.cmplz-buttons .cmplz-btn.cmplz-deny {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    color: var(--text-primary) !important;
}

.cmplz-buttons .cmplz-btn.cmplz-deny:hover {
    border-color: var(--accent) !important;
    color: var(--accent) !important;
    transform: translateY(-2px) !important;
}

/* Save preferences */
.cmplz-buttons .cmplz-btn.cmplz-save-preferences {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    color: var(--text-primary) !important;
}

.cmplz-buttons .cmplz-btn.cmplz-save-preferences:hover {
    border-color: var(--accent) !important;
    color: var(--accent) !important;
    transform: translateY(-2px) !important;
}

/* View preferences */
.cmplz-buttons .cmplz-btn.cmplz-view-preferences {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    color: var(--text-secondary) !important;
    font-size: 0.8rem !important;
    padding: 8px 16px !important;
}

.cmplz-buttons .cmplz-btn.cmplz-view-preferences:hover {
    border-color: var(--border) !important;
    color: var(--text-primary) !important;
}

/* ========== DOCUMENT LINKS ========== */
.cmplz-links .cmplz-documents a {
    font-family: 'Outfit', sans-serif !important;
    font-size: 0.8rem !important;
    color: var(--text-secondary) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
    transition: color 0.3s ease !important;
}

.cmplz-links .cmplz-documents a:hover {
    color: var(--accent) !important;
}

/* ========== CATEGORIES ========== */
.cmplz-cookiebanner .cmplz-category {
    background: var(--bg-tertiary) !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    padding: 12px 16px !important;
}

.cmplz-cookiebanner .cmplz-category-title {
    font-family: 'Orbitron', sans-serif !important;
    font-size: 0.7rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    color: var(--text-heading) !important;
}

/* ========== MANAGE CONSENT TAB ========== */
#cmplz-manage-consent .cmplz-manage-consent {
    background: var(--bg-secondary) !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px 8px 0 0 !important;
    font-family: 'Orbitron', sans-serif !important;
    font-size: 0.65rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    color: var(--text-secondary) !important;
    transition: color 0.3s ease, border-color 0.3s ease !important;
}

#cmplz-manage-consent .cmplz-manage-consent:hover {
    color: var(--accent) !important;
    border-color: var(--border-glow) !important;
}

/* ========== SOFT COOKIE WALL ========== */
.cmplz-soft-cookiewall {
    background: var(--bg-primary) !important;
    border: 1px solid var(--border) !important;
    font-family: 'Outfit', sans-serif !important;
    color: var(--text-primary) !important;
}

/* ========== BLOCKED CONTENT PLACEHOLDER — Per category ========== */
.cmplz-blocked-content-container .cmplz-blocked-content-notice {
    background: var(--bg-tertiary) !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    font-family: 'Outfit', sans-serif !important;
    color: var(--text-secondary) !important;
    font-size: 0.9rem !important;
}

/* ========== BLOCKED CONTENT PLACEHOLDER — Per service ========== */
.cmplz-blocked-content-notice {
    background: var(--bg-tertiary) !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    font-family: 'Outfit', sans-serif !important;
    color: var(--text-secondary) !important;
}

button.cmplz-accept-service {
    background: linear-gradient(135deg, var(--rxn-brand), var(--rxn-brand-2)) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 8px !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    padding: 9px 20px !important;
    cursor: pointer !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

button.cmplz-accept-service:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 30px rgba(var(--rxn-brand-rgb), 0.3) !important;
}

/* ========== AMP NOTICE ========== */
#cmplz-consent-ui,
#cmplz-post-consent-ui {
    background: var(--bg-secondary) !important;
    border: 1px solid var(--border) !important;
    font-family: 'Outfit', sans-serif !important;
    color: var(--text-primary) !important;
}

#cmplz-consent-ui .cmplz-consent-message {
    font-size: 0.9rem !important;
    line-height: 1.7 !important;
    color: var(--text-secondary) !important;
}

#cmplz-consent-ui button,
#cmplz-post-consent-ui button {
    background: linear-gradient(135deg, var(--rxn-brand), var(--rxn-brand-2)) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 8px !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    padding: 9px 20px !important;
    cursor: pointer !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

#cmplz-consent-ui button:hover,
#cmplz-post-consent-ui button:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 30px rgba(var(--rxn-brand-rgb), 0.3) !important;
}

/* The services submenu carries seven items, where every other submenu has one
   or two. Widen it so the longer service names do not wrap, and keep it from
   running past the viewport on short screens. */
.nav-sub--services {
	min-width: 250px;
}

.nav-sub--services::before {
	max-height: none;
}

@media (max-width: 1023px) {
	/* The panel is fixed-height with no scroll. That was fine when the submenus
	   held two links between them; with the seven services and three tools the
	   menu runs ~1120px on a 375px phone and everything from Projekti down was
	   clipped and unreachable. overscroll-behavior: contain is already set on
	   the panel, so this scrolls without dragging the page behind it. */
	.nav-menu {
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* ==========================================================================
   NAVIGATION — desktop dropdowns and the mobile accordion
   ========================================================================== */

/* The toggle button only exists for the mobile accordion; on desktop the
   submenu opens on hover and the button would be a dead control. */
.nav-sub-toggle {
	display: none;
}

/* ---------- DESKTOP ---------- */
@media (min-width: 1024px) {
	/* Hidden panels were still being painted at partial opacity over the page
	   because only opacity/visibility were animated. Taking them out of the
	   layer with a scale+clip means a closed panel renders nothing at all. */
	.nav-sub {
		clip-path: inset(0 0 100% 0);
		transition: opacity 0.22s ease, transform 0.22s ease,
			clip-path 0.22s ease, visibility 0s linear 0.22s;
	}

	.nav-item--has-sub:hover .nav-sub,
	.nav-item--has-sub:focus-within .nav-sub {
		clip-path: inset(0 0 0 0);
		transition-delay: 0s;
	}

	.nav-sub::before {
		border-radius: 10px;
		box-shadow: 0 18px 44px rgba(0, 0, 0, 0.55);
	}

	.nav-sub a {
		padding: 0.62rem 0.9rem;
		border-radius: 6px;
		margin: 2px 6px;
		transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
	}

	.nav-sub a:hover {
		background: rgba(var(--rxn-brand-rgb), 0.12);
		color: var(--text-heading);
		transform: translateX(3px);
	}

	.nav-sub a + a {
		border-top: 0;
	}

	/* Eight services in one column runs the panel down the viewport; two
	   columns keep it inside the fold and easier to scan. */
	.nav-sub--services {
		min-width: 460px;
		display: grid;
		grid-template-columns: 1fr 1fr;
		align-content: start;
	}

	.nav-sub--services::before {
		grid-column: 1 / -1;
	}
}

/* ---------- MOBILE ---------- */
@media (max-width: 1023px) {
	/* The cookie banner sits at z-index 2147483000 and was covering the lower
	   half of the open menu. The menu is modal here, so the banner steps
	   aside until it closes. */
	body.nav-open .rxnck-banner {
		display: none;
	}

	.nav-menu {
		gap: 0;
		padding: 3.25rem 1rem 1.25rem !important;
	}

	/* Rows carry the tap target; the old height meant only two of eight
	   top-level items fit on screen. */
	.nav-menu > a,
	.nav-item > a {
		display: flex;
		align-items: center;
		min-height: 52px;
		padding: 0.5rem 0.25rem !important;
		font-size: 1.12rem;
	}

	.nav-item {
		position: relative;
	}

	.nav-sub-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: 4px;
		right: 2px;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 1px solid transparent;
		border-radius: 8px;
		background: rgba(255, 255, 255, 0.04);
		color: var(--text-secondary);
		cursor: pointer;
		z-index: 2;
		transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
	}

	.nav-sub-toggle svg {
		width: 18px;
		height: 18px;
		fill: none;
		stroke: currentColor;
		stroke-width: 2.2;
		stroke-linecap: round;
		stroke-linejoin: round;
		transition: transform 0.25s ease;
	}

	.nav-sub-toggle[aria-expanded="true"] {
		background: rgba(var(--rxn-brand-rgb), 0.14);
		border-color: rgba(var(--rxn-brand-rgb), 0.4);
		color: var(--accent);
	}

	.nav-sub-toggle[aria-expanded="true"] svg {
		transform: rotate(180deg);
	}

	/* Collapsed by default — this is the whole point: every top-level
	   destination is reachable without scrolling past someone else's submenu.
	   max-height rather than the 0fr/1fr grid trick, because that one needs a
	   single wrapper child and .nav-sub holds the links directly. */
	.nav-sub {
		display: block;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.3s ease;
	}

	.nav-item.is-expanded .nav-sub {
		max-height: 640px;
	}

	.nav-sub a {
		padding: 0.72rem 0.25rem 0.72rem 1.35rem !important;
		font-size: 1rem;
		min-height: 48px;
		display: flex;
		align-items: center;
	}

	/* The staggered entrance animates each row from the right; a collapsed
	   submenu must not reserve that motion or it fights the accordion. */
	.nav-menu.is-open .nav-sub a {
		transform: none;
		opacity: 1;
		transition-delay: 0s;
	}

	.nav-caret {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nav-sub,
	.nav-sub-toggle,
	.nav-sub-toggle svg,
	.nav-sub a {
		transition: none;
	}
}

/* Service rows in the dropdown carry their entry price — the same number the
   cards and the pricing table show, so the menu answers "how much" at the
   moment someone is deciding where to click. */
.nav-sub--services a {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
}

.nav-sub-price {
	font-family: 'Orbitron', sans-serif;
	font-size: 0.7rem;
	font-weight: 600;
	color: var(--text-secondary);
	opacity: 0.75;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.nav-sub--services a:hover .nav-sub-price {
	color: var(--accent);
	opacity: 1;
}

@media (max-width: 1023px) {
	.nav-sub--services a {
		justify-content: flex-start;
		gap: 10px;
	}

	.nav-sub-price {
		margin-left: auto;
		font-size: 0.72rem;
	}
}

/* Readability over translucency. At 0.92 the animated homepage background
   showed through the dropdown and competed with the labels; the panel is a
   reading surface first, so it stays effectively opaque. */
@media (min-width: 1024px) {
	.nav-sub::before {
		background: rgba(11, 11, 17, 0.985);
		border-color: rgba(255, 255, 255, 0.1);
	}

	.nav-sub-price {
		opacity: 0.9;
	}

	.nav-sub--services a {
		padding-top: 0.7rem;
		padding-bottom: 0.7rem;
	}
}

/* ==========================================================================
   FOOTER BADGES — third-party trust marks
   ========================================================================== */

/* No border here: .footer-bottom directly below already draws one, and two
   rules that close together read as a mistake. */
.footer-badges {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 18px;
	padding: 32px 0 26px;
}

.footer-badge {
	display: inline-flex;
	align-items: center;
	/* The supplied SVG is already the light-on-dark variant, so it needs no
	   filter — only a resting dim so it reads as a credential rather than
	   competing with the brand logo above it. */
	opacity: 0.8;
	transition: opacity 0.25s ease, transform 0.25s ease;
}

.footer-badge:hover,
.footer-badge:focus-visible {
	opacity: 1;
	transform: translateY(-2px);
}

.footer-badge:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 6px;
	border-radius: 4px;
}

.footer-badge img {
	display: block;
	width: auto;
	height: 44px;
}

@media (max-width: 767px) {
	.footer-badges {
		justify-content: center;
		padding: 22px 0 18px;
	}

	.footer-badge img {
		height: 40px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.footer-badge {
		transition: none;
	}

	.footer-badge:hover,
	.footer-badge:focus-visible {
		transform: none;
	}
}

/* Language selector: a segmented control rather than another navigation
   link. The active language is visible at a glance without flags or a
   dropdown, and both choices remain one tap away. */
.nav-language {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	flex: 0 0 auto;
}

.nav-language__label {
	display: inline-flex;
	align-items: center;
	color: #8f8fa4;
}

.nav-language__label > span {
	display: none;
}

.nav-language__label svg {
	display: block;
	width: 15px;
	height: 15px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.nav-language__options {
	display: inline-grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2px;
	padding: 3px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 999px;
	background: rgba(7, 7, 12, 0.58);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.nav-menu .nav-language a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 31px;
	height: 27px;
	min-height: 0;
	padding: 0 !important;
	border: 0;
	border-radius: 999px;
	font-family: 'Orbitron', sans-serif;
	font-size: 0.65rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.045em;
	color: #9c9caf;
	opacity: 1;
	transform: none;
	transition: color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.nav-menu .nav-language a:hover {
	color: #f4f4f8;
	background: rgba(255, 255, 255, 0.075);
}

.nav-menu .nav-language a.active {
	color: var(--rxn-on-brand);
	background: var(--rxn-brand);
	box-shadow: 0 4px 13px rgba(var(--rxn-brand-rgb), 0.32);
}

.nav-menu .nav-language a.active::after {
	display: none;
}

.nav-menu .nav-language a:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 2px;
}

@media (min-width: 1024px) {
	.nav-menu {
		gap: clamp(0.75rem, 1.35vw, 1.45rem);
	}
}

@media (max-width: 1023px) {
	.nav-toggle {
		width: 46px;
		height: 46px;
		min-width: 46px;
		min-height: 46px;
		padding: 11px;
		border: 1px solid rgba(255, 255, 255, 0.12);
		border-radius: 12px;
		background: rgba(13, 13, 20, 0.72);
		-webkit-backdrop-filter: blur(14px) saturate(135%);
		backdrop-filter: blur(14px) saturate(135%);
		box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.04);
		transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
	}

	.nav-toggle:hover,
	.nav-toggle:focus-visible,
	.nav-toggle.is-active {
		border-color: rgba(var(--rxn-brand-rgb), 0.48);
		background: rgba(20, 16, 18, 0.9);
		box-shadow: 0 8px 26px rgba(0, 0, 0, 0.34), 0 0 0 3px rgba(var(--rxn-brand-rgb), 0.08);
	}

	.nav-toggle:focus-visible {
		outline: 2px solid #ffffff;
		outline-offset: 2px;
	}

	.nav-language {
		order: -1;
		width: 100%;
		justify-content: space-between;
		padding: 0.2rem 0.25rem 1rem;
		margin: 0 0 0.35rem;
		border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	}

	.nav-language__label {
		gap: 9px;
		color: #b9b9c8;
		font-family: 'Outfit', sans-serif;
		font-size: 0.78rem;
		font-weight: 600;
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	.nav-language__label > span {
		display: inline;
	}

	.nav-language__label svg {
		width: 17px;
		height: 17px;
	}

	.nav-language__options {
		padding: 4px;
		background: rgba(255, 255, 255, 0.04);
	}

	.nav-menu .nav-language a {
		width: 42px;
		height: 34px;
		font-size: 0.72rem;
	}
}
