/* Limestone, copper, olive and Mediterranean blue. */
:root{--paper:#faf6ed;--ink:#234841;--blue:#20798a;--copper:#a25a30;--olive:#71784c;--line:#d9d4c4}
body{background-color:var(--paper);background-image:radial-gradient(#8d79560a .65px,transparent .65px);background-size:5px 5px}
header{background:rgba(250,246,237,.97);border-bottom-color:#ab79512b;backdrop-filter:blur(16px);padding-inline:3.5%;gap:28px}
.banner-row{display:flex;gap:25px;align-items:center}
header .brand{letter-spacing:-.05em}header .brand span{letter-spacing:.23em}
header nav{gap:7px 19px;justify-content:flex-end}
header nav a:last-child{background:var(--copper);border-color:var(--copper)!important;color:#fffaf0;padding:11px 21px;transition:background .3s,box-shadow .3s}
header nav a:last-child:hover{background:#814323;box-shadow:0 5px 20px #a25a3030}
.flying-flag{position:relative;display:block;width:88px;aspect-ratio:622/350;flex-shrink:0;filter:drop-shadow(0 7px 6px #142b3a30);perspective:500px}
.flying-flag:before{content:'';position:absolute;left:-4px;top:-7px;bottom:-15px;width:2px;background:linear-gradient(90deg,#c9b99d,#ffefd1);border-radius:2px}
.flying-flag>img{display:block;width:100%;height:100%;object-fit:cover}
.flying-flag.enhanced>img{display:none}
.flag-fabric{display:flex;width:100%;height:100%;transform-origin:left center}
.flag-panel{height:100%;flex:1 0 0;background-image:url('images/cyprus-flag.png');background-size:2400% 100%;background-position:var(--position) center;background-repeat:no-repeat;animation:cyprus-breeze 3.2s ease-in-out infinite;animation-delay:var(--phase);transform-origin:center}
@keyframes cyprus-breeze{0%,100%{transform:translateY(calc(var(--lift) * -1)) skewY(-1deg);filter:brightness(.94)}50%{transform:translateY(var(--lift)) skewY(1deg);filter:brightness(1.06)}}
.hero{min-height:770px;height:96svh;max-height:1100px}
.hero>img{animation:none;transform:none}
.hero .shade{background:linear-gradient(90deg,#122f32b8 0%,#122f3252 58%,#122f3208),linear-gradient(0deg,#082c3c70,transparent 40%,#082c3c5c)}
.hero-copy{padding-top:max(calc(var(--header-height) + 65px),23vh);max-width:1250px}
.hero h1{font-size:clamp(62px,6.9vw,110px);letter-spacing:-.055em;line-height:1.03}
.hero h1 em{color:#fff0d3}.hero-copy .eyebrow{display:flex;align-items:center;gap:16px;font-size:10px}
.hero-copy .eyebrow:before{content:'';width:38px;height:1px;background:#e0b082}
.hero-copy>*{animation-duration:1.1s;animation-timing-function:cubic-bezier(.16,1,.3,1)}
.hero-bottom{border-top:1px solid #ffffff40;padding-top:20px}
.holiday-strip{background:#efe7d7;padding-block:26px;gap:20px;color:#4f5b46}
.holiday-strip>span{display:flex;align-items:center;gap:11px}
.holiday-strip>span:first-child{color:#775a3f;line-height:1.6}
.swatch{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.swatch.sea{background:#238898}.swatch.olive{background:#737b48}.swatch.copper{background:#b77436}
.eyebrow{color:var(--copper)}.hero .eyebrow,.postcard .eyebrow{color:#fff2dc}
.stay-editorial{gap:11%;position:relative;padding-top:125px;padding-bottom:125px}
.stay-picture:after{content:'';position:absolute;inset:18px -18px 15px 18px;border:1px solid #ae89536b;border-radius:48% 48% 0 0;z-index:-1}
.stay-picture{isolation:isolate}.stay-picture img{box-shadow:0 25px 50px #71603b12}
.olive-mark{width:98px;height:56px;color:var(--olive);display:block;margin-bottom:24px}
.stay-copy h2 em,.island-story h2 em{color:var(--copper)}
.stay-caption{padding-left:22px;border-left:1px solid #b18b61;color:#857048}
.text-link{position:relative;border-bottom-color:#ad835966;transition:color .3s}
.text-link:after{content:'';position:absolute;left:0;bottom:-1px;width:100%;height:1px;background:var(--copper);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.text-link:hover,.text-link:focus-visible{color:var(--copper)}.text-link:hover:after,.text-link:focus-visible:after{transform:scaleX(1)}
.button{position:relative;overflow:hidden;transition:background .35s,transform .35s,box-shadow .35s}
.button:before{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#ffffff24 48%,transparent 75%);transform:translateX(-120%);transition:transform .65s}
.button:hover:before,.button:focus-visible:before{transform:translateX(120%)}
.button:not(.light){background:var(--copper);border-color:var(--copper)}.button:not(.light):hover{background:#824322}
.postcard{margin:0 3%;height:610px;border-radius:3px}.postcard:after{background:linear-gradient(#0a546044,#08364490)}
.postcard h2 em{color:#f8e8c9}.explore{background:#eaf0e9;margin-top:70px}
.places{column-gap:45px;row-gap:36px}.places article{transition:transform .4s,border-color .4s}.places article:hover{border-color:var(--copper)}
.places article>img{height:340px;object-fit:cover;border-radius:100px 3px 3px 3px;transition:filter .5s,border-radius .6s}
.places article:nth-child(2)>img{border-radius:3px 100px 3px 3px}.places article:hover>img{border-radius:3px;filter:saturate(1.08)}
.places .number{color:#90613b}.places article:nth-child(n+3){padding-top:22px}.places article:nth-child(n+3) h3{font-size:30px}
.filters button{border-color:#78876d70}.filters button[aria-pressed=true]{background:#53674f;border-color:#53674f}
.island-story{display:grid;grid-template-columns:1fr 1.15fr;gap:10%;align-items:center;padding-top:130px;padding-bottom:130px}
.island-story-copy p:not(.eyebrow){max-width:370px;color:#5b6b5d}.story-note{display:block;font:italic 19px Georgia,serif;color:#91724c;margin-top:30px}
.island-story-images{position:relative;min-height:580px;padding-right:13%;padding-bottom:130px}
.island-story-images figure{margin:0}.island-story-images img{display:block;object-fit:cover;width:100%;height:100%;transition:filter .5s}
.village-frame{height:390px;transform:rotate(-3deg);box-shadow:0 18px 50px #56462c18;border:10px solid #fffdf5;background:#fffdf5}
.village-frame img{height:calc(100% - 30px)}.island-story-images figcaption{font-size:8px;letter-spacing:.18em;padding:8px 5px;color:#756a52}
.bay-frame{position:absolute;bottom:0;right:0;width:68%;height:300px;border:10px solid #fffdf5;background:#fffdf5;transform:rotate(4deg);box-shadow:0 18px 50px #56462c25}
.bay-frame img{height:calc(100% - 30px)}.island-story-images figure:hover img{filter:saturate(1.18)}
.rhythm{background:#234d49;position:relative;border-top:5px solid #b48953}.rhythm h2 em{color:#e3c69c}
.moment span{color:#e1c39d}.moment{transition:border-color .3s}.moment:hover{border-color:#d8b38999}
.practical details{transition:padding-left .3s,background .3s}.practical details:hover{padding-left:12px}.practical details[open]{padding-left:18px;padding-right:18px;background:#ece5d645}.practical summary:after{color:var(--copper)}
.escape-cta{background:radial-gradient(ellipse at center,#f0e6d0,#e5d6b7);border-top:1px solid #b18b6138}
.escape-cta:before{display:none}.escape-cta .olive-mark{margin:0 auto 25px;width:115px;height:66px}.escape-cta h2 em{color:#936036}
.page-heading{background:linear-gradient(110deg,#eee8d9,#f7f2e7);border-color:#baa57b44}.page-heading:after{color:#ac784445}
footer{background:#1b3b38}.motion-control{display:block;background:transparent;border:1px solid #c0c8ae60;color:#e2e7d7;font-size:10px;padding:8px 13px;letter-spacing:.04em;transition:background .3s}.motion-control:hover{background:#ffffff14}.motion-control[hidden]{display:none}
.motion-ready .reveal{transition-duration:1s;transition-timing-function:cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
header.menu-open nav a{animation:menu-arrive .4s both;animation-delay:var(--menu-delay,0ms)}
@keyframes menu-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
:focus-visible{outline-color:#b37c43}
@media(min-width:901px) and (max-width:1200px){.flying-flag{width:70px}.banner-row{gap:19px}header{gap:20px}header nav{gap:4px 15px}.hero-copy{padding-top:calc(var(--header-height) + 65px)}}
@media(max-width:900px){.banner-row{gap:22px}.flying-flag{width:72px}header{padding-inline:6%}.hero{min-height:770px}.hero-copy{padding-top:calc(var(--header-height) + 65px)}.holiday-strip>span:first-child{justify-content:center}.postcard{height:530px}.stay-editorial{padding-block:90px}.places article>img{height:270px}.island-story{gap:6%;padding-block:90px}.island-story-images{min-height:460px}.village-frame{height:320px}.bay-frame{height:230px;width:78%}}
@media(max-width:600px){header{column-gap:12px;padding-inline:5%}.banner-row{gap:14px;min-width:0}.flying-flag{width:47px}header .brand{font-size:37.5px}header .brand span{font-size:12px;letter-spacing:.14em}.hero{height:auto;min-height:780px}.hero h1{font-size:clamp(53px,10.5vw,68px)}.hero-copy{padding:calc(var(--header-height) + 65px) 7% 130px}.hero-copy .eyebrow{font-size:8px;gap:10px}.hero-copy .eyebrow:before{width:22px}.hero-bottom{bottom:28px}.holiday-strip{gap:18px;font-size:13px}.holiday-strip>span:last-child{display:flex}.holiday-strip>span:first-child{width:100%}.holiday-strip .swatch{width:8px;height:8px}.stay-editorial{padding-block:70px}.stay-picture:after{inset:12px -10px 20px 10px}.stay-copy h2{font-size:51px}.postcard{height:470px;margin-inline:4%}.postcard h2{font-size:40px}.explore{margin-top:35px}.places article>img{height:280px}.island-story{grid-template-columns:1fr;gap:42px;padding-block:70px}.island-story h2{font-size:49px}.island-story-images{min-height:480px;padding-right:12%}.village-frame{height:330px}.bay-frame{height:250px;width:72%}.practical details:hover{padding-left:0}}
@media(max-width:380px){header{padding-inline:4%;gap:8px}.banner-row{gap:10px}.flying-flag{width:35px}header .brand{letter-spacing:-.075em}header .brand span{font-size:11px;letter-spacing:.1em}}
html.motion-paused *,html.motion-paused *:before,html.motion-paused *:after{animation-play-state:paused!important;transition:none!important;scroll-behavior:auto!important}
html.motion-paused .reveal,html.motion-paused .hero-copy>*,html.motion-paused header.menu-open nav a{opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.flag-panel{transform:none;filter:none}.motion-ready .reveal{opacity:1;transform:none}.motion-control{display:none}}

.gallery-stage{scroll-margin-top:calc(var(--header-height) + 20px)}

/* Consistent rounded photo edges throughout the site. */
:root{--photo-radius:20px}
main img{border-radius:var(--photo-radius)}
main .hero>img{border-radius:0 0 var(--photo-radius) var(--photo-radius)}
.hero{border-radius:0 0 var(--photo-radius) var(--photo-radius)}
.stay-picture img{border-radius:48% 48% var(--photo-radius) var(--photo-radius)}
.stay-picture:after{border-radius:48% 48% var(--photo-radius) var(--photo-radius)}
.postcard,.destination-photo,.gallery-stage,.montage-photo{border-radius:var(--photo-radius);overflow:hidden}
.places article>img,.places article:nth-child(2)>img,.places article:hover>img{border-radius:var(--photo-radius)}
.gallery-slide>img{border-radius:var(--photo-radius);width:auto;max-width:100%;margin-inline:auto}
.gallery-thumbnails img{border-radius:12px}
.gallery-thumbnails button{border-radius:15px}
.village-frame,.bay-frame{border-radius:var(--photo-radius)}
.island-story-images img{border-radius:12px}
.flying-flag{border-radius:6px}
.flying-flag>img{border-radius:6px}
.flag-fabric .flag-panel:first-child{border-radius:6px 0 0 6px}
.flag-fabric .flag-panel:last-child{border-radius:0 6px 6px 0}

/* Animate only water; retain the original, still photograph underneath. */
.pool-ripples{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:1;border-radius:inherit}
.motion-paused .pool-ripples{visibility:hidden}
@media(prefers-reduced-motion:reduce){.pool-ripples{display:none}}

.animal-scene{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;border-radius:inherit}

/* Use Segoe UI consistently across all pages and interface controls. */
html,body,body *,body *::before,body *::after{font-family:'Segoe UI',Tahoma,Arial,sans-serif!important}

/* Keep the water overlay aligned with the arched photo, above its caption. */
.stay-picture .stay-pool-ripples{height:calc(100% - 32px);border-radius:48% 48% var(--photo-radius) var(--photo-radius);overflow:hidden}

/* Surf stays beneath the beach section's shading and text. */
.postcard .beach-waves{z-index:0;border-radius:0}

/* The photo and its water mask travel together through a forward camera pass.
   Two offset passes crossfade so the return to the beginning stays gentle. */
.hero-scene{position:absolute;inset:0;transform-origin:center;will-change:transform,opacity;animation:villa-camera-pass 31.5s linear infinite;pointer-events:none}
.hero-scene-next{animation-delay:-15.75s}
.hero-scene>.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 56%;max-width:none}
@keyframes villa-camera-pass{
  0%{opacity:1;transform:scale(1.075) translateX(1.5%)}
  46%{opacity:1;transform:scale(1.075) translateX(-1.26%)}
  50%{opacity:0;transform:scale(1.075) translateX(-1.5%)}
  50.01%{opacity:0;transform:scale(1.075) translateX(1.5%)}
  96%{opacity:0;transform:scale(1.075) translateX(1.5%)}
  100%{opacity:1;transform:scale(1.075) translateX(1.5%)}
}
@media(max-width:600px){.hero-scene>.hero-image{object-position:58% center}}
@media(prefers-reduced-motion:reduce){.hero-scene{animation:none!important;transform:none;opacity:1;will-change:auto}.hero-scene-next{display:none}}
/* Floating rounded banner inspired by the reference header. */
html{scroll-padding-top:124px}
body{padding-top:120px}
body.home{padding-top:0}
header{inset:16px 16px auto;width:calc(100% - 32px);height:88px;padding:0 clamp(24px,4vw,64px);gap:26px;flex-wrap:nowrap;border:1px solid #23484116;border-radius:25px;background:#faf6edf7;color:var(--ink);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 #23484112;transition:background .35s,height .35s,color .35s,box-shadow .35s}
.home header:not(.scrolled):not(.menu-open){background:#122f3294;color:#faf6ed;border-color:#ffffff1f;box-shadow:0 1px 0 #ffffff1f}
header.scrolled{height:76px;background:#faf6edf7;box-shadow:0 5px 24px #122f3210}
header .banner-row{gap:14px;min-width:0;flex-shrink:0}
header .brand{font-family:Georgia,'Times New Roman',serif!important;font-size:18px;line-height:1.15;letter-spacing:.16em;text-transform:uppercase}
header .brand span{font-size:8px;letter-spacing:.38em;line-height:1.4;margin-top:7px}
header .flying-flag{width:46px;filter:drop-shadow(0 3px 4px #122f3220)}
header .flying-flag:before{display:none}
header nav{flex:1;justify-content:flex-end;gap:clamp(12px,1.25vw,23px)}
header nav a{font-size:11px;letter-spacing:0;padding:10px 0}
header nav a:after{bottom:2px}
header nav a:last-child{display:inline-flex;align-items:center;justify-content:center;gap:16px;margin-left:clamp(12px,2vw,38px);padding:12px 19px;border:1px solid #23484180!important;border-radius:999px;background:transparent;color:inherit;font-size:11px;line-height:1.4;transition:background .25s,transform .25s}
header nav a:last-child:before{content:none}
header nav a:last-child:after{content:'↗';display:inline-block;position:static;width:auto;height:auto;background:none;transform:none;font-size:13px}
.home header:not(.scrolled):not(.menu-open) nav a:last-child{border-color:#faf6ed99!important;background:#faf6ed0d}
header nav a:last-child:hover{background:#2348410d;box-shadow:none;transform:translateY(-2px)}
.home header:not(.scrolled):not(.menu-open) nav a:last-child:hover{background:#faf6ed20}
header .menu-toggle{display:none}
@media(max-width:1120px){
 header{height:77px;padding-inline:24px;gap:18px}
 header.scrolled{height:70px}
 header nav{display:none;position:absolute;top:calc(100% + 10px);left:0;width:100%;max-height:calc(100svh - 125px);overflow:auto;padding:18px 24px 24px;background:var(--paper);color:var(--ink);border:1px solid #23484120;border-radius:25px;box-shadow:0 12px 28px #122f3220}
 header.menu-open{background:#faf6edf7;color:var(--ink)}
 header.menu-open nav{display:flex;flex-direction:column;align-items:stretch;gap:0}
 header nav a{font-size:15px;padding:11px 0}
 header nav a:last-child{margin:14px 0 0;padding:12px 18px;align-self:flex-start}
 header .menu-toggle{display:block;position:relative;width:88px;height:44px;padding:12px 15px;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;flex-shrink:0}
 header .menu-toggle:before{content:'Menu';position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:11px;line-height:1}
 header .menu-toggle span{position:absolute;right:14px;top:calc(50% - 3px);width:16px;height:1px;background:currentColor}
 header .menu-toggle span:last-child{top:calc(50% + 3px)}
 header.menu-open .menu-toggle span:first-child{transform:translateY(3px) rotate(45deg)}
 header.menu-open .menu-toggle span:last-child{transform:translateY(-3px) rotate(-45deg)}
}
@media(max-width:600px){
 header{padding-inline:14px;gap:12px}
 header .banner-row{gap:10px}
 header .brand{font-size:15px;letter-spacing:.12em}
 header .brand span{font-size:7px;letter-spacing:.3em}
 header .flying-flag{width:34px}
}
@media(max-width:380px){
 header{padding-inline:12px;gap:8px}
 header .banner-row{gap:8px}
 header .brand{font-size:12px;letter-spacing:.1em}
 header .brand span{font-size:6px;letter-spacing:.25em}
 header .flying-flag{width:28px}
 header .menu-toggle{width:78px}
}
/* Larger Segoe UI banner; show one clean flag image without strip seams. */
html{scroll-padding-top:calc(var(--header-height) + 48px)}
body{padding-top:calc(var(--header-height) + 32px)}
body.home{padding-top:0}
header,header.scrolled{height:110px;border:0!important;box-shadow:none!important}
header .brand{font-family:'Segoe UI',Tahoma,Arial,sans-serif!important;font-size:36px;letter-spacing:.1em}
header .brand span{font-size:16px;letter-spacing:.3em}
header .banner-row{gap:20px}
header .flying-flag{width:92px}
header .flying-flag.enhanced>img{display:block}
header .flying-flag .flag-fabric{display:none}
header .flying-flag:before{display:none}
header nav{gap:14px}
header nav a,header nav a:last-child{font-size:22px;border:0!important}
header nav a:not(:last-child):after{display:none}
header nav a:last-child{margin-left:18px;background:transparent;padding:12px 16px}
header nav a:last-child:after{font-size:26px}
header .menu-toggle:before{font-size:22px}
@media(min-width:2001px){header nav{display:flex;position:static;width:auto;max-height:none;overflow:visible;padding:0;background:transparent;color:inherit;box-shadow:none;border:0;border-radius:0}header .menu-toggle{display:none}}
@media(max-width:2000px){
 header,header.scrolled{height:110px;padding-inline:24px;gap:18px}
 header nav{display:none;position:absolute;top:calc(100% + 10px);left:0;width:100%;max-height:calc(100svh - 160px);overflow:auto;padding:18px 24px 24px;background:var(--paper);color:var(--ink);border:0;border-radius:25px;box-shadow:0 12px 28px #122f3220}
 header.menu-open{background:#faf6edf7;color:var(--ink)}
 header.menu-open nav{display:flex;flex-direction:column;align-items:stretch;gap:0}
 header nav a{font-size:30px;padding:11px 0}
 header nav a:last-child{font-size:22px;margin:14px 0 0;align-self:flex-start}
 header .menu-toggle{display:block;position:relative;width:120px;height:48px;padding:12px 15px;border:0;border-radius:999px;background:transparent;color:inherit;flex-shrink:0}
 header .menu-toggle:before{content:'Menu';position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:22px;line-height:1}
 header .menu-toggle span{position:absolute;right:14px;top:calc(50% - 3px);width:16px;height:1px;background:currentColor}
 header .menu-toggle span:last-child{top:calc(50% + 3px)}
}
@media(max-width:600px){
 header,header.scrolled{height:auto;min-height:160px;padding:16px 14px;flex-wrap:wrap;gap:10px}
 header .banner-row{flex:1 0 100%;gap:10px}
 header .brand{font-size:30px;letter-spacing:.12em}
 header .brand span{font-size:14px;letter-spacing:.3em}
 header .flying-flag{width:68px}
 header .menu-toggle{margin-left:auto}
 header nav{max-height:calc(100svh - 215px)}
}
@media(max-width:380px){
 header,header.scrolled{padding-inline:12px}
 header .banner-row{gap:8px}
 header .brand{font-size:24px;letter-spacing:.1em}
 header .brand span{font-size:12px;letter-spacing:.25em}
 header .flying-flag{width:56px}
}
/* A gentle breeze moves the seamless flag from its left edge. */
header .flying-flag>img{transform-origin:left center;animation:flag-gentle-wave 5.5s ease-in-out infinite;will-change:transform}
@keyframes flag-gentle-wave{
  0%,100%{transform:perspective(550px) rotateY(-3deg) rotateZ(-.4deg) skewY(-.6deg) scaleX(.995)}
  25%{transform:perspective(550px) rotateY(2deg) rotateZ(.25deg) skewY(.5deg) scaleX(1)}
  50%{transform:perspective(550px) rotateY(5deg) rotateZ(.6deg) skewY(.9deg) scaleX(.985)}
  75%{transform:perspective(550px) rotateY(-1deg) rotateZ(.1deg) skewY(.2deg) scaleX(1)}
}
@media(prefers-reduced-motion:reduce){header .flying-flag>img{animation:none;transform:none;will-change:auto}}
/* Soft fabric ripples accompany a slightly quicker breeze. */
header .flying-flag>img{filter:url('#villa-flag-fabric-wave');animation:flag-natural-breeze 4.4s ease-in-out infinite}
@keyframes flag-natural-breeze{
  0%,100%{transform:perspective(550px) rotateY(-2deg) skewY(-.5deg) scaleX(.997)}
  22%{transform:perspective(550px) rotateY(2.5deg) skewY(.8deg) scaleX(.988)}
  48%{transform:perspective(550px) rotateY(-.5deg) skewY(.15deg) scaleX(.998)}
  73%{transform:perspective(550px) rotateY(3.5deg) skewY(-.7deg) scaleX(.991)}
}
html.motion-paused header .flying-flag>img{filter:none}
@media(prefers-reduced-motion:reduce){header .flying-flag>img{animation:none;transform:none;filter:none;will-change:auto}}
/* Continuous cloth folds, with the original flag as a static fallback. */
header .flying-flag>img{animation:none!important;filter:none;transform:none;will-change:auto}
header .flying-flag.cloth-active>img{visibility:hidden}
header .flying-flag .flag-cloth{position:absolute;left:-8%;top:-15%;width:116%;height:130%;pointer-events:none;border-radius:0}
@media(prefers-reduced-motion:reduce){header .flying-flag.cloth-active>img{visibility:visible}header .flying-flag .flag-cloth{display:none}}

/* Page-title dividers and navigation hover feedback. */
header nav a{transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
header nav a:not(:last-child):after{display:block;content:'';position:absolute;left:0;bottom:2px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
header nav a:not(:last-child):is(:hover,:focus-visible):after{transform:scaleX(1)}
header nav a:is(:hover,:focus-visible){transform:translateY(-2px)}
header nav a:last-child:after{transition:transform .25s ease}
header nav a:last-child:is(:hover,:focus-visible):after{transform:translate(3px,-3px)}
@media(min-width:2001px){
 header nav a+a:not(:last-child):before{content:'';position:absolute;left:-7px;top:50%;width:1px;height:.85em;background:currentColor;opacity:.4;transform:translateY(-50%);pointer-events:none}
}
@media(prefers-reduced-motion:reduce){
 header nav a,header nav a:after{transition:none}
 header nav a:is(:hover,:focus-visible),header nav a:last-child:is(:hover,:focus-visible):after{transform:none}
}


/* Keep the homepage introduction near the upper-left below the banner. */
body.home .hero .hero-copy{padding:calc(var(--header-height) + 38px) 3.5% 80px}
@media(max-width:600px){body.home .hero .hero-copy{padding:calc(var(--header-height) + 30px) 5% 70px}}
/* Centre the single-line villa name alongside the Cyprus flag. */
header .banner-row{align-items:center}
header .banner-row .brand{display:inline-flex;align-items:center;text-transform:none;line-height:1.2;letter-spacing:.03em}
/* Match the header name to the footer brand lettering. */
header .banner-row .brand{font-family:'Segoe UI',Tahoma,Arial,sans-serif!important;font-weight:400;letter-spacing:-.04em;line-height:1.2}
/* Compact title banners with a warm Mediterranean sun. */
body .page-heading.section{padding-top:34px;padding-bottom:27px}
body .page-heading:after{content:'';display:block;position:absolute;right:8%;top:38px;width:96px;height:96px;font-size:0;opacity:.55;background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23a25a30' stroke-width='2.5' stroke-linecap='round'%3E%3Ccircle cx='50' cy='50' r='22' fill='%23e6bd7a' fill-opacity='.28'/%3E%3Cpath d='M50 6v12M50 82v12M6 50h12M82 50h12M19 19l9 9M72 72l9 9M19 81l9-9M72 28l9-9'/%3E%3C/svg%3E");animation:villa-title-sun 36s linear infinite;pointer-events:none}
@keyframes villa-title-sun{to{transform:rotate(360deg)}}
@media(max-width:600px){
 body .page-heading.section{padding-top:28px;padding-bottom:22px}
 body .page-heading:after{width:38px;height:38px;right:6%;top:22px}
 body .page-heading>.eyebrow{padding-right:48px}
}
@media(prefers-reduced-motion:reduce){body .page-heading:after{animation:none}}
html.motion-paused .page-heading:after{animation-play-state:paused}
/* Hide legacy hero links retained by the WordPress page editor. */
body.home .hero .hero-copy>a{display:none}

/* Smaller public calendars and a larger sun with breathing rays. */
body .viw-calendars>.viw-year{zoom:.8;width:100%;margin-left:auto;margin-right:auto}
body .page-heading:before,body .page-heading:after{width:120px;height:120px;right:8%;top:38px}
body .page-heading:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='22' fill='%23e6bd7a' fill-opacity='.28' stroke='%23a25a30' stroke-width='2.5'/%3E%3C/svg%3E");animation:none}
body .page-heading:before{content:'';display:block;position:absolute;pointer-events:none;opacity:.55;background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23a25a30' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M50 6v12M50 82v12M6 50h12M82 50h12M19 19l9 9M72 72l9 9M19 81l9-9M72 28l9-9'/%3E%3C/svg%3E");animation:villa-ray-turn 36s linear infinite,villa-ray-pulse 3.6s ease-in-out infinite}
@keyframes villa-ray-turn{to{rotate:360deg}}
@keyframes villa-ray-pulse{0%,100%{scale:.9;opacity:.4;filter:drop-shadow(0 0 5px rgba(255,205,0,.65)) drop-shadow(0 0 12px rgba(255,205,0,.35))}50%{scale:1.15;opacity:.75;filter:drop-shadow(0 0 0 rgba(255,205,0,0))}}
@media(max-width:600px){body .page-heading:before,body .page-heading:after{width:47.5px;height:47.5px;right:6%;top:22px}body .page-heading>.eyebrow{padding-right:58px}}
@media(prefers-reduced-motion:reduce){body .page-heading:before{animation:none}}
html.motion-paused .page-heading:before{animation-play-state:paused}

/* Enlarge the animated sun by a further 75 percent. */
body .page-heading:before,body .page-heading:after{width:210px;height:210px;top:18px}
@media(max-width:600px){body .page-heading:before,body .page-heading:after{width:83.125px;height:83.125px;top:16px}body .page-heading>.eyebrow{padding-right:94px}}

/* Compact price lists with a gentle hover zoom. */
body .viw-rates-section .viw-rates-grid{zoom:.75}
body .viw-rates-section .viw-rate-card{position:relative;transform-origin:center;transition:transform .3s ease,box-shadow .3s ease}
@media(hover:hover) and (pointer:fine){body .viw-rates-section .viw-rate-card:hover{transform:scale(1.05);z-index:1;box-shadow:0 12px 32px #23484120}}
@media(prefers-reduced-motion:reduce){body .viw-rates-section .viw-rate-card{transition:none}body .viw-rates-section .viw-rate-card:hover{transform:none}}
html.motion-paused .viw-rates-section .viw-rate-card:hover{transform:none}

/* Shorter closing invitation, retaining the existing text and button sizes. */
body .escape-cta{padding-top:calc(42.7px - clamp(10.8px,1.296vw,19.44px));padding-bottom:calc(42.7px - clamp(10.8px,1.296vw,19.44px))}
@media(max-width:600px){body .escape-cta{padding-top:10px;padding-bottom:10px}}

/* Visitor stories: text panel on the left, photo panel on the right. */
body .blog-post:has(.blog-post-photos){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto 1fr;column-gap:24px;position:relative;isolation:isolate;padding:0;border:0;background:transparent}
body .blog-post:has(.blog-post-photos):before{content:'';position:absolute;inset:0 auto 0 0;width:calc(50% - 12px);border:1px solid var(--line);border-radius:20px;background:#fffaf2;z-index:-1;pointer-events:none;box-sizing:border-box}
body .blog-post:has(.blog-post-photos)>.blog-post-meta{grid-column:1;grid-row:1;margin:0;padding:28px 28px 16px}
body .blog-post:has(.blog-post-photos)>h3{grid-column:1;grid-row:2;margin:0;padding:0 28px 16px}
body .blog-post:has(.blog-post-photos)>.blog-post-body{grid-column:1;grid-row:3;padding:0 28px 28px;margin:0}
body .blog-post>.blog-post-photos{grid-column:2;grid-row:1 / 4;margin:0;padding:24px;border:1px solid var(--line);border-radius:20px;background:#fffaf2;align-content:start;align-items:start;justify-content:center;min-width:0}
body .blog-post>.blog-post-photos a:only-child{flex-basis:100%;max-width:100%;margin:0}
body .blog-post>.blog-post-photos a:only-child img{width:100%;height:auto;max-height:420px;object-fit:contain}
@media(max-width:700px){
 body .blog-post:has(.blog-post-photos){grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto;row-gap:0}
 body .blog-post:has(.blog-post-photos):before{display:none}
 body .blog-post:has(.blog-post-photos)>.blog-post-meta,body .blog-post:has(.blog-post-photos)>h3,body .blog-post:has(.blog-post-photos)>.blog-post-body{background:#fffaf2;border-inline:1px solid var(--line);padding-inline:24px}
 body .blog-post:has(.blog-post-photos)>.blog-post-meta{border-top:1px solid var(--line);border-radius:20px 20px 0 0;padding-top:24px}
 body .blog-post:has(.blog-post-photos)>.blog-post-body{border-bottom:1px solid var(--line);border-radius:0 0 20px 20px;padding-bottom:24px}
 body .blog-post>.blog-post-photos{grid-column:1;grid-row:4;margin-top:18px}
}


/* Visitor photos: rounded corners and a gentle hover zoom. */
body .blog-post>.blog-post-photos a{display:block;overflow:hidden;border-radius:16px}
body .blog-post>.blog-post-photos img{display:block;border-radius:16px!important;transition:transform .45s cubic-bezier(.2,.7,.2,1),filter .45s ease}
@media(hover:hover) and (pointer:fine){
 body .blog-post>.blog-post-photos a:hover img,body .blog-post>.blog-post-photos a:focus-visible img{transform:scale(1.04);filter:saturate(1.06)}
}
@media(prefers-reduced-motion:reduce){
 body .blog-post>.blog-post-photos img{transition:none}
 body .blog-post>.blog-post-photos a:hover img,body .blog-post>.blog-post-photos a:focus-visible img{transform:none;filter:none}
}

/* Pulse the centre of the title sun with its rays. */
body .page-heading:after{transform-origin:center;animation:villa-sun-circle-pulse 3.6s ease-in-out infinite}
@keyframes villa-sun-circle-pulse{0%,100%{scale:.9;filter:drop-shadow(0 0 5px rgba(255,205,0,.65)) drop-shadow(0 0 12px rgba(255,205,0,.35))}50%{scale:1.15;filter:drop-shadow(0 0 0 rgba(255,205,0,0))}}
@media(prefers-reduced-motion:reduce){body .page-heading:after{animation:none;scale:1}}
html.motion-paused .page-heading:after{animation-play-state:paused}

/* Match guest PDF cards with a warm red gallery hover tint. */
.gallery-thumbnails button{position:relative;isolation:isolate;transition:transform .3s ease,background-color .28s ease}
.gallery-thumbnails button::after{content:"";position:absolute;inset:0;border-radius:inherit;background:rgba(220,105,100,.08);opacity:0;pointer-events:none;transition:opacity .28s ease}
@media(hover:hover) and (pointer:fine){.gallery-thumbnails button:hover{background:#ead8d1}.gallery-thumbnails button:hover::after{opacity:1}}
.gallery-thumbnails button:focus-visible{background:#ead8d1}.gallery-thumbnails button:focus-visible::after{opacity:1}
@media(prefers-reduced-motion:reduce){.gallery-thumbnails button,.gallery-thumbnails button::after{transition:none}}

/* Preserve the owner’s line breaks in villa detail descriptions. */
.facts dd{white-space:pre-line}

/* Larger Planning your stay labels. */
.viw-booking-faq>.eyebrow,.viw-guest-content>.eyebrow,.viw-reviews .eyebrow{font-size:16px}

/* Preserve Section Editor paragraph breaks in the home hero. */
.hero-copy p{white-space:pre-line}
