/* Voyara widgets: shared pieces. Colours are --vy-* variables from Theme Options; the value after each comma is the default, used when another theme is active. */
.vy-icon{display:inline-block;flex:0 0 auto;vertical-align:middle}
.vy-editor-note{margin:0;padding:12px 16px;border:1px dashed var(--vy-line,#E6E1D8);border-radius:12px;background:var(--vy-cream,#FBF9F5);color:var(--vy-muted,#5C6664);font-size:14px}
.vy-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Pill tabs: Search form, Listing grid */
.vy-pills{display:flex;gap:4px;flex-wrap:wrap}
.vy-pill{height:40px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--vy-muted,#5C6664);font:500 14px/1 var(--vy-font-body,Jost,sans-serif);cursor:pointer;white-space:nowrap;transition:color .2s ease}
.vy-pill:hover{color:var(--vy-main,#0E3B36)}
.vy-pill[aria-selected=true]{background:var(--vy-main,#0E3B36);color:var(--vy-on-main,#fff)}
.vy-pill:focus-visible{outline:2px solid var(--vy-accent,#C9962B);outline-offset:2px}

/* Buttons */
.vy-w-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:56px;padding:0 24px;border:0;border-radius:14px;background:var(--vy-main,#0E3B36);color:var(--vy-on-main,#fff);font:500 16px/1 var(--vy-font-body,Jost,sans-serif);text-decoration:none;cursor:pointer;white-space:nowrap;transition:color .2s ease,background-color .2s ease}
.vy-w-btn:hover{background:var(--vy-main-hover,var(--vy-main,#0E3B36));color:var(--vy-on-main,#fff)}
.vy-w-btn:focus-visible{outline:2px solid var(--vy-accent,#C9962B);outline-offset:2px}
.vy-w-btn--accent{background:var(--vy-accent,#C9962B);color:var(--vy-on-accent,#000)}
.vy-w-btn--accent:hover{background:var(--vy-accent-hover,var(--vy-accent,#C9962B));color:var(--vy-on-accent,#000)}
.vy-w-btn[disabled]{opacity:.6;cursor:progress}

/* Pagination */
.vy-pager[hidden]{display:none}
.vy-pager{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap}
.vy-pager button{width:44px;height:44px;border:1px solid var(--vy-line,#E6E1D8);border-radius:999px;background:var(--vy-bg,#fff);color:var(--vy-ink,#15201F);font:500 14px/1 var(--vy-font-body,Jost,sans-serif);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.vy-pager button[aria-current=page]{border-color:var(--vy-main,#0E3B36);background:var(--vy-main,#0E3B36);color:var(--vy-on-main,#fff)}
.vy-pager button:disabled{opacity:.45;cursor:default}
@media (prefers-reduced-motion:reduce){.vy-w *{transition:none!important;animation:none!important}}

/* Card reveal on scroll (assets/js/reveal.js). Only active once the script has run, so
   cards stay visible without JavaScript. The animation fills backwards only, so the
   card's own hover lift keeps working after it has appeared. */
.vy-reveal-ready [data-vy-reveal]>*:not(.is-in){opacity:0}
.vy-reveal-ready [data-vy-reveal]>.is-in{animation:vy-rise .7s cubic-bezier(.22,1,.36,1) backwards;animation-delay:calc(var(--vy-i,0) * 100ms)}
.vy-reveal-ready [data-vy-reveal]>.vy-settled{animation:none}
/* Widgets in the page content (reveal.js): fade in and rise a little, 100ms apart. */
.vy-reveal-ready .vy-rise:not(.is-in){opacity:0}
.vy-reveal-ready .vy-rise.is-in{animation:vy-rise .7s cubic-bezier(.22,1,.36,1) backwards;animation-delay:calc(var(--vy-i,0) * 100ms)}
.vy-reveal-ready .vy-rise.vy-settled{animation:none}
/* Headings: each line slides up from under its edge (the wrapper only fades). Images open from the bottom. */
.vy-line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.vy-line>span{display:block}
.vy-reveal-ready .vy-rise.vy-lines.is-in{animation-name:vy-fade}
.vy-reveal-ready .vy-lines:not(.is-in) .vy-line>span{transform:translateY(105%)}
.vy-reveal-ready .vy-lines .vy-line>span{transition:transform .7s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--vy-i,0) * 100ms + var(--vy-l,0) * 80ms)}
.vy-reveal-ready .vy-clip:not(.is-in) img{clip-path:inset(100% 0 0 0)}
.vy-reveal-ready .vy-clip.is-in img{animation:vy-open 1.2s cubic-bezier(.22,1,.36,1) backwards;animation-delay:calc(var(--vy-i,0) * 100ms)}
.vy-reveal-ready .vy-clip.vy-settled img{animation:none}
@keyframes vy-fade{from{opacity:0}to{opacity:1}}
@keyframes vy-open{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@media print{.vy-reveal-ready .vy-rise,.vy-reveal-ready [data-vy-reveal]>*{opacity:1!important;animation:none!important}.vy-reveal-ready .vy-clip img{clip-path:none!important;animation:none!important}}
@keyframes vy-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
/* Elementor's fade entrances move a widget by its whole height or width (a 420px
   collage travels 420px). Keep the direction the editor picked, over a short way. */
.elementor-element.animated.fadeInUp{animation-name:vy-in-up}
.elementor-element.animated.fadeInDown{animation-name:vy-in-down}
.elementor-element.animated.fadeInLeft{animation-name:vy-in-left}
.elementor-element.animated.fadeInRight{animation-name:vy-in-right}
.elementor-element.animated:is(.fadeIn,.fadeInUp,.fadeInDown,.fadeInLeft,.fadeInRight){animation-timing-function:cubic-bezier(.22,1,.36,1)}
@keyframes vy-in-up{from{opacity:0;transform:translate3d(0,24px,0)}to{opacity:1;transform:none}}
@keyframes vy-in-down{from{opacity:0;transform:translate3d(0,-24px,0)}to{opacity:1;transform:none}}
@keyframes vy-in-left{from{opacity:0;transform:translate3d(-32px,0,0)}to{opacity:1;transform:none}}
@keyframes vy-in-right{from{opacity:0;transform:translate3d(32px,0,0)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.vy-reveal-ready [data-vy-reveal]>*,.vy-reveal-ready .vy-rise{opacity:1!important;animation:none!important}}

/* Listing page widgets: section heading, form fields, +/- steppers */
.vy-lsec{display:flex;flex-direction:column;gap:18px;min-width:0;color:var(--vy-w-text,var(--vy-ink-2,#3F4A48))}
.vy-lsec__title{margin:0;font-family:var(--vy-font-heading,Marcellus,Georgia,serif);font-weight:400;font-size:30px;line-height:1.15;color:var(--vy-w-heading,var(--vy-ink,#15201F))}
.vy-hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.vy-field{display:flex;flex-direction:column;gap:6px;margin:0;font:500 13px/1.3 var(--vy-font-body,Jost,sans-serif);color:var(--vy-ink,#15201F)}
.vy-field input,.vy-field textarea,.vy-field select{width:100%;height:46px;margin:0;border:1px solid var(--vy-line,#E6E1D8);border-radius:12px;padding:0 12px;background:var(--vy-bg,#fff);box-shadow:none;font:400 15px/1.4 var(--vy-font-body,Jost,sans-serif);color:var(--vy-ink,#15201F)}
.vy-field textarea{height:auto;min-height:88px;padding:10px 12px;resize:vertical}
.vy-field input:focus,.vy-field textarea:focus,.vy-field select:focus{outline:2px solid var(--vy-accent,#C9962B);outline-offset:1px;border-color:var(--vy-main,#0E3B36)}
.vy-field [aria-invalid=true]{border-color:var(--vy-bad,#B3261E)}
.vy-step{display:inline-flex;align-items:center;gap:8px;padding:3px;border:1px solid var(--vy-line,#E6E1D8);border-radius:999px;background:var(--vy-bg,#fff)}
.vy-step__btn{width:36px;height:36px;padding:0;border:0;border-radius:999px;background:var(--vy-sand,#F3EEE4);color:var(--vy-ink,#15201F);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s ease}
.vy-step__btn:hover:not(:disabled){background:var(--vy-line,#E6E1D8)}
.vy-step__btn:disabled{opacity:.4;cursor:default}
.vy-step__btn:focus-visible{outline:2px solid var(--vy-accent,#C9962B);outline-offset:2px}
.vy-step__val{min-width:28px;text-align:center;font:500 14px/1 var(--vy-font-body,Jost,sans-serif);color:var(--vy-ink,#15201F)}

/* Save and Share buttons: Listing header and Listing hero */
.vy-lhead__saved,.vy-lhead__wish[aria-pressed=true] .vy-lhead__save{display:none}
.vy-lhead__wish[aria-pressed=true] .vy-lhead__saved{display:inline}
.vy-share{position:relative}
.vy-share__menu{position:absolute;top:48px;right:0;z-index:40;width:190px;padding:6px;display:flex;flex-direction:column;background:var(--vy-bg,#fff);border:1px solid var(--vy-line,#E6E1D8);border-radius:14px;box-shadow:0 12px 32px rgba(21,32,31,.12)}
.vy-share__menu[hidden]{display:none}
.vy-share__menu a,.vy-share__menu button{display:flex;align-items:center;min-height:40px;padding:0 12px;border:0;border-radius:10px;background:none;color:var(--vy-ink,#15201F);font:400 14px/1.2 var(--vy-font-body,Jost,sans-serif);text-align:left;text-decoration:none;cursor:pointer;transition:background-color .2s ease}
.vy-share__menu a:hover,.vy-share__menu button:hover,.vy-share__menu a:focus-visible,.vy-share__menu button:focus-visible{background:var(--vy-sand,#F3EEE4);outline:none}

/* Sidebar column that stays in view on listing pages (a container with the CSS class
   vy-sticky-col): below the sticky section links when the page has them. */
@media (min-width:1025px) and (min-height:700px){
	.vy-sticky-col{position:sticky!important;top:calc(24px + var(--vy-head-offset,0px));transition:top .3s ease;align-self:flex-start!important}
	body:has(.vy-anav) .vy-sticky-col{top:calc(80px + var(--vy-head-offset,0px))}
	.admin-bar .vy-sticky-col{top:calc(56px + var(--vy-head-offset,0px))}
	body.admin-bar:has(.vy-anav) .vy-sticky-col{top:calc(112px + var(--vy-head-offset,0px))}
}

/* Voyara select picker (assets/js/selectpicker.js). Selects whose closed look the browser
   draws get one chevron, the same in every browser; widgets that style their select keep it. */
select.vy-sp-look{-webkit-appearance:none!important;appearance:none!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235C6664' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:14px 14px!important;padding-right:36px!important;cursor:pointer}
select.vy-sp-look::-ms-expand{display:none}
select.vy-sp-on{cursor:pointer}
select.vy-sp-on:disabled{cursor:default}
.vy-sp{position:fixed;z-index:100050;display:flex;flex-direction:column;max-width:min(420px,calc(100vw - 16px));max-height:min(360px,60vh);padding:6px;background:var(--vy-bg,#fff);border-radius:16px;box-shadow:0 18px 50px rgba(21,32,31,.18),0 0 0 1px rgba(21,32,31,.06);font:400 14px/1.3 var(--vy-font-body,Jost,sans-serif);color:var(--vy-ink,#15201F);animation:vy-sp-in .16s ease}
.vy-sp[hidden]{display:none}
.vy-sp__top{display:none}
.vy-sp__list{overflow-y:auto;overscroll-behavior:contain}
.vy-sp__group+.vy-sp__group,.vy-sp__opt+.vy-sp__group{margin-top:6px;padding-top:6px;border-top:1px solid var(--vy-line,#E6E1D8)}
.vy-sp__glabel{display:block;padding:6px 12px 4px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--vy-muted,#5C6664)}
.vy-sp__opt{position:relative;display:flex;align-items:center;min-height:40px;padding:8px 36px 8px 12px;border-radius:10px;cursor:pointer;transition:background-color .15s ease}
.vy-sp__opt:hover,.vy-sp__opt:focus{background:var(--vy-sand,#F3EEE4);outline:none}
.vy-sp__opt:focus-visible{box-shadow:inset 0 0 0 2px var(--vy-accent,#C9962B)}
.vy-sp.is-pointer .vy-sp__opt:focus-visible{box-shadow:none}
.vy-sp__opt[aria-selected=true]{font-weight:500;color:var(--vy-main,#0E3B36)}
.vy-sp__opt[aria-selected=true]::after{content:"";position:absolute;right:14px;top:50%;width:10px;height:6px;margin-top:-5px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg)}
.vy-sp__opt[aria-disabled=true]{color:#B9B3A9;cursor:default;background:none}
/* Narrow windows: the same bottom sheet as the date picker, with the field name on top. */
.vy-sp.is-sheet{left:0;right:0;bottom:0;top:auto;max-width:none;max-height:80vh;padding:12px 12px calc(12px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;animation-name:vy-sp-up}
.vy-sp.is-sheet .vy-sp__top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 6px 10px}
.vy-sp__title{font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--vy-muted,#5C6664)}
.vy-sp__x{display:inline-flex;width:40px;height:40px;flex:0 0 auto;border:0;border-radius:999px;background:var(--vy-sand,#F3EEE4);color:var(--vy-ink,#15201F);align-items:center;justify-content:center;cursor:pointer}
.vy-sp.is-sheet .vy-sp__opt{min-height:48px;font-size:15px}
.vy-sp-veil{position:fixed;inset:0;z-index:100049;background:rgba(21,32,31,.45)}
.vy-sp-veil[hidden]{display:none}
html.vy-sp-lock{overflow:hidden}
@keyframes vy-sp-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@keyframes vy-sp-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.vy-sp{animation:none}}
