/*
 * LynkSafe Travel – brand system for Astra.
 * Every colour comes from Astra's global palette (Appearance → Customize → Global → Colours),
 * so changing a palette colour updates the whole site:
 *   0 Emerald  1 Gold  2 Deep Emerald  3 Ink (body text)  4 White
 *   5 Warm Ivory  6 Slate  7 Hairline  8 Alert (form errors only)
 */

/* ------------------------------------------------------------------ 1. Tokens */
:root {
	--ls-emerald: var(--ast-global-color-0, #064e3b);
	--ls-gold: var(--ast-global-color-1, #d9b66f);
	--ls-deep: var(--ast-global-color-2, #043a2c);
	--ls-ink: var(--ast-global-color-3, #24332d);
	--ls-white: var(--ast-global-color-4, #ffffff);
	--ls-ivory: var(--ast-global-color-5, #f8f7f2);
	--ls-slate: var(--ast-global-color-6, #56655e);
	--ls-hairline: var(--ast-global-color-7, #e5e1d5);
	--ls-alert: var(--ast-global-color-8, #8a1c1c);
	--ls-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--ls-sans: Inter, "Helvetica Neue", Arial, sans-serif;
	--ls-radius-s: 4px;
	--ls-radius: 10px;
	--ls-radius-l: 16px;
	--ls-section: clamp(2.75rem, 1.4rem + 5.2vw, 6.1rem); /* ≈ 47–104px with Astra's 17px root */
	--ls-gutter: clamp(1rem, 0.35rem + 3.2vw, 2.5rem);
	--ls-content: 1200px;
	--ls-shadow: 0 1px 2px color-mix(in srgb, var(--ls-deep) 7%, transparent), 0 16px 36px -22px color-mix(in srgb, var(--ls-deep) 40%, transparent);
	--ls-shadow-lg: 0 2px 6px color-mix(in srgb, var(--ls-deep) 8%, transparent), 0 30px 60px -30px color-mix(in srgb, var(--ls-deep) 45%, transparent);
	--ls-gold-line: color-mix(in srgb, var(--ls-gold) 70%, transparent);
	--ls-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--wp--style--block-gap: 1.25rem;
}

/* ------------------------------------------------------------------ 2. Base */
body.lynksafe {
	background: var(--ls-white);
	color: var(--ls-ink);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

.lynksafe h1,
.lynksafe h2,
.lynksafe h3,
.lynksafe h4 {
	font-family: var(--ls-serif);
	color: var(--ls-emerald);
	text-wrap: balance;
}

.lynksafe h1 { letter-spacing: -0.02em; line-height: 1.04; font-weight: 400; }
.lynksafe h2 { letter-spacing: -0.015em; line-height: 1.08; font-weight: 400; }
.lynksafe h3 { letter-spacing: -0.005em; line-height: 1.18; font-weight: 500; }
.lynksafe h4 { font-weight: 500; }

.lynksafe h1 em,
.lynksafe h2 em,
.lynksafe h3 em {
	font-style: italic;
	font-weight: 400;
}

.lynksafe p { text-wrap: pretty; }

.lynksafe .entry-content a:not(.wp-block-button__link):not(.ls-button):not(.ls-stretched):not(.ls-more) {
	color: var(--ls-emerald);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.lynksafe .entry-content a:not(.wp-block-button__link):not(.ls-button):hover {
	color: var(--ls-deep);
	text-decoration-thickness: 2px;
}

::selection { background: color-mix(in srgb, var(--ls-gold) 55%, var(--ls-white)); color: var(--ls-ink); }

/* Visible keyboard focus: emerald on light, gold on emerald or photographs. */
.lynksafe :focus-visible {
	outline: 3px solid var(--ls-emerald) !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 5px var(--ls-white) !important;
	border-radius: 2px;
}

.lynksafe .ls-section--dark :focus-visible,
.lynksafe .has-ast-global-color-0-background-color :focus-visible,
.lynksafe .wp-block-cover :focus-visible,
.lynksafe .site-header :focus-visible,
.lynksafe .site-footer :focus-visible,
.lynksafe #ast-mobile-popup :focus-visible,
.lynksafe .ast-mobile-popup-drawer :focus-visible {
	outline-color: var(--ls-gold) !important;
	box-shadow: 0 0 0 5px var(--ls-emerald) !important;
}

.lynksafe .screen-reader-text:focus { background: var(--ls-white); color: var(--ls-emerald); }

@media (prefers-reduced-motion: reduce) {
	.lynksafe *,
	.lynksafe *::before,
	.lynksafe *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

html { scroll-padding-top: 110px; }

/* ------------------------------------------------------------------ 3. Header */
.lynksafe .site-header .ast-above-header-bar {
	border-bottom: 1px solid color-mix(in srgb, var(--ls-gold) 28%, transparent);
	min-height: 38px;
}

.lynksafe .ls-topbar__tagline {
	margin: 0;
	font: 600 0.72rem/1 var(--ls-sans);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ls-gold);
}

.lynksafe .ls-topbar__links {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 1.4rem;
	font: 500 0.8rem/1.4 var(--ls-sans);
	color: var(--ls-ivory);
}

.lynksafe .ls-topbar__links a {
	color: var(--ls-ivory);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 32px;
}

.lynksafe .ls-topbar__links a:hover { color: var(--ls-white); text-decoration: underline; text-underline-offset: 0.25em; }

.lynksafe .ls-soon {
	display: inline-block;
	padding: 0.1rem 0.45rem;
	border: 1px solid color-mix(in srgb, var(--ls-gold) 65%, transparent);
	border-radius: 999px;
	font-size: 0.66rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ls-gold);
}

.lynksafe .ls-topbar__locale {
	color: color-mix(in srgb, var(--ls-ivory) 78%, var(--ls-emerald));
	padding-left: 1.2rem;
	border-left: 1px solid color-mix(in srgb, var(--ls-ivory) 25%, transparent);
}

/* Logo */
.lynksafe .ls-logo {
	display: inline-flex;
	align-items: center;
	color: var(--ls-gold);
	line-height: 0;
	text-decoration: none;
}

.lynksafe .ls-logo svg { display: block; height: auto; fill: currentColor; }
.lynksafe .ls-logo--header .ls-logo__primary { width: 188px; }
.lynksafe .ls-logo--header .ls-logo__small { display: none; width: 150px; }
.lynksafe .ls-logo--footer .ls-logo__primary { width: 210px; }
.lynksafe .ls-logo--footer .ls-logo__small { display: none; }

@media (max-width: 639px) {
	.lynksafe .ls-logo--header .ls-logo__primary { display: none; }
	.lynksafe .ls-logo--header .ls-logo__small { display: block; }
}

.lynksafe .site-header .site-logo-img { padding: 0; }

/* Primary menu */
.lynksafe .main-header-menu > .menu-item > .menu-link {
	position: relative;
	font-family: var(--ls-sans);
	letter-spacing: 0.01em;
}

.lynksafe .main-header-menu > .menu-item > .menu-link::after {
	content: "";
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: calc(50% - 1.05em);
	height: 2px;
	background: var(--ls-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.25s var(--ls-ease);
}

.lynksafe .main-header-menu > .menu-item:hover > .menu-link::after,
.lynksafe .main-header-menu > .menu-item:focus-within > .menu-link::after,
.lynksafe .main-header-menu > .current-menu-item > .menu-link::after,
.lynksafe .main-header-menu > .current-menu-ancestor > .menu-link::after,
.lynksafe .main-header-menu > .current-page-ancestor > .menu-link::after {
	transform: scaleX(1);
}

.lynksafe .main-header-menu .dropdown-menu-toggle .ast-icon svg { fill: currentColor; }

/* Dropdowns: white panel, emerald text. */
.lynksafe .ast-desktop .main-header-menu .sub-menu,
.lynksafe .main-header-menu .sub-menu {
	background: var(--ls-white);
	border: 1px solid var(--ls-hairline);
	border-radius: var(--ls-radius);
	box-shadow: var(--ls-shadow-lg);
	padding: 0.5rem;
	width: 17rem;
}

.lynksafe .main-header-menu .sub-menu .menu-link {
	color: var(--ls-emerald) !important;
	font: 500 0.94rem/1.35 var(--ls-sans);
	padding: 0.65rem 0.85rem !important;
	border-radius: 6px;
}

.lynksafe .main-header-menu .sub-menu .menu-link .ast-icon { display: none; }

.lynksafe .main-header-menu .sub-menu .menu-item:hover > .menu-link,
.lynksafe .main-header-menu .sub-menu .menu-link:focus {
	background: var(--ls-ivory);
	color: var(--ls-deep) !important;
}

.lynksafe .main-header-menu .sub-menu .ls-menu-all > .menu-link {
	font-weight: 600;
	border-bottom: 1px solid var(--ls-hairline);
	border-radius: 6px 6px 0 0;
	margin-bottom: 0.25rem;
}

@media (min-width: 1181px) {
	.lynksafe .main-header-menu .ls-menu-visas > .sub-menu {
		width: 30rem;
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: 0.25rem;
	}
	.lynksafe .main-header-menu .ls-menu-visas > .sub-menu .ls-menu-all { grid-column: 1 / -1; }
	.lynksafe .main-header-menu .ls-menu-visas:not(:hover):not(:focus-within) > .sub-menu { display: none; }
	.lynksafe .ls-menu-closed > .sub-menu { display: none !important; }
	/* Keyboard users: open a dropdown while focus is inside it (Astra only opens on hover). */
	.lynksafe .main-header-menu > .menu-item-has-children:focus-within:not(.ls-menu-closed) > .sub-menu { left: 0; visibility: visible; }
}

/* Header CTA */
.lynksafe .ast-header-button-1 .ast-custom-button {
	font-family: var(--ls-sans);
	letter-spacing: 0.01em;
	transition: background-color 0.2s, color 0.2s;
}

/* Mobile header and off-canvas menu */
.lynksafe .ast-mobile-header-wrap .ast-primary-header-bar { border-bottom: 0; }
.lynksafe .ast-button-wrap .menu-toggle .mobile-menu-toggle-icon .ast-mobile-svg { fill: var(--ls-ivory); }
.lynksafe .ast-button-wrap .menu-toggle { min-width: 44px; min-height: 44px; }

.lynksafe #ast-mobile-popup .ast-mobile-popup-inner,
.lynksafe .ast-mobile-popup-drawer .ast-mobile-popup-inner { background: var(--ls-emerald); }

.lynksafe .ast-mobile-popup-drawer .main-header-menu .menu-link,
.lynksafe .ast-mobile-popup-drawer .main-header-menu .sub-menu .menu-link {
	color: var(--ls-ivory) !important;
	font: 500 1.02rem/1.4 var(--ls-sans);
	padding-top: 0.85rem !important;
	padding-bottom: 0.85rem !important;
	background: transparent !important;
}

.lynksafe .ast-mobile-popup-drawer .main-header-menu .sub-menu {
	background: color-mix(in srgb, var(--ls-deep) 55%, var(--ls-emerald)) !important;
	border: 0;
	box-shadow: none;
	width: auto;
	border-radius: 0;
	padding: 0;
	display: none;
}

.lynksafe .ast-mobile-popup-drawer .main-header-menu .menu-item.ast-submenu-expanded > .sub-menu { display: block; }
.lynksafe .ast-mobile-popup-drawer .main-header-menu .sub-menu .menu-link { padding-left: 1.75rem !important; font-size: 0.96rem; }
.lynksafe .ast-mobile-popup-drawer .main-header-menu .menu-link::after { display: none; }
.lynksafe .ast-mobile-popup-drawer .ast-menu-toggle { color: var(--ls-gold); min-width: 44px; min-height: 44px; }
.lynksafe .ast-mobile-popup-drawer .ast-menu-toggle .ast-icon svg { fill: var(--ls-gold); }
.lynksafe .ast-mobile-popup-drawer .menu-toggle-close { color: var(--ls-ivory); }
.lynksafe .ast-mobile-popup-drawer .menu-toggle-close svg { fill: var(--ls-ivory); }
.lynksafe .ast-mobile-popup-drawer .ast-header-button-1 { width: 100%; padding: 1rem 20px 0.5rem; }
.lynksafe .ast-mobile-popup-drawer .ast-header-button-1 .ast-custom-button { width: 100%; justify-content: center; display: flex; }
.lynksafe .ast-mobile-popup-drawer .ast-header-html-2 { padding: 0.75rem 20px 1.5rem; }
.lynksafe .ast-mobile-popup-drawer .ls-topbar__links { flex-direction: column; align-items: flex-start; font-size: 0.95rem; }
.lynksafe .ast-mobile-popup-drawer .ls-topbar__locale { border-left: 0; padding-left: 0; }

/* ------------------------------------------------------------------ 4. Footer */
.lynksafe .site-footer {
	color: var(--ls-ivory);
	font-size: 0.95rem;
}

.lynksafe .site-footer .site-primary-footer-wrap { padding-top: clamp(3rem, 2rem + 4vw, 5.5rem); padding-bottom: 2.5rem; }
.lynksafe .site-footer .site-below-footer-wrap { padding-bottom: 2rem; }
.lynksafe .site-footer .ast-builder-grid-row { column-gap: clamp(2rem, 1rem + 4vw, 5rem); }
.lynksafe .site-footer .widget { margin: 0; }
@media (max-width: 921px) {
	.lynksafe .site-footer .ast-builder-grid-row-container-inner { padding-left: var(--ls-gutter); padding-right: var(--ls-gutter); }
	.lynksafe .site-footer .ast-builder-grid-row { row-gap: 2.25rem; }
}
.lynksafe .site-footer p { color: color-mix(in srgb, var(--ls-ivory) 92%, var(--ls-emerald)); margin: 0 0 0.9rem; }

.lynksafe .ls-footer-brand .wp-block-lynksafe-logo { margin-bottom: 1.4rem; }
.lynksafe .ls-footer-about { max-width: 24rem; font-size: 1rem; line-height: 1.7; }

.lynksafe .ls-footer-tagline {
	font-family: var(--ls-serif);
	font-style: italic;
	font-size: 1.35rem !important;
	color: var(--ls-gold) !important;
}

.lynksafe .site-footer .ls-footer-title {
	font: 600 0.74rem/1.3 var(--ls-sans);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ls-gold);
	margin: 0 0 1.1rem;
}

.lynksafe .site-footer .ls-footer-links { margin: 0; padding: 0; list-style: none; }
.lynksafe .site-footer .ls-footer-links li { margin: 0 0 0.55rem; }

.lynksafe .site-footer a {
	color: var(--ls-ivory);
	text-decoration: none;
	text-underline-offset: 0.22em;
}

.lynksafe .site-footer a:hover,
.lynksafe .site-footer a:focus-visible {
	color: var(--ls-white);
	text-decoration: underline;
	text-decoration-color: var(--ls-gold);
}

.lynksafe .ls-footer-base {
	border-top: 1px solid color-mix(in srgb, var(--ls-gold) 30%, transparent);
	padding-top: 1.75rem;
	font-size: 0.84rem;
}

.lynksafe .ls-footer-disclaimer { max-width: 60rem; font-size: 0.84rem !important; line-height: 1.65; }
.lynksafe .ls-footer-bottom { gap: 0.75rem 2rem; align-items: center; margin-top: 0.5rem; }
.lynksafe .ls-footer-bottom p { margin: 0 !important; font-size: 0.84rem; }
.lynksafe .ls-footer-legal { display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; list-style: none; margin: 0; padding: 0; }
.lynksafe .ls-footer-legal li { margin: 0; }
.lynksafe .ls-business { font-size: 0.84rem; }
.lynksafe .ls-business strong { color: var(--ls-white); font-weight: 600; }

/* ------------------------------------------------------------------ 5. Layout */
.lynksafe .entry-content > *:first-child { margin-top: 0; }
.lynksafe.ast-page-builder-template .entry-content[data-ast-blocks-layout] > * { margin-top: 0; margin-bottom: 0; }
.lynksafe .site-content > .ast-container { max-width: none; padding: 0; }

.lynksafe .ls-section {
	padding-top: var(--ls-section);
	padding-bottom: var(--ls-section);
	padding-left: var(--ls-gutter);
	padding-right: var(--ls-gutter);
	margin: 0 !important;
}

.lynksafe .ls-section--tight { padding-top: clamp(1.75rem, 1rem + 2vw, 3rem); padding-bottom: clamp(1.75rem, 1rem + 2vw, 3rem); }

.lynksafe .ls-section > .wp-block-group__inner-container,
.lynksafe .ls-section.is-layout-constrained > * { max-width: var(--ls-content); }

.lynksafe .ls-section.is-layout-constrained > .alignwide { max-width: var(--ls-content); }

.lynksafe .ls-section--dark,
.lynksafe .ls-section--dark h1,
.lynksafe .ls-section--dark h2,
.lynksafe .ls-section--dark h3,
.lynksafe .ls-section--dark h4,
.lynksafe .ls-section--dark p,
.lynksafe .ls-section--dark li { color: var(--ls-white); }

.lynksafe .ls-section--dark p,
.lynksafe .ls-section--dark li { color: var(--ls-ivory); }

.lynksafe .ls-section--dark .is-style-ls-eyebrow { color: var(--ls-gold); }
.lynksafe .ls-section--dark a:not(.wp-block-button__link):not(.ls-button) { color: var(--ls-white) !important; text-decoration-color: var(--ls-gold) !important; }

.lynksafe .wp-block-columns.ls-cols--wide-gap { gap: clamp(2rem, 1rem + 4vw, 5rem); }
.lynksafe .wp-block-columns { margin-bottom: 0; }

/* Vertical rhythm inside sections */
.lynksafe .entry-content .wp-block-group.is-layout-flow > * + *,
.lynksafe .entry-content .wp-block-group.is-layout-constrained > * + *,
.lynksafe .entry-content .wp-block-column > * + *,
.lynksafe .entry-content .wp-block-cover__inner-container > * + * { margin-block-start: var(--wp--style--block-gap); }
.lynksafe .entry-content .is-layout-grid > *,
.lynksafe .entry-content .is-layout-flex > * { margin-block-start: 0; }
.lynksafe .entry-content p { margin-bottom: 0; }
.lynksafe .entry-content h2 + p,
.lynksafe .entry-content h1 + p { margin-block-start: 1rem; }

/* ------------------------------------------------------------------ 6. Text styles */
.lynksafe .is-style-ls-eyebrow {
	font: 600 0.75rem/1.4 var(--ls-sans) !important;
	letter-spacing: 0.17em !important;
	text-transform: uppercase;
	color: var(--ls-emerald);
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin-bottom: 0 !important;
}

.lynksafe .is-style-ls-eyebrow::before {
	content: "";
	flex: 0 0 auto;
	width: 2rem;
	height: 1px;
	background: var(--ls-gold);
}

.lynksafe .is-style-ls-eyebrow + h1,
.lynksafe .is-style-ls-eyebrow + h2,
.lynksafe .is-style-ls-eyebrow + h3 { margin-block-start: 1rem !important; }

.lynksafe .is-style-ls-lead,
.lynksafe .ls-hero__text {
	font-size: clamp(1.1rem, 1rem + 0.45vw, 1.3rem);
	line-height: 1.6;
	max-width: 44rem;
}

.lynksafe p.is-style-ls-editorial {
	font-family: var(--ls-serif);
	font-style: italic;
	font-size: clamp(1.55rem, 1.2rem + 1.3vw, 2.3rem);
	line-height: 1.2;
	color: var(--ls-emerald);
}

.lynksafe .is-style-ls-small,
.lynksafe .ls-small {
	font-size: 0.88rem !important;
	line-height: 1.6;
	color: var(--ls-slate);
}

.lynksafe .ls-section--dark .is-style-ls-small { color: color-mix(in srgb, var(--ls-ivory) 88%, var(--ls-emerald)); }

.lynksafe .is-style-ls-link a,
.lynksafe .ls-textlink,
.lynksafe .ls-more {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	font: 600 0.95rem/1.4 var(--ls-sans);
	color: var(--ls-emerald) !important;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: color-mix(in srgb, var(--ls-emerald) 40%, transparent);
	text-underline-offset: 0.3em;
}

.lynksafe .is-style-ls-link a::after {
	content: "";
	width: 1.05em;
	height: 1.05em;
	background: currentColor;
	-webkit-mask: var(--ls-arrow) center / contain no-repeat;
	mask: var(--ls-arrow) center / contain no-repeat;
	transition: transform 0.2s var(--ls-ease);
}

.lynksafe .is-style-ls-link a:hover::after,
.lynksafe .ls-more:hover svg,
.lynksafe .ls-textlink:hover svg { transform: translateX(3px); }

.lynksafe .is-style-ls-link a:hover,
.lynksafe .ls-textlink:hover,
.lynksafe .ls-more:hover { text-decoration-color: currentColor; text-decoration-thickness: 2px; }

.lynksafe .ls-more svg,
.lynksafe .ls-textlink svg { transition: transform 0.2s var(--ls-ease); }

.lynksafe .ls-link--light a,
.lynksafe .ls-section--dark .is-style-ls-link a { color: var(--ls-white) !important; text-decoration-color: var(--ls-gold) !important; }

.lynksafe .ls-center-note { text-align: center; color: var(--ls-slate); font-size: 0.95rem; }
.lynksafe .ls-h-small { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem) !important; }
.lynksafe .ls-404-more { margin-top: clamp(3rem, 2rem + 3vw, 4.5rem) !important; padding-top: 2rem; border-top: 1px solid var(--ls-hairline); }

/* Arrow icon used by links and buttons */
:root {
	--ls-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
	--ls-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
	--ls-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M12 5v14'/%3E%3C/svg%3E");
	--ls-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
	--ls-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------------ 7. Buttons */
.lynksafe .wp-block-button__link,
.lynksafe .ls-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
	min-height: 50px;
	padding: 0.85rem 1.6rem;
	border: 1px solid var(--ls-emerald);
	border-radius: var(--ls-radius-s);
	background: var(--ls-emerald);
	color: var(--ls-white) !important;
	font: 600 0.95rem/1.25 var(--ls-sans);
	letter-spacing: 0.01em;
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;
}

.lynksafe .wp-block-button__link::after {
	content: "";
	width: 1.05em;
	height: 1.05em;
	background: currentColor;
	-webkit-mask: var(--ls-arrow) center / contain no-repeat;
	mask: var(--ls-arrow) center / contain no-repeat;
	transition: transform 0.2s var(--ls-ease);
}

.lynksafe .wp-block-button__link:hover::after,
.lynksafe .ls-button:hover svg { transform: translateX(3px); }
.lynksafe .ls-button svg { transition: transform 0.2s var(--ls-ease); }

.lynksafe .wp-block-button__link:hover,
.lynksafe .ls-button:hover {
	background: var(--ls-deep);
	border-color: var(--ls-deep);
	color: var(--ls-white) !important;
	box-shadow: inset 0 -2px 0 var(--ls-gold);
}

.lynksafe .is-style-ls-gold .wp-block-button__link,
.lynksafe .ls-button--gold {
	background: var(--ls-gold);
	border-color: var(--ls-gold);
	color: var(--ls-emerald) !important;
}

.lynksafe .is-style-ls-gold .wp-block-button__link:hover,
.lynksafe .ls-button--gold:hover {
	background: var(--ls-ivory);
	border-color: var(--ls-gold);
	color: var(--ls-emerald) !important;
	box-shadow: none;
}

/* Astra colours outline buttons from its (unused) secondary-button settings with a
   high-specificity selector, so the brand outline is restated at a matching weight. */
.lynksafe .is-style-outline .wp-block-button__link,
.lynksafe .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button,
.lynksafe .ls-button--outline {
	background: transparent;
	color: var(--ls-emerald) !important;
	border: 1px solid var(--ls-emerald);
}

.lynksafe .is-style-outline .wp-block-button__link:hover,
.lynksafe .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button:hover,
.lynksafe .ls-button--outline:hover { background: var(--ls-emerald); border-color: var(--ls-emerald); color: var(--ls-white) !important; box-shadow: none; }

.lynksafe .ls-section--dark .is-style-outline .wp-block-button__link,
.lynksafe .ls-section--dark .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button { color: var(--ls-white) !important; border-color: color-mix(in srgb, var(--ls-ivory) 75%, transparent); }

.lynksafe .is-style-ls-outline-light .wp-block-button__link {
	background: transparent;
	color: var(--ls-white) !important;
	border-color: color-mix(in srgb, var(--ls-ivory) 75%, transparent);
}

.lynksafe .is-style-ls-outline-light .wp-block-button__link:hover { background: var(--ls-white); color: var(--ls-emerald) !important; border-color: var(--ls-white); box-shadow: none; }

.lynksafe .is-style-ls-text .wp-block-button__link {
	background: transparent;
	border-color: transparent;
	color: var(--ls-emerald) !important;
	padding-left: 0;
	padding-right: 0;
	text-decoration: underline !important;
	text-underline-offset: 0.3em;
}

.lynksafe .is-style-ls-text .wp-block-button__link:hover { background: transparent; box-shadow: none; color: var(--ls-deep) !important; }

.lynksafe .wp-block-buttons { gap: 0.9rem 1rem; }
.lynksafe .wp-block-buttons.is-content-justification-center { justify-content: center; }

.lynksafe .ls-button[disabled],
.lynksafe .ls-button[aria-disabled="true"] {
	background: var(--ls-hairline);
	border-color: var(--ls-hairline);
	color: var(--ls-slate) !important;
	cursor: not-allowed;
	box-shadow: none;
}

@media (max-width: 599px) {
	.lynksafe .wp-block-buttons > .wp-block-button { width: 100%; }
	.lynksafe .wp-block-buttons > .wp-block-button .wp-block-button__link { width: 100%; }
	.lynksafe .wp-block-buttons > .wp-block-button.is-style-ls-text { width: auto; }
	.lynksafe .wp-block-buttons > .wp-block-button.is-style-ls-text .wp-block-button__link { width: auto; justify-content: flex-start; }
}

/* ------------------------------------------------------------------ 8. Lists, rules, notices */
.lynksafe .is-style-ls-check { list-style: none; padding-left: 0; margin-left: 0; }
.lynksafe .is-style-ls-check li { position: relative; padding-left: 2rem; margin-bottom: 0.7rem; }
.lynksafe .is-style-ls-check li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.3em;
	width: 1.2rem;
	height: 1.2rem;
	border-radius: 50%;
	background: color-mix(in srgb, var(--ls-emerald) 10%, var(--ls-white));
}
.lynksafe .is-style-ls-check li::after {
	content: "";
	position: absolute;
	left: 0.28rem;
	top: calc(0.3em + 0.28rem);
	width: 0.64rem;
	height: 0.64rem;
	background: var(--ls-emerald);
	-webkit-mask: var(--ls-check) center / contain no-repeat;
	mask: var(--ls-check) center / contain no-repeat;
}
.lynksafe .ls-section--dark .is-style-ls-check li::before { background: color-mix(in srgb, var(--ls-gold) 22%, transparent); }
.lynksafe .ls-section--dark .is-style-ls-check li::after { background: var(--ls-gold); }

.lynksafe .is-style-ls-plain { list-style: none; padding-left: 0; margin-left: 0; }

.lynksafe .is-style-ls-pills { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.lynksafe .is-style-ls-pills li {
	margin: 0;
	padding: 0.35rem 0.85rem;
	border: 1px solid color-mix(in srgb, var(--ls-gold) 70%, transparent);
	border-radius: 999px;
	font: 500 0.82rem/1.3 var(--ls-sans);
	letter-spacing: 0.02em;
}

.lynksafe .wp-block-separator.is-style-ls-gold-rule {
	border: 0;
	height: 1px;
	background: linear-gradient(90deg, var(--ls-gold), color-mix(in srgb, var(--ls-gold) 20%, transparent));
	opacity: 1;
	max-width: 12rem;
	margin: 2.5rem 0 !important;
}

.lynksafe .is-style-ls-notice,
.lynksafe .ls-notice {
	background: var(--ls-ivory);
	border-left: 3px solid var(--ls-gold);
	border-radius: 0 var(--ls-radius) var(--ls-radius) 0;
	padding: 1.1rem 1.35rem 1.1rem 3.3rem;
	position: relative;
	font-size: 0.97rem;
}

.lynksafe .is-style-ls-notice::before {
	content: "";
	position: absolute;
	left: 1.15rem;
	top: 1.3rem;
	width: 1.2rem;
	height: 1.2rem;
	background: var(--ls-emerald);
	-webkit-mask: var(--ls-info) center / contain no-repeat;
	mask: var(--ls-info) center / contain no-repeat;
}

.has-ast-global-color-5-background-color .is-style-ls-notice { background: var(--ls-white); }
.lynksafe .is-style-ls-notice p { margin: 0; }
.lynksafe .is-style-ls-notice > * + * { margin-top: 0.6rem !important; }

.lynksafe .ls-qualification__lead { font-size: 1.05rem; color: var(--ls-emerald); }

/* ------------------------------------------------------------------ 9. Cards and grids */
/* WordPress sizes grid columns assuming Astra's 24px block gap, so the gap never exceeds it. */
.lynksafe .ls-grid-blocks { gap: clamp(1rem, 0.6rem + 1.2vw, 24px); }

.lynksafe .is-style-ls-card {
	position: relative;
	background: var(--ls-white);
	border: 1px solid var(--ls-hairline);
	border-radius: var(--ls-radius);
	padding: clamp(1.4rem, 1.1rem + 1vw, 2rem);
	height: 100%;
	transition: box-shadow 0.25s var(--ls-ease), transform 0.25s var(--ls-ease), border-color 0.25s;
}

.has-ast-global-color-5-background-color .is-style-ls-card { border-color: transparent; }
.lynksafe .is-style-ls-card-quiet { background: transparent; padding: 0; }

.lynksafe .ls-card--link:hover,
.lynksafe .ls-card--link:focus-within { box-shadow: var(--ls-shadow); border-color: color-mix(in srgb, var(--ls-gold) 55%, var(--ls-hairline)); transform: translateY(-2px); }

.lynksafe .ls-card__number {
	font: 600 0.75rem/1 var(--ls-sans) !important;
	letter-spacing: 0.16em;
	color: var(--ls-slate);
	position: absolute;
	top: clamp(1.4rem, 1.1rem + 1vw, 2rem);
	right: clamp(1.4rem, 1.1rem + 1vw, 2rem);
	margin: 0 !important;
}

.lynksafe .ls-card__title { font-size: clamp(1.45rem, 1.25rem + 0.6vw, 1.75rem) !important; margin-top: 0 !important; }
.lynksafe .is-style-ls-card p:not(.ls-card__number) { color: var(--ls-ink); }
.lynksafe .ls-card__more { margin-top: 1.25rem !important; }

/* Stretched link: the whole card is clickable, with one real link inside. */
.lynksafe .ls-card--link .ls-card__more a::before,
.lynksafe .ls-stretched::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}

/* Icons on cards and principles (class ls-icon-<Name>) */
.lynksafe [class*="ls-icon-"]::before {
	content: "";
	display: block;
	width: 1.9rem;
	height: 1.9rem;
	margin-bottom: 1.1rem;
	background: var(--ls-emerald);
	-webkit-mask: var(--ls-icon) center / contain no-repeat;
	mask: var(--ls-icon) center / contain no-repeat;
}
.ls-section--dark [class*="ls-icon-"]::before { background: var(--ls-gold); }

.ls-icon-FileCheck2 { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='m3 15 2 2 4-4'/%3E%3C/svg%3E"); }
.ls-icon-MoonStar { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9'/%3E%3Cpath d='M20 3v4'/%3E%3Cpath d='M22 5h-4'/%3E%3C/svg%3E"); }
.ls-icon-Ticket { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z'/%3E%3Cpath d='M13 5v2'/%3E%3Cpath d='M13 17v2'/%3E%3Cpath d='M13 11v2'/%3E%3C/svg%3E"); }
.ls-icon-Compass { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z'/%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3C/svg%3E"); }
.ls-icon-BedDouble { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8'/%3E%3Cpath d='M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4'/%3E%3Cpath d='M12 4v6'/%3E%3Cpath d='M2 18h20'/%3E%3C/svg%3E"); }
.ls-icon-HeartHandshake { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3Cpath d='M12 5 9.04 7.96a2.17 2.17 0 0 0 0 3.08c.82.82 2.13.85 3 .07l2.07-1.9a2.82 2.82 0 0 1 3.79 0l2.96 2.66'/%3E%3Cpath d='m18 15-2-2'/%3E%3Cpath d='m15 18-2-2'/%3E%3C/svg%3E"); }
.ls-icon-ListChecks { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 17 2 2 4-4'/%3E%3Cpath d='m3 7 2 2 4-4'/%3E%3Cpath d='M13 6h8'/%3E%3Cpath d='M13 12h8'/%3E%3Cpath d='M13 18h8'/%3E%3C/svg%3E"); }
.ls-icon-Route { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='19' r='3'/%3E%3Cpath d='M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15'/%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3C/svg%3E"); }
.ls-icon-UserRound { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='5'/%3E%3Cpath d='M20 21a8 8 0 0 0-16 0'/%3E%3C/svg%3E"); }
.ls-icon-UsersRound { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 21a8 8 0 0 0-16 0'/%3E%3Ccircle cx='10' cy='8' r='5'/%3E%3Cpath d='M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3'/%3E%3C/svg%3E"); }
.ls-icon-MapPin { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.ls-icon-BookOpen { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7v14'/%3E%3Cpath d='M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z'/%3E%3C/svg%3E"); }
.ls-icon-CalendarDays { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E"); }
.ls-icon-LockKeyhole { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='16' r='1'/%3E%3Crect x='3' y='10' width='18' height='12' rx='2'/%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3'/%3E%3C/svg%3E"); }
.ls-icon-CircleHelp { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E"); }
.ls-icon-Clock3 { --ls-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16.5 12'/%3E%3C/svg%3E"); }

/* ------------------------------------------------------------------ 10. Section heads */
.lynksafe .ls-section-head { margin-bottom: clamp(1.75rem, 1rem + 2vw, 3rem) !important; gap: 1.25rem 2rem; flex-wrap: wrap; }
.lynksafe .ls-section-head__main { flex: 1 1 32rem; max-width: 46rem; }
.lynksafe .ls-section-head__text { color: var(--ls-ink); font-size: 1.08rem; max-width: 46rem; }
.lynksafe .ls-section-head--center .ls-section-head__text { margin-left: auto !important; margin-right: auto !important; }
.lynksafe .ls-section-head--center { text-align: center; margin-left: auto !important; margin-right: auto !important; max-width: 48rem; }
.lynksafe .ls-section-head--center .is-style-ls-eyebrow { justify-content: center; }
.lynksafe .ls-section-head--center .is-style-ls-eyebrow::after { content: ""; width: 2rem; height: 1px; background: var(--ls-gold); }

/* ------------------------------------------------------------------ 11. Heroes */
.lynksafe .wp-block-cover.ls-hero {
	padding: clamp(6rem, 4rem + 8vw, 10rem) var(--ls-gutter) clamp(3.5rem, 2.5rem + 4vw, 6rem);
	align-items: flex-end;
}

.lynksafe .wp-block-cover.is-style-ls-shade::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(90deg, color-mix(in srgb, var(--ls-deep) 90%, transparent) 0%, color-mix(in srgb, var(--ls-deep) 78%, transparent) 34%, color-mix(in srgb, var(--ls-deep) 40%, transparent) 58%, color-mix(in srgb, var(--ls-deep) 6%, transparent) 82%, transparent 100%),
		linear-gradient(0deg, color-mix(in srgb, var(--ls-deep) 55%, transparent) 0%, transparent 45%);
}

.lynksafe .wp-block-cover.is-style-ls-shade .wp-block-cover__inner-container,
.lynksafe .entry-content .wp-block-cover.is-style-ls-shade.has-custom-content-position .wp-block-cover__inner-container { z-index: 2; width: 100%; max-width: var(--ls-content); margin: 0 auto !important; }
.lynksafe .ls-hero__content { max-width: 46rem !important; margin-left: 0 !important; }
.lynksafe .ls-hero__content > * { max-width: 46rem !important; margin-left: 0 !important; margin-right: 0 !important; }
.lynksafe .ls-hero__content > .ls-hero__text { max-width: 34rem !important; }
/* Astra sets the root size to 17px, so rem values here are 17px based: 4.7rem ≈ 80px. */
.lynksafe .wp-block-cover.ls-hero h1 { color: var(--ls-white); font-size: clamp(2.65rem, 1.5rem + 4.2vw, 4.7rem); }
.lynksafe .wp-block-cover.ls-hero h1 em { color: var(--ls-gold); }
body.lynksafe .entry-content .wp-block-cover.is-style-ls-shade p,
body.lynksafe .entry-content .wp-block-cover.is-style-ls-shade li { color: var(--ls-ivory); }
body.lynksafe .entry-content .wp-block-cover.is-style-ls-shade .is-style-ls-eyebrow { color: var(--ls-gold); }
.lynksafe .wp-block-cover.ls-hero .is-style-ls-editorial { color: var(--ls-white); }
.lynksafe .wp-block-cover.ls-hero .wp-block-buttons { margin-top: 2rem !important; }

.lynksafe .ls-hero__caption {
	margin-top: 2.5rem !important;
	font: 500 0.74rem/1.5 var(--ls-sans) !important;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--ls-ivory) 88%, transparent) !important;
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.lynksafe .ls-hero__caption::before { content: ""; width: 1.5rem; height: 1px; background: var(--ls-gold); }

/* Tablet portrait: stack sidebars under the main text; hide the hero photo caption where the quick form overlaps. */
@media (max-width: 1023px) {
	.lynksafe .wp-block-columns.ls-detail { flex-wrap: wrap !important; }
	.lynksafe .wp-block-columns.ls-detail > .wp-block-column { flex-basis: 100% !important; }
	.lynksafe .ls-detail__aside > .wp-block-lynksafe-visa-facts,
	.lynksafe .ls-detail__aside > .ls-aside-card { position: static; }
	.lynksafe .ls-hero--home .ls-hero__caption { display: none; }
}

/* The gold call to action stays in the header on tablets and phones. */
@media (max-width: 1180px) {
	.lynksafe .ast-mobile-header-wrap .ast-header-button-1 .ast-custom-button { font-size: 0.85rem; line-height: 1.2; padding: 0.6rem 0.95rem; min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; border-radius: var(--ls-radius-s); }
	.lynksafe .ast-mobile-header-wrap .site-header-primary-section-right { gap: 0.35rem; }
}
@media (max-width: 480px) {
	.lynksafe .ls-logo--header .ls-logo__small { width: 118px; }
	.lynksafe .ast-mobile-header-wrap .ast-header-button-1 .ast-custom-button { font-size: 0.8rem; padding: 0.55rem 0.75rem; }
	.lynksafe .ast-mobile-header-wrap .ast-builder-grid-row { column-gap: 0.5rem; }
}
@media (max-width: 359px) {
	.lynksafe .ast-mobile-header-wrap .ast-header-button-1 { display: none; }
}

@media (max-width: 781px) {
	.lynksafe .ls-hero__caption { display: none; }
	.lynksafe .ls-quick-wrap { margin-top: -2rem !important; }
	.lynksafe .wp-block-cover.ls-hero { min-height: 78vh !important; }
	.lynksafe .wp-block-cover.is-style-ls-shade::before {
		background: linear-gradient(0deg, color-mix(in srgb, var(--ls-deep) 92%, transparent) 0%, color-mix(in srgb, var(--ls-deep) 70%, transparent) 45%, color-mix(in srgb, var(--ls-deep) 25%, transparent) 100%);
	}
}

/* Split hero: text beside a photograph on ivory */
.lynksafe .ls-hero-split { padding-top: clamp(3rem, 2rem + 4vw, 6rem); }
.lynksafe .ls-hero-split h1 { font-size: clamp(2.6rem, 1.6rem + 3.4vw, 4.4rem); }
.lynksafe .ls-hero-split .wp-block-image img { border-radius: var(--ls-radius-l); box-shadow: var(--ls-shadow-lg); }
.lynksafe .ls-hero-split .ls-hero__text { color: var(--ls-ink); }
.lynksafe .ls-hero-split .wp-block-buttons { margin-top: 2rem !important; }
.lynksafe .ls-hero-split--no-image { text-align: left; }

/* Text hero on emerald */
.lynksafe .ls-text-hero { padding-top: clamp(3.5rem, 2rem + 5vw, 7rem); padding-bottom: clamp(3.5rem, 2rem + 5vw, 7rem); position: relative; overflow: hidden; }
.lynksafe .ls-text-hero h1 { color: var(--ls-white); font-size: clamp(2.6rem, 1.6rem + 3.4vw, 4.4rem); }
.lynksafe .ls-text-hero h1 em { color: var(--ls-gold); }
.lynksafe .ls-text-hero .ls-text-hero__inner,
.lynksafe .ls-hero-split .ls-hero-split__solo { max-width: var(--ls-content) !important; margin-left: auto !important; margin-right: auto !important; }
.lynksafe .ls-text-hero .ls-text-hero__inner > *,
.lynksafe .ls-hero-split .ls-hero-split__solo > * { margin-left: 0 !important; margin-right: auto !important; }
.lynksafe .ls-text-hero::after {
	content: "";
	position: absolute;
	right: -6rem;
	top: -6rem;
	width: 26rem;
	height: 26rem;
	border: 1px solid color-mix(in srgb, var(--ls-gold) 30%, transparent);
	border-radius: 50%;
	pointer-events: none;
}

/* ------------------------------------------------------------------ 12. Homepage pieces */
.lynksafe .ls-quick-wrap { position: relative; z-index: 3; margin-top: clamp(-5.5rem, -3rem - 3vw, -3rem) !important; padding: 0 var(--ls-gutter); }
.lynksafe .ls-quick-wrap > * { max-width: var(--ls-content); margin-left: auto !important; margin-right: auto !important; }

.lynksafe .ls-principles { gap: 1.5rem 2.5rem; align-items: flex-start; max-width: var(--ls-content) !important; margin: 0 auto !important; }
.lynksafe .ls-principle { flex: 1 1 14rem; display: grid !important; grid-template-columns: 2.4rem 1fr; column-gap: 0.9rem; margin: 0 !important; }
.lynksafe .ls-principle::before { grid-row: span 2; margin: 0.15rem 0 0 !important; width: 2.1rem !important; height: 2.1rem !important; }
.lynksafe .ls-principle > * { margin: 0 !important; }
.lynksafe .ls-principle__title { font: 600 1rem/1.35 var(--ls-sans) !important; color: var(--ls-emerald); }
.lynksafe .ls-principle__text { font-size: 0.93rem; color: var(--ls-slate); line-height: 1.55; }
.lynksafe .ls-principles__link { flex: 0 0 auto; align-self: center; margin: 0 !important; }
.lynksafe .ls-principles { border-top: 1px solid var(--ls-hairline); border-bottom: 1px solid var(--ls-hairline); padding: 1.75rem 0; }

/* Editorial splits (media & text) */
.lynksafe .entry-content .wp-block-media-text > .wp-block-media-text__media { margin: 0 !important; width: 100%; max-width: none; }
.lynksafe .entry-content .wp-block-media-text > .wp-block-media-text__content { margin-right: auto; margin-left: 0; }
.lynksafe .entry-content .wp-block-media-text.has-media-on-the-right > .wp-block-media-text__content { margin-left: auto; margin-right: 0; }
.lynksafe .wp-block-media-text.is-style-ls-split { min-height: min(46rem, 88vh); }
.lynksafe .wp-block-media-text.is-style-ls-split .wp-block-media-text__content {
	padding: clamp(2.5rem, 1.5rem + 4.5vw, 6.5rem) clamp(1.5rem, 1rem + 4vw, 6rem);
	max-width: 44rem;
}
.lynksafe .wp-block-media-text.is-style-ls-split.has-media-on-the-right .wp-block-media-text__content { margin-left: auto; }
.lynksafe .wp-block-media-text.is-style-ls-split .wp-block-media-text__content > * + * { margin-top: 1.25rem; }
.lynksafe .wp-block-media-text.has-ast-global-color-0-background-color h2,
.lynksafe .wp-block-media-text.has-ast-global-color-0-background-color h3 { color: var(--ls-white); }
.lynksafe .wp-block-media-text.has-ast-global-color-0-background-color h2 em { color: var(--ls-gold); }
.lynksafe .wp-block-media-text.has-ast-global-color-0-background-color p,
.lynksafe .wp-block-media-text.has-ast-global-color-0-background-color li { color: var(--ls-ivory); }
.lynksafe .wp-block-media-text.has-ast-global-color-0-background-color .is-style-ls-eyebrow { color: var(--ls-gold); }
.lynksafe .wp-block-media-text.has-ast-global-color-0-background-color .is-style-ls-link a { color: var(--ls-white) !important; text-decoration-color: var(--ls-gold) !important; }
.lynksafe .wp-block-media-text.has-ast-global-color-0-background-color :focus-visible { outline-color: var(--ls-gold) !important; box-shadow: 0 0 0 5px var(--ls-emerald) !important; }
.lynksafe .wp-block-media-text.is-style-ls-split:not(.has-background) { background: var(--ls-ivory); }

@media (max-width: 781px) {
	.lynksafe .wp-block-media-text.is-style-ls-split .wp-block-media-text__media { min-height: 58vw; }
	.lynksafe .wp-block-media-text.is-style-ls-split .wp-block-media-text__content { padding: 2.5rem var(--ls-gutter) 3rem; }
}

/* Visa rows on the homepage */
.lynksafe .ls-visa-list { border-top: 1px solid var(--ls-hairline); margin-bottom: 1.5rem !important; }
.lynksafe .ls-visa-list > * { margin: 0 !important; }
.lynksafe .ls-visa-row a {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: baseline;
	gap: 0.25rem 1rem;
	padding: 1.05rem 2.25rem 1.05rem 0.25rem;
	border-bottom: 1px solid var(--ls-hairline);
	text-decoration: none !important;
	position: relative;
}
.lynksafe .ls-visa-row a strong { font: 500 1.6rem/1.2 var(--ls-serif); color: var(--ls-emerald); }
.lynksafe .ls-visa-row a span { font-size: 0.85rem; color: var(--ls-slate); }
.lynksafe .ls-visa-row a::after {
	content: "";
	position: absolute;
	right: 0.35rem;
	top: 50%;
	width: 1.2rem;
	height: 1.2rem;
	margin-top: -0.6rem;
	background: var(--ls-emerald);
	-webkit-mask: var(--ls-arrow) center / contain no-repeat;
	mask: var(--ls-arrow) center / contain no-repeat;
	transition: transform 0.2s var(--ls-ease);
}
.lynksafe .ls-visa-row a:hover { background: var(--ls-ivory); }
.lynksafe .ls-visa-row a:hover::after { transform: translateX(4px); }

/* Steps */
.lynksafe .wp-block-columns.is-style-ls-steps { gap: clamp(1.5rem, 1rem + 2vw, 3rem); counter-reset: none; }
.lynksafe .is-style-ls-steps .wp-block-column { border-top: 1px solid var(--ls-gold-line); padding-top: 1.5rem; }
.lynksafe .ls-step-number { font: 400 3rem/1 var(--ls-serif) !important; color: var(--ls-emerald); margin: 0 0 0.75rem !important; }
.lynksafe .ls-section--dark .ls-step-number { color: var(--ls-gold); }
.lynksafe .is-style-ls-steps h3 { font-size: 1.6rem !important; }

/* FAQs */
.lynksafe .ls-faq-list { border-top: 1px solid var(--ls-hairline); }
.lynksafe .ls-faq-list > * { margin: 0 !important; }
.lynksafe .wp-block-details.is-style-ls-faq,
.lynksafe .wp-block-details.is-style-ls-day { border-bottom: 1px solid var(--ls-hairline); }
.lynksafe .wp-block-details.is-style-ls-faq summary,
.lynksafe .wp-block-details.is-style-ls-day summary {
	list-style: none;
	position: relative;
	cursor: pointer;
	padding: 1.3rem 3rem 1.3rem 0;
	font: 500 clamp(1.25rem, 1.1rem + 0.4vw, 1.45rem)/1.3 var(--ls-serif);
	color: var(--ls-emerald);
}
.lynksafe .wp-block-details summary::-webkit-details-marker { display: none; }
.lynksafe .wp-block-details.is-style-ls-faq summary::after,
.lynksafe .wp-block-details.is-style-ls-day summary::after {
	content: "";
	position: absolute;
	right: 0.3rem;
	top: 50%;
	width: 1.3rem;
	height: 1.3rem;
	margin-top: -0.65rem;
	background: var(--ls-emerald);
	-webkit-mask: var(--ls-plus) center / contain no-repeat;
	mask: var(--ls-plus) center / contain no-repeat;
}
.lynksafe .wp-block-details[open].is-style-ls-faq summary::after,
.lynksafe .wp-block-details[open].is-style-ls-day summary::after { -webkit-mask-image: var(--ls-minus); mask-image: var(--ls-minus); }
.lynksafe .wp-block-details.is-style-ls-faq > :not(summary),
.lynksafe .wp-block-details.is-style-ls-day > :not(summary) { padding: 0 3rem 1.4rem 0; margin: 0; }
.lynksafe .wp-block-details summary:hover { color: var(--ls-deep); }

.lynksafe .ls-day-label { font: 600 0.72rem/1 var(--ls-sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ls-slate); display: block; margin-bottom: 0.4rem; }

/* ------------------------------------------------------------------ 13. Breadcrumbs */
.ls-breadcrumbs { background: var(--ls-white); border-bottom: 1px solid var(--ls-hairline); padding: 0.85rem var(--ls-gutter); font: 500 0.85rem/1.5 var(--ls-sans); }
.ls-breadcrumbs__list { list-style: none; margin: 0 auto; padding: 0; max-width: var(--ls-content); display: flex; flex-wrap: wrap; gap: 0.25rem 0; }
.ls-breadcrumbs__item { margin: 0; color: var(--ls-slate); }
.ls-breadcrumbs__item + .ls-breadcrumbs__item::before { content: "/"; margin: 0 0.6rem; color: var(--ls-slate); }
.ls-breadcrumbs a { color: var(--ls-emerald); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--ls-emerald) 35%, transparent); text-underline-offset: 0.2em; }
.ls-breadcrumbs a:hover { text-decoration-color: currentColor; }
.ls-breadcrumbs [aria-current="page"] { color: var(--ls-ink); }

/* ------------------------------------------------------------------ 14. Listings */
.ls-directory { width: 100%; }
.ls-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(1rem, 0.6rem + 1.2vw, 1.75rem); }
.ls-grid > li { margin: 0; }
.ls-grid--destinations { grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 1fr)); }
.ls-grid--trips,
.ls-grid--collections,
.ls-grid--guides { grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); }
.ls-grid--visas { grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); }

.ls-directory__controls { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-bottom: 1.25rem; }
.ls-search { position: relative; flex: 1 1 18rem; max-width: 30rem; }
.ls-search__icon { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--ls-slate); pointer-events: none; }
.lynksafe .ls-search__input {
	width: 100%;
	min-height: 52px;
	padding: 0.75rem 1rem 0.75rem 2.9rem !important;
	border: 1px solid var(--ls-slate) !important;
	border-radius: 999px !important;
	background: var(--ls-white) !important;
	font: 400 1rem/1.4 var(--ls-sans);
	color: var(--ls-ink);
}
.lynksafe .ls-search__input::placeholder { color: var(--ls-slate); opacity: 1; }
.ls-filters { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.lynksafe .ls-filter {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 44px;
	padding: 0.5rem 1rem;
	border: 1px solid var(--ls-slate);
	border-radius: 999px;
	background: var(--ls-white);
	color: var(--ls-ink);
	font: 500 0.9rem/1.2 var(--ls-sans);
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.lynksafe .ls-filter:hover { border-color: var(--ls-emerald); color: var(--ls-emerald); background: var(--ls-ivory); }
.lynksafe .ls-filter__tick { display: none; }
.lynksafe .ls-filter[aria-pressed="true"] { background: var(--ls-emerald); border-color: var(--ls-emerald); color: var(--ls-white); }
.lynksafe .ls-filter[aria-pressed="true"] .ls-filter__tick { display: inline-block; color: var(--ls-gold); }
.ls-directory__count { font: 500 0.9rem/1.4 var(--ls-sans); color: var(--ls-slate); margin: 0 0 1.25rem !important; }
.ls-directory__empty { text-align: center; padding: clamp(2rem, 1rem + 4vw, 4rem) 1.5rem; background: var(--ls-ivory); border-radius: var(--ls-radius); }
.has-ast-global-color-5-background-color .ls-directory__empty { background: var(--ls-white); }
.ls-directory__empty h3 { margin: 0 0 0.5rem; }
.ls-directory__empty p { max-width: 34rem; margin: 0 auto 1.25rem !important; }
.ls-directory__empty-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; }
.ls-directory [hidden] { display: none !important; }

/* Destination photo cards */
.ls-dcard__inner { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: var(--ls-radius); overflow: hidden; background: var(--ls-deep); isolation: isolate; }
.ls-dcard__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; transition: transform 0.7s var(--ls-ease); }
.ls-dcard__inner:hover .ls-dcard__img,
.ls-dcard__inner:focus-within .ls-dcard__img { transform: scale(1.04); }
.ls-dcard__shade { position: absolute; inset: 0; background: linear-gradient(0deg, color-mix(in srgb, var(--ls-deep) 92%, transparent) 0%, color-mix(in srgb, var(--ls-deep) 45%, transparent) 42%, transparent 70%); }
.ls-dcard__label {
	position: absolute;
	top: 1rem;
	left: 1rem;
	margin: 0 !important;
	padding: 0.3rem 0.65rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--ls-deep) 72%, transparent);
	color: var(--ls-ivory) !important;
	font: 600 0.66rem/1.3 var(--ls-sans) !important;
	letter-spacing: 0.14em;
	backdrop-filter: blur(4px);
}
.ls-dcard__body { position: absolute; left: 1.25rem; right: 3.75rem; bottom: 1.25rem; }
.lynksafe .ls-dcard__title { margin: 0 !important; font-size: clamp(1.7rem, 1.4rem + 0.9vw, 2.15rem) !important; line-height: 1.05; }
.lynksafe .ls-dcard__title a { color: var(--ls-white) !important; text-decoration: none !important; }
.ls-dcard__line { margin: 0.35rem 0 0 !important; color: var(--ls-ivory) !important; font-size: 0.93rem; line-height: 1.45; }
.ls-dcard__arrow { position: absolute; right: 1.1rem; bottom: 1.25rem; width: 2.4rem; height: 2.4rem; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--ls-gold) 80%, transparent); display: grid; place-items: center; color: var(--ls-gold); transition: background-color 0.2s, color 0.2s; }
.ls-dcard__inner:hover .ls-dcard__arrow { background: var(--ls-gold); color: var(--ls-emerald); }
.ls-dcard__inner :focus-visible { outline-color: var(--ls-gold) !important; }
.ls-dcard__inner:focus-within { outline: 3px solid var(--ls-gold); outline-offset: 3px; }
.ls-card-img--none { position: absolute; inset: 0; background: linear-gradient(135deg, var(--ls-emerald), var(--ls-deep)); }

/* Visa cards */
.ls-vcard__inner { position: relative; height: 100%; padding: 1.6rem 1.6rem 1.4rem; background: var(--ls-white); border: 1px solid var(--ls-hairline); border-radius: var(--ls-radius); display: flex; flex-direction: column; transition: box-shadow 0.25s, border-color 0.25s, transform 0.25s; }
.ls-vcard__inner:hover,
.ls-vcard__inner:focus-within { box-shadow: var(--ls-shadow); border-color: color-mix(in srgb, var(--ls-gold) 55%, var(--ls-hairline)); transform: translateY(-2px); }
.ls-vcard__num { font: 400 1rem/1 var(--ls-serif); color: var(--ls-slate); position: absolute; top: 1.4rem; right: 1.5rem; }
.ls-vcard__kind { font: 600 0.7rem/1.4 var(--ls-sans) !important; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ls-emerald); margin: 0 0 0.6rem !important; }
.lynksafe .ls-vcard__title { font-size: 1.85rem !important; margin: 0 0 0.6rem !important; }
.ls-vcard__intro { font-size: 0.95rem; line-height: 1.6; flex: 1; margin: 0 0 1.25rem !important; }
.ls-vcard .ls-more { margin-top: auto; }

/* Trip cards */
.ls-tcard__inner { position: relative; height: 100%; display: flex; flex-direction: column; background: var(--ls-white); border: 1px solid var(--ls-hairline); border-radius: var(--ls-radius); overflow: hidden; transition: box-shadow 0.25s, transform 0.25s, border-color 0.25s; }
.ls-tcard__inner:hover,
.ls-tcard__inner:focus-within { box-shadow: var(--ls-shadow); transform: translateY(-2px); border-color: color-mix(in srgb, var(--ls-gold) 55%, var(--ls-hairline)); }
.has-ast-global-color-5-background-color .ls-tcard__inner { border-color: transparent; }
.ls-tcard__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--ls-deep); }
.ls-tcard__img { width: 100% !important; height: 100% !important; object-fit: cover; transition: transform 0.7s var(--ls-ease); }
.ls-tcard__inner:hover .ls-tcard__img { transform: scale(1.04); }
.ls-tcard__media .ls-badge { position: absolute; top: 1rem; left: 1rem; }
.ls-tcard__body { padding: 1.4rem 1.5rem 1.3rem; display: flex; flex-direction: column; flex: 1; }
.ls-tcard__eyebrow { font: 600 0.7rem/1.4 var(--ls-sans) !important; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ls-emerald); margin: 0 0 0.5rem !important; }
.lynksafe .ls-tcard__title { font-size: 1.6rem !important; margin: 0 0 0.6rem !important; }
.ls-tcard__dest { display: flex; align-items: center; gap: 0.4rem; margin: 0 0 0.25rem !important; font: 600 0.9rem/1.4 var(--ls-sans); color: var(--ls-ink); }
.ls-tcard__dest svg { color: var(--ls-emerald); flex: 0 0 auto; }
.ls-tcard__route { margin: 0 0 0.8rem !important; font-size: 0.86rem; color: var(--ls-slate); }
.ls-tcard__summary { font-size: 0.95rem; line-height: 1.6; margin: 0 0 1rem !important; }
.ls-tcard__facts { list-style: none; margin: 0 0 1.1rem; padding: 0.9rem 0 0; border-top: 1px solid var(--ls-hairline); display: grid; gap: 0.4rem; }
.ls-tcard__facts li { display: flex; gap: 0.55rem; align-items: flex-start; margin: 0; font-size: 0.87rem; line-height: 1.45; }
.ls-tcard__facts svg { color: var(--ls-emerald); margin-top: 0.1rem; flex: 0 0 auto; }
.ls-tcard__foot { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.ls-tcard__price { font-size: 0.85rem; color: var(--ls-slate); }

.ls-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.32rem 0.7rem;
	border-radius: 999px;
	background: var(--ls-gold);
	color: var(--ls-emerald);
	font: 600 0.72rem/1.2 var(--ls-sans);
	letter-spacing: 0.04em;
}
.ls-badge::before { content: ""; width: 0.45rem; height: 0.45rem; border-radius: 50%; background: currentColor; }
.ls-badge--confirmed { background: var(--ls-emerald); color: var(--ls-white); }
.ls-badge--fully-booked,
.ls-badge--closed { background: var(--ls-hairline); color: var(--ls-ink); }

/* Collection and guide cards */
.ls-ccard__inner,
.ls-gcard__inner { position: relative; height: 100%; display: flex; flex-direction: column; background: var(--ls-white); border: 1px solid var(--ls-hairline); border-radius: var(--ls-radius); overflow: hidden; transition: box-shadow 0.25s, transform 0.25s, border-color 0.25s; }
.has-ast-global-color-5-background-color .ls-ccard__inner,
.has-ast-global-color-5-background-color .ls-gcard__inner { border-color: transparent; }
.ls-ccard__inner:hover,
.ls-gcard__inner:hover,
.ls-ccard__inner:focus-within,
.ls-gcard__inner:focus-within { box-shadow: var(--ls-shadow); transform: translateY(-2px); }
.ls-ccard__media,
.ls-gcard__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--ls-deep); position: relative; }
.ls-ccard__img,
.ls-gcard__img { width: 100% !important; height: 100% !important; object-fit: cover; transition: transform 0.7s var(--ls-ease); }
.ls-ccard__inner:hover .ls-ccard__img,
.ls-gcard__inner:hover .ls-gcard__img { transform: scale(1.04); }
.ls-ccard__body { padding: 1.4rem 1.5rem 1.5rem; display: flex; flex-direction: column; flex: 1; }
.ls-ccard__eyebrow { font: 600 0.68rem/1.4 var(--ls-sans) !important; letter-spacing: 0.15em; text-transform: uppercase; color: var(--ls-emerald); margin: 0 0 0.5rem !important; }
.lynksafe .ls-ccard__title { font-size: 1.65rem !important; margin: 0 0 0.4rem !important; }
.ls-ccard__line { font-family: var(--ls-serif); font-style: italic; font-size: 1.2rem; line-height: 1.35; color: var(--ls-ink); margin: 0 0 1.25rem !important; flex: 1; }
.ls-gcard__meta { display: flex; gap: 0.75rem; flex-wrap: wrap; margin: 1.3rem 1.5rem 0.5rem !important; font: 600 0.68rem/1.4 var(--ls-sans) !important; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ls-emerald); }
.ls-gcard__meta span + span { color: var(--ls-slate); }
.lynksafe .ls-gcard__title { font-size: 1.6rem !important; margin: 0 1.5rem 0.5rem !important; }
.ls-gcard__summary { margin: 0 1.5rem 1.25rem !important; font-size: 0.95rem; flex: 1; }
.ls-gcard .ls-more { margin: 0 1.5rem 1.5rem; }

/* ------------------------------------------------------------------ 15. Trip facts, visa facts, visa link */
.ls-trip-facts { background: var(--ls-white); border: 1px solid var(--ls-hairline); border-radius: var(--ls-radius-l); box-shadow: var(--ls-shadow); padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.ls-trip-facts__eyebrow { font: 600 0.72rem/1.4 var(--ls-sans) !important; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ls-emerald); margin: 0 0 0.35rem !important; }
.lynksafe .ls-trip-facts__title { font-size: clamp(1.9rem, 1.3rem + 1.6vw, 2.5rem) !important; margin: 0 !important; }
.ls-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr)); gap: 1rem 1.5rem; margin: 0; }
.ls-facts__item { margin: 0; padding-top: 0.85rem; border-top: 1px solid var(--ls-gold-line); }
.ls-facts__item--wide { grid-column: 1 / -1; }
.ls-facts dt { font: 600 0.72rem/1.4 var(--ls-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--ls-slate); margin: 0 0 0.35rem; }
.ls-facts dd { margin: 0; font: 500 1.02rem/1.45 var(--ls-sans); color: var(--ls-ink); }
.ls-trip-facts__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; }
.ls-trip-facts__note { flex: 1 1 18rem; margin: 0 !important; font-size: 0.88rem; color: var(--ls-slate); }
.ls-trip-facts__cta .ls-textlink { flex-basis: 100%; }
@media (min-width: 900px) {
	.ls-trip-facts { grid-template-columns: 15rem minmax(0, 1fr); align-items: start; }
	.ls-trip-facts__cta { grid-column: 1 / -1; }
}

.ls-visa-facts { position: sticky; top: 7rem; background: var(--ls-ivory); border-radius: var(--ls-radius-l); padding: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); border-top: 3px solid var(--ls-gold); }
.ls-visa-facts__eyebrow { font: 600 0.72rem/1.4 var(--ls-sans) !important; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ls-emerald); margin: 0 0 0.4rem !important; }
.lynksafe .ls-visa-facts__title { font-size: clamp(1.9rem, 1.3rem + 1.6vw, 2.5rem) !important; margin: 0 0 1rem !important; }
.lynksafe .ls-visa-facts h3 { font: 600 0.95rem/1.4 var(--ls-sans) !important; color: var(--ls-ink); margin: 1.25rem 0 0.35rem !important; letter-spacing: 0; }
.ls-visa-facts p { font-size: 0.95rem; margin: 0 0 0.5rem !important; }
.ls-visa-facts__source a { font: 600 1.05rem/1.4 var(--ls-sans); color: var(--ls-emerald) !important; display: inline-flex; gap: 0.35rem; align-items: center; }
.ls-visa-facts__checked { font-size: 0.82rem !important; color: var(--ls-slate); border-top: 1px solid var(--ls-hairline); padding-top: 1rem; margin-top: 1.25rem !important; }
.ls-visa-facts .ls-button { width: 100%; margin-top: 1rem; }

.ls-visa-link { display: flex; gap: 1rem; align-items: flex-start; background: var(--ls-ivory); border-radius: var(--ls-radius); padding: 1.25rem 1.4rem; }
.has-ast-global-color-5-background-color .ls-visa-link { background: var(--ls-white); }
.ls-visa-link svg { color: var(--ls-emerald); flex: 0 0 auto; margin-top: 0.15rem; }
.ls-visa-link p { margin: 0 !important; font-size: 0.97rem; }
.ls-visa-link strong { display: block; color: var(--ls-emerald); margin-bottom: 0.2rem; }
.ls-visa-link .ls-textlink { margin-top: 0.5rem; }

.ls-empty-package { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1.25rem 1.5rem; align-items: center; background: var(--ls-ivory); border-radius: var(--ls-radius-l); padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); }
.ls-empty-package svg { color: var(--ls-emerald); }
.ls-empty-package h3 { margin: 0 0 0.35rem !important; }
.ls-empty-package p { margin: 0 !important; }
@media (max-width: 781px) { .ls-empty-package { grid-template-columns: 1fr; } }

.ls-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.ls-contact li { display: flex; gap: 0.6rem; align-items: flex-start; margin: 0; }
.ls-contact svg { flex: 0 0 auto; margin-top: 0.2rem; color: var(--ls-gold); }
.ls-contact__pending { font-size: 0.95rem; color: var(--ls-slate); }

/* ------------------------------------------------------------------ 16. Forms */
.lynksafe .ls-field { display: flex; flex-direction: column; gap: 0.4rem; margin: 0; }
.lynksafe .ls-field[hidden] { display: none; }
.lynksafe .ls-field__label { font: 600 0.9rem/1.4 var(--ls-sans); color: var(--ls-ink); display: inline-flex; align-items: center; gap: 0.4rem; }
.lynksafe .ls-field__label svg { color: var(--ls-emerald); }
.lynksafe .ls-req { color: var(--ls-alert); }
.lynksafe .ls-field input:not([type="checkbox"]):not([type="radio"]),
.lynksafe .ls-field select,
.lynksafe .ls-field textarea {
	width: 100%;
	min-height: 50px;
	padding: 0.7rem 0.9rem;
	border: 1px solid var(--ls-slate);
	border-radius: var(--ls-radius-s);
	background: var(--ls-white);
	color: var(--ls-ink);
	font: 400 1rem/1.45 var(--ls-sans);
	box-shadow: none;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.lynksafe .ls-field textarea { min-height: 7rem; resize: vertical; }
.lynksafe .ls-field select { appearance: auto; }
.lynksafe .ls-field input:focus,
.lynksafe .ls-field select:focus,
.lynksafe .ls-field textarea:focus { border-color: var(--ls-emerald); box-shadow: 0 0 0 1px var(--ls-emerald); outline: 3px solid color-mix(in srgb, var(--ls-emerald) 35%, transparent) !important; outline-offset: 1px !important; }
.lynksafe .ls-field__hint { margin: 0 !important; font-size: 0.85rem; color: var(--ls-slate); line-height: 1.5; }
.lynksafe .ls-field__error { margin: 0 !important; font: 600 0.88rem/1.45 var(--ls-sans); color: var(--ls-alert); display: flex; gap: 0.4rem; }
.lynksafe .ls-field__error::before { content: "Error:"; }
.lynksafe .ls-field.has-error input,
.lynksafe .ls-field.has-error select,
.lynksafe .ls-field.has-error textarea { border: 2px solid var(--ls-alert); }
.lynksafe .ls-form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 1.25rem 1.25rem; }
.lynksafe .ls-field--wide { grid-column: 1 / -1; }
.lynksafe .ls-check { display: flex; gap: 0.75rem; align-items: flex-start; font-size: 0.95rem; line-height: 1.55; cursor: pointer; }
.lynksafe .ls-check input { width: 1.25rem; height: 1.25rem; margin-top: 0.15rem; accent-color: var(--ls-emerald); flex: 0 0 auto; }
.lynksafe .ls-radio-group { border: 0; padding: 0; margin: 0; }
.lynksafe .ls-radio-group legend { margin-bottom: 0.5rem; padding: 0; }
.lynksafe .ls-radio-row { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.lynksafe .ls-radio { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; padding: 0.4rem 1rem; border: 1px solid var(--ls-slate); border-radius: 999px; cursor: pointer; font-size: 0.95rem; }
.lynksafe .ls-radio input { accent-color: var(--ls-emerald); width: 1.1rem; height: 1.1rem; }
.lynksafe .ls-radio:has(input:checked) { border-color: var(--ls-emerald); box-shadow: inset 0 0 0 1px var(--ls-emerald); background: var(--ls-ivory); }
.lynksafe .ls-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

.lynksafe .ls-alert { display: flex; gap: 0.8rem; align-items: flex-start; padding: 1rem 1.2rem; border-radius: var(--ls-radius); margin: 0 0 1.5rem; font-size: 0.97rem; }
.lynksafe .ls-alert p { margin: 0 !important; }
.lynksafe .ls-alert svg { flex: 0 0 auto; margin-top: 0.15rem; }
.lynksafe .ls-alert--info { background: var(--ls-ivory); border-left: 3px solid var(--ls-gold); }
.lynksafe .ls-alert--info svg { color: var(--ls-emerald); }
.lynksafe .ls-alert--error { background: color-mix(in srgb, var(--ls-alert) 7%, var(--ls-white)); border: 2px solid var(--ls-alert); color: var(--ls-ink); }
.lynksafe .ls-alert--error svg { color: var(--ls-alert); }
.lynksafe .ls-error-summary { display: block; }
.lynksafe .ls-error-summary ul { margin: 0.5rem 0 0 1.2rem; padding: 0; }
.lynksafe .ls-error-summary a { color: var(--ls-alert) !important; font-weight: 600; }

/* Quick enquiry */
.ls-quick { background: var(--ls-white); border-radius: var(--ls-radius-l); box-shadow: var(--ls-shadow-lg); padding: clamp(1.25rem, 0.9rem + 1.4vw, 2rem); border: 1px solid var(--ls-hairline); }
.ls-quick__services { border: 0; padding: 0; margin: 0 0 1.25rem; min-width: 0; }
.ls-quick__legend { font: 600 0.72rem/1.4 var(--ls-sans); letter-spacing: 0.16em; text-transform: uppercase; color: var(--ls-emerald); padding: 0; margin-bottom: 0.85rem; }
.ls-quick__tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.lynksafe .ls-quick__service { position: relative; display: inline-flex; align-items: center; gap: 0.5rem; min-height: 46px; padding: 0.55rem 1rem; border: 1px solid var(--ls-hairline); border-radius: 999px; background: var(--ls-ivory); color: var(--ls-ink); font: 500 0.92rem/1.2 var(--ls-sans); cursor: pointer; transition: background-color 0.2s, border-color 0.2s, color 0.2s; }
.lynksafe .ls-quick__service input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lynksafe .ls-quick__service svg { color: var(--ls-emerald); }
.lynksafe .ls-quick__service:hover { border-color: var(--ls-emerald); }
.lynksafe .ls-quick__service:has(input:checked),
.lynksafe .ls-quick__service.is-selected { background: var(--ls-emerald); border-color: var(--ls-emerald); color: var(--ls-white); }
.lynksafe .ls-quick__service:has(input:checked) svg,
.lynksafe .ls-quick__service.is-selected svg { color: var(--ls-gold); }
.lynksafe .ls-quick__service:has(input:focus-visible) { outline: 3px solid var(--ls-emerald); outline-offset: 3px; }
.ls-quick__fields { display: grid; grid-template-columns: 1.5fr 1fr 1fr auto; gap: 1rem; align-items: end; }
.ls-quick--single .ls-quick__fields { grid-template-columns: 1.5fr 1fr 1fr auto; }
.lynksafe .ls-quick__submit { min-height: 50px; white-space: nowrap; }
.ls-quick__note { display: flex; align-items: center; gap: 0.5rem; margin: 1rem 0 0 !important; font-size: 0.85rem; color: var(--ls-slate); }
.ls-quick__note svg { color: var(--ls-emerald); flex: 0 0 auto; }
@media (max-width: 921px) {
	.ls-quick__fields,
	.ls-quick--single .ls-quick__fields { grid-template-columns: 1fr 1fr; }
	.ls-quick__fields .ls-field:first-child { grid-column: 1 / -1; }
	.lynksafe .ls-quick__submit { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
	.ls-quick__fields,
	.ls-quick--single .ls-quick__fields { grid-template-columns: 1fr; }
	.lynksafe .ls-quick__service { flex: 1 1 calc(50% - 0.5rem); justify-content: flex-start; }
}

/* Visa starter */
.ls-visa-starter { background: var(--ls-white); border-radius: var(--ls-radius-l); box-shadow: var(--ls-shadow); border: 1px solid var(--ls-hairline); padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); }
.lynksafe .ls-visa-starter__title { font-size: clamp(1.9rem, 1.3rem + 1.6vw, 2.5rem) !important; margin: 0 0 1.5rem !important; }
.ls-visa-starter__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin: 1.75rem 0 1rem; }

/* Four-step enquiry */
.ls-enquiry { background: var(--ls-white); border: 1px solid var(--ls-hairline); border-radius: var(--ls-radius-l); box-shadow: var(--ls-shadow-lg); padding: clamp(1.25rem, 0.8rem + 2vw, 2.75rem); }
.ls-stepper { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem; }
.ls-stepper__item { margin: 0; display: flex; flex-direction: column; gap: 0.5rem; font: 500 0.8rem/1.3 var(--ls-sans); color: var(--ls-slate); padding-top: 0.75rem; border-top: 3px solid var(--ls-hairline); }
.ls-stepper__num { display: none; }
.ls-stepper__item.is-done { border-top-color: var(--ls-emerald); color: var(--ls-emerald); }
.ls-stepper__item.is-current { border-top-color: var(--ls-gold); color: var(--ls-ink); font-weight: 600; }
.ls-step { border: 0; }
.ls-enquiry.is-enhanced .ls-step[hidden] { display: none; }
.ls-step + .ls-step { margin-top: 2.5rem; }
.ls-enquiry.is-enhanced .ls-step + .ls-step { margin-top: 0; }
.ls-step__count { font: 600 0.72rem/1.4 var(--ls-sans) !important; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ls-emerald); margin: 0 0 0.5rem !important; }
.lynksafe .ls-step__title { font-size: clamp(1.9rem, 1.5rem + 1.3vw, 2.6rem) !important; margin: 0 0 0.5rem !important; }
.ls-step__title:focus { outline: none; }
.ls-step__intro { margin: 0 0 1.75rem !important; color: var(--ls-slate); }
.ls-choice-grid { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr)); gap: 0.85rem; }
.lynksafe .ls-choice { position: relative; display: flex; align-items: center; gap: 0.85rem; min-height: 72px; padding: 1rem 1.1rem; border: 1px solid var(--ls-slate); border-radius: var(--ls-radius); cursor: pointer; background: var(--ls-white); transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s; }
.lynksafe .ls-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lynksafe .ls-choice__icon { color: var(--ls-emerald); flex: 0 0 auto; }
.lynksafe .ls-choice__label { font: 600 1rem/1.3 var(--ls-sans); color: var(--ls-ink); flex: 1; }
.lynksafe .ls-choice__tick { opacity: 0; color: var(--ls-white); background: var(--ls-emerald); border-radius: 50%; padding: 3px; width: 22px; height: 22px; }
.lynksafe .ls-choice:hover { border-color: var(--ls-emerald); background: var(--ls-ivory); }
.lynksafe .ls-choice:has(input:checked),
.lynksafe .ls-choice.is-selected { border: 2px solid var(--ls-emerald); background: var(--ls-ivory); padding: calc(1rem - 1px) calc(1.1rem - 1px); }
.lynksafe .ls-choice:has(input:checked) .ls-choice__tick,
.lynksafe .ls-choice.is-selected .ls-choice__tick { opacity: 1; }
.lynksafe .ls-choice:has(input:focus-visible) { outline: 3px solid var(--ls-emerald); outline-offset: 3px; }
.ls-service-fields { border: 0; padding: 0; margin: 0; min-width: 0; }
.ls-service-fields + .ls-service-fields { margin-top: 2rem; }
.ls-enquiry.is-enhanced .ls-service-fields + .ls-service-fields { margin-top: 0; }
.ls-service-fields__legend { font: 600 0.72rem/1.4 var(--ls-sans); letter-spacing: 0.16em; text-transform: uppercase; color: var(--ls-emerald); padding: 0; margin-bottom: 1rem; }
.ls-enquiry.is-enhanced .ls-service-fields__legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ls-draft { margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--ls-hairline); display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; align-items: center; }
.ls-draft__status { flex-basis: 100%; margin: 0 !important; font-size: 0.88rem; color: var(--ls-emerald); }
.lynksafe .ls-textbutton { background: none; border: 0; padding: 0.35rem 0; min-height: 44px; color: var(--ls-emerald); font: 600 0.92rem/1.3 var(--ls-sans); text-decoration: underline; text-underline-offset: 0.25em; cursor: pointer; display: inline-flex; align-items: center; gap: 0.4rem; }
.lynksafe .ls-textbutton:hover { color: var(--ls-deep); background: none; }
.ls-form-nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2.25rem; padding-top: 1.5rem; border-top: 1px solid var(--ls-hairline); }
.ls-form-nav__time { font-size: 0.88rem; color: var(--ls-slate); }
.ls-form-nav__next { margin-left: auto; }
.ls-form-foot { display: flex; align-items: center; gap: 0.5rem; margin: 1rem 0 0 !important; font-size: 0.85rem; color: var(--ls-slate); }
.ls-form-foot svg { color: var(--ls-emerald); }
.ls-review__group { border: 1px solid var(--ls-hairline); border-radius: var(--ls-radius); padding: 1.1rem 1.25rem; margin-bottom: 1rem; }
.ls-review__head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.lynksafe .ls-review__head h3 { font: 600 0.78rem/1.4 var(--ls-sans) !important; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ls-emerald); margin: 0 !important; }
.ls-review__list { margin: 0.5rem 0 0; display: grid; gap: 0.35rem; }
.ls-review__row { display: grid; grid-template-columns: minmax(8rem, 38%) 1fr; gap: 0.25rem 1rem; padding: 0.4rem 0; border-top: 1px solid var(--ls-hairline); }
.ls-review__row:first-child { border-top: 0; }
.ls-review__row dt { font-size: 0.88rem; color: var(--ls-slate); }
.ls-review__row dd { margin: 0; font-size: 0.95rem; color: var(--ls-ink); overflow-wrap: anywhere; }
.ls-review__none { color: var(--ls-slate); font-style: italic; }
.ls-review__service { font: 500 1.45rem/1.3 var(--ls-serif) !important; color: var(--ls-emerald); margin: 0.35rem 0 0 !important; }
.ls-consent { display: grid; gap: 1rem; margin-top: 1.5rem; padding: 1.25rem; background: var(--ls-ivory); border-radius: var(--ls-radius); }
.ls-check--optional { color: var(--ls-slate); }
.ls-enquiry__done { text-align: center; padding: clamp(1rem, 0.5rem + 2vw, 2.5rem) 0; }
.ls-enquiry__done:focus { outline: none; }
.ls-enquiry__done h2:focus { outline: none; }
.ls-enquiry__done-icon { color: var(--ls-emerald); margin: 0 auto 1rem; display: block; }
.ls-enquiry__done-eyebrow { font: 600 0.72rem/1.4 var(--ls-sans) !important; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ls-emerald); }
.ls-ref { font: 600 1.35rem/1.3 var(--ls-sans) !important; letter-spacing: 0.08em; color: var(--ls-emerald); background: var(--ls-ivory); display: inline-block; padding: 0.6rem 1.1rem; border-radius: var(--ls-radius-s); border: 1px dashed var(--ls-gold); }
.ls-enquiry.is-sending { opacity: 0.85; }
@media (max-width: 599px) {
	.ls-stepper { gap: 0.3rem; }
	.ls-stepper__item { font-size: 0.7rem; }
	.ls-form-nav { flex-wrap: wrap; }
	.ls-form-nav__next { width: 100%; }
	.ls-review__row { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------------ 17. Misc components */
.ls-whatsapp { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 50; width: 56px; height: 56px; border-radius: 50%; background: var(--ls-emerald); color: var(--ls-gold); display: grid; place-items: center; box-shadow: var(--ls-shadow-lg); border: 1px solid color-mix(in srgb, var(--ls-gold) 60%, transparent); }
.ls-whatsapp:hover { background: var(--ls-deep); color: var(--ls-white); }
.lynksafe .ls-editor-empty { font-size: 0.85rem; color: var(--ls-slate); border: 1px dashed var(--ls-hairline); padding: 0.75rem 1rem; border-radius: var(--ls-radius-s); }

.lynksafe .wp-block-image.is-style-ls-rounded img { border-radius: var(--ls-radius); }

.lynksafe .ls-meta-line { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin-top: 1.25rem !important; }
.lynksafe .ls-meta-line li { margin: 0; font: 500 0.92rem/1.4 var(--ls-sans); color: inherit; }

/* Article layout (guides, policies) */
.lynksafe .ls-article > * { max-width: 46rem; }
.lynksafe .ls-article h2 { font-size: clamp(1.9rem, 1.3rem + 1.6vw, 2.5rem) !important; margin-top: 2.75rem !important; }
.lynksafe .ls-article p,
.lynksafe .ls-article li { font-size: 1.06rem; line-height: 1.8; }
.lynksafe .ls-draft-marker { border-left-color: var(--ls-alert) !important; }

/* ------------------------------------------------------------------ 18. Inner pages */
/* Anything marked hidden stays hidden, whatever display a component sets. */
.lynksafe [hidden] { display: none !important; }

:root {
	--ls-arrow-up: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7'/%3E%3Cpath d='M8 7h9v9'/%3E%3C/svg%3E");
}

/* Text hero on ivory (guides, policies, insurance, portal) */
.lynksafe .ls-text-hero:not(.ls-section--dark) h1,
.lynksafe .ls-text-hero:not(.ls-section--dark) h1 em { color: var(--ls-emerald); }
.lynksafe .ls-text-hero:not(.ls-section--dark) .ls-hero__text { color: var(--ls-ink); }
.lynksafe .ls-text-hero:not(.ls-section--dark)::after { border-color: color-mix(in srgb, var(--ls-gold) 55%, transparent); }
.lynksafe .ls-text-hero .wp-block-buttons { margin-top: 2rem !important; }
.lynksafe .ls-text-hero--overlap { padding-bottom: clamp(5.5rem, 3rem + 6vw, 9rem); }

/* Hero details line and notes */
.lynksafe .ls-hero-split .ls-meta-line { margin-top: 1.5rem !important; }
.lynksafe .ls-meta-line li { display: inline-flex; align-items: center; gap: 0.55rem; font-size: 0.88rem; color: var(--ls-slate); }
.lynksafe .ls-meta-line li::before { content: ""; width: 0.42rem; height: 0.42rem; border-radius: 50%; background: var(--ls-gold); flex: 0 0 auto; }
.lynksafe .ls-hero-split .wp-block-buttons + .ls-meta-line,
.lynksafe .ls-hero-split .ls-meta-line + .wp-block-buttons { margin-top: 1.75rem !important; }
.lynksafe .ls-hero-split__text > .is-style-ls-link { margin-top: 1.5rem !important; }

.lynksafe .ls-hero-note {
	position: relative;
	margin-top: 2rem !important;
	padding: 1.1rem 1.25rem 1.15rem 3.6rem;
	background: var(--ls-white);
	border-left: 3px solid var(--ls-gold);
	border-radius: 0 var(--ls-radius) var(--ls-radius) 0;
	max-width: 32rem;
}
.lynksafe .ls-hero-note::before { position: absolute; left: 1.15rem; top: 1.2rem; width: 1.5rem !important; height: 1.5rem !important; margin: 0 !important; }
.lynksafe .ls-hero-note > * { margin: 0 !important; font-size: 0.95rem; }
.lynksafe .ls-hero-note > * + * { margin-top: 0.4rem !important; }
.lynksafe .ls-hero-note strong { color: var(--ls-emerald); }
.lynksafe .ls-hero-split--panel .ls-hero-split__panel { min-width: 0; }

/* Main content with a sticky sidebar */
.lynksafe .ls-visa-facts { position: static; }
.lynksafe .ls-detail__aside > .wp-block-lynksafe-visa-facts,
.lynksafe .ls-detail__aside > .ls-aside-card { position: sticky; top: 2rem; }
.lynksafe .ls-detail__main > h3 { margin-top: 2.5rem !important; font-size: clamp(1.55rem, 1.3rem + 0.7vw, 1.9rem); }
.lynksafe .ls-detail__main > .is-style-ls-notice { margin-top: 1.5rem !important; }
@media (max-width: 781px) {
	.lynksafe .ls-detail__aside > .wp-block-lynksafe-visa-facts,
	.lynksafe .ls-detail__aside > .ls-aside-card { position: static; }
}

/* Lists */
.lynksafe ul.ls-bullets { padding-left: 1.25rem; margin-left: 0; }
.lynksafe ul.ls-bullets li { margin-bottom: 0.55rem; padding-left: 0.25rem; }
.lynksafe ul.ls-bullets li::marker { color: var(--ls-emerald); }

.lynksafe ol.is-style-ls-numbered { list-style: none; counter-reset: ls-step; padding: 0; margin-left: 0; }
.lynksafe ol.is-style-ls-numbered > li { counter-increment: ls-step; position: relative; margin: 0; padding: 0.3rem 0 1.25rem 3.25rem; min-height: 2.4rem; }
.lynksafe ol.is-style-ls-numbered > li::before {
	content: counter(ls-step);
	position: absolute;
	left: 0;
	top: 0;
	width: 2.2rem;
	height: 2.2rem;
	border-radius: 50%;
	border: 1px solid var(--ls-gold-line);
	background: var(--ls-white);
	display: grid;
	place-items: center;
	font: 600 0.85rem/1 var(--ls-sans);
	color: var(--ls-emerald);
}
.lynksafe ol.is-style-ls-numbered > li:not(:last-child)::after { content: ""; position: absolute; left: 1.1rem; top: 2.4rem; bottom: 0.2rem; width: 1px; background: var(--ls-hairline); }
.lynksafe ol.is-style-ls-numbered strong { color: var(--ls-emerald); }

.lynksafe ol.is-style-ls-route { list-style: none; padding: 0; margin-left: 0; }
.lynksafe ol.is-style-ls-route > li { position: relative; margin: 0; padding: 0 0 1.2rem 2.1rem; color: var(--ls-ink); }
.lynksafe ol.is-style-ls-route > li::before { content: ""; position: absolute; left: 0.3rem; top: 0.5rem; width: 0.7rem; height: 0.7rem; border-radius: 50%; background: var(--ls-gold); box-shadow: 0 0 0 4px color-mix(in srgb, var(--ls-gold) 22%, transparent); }
.lynksafe ol.is-style-ls-route > li:not(:last-child)::after { content: ""; position: absolute; left: 0.64rem; top: 1.45rem; bottom: 0.1rem; width: 1px; background: var(--ls-gold-line); }
.lynksafe ol.is-style-ls-route strong { display: block; font: 500 1.4rem/1.2 var(--ls-serif); color: var(--ls-emerald); margin-bottom: 0.15rem; }

.lynksafe .ls-link-list { list-style: none; padding: 0; margin-left: 0; }
.lynksafe .ls-link-list li { margin: 0; }
.lynksafe .ls-link-list a { font-weight: 500; }

/* External (official) links carry an outward arrow */
.lynksafe .ls-external a::after { -webkit-mask: var(--ls-arrow-up) center / contain no-repeat; mask: var(--ls-arrow-up) center / contain no-repeat; }
.lynksafe .ls-external a:hover::after { transform: translate(2px, -2px); }

/* Cross-link panel */
.lynksafe .ls-crosslink {
	display: grid !important;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.75rem 1.5rem;
	padding: 1.4rem 1.6rem;
	background: var(--ls-ivory);
	border: 1px solid var(--ls-hairline);
	border-radius: var(--ls-radius);
}
.lynksafe .ls-crosslink::before { margin: 0 !important; }
.lynksafe .ls-crosslink > * { margin: 0 !important; }
.lynksafe .ls-crosslink strong { display: block; margin-bottom: 0.2rem; font: 500 1.4rem/1.25 var(--ls-serif); color: var(--ls-emerald); }
@media (max-width: 781px) {
	.lynksafe .ls-crosslink { grid-template-columns: auto minmax(0, 1fr); }
	.lynksafe .ls-crosslink > .is-style-ls-link { grid-column: 1 / -1; }
}

/* Quiet title-and-text pairs */
.lynksafe .ls-quiet-grid { gap: clamp(1.5rem, 1rem + 1.5vw, 2.5rem) clamp(1rem, 0.6rem + 1.2vw, 24px); }
/* Listings of six: three columns read better than four plus two. */
.lynksafe .ls-dir-3 .ls-grid--destinations { grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); }
.lynksafe .ls-dir-3 .ls-dcard__inner { aspect-ratio: 5 / 4; }
.lynksafe .is-style-ls-card-quiet.ls-quiet { border-top: 1px solid var(--ls-gold-line); padding-top: 1.1rem; border-radius: 0; height: auto; }
.lynksafe .ls-quiet__title { font-size: clamp(1.35rem, 1.2rem + 0.4vw, 1.55rem) !important; margin: 0 0 0.45rem !important; }
.lynksafe .ls-quiet p { font-size: 0.97rem; color: var(--ls-ink); }

/* Next steps */
.lynksafe .ls-next { border-top: 1px solid var(--ls-hairline); text-align: center; }
.lynksafe .ls-next__title { font: 600 0.75rem/1.4 var(--ls-sans) !important; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ls-emerald); }
.lynksafe .ls-next__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem 2rem; margin-top: 0.8rem !important; }

/* Sidebar cards (guides, contact, insurance) */
.lynksafe .ls-aside-card { padding: clamp(1.4rem, 1rem + 1vw, 2rem); height: auto; }
.lynksafe .ls-aside__title { font: 600 0.75rem/1.4 var(--ls-sans) !important; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ls-emerald); }
.lynksafe .ls-aside__title:not(:first-child) { margin-top: 1.75rem !important; padding-top: 1.25rem; border-top: 1px solid var(--ls-hairline); }
.lynksafe .ls-aside-card .ls-link-list { display: grid; gap: 0.6rem; margin-top: 0.8rem !important; }
.lynksafe .ls-aside-card .ls-link-list a { font-size: 0.97rem; }
.lynksafe .ls-aside-card h3 { margin-top: 0.75rem !important; }

/* Trips */
.lynksafe .ls-facts-wrap { margin-top: clamp(-4.5rem, -2.5rem - 2.5vw, -2.5rem) !important; }
.lynksafe .ls-trip-status { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; margin-top: 1.5rem !important; font: 500 0.92rem/1.4 var(--ls-sans); }
body.lynksafe .entry-content .wp-block-cover .ls-trip-status { color: var(--ls-ivory); }
.lynksafe .ls-trip-scholar,
.lynksafe .ls-scholar-line {
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
	margin-top: 1.75rem !important;
	padding: 1rem 1.25rem;
	border: 1px solid color-mix(in srgb, var(--ls-gold) 60%, transparent);
	border-radius: var(--ls-radius);
	font: 500 1rem/1.5 var(--ls-sans);
}
.lynksafe .ls-trip-scholar svg { color: var(--ls-gold); flex: 0 0 auto; margin-top: 0.1rem; }
.lynksafe .ls-trip-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin: 2rem 0 0 !important; }
.lynksafe .ls-trip-cta__note { margin: 1.1rem 0 0 !important; font-size: 0.9rem; max-width: 38rem; }
.lynksafe .ls-section--dark .ls-trip-cta__note { color: color-mix(in srgb, var(--ls-ivory) 92%, var(--ls-emerald)); }
.lynksafe .ls-trip-confirmed { display: grid; gap: 1.5rem; margin-top: 2rem; }
.lynksafe .ls-itinerary .wp-block-details summary { padding-right: 3rem; }

/* Umrah Standard on emerald */
.lynksafe .ls-standard { gap: 2rem clamp(1rem, 0.6rem + 1.2vw, 24px); }
.lynksafe .ls-standard__item { border-top: 1px solid color-mix(in srgb, var(--ls-gold) 55%, transparent); padding-top: 1.25rem; border-radius: 0; }
.lynksafe .ls-standard__num { font: 400 2.4rem/1 var(--ls-serif) !important; color: var(--ls-gold) !important; margin: 0 0 0.75rem !important; }
.lynksafe .ls-umrah-standard h3 { color: var(--ls-white); font-size: clamp(1.4rem, 1.25rem + 0.5vw, 1.65rem); margin: 0 0 0.5rem !important; }
.lynksafe .ls-umrah-standard .ls-section-head__text { color: var(--ls-ivory); }

/* Start your journey */
.lynksafe .ls-journey-section { padding-top: clamp(2.5rem, 1.5rem + 3vw, 4.5rem); }
.lynksafe .ls-journey { max-width: var(--ls-content); margin: 0 auto !important; }
.lynksafe .ls-journey__aside { position: sticky; top: 2rem; align-self: flex-start; }
.lynksafe .ls-journey__aside h1 { font-size: clamp(2.6rem, 1.6rem + 3vw, 4.1rem); }
.lynksafe .ls-journey__aside .ls-hero-note { margin-top: 1.75rem !important; background: var(--ls-white); }
@media (max-width: 781px) {
	.lynksafe .ls-journey__aside { position: static; }
}

/* My LynkSafe Journey preview */
.lynksafe .ls-status-label { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.4rem 0.85rem; border-radius: 999px; background: var(--ls-ivory); border: 1px solid var(--ls-gold-line); font: 600 0.8rem/1.3 var(--ls-sans) !important; color: var(--ls-emerald); }
.lynksafe .ls-portal { background: var(--ls-emerald); border-radius: var(--ls-radius-l); padding: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); box-shadow: var(--ls-shadow-lg); }
.lynksafe .ls-portal__top { font: 600 0.72rem/1.4 var(--ls-sans) !important; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ls-gold) !important; padding-bottom: 1rem; border-bottom: 1px solid color-mix(in srgb, var(--ls-gold) 35%, transparent); }
.lynksafe .ls-portal__list { margin: 0 !important; }
.lynksafe .ls-portal__list li { margin: 0; padding: 1rem 0; border-bottom: 1px solid color-mix(in srgb, var(--ls-ivory) 16%, transparent); color: var(--ls-ivory); font-size: 0.95rem; }
.lynksafe .ls-portal__list strong { display: block; color: var(--ls-white); font: 500 1.35rem/1.3 var(--ls-serif); }
.lynksafe .ls-portal .is-style-ls-small { color: color-mix(in srgb, var(--ls-ivory) 88%, var(--ls-emerald)); margin-top: 1rem !important; }

/* Contact: service shortcuts */
.lynksafe .is-style-ls-pills.ls-pill-links li { padding: 0; border-color: var(--ls-gold-line); }
.lynksafe .ls-pill-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0.4rem 1rem; border-radius: 999px; text-decoration: none !important; color: var(--ls-emerald) !important; font-weight: 500; }
.lynksafe .ls-pill-links a:hover { background: var(--ls-ivory); }

/* Policies */
.lynksafe .ls-policy { max-width: 48rem; }
.lynksafe .ls-policy .is-style-ls-notice { margin-bottom: 1rem !important; }
.lynksafe .ls-policy .wp-block-lynksafe-business-details,
.lynksafe .ls-policy .wp-block-lynksafe-contact-details { margin-top: 1rem !important; }

/* Astra resets lists inside .entry-content (padding-left: 20px; margin: revert);
   restate the component lists at a higher specificity. */
.lynksafe .entry-content .ls-grid { margin: 0; padding: 0; }
.lynksafe .entry-content .ls-tcard__facts { margin: 0 0 1.1rem; padding: 0.9rem 0 0; }
.lynksafe .entry-content .ls-contact { margin: 0; padding: 0; }
.lynksafe .entry-content .ls-stepper { margin: 0 0 2rem; padding: 0; }
.lynksafe .entry-content .ls-error-summary ul { margin: 0.5rem 0 0 1.2rem; padding: 0; }
.lynksafe .entry-content ul.wp-block-list,
.lynksafe .entry-content ol.wp-block-list { margin-block-end: 0; }

/* Print */
@media print {
	.site-header, .site-footer, .ls-breadcrumbs, .ls-quick-wrap, .ls-cta, .ls-whatsapp { display: none !important; }
	.lynksafe .ls-section { padding: 1rem 0; }
}
