/* ==========================================================================
   Polaris Villas theme
   Layout model: full-bleed sections; each section holds a fluid grid of
   8 columns on mobile and 24 columns from 768px up. Blocks are placed with
   the custom properties --m (mobile grid-area) and --d (desktop grid-area).
   ========================================================================== */

/* --------------------------------------------------------------------------
   Fonts
   -------------------------------------------------------------------------- */
@font-face{font-family:'Memoirs Bold';src:url('../fonts/MemoirsBold-Regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Karla';font-style:italic;font-weight:300 800;font-display:swap;src:url('../fonts/karla-italic-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Karla';font-style:italic;font-weight:300 800;font-display:swap;src:url('../fonts/karla-italic-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Karla';font-style:normal;font-weight:300 800;font-display:swap;src:url('../fonts/karla-normal-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Karla';font-style:normal;font-weight:300 800;font-display:swap;src:url('../fonts/karla-normal-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* --------------------------------------------------------------------------
   Tokens
   -------------------------------------------------------------------------- */
:root{
  --white-hsl:0,0%,98%;
  --black-hsl:0,0%,10.2%;
  --accent-hsl:27.69,14.29%,64.31%;
  --light-accent-hsl:41.28,44.86%,47.65%;
  --dark-accent-hsl:166.96,58.97%,7.65%;
  --white:hsl(var(--white-hsl));
  --black:hsl(var(--black-hsl));
  --accent:hsl(var(--accent-hsl));
  --light-accent:hsl(var(--light-accent-hsl));
  --dark-accent:hsl(var(--dark-accent-hsl));

  --font-heading:'Memoirs Bold',Georgia,'Times New Roman',serif;
  --font-body:'Karla','Helvetica Neue',Helvetica,Arial,sans-serif;

  --h1:5.5; --h2:4; --h3:3.5; --h4:1.7;
  --large:1.1; --normal:1; --small:.9;

  --max-width:1800px;
  --gutter:5vw;
  --mobile-gutter:6vw;
  --grid-gap:11px;
  --row-factor:0.0215;

  --anim-duration:1.5s;
  --anim-delay:.2s;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--black);color:var(--white);font-family:var(--font-body);font-weight:400;font-style:normal;line-height:2em;letter-spacing:.01em;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
img,video,svg{max-width:100%}
img{height:auto}
a{color:inherit}
button{font:inherit;color:inherit}
.pv-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.pv-skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--white);color:var(--black);padding:.5em 1em;font-size:.9rem}
.pv-skip-link:focus{left:1rem;top:1rem}

/* Typography scale. Desktop and landscape use a viewport-based ramp capped
   at the design size; portrait phones scale against viewport height. */
h1,h2,h3,h4,.pv-heading{font-family:var(--font-heading);font-weight:400;font-style:normal;letter-spacing:0;text-transform:none;margin:2rem 0}
h1{font-size:min(calc((var(--h1) - 1) * 1.2vw + 1rem),max(calc((var(--h1) - 1) * .012 * var(--max-width) + 1rem),calc(var(--h1) * 1rem)));line-height:calc(1.3em * (1 + (1 - var(--h1)) / 25))}
h2{font-size:min(calc((var(--h2) - 1) * 1.2vw + 1rem),max(calc((var(--h2) - 1) * .012 * var(--max-width) + 1rem),calc(var(--h2) * 1rem)));line-height:calc(1.3em * (1 + (1 - var(--h2)) / 25))}
h3{font-size:min(calc((var(--h3) - 1) * 1.2vw + 1rem),max(calc((var(--h3) - 1) * .012 * var(--max-width) + 1rem),calc(var(--h3) * 1rem)));line-height:calc(1.3em * (1 + (1 - var(--h3)) / 25))}
h4{font-size:min(calc((var(--h4) - 1) * 1.2vw + 1rem),max(calc((var(--h4) - 1) * .012 * var(--max-width) + 1rem),calc(var(--h4) * 1rem)));line-height:calc(1.3em * (1 + (1 - var(--h4)) / 25))}
p,.pv-large,.pv-small{margin:1rem 0}
p{font-size:calc(var(--normal) * 1rem)}
.pv-large{font-size:min(calc((var(--large) - 1) * 1.2vw + 1rem),max(calc((var(--large) - 1) * .012 * var(--max-width) + 1rem),calc(var(--large) * 1rem)))}
.pv-small{font-size:min(calc((var(--small) - 1) * 1.2vw + 1rem),max(calc((var(--small) - 1) * .012 * var(--max-width) + 1rem),calc(var(--small) * 1rem)))}
@media screen and (max-width:767px) and (orientation:portrait){
  h1{font-size:calc((var(--h1) - 1) * .012 * min(100vh,900px) + 1rem)}
  h2{font-size:calc((var(--h2) - 1) * .012 * min(100vh,900px) + 1rem)}
  h3{font-size:calc((var(--h3) - 1) * .012 * min(100vh,900px) + 1rem)}
  h4{font-size:calc((var(--h4) - 1) * .012 * min(100vh,900px) + 1rem)}
  .pv-large{font-size:calc((var(--large) - 1) * .012 * min(100vh,900px) + 1rem)}
  .pv-small{font-size:calc((var(--small) - 1) * .012 * min(100vh,900px) + 1rem)}
}

/* --------------------------------------------------------------------------
   Section colour themes
   -------------------------------------------------------------------------- */
.pv-section{
  --sec-bg:var(--black);
  --h-xl:var(--white); --h-l:var(--white); --h-m:var(--white); --h-s:var(--white);
  --p-l:var(--light-accent); --p-m:var(--white); --p-s:var(--white);
  --btn:var(--light-accent); --btn-text:var(--white);
  --form-btn:var(--light-accent); --form-btn-text:var(--white);
  --icon:var(--white);
  --pv-knockout:var(--black);
}
.pv-theme-black-bold{
  --h-xl:var(--light-accent); --h-l:var(--light-accent); --h-m:var(--white); --h-s:var(--light-accent);
  --p-l:var(--white); --p-m:var(--white); --p-s:var(--white);
  --btn:var(--white); --btn-text:var(--black);
}
.pv-theme-white{--sec-bg:var(--white);--h-xl:var(--black);--h-l:var(--black);--h-m:var(--black);--h-s:var(--black);--p-l:var(--black);--p-m:var(--black);--p-s:var(--black);--btn:var(--light-accent);--btn-text:var(--black);--icon:var(--black);--pv-knockout:var(--white)}
.pv-section h1{color:var(--h-xl)}
.pv-section h2{color:var(--h-l)}
.pv-section h3{color:var(--h-m)}
.pv-section h4{color:var(--h-s)}
.pv-section p,.pv-section li,.pv-section pre{color:var(--p-m)}
.pv-section .pv-large{color:var(--p-l)}
.pv-section .pv-small{color:var(--p-s)}
.pv-color-white{color:var(--white)!important}
.pv-color-black{color:var(--black)!important}
.pv-color-accent{color:var(--accent)!important}
.pv-color-light-accent{color:var(--light-accent)!important}
.pv-color-dark-accent{color:var(--dark-accent)!important}

/* --------------------------------------------------------------------------
   Sections
   -------------------------------------------------------------------------- */
.pv-site{position:relative}
.pv-section{position:relative;display:flex;align-items:center;background:var(--sec-bg);color:var(--p-m);width:100%}
.pv-section__content{position:relative;width:100%;z-index:1}
.pv-h-small{min-height:33vh}
.pv-h-small>.pv-section__content{padding-top:3.3vmax;padding-bottom:3.3vmax}
.pv-h-medium{min-height:66vh}
.pv-h-medium>.pv-section__content{padding-top:6.6vmax;padding-bottom:6.6vmax}
.pv-h-large{min-height:100vh}
.pv-h-large>.pv-section__content{padding-top:10vmax;padding-bottom:10vmax}
.pv-section--list{min-height:0}
.pv-section--list>.pv-section__content{padding-top:0;padding-bottom:0}

.pv-section__bg{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.pv-section__bg img,.pv-section__bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--bg-pos,50% 50%);display:block}
.pv-section__overlay{position:absolute;inset:0;background:var(--black);opacity:var(--overlay,0)}

/* --------------------------------------------------------------------------
   Fluid grid
   -------------------------------------------------------------------------- */
.pv-grid{
  --grid-gutter:calc(var(--mobile-gutter) - var(--grid-gap));
  --cell:calc((var(--max-width) - (var(--grid-gap) * 7)) / 8);
  display:grid;position:relative;
  grid-template-rows:repeat(var(--rm,1),minmax(24px,auto));
  grid-template-columns:minmax(var(--grid-gutter),1fr) repeat(8,minmax(0,var(--cell))) minmax(var(--grid-gutter),1fr);
  row-gap:var(--grid-gap);column-gap:var(--grid-gap);
  overflow-x:clip;
}
@media (min-width:768px){
  .pv-grid{
    --grid-gutter:calc(var(--gutter) - var(--grid-gap));
    --cell:calc((var(--max-width) - (var(--grid-gap) * 23)) / 24);
    --container-width:min(var(--max-width),calc(100vw - var(--gutter) * 2));
    grid-template-rows:repeat(var(--rd,1),minmax(calc(var(--container-width) * var(--row-factor)),auto));
    grid-template-columns:minmax(var(--grid-gutter),1fr) repeat(24,minmax(0,var(--cell))) minmax(var(--grid-gutter),1fr);
  }
}
.pv-block{grid-area:var(--m,auto);position:relative;min-width:0;display:flex;flex-direction:column;justify-content:var(--jc,center)}
@media (min-width:768px){.pv-block{grid-area:var(--d,var(--m,auto))}}
.pv-block--image,.pv-block--video,.pv-block--map{min-height:0}

/* Fade-in animation (JS adds .is-in when a block scrolls into view). */
html.js .pv-anim{opacity:0;transition:opacity var(--anim-duration) ease var(--anim-delay)}
html.js .pv-anim.is-in{opacity:1}
@media (prefers-reduced-motion:reduce){html.js .pv-anim{opacity:1;transition:none}}

/* --------------------------------------------------------------------------
   Text blocks
   -------------------------------------------------------------------------- */
.pv-text{position:relative;width:100%;word-wrap:break-word}
.pv-text>*:first-child{margin-top:0}
.pv-text>*:last-child{margin-bottom:0}
.pv-text a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}
.pv-text a:hover{opacity:.8}
.pv-text strong{font-weight:700}
.pv-text ul,.pv-text ol{margin:1rem 0;padding-left:40px}
.pv-text li>*{margin:.5em 0}
.pv-text pre{margin:1rem 0;white-space:pre-wrap;font-family:var(--font-body);font-size:1rem;line-height:2em;letter-spacing:.01em}
.pv-text pre code{font-family:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;margin:0;padding:0;background:none}
.pv-text h1,.pv-text h2,.pv-text h3,.pv-text h4{overflow-wrap:break-word}

/* --------------------------------------------------------------------------
   Image blocks
   -------------------------------------------------------------------------- */
.pv-image{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:var(--ai,center);justify-content:center;min-height:0}
.pv-image a,.pv-image .pv-image__frame{position:relative;display:block;width:100%;height:100%;min-height:0}
.pv-image img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:var(--fit,cover);object-position:var(--fp,50% 50%)}
.pv-image--fit img{object-fit:contain;object-position:var(--fit-pos,50% 50%)}
.pv-image__overlay{position:absolute;inset:0;background:var(--ovc,transparent);opacity:var(--ov,0);pointer-events:none}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.pv-btn{display:inline-block;font-family:var(--font-body);font-weight:400;font-style:normal;letter-spacing:.02em;line-height:1.2em;text-transform:none;text-decoration:none;text-align:center;border:2px solid var(--btn);color:var(--btn);background:transparent;padding:.8em 1.336em;border-radius:0;cursor:pointer;transition:background-color .15s linear,color .15s linear;white-space:normal}
.pv-btn:hover,.pv-btn:focus-visible{background:var(--btn);color:var(--btn-text)}
.pv-btn--small{font-size:.9rem;padding:.6em 1em}
.pv-btn--medium{font-size:1rem}
.pv-btn--large{font-size:1.2rem;padding:1em 1.67em}
.pv-button-wrap{display:flex;width:100%;height:100%;justify-content:var(--bj,center);align-items:var(--ba,flex-start)}
.pv-button-wrap--left{--bj:flex-start}
.pv-button-wrap--center{--bj:center}
.pv-button-wrap--right{--bj:flex-end}
.pv-button-wrap--stretch{align-items:stretch}
.pv-button-wrap--stretch .pv-btn{flex:1;display:flex;align-items:center;justify-content:center;height:100%}

/* --------------------------------------------------------------------------
   Video blocks
   -------------------------------------------------------------------------- */
.pv-video{position:relative;width:100%;aspect-ratio:var(--var,16/9);background:#000;overflow:hidden}
.pv-video video{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}

/* --------------------------------------------------------------------------
   Forms
   -------------------------------------------------------------------------- */
.pv-form{width:100%;position:relative}
.pv-field{margin-bottom:20px}
.pv-field__title{display:block;font-size:1rem;line-height:1.5;margin-bottom:6px;color:var(--white)}
.pv-field__req{font-size:.85em;opacity:.8;margin-left:.25em}
.pv-field input[type=text],.pv-field input[type=email],.pv-field textarea{width:100%;padding:10px;border:1px solid hsl(0,0%,0%);background:var(--white);color:var(--black);font:inherit;font-size:1rem;line-height:1.5;letter-spacing:.01em;border-radius:0;appearance:none}
.pv-field input:focus,.pv-field textarea:focus{outline:2px solid var(--light-accent);outline-offset:0}
.pv-field textarea{min-height:120px;resize:vertical}
.pv-field--name .pv-name-row{display:flex;gap:10px}
.pv-field--name .pv-name-row>div{flex:1;min-width:0}
.pv-field__caption{display:block;font-size:.85rem;line-height:1.4;margin-top:4px;color:var(--white);opacity:.85}
.pv-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.pv-form__submit{margin-top:4px}
.pv-form__submit .pv-btn{--btn:var(--form-btn);--btn-text:var(--form-btn-text);font-size:1rem}
.pv-form__status{margin-top:12px;font-size:1rem;line-height:1.5}
.pv-form__status[hidden]{display:none}
.pv-form__status--error{color:#f3b6a5}
.pv-form.is-sent .pv-field,.pv-form.is-sent .pv-form__submit{display:none}
.pv-notice{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:200;background:var(--white);color:var(--black);padding:.8em 1.4em;font-size:.95rem;box-shadow:0 4px 20px rgba(0,0,0,.3)}
.pv-notice--error{background:#f3b6a5}

/* --------------------------------------------------------------------------
   Social icons block
   -------------------------------------------------------------------------- */
.pv-social{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sgap,12px);justify-content:var(--sj,flex-start);width:100%}
.pv-social a{display:block;width:var(--sd,20px);height:var(--sd,20px);color:var(--icon);transition:opacity .17s}
.pv-social a:hover{opacity:.8}
.pv-social svg{display:block;width:100%;height:100%}

/* --------------------------------------------------------------------------
   Map block
   -------------------------------------------------------------------------- */
.pv-map{position:relative;width:100%;height:100%;min-height:320px;background:#2b2b2b}
.pv-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05)}

/* --------------------------------------------------------------------------
   List sections (simple grid, banner slideshow, carousel)
   -------------------------------------------------------------------------- */
.pv-list{width:100%;padding:var(--lpt,6.6vmax) var(--gutter) var(--lpb,6.6vmax)}
.pv-list__title{max-width:var(--max-width);margin:0 auto 70px}
.pv-list__title>*{margin:0}
.pv-list__grid{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:var(--rowgap,60px) var(--colgap,60px);list-style:none;margin:0 auto;padding:0;max-width:var(--max-width)}
@media (max-width:767px){.pv-list__grid{grid-template-columns:repeat(min(var(--cols,3),2),minmax(0,1fr))}}
@media (max-width:575px){.pv-list__grid{grid-template-columns:minmax(0,1fr);gap:var(--rowgap,60px) 0}}
.pv-list__item{display:flex;flex-direction:column;min-width:0}
.pv-list__item--media-first{flex-direction:column-reverse}
.pv-list__content{flex:1;display:flex;flex-direction:column;justify-content:space-between;text-align:var(--talign,left)}
.pv-list__text h2.pv-list__heading{font-size:var(--lt,1.6rem);line-height:1.3em;margin:0;max-width:100%;color:var(--h-l)}
.pv-list__desc{margin-top:6%;font-size:var(--lb,1rem);line-height:2em}
.pv-list__desc>*:first-child{margin-top:0}
.pv-list__desc>*:last-child{margin-bottom:0}
.pv-list__desc p{font-size:inherit}
.pv-list__button{margin-top:6%}
.pv-list__button .pv-btn{font-size:var(--lbtn,.9rem)}
.pv-list__media{margin-top:6%;width:100%}
.pv-list__item--media-first .pv-list__media{margin-top:0;margin-bottom:6%}
.pv-list__media-inner{position:relative;width:100%;aspect-ratio:var(--mar,4/3);overflow:hidden}
.pv-list__media-inner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--fp,50% 50%);display:block}

/* Banner slideshow (testimonials) */
.pv-slideshow{position:relative;width:100%;padding:var(--lpt,0) 0 var(--lpb,0)}
.pv-slideshow__track{position:relative;display:grid;min-height:50vh;list-style:none;margin:0;padding:0}
.pv-slideshow__slide{grid-area:1/1/-1/-1;display:flex;align-items:center;justify-content:center;padding:2%;opacity:0;visibility:hidden;transition:opacity .6s ease,visibility .6s;pointer-events:none}
.pv-slideshow__slide.is-active{opacity:1;visibility:visible;pointer-events:auto}
.pv-slideshow__content{width:350px;min-width:50%;max-width:calc(100% - 120px);margin:88px 0;text-align:center}
.pv-slideshow__content h2{font-size:var(--lt,1.6rem);line-height:1.3em;margin:0;color:var(--h-l)}
.pv-slideshow__desc{margin-top:4%;letter-spacing:normal;font-size:var(--lb,1rem)}
.pv-slideshow__desc p{margin:0;font-size:inherit}
.pv-carousel__nav{display:flex;justify-content:center;align-items:center;gap:0;padding:0 0 40px;position:relative;z-index:2}
/* Banner slideshow arrows sit at the left and right edges, vertically centred. */
.pv-slideshow__nav{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:0 calc(var(--gutter) - 20px);pointer-events:none;z-index:2}
.pv-slideshow__nav .pv-arrow{pointer-events:auto}
.pv-arrow{width:60px;height:60px;border:0;background:transparent;color:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;border-radius:50%;opacity:.85;transition:opacity .3s}
.pv-arrow:hover{opacity:1}
.pv-arrow svg{width:36px;height:auto;display:block}
.pv-arrow:focus-visible{outline:2px solid var(--white);outline-offset:-6px}

/* Carousel */
.pv-carousel{width:100%;padding:var(--lpt,10vmax) 0 var(--lpb,10vmax)}
.pv-carousel__viewport{overflow:hidden;width:100%}
.pv-carousel__track{display:flex;gap:var(--sgap,20px);list-style:none;margin:0;padding:0 var(--gutter);transition:transform .6s cubic-bezier(.4,0,.2,1);will-change:transform}
.pv-carousel__slide{flex:0 0 calc((100% - var(--gutter) * 2 - var(--sgap,20px) * (var(--cols,2) - 1)) / var(--cols,2));min-width:0}
@media (max-width:767px){.pv-carousel__slide{flex-basis:calc(100% - var(--gutter) * 2)}}
.pv-carousel__media{position:relative;width:100%;aspect-ratio:var(--mar,3/4);overflow:hidden}
.pv-carousel__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--fp,50% 50%);display:block}
.pv-carousel{position:relative}
.pv-carousel__nav{position:absolute;top:var(--lpt,10vmax);bottom:var(--lpb,10vmax);left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:0 calc(var(--gutter) - 22px);pointer-events:none}
.pv-carousel__nav .pv-arrow{pointer-events:auto;width:44px;height:44px;background:var(--light-accent);color:var(--black);opacity:1}
.pv-carousel__nav .pv-arrow svg{width:26px}
.pv-carousel__nav .pv-arrow:hover{background:var(--white)}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.pv-header{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--black);color:var(--white);transition:transform .14s ease-in-out}
.pv-header__inner{position:relative;display:flex;align-items:center;flex-wrap:nowrap;width:100%;max-width:var(--max-width);margin:0 auto;padding:var(--gutter) var(--gutter)}
.pv-header__nav-col{flex:1 1 33%;width:33%;min-width:0}
.pv-header__logo{flex:1 1 34%;width:34%;text-align:center;font-size:0;line-height:0}
.pv-header__logo a{display:inline-block;max-width:100%;max-height:57px}
.pv-header__logo img{display:inline-block;width:auto;max-width:100%;max-height:57px;height:auto}
.pv-header__title{font-family:var(--font-heading);font-size:1.7rem;line-height:1.3;color:var(--white);text-decoration:none}
.pv-header__actions{flex:1 1 33%;width:33%;display:flex;justify-content:flex-end;align-items:center;min-width:0}
.pv-header__social{display:flex;align-items:center}
.pv-header__icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--white);box-shadow:0 0 0 2px inset currentColor;text-decoration:none;flex:0 0 auto}
.pv-header__icon svg{width:70%;height:70%;display:block}
.pv-header__icon+.pv-header__icon{margin-left:1.5vw}
.pv-header__language{display:flex;align-items:center;margin-left:3.1vw;font-size:.9rem;white-space:nowrap}
.pv-lang{position:relative;line-height:1.5}
.pv-lang__current{display:inline-flex;align-items:center;font-family:var(--font-body);font-size:.9rem;font-weight:400;letter-spacing:.01em;color:var(--white);background:none;border:0;padding:0;cursor:pointer;line-height:inherit}
.pv-lang__list{display:none;position:absolute;top:100%;left:-1em;min-width:140px;margin:0;padding:.5em 1em;list-style:none;background:var(--black);text-align:left;z-index:10;flex-direction:column;align-items:flex-start}
.pv-lang:hover .pv-lang__list,.pv-lang:focus-within .pv-lang__list,.pv-lang__current[aria-expanded=true]+.pv-lang__list{display:flex}
.pv-lang__list a{display:inline-block;position:relative;line-height:1.3;padding:.3em 0;font-size:.9rem;color:var(--white);text-decoration:none;white-space:nowrap}
.pv-lang__list a span{display:inline;background-image:linear-gradient(currentColor,currentColor);background-repeat:repeat-x;background-size:0 1px;background-position:0 100%;transition:background-size .2s}
.pv-lang__list a:hover span,.pv-lang__list a.is-current span{background-size:1px 1px}
.pv-header__chevron{display:inline-flex;width:1em;height:1em;margin-left:.35em}
.pv-header__chevron svg{width:100%;height:100%}
.pv-header__cta{display:inline-block;margin-left:3.1vw;font-family:var(--font-body);font-size:.9rem;font-weight:400;letter-spacing:.02em;line-height:1.2em;text-transform:none;text-decoration:none;white-space:nowrap;padding:.8em 1.336em;border:2px solid var(--white);color:var(--white);background:transparent;transition:background-color .15s linear,color .15s linear}
.pv-header__cta:hover{background:var(--white);color:var(--black)}
.pv-header__burger{display:none;align-items:center;justify-content:flex-end;flex:0 0 50px}

/* Desktop navigation */
.pv-nav{flex:1 1 auto;min-width:0}
.pv-nav__list{display:inline-flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0}
.pv-nav__item{position:relative;margin:0 .75vw;white-space:nowrap;line-height:1.5}
.pv-nav__item:first-child{margin-left:0}
.pv-nav__item>a,.pv-nav__folder-title{display:inline-flex;align-items:center;position:relative;font-family:var(--font-body);font-size:.9rem;font-weight:400;letter-spacing:.01em;text-transform:none;text-decoration:none;color:var(--white);background:none;border:0;padding:0;cursor:pointer;line-height:inherit}
.pv-nav__item>a::after,.pv-nav__folder-title::after,.pv-nav__folder-link span{background-image:linear-gradient(currentColor,currentColor);background-repeat:repeat-x;background-size:1px 1px;background-position:0 100%}
.pv-nav__item>a::after,.pv-nav__folder-title::after{content:'';position:absolute;left:0;right:0;bottom:-.15em;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.pv-nav__item:hover>a::after,.pv-nav__item.is-active>a::after,.pv-nav__item--folder:hover .pv-nav__folder-title::after,.pv-nav__item--folder.is-active .pv-nav__folder-title::after{transform:scaleX(1)}
.pv-nav__folder{display:none;position:absolute;top:100%;left:-1em;min-width:200px;padding:.5em 1em;background:var(--black);text-align:left;z-index:10;flex-direction:column;align-items:flex-start}
.pv-nav__item--folder:hover .pv-nav__folder,.pv-nav__item--folder:focus-within .pv-nav__folder,.pv-nav__folder-title[aria-expanded=true]+.pv-nav__folder{display:flex}
.pv-nav__folder-link{display:inline-block;position:relative;line-height:1.3;padding:.3em 0;font-size:.9rem;color:var(--white);text-decoration:none;white-space:nowrap}
.pv-nav__folder-link span{display:inline;background-size:0 1px;transition:background-size .2s}
.pv-nav__folder-link:hover span,.pv-nav__folder-link.is-active span{background-size:1px 1px}

/* Burger */
.pv-burger{display:flex;align-items:center;justify-content:center;background:none;border:0;padding:0;cursor:pointer;color:var(--white)}
.pv-burger__box{position:relative;display:block;width:35px;height:35px}
.pv-burger__line{position:absolute;left:0;top:0;bottom:0;margin:auto;display:block;width:100%;height:1px;background:currentColor;transition:transform .25s cubic-bezier(.2,.6,.3,1),width .25s}
.pv-burger__line--top{transform:translateY(-5.5px)}
.pv-burger__line--bottom{transform:translateY(5.5px)}
.pv-burger[aria-expanded=true] .pv-burger__line--top{transform:rotate(45deg)}
.pv-burger[aria-expanded=true] .pv-burger__line--bottom{transform:rotate(-45deg)}

/* Mobile overlay menu */
.pv-menu{position:fixed;left:0;right:0;bottom:0;top:var(--header-height,80px);z-index:99;background:var(--black);color:var(--white);overflow:hidden;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}
.pv-menu[hidden]{display:block}
body.pv-menu-open .pv-menu{opacity:1;visibility:visible}
body.pv-menu-open{overflow:hidden}
.pv-menu__inner{position:relative;display:flex;flex-direction:column;height:100%;padding:0 var(--mobile-gutter) var(--mobile-gutter);overflow-y:auto;-webkit-overflow-scrolling:touch}
.pv-menu__nav{position:relative;flex:1 0 auto;display:flex;flex-direction:column;justify-content:center;min-height:60vh;overflow:hidden}
.pv-menu__list{display:flex;flex-direction:column;justify-content:center;width:100%;flex:1 0 auto;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.pv-menu__item{font-family:var(--font-body);font-weight:400;line-height:1.3;margin:.2em 0;text-align:left}
.pv-menu__item a,.pv-menu__folder-toggle{display:inline-flex;align-items:center;font-size:8.5vmin;color:var(--white);text-decoration:none;background:none;border:0;padding:0;cursor:pointer;line-height:1.3;text-align:left}
@media (min-width:576px){.pv-menu__item a,.pv-menu__folder-toggle{font-size:6.6vmin}}
@media (min-width:768px){.pv-menu__item a,.pv-menu__folder-toggle{font-size:6vmin}}
.pv-menu__item.is-active a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.1em}
.pv-menu__chevron{display:inline-flex;width:1em;height:1em;margin-left:.15em;transform:rotate(-90deg)}
.pv-menu__chevron svg{width:100%;height:100%}
.pv-menu__chevron--back{transform:rotate(90deg);margin-left:0;margin-right:.15em}
.pv-menu__folder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:flex-start;background:var(--black);transform:translateX(100%);transition:transform .6s cubic-bezier(.4,0,.2,1);overflow-y:auto}
.pv-menu__folder[hidden]{display:flex}
.pv-menu__folder.is-open{transform:translateX(0)}
.pv-menu__nav.has-open-folder>.pv-menu__list{transform:translateX(-100%)}
.pv-menu__controls{padding:0 0 10px;opacity:.5;font-size:.85em}
.pv-menu__back{display:inline-flex;align-items:center;background:none;border:0;padding:10px 0;color:var(--white);font-size:1.2em;cursor:pointer}
.pv-menu__actions{display:flex;flex-direction:column;align-items:flex-start;gap:4vmin;padding-top:6vmin}
.pv-menu__social{display:flex;align-items:center;gap:4vw}
.pv-menu__social .pv-header__icon{width:26px;height:26px}
.pv-menu__language{display:flex;flex-wrap:wrap;gap:0 .6em;font-size:8.5vmin;line-height:1.3}
@media (min-width:576px){.pv-menu__language{font-size:6.6vmin}}
.pv-menu__language a{color:var(--white);text-decoration:none;opacity:.55}
.pv-menu__language a.is-current{opacity:1;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.1em}
.pv-menu__cta{margin-left:0;font-size:1rem}

/* Mobile header layout (logo left, burger right) */
@media only screen and (pointer:coarse) and (max-width:1024px),screen and (max-width:799px){
  .pv-header__inner{padding:6vw}
  .pv-header__nav-col{display:none}
  .pv-header__logo{flex:1 1 50%;width:auto;text-align:left}
  .pv-header__logo a,.pv-header__logo img{max-height:48px}
  /* The original site kept the booking button visible on small screens. */
  .pv-header__actions{flex:0 0 auto;width:auto}
  .pv-header__social,.pv-header__language{display:none}
  .pv-header__cta{margin-left:0;font-size:.8rem;padding:.7em 1.1em}
  .pv-header__burger{display:flex;margin-left:4vw}
}
@media only screen and (pointer:coarse) and (min-width:1025px),screen and (min-width:800px){
  .pv-menu{display:none!important}
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.pv-footer{position:relative}
.pv-footer__fallback{padding:2rem var(--gutter);text-align:center;font-size:.9rem}

/* --------------------------------------------------------------------------
   Generic prose (404, archives)
   -------------------------------------------------------------------------- */
.pv-prose{max-width:900px;margin:0 auto;padding:0 var(--gutter)}
.pv-prose--center{text-align:center}
.pv-prose h2{font-size:1.8rem;line-height:1.3}
.pv-prose ul{text-align:left;display:inline-block;margin:1rem auto;padding-left:1.5em}
.pv-prose a{color:var(--light-accent)}

/* --------------------------------------------------------------------------
   Print
   -------------------------------------------------------------------------- */
@media print{
  .pv-header,.pv-menu,.pv-notice{display:none!important}
  body{padding-top:0!important;background:#fff;color:#000}
  .pv-section{background:#fff!important;color:#000}
}
