/*
 * Voyager footer: atlas (photo strip, airmail newsletter, stats, columns), postcard, minimal.
 * Every block reads --f-* so it works on the dark sheet and on sand.
 */

.vy-footer {
	--f-text: var(--vy-text);
	--f-strong: var(--vy-heading);
	--f-mute: var(--vy-mute);
	--f-line: var(--vy-line);
	--f-num: var(--vy-accent);
	--f-chip: var(--vy-surface);
	margin-top: clamp(64px, 8vw, 112px);
	color: var(--f-text);
}
.vy-footer a { color: inherit; text-decoration: none; }

/* photo strip ------------------------------------------------------------------- */
.vy-photos { position: relative; z-index: 2; }
.vy-photos__list { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0 14px; list-style: none; }
.vy-photos__item { overflow: hidden; aspect-ratio: 4 / 5; border-radius: 20px; background: var(--vy-soft); box-shadow: 0 24px 40px -30px rgba(8, 52, 74, .7); }
.vy-photos--strip .vy-photos__item:nth-child(even) { transform: translateY(26px); }
.vy-photos__item a { display: block; height: 100%; }
.vy-photos__img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--vy-ease), filter .6s; }
.vy-photos__item:hover .vy-photos__img { transform: scale(1.06); filter: saturate(1.15); }
.vy-photos__badge {
	position: absolute; left: 50%; top: 50%; display: inline-flex; align-items: center; gap: 8px; padding: .75em 1.3em;
	border-radius: 999px; background: var(--vy-surface); color: var(--vy-heading) !important; font-weight: 650; font-size: .95rem;
	box-shadow: 0 18px 40px -18px rgba(8, 52, 74, .6); transform: translate(-50%, -50%); transition: transform .3s var(--vy-ease), background .2s;
}
.vy-photos__badge .vy-icon { color: var(--vy-accent); }
.vy-photos__badge:hover { transform: translate(-50%, -54%); background: var(--vy-accent); color: #fff !important; }
.vy-photos__badge:hover .vy-icon { color: #fff; }

/* atlas sheet --------------------------------------------------------------------- */
.vy-footer__sheet {
	--f-text: color-mix(in srgb, var(--vy-on-deep) 76%, transparent);
	--f-strong: var(--vy-on-deep);
	--f-mute: color-mix(in srgb, var(--vy-on-deep) 55%, transparent);
	--f-line: rgba(255, 251, 245, .13);
	--f-num: var(--vy-highlight);
	--f-chip: rgba(255, 251, 245, .07);
	position: relative; margin-top: -84px; padding: 138px 0 26px; overflow: hidden;
	border-radius: clamp(28px, 4vw, 48px) clamp(28px, 4vw, 48px) 0 0; background: var(--vy-deep); color: var(--f-text);
}
.vy-footer__sheet::before {
	content: ""; position: absolute; right: -160px; top: 120px; width: 520px; height: 520px; border-radius: 50%; pointer-events: none;
	border: 1.5px dashed rgba(255, 251, 245, .08); box-shadow: 0 0 0 70px rgba(255, 251, 245, .015), 0 0 0 140px rgba(255, 251, 245, .012);
}
.vy-footer--atlas .vy-footer__sheet:first-child { margin-top: 0; padding-top: 64px; }

/* newsletter ------------------------------------------------------------------------- */
.vy-news { position: relative; }
.vy-news__eyebrow { display: inline-flex; align-items: center; gap: 7px; margin: 0 0 10px; color: var(--vy-accent); font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.vy-news__title { margin: 0; color: var(--vy-heading); font-size: clamp(1.7rem, 3.2vw, 2.6rem); line-height: 1.08; }
.vy-news__text { max-width: 470px; margin: 12px 0 0; color: var(--vy-mute); }
.vy-news__note { margin: 10px 0 0 18px; color: var(--vy-mute); font-size: .8rem; }
.vy-news--band {
	display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 20px 48px; align-items: center;
	padding: clamp(28px, 4vw, 48px) clamp(24px, 4vw, 56px); border: 9px solid transparent; border-radius: 30px;
	background: linear-gradient(var(--vy-surface), var(--vy-surface)) padding-box,
		repeating-linear-gradient(-45deg, var(--vy-accent) 0 14px, var(--vy-surface) 14px 22px, var(--vy-primary) 22px 36px, var(--vy-surface) 36px 44px) border-box;
	box-shadow: 0 40px 70px -40px rgba(0, 0, 0, .6);
}
html[data-vy-theme="dark"] .vy-news--band { --vy-primary: #6FC3D6; }
.vy-news__art { position: absolute; right: 26px; top: -38px; width: 190px; height: auto; pointer-events: none; }
.vy-news__trail { stroke: var(--vy-accent); }
.vy-news__plane { fill: var(--vy-highlight); }
.vy-news__plane2 { fill: color-mix(in srgb, var(--vy-highlight) 70%, #000); }

/* form */
.vy-nl { position: relative; margin: 0; }
.vy-nl__hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.vy-nl__row {
	display: flex; align-items: center; gap: 6px; padding: 6px 6px 6px 18px; border-radius: 999px;
	background: var(--vy-bg); box-shadow: 0 0 0 1px var(--vy-line); transition: box-shadow .2s;
}
.vy-nl__row:focus-within { box-shadow: 0 0 0 2px var(--vy-primary); }
.vy-nl__icon { display: grid; color: var(--vy-mute); }
.vy-nl__input { flex: 1; min-width: 0; height: 46px; padding: 0 4px; border: 0; background: transparent; color: var(--vy-text); font: inherit; font-size: 1rem; outline: 0; }
.vy-nl__input::placeholder { color: var(--vy-mute); opacity: .8; }
.vy-nl .vy-nl__btn {
	display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 22px; border: 0; border-radius: 999px;
	background: var(--vy-accent); color: #fff; font: 650 .95rem/1 var(--vy-font-body); white-space: nowrap; cursor: pointer;
	transition: background .2s, transform .25s var(--vy-ease);
}
.vy-nl .vy-nl__btn:hover { background: var(--vy-primary); transform: translateY(-1px); }
.vy-nl__btn .vy-icon { transition: transform .4s var(--vy-ease); }
.vy-nl__btn:hover .vy-icon { transform: translate(3px, -3px); }
.vy-nl.is-busy .vy-nl__btn { opacity: .7; pointer-events: none; }
.vy-nl__msg { min-height: 0; margin: 0; font-size: .86rem; font-weight: 600; }
.vy-nl__msg:empty { display: none; }
.vy-nl__msg.is-ok, .vy-nl__msg.is-err { margin: 10px 0 0 18px; }
.vy-nl__msg.is-ok { color: #2E7D5B; }
.vy-nl__msg.is-err { color: #C0473A; }
html[data-vy-theme="dark"] .vy-nl__msg.is-ok { color: #7FD3A8; }
html[data-vy-theme="dark"] .vy-nl .vy-nl__btn:hover { color: #0F1A21; }

/* stats ------------------------------------------------------------------------------- */
.vy-fstats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: clamp(40px, 6vw, 72px) 0 0; padding: 0; list-style: none; }
.vy-fstats__item { display: flex; flex-direction: column; gap: 4px; padding: 6px 26px; border-left: 1px dashed var(--f-line); }
.vy-fstats__item:first-child { padding-left: 0; border-left: 0; }
.vy-fstats__num { color: var(--f-num); font-family: var(--vy-font-heading); font-size: clamp(2.1rem, 4vw, 3.3rem); font-weight: 500; line-height: 1; letter-spacing: -.02em; font-variation-settings: "SOFT" 100; }
.vy-fstats__label { color: var(--f-mute); font-size: .74rem; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; }

/* columns ------------------------------------------------------------------------------ */
.vy-fcols { display: grid; grid-template-columns: minmax(0, 1.45fr) repeat(4, minmax(0, 1fr)); gap: 40px; margin-top: clamp(40px, 6vw, 64px); padding-top: clamp(36px, 5vw, 52px); border-top: 1px dashed var(--f-line); }
.vy-fcolumn__title { margin: 0 0 16px; font-family: var(--vy-font-body); font-size: .76rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.vy-acc { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 0; border: 0; background: none; color: var(--f-strong); font: inherit; letter-spacing: inherit; text-align: left; text-transform: inherit; cursor: default; }
.vy-acc .vy-icon { display: none; transition: transform .3s var(--vy-ease); }
.vy-fcolumn__body > ul, .vy-flinks { margin: 0; padding: 0; list-style: none; }
.vy-flinks a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: .32em 0; color: var(--f-text); transition: color .2s, transform .25s var(--vy-ease); }
.vy-flinks a:hover { color: var(--vy-highlight); transform: translateX(3px); }
.vy-flinks span { padding: 0 7px; border-radius: 999px; background: var(--f-chip); color: var(--f-mute); font-size: .7rem; font-weight: 700; line-height: 1.6; }
.vy-flatest { display: grid; gap: 14px; }
.vy-flatest a { display: flex; align-items: center; gap: 12px; }
.vy-flatest__img { flex: none; width: 58px; height: 58px; border-radius: 14px; object-fit: cover; transition: transform .5s var(--vy-ease); }
.vy-flatest a:hover .vy-flatest__img { transform: rotate(-4deg) scale(1.04); }
.vy-flatest__txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.vy-flatest__title { color: var(--f-strong); font-family: var(--vy-font-heading); font-size: .98rem; font-weight: 520; line-height: 1.25; transition: color .2s; }
.vy-flatest a:hover .vy-flatest__title { color: var(--vy-highlight); }
.vy-flatest time { color: var(--f-mute); font-size: .76rem; }
.vy-socials--footer { flex-direction: column; align-items: stretch; gap: 2px; }
.vy-socials--footer a { display: flex; justify-content: flex-start; gap: 10px; width: auto; height: auto; padding: .3em 0; border-radius: 0; color: var(--f-text); }
.vy-socials--footer a .vy-icon { box-sizing: content-box; padding: 7px; border-radius: 50%; background: var(--f-chip); transition: background .2s, color .2s; }
.vy-socials--footer a:hover { background: none; color: var(--vy-highlight); }
.vy-socials--footer a:hover .vy-icon { background: var(--vy-accent); color: #fff; }
.vy-footer .widget { color: var(--f-text); }
.vy-footer .widget-title { color: var(--f-strong); font-family: var(--vy-font-body); font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; }

/* traveler card */
.vy-traveler { align-self: start; padding: 24px; border-radius: 26px; background: var(--f-chip); box-shadow: inset 0 0 0 1px var(--f-line); }
.vy-traveler__head { display: flex; align-items: center; gap: 14px; }
.vy-traveler__photo { position: relative; flex: none; width: 68px; height: 68px; }
.vy-traveler__img, .vy-traveler__initial { display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px var(--vy-deep), 0 0 0 5px var(--vy-accent); }
.vy-traveler__initial { background: var(--vy-accent); color: #fff; font-family: var(--vy-font-heading); font-size: 1.8rem; }
.vy-traveler__pin { position: absolute; right: -4px; bottom: -2px; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--vy-highlight); color: var(--vy-deep); box-shadow: 0 0 0 3px var(--vy-deep); }
.vy-traveler__hi { margin: 0; color: var(--f-mute); font-size: .78rem; }
.vy-traveler__name { margin: 0; color: var(--f-strong); font-family: var(--vy-font-heading); font-size: 1.35rem; font-weight: 560; line-height: 1.15; }
.vy-traveler__bio { margin: 16px 0 0; font-size: .92rem; line-height: 1.65; }
.vy-traveler__sign { position: relative; display: inline-block; margin: 10px 0 0; color: var(--vy-highlight); font-family: var(--vy-font-heading); font-size: 1.7rem; font-style: italic; font-weight: 380; line-height: 1.1; font-variation-settings: "SOFT" 100, "WONK" 1; transform: rotate(-3deg); transform-origin: left; }
.vy-traveler__sign svg { display: block; width: 110px; height: 12px; margin-top: -2px; color: var(--vy-accent); }
.vy-traveler__more { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; color: var(--f-strong) !important; font-size: .86rem; font-weight: 650; }
.vy-traveler__more:hover { color: var(--vy-highlight) !important; }

/* bottom bar ---------------------------------------------------------------------------- */
.vy-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 26px; margin-top: clamp(40px, 6vw, 60px); padding-top: 22px; border-top: 1px dashed var(--f-line); color: var(--f-mute); font-size: .85rem; }
.vy-footer__copy { margin: 0 auto 0 0; }
.vy-footer__menu ul { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 0; padding: 0; list-style: none; }
.vy-footer__menu a:hover { color: var(--vy-accent); }
.vy-footer__sheet .vy-footer__menu a:hover { color: var(--vy-highlight); }
.vy-totop { display: inline-flex; align-items: center; gap: 10px; color: var(--f-strong) !important; font-weight: 650; }
.vy-totop__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--f-chip); box-shadow: inset 0 0 0 1px var(--f-line); transition: background .25s, color .25s, transform .3s var(--vy-ease); }
.vy-totop:hover .vy-totop__icon { background: var(--vy-accent); color: #fff; transform: translateY(-3px); }

/* postcard ------------------------------------------------------------------------------- */
.vy-postcard {
	position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 0;
	border-radius: 30px; background: var(--vy-surface); box-shadow: 0 40px 70px -46px rgba(8, 52, 74, .55), 0 0 0 1px var(--vy-line);
}
.vy-postcard::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 9px; border-radius: 30px 30px 0 0; background: repeating-linear-gradient(-45deg, var(--vy-accent) 0 14px, var(--vy-surface) 14px 22px, var(--vy-primary) 22px 36px, var(--vy-surface) 36px 44px); }
.vy-postcard__msg { padding: clamp(32px, 5vw, 60px); border-right: 1.5px dashed var(--vy-line); }
.vy-postcard__hello { margin: 0 0 10px; color: var(--vy-accent); font-family: var(--vy-font-heading); font-size: 1.35rem; font-style: italic; font-variation-settings: "SOFT" 100, "WONK" 1; }
.vy-news--card .vy-news__eyebrow { display: none; }
.vy-news--card .vy-news__form { margin-top: 24px; }
.vy-postcard__from { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 32px; padding-top: 22px; border-top: 1px dashed var(--vy-line); }
.vy-postcard__addr { position: relative; padding: clamp(32px, 5vw, 60px); padding-top: 150px; }
.vy-postcard__stamp { position: absolute; right: clamp(28px, 4vw, 52px); top: 34px; }
.vy-stamp {
	display: block; width: 92px; height: 112px; padding: 8px; background: #fff; transform: rotate(4deg);
	-webkit-mask: linear-gradient(#000 0 0) content-box, radial-gradient(circle 4px, #0000 95%, #000) -6px -6px / 12px 12px round;
	mask: linear-gradient(#000 0 0) content-box, radial-gradient(circle 4px, #0000 95%, #000) -6px -6px / 12px 12px round;
	filter: drop-shadow(0 6px 10px rgba(8, 52, 74, .25));
}
.vy-stamp img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vy-postmark { position: absolute; right: 54px; top: 34px; width: 120px; height: 120px; stroke: var(--vy-primary); opacity: .55; transform: rotate(-14deg); }
.vy-postmark text { fill: var(--vy-primary); stroke: none; font: 700 11px/1 var(--vy-font-body); letter-spacing: .12em; text-transform: uppercase; }
.vy-postcard__line { padding: 12px 0 10px; border-bottom: 1.5px solid var(--vy-line); }
.vy-postcard__label { margin: 0 0 4px; color: var(--vy-accent); font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.vy-postcard__links, .vy-postcard__inline { display: flex; flex-wrap: wrap; gap: 2px 16px; margin: 0; padding: 0; list-style: none; }
.vy-postcard__links a, .vy-postcard__inline a, .vy-postcard__list a { color: var(--vy-heading); font-family: var(--vy-font-heading); font-size: 1.05rem; }
.vy-postcard__links a:hover, .vy-postcard__inline a:hover, .vy-postcard__list a:hover { color: var(--vy-accent); }
.vy-postcard__list { margin: 0; padding: 0; list-style: none; }
.vy-postcard__list li { padding: 2px 0; }
.vy-photos--polaroid { display: flex; justify-content: center; margin-top: -26px; }
.vy-photos--polaroid .vy-photos__list { display: flex; justify-content: center; gap: 0; padding: 0; }
.vy-photos--polaroid .vy-photos__item { width: 150px; margin: 0 -8px; padding: 8px 8px 30px; border-radius: 4px; aspect-ratio: auto; background: #fff; box-shadow: 0 18px 30px -20px rgba(8, 52, 74, .6); transition: transform .5s var(--vy-ease); }
.vy-photos--polaroid .vy-photos__item a { aspect-ratio: 1; overflow: hidden; }
.vy-photos--polaroid .vy-photos__item:nth-child(odd) { transform: rotate(-4deg); }
.vy-photos--polaroid .vy-photos__item:nth-child(even) { transform: rotate(3deg) translateY(10px); }
.vy-photos--polaroid .vy-photos__item:nth-child(3n) { transform: rotate(-1.5deg) translateY(-4px); }
.vy-photos--polaroid .vy-photos__item:hover { z-index: 2; transform: rotate(0) translateY(-8px) scale(1.04); }
.vy-photos--polaroid .vy-photos__badge { position: static; margin-left: 30px; align-self: center; transform: none; }
.vy-photos--polaroid .vy-photos__badge:hover { transform: translateY(-3px); }
.vy-footer--postcard .vy-fstats { margin-top: 56px; }

/* minimal -------------------------------------------------------------------------------- */
.vy-footer--minimal > .vy-wrap { padding-bottom: 24px; }
.vy-fmin { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 30px 60px; align-items: center; padding-top: 40px; border-top: 1px dashed var(--vy-line); }
.vy-fmin__brand { display: flex; flex-direction: column; gap: 10px; }
.vy-news--inline { display: grid; grid-template-columns: auto minmax(260px, 460px); gap: 12px 28px; align-items: center; justify-content: end; }
.vy-news--inline .vy-news__title { font-size: 1.35rem; }
.vy-news--inline .vy-news__note { display: none; }
.vy-footer--minimal .vy-footer__bottom { margin-top: 32px; }

/* dark mode tweaks */
html[data-vy-theme="dark"] .vy-photos--polaroid .vy-photos__item, html[data-vy-theme="dark"] .vy-stamp { background: #E7E1D7; }

/* responsive ------------------------------------------------------------------------------- */
@media (max-width: 1180px) {
	.vy-fcols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vy-traveler { grid-column: 1 / -1; }
	.vy-photos__list { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.vy-photos--strip .vy-photos__item:nth-child(n+7) { display: none; }
}
@media (max-width: 900px) {
	.vy-news--band, .vy-postcard, .vy-fmin, .vy-news--inline { grid-template-columns: 1fr; }
	.vy-postcard__msg { border-right: 0; border-bottom: 1.5px dashed var(--vy-line); }
	.vy-news__art { width: 130px; top: -30px; right: 14px; }
	.vy-news--inline { justify-content: stretch; }
}
@media (max-width: 700px) {
	.vy-photos--strip .vy-photos__list { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 30px; scroll-snap-type: x mandatory; scrollbar-width: none; }
	.vy-photos--strip .vy-photos__list::-webkit-scrollbar { display: none; }
	.vy-photos--strip .vy-photos__item { flex: none; width: 40vw; scroll-snap-align: center; }
	.vy-photos--strip .vy-photos__item:nth-child(n+7) { display: block; }
	.vy-photos__badge { top: auto; bottom: 0; transform: translate(-50%, 0); font-size: .85rem; }
	.vy-photos__badge:hover { transform: translate(-50%, -3px); }
	.vy-footer__sheet { margin-top: -50px; padding-top: 90px; }
	.vy-fstats { grid-template-columns: 1fr 1fr; gap: 22px 0; }
	.vy-fstats__item:nth-child(odd) { padding-left: 0; border-left: 0; }
	.vy-fcols { grid-template-columns: 1fr; gap: 0; }
	.vy-traveler { margin-bottom: 20px; }
	.vy-fcolumn { border-bottom: 1px dashed var(--f-line); }
	.vy-fcolumn__title { margin: 0; }
	.vy-acc { min-height: 52px; cursor: pointer; }
	.vy-acc .vy-icon { display: block; }
	.vy-acc[aria-expanded="true"] .vy-icon { transform: rotate(180deg); }
	.vy-js-acc .vy-fcolumn__body { display: grid; grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows .35s var(--vy-ease), visibility .35s; }
	.vy-js-acc .vy-fcolumn__body > * { min-height: 0; overflow: hidden; }
	.vy-js-acc .vy-fcolumn.is-open .vy-fcolumn__body { grid-template-rows: 1fr; visibility: visible; padding-bottom: 16px; }
	.vy-nl__row { padding-left: 14px; }
	.vy-nl .vy-nl__btn { padding: 0 16px; }
	.vy-footer__bottom { flex-direction: column; align-items: flex-start; }
	.vy-postcard__addr { padding-top: 140px; }
	.vy-photos--polaroid { flex-direction: column; align-items: center; gap: 22px; }
	.vy-photos--polaroid .vy-photos__item { width: 31vw; }
	.vy-photos--polaroid .vy-photos__item:nth-child(n+4) { display: none; }
	.vy-photos--polaroid .vy-photos__badge { margin: 0; }
}
.vy-nl .vy-nl__input, .vy-drawer__search input, .vy-search__input { min-height: 0; margin: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.vy-nl .vy-nl__input:focus, .vy-drawer__search input:focus, .vy-search__input:focus { outline: 0; box-shadow: none; }
@media (max-width: 480px) {
	.vy-nl__row { flex-wrap: wrap; padding: 6px; border-radius: 24px; }
	.vy-nl__icon { padding-left: 12px; }
	.vy-nl .vy-nl__btn { justify-content: center; width: 100%; }
	.vy-nl__msg.is-ok, .vy-nl__msg.is-err, .vy-news__note { margin-left: 6px; }
}
.vy-postcard__to { position: absolute; left: clamp(32px, 5vw, 60px); top: clamp(40px, 5vw, 64px); max-width: 52%; margin: 0; color: var(--vy-mute); font-family: var(--vy-font-heading); font-size: 1.15rem; font-style: italic; line-height: 1.4; font-variation-settings: "SOFT" 100, "WONK" 1; }
@media (max-width: 700px) { .vy-postcard__to { max-width: 50%; font-size: 1rem; } }
