/* ==========================================================================
   VPT Travel theme. Visual language ported from the Nino portfolio template:
   cream and black blocks, tall condensed uppercase headings, pill cards.
   ========================================================================== */

:root {
	/* Brand colours taken from the Vacation Planner Travel logo and name card. */
	--vpt-blue: #326496;      /* logo V and P, primary */
	--vpt-blue-mid: #3c82be;  /* logo swoosh */
	--vpt-sky: #5ab4d2;       /* logo P highlight, card title */
	--vpt-green: #78be50;     /* logo plane and script */
	--vpt-orange: #f36526;    /* card icons, sale tags */

	--vpt-black: #13304c;     /* deep navy for text and dark sections */
	--vpt-cream: #eef5f9;     /* light sky tint, replaces Nino cream */
	--vpt-card: #ffffff;
	--vpt-white: #ffffff;
	--vpt-grey: #5f7489;
	--vpt-grey-dark: #1d3d5c;
	--vpt-line-dark: rgba(255, 255, 255, 0.12);
	--vpt-line-light: rgba(19, 48, 76, 0.12);
	--vpt-accent: var(--vpt-green);
	--vpt-radius: 20px;
	--vpt-font-text: "Poppins", "Noto Sans TC", system-ui, sans-serif;
	--vpt-font-title: "Oswald", "Noto Sans TC", "Arial Narrow", sans-serif;
	--vpt-gutter: 24px;
	--vpt-header-h: 84px;
}

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

html { scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--vpt-cream);
	color: var(--vpt-black);
	font-family: var(--vpt-font-text);
	font-size: 16px;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

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

a { color: inherit; text-decoration: none; transition: color .3s, background .3s, border-color .3s; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--vpt-font-title);
	font-weight: 500;
	line-height: 1.15;
	margin: 0 0 .5em;
	color: inherit;
}

p { margin: 0 0 1em; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto;
	z-index: 1000; top: 8px; left: 8px;
	background: var(--vpt-black); color: var(--vpt-white);
	padding: 8px 16px;
}

.vpt-container {
	width: 100%;
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 var(--vpt-gutter);
}

.vpt-section { padding: 90px 0; }
.vpt-section--tight { padding: 40px 0 90px; }

/* Buttons ---------------------------------------------------------------- */
.vpt-btn,
.button,
button.button,
input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: var(--vpt-blue);
	color: var(--vpt-white);
	border: 1px solid var(--vpt-blue);
	border-radius: 2px;
	padding: 18px 32px;
	font-family: var(--vpt-font-text);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
	transition: .3s;
}
.vpt-btn:hover,
.button:hover,
input[type="submit"]:hover {
	background: transparent;
	color: var(--vpt-blue);
}
.vpt-btn i { font-size: 18px; transition: transform .3s; }
.vpt-btn:hover i { transform: rotate(45deg); }

.vpt-btn--sm { padding: 12px 20px; }
.vpt-btn--light { background: var(--vpt-green); color: var(--vpt-black); border-color: var(--vpt-green); }
.vpt-btn--light:hover { background: transparent; color: var(--vpt-green); }
.vpt-btn--outline { background: transparent; color: var(--vpt-black); }
.vpt-btn--outline:hover { background: var(--vpt-black); color: var(--vpt-white); }
.vpt-btn--outline-light { background: transparent; color: var(--vpt-cream); border-color: rgba(255,255,255,.3); }
.vpt-btn--outline-light:hover { background: var(--vpt-cream); color: var(--vpt-black); border-color: var(--vpt-cream); }

/* Header ----------------------------------------------------------------- */
.vpt-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 100;
	transition: background .4s, padding .4s, border-color .4s;
	border-bottom: 1px solid transparent;
}
.admin-bar .vpt-header { top: 32px; }
.vpt-header.is-sticky {
	background: var(--vpt-cream);
	border-bottom-color: var(--vpt-line-light);
}
body:not(.vpt-home) .vpt-header { background: var(--vpt-cream); border-bottom-color: var(--vpt-line-light); }

.vpt-header__inner {
	display: flex;
	align-items: center;
	gap: 24px;
	min-height: var(--vpt-header-h);
	transition: min-height .4s;
}
.vpt-header.is-sticky .vpt-header__inner { min-height: 68px; }

.vpt-header__logo img { height: 56px; width: auto; transition: height .4s; }
.vpt-header.is-sticky .vpt-header__logo img { height: 46px; }
.vpt-logo-img { display: inline-block; line-height: 0; }
.vpt-logo-text {
	font-family: var(--vpt-font-title);
	font-size: 30px;
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1;
	text-transform: uppercase;
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
}
.vpt-logo-text span { font-weight: 400; font-size: .6em; letter-spacing: .12em; }

.vpt-nav { margin-left: auto; }
.vpt-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 28px; }
.vpt-menu > li { position: relative; }
.vpt-menu a {
	display: inline-block;
	padding: 10px 0;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
	position: relative;
}
.vpt-menu > li > a::after {
	content: "";
	position: absolute; left: 0; bottom: 4px;
	width: 0; height: 1px;
	background: currentColor;
	transition: width .3s;
}
.vpt-menu > li:hover > a::after,
.vpt-menu > .current-menu-item > a::after { width: 100%; }

.vpt-menu .sub-menu {
	list-style: none;
	position: absolute;
	top: 100%; left: -20px;
	min-width: 220px;
	margin: 0;
	padding: 12px 0;
	background: var(--vpt-white);
	border: 1px solid var(--vpt-line-light);
	border-radius: 12px;
	opacity: 0; visibility: hidden;
	transform: translateY(10px);
	transition: .3s;
	box-shadow: 0 20px 40px rgba(0,0,0,.06);
}
.vpt-menu li:hover > .sub-menu,
.vpt-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.vpt-menu .sub-menu a { display: block; padding: 8px 20px; text-transform: none; letter-spacing: 0; }
.vpt-menu .sub-menu a:hover { background: var(--vpt-cream); }

.vpt-header__tools { display: flex; align-items: center; gap: 14px; }
.vpt-icon-link { position: relative; font-size: 22px; line-height: 1; }
.vpt-cart-count {
	position: absolute; top: -6px; right: -10px;
	min-width: 18px; height: 18px;
	border-radius: 9px;
	background: var(--vpt-orange); color: var(--vpt-white);
	font-size: 11px; line-height: 18px; text-align: center;
	padding: 0 4px;
}
.vpt-cart-count[data-count="0"] { display: none; }

.vpt-lang { list-style: none; margin: 0; padding: 0; display: flex; gap: 10px; font-size: 13px; }
.vpt-lang li { text-transform: none; }
.vpt-lang .current-lang a { font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }

.vpt-burger {
	display: none;
	width: 44px; height: 44px;
	border: 1px solid var(--vpt-line-light);
	background: transparent;
	border-radius: 50%;
	cursor: pointer;
	flex-direction: column; align-items: center; justify-content: center; gap: 4px;
}
.vpt-burger span { width: 18px; height: 1.5px; background: var(--vpt-blue); transition: .3s; }
.vpt-nav-open .vpt-burger span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.vpt-nav-open .vpt-burger span:nth-child(2) { opacity: 0; }
.vpt-nav-open .vpt-burger span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
.vpt-nav__mobile-extra { display: none; }

/* Section titles --------------------------------------------------------- */
.vpt-section-title { margin-bottom: 50px; }
.vpt-section-title h2 {
	font-size: clamp(40px, 6vw, 72px);
	line-height: 1;
	text-transform: uppercase;
	margin: 0 0 16px;
}
.vpt-section-title p { max-width: 640px; color: var(--vpt-grey); margin: 0; }
.vpt-section-title--light h2 { color: var(--vpt-white); }
.vpt-section-title--light p { color: rgba(255,255,255,.6); }
.vpt-section-title--row {
	display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap;
}

.vpt-kicker {
	display: inline-block;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--vpt-grey);
	margin-bottom: 16px;
}

/* Hero ------------------------------------------------------------------- */
.vpt-hero {
	background: var(--vpt-cream);
	padding-top: calc(var(--vpt-header-h) + 20px);
	position: relative;
	z-index: 2;
	overflow-x: clip;
	overflow-y: visible;
}
.vpt-hero__title {
	font-size: clamp(64px, 15.5vw, 210px);
	font-weight: 500;
	line-height: .95;
	text-transform: uppercase;
	text-align: center;
	letter-spacing: -.01em;
	margin: 0;
	white-space: nowrap;
	background: linear-gradient(100deg, var(--vpt-blue) 0%, var(--vpt-blue-mid) 45%, var(--vpt-sky) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.vpt-hero__grid {
	display: grid;
	grid-template-columns: 1fr 1.6fr 1fr;
	gap: 30px;
	align-items: start;
}
.vpt-hero__left,
.vpt-hero__right { padding-top: 36px; }
.vpt-hero__right p { font-size: 16px; color: var(--vpt-black); margin-bottom: 28px; }

.vpt-trust { display: flex; gap: 14px; align-items: flex-start; }
.vpt-trust__icon {
	flex: 0 0 52px; height: 52px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--vpt-blue), var(--vpt-sky)); color: var(--vpt-white);
	display: grid; place-items: center;
	font-size: 24px;
}
.vpt-trust strong { display: block; font-weight: 600; }
.vpt-trust p { color: var(--vpt-grey); font-size: 14px; line-height: 1.6; margin: 4px 0 0; }

.vpt-hero__image { position: relative; z-index: 2; display: flex; justify-content: center; }
.vpt-hero__image img,
.vpt-hero__placeholder {
	width: min(400px, 100%);
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--vpt-radius);
	border: 3px solid var(--vpt-white);
	margin-top: -70px;
	margin-bottom: -120px;
	rotate: 8deg;
	transition: rotate .4s;
	box-shadow: 0 30px 60px rgba(0,0,0,.18);
}
.vpt-hero__image:hover img,
.vpt-hero__image:hover .vpt-hero__placeholder { rotate: 0deg; }
.vpt-hero__placeholder {
	background:
		radial-gradient(circle at 75% 15%, rgba(120,190,80,.45), transparent 35%),
		linear-gradient(160deg, var(--vpt-sky) 0%, var(--vpt-blue) 55%, var(--vpt-black) 100%);
	color: var(--vpt-cream);
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
}
.vpt-hero__placeholder i { font-size: 96px; }
.vpt-hero__placeholder span { font-family: var(--vpt-font-title); font-size: 28px; letter-spacing: .08em; }

/* Partner marquee -------------------------------------------------------- */
.vpt-partners {
	background: linear-gradient(180deg, var(--vpt-black) 0%, #173a5b 100%);
	color: var(--vpt-white);
	padding: 150px 0 70px;
	overflow: hidden;
}
.vpt-partners__label {
	text-align: center;
	font-size: 13px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(255,255,255,.55);
	margin-bottom: 30px;
}
.vpt-marquee { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.vpt-marquee__track {
	display: flex;
	gap: 64px;
	width: max-content;
	animation: vpt-marquee 40s linear infinite;
}
.vpt-marquee__item {
	font-family: var(--vpt-font-title);
	font-size: 28px;
	white-space: nowrap;
	color: rgba(255,255,255,.75);
	text-transform: uppercase;
}
@keyframes vpt-marquee { to { transform: translateX(-50%); } }
.vpt-marquee__logo { display: inline-flex; align-items: center; height: 48px; }
.vpt-marquee__logo img { height: 40px; width: auto; max-width: 180px; object-fit: contain; filter: brightness(0) invert(1); opacity: .8; transition: opacity .3s; }
.vpt-marquee__logo img:hover { opacity: 1; }

/* Quote section ---------------------------------------------------------- */
.vpt-quote {
	background: #173a5b;
	color: var(--vpt-white);
	padding: 40px 0 110px;
	scroll-margin-top: 60px;
}

/* Services --------------------------------------------------------------- */
.vpt-services { padding: 100px 0; background: var(--vpt-cream); }
.vpt-services__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.vpt-service.is-wide { grid-column: span 2; }
.vpt-service {
	position: relative;
	display: block;
	padding: 56px 40px 48px;
	border-radius: var(--vpt-radius);
	background: var(--vpt-card);
	border: 1px solid var(--vpt-line-light);
	transition: .5s;
}
.vpt-service:hover { border-color: var(--vpt-blue); transform: translateY(-4px); box-shadow: 0 20px 40px rgba(50,100,150,.12); }
.vpt-service__arrow {
	position: absolute; top: 48px; right: 36px;
	font-size: 32px;
	transition: rotate .5s;
}
.vpt-service:hover .vpt-service__arrow { rotate: 45deg; }
.vpt-service__num {
	display: inline-block;
	padding: 3px 10px;
	border: 1px solid currentColor;
	border-radius: 6px;
	font-size: 14px;
	color: var(--vpt-grey);
	margin-bottom: 56px;
	transition: .5s;
}
.vpt-service:hover .vpt-service__num { background: var(--vpt-blue); color: var(--vpt-white); border-color: var(--vpt-blue); }
.vpt-service__arrow { color: var(--vpt-blue); }
.vpt-service h3 { font-size: clamp(26px, 3vw, 32px); text-transform: uppercase; margin-bottom: 16px; }
.vpt-service p { color: var(--vpt-grey); margin: 0; max-width: 560px; }

/* Cards (deals and blog) -------------------------------------------------- */
.vpt-deals { background: var(--vpt-cream); color: var(--vpt-black); padding: 100px 0; }
.vpt-card--light .vpt-card__price { color: var(--vpt-blue); }
.vpt-card__more { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; padding-top: 14px; border-top: 1px solid var(--vpt-line-light); font-size: 14px; font-weight: 500; color: var(--vpt-blue); }
.vpt-card__more i { transition: transform .3s; }
.vpt-card:hover .vpt-card__more i { transform: translateX(4px); }
.vpt-card--light .vpt-card__price del { color: var(--vpt-grey); }
.vpt-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.vpt-card {
	display: flex; flex-direction: column;
	border-radius: var(--vpt-radius);
	overflow: hidden;
	background: var(--vpt-grey-dark);
	border: 1px solid var(--vpt-line-dark);
	transition: .4s;
}
.vpt-card:hover { transform: translateY(-6px); border-color: rgba(255,255,255,.3); }
.vpt-card__img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: linear-gradient(160deg, var(--vpt-sky), var(--vpt-blue)); }
.vpt-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.vpt-card:hover .vpt-card__img img { transform: scale(1.05); }
.vpt-card__ph { display: grid; place-items: center; height: 100%; font-size: 48px; color: var(--vpt-grey); }
.vpt-card__badge {
	position: absolute; top: 16px; left: 16px;
	background: var(--vpt-orange); color: var(--vpt-white);
	font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
	padding: 4px 12px; border-radius: 30px;
}
.vpt-card__body { padding: 24px 26px 28px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.vpt-card__cat { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--vpt-sky); }
.vpt-card h3 { font-size: 24px; line-height: 1.25; margin: 0; text-transform: uppercase; }
.vpt-card__price { margin-top: auto; font-size: 18px; font-weight: 500; color: var(--vpt-accent); }
.vpt-card__price del { color: var(--vpt-grey); font-size: 14px; margin-right: 6px; }
.vpt-card__price ins { text-decoration: none; }

.vpt-card--light { background: var(--vpt-card); border-color: var(--vpt-line-light); color: var(--vpt-black); }
.vpt-card--light:hover { border-color: var(--vpt-black); }
.vpt-card--light p { color: var(--vpt-grey); margin: 0; font-size: 15px; }

/* Steps ------------------------------------------------------------------ */
.vpt-steps { padding: 100px 0; background: var(--vpt-cream); }
.vpt-steps__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.vpt-step { border-top: 2px solid var(--vpt-blue); padding-top: 28px; }
.vpt-step__num { font-family: var(--vpt-font-title); font-size: 64px; line-height: 1; display: block; margin-bottom: 20px; color: var(--vpt-sky); }
.vpt-step h3 { font-size: 26px; text-transform: uppercase; }
.vpt-step p { color: var(--vpt-grey); margin: 0; }

/* Inner page banner ------------------------------------------------------ */
.vpt-banner {
	background: var(--vpt-cream);
	padding: calc(var(--vpt-header-h) + 60px) 0 50px;
	border-bottom: 1px solid var(--vpt-line-light);
}
.vpt-banner__title {
	font-size: clamp(44px, 8vw, 110px);
	line-height: 1;
	text-transform: uppercase;
	margin: 0;
	word-break: break-word;
}
.vpt-banner__sub { margin: 16px 0 0; color: var(--vpt-grey); }

html { overflow-x: clip; }

/* Prose ------------------------------------------------------------------ */
.vpt-prose { max-width: 860px; }
.vpt-prose h2 { font-size: 40px; text-transform: uppercase; margin-top: 1.4em; }
.vpt-prose h3 { font-size: 28px; margin-top: 1.2em; }
.vpt-prose a { text-decoration: underline; text-underline-offset: 3px; }
.vpt-prose ul, .vpt-prose ol { padding-left: 1.3em; }
.vpt-prose .alignwide, .vpt-prose .alignfull { max-width: none; }
.vpt-featured { margin: 0 0 40px; }
.vpt-featured img { border-radius: var(--vpt-radius); }
.vpt-page-content { padding: 80px 0; }

/* Forms (general) -------------------------------------------------------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="date"],
input[type="password"], input[type="search"], input[type="url"], select, textarea {
	width: 100%;
	font: inherit;
	font-size: 15px;
	padding: 13px 16px;
	border: 1px solid var(--vpt-line-light);
	border-radius: 10px;
	background: var(--vpt-white);
	color: var(--vpt-black);
	transition: border-color .3s;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--vpt-blue); box-shadow: 0 0 0 3px rgba(90,180,210,.25); }
label { font-size: 14px; font-weight: 500; }

.vpt-search { display: flex; max-width: 480px; gap: 8px; }
.vpt-search button { background: var(--vpt-blue); color: var(--vpt-white); border: 0; border-radius: 10px; padding: 0 18px; font-size: 18px; cursor: pointer; }

.vpt-notice { padding: 16px 20px; border-radius: 12px; background: rgba(255,255,255,.08); }

/* Pagination & breadcrumb ------------------------------------------------ */
.vpt-pagination { margin-top: 50px; }
.nav-links { display: flex; gap: 8px; flex-wrap: wrap; }
.page-numbers {
	display: inline-grid; place-items: center;
	min-width: 44px; height: 44px; padding: 0 10px;
	border: 1px solid var(--vpt-line-light); border-radius: 50%;
}
.page-numbers.current, .page-numbers:hover { background: var(--vpt-blue); color: var(--vpt-white); border-color: var(--vpt-black); }
.vpt-breadcrumb { font-size: 13px; color: var(--vpt-grey); margin-bottom: 30px; }
.vpt-breadcrumb .sep { margin: 0 8px; }
.post-navigation .nav-links { justify-content: space-between; margin-top: 60px; border-top: 1px solid var(--vpt-line-light); padding-top: 30px; }

/* 404 -------------------------------------------------------------------- */
.vpt-404 { padding: calc(var(--vpt-header-h) + 80px) 0 120px; text-align: center; }
.vpt-404__big { font-size: clamp(120px, 30vw, 320px); line-height: .9; margin: 0; }
.vpt-404 p { color: var(--vpt-grey); }
.vpt-404 .vpt-btn { margin: 6px; }

/* Footer ----------------------------------------------------------------- */
.vpt-footer {
	background: var(--vpt-black);
	color: rgba(255,255,255,.72);
	padding: 100px 0 30px;
	border-top: 6px solid transparent;
	border-image: linear-gradient(90deg, var(--vpt-blue), var(--vpt-sky), var(--vpt-green)) 1;
}
.vpt-footer h4 { color: var(--vpt-white); font-size: 20px; text-transform: uppercase; margin-bottom: 16px; }
.vpt-footer a:hover { color: var(--vpt-white); }
.vpt-footer__cta {
	display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap;
	padding-bottom: 60px; margin-bottom: 60px;
	border-bottom: 1px solid var(--vpt-line-dark);
}
.vpt-footer__big { font-size: clamp(44px, 8vw, 110px); line-height: 1; color: var(--vpt-white); text-transform: uppercase; margin: 0; }
.vpt-footer__grid { display: grid; grid-template-columns: 1.4fr; grid-auto-columns: 1fr; grid-auto-flow: column; gap: 40px; }
.vpt-footer__logo { color: var(--vpt-white); margin-bottom: 16px; }
.vpt-footer__logo img { height: 90px; width: auto; }
.vpt-footer__member { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.vpt-footer__tic { flex: 0 0 auto; line-height: 0; }
.vpt-footer__tic img { width: 120px; height: auto; }
.vpt-footer__member-text { display: flex; flex-direction: column; gap: 4px; font-size: 13px; line-height: 1.5; }
.vpt-footer__member-text strong { color: var(--vpt-white); font-weight: 500; }
.vpt-footer__member-text span { color: rgba(255,255,255,.6); }
.vpt-footer__menu { list-style: none; margin: 0; padding: 0; }
.vpt-footer__menu li { margin-bottom: 6px; }
.vpt-footer__bottom {
	margin-top: 60px; padding-top: 24px;
	border-top: 1px solid var(--vpt-line-dark);
	display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap;
	font-size: 13px;
}
.vpt-footer__bottom p { margin: 0; }
.vpt-footer__note { color: rgba(255,255,255,.45); max-width: 620px; }

.vpt-wa-float {
	position: fixed; right: 20px; bottom: 20px; z-index: 90;
	width: 56px; height: 56px; border-radius: 50%;
	background: #25d366; color: #fff;
	display: grid; place-items: center;
	font-size: 28px;
	box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.vpt-wa-float:hover { transform: scale(1.06); }

/* Reveal on scroll ------------------------------------------------------- */
.vpt-js .vpt-reveal { opacity: 0; transform: translateY(30px); transition: opacity .8s ease, transform .8s ease; }
.vpt-js .vpt-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.vpt-js .vpt-reveal { opacity: 1; transform: none; }
	.vpt-marquee__track { animation: none; }
}

/* Responsive ------------------------------------------------------------- */
@media (max-width: 1199px) {
	.vpt-menu { gap: 20px; }
	.vpt-header__cta { display: none; }
}

@media (max-width: 991px) {
	:root { --vpt-header-h: 72px; }
	.vpt-burger { display: inline-flex; }
	.vpt-nav {
		position: fixed;
		inset: var(--vpt-header-h) 0 0 0;
		background: var(--vpt-cream);
		padding: 30px var(--vpt-gutter);
		overflow-y: auto;
		transform: translateX(100%);
		visibility: hidden;
		transition: transform .4s ease, visibility 0s linear .4s;
		margin: 0;
	}
	.admin-bar .vpt-nav { top: calc(var(--vpt-header-h) + 46px); }
	.vpt-nav-open .vpt-nav { transform: none; visibility: visible; transition: transform .4s ease; }
	.vpt-nav-open { overflow: hidden; }
	.vpt-menu { flex-direction: column; gap: 0; }
	.vpt-menu > li { border-bottom: 1px solid var(--vpt-line-light); }
	.vpt-menu a { font-family: var(--vpt-font-title); font-size: 26px; padding: 14px 0; }
	.vpt-menu > li > a::after { display: none; }
	.vpt-menu .sub-menu {
		position: static; opacity: 1; visibility: visible; transform: none;
		box-shadow: none; border: 0; background: transparent; padding: 0 0 12px 12px;
	}
	.vpt-menu .sub-menu a { font-family: var(--vpt-font-text); font-size: 16px; padding: 6px 0; }
	.vpt-nav__mobile-extra { display: block; margin-top: 30px; }
	.vpt-header__tools { margin-left: auto; }
	.vpt-nav { margin-left: 0; }
	.vpt-lang { display: none; }
	.vpt-nav-open .vpt-lang { display: flex; }

	.vpt-hero__grid { grid-template-columns: 1fr 1fr; }
	.vpt-hero__image { grid-column: 1 / -1; order: -1; }
	.vpt-hero__image img, .vpt-hero__placeholder { margin-top: 10px; margin-bottom: 0; width: min(340px, 80%); }
	.vpt-partners { padding-top: 70px; }
	.vpt-hero { padding-bottom: 50px; }

	.vpt-services__grid { grid-template-columns: 1fr 1fr; }
	.vpt-service.is-wide { grid-column: span 1; }
	.vpt-cards { grid-template-columns: 1fr 1fr; }
	.vpt-footer__grid { grid-template-columns: 1fr 1fr; grid-auto-flow: row; }
}

@media (max-width: 782px) {
	.admin-bar .vpt-header { top: 46px; }
}

@media (max-width: 640px) {
	:root { --vpt-gutter: 16px; }
	.vpt-section, .vpt-services, .vpt-deals, .vpt-steps { padding: 70px 0; }
	.vpt-hero__title { white-space: normal; font-size: clamp(56px, 19vw, 110px); }
	.vpt-hero__grid { grid-template-columns: 1fr; }
	.vpt-hero__left, .vpt-hero__right { padding-top: 10px; }
	.vpt-services__grid, .vpt-cards, .vpt-steps__grid, .vpt-footer__grid { grid-template-columns: 1fr; }
	.vpt-service { padding: 40px 26px 34px; }
	.vpt-service__num { margin-bottom: 36px; }
	.vpt-header__tools { gap: 12px; }
	.vpt-logo-text { font-size: 24px; }
	.vpt-footer { padding-top: 70px; }
}

/* Product pages have no banner, so clear the fixed header. */
.vpt-section--product { padding-top: calc(var(--vpt-header-h) + 40px); }
