/*
 * Prilinq — base styles.
 * Direction-agnostic: logical properties only (inline-start/end),
 * RTL point-fixes live in rtl.css.
 */

:root {
	--prilinq-accent: #00A3C4;
	--prilinq-bg: #F8FAFC;
	--prilinq-body-bg: #FFFFFF;
	--prilinq-text: #FFFFFF;
	--prilinq-text-muted: #B5B5B5;
	--prilinq-text-primary: #1E293B;
	--prilinq-text-secondary: #64748B;
	--prilinq-surface: #FFFFFF;
	--prilinq-border: #E2E8F0;
	--prilinq-font-family: 'Heebo', sans-serif;
	--prilinq-radius-pill: 999px;
	--prilinq-radius-control: 10px;
	--prilinq-container: 1200px;
	--prilinq-container-padding-inline: 24px;
	--prilinq-header-height: 72px;
	--prilinq-header-bg: transparent;
	--prilinq-footer-bg: transparent;
	--prilinq-header-text: #fff;
	--prilinq-header-padding-block: 14px;
	--prilinq-header-padding-inline: 32px;
	--prilinq-footer-padding-block-start: 14px;
	--prilinq-footer-padding-block-end: 14px;
	--prilinq-footer-padding-inline: var(--prilinq-header-padding-inline);
	--prilinq-footer-height: 110px;
	--prilinq-footer-inner-gap: 24px;
	--prilinq-header-inner-gap: 24px;
	--prilinq-header-actions-gap: 12px;
	--prilinq-header-logo-max-height: 36px;
	--prilinq-header-site-title-size: 24px;
	--prilinq-header-site-title-weight: 700;
	--prilinq-header-site-title-font: var(--prilinq-font-family);
	--prilinq-header-site-title-color: var(--prilinq-text-primary);
	--prilinq-header-site-title-last-color: var(--prilinq-accent);
	--prilinq-header-btn-font-size: 15px;
	--prilinq-header-btn-height: 40px;
	--prilinq-header-btn-padding-block: 10px;
	--prilinq-header-btn-padding-inline: 20px;
	--prilinq-header-btn-text: var(--prilinq-text-primary);
	--prilinq-header-btn-bg: transparent;
	--prilinq-header-btn-border: var(--prilinq-text-primary);
	--prilinq-mobile-menu-header-btn-text: var(--prilinq-header-btn-text);
	--prilinq-mobile-menu-header-btn-bg: var(--prilinq-header-btn-bg);
	--prilinq-mobile-menu-header-btn-border: var(--prilinq-header-btn-border);
	--prilinq-header-btn-ghost-border: rgba(255, 255, 255, 0.55);
	--prilinq-header-btn-primary-bg: #fff;
	--prilinq-header-btn-primary-text: var(--prilinq-accent);
	--prilinq-nav-bg: var(--prilinq-accent);
	--prilinq-nav-text: #fff;
	--prilinq-nav-font-size: 15px;
	--prilinq-nav-font-weight: 500;
	--prilinq-nav-link-padding-block: 10px;
	--prilinq-nav-link-padding-inline: 18px;
	--prilinq-nav-home-height: 44px;
	--prilinq-nav-offset-bottom: 34px;
	--prilinq-nav-side-margin: 16px;
	--prilinq-nav-mobile-max-width: 420px;
	--prilinq-nav-item-hover: rgba(255, 255, 255, 0.18);
	--prilinq-nav-submenu-text: rgba(255, 255, 255, 0.7);
	--prilinq-nav-overlay-opacity: 0.18;
	--prilinq-nav-overlay-opacity-mobile: 0.45;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	overflow-x: clip;
	max-width: 100%;
}

/*
 * Elementor 4.x ships `html { scroll-behavior: smooth }` (frontend.min.css,
 * no opt-out setting). Lenis (scroll.js) writes the scroll position every
 * frame; with native smooth scrolling active each write becomes its own
 * browser animation and the two engines fight — laggy, rubber-banding scroll.
 * Scoped to `.lenis` so users with prefers-reduced-motion (where scroll.js
 * never creates Lenis) keep Elementor's native behavior.
 */
html.lenis {
	scroll-behavior: auto !important;
}

body {
	margin: 0;
	overflow-x: clip;
	max-width: 100%;
	background-color: var(--prilinq-body-bg);
	color: var(--prilinq-text);
	font-family: var(--prilinq-font-family);
	font-size: 16px;
	line-height: 1.6;
	text-align: start;
}

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

a {
	color: inherit;
}

button,
input,
select,
textarea {
	font-family: var(--prilinq-font-family);
}

/* Accessibility */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	inset-block-start: -100px;
	inset-inline-start: 8px;
	z-index: 1000;
	padding: 8px 16px;
	background: var(--prilinq-accent);
	color: #fff;
	border-radius: var(--prilinq-radius-pill);
	transition: inset-block-start 0.2s ease;
}

.skip-link:focus {
	inset-block-start: 8px;
}

/* Layout */
.prilinq-container {
	max-width: var(--prilinq-container);
	margin-inline: auto;
	padding-inline: var(--prilinq-container-padding-inline);
}

.site-content {
	min-height: 60vh;
}

/* Standard (non-Elementor) pages: keep content clear of the absolute header */
.prilinq-standard-page .site-content > .site-main:first-child {
	padding-block-start: calc(var(--prilinq-header-height) + 24px);
}

/* Hero sits under the top header — the hero itself absorbs the offset */
.prilinq-standard-page .prilinq-page-hero {
	padding-block-start: var(--prilinq-header-height);
}

.prilinq-standard-page .prilinq-page-hero + .site-main {
	padding-block-start: 24px;
}

/* Elementor pages: content starts at Y=0, header floats above it.
   Kept independent of the body page-type class (not scoped to
   .prilinq-elementor-page) so it also holds during a page transition, when the
   incoming Elementor content is briefly hosted under the *outgoing* page's body
   class. Equal specificity to the .prilinq-standard-page 124px rule above +
   header-line jump when arriving from a content/blog page. The #content id
   gives this higher specificity than the .prilinq-standard-page ...
   :first-child rule above (whose :first-child pseudo-class counts toward
   specificity), so it wins under either body class. */
#content > .site-main.is-elementor {
	padding-block-start: 0;
}

/* Buttons */
.prilinq-button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 26px;
	border: 1px solid transparent;
	border-radius: var(--prilinq-radius-pill);
	background: var(--prilinq-accent);
	color: #fff;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: filter 0.2s ease, background-color 0.2s ease;
}

.prilinq-button:hover,
.prilinq-button:focus-visible {
	filter: brightness(1.1);
}

/* Top header — absolute, scrolls with the page */
.prilinq-header-top {
	position: absolute;
	inset-block-start: 0;
	inset-inline: 0;
	z-index: 100;
	background: var(--prilinq-header-bg);
	color: var(--prilinq-header-text);
}

/* Logged-in: offset below the fixed WordPress admin bar (32px desktop, 46px mobile). */
body.admin-bar .prilinq-header-top {
	top: 32px;
	inset-block-start: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .prilinq-header-top {
		top: 46px;
		inset-block-start: 46px;
	}
}

.header-top-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--prilinq-header-inner-gap);
	max-width: var(--prilinq-container);
	margin-inline: auto;
	padding-block: var(--prilinq-header-padding-block);
	padding-inline: var(--prilinq-header-padding-inline);
	min-height: var(--prilinq-header-height);
}

.header-branding a {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: inherit;
}

.header-branding .custom-logo {
	display: block;
	max-height: var(--prilinq-header-logo-max-height);
	width: auto;
}

.header-branding .prilinq-site-title {
	font-family: var(--prilinq-header-site-title-font);
	font-size: var(--prilinq-header-site-title-size);
	font-weight: var(--prilinq-header-site-title-weight);
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--prilinq-header-site-title-color);
	text-decoration: none;
	unicode-bidi: isolate;
}

.header-branding .prilinq-site-title__accent {
	color: var(--prilinq-header-site-title-last-color);
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	unicode-bidi: isolate;
}

.header-actions {
	display: flex;
	align-items: center;
	gap: var(--prilinq-header-actions-gap);
}

/* Header controls — Jeton-style ghost + solid CTA */
.prilinq-header-top .prilinq-button {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--prilinq-header-btn-height);
	padding: var(--prilinq-header-btn-padding-block) var(--prilinq-header-btn-padding-inline);
	border-radius: var(--prilinq-radius-control);
	font-size: var(--prilinq-header-btn-font-size);
	font-weight: 500;
	line-height: 1.2;
	white-space: nowrap;
	background: var(--prilinq-header-btn-bg);
	border-color: var(--prilinq-header-btn-border);
	color: var(--prilinq-header-btn-text);
}

.prilinq-header-top .prilinq-button .prilinq-responsive-text {
	line-height: inherit;
}

.prilinq-header-top .prilinq-button--ghost {
	-webkit-backdrop-filter: blur(20px);
	backdrop-filter: blur(20px);
}

.prilinq-header-top .prilinq-button--ghost:hover,
.prilinq-header-top .prilinq-button--ghost:focus-visible {
	background: var(--prilinq-nav-item-hover);
	border-color: var(--prilinq-header-btn-border);
	filter: none;
}

.prilinq-header-top .prilinq-button--primary {
	background: var(--prilinq-header-btn-bg);
	border-color: var(--prilinq-header-btn-border);
	color: var(--prilinq-header-btn-text);
}

.prilinq-header-top .prilinq-button--primary:hover,
.prilinq-header-top .prilinq-button--primary:focus-visible {
	background: var(--prilinq-nav-item-hover);
	border-color: var(--prilinq-header-btn-border);
	filter: none;
}

/* Language switcher (Polylang) — globe + current code + chevron */
.prilinq-lang-switcher {
	position: relative;
	border: 1px solid var(--prilinq-header-btn-border);
	border-radius: var(--prilinq-radius-control);
	font-size: var(--prilinq-header-btn-font-size);
	font-weight: 500;
	background: var(--prilinq-header-btn-bg);
	color: var(--prilinq-header-btn-text);
}

.prilinq-lang-switcher summary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: var(--prilinq-header-btn-padding-block) 16px;
	font-size: var(--prilinq-header-btn-font-size);
	color: var(--prilinq-header-btn-text);
	cursor: pointer;
	list-style: none;
}

.prilinq-lang-switcher:hover,
.prilinq-lang-switcher[open] {
	border-color: var(--prilinq-header-btn-border);
}

.prilinq-lang-switcher summary:hover,
.prilinq-lang-switcher[open] summary {
	background: var(--prilinq-nav-item-hover);
	border-radius: calc(var(--prilinq-radius-control) - 1px);
}

.prilinq-lang-switcher .lang-globe {
	display: inline-flex;
	flex-shrink: 0;
	color: inherit;
}

.prilinq-lang-switcher .lang-current {
	line-height: 1;
}

.prilinq-lang-switcher .lang-caret {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 8px;
	height: 1em;
	flex-shrink: 0;
}

.prilinq-lang-switcher .lang-caret::before {
	content: "";
	display: block;
	width: 6px;
	height: 6px;
	border-inline-end: 1.5px solid currentColor;
	border-block-end: 1.5px solid currentColor;
	transform: rotate(45deg);
	transform-origin: center;
	transition: transform 0.18s ease;
}

.prilinq-lang-switcher[open] .lang-caret::before {
	transform: rotate(-135deg);
}

.prilinq-lang-switcher .lang-dropdown {
	position: absolute;
	inset-inline-end: 0;
	inset-block-start: calc(100% + 8px);
	z-index: 10;
	display: flex;
	flex-direction: column;
	min-width: 100%;
	padding: 6px;
	background: #fff;
	border-radius: var(--prilinq-radius-control);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.prilinq-lang-switcher .lang-item {
	padding: 8px 12px;
	border-radius: 6px;
	text-decoration: none;
	color: var(--prilinq-text-primary);
	transition: background-color 0.15s ease, color 0.15s ease;
}

.prilinq-lang-switcher .lang-item:hover,
.prilinq-lang-switcher .lang-item:focus-visible {
	background: rgba(0, 0, 0, 0.06);
	color: var(--prilinq-accent);
}

/* Page hero wrapper */
.prilinq-page-hero {
	position: relative;
}

/* Breadcrumbs (available inside hero templates via shortcode/hook) */
.prilinq-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 14px;
	color: var(--prilinq-text-muted);
}

.prilinq-breadcrumbs a {
	color: var(--prilinq-text-muted);
	text-decoration: none;
}

.prilinq-breadcrumbs a:hover {
	color: var(--prilinq-text);
}

.prilinq-breadcrumbs .current {
	color: var(--prilinq-text);
}

/* Content basics */
.entry-title a {
	text-decoration: none;
}

/* Cookie notice buttons */
.an-button-cookie.an-accept-cookies {
	background: #47a7f2;
}
.an-manage-button-cookie.an-accept-cookies {
	background: #47a7f2;
	color: white;
}
.an-manage-button-cookie.an-save-preferences {
	background: #1e293b;
	color: white;
}
