/* GatewayVPN server locations listing (/vpn-servers/) — v1.0.1
 * Blocks: .gw-locl (hero + list), .gw-locl-cta (CTA band), .gw-locl-faq (FAQ).
 * Every selector is double-scoped so the Elementor kit's global typography can't override it. */

/* =========================================================================
   Shared base
   ====================================================================== */
.gw-locl, .gw-locl-cta, .gw-locl-faq {
	--gw-purple: #6e5092;
	--gw-black: #424242;
	--gw-border: #DDDDDD;
	--gw-gray: rgba(240, 240, 240, 0.5);
	--gw-muted: #6b6b6b;
	--gw-header-offset: 90px; /* height of the sticky site header */
	font-family: Inter, sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: #424242;
	background: #FFFFFF;
	-webkit-font-smoothing: antialiased;
}
.gw-locl *, .gw-locl *::before, .gw-locl *::after,
.gw-locl-cta *, .gw-locl-cta *::before, .gw-locl-cta *::after,
.gw-locl-faq *, .gw-locl-faq *::before, .gw-locl-faq *::after { box-sizing: border-box; }

/* Remove the theme's focus box on mouse/touch clicks; keyboard focus keeps a purple ring */
.gw-locl button:focus:not(:focus-visible),
.gw-locl a:focus:not(:focus-visible),
.gw-locl input:focus:not(:focus-visible),
.gw-locl [tabindex]:focus:not(:focus-visible),
.gw-locl-cta a:focus:not(:focus-visible),
.gw-locl-faq button:focus:not(:focus-visible),
.gw-locl-faq a:focus:not(:focus-visible) { outline: none !important; box-shadow: none !important; }
.gw-locl button:focus-visible,
.gw-locl a:focus-visible,
.gw-locl [tabindex]:focus-visible,
.gw-locl-faq button:focus-visible,
.gw-locl-faq a:focus-visible { outline: 3px solid #b9a6cf !important; outline-offset: 3px; }
.gw-locl-cta .gw-locl-cta__btn:focus-visible { outline: 3px solid #FFFFFF !important; outline-offset: 3px; }

.gw-locl .gw-locl__sr {
	position: absolute !important; width: 1px !important; height: 1px !important;
	padding: 0 !important; margin: -1px !important; overflow: hidden !important;
	clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important;
}
.gw-locl [hidden] { display: none !important; }

/* Buttons (site standard) */
.gw-locl .gw-locl__btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 48px; margin: 0; padding: 0 26px; border-radius: 10px;
	font-family: inherit; font-size: 16px; font-weight: 600; line-height: 1.4;
	text-decoration: none; text-transform: none; letter-spacing: 0; cursor: pointer;
	transition: background-color .2s, border-color .2s, color .2s;
}
.gw-locl .gw-locl__btn--primary { background: #6e5092; color: #FFFFFF; border: 1px solid #6e5092; }
.gw-locl .gw-locl__btn--primary:hover { background: #424242; border-color: #424242; color: #FFFFFF; }
.gw-locl .gw-locl__btn--ghost { background: #FFFFFF; color: #424242; border: 1px solid #DDDDDD; }
.gw-locl .gw-locl__btn--ghost:hover { border-color: #424242; color: #424242; }

/* =========================================================================
   Hero
   ====================================================================== */
.gw-locl .gw-locl__hero {
	position: relative; overflow: hidden; margin: 0;
	padding: 56px 24px 48px;
	background: rgba(240, 240, 240, 0.5);
	border-bottom: 1px solid #DDDDDD;
}
.gw-locl .gw-locl__decor { position: absolute; top: -16px; z-index: 0; display: block; pointer-events: none; }
.gw-locl .gw-locl__decor--left { left: -10px; }
.gw-locl .gw-locl__decor--right { right: -10px; }
.gw-locl .gw-locl__hero-in {
	position: relative; z-index: 1; max-width: 860px; margin: 0 auto;
	display: flex; flex-direction: column; align-items: center; gap: 18px; text-align: center;
}
.gw-locl .gw-locl__eyebrow {
	display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding: 0 14px;
	border-radius: 999px; background: #FFFFFF; border: 1px solid #DDDDDD;
	font-size: 13px; font-weight: 600; line-height: 1.4; color: #424242;
}
.gw-locl .gw-locl__eyebrow-hex,
.gw-locl .gw-locl__legend-hex {
	display: inline-block; flex: 0 0 auto; width: 10px; height: 11px; background: #6e5092;
	clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.gw-locl .gw-locl__h1 {
	margin: 0; padding: 0; font-family: inherit; font-size: 64px; font-weight: 800;
	line-height: 1.08; letter-spacing: -0.02em; text-transform: none; color: #424242;
}
.gw-locl .gw-locl__em { color: #6e5092; }
.gw-locl .gw-locl__intro { margin: 0; max-width: 640px; font-size: 18px; line-height: 1.6; color: #424242; }

.gw-locl .gw-locl__search {
	width: 100%; max-width: 720px; margin: 0;
	display: flex; align-items: center; gap: 10px;
	padding: 8px 8px 8px 20px; background: #FFFFFF;
	border: 1px solid #DDDDDD; border-radius: 14px;
	box-shadow: 0 8px 24px rgba(66, 66, 66, 0.06);
	transition: border-color .2s;
}
.gw-locl .gw-locl__search:focus-within { border-color: #6e5092; }
.gw-locl .gw-locl__search-icon { flex: 0 0 auto; display: block; }
.gw-locl .gw-locl__input {
	flex: 1 1 auto; min-width: 0; height: 48px; margin: 0; padding: 0;
	border: 0 !important; outline: none !important; box-shadow: none !important; background: transparent !important;
	font-family: inherit; font-size: 17px; line-height: 1.4; color: #424242; border-radius: 0;
	-webkit-appearance: none; appearance: none;
}
.gw-locl .gw-locl__input::placeholder { color: #757575; opacity: 1; }
.gw-locl .gw-locl__input::-webkit-search-cancel-button { cursor: pointer; }
.gw-locl .gw-locl__search-btn { flex: 0 0 auto; padding: 0 22px; }

.gw-locl .gw-locl__chips {
	width: 100%; max-width: 100%; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px;
}
.gw-locl .gw-locl__chip {
	display: inline-flex; align-items: center; flex: 0 0 auto;
	min-height: 44px; padding: 0 16px; border-radius: 999px;
	background: #FFFFFF; color: #424242; border: 1px solid #DDDDDD;
	font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1.4;
	text-decoration: none; white-space: nowrap; cursor: pointer;
	transition: background-color .2s, border-color .2s, color .2s;
}
.gw-locl .gw-locl__chip:hover { border-color: #424242; color: #424242; }
.gw-locl .gw-locl__chip[aria-pressed="true"] { background: #6e5092; color: #FFFFFF; border-color: #6e5092; }
.gw-locl .gw-locl__chip[aria-pressed="true"]:hover { background: #424242; border-color: #424242; color: #FFFFFF; }

/* =========================================================================
   List
   ====================================================================== */
.gw-locl .gw-locl__list { margin: 0; padding: 40px 24px 56px; background: #FFFFFF; }
.gw-locl .gw-locl__wrap { max-width: 1240px; margin: 0 auto; display: flex; flex-direction: column; gap: 40px; }

.gw-locl .gw-locl__bar {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px;
	padding-bottom: 16px; border-bottom: 1px solid #DDDDDD;
}
.gw-locl .gw-locl__count { margin: 0; font-size: 15px; line-height: 1.4; color: #6b6b6b; }
.gw-locl .gw-locl__count strong { font-weight: 700; color: #424242; }
.gw-locl .gw-locl__legend {
	margin: 0; display: inline-flex; align-items: center; gap: 8px;
	font-size: 14px; line-height: 1.4; color: #6b6b6b;
}

.gw-locl .gw-locl__region {
	display: flex; flex-direction: column; gap: 18px;
	scroll-margin-top: var(--gw-header-offset);
}
.gw-locl .gw-locl__region-head { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.gw-locl .gw-locl__h3 {
	margin: 0; padding: 0; font-family: inherit; font-size: 26px; font-weight: 700;
	line-height: 1.2; text-transform: none; letter-spacing: 0; color: #424242;
}
.gw-locl .gw-locl__badge {
	display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px;
	border-radius: 999px; background: rgba(240, 240, 240, 0.5); border: 1px solid #DDDDDD;
	font-size: 13px; font-weight: 600; line-height: 1.4; color: #6b6b6b;
}

.gw-locl .gw-locl__grid {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px;
}
.gw-locl .gw-locl__item { display: flex; margin: 0; padding: 0; list-style: none; }
.gw-locl .gw-locl__item::before, .gw-locl .gw-locl__item::marker { content: none; }

.gw-locl .gw-locl__card {
	flex: 1 1 auto; display: flex; align-items: center; gap: 14px;
	min-height: 76px; padding: 16px 18px;
	background: #FFFFFF; border: 1px solid #DDDDDD; border-radius: 16px;
	text-decoration: none; color: #424242; line-height: 1.4;
	transition: border-color .2s;
}
.gw-locl .gw-locl__card:hover { border-color: #6e5092; color: #424242; }

.gw-locl .gw-locl__flag {
	flex: 0 0 38px; width: 38px; height: 44px; display: flex; align-items: center; justify-content: center;
	background: #DDDDDD; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.gw-locl .gw-locl__flag-in {
	width: 36px; height: 41px; display: flex; align-items: center; justify-content: center;
	background: #FFFFFF; overflow: hidden;
	clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.gw-locl .gw-locl__flag-in img {
	display: block; width: 100%; height: 100%; max-width: none; margin: 0; padding: 0;
	border: 0; border-radius: 0; box-shadow: none; object-fit: cover;
}

.gw-locl .gw-locl__card-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.gw-locl .gw-locl__name { display: block; font-size: 16px; font-weight: 700; line-height: 1.3; color: #424242; overflow-wrap: anywhere; }
.gw-locl .gw-locl__sub { display: block; font-size: 13px; font-weight: 500; line-height: 1.4; color: #6b6b6b; }
.gw-locl .gw-locl__sub--multi,
.gw-locl .gw-locl__sub.is-match { font-weight: 600; color: #6e5092; }
.gw-locl .gw-locl__arrow { flex: 0 0 auto; font-size: 16px; font-weight: 700; line-height: 1.4; color: #6e5092; transition: transform .2s; }
.gw-locl .gw-locl__card:hover .gw-locl__arrow { transform: translateX(3px); }

/* Empty state */
.gw-locl .gw-locl__empty {
	display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center;
	padding: 40px 24px; border: 1px solid #DDDDDD; border-radius: 20px; background: rgba(240, 240, 240, 0.5);
}
.gw-locl .gw-locl__empty-hex {
	width: 48px; height: 54px; display: flex; align-items: center; justify-content: center; background: #6e5092;
	clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.gw-locl .gw-locl__empty-title { margin: 0; font-size: 20px; font-weight: 700; line-height: 1.3; color: #424242; }
.gw-locl .gw-locl__empty-text { margin: 0; max-width: 560px; font-size: 16px; line-height: 1.6; color: #424242; }
.gw-locl .gw-locl__link { color: #6e5092; font-weight: 600; line-height: 1.6; text-decoration: underline; text-underline-offset: 2px; }
.gw-locl .gw-locl__link:hover { color: #424242; }

/* =========================================================================
   CTA band
   ====================================================================== */
.gw-locl-cta { margin: 0; padding: 56px 24px; }
.gw-locl-cta .gw-locl-cta__band {
	position: relative; overflow: hidden; max-width: 1240px; margin: 0 auto;
	padding: 56px 32px; border-radius: 24px; background: #6e5092; color: #FFFFFF;
	display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center;
}
/* Honeycomb pattern: a seamless 56x100 hex tile drawn as a background, so theme SVG styles can't distort it */
.gw-locl-cta .gw-locl-cta__band::before {
	content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.14;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100' viewBox='0 0 56 100'%3E%3Cpath d='M28 66L0 50L0 16L28 0L56 16L56 50L28 66L28 100' fill='none' stroke='%23FFFFFF' stroke-width='1.5'/%3E%3C/svg%3E");
	background-repeat: repeat; background-size: 56px 100px; background-position: center;
}
.gw-locl-cta .gw-locl-cta__title {
	position: relative; margin: 0; padding: 0; max-width: 760px;
	font-family: inherit; font-size: 36px; font-weight: 700; line-height: 1.2;
	text-transform: none; letter-spacing: 0; color: #FFFFFF;
}
.gw-locl-cta .gw-locl-cta__text { position: relative; margin: 0; max-width: 640px; font-size: 18px; line-height: 1.6; color: #f1ecf6; }
.gw-locl-cta .gw-locl-cta__btn {
	position: relative; margin-top: 8px;
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 48px; padding: 0 26px; border-radius: 10px;
	font-family: inherit; font-size: 16px; font-weight: 600; line-height: 1.4; text-decoration: none;
	background: #FFFFFF; color: #6e5092; border: 1px solid #FFFFFF;
	transition: background-color .2s, border-color .2s, color .2s;
}
.gw-locl-cta .gw-locl-cta__btn:hover { background: #424242; border-color: #424242; color: #FFFFFF; }
.gw-locl-cta .gw-locl-cta__note { position: relative; font-size: 14px; line-height: 1.4; color: #f1ecf6; }

/* =========================================================================
   FAQ (site standard)
   ====================================================================== */
.gw-locl-faq { margin: 0; padding: 56px 24px; scroll-margin-top: var(--gw-header-offset); }
.gw-locl-faq .gw-locl-faq__wrap { max-width: 1240px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.gw-locl-faq .gw-locl-faq__side { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.gw-locl-faq .gw-locl-faq__h2 {
	margin: 0; padding: 0; font-family: inherit; font-size: 36px; font-weight: 700;
	line-height: 1.2; text-transform: none; letter-spacing: 0; color: #424242;
}
.gw-locl-faq .gw-locl-faq__em { color: #6e5092; }
.gw-locl-faq .gw-locl-faq__intro { margin: 0; font-size: 17px; line-height: 1.6; color: #424242; }
.gw-locl-faq .gw-locl-faq__card {
	margin-top: 8px; padding: 24px; border: 1px solid #DDDDDD; border-radius: 20px;
	background: rgba(240, 240, 240, 0.5); display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
}
.gw-locl-faq .gw-locl-faq__card-hex {
	width: 44px; height: 48px; display: flex; align-items: center; justify-content: center; background: #6e5092;
	clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.gw-locl-faq .gw-locl-faq__card-title { margin: 0; font-size: 18px; font-weight: 700; line-height: 1.3; color: #424242; }
.gw-locl-faq .gw-locl-faq__card-text { margin: 0; font-size: 15px; line-height: 1.6; color: #424242; }
.gw-locl-faq .gw-locl-faq__card-link {
	display: inline-flex; align-items: center; min-height: 44px;
	font-size: 15px; font-weight: 600; line-height: 1.4; color: #6e5092; text-decoration: none; transition: color .2s;
}
.gw-locl-faq .gw-locl-faq__card-link:hover { color: #424242; }

.gw-locl-faq .gw-locl-faq__list { flex: 2 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.gw-locl-faq .gw-locl-faq__item { margin: 0; border: 1px solid #DDDDDD; border-radius: 16px; background: #FFFFFF; transition: border-color .2s; }
.gw-locl-faq .gw-locl-faq__item.is-open { border: 2px solid #6e5092; }
.gw-locl-faq .gw-locl-faq__q { margin: 0; padding: 0; font-family: inherit; font-size: 17px; font-weight: 600; line-height: 1.4; text-transform: none; letter-spacing: 0; }
.gw-locl-faq .gw-locl-faq__btn {
	width: 100%; min-height: 60px; margin: 0; padding: 16px 20px;
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	border: 0; border-radius: 16px; background: none; box-shadow: none;
	font-family: inherit; font-size: 17px; font-weight: 600; line-height: 1.4; color: #424242;
	text-align: left; text-transform: none; letter-spacing: 0; cursor: pointer;
}
.gw-locl-faq .gw-locl-faq__btn:hover, .gw-locl-faq .gw-locl-faq__btn:focus { background: none; color: #424242; }
.gw-locl-faq .gw-locl-faq__q-text { line-height: 1.4; }
.gw-locl-faq .gw-locl-faq__chev { flex: 0 0 auto; transition: transform .2s; }
.gw-locl-faq .gw-locl-faq__item.is-open .gw-locl-faq__chev { transform: rotate(180deg); }
.gw-locl-faq .gw-locl-faq__a { padding: 0 20px 18px; }
.gw-locl-faq .gw-locl-faq__a-text { margin: 0; font-size: 16px; line-height: 1.7; color: #424242; }
/* With JavaScript, closed answers collapse; without it every answer stays visible. */
.gw-locl-faq.is-ready .gw-locl-faq__item:not(.is-open) .gw-locl-faq__a { display: none; }

/* =========================================================================
   Responsive
   ====================================================================== */
@media (max-width: 1080px) {
	.gw-locl .gw-locl__decor { display: none; }
	.gw-locl .gw-locl__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
	.gw-locl .gw-locl__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
	.gw-locl .gw-locl__hero { padding: 40px 20px 32px; }
	.gw-locl .gw-locl__h1 { font-size: clamp(42px, 6vw, 64px); }
	.gw-locl .gw-locl__intro { font-size: 17px; }
	.gw-locl .gw-locl__search { flex-wrap: wrap; padding: 8px 8px 8px 16px; }
	.gw-locl .gw-locl__search-btn { flex: 1 1 100%; }
	.gw-locl .gw-locl__chips {
		justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto;
		margin: 0 -20px; padding: 0 20px 4px; width: calc(100% + 40px); max-width: none;
		scrollbar-width: none;
	}
	.gw-locl .gw-locl__chips::-webkit-scrollbar { display: none; }
	.gw-locl .gw-locl__list { padding: 32px 20px 40px; }
	.gw-locl .gw-locl__wrap { gap: 32px; }
	.gw-locl .gw-locl__h3 { font-size: 22px; }
	.gw-locl .gw-locl__btn { flex: 1 1 100%; }
	.gw-locl .gw-locl__clear { align-self: stretch; }

	.gw-locl-cta { padding: 40px 20px; }
	.gw-locl-cta .gw-locl-cta__band { padding: 40px 20px; }
	.gw-locl-cta .gw-locl-cta__title { font-size: 30px; }
	.gw-locl-cta .gw-locl-cta__btn { align-self: stretch; }

	.gw-locl-faq { padding: 40px 20px; }
	.gw-locl-faq .gw-locl-faq__h2 { font-size: 30px; }
}
@media (max-width: 540px) {
	/* Two compact columns on phones keeps 70 countries to a reasonable scroll. */
	.gw-locl .gw-locl__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.gw-locl .gw-locl__card { min-height: 68px; padding: 12px; gap: 10px; border-radius: 14px; }
	.gw-locl .gw-locl__flag { flex-basis: 32px; width: 32px; height: 37px; }
	.gw-locl .gw-locl__flag-in { width: 30px; height: 34px; }
	.gw-locl .gw-locl__name { font-size: 15px; }
	.gw-locl .gw-locl__sub { font-size: 12px; }
	.gw-locl .gw-locl__arrow { display: none; }
}
@media (max-width: 340px) {
	.gw-locl .gw-locl__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.gw-locl *, .gw-locl-cta *, .gw-locl-faq * { transition: none !important; }
	.gw-locl .gw-locl__card:hover .gw-locl__arrow { transform: none; }
}