/* =========================================================
   Adviol GEO — theme styles
   Colours: Ink #14112E · Violet #6D4AFF · Violet text #5A3AE6
            Lilac tint #F6F4FF · Lilac line #E3DEFA · Body #4A4763
   ========================================================= */

:root {
	--adv-ink: #14112E;
	--adv-violet: #6D4AFF;
	--adv-violet-text: #5A3AE6;
	--adv-tint: #F6F4FF;
	--adv-line: #E3DEFA;
	--adv-body: #4A4763;
	--adv-caption: #5A5770;
	--adv-night: #1F1A44;
	--adv-on-dark: #D9D4F2;
	--adv-radius: 22px;
	--adv-font: 'Outfit', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

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

body {
	margin: 0;
	background: #FFFFFF;
	color: var(--adv-ink);
	font-family: var(--adv-font);
	font-size: 18px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

a { color: var(--adv-violet-text); }
a:hover { color: #3F24B8; }
img, svg { max-width: 100%; }
img { height: auto; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto;
	left: 16px; top: 16px; z-index: 1000;
	background: #FFFFFF; padding: 12px 16px; border-radius: 12px;
}

/* ---------- Elementor sections built from the demo ---------- */
.elementor .adv-section-wrap.e-con,
.elementor .adv-section-wrap.e-con > .e-con-inner {
	--padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0;
	--gap: 0; --row-gap: 0; --column-gap: 0;
	padding: 0;
	max-width: none;
}
.elementor .adv-section-wrap .elementor-widget-html,
.elementor .adv-section-wrap .elementor-widget-html > .elementor-widget-container {
	margin: 0;
	padding: 0;
	width: 100%;
}
.elementor .adv-section-wrap .elementor-widget:not(:last-child) { margin-bottom: 0; }
.elementor-widget-html details summary { list-style-position: outside; }

/* Background illustrations */
.bg-light {
	background-image: url('../img/bg-light.svg') !important;
	background-size: cover !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
}
.bg-dark {
	background-image: url('../img/bg-dark.svg') !important;
	background-size: cover !important;
	background-position: center bottom !important;
	background-repeat: no-repeat !important;
}

/* ---------- Buttons ---------- */
.adv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 22px;
	border-radius: 999px;
	font-weight: 500;
	font-size: 16px;
	text-decoration: none;
	transition: background-color 0.15s ease;
}
.adv-btn--dark { background: var(--adv-ink); color: #FFFFFF; }
.adv-btn--dark:hover { background: #2A2552; color: #FFFFFF; }
.adv-btn--violet { background: var(--adv-violet); color: #FFFFFF; }
.adv-btn--violet:hover { background: #5A3AE6; color: #FFFFFF; }

/* ---------- Header ---------- */
.adv-header { border-bottom: 1px solid #ECE8FB; background: #FFFFFF; position: relative; z-index: 50; }
.adv-header__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px 32px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
}
.adv-header__nav { display: flex; align-items: center; gap: 28px; }
.adv-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 28px; font-size: 16px; }
.adv-menu a { color: var(--adv-ink); text-decoration: none; }
.adv-menu a:hover { color: var(--adv-violet-text); }
.adv-menu .current-menu-item > a,
.adv-menu .current_page_item > a { color: var(--adv-violet-text); font-weight: 500; }
.adv-menu .sub-menu { display: none; }
.adv-header__toggle {
	display: none;
	background: none; border: 0; color: var(--adv-ink);
	width: 44px; height: 44px; border-radius: 12px; cursor: pointer;
}

.adv-wordmark {
	display: inline-block;
	color: var(--adv-ink);
	font-family: var(--adv-font);
	font-size: 32px;
	font-weight: 400;
	letter-spacing: -0.03em;
	line-height: 1;
	white-space: nowrap;
	text-decoration: none;
}
.adv-wordmark:hover { color: var(--adv-ink); }
.adv-wordmark svg { width: 0.66em; height: 0.66em; vertical-align: -0.09em; margin: 0 0.02em; }
.adv-wordmark--light, .adv-wordmark--light:hover { color: #FFFFFF; font-size: 28px; }
.custom-logo { max-height: 48px; width: auto; }

@media (max-width: 960px) {
	.adv-header__toggle { display: inline-flex; align-items: center; justify-content: center; }
	.adv-header__nav {
		display: none;
		position: absolute; left: 0; right: 0; top: 100%;
		background: #FFFFFF;
		border-bottom: 1px solid #ECE8FB;
		padding: 16px 32px 24px;
		flex-direction: column; align-items: flex-start; gap: 16px;
	}
	.adv-header__nav.is-open { display: flex; }
	.adv-menu { flex-direction: column; gap: 14px; font-size: 18px; }
}
@media (max-width: 600px) {
	.adv-header__inner, .adv-header__nav { padding-left: 16px; padding-right: 16px; }
}

/* ---------- Footer ---------- */
.adv-footer { background: var(--adv-ink); color: var(--adv-on-dark); padding: 72px 32px 40px; }
.adv-footer__inner { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 48px; }
.adv-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 32px; }
.adv-footer__about p { margin: 12px 0 0; font-size: 15px; }
.adv-footer__title { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: #B3ACD6; margin-bottom: 10px; }
.adv-footer__menu, .adv-footer__legal { list-style: none; margin: 0; padding: 0; font-size: 15px; display: flex; flex-direction: column; gap: 10px; }
.adv-footer__menu a, .adv-footer__legal a { color: var(--adv-on-dark); }
.adv-footer__menu a:hover, .adv-footer__legal a:hover { color: #FFFFFF; }
.adv-footer__bottom {
	border-top: 1px solid #2E2860;
	padding-top: 24px;
	display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px;
	font-size: 14px; color: #B3ACD6;
}
.adv-footer__legal { flex-direction: row; gap: 16px; font-size: 14px; }
.adv-footer__legal a { color: #B3ACD6; }

/* ---------- Generic pages, blog, article ---------- */
.adv-wide { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.adv-narrow { max-width: 820px; margin: 0 auto; padding: 0 32px; }
.adv-section { padding: 88px 0 104px; }
.adv-page__hero { background: var(--adv-tint); padding: 72px 0 64px; }
.adv-page__title { margin: 0; font-size: clamp(2.25rem, 5vw, 3.5rem); line-height: 1.06; font-weight: 500; letter-spacing: -0.035em; }
.adv-page__lead { margin: 16px 0 0; font-size: 20px; color: var(--adv-body); max-width: 680px; }
.adv-eyebrow { font-size: 14px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--adv-violet-text); margin-bottom: 12px; }
.adv-breadcrumb { font-size: 14px; color: var(--adv-caption); margin-bottom: 16px; }
.adv-breadcrumb a { color: var(--adv-caption); }

.adv-prose { padding-top: 48px; padding-bottom: 72px; font-size: 19px; line-height: 1.7; color: #2E2A47; }
.adv-prose h2 { font-size: 2rem; font-weight: 500; letter-spacing: -0.02em; line-height: 1.2; color: var(--adv-ink); margin: 1.6em 0 0.5em; }
.adv-prose h3 { font-size: 1.4rem; font-weight: 500; color: var(--adv-ink); margin: 1.4em 0 0.4em; }
.adv-prose blockquote { margin: 1.5em 0; padding: 20px 0; border-top: 2px solid var(--adv-violet); border-bottom: 1px solid var(--adv-line); font-size: 24px; line-height: 1.4; }
.adv-prose img { border-radius: 18px; }
.adv-prose table { width: 100%; border-collapse: collapse; }
.adv-prose th, .adv-prose td { border-top: 1px solid var(--adv-line); padding: 12px 14px; text-align: left; }

.adv-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 24px; }
.adv-card {
	border: 1px solid var(--adv-line); border-radius: var(--adv-radius);
	padding: 28px; display: flex; flex-direction: column; gap: 12px;
	text-decoration: none; color: var(--adv-ink);
}
.adv-card:hover { border-color: #C9C0F2; color: var(--adv-ink); }
.adv-card__media img { border-radius: 14px; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.adv-card__eyebrow { font-size: 13px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--adv-violet-text); }
.adv-card__title { font-size: 23px; font-weight: 500; line-height: 1.25; }
.adv-card__meta { font-size: 15px; color: var(--adv-caption); margin-top: auto; }
.adv-pagination { margin-top: 40px; }

.adv-article__head { padding-top: 64px; padding-bottom: 32px; }
.adv-article__title { margin: 0; font-size: clamp(2.25rem, 5vw, 3.25rem); line-height: 1.08; font-weight: 500; letter-spacing: -0.035em; }
.adv-article__meta { margin-top: 18px; font-size: 15px; color: var(--adv-caption); }
.adv-article__image { max-width: 1100px; margin: 0 auto; padding: 0 32px; }
.adv-article__image img { width: 100%; border-radius: 28px; }
.adv-article__cta {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px;
	background: var(--adv-ink); color: #FFFFFF; border-radius: var(--adv-radius);
	padding: 28px 32px; margin-bottom: 88px;
}
.adv-article__cta strong { display: block; font-size: 22px; font-weight: 500; }
.adv-article__cta span { color: var(--adv-on-dark); }
.adv-404 { padding: 120px 0; }

.search-form { display: flex; gap: 10px; margin-top: 24px; }
.search-form .search-field {
	font: inherit; font-size: 16px; padding: 12px 16px; min-height: 48px;
	border: 1px solid #C9C0F2; border-radius: 14px; flex: 1;
}
.search-form .search-submit {
	font: inherit; font-weight: 500; background: var(--adv-violet); color: #FFFFFF;
	border: 0; border-radius: 999px; padding: 12px 22px; cursor: pointer;
}

/* ---------- Request a quote page ---------- */
.elementor .adv-quote-hero.e-con { background-color: var(--adv-tint); padding: 72px 32px 104px; }
.elementor .adv-quote-row.e-con {
	--padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0;
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: flex-start !important;
	gap: 56px !important;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0;
}
.elementor .adv-quote-left.e-con { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; flex: 1 1 440px !important; min-width: 0; padding: 0; }
.elementor .adv-quote-left .elementor-widget-container > div { flex: none !important; }
.elementor .adv-quote-card.e-con {
	flex: 1 1 520px !important;
	min-width: 0;
	background: #FFFFFF;
	border: 1px solid var(--adv-line);
	border-radius: 28px;
	padding: 36px;
	gap: 20px;
}
.elementor .adv-formcraft-slot.e-con { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; padding: 0; gap: 12px; }
.elementor-editor-active .adv-formcraft-slot.e-con {
	border: 2px dashed #B8ABF5;
	background: #FAF9FF;
	border-radius: 20px;
	min-height: 360px;
	padding: 24px;
}
.adv-editor-hint { display: none; }
.elementor-editor-active .adv-editor-hint {
	display: block;
	font-size: 15px; color: var(--adv-body);
	background: #F1EDFF; border-radius: 12px; padding: 12px 14px;
}

/* Gentle defaults for forms placed in the slot (FormCraft or any form plugin) */
.adv-formcraft-slot input[type="text"],
.adv-formcraft-slot input[type="email"],
.adv-formcraft-slot input[type="tel"],
.adv-formcraft-slot input[type="url"],
.adv-formcraft-slot select,
.adv-formcraft-slot textarea {
	font-family: var(--adv-font);
	border-radius: 14px;
	border-color: #C9C0F2;
}
.adv-formcraft-slot button,
.adv-formcraft-slot input[type="submit"] { font-family: var(--adv-font); }

@media (max-width: 600px) {
	.elementor .adv-quote-hero.e-con { padding: 56px 16px 72px; }
	.elementor .adv-quote-card.e-con { padding: 24px; }
	.adv-footer { padding: 56px 16px 32px; }
	.adv-wide, .adv-narrow { padding: 0 16px; }
}

/* =====================================================================
   Responsive layer for the imported Elementor pages (tablet + mobile).
   The page sections carry inline desktop styles, so these rules use
   attribute selectors and !important to adapt them on smaller screens.
   ===================================================================== */
.adv-section-wrap img, .adv-section-wrap svg { max-width: 100%; height: auto; }
.adv-section-wrap section { overflow-x: clip; }

/* Tablet: 1024px and below */
@media (max-width: 1024px) {
	.adv-section-wrap [style*="repeat(3, minmax(0, 1fr))"],
	.adv-section-wrap [style*="repeat(4, minmax(0, 1fr))"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.adv-section-wrap [style*="padding: 104px 32px"] { padding-top: 80px !important; padding-bottom: 80px !important; }
	.adv-section-wrap [style*="gap: 56px"] { gap: 40px !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.adv-section-wrap h1[style*="font-size: 4rem"] { font-size: 3.25rem !important; }
}

/* Mobile: 767px and below */
@media (max-width: 767px) {
	/* Section spacing: same 20px side gutter on every section */
	.adv-section-wrap section[style*="padding"] { padding: 56px 20px 64px !important; }
	.adv-section-wrap [style*="padding: 104px 32px"],
	.adv-section-wrap [style*="padding: 88px 32px"] { padding: 64px 16px !important; }
	.adv-section-wrap [style*="padding: 64px 32px"] { padding-left: 16px !important; padding-right: 16px !important; padding-top: 48px !important; padding-bottom: 56px !important; }
	.adv-section-wrap [style*="padding: 32px"],
	.adv-section-wrap [style*="padding: 30px"],
	.adv-section-wrap [style*="padding: 28px"] { padding: 22px !important; }
	.adv-section-wrap [style*="0 32px"] { padding-left: 16px !important; padding-right: 16px !important; }

	/* Grids: one column; small stat/logo grids keep two */
	.adv-section-wrap [style*="grid-template-columns"] { grid-template-columns: minmax(0, 1fr) !important; }
	.adv-section-wrap [style*="minmax(110px"],
	.adv-section-wrap [style*="minmax(120px"],
	.adv-section-wrap [style*="minmax(170px"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

	/* Flex rows: stack the big columns, keep everything inside the screen */
	.adv-section-wrap [style*="flex: 1 1"],
	.adv-section-wrap [style*="flex: 2 1"] { flex-basis: 100% !important; min-width: 0 !important; }
	.adv-section-wrap [style*="flex: 0 0 200px"],
	.adv-section-wrap [style*="flex: 0 0 140px"] { flex-basis: 100% !important; }
	.adv-section-wrap [style*="gap: 56px"],
	.adv-section-wrap [style*="gap: 44px"] { gap: 28px !important; }
	.adv-section-wrap [style*="width: 900px"]:not([style*="position: absolute"]) { width: 100% !important; }
	.adv-section-wrap [style*="max-width"] { max-width: 100% !important; }

	/* Type scale */
	.adv-section-wrap h1 { font-size: clamp(2.25rem, 10vw, 2.75rem) !important; line-height: 1.08 !important; }
	.adv-section-wrap h2,
	.adv-section-wrap [style*="font-size: 3rem"],
	.adv-section-wrap [style*="font-size: 3.25rem"],
	.adv-section-wrap [style*="font-size: 3.5rem"],
	.adv-section-wrap [style*="font-size: 3.75rem"] { font-size: clamp(1.875rem, 8vw, 2.25rem) !important; line-height: 1.12 !important; }
	.adv-section-wrap [style*="font-size: 2.75rem"],
	.adv-section-wrap [style*="font-size: 2.5rem"] { font-size: 2rem !important; }
	.adv-section-wrap [style*="font-size: 120px"] { font-size: 72px !important; }
	.adv-section-wrap [style*="font-size: 56px"],
	.adv-section-wrap [style*="font-size: 48px"] { font-size: 36px !important; }
	.adv-section-wrap [style*="font-size: 44px"] { font-size: 32px !important; }
	.adv-section-wrap [style*="font-size: 22px"] { font-size: 19px !important; }

	/* Comparison tables: fit all columns on the screen */
	.adv-section-wrap table { min-width: 0 !important; font-size: 14px !important; table-layout: fixed; }
	.adv-section-wrap th, .adv-section-wrap td { padding: 12px 10px !important; word-wrap: break-word; }
	.adv-section-wrap div:has(> table) { overflow-x: auto; -webkit-overflow-scrolling: touch; }

	/* Buttons: full-width, easy to tap */
	.adv-section-wrap a[style*="border-radius: 999px"] { justify-content: center; }
}

/* ---------- Bigger Adviol logo (v1.0.2) ---------- */
.adv-wordmark { font-size: 42px; }
.adv-wordmark--light, .adv-wordmark--light:hover { font-size: 36px; }
.custom-logo { max-height: 60px; }
.adv-section-wrap a[aria-label="Adviol home"] { font-size: 42px !important; }
@media (max-width: 767px) {
.adv-wordmark, .adv-section-wrap a[aria-label="Adviol home"] { font-size: 36px !important; }
.adv-wordmark--light { font-size: 32px !important; }
.custom-logo { max-height: 50px; }
}

/* ---------- Recommended card animation (light, CSS only) ---------- */
.adv-reco::after {
  content: ""; position: absolute; inset: -2px; border-radius: 24px; pointer-events: none;
  box-shadow: 0 0 0 4px rgba(109, 74, 255, 0.22), 0 0 28px rgba(109, 74, 255, 0.38);
  opacity: 0; animation: adv-reco-glow 3s ease-in-out infinite; will-change: opacity;
}
.adv-reco-badge::after {
  content: ""; position: absolute; top: 0; left: 0; width: 45%; height: 100%; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);
  transform: translateX(-120%) skewX(-20deg); animation: adv-reco-shine 3.5s ease-in-out infinite; will-change: transform;
}
@keyframes adv-reco-glow { 0%, 100% { opacity: 0; } 50% { opacity: 1; } }
@keyframes adv-reco-shine { 0%, 55% { transform: translateX(-120%) skewX(-20deg); } 85%, 100% { transform: translateX(320%) skewX(-20deg); } }
@media (prefers-reduced-motion: reduce) { .adv-reco::after, .adv-reco-badge::after { animation: none; opacity: 1; } .adv-reco-badge::after { display: none; } }

/* ---------- FormCraft tweaks (adv-fc-overrides) ---------- */
/* Required star: smaller and dark instead of large red */
html body .formcraft-css .fc-form.label-placeholder .is-required-true .field-cover::after {
  color: #14112E !important; font-size: 15px !important; top: 6px !important; right: 8px !important;
}
html body .formcraft-css .fc-form .form-element.is-required-true .field-cover .main-label > span::after {
  color: #14112E !important; font-size: 0.8em !important;
}
/* Consent checkbox: clearer border, purple when ticked */
html body .formcraft-css .fc-form .checkbox-cover label input[type="checkbox"] {
  -webkit-appearance: none !important; appearance: none !important;
  display: inline-block !important; position: relative !important; opacity: 1 !important;
  width: 18px !important; height: 18px !important; margin: 0 8px 0 0 !important; padding: 0 !important;
  border: 2px solid #8A86A3 !important; border-radius: 4px !important; background: #FFFFFF !important;
  vertical-align: middle !important; cursor: pointer; flex: none;
}
html body .formcraft-css .fc-form .checkbox-cover label input[type="checkbox"]:hover { border-color: #6D4AFF !important; }
html body .formcraft-css .fc-form .checkbox-cover label input[type="checkbox"]:checked { background: #6D4AFF !important; border-color: #6D4AFF !important; }
html body .formcraft-css .fc-form .checkbox-cover label input[type="checkbox"]:checked::after {
  content: ""; position: absolute; left: 4px; top: 0; width: 5px; height: 10px;
  border: solid #FFFFFF; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
html body .formcraft-css .fc-form .checkbox-cover label input[type="checkbox"]:focus-visible { outline: 2px solid #A995FF; outline-offset: 2px; }
