/* Subtle visual refresh, layered over the original theme. */
:root { --ros-blue: #003454; }
body { color: #294554; font-family: Lato, Arial, sans-serif; font-size: 15px; line-height: 1.75; }
#header { background: #fff; box-shadow: 0 2px 18px rgba(0,52,84,.06); }
#header .logo-img { width: 220px; height: auto; }
ul.sf-menu > li > a { letter-spacing: .015em; font-size: 15px; }
#mobile-menu a { font-size: 16px; }
@media (min-width: 992px) and (max-width: 1199px) {
  ul.sf-menu > li > a { font-size: 14px; letter-spacing: 0; }
}
a, .btn { transition: color .2s, background-color .2s, box-shadow .2s; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid #3b92ab; outline-offset: 4px; }
.waves-heading .heading-title { color: var(--ros-blue); font-size: 30px; font-weight: 400; letter-spacing: -.025em; text-transform: none; }
.waves-heading .title-seperator { opacity: .55; }
.refresh-hero { position: relative; isolation: isolate; min-height: 440px; height: min(66vw, 650px); display: flex; align-items: flex-end; color: white; background: var(--ros-blue); }
.refresh-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.refresh-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,25,40,.53), transparent 85%), linear-gradient(0deg, rgba(0,25,40,.35), transparent 70%); z-index: -1; }
.refresh-hero-content { padding-top: 64px; padding-bottom: 64px; }
.refresh-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .18em; margin-bottom: 18px; }
.refresh-hero h1 { color: white; font-size: clamp(32px, 4vw, 52px); line-height: 1.15; letter-spacing: -.035em; font-weight: 400; margin: 0 0 18px; }
.refresh-hero-content > p:not(.refresh-eyebrow) { font-size: 18px; color: #fff; }
.refresh-hero .refresh-hero-button { background: white; color: var(--ros-blue); border: 0; border-radius: 5px; padding: 14px 22px; margin-top: 12px; font-size: 14px; text-transform: none; font-weight: 700; }
.refresh-hero-button span { margin-left: 18px; }
.refresh-hero .refresh-hero-button:hover { background: #e6eff1; }
.refresh-main > .row-container { padding-top: 64px; padding-bottom: 56px; }
.refresh-villa-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; margin: 0; }
.refresh-villa-grid > .col-md-3 { width: auto; padding: 0; float: none; }
.refresh-villa-grid::before, .refresh-villa-grid::after { display: none; }
.refresh-villa-grid > .col-md-3 > .row { margin: 0; }
.refresh-villa-grid .villas { margin: 0; border: 1px solid #e3e9eb; border-radius: 10px; overflow: hidden; background: white; box-shadow: 0 4px 16px rgba(0,52,84,.035); transition: transform .2s, box-shadow .2s; }
.refresh-villa-grid .villas:hover { transform: translateY(-4px); border-color: #d7e2e6; box-shadow: 0 12px 28px rgba(0,52,84,.09); }
.refresh-villa-grid .villas p { margin: 0; }
.refresh-villa-grid .villas img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; margin: 0; border: 0; border-radius: 0; display: block; }
.refresh-villa-grid .villas h2 { font-size: 16px; letter-spacing: .035em; padding: 20px 12px; margin: 0; line-height: 1.4; }
.refresh-locations + hr { display: none; }
.refresh-services { background: #f4f7f7; }
.refresh-services .row-container { background: transparent; }
.refresh-services .no-bottom img { border-radius: 8px; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.refresh-services .no-bottom h2 { font-size: 18px; line-height: 1.5; margin: 18px 0 24px; }
.waves-callout .callout-container { border: 1px solid #dce6e9; border-radius: 10px; box-shadow: none; background: #edf3f5; }
.refresh-services .waves-callout .callout-container { margin-top: 26px !important; }
.btn { border-radius: 5px; }
#bottom { background: #f4f7f7; border-top: 1px solid #e2e9eb; }
#bottom .textwidget { text-align: left; }
#bottom .widget-title { letter-spacing: .07em; }
#footer { background: var(--ros-blue); }
@media (max-width: 991px) {
  .refresh-villa-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .refresh-hero { height: 520px; min-height: 0; }
  .refresh-hero-content { padding-bottom: 42px; }
  .refresh-services .col-md-4 { max-width: 560px; margin: 0 auto; }
}
@media (max-width: 600px) {
  .refresh-hero { height: 460px; }
  .refresh-hero > img { object-position: 57% center; }
  .refresh-hero-content { padding: 36px 24px; }
  .refresh-hero h1 { max-width: 330px; }
  .refresh-eyebrow { font-size: 10px; }
  .refresh-villa-grid { grid-template-columns: 1fr; gap: 22px; }
  .refresh-main > .row-container { padding: 42px 0; }
  .waves-heading .heading-title { font-size: 27px; }
  .waves-callout .callout-container { padding: 24px; }
  .waves-callout .callout-text br { display: none; }
  .waves-callout .callout-text > div { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .refresh-villa-grid .villas, a, .btn { transition: none; }
  .refresh-villa-grid .villas:hover { transform: none; }
}
ul.sf-menu > li > a { font-size: 15px; letter-spacing: .015em; }
