/*======================================================================
  LUXELINE UNIVERSAL POLICY PAGE
  FILE: policy-pages.css
  VERSION: 1.0.0

  Universal structure:
  #lux-policy
    .lux-policy__shell
      .lux-policy__body
======================================================================*/

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

#lux-policy {
	--lux-policy-paper: #f7f2ea;
	--lux-policy-paper-soft: #fcfaf6;
	--lux-policy-ink: #181416;
	--lux-policy-brand: #4a2e35;
	--lux-policy-rose: #a1435a;
	--lux-policy-copy: #665f5c;
	--lux-policy-line: rgba(24, 20, 22, 0.24);
	--lux-policy-line-soft: rgba(24, 20, 22, 0.13);
	--lux-policy-shell: 1240px;
	--lux-policy-reading: 1080px;

	position: relative !important;
	isolation: isolate;
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: clamp(108px, 7.4vw, 148px) 0 clamp(104px, 7vw, 138px) !important;
	overflow: hidden;
	background:
		radial-gradient(circle at 10% 8%, rgba(161, 67, 90, 0.035), transparent 28%),
		var(--lux-policy-paper) !important;
	color: var(--lux-policy-ink) !important;
}

#lux-policy > .e-con-inner {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

#lux-policy .lux-policy__shell {
	display: block !important;
	width: min(calc(100% - 72px), var(--lux-policy-shell)) !important;
	max-width: var(--lux-policy-shell) !important;
	margin: 0 auto !important;
	padding: 0 !important;
}

#lux-policy .lux-policy__shell > .e-con-inner {
	display: contents !important;
}

#lux-policy .lux-policy__body {
	width: 100% !important;
	max-width: var(--lux-policy-reading) !important;
	margin: 0 auto !important;
	padding: clamp(46px, 4.3vw, 70px) clamp(42px, 4.6vw, 72px) clamp(52px, 4.8vw, 76px) !important;
	background: var(--lux-policy-paper-soft) !important;
	border: 1px solid var(--lux-policy-line) !important;
	border-radius: 18px !important;
	box-shadow: 0 18px 44px rgba(53, 37, 42, 0.055);
}

#lux-policy .lux-policy__body .elementor-widget-container {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

#lux-policy .lux-policy__body #lux-policy-title,
#lux-policy .lux-policy__body h1:first-child {
	position: relative;
	display: block;
	width: 100%;
	max-width: 900px;
	margin: 0 auto clamp(42px, 3.6vw, 56px) !important;
	padding: 0 0 clamp(30px, 2.5vw, 38px) !important;
	color: var(--lux-policy-ink) !important;
	-webkit-text-fill-color: var(--lux-policy-ink) !important;
	font-family: "Cinzel", Georgia, "Times New Roman", serif !important;
	font-size: clamp(58px, 5.2vw, 88px) !important;
	font-weight: 400 !important;
	line-height: 1.02 !important;
	letter-spacing: -0.05em !important;
	text-align: center !important;
	text-transform: none !important;
	text-wrap: balance;
}

#lux-policy .lux-policy__body #lux-policy-title::after,
#lux-policy .lux-policy__body h1:first-child::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 74px;
	height: 2px;
	background: var(--lux-policy-brand);
	transform: translateX(-50%);
}

#lux-policy .lux-policy__body h1:first-child + p {
	margin: 0 0 22px !important;
	color: var(--lux-policy-brand) !important;
	-webkit-text-fill-color: var(--lux-policy-brand) !important;
	font-family: "Manrope", Arial, sans-serif !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	line-height: 1.55 !important;
	letter-spacing: 0.04em !important;
}

#lux-policy .lux-policy__body h1:first-child + p strong {
	color: inherit !important;
	-webkit-text-fill-color: inherit !important;
}

#lux-policy .lux-policy__body h2 {
	margin: clamp(48px, 4vw, 62px) 0 clamp(20px, 1.8vw, 28px) !important;
	padding: clamp(18px, 1.5vw, 24px) 0 0 !important;
	border-top: 1px solid var(--lux-policy-line-soft);
	color: var(--lux-policy-ink) !important;
	-webkit-text-fill-color: var(--lux-policy-ink) !important;
	font-family: "Cinzel", Georgia, "Times New Roman", serif !important;
	font-size: clamp(31px, 2.5vw, 42px) !important;
	font-weight: 400 !important;
	line-height: 1.18 !important;
	letter-spacing: -0.035em !important;
	text-transform: none !important;
}

#lux-policy .lux-policy__body h3 {
	margin: clamp(30px, 2.5vw, 40px) 0 14px !important;
	color: var(--lux-policy-brand) !important;
	-webkit-text-fill-color: var(--lux-policy-brand) !important;
	font-family: "Manrope", Arial, sans-serif !important;
	font-size: clamp(18px, 1.45vw, 22px) !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	letter-spacing: -0.02em !important;
}

#lux-policy .lux-policy__body p,
#lux-policy .lux-policy__body li,
#lux-policy .lux-policy__body td,
#lux-policy .lux-policy__body th {
	color: var(--lux-policy-copy) !important;
	-webkit-text-fill-color: var(--lux-policy-copy) !important;
	font-family: "Manrope", Arial, sans-serif !important;
	font-size: clamp(15px, 1.02vw, 17px) !important;
	font-weight: 400 !important;
	line-height: 1.78 !important;
	letter-spacing: -0.012em !important;
}

#lux-policy .lux-policy__body p {
	margin: 0 0 18px !important;
}

#lux-policy .lux-policy__body strong {
	color: var(--lux-policy-ink) !important;
	-webkit-text-fill-color: var(--lux-policy-ink) !important;
	font-weight: 700 !important;
}

#lux-policy .lux-policy__body ul,
#lux-policy .lux-policy__body ol {
	margin: 10px 0 24px !important;
	padding: 0 0 0 26px !important;
}

#lux-policy .lux-policy__body li {
	margin: 0 0 10px !important;
	padding: 0 0 0 5px !important;
}

#lux-policy .lux-policy__body li::marker {
	color: var(--lux-policy-rose);
}

#lux-policy .lux-policy__body a {
	color: var(--lux-policy-brand) !important;
	-webkit-text-fill-color: var(--lux-policy-brand) !important;
	font-weight: 650 !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 3px !important;
	transition: color 250ms ease, text-decoration-color 250ms ease;
}

@media (hover: hover) and (pointer: fine) {
	#lux-policy .lux-policy__body a:hover {
		color: var(--lux-policy-rose) !important;
		-webkit-text-fill-color: var(--lux-policy-rose) !important;
	}
}

#lux-policy .lux-policy__body a:focus-visible {
	outline: 2px solid var(--lux-policy-brand) !important;
	outline-offset: 4px;
}

#lux-policy .lux-policy__body table {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 28px 0 34px !important;
	overflow-x: auto;
	overflow-y: hidden;
	border-collapse: collapse !important;
	border: 1px solid var(--lux-policy-line) !important;
	background: #ffffff;
	-webkit-overflow-scrolling: touch;
}

#lux-policy .lux-policy__body th,
#lux-policy .lux-policy__body td {
	min-width: 210px;
	padding: 15px 17px !important;
	border-right: 1px solid var(--lux-policy-line-soft) !important;
	border-bottom: 1px solid var(--lux-policy-line-soft) !important;
	text-align: left !important;
	vertical-align: top !important;
}

#lux-policy .lux-policy__body th {
	background: rgba(74, 46, 53, 0.055) !important;
	color: var(--lux-policy-ink) !important;
	-webkit-text-fill-color: var(--lux-policy-ink) !important;
	font-weight: 700 !important;
}

#lux-policy .lux-policy__body tr:last-child td {
	border-bottom: 0 !important;
}

#lux-policy .lux-policy__body th:last-child,
#lux-policy .lux-policy__body td:last-child {
	border-right: 0 !important;
}

#lux-policy .lux-policy__body hr {
	height: 1px;
	margin: clamp(48px, 4vw, 62px) 0 0 !important;
	padding: 0;
	border: 0 !important;
	background: var(--lux-policy-line) !important;
}

@media (min-width: 1201px) and (max-width: 1536px) {
	#lux-policy {
		padding-top: 118px !important;
		padding-bottom: 114px !important;
	}
	#lux-policy .lux-policy__shell {
		width: min(calc(100% - 64px), 1180px) !important;
	}
}

@media (min-width: 1025px) and (max-width: 1200px) {
	#lux-policy {
		padding: 106px 0 102px !important;
	}
	#lux-policy .lux-policy__shell {
		width: calc(100% - 56px) !important;
	}
	#lux-policy .lux-policy__body {
		max-width: 1000px !important;
		padding: 54px 56px 62px !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	#lux-policy {
		padding: 96px 0 94px !important;
	}
	#lux-policy .lux-policy__shell {
		width: calc(100% - 48px) !important;
		max-width: 900px !important;
	}
	#lux-policy .lux-policy__body {
		max-width: 100% !important;
		padding: 48px 42px 54px !important;
		border-radius: 16px !important;
	}
	#lux-policy .lux-policy__body #lux-policy-title,
	#lux-policy .lux-policy__body h1:first-child {
		font-size: clamp(52px, 7vw, 70px) !important;
	}
}

@media (max-width: 767px) {
	#lux-policy {
		padding: 76px max(18px, env(safe-area-inset-right)) 74px max(18px, env(safe-area-inset-left)) !important;
	}
	#lux-policy .lux-policy__shell {
		width: 100% !important;
		max-width: none !important;
	}
	#lux-policy .lux-policy__body {
		width: 100% !important;
		max-width: none !important;
		padding: 36px 22px 40px !important;
		border-radius: 13px !important;
	}
	#lux-policy .lux-policy__body #lux-policy-title,
	#lux-policy .lux-policy__body h1:first-child {
		margin-bottom: 34px !important;
		padding-bottom: 25px !important;
		font-size: clamp(40px, 12vw, 54px) !important;
		line-height: 1.04 !important;
		letter-spacing: -0.045em !important;
	}
	#lux-policy .lux-policy__body #lux-policy-title::after,
	#lux-policy .lux-policy__body h1:first-child::after {
		width: 58px;
	}
	#lux-policy .lux-policy__body h1:first-child + p {
		margin-bottom: 18px !important;
		font-size: 12px !important;
	}
	#lux-policy .lux-policy__body h2 {
		margin-top: 40px !important;
		margin-bottom: 18px !important;
		padding-top: 16px !important;
		font-size: clamp(27px, 8vw, 35px) !important;
	}
	#lux-policy .lux-policy__body h3 {
		font-size: 18px !important;
	}
	#lux-policy .lux-policy__body p,
	#lux-policy .lux-policy__body li,
	#lux-policy .lux-policy__body td,
	#lux-policy .lux-policy__body th {
		font-size: 15px !important;
		line-height: 1.72 !important;
	}
	#lux-policy .lux-policy__body ul,
	#lux-policy .lux-policy__body ol {
		padding-left: 22px !important;
	}
	#lux-policy .lux-policy__body table {
		margin-top: 23px !important;
		margin-bottom: 29px !important;
	}
	#lux-policy .lux-policy__body th,
	#lux-policy .lux-policy__body td {
		min-width: 190px;
		padding: 13px 14px !important;
	}
}

@media (max-width: 380px) {
	#lux-policy {
		padding: 68px max(15px, env(safe-area-inset-right)) 66px max(15px, env(safe-area-inset-left)) !important;
	}
	#lux-policy .lux-policy__body {
		padding: 31px 17px 36px !important;
		border-radius: 11px !important;
	}
	#lux-policy .lux-policy__body #lux-policy-title,
	#lux-policy .lux-policy__body h1:first-child {
		font-size: clamp(36px, 11.5vw, 46px) !important;
	}
	#lux-policy .lux-policy__body h2 {
		font-size: clamp(25px, 7.6vw, 31px) !important;
	}
	#lux-policy .lux-policy__body th,
	#lux-policy .lux-policy__body td {
		min-width: 175px;
	}
}

@media (max-width: 900px) and (orientation: landscape) and (max-height: 600px) {
	#lux-policy {
		padding: 72px max(28px, env(safe-area-inset-right)) 70px max(28px, env(safe-area-inset-left)) !important;
	}
	#lux-policy .lux-policy__body #lux-policy-title,
	#lux-policy .lux-policy__body h1:first-child {
		font-size: clamp(42px, 6.2vw, 58px) !important;
	}
}

@media print {
	#lux-policy {
		padding: 0 !important;
		background: #ffffff !important;
		color: #000000 !important;
	}
	#lux-policy .lux-policy__shell,
	#lux-policy .lux-policy__body {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		background: #ffffff !important;
		box-shadow: none !important;
	}
	#lux-policy .lux-policy__body *,
	#lux-policy .lux-policy__body a {
		color: #000000 !important;
		-webkit-text-fill-color: #000000 !important;
	}
	#lux-policy .lux-policy__body table {
		display: table;
		overflow: visible;
	}
	#lux-policy .lux-policy__body #lux-policy-title::after,
	#lux-policy .lux-policy__body h1:first-child::after {
		background: #000000;
	}
}
/*==============================================================
  POLICY PAGE — TOP GRADIENT TRANSITION
  Dark at top for white header contrast, fading into ivory
==============================================================*/

#lux-policy {
	position: relative;
	isolation: isolate;
	background: #f4efe8;
	overflow: hidden;
}

#lux-policy::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: min(20vh, 240px);
	background: linear-gradient(
		180deg,
		#121014 0%,
		rgba(18, 16, 20, 0.96) 14%,
		rgba(18, 16, 20, 0.82) 32%,
		rgba(18, 16, 20, 0.56) 52%,
		rgba(18, 16, 20, 0.24) 74%,
		rgba(18, 16, 20, 0.00) 100%
	);
	pointer-events: none;
	z-index: 0;
}

#lux-policy > .lux-policy__shell {
	position: relative;
	z-index: 1;
}

/* slightly more depth for desktop */
@media (min-width: 1025px) {
	#lux-policy::before {
		height: min(22vh, 270px);
	}
}

/* controlled mobile fade */
@media (max-width: 767px) {
	#lux-policy::before {
		height: 170px;
		background: linear-gradient(
			180deg,
			#121014 0%,
			rgba(18, 16, 20, 0.94) 18%,
			rgba(18, 16, 20, 0.72) 40%,
			rgba(18, 16, 20, 0.38) 68%,
			rgba(18, 16, 20, 0.00) 100%
		);
	}
}
