
:root{--ink:#292b26;--paper:#f7f3eb;--cream:#eee5d7;--terracotta:#a85f3c;--olive:#66705a;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Arial,sans-serif}img{display:block;width:100%;height:100%;object-fit:cover}
h1,h2,blockquote{font-family:Georgia,serif;font-weight:400}h2{font-size:clamp(2.2rem,4vw,4rem);line-height:1.05;margin:.2em 0 .5em}.wrap{max-width:1180px;margin:auto;padding:7rem 2rem}.eyebrow{font-size:.74rem;font-weight:700;letter-spacing:.18em;color:var(--terracotta)}.light{color:#fff}.lead{font-size:1.35rem}.button{display:inline-block;padding:.9rem 1.25rem;text-decoration:none}.light-button{background:#fff;color:#222}.topbar{position:absolute;z-index:5;width:100%;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 3rem;color:#fff}.brand{font:1.5rem Georgia,serif;color:#fff;text-decoration:none;letter-spacing:.08em}.topbar nav{display:flex;gap:1.5rem;align-items:center}.topbar nav a{color:#fff;text-decoration:none}.nav-cta{border:1px solid #fff;padding:.5rem .8rem}.hero{height:92vh;min-height:650px;position:relative;color:#fff}.hero .shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.56),rgba(0,0,0,.08) 65%)}.hero-copy{position:absolute;left:max(2rem,calc((100vw - 1180px)/2));bottom:13%;max-width:680px;padding-right:2rem}.hero h1{font-size:clamp(5rem,11vw,9rem);line-height:.75;margin:.15em 0}.tagline{font:italic 1.65rem Georgia,serif}.hero-intro{font-size:1.2rem;max-width:600px}.facts{display:flex;justify-content:center;gap:0;background:#fff}.facts span{padding:1.3rem 3rem;border-right:1px solid #ddd}.intro{max-width:900px;text-align:center}.split{display:grid;grid-template-columns:1.3fr 1fr;min-height:680px;background:var(--cream)}.split .copy{padding:8rem max(3rem,8vw);align-self:center}.split ul{padding-left:1.2rem}.villa-details{display:grid;grid-template-columns:1fr 1fr;gap:7rem}.details-copy{padding-top:2rem;font-size:1.1rem}.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:330px;gap:8px;padding:8px;background:#fff}.gallery .wide{grid-column:span 2;grid-row:span 2}.setting{position:relative;height:780px}.setting-card{position:absolute;right:7%;top:15%;width:min(520px,86%);background:rgba(247,243,235,.95);padding:4rem}.quote{text-align:center;max-width:900px}.quote blockquote{font-size:clamp(2rem,4vw,3.4rem);line-height:1.25;margin:0}.price{background:var(--olive);color:#fff;text-align:center}.price .wrap{max-width:850px}.enquire{display:grid;grid-template-columns:1fr 1fr;gap:7rem}form{display:grid;gap:1rem}label{display:grid;gap:.35rem;font-size:.85rem;font-weight:bold}input,textarea{width:100%;padding:.9rem;border:1px solid #c8c0b4;background:#fff;font:inherit}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}button{border:0;background:var(--terracotta);color:#fff;padding:1rem;font-weight:bold;font-size:1rem;cursor:pointer}footer{background:#292b26;color:#fff;padding:2rem 3rem;display:flex;justify-content:space-between;font-size:.85rem}
@media(max-width:760px){.topbar{padding:1.2rem}.topbar nav a:not(.nav-cta){display:none}.hero{height:88vh}.facts{display:grid;grid-template-columns:1fr 1fr}.facts span{padding:1rem;text-align:center;border-bottom:1px solid #ddd}.wrap{padding:5rem 1.3rem}.split,.villa-details,.enquire{grid-template-columns:1fr}.split .photo{height:450px}.split .copy{padding:4rem 1.3rem}.villa-details,.enquire{gap:1rem}.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:220px}.gallery .wide{grid-column:span 2;grid-row:span 1}.setting{height:720px}.setting-card{right:5%;left:5%;top:auto;bottom:5%;width:90%;padding:2rem}.form-row{grid-template-columns:1fr}footer{gap:1rem;flex-direction:column}}

.facts span{min-width:180px;text-align:center;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}.facts b{display:block;font:1.25rem Georgia,serif;text-transform:none;letter-spacing:0}.feature-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:2rem;border-top:1px solid #cfc4b5}.feature-grid span{padding:.8rem 0;border-bottom:1px solid #cfc4b5}.feature-grid span:nth-child(odd){margin-right:1.5rem}.gallery-heading{padding-bottom:2.5rem;text-align:center}.gallery figure{position:relative;margin:0;overflow:hidden}.gallery figcaption{position:absolute;left:0;bottom:0;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.65));width:100%;padding:3rem 1rem 1rem;font-size:.85rem}.form-note{font-size:.78rem;color:#666;margin:0}
@media(max-width:760px){.feature-grid{grid-template-columns:1fr}.feature-grid span:nth-child(odd){margin-right:0}}

/* v0.3 */
.brand{display:flex;align-items:center;gap:.75rem}
.monogram{display:grid;place-items:center;width:2.55rem;height:2.55rem;border:1px solid rgba(255,255,255,.8);border-radius:50%;font:italic 1.45rem Georgia,serif;letter-spacing:-.08em}
.brand-name{font:1rem Arial,sans-serif;letter-spacing:.18em}
.booking-choice{background:var(--cream)}
.booking-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:7rem;align-items:center}
.primary-button{background:var(--terracotta);color:#fff;margin-top:1rem}
.direct-email{margin-top:1.7rem}
.direct-email a{color:var(--terracotta);font-size:1.15rem;text-decoration:none}
.direct-email a:hover{text-decoration:underline}
.platforms{display:grid;gap:1rem}
.platform-intro{margin-bottom:.5rem}
.platform-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.4rem 1.5rem;background:#fff;border:1px solid #d7cbbb;color:var(--ink);text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}
.platform-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.platform-name{font:1.55rem Georgia,serif}
.good-to-know{background:var(--olive);color:#fff}
.good-to-know .wrap{padding-top:4.5rem;padding-bottom:4.5rem}
.good-grid{display:grid;grid-template-columns:.7fr .7fr 2fr;gap:2rem}
.good-grid div{display:grid;gap:.3rem;padding-left:1.25rem;border-left:1px solid rgba(255,255,255,.35)}
.good-grid strong{font:1.35rem Georgia,serif}
.good-grid span{font-size:.95rem}
@media(max-width:760px){
  .brand-name{display:none}
  .booking-grid,.good-grid{grid-template-columns:1fr;gap:2rem}
  .platform-card{align-items:flex-start;flex-direction:column}
  .good-grid div{padding-left:1rem}
}

/* v0.3.1 corrective layout */
.setting{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(380px,.8fr);
  height:auto;
  min-height:680px;
  background:var(--paper);
  position:relative;
}
.setting-image{min-height:680px}
.setting-image img{width:100%;height:100%;object-fit:cover}
.setting-card{
  position:static;
  width:auto;
  padding:5.5rem clamp(2.5rem,5vw,5rem);
  background:var(--paper);
  align-self:center;
}
.booking-choice{background:var(--cream)}
.booking-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:7rem;align-items:center}
.primary-button{background:var(--terracotta);color:#fff;margin-top:1rem}
.platforms{display:grid;gap:1rem}
.platform-intro{margin-bottom:.5rem}
.platform-card{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:1.4rem 1.5rem;background:#fff;border:1px solid #d7cbbb;
  color:var(--ink);text-decoration:none;
  transition:transform .15s ease,box-shadow .15s ease
}
.platform-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.platform-name{font:1.55rem Georgia,serif}
.good-to-know{background:var(--olive);color:#fff}
.good-to-know .wrap{padding-top:4.5rem;padding-bottom:4.5rem}
.good-grid{display:grid;grid-template-columns:.7fr .7fr 2fr;gap:2rem}
.good-grid div{display:grid;gap:.3rem;padding-left:1.25rem;border-left:1px solid rgba(255,255,255,.35)}
.good-grid strong{font:1.35rem Georgia,serif}
.good-grid span{font-size:.95rem}
@media(max-width:760px){
  .setting{grid-template-columns:1fr;min-height:0}
  .setting-image{min-height:420px;height:50vh}
  .setting-card{padding:4rem 1.3rem}
  .booking-grid,.good-grid{grid-template-columns:1fr;gap:2rem}
  .platform-card{align-items:flex-start;flex-direction:column}
  .good-grid div{padding-left:1rem}
}


/* v0.3.3 - booking platform brand treatments */
.platform-brand{display:flex;align-items:center;gap:.8rem}
.platform-mark{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;border-radius:50%;font-weight:700;font-family:Arial,sans-serif;flex:0 0 auto}
.airbnb-mark{background:#ff5a5f;color:#fff;font-size:1.35rem}
.clickstay-mark{background:#1689c7;color:#fff;font-size:1.15rem}


/* v0.3.4 - booking platform logos */
.platform-brand{display:flex;align-items:center;min-width:150px}
.platform-logo{display:block;width:auto;max-width:165px;object-fit:contain}
.airbnb-logo{height:42px}
.clickstay-logo{height:43px}
@media(max-width:760px){
  .platform-logo{max-width:150px}
}

/* v0.3.5 - booking card sizing and direct enquiry button fix */
.booking-choice a.primary-button,
.booking-choice a.primary-button:link,
.booking-choice a.primary-button:visited {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-width:150px;
  padding:0.95rem 1.35rem;
  background:var(--terracotta);
  color:#fff !important;
  text-decoration:none !important;
  line-height:1.2;
}
.booking-choice a.primary-button:hover,
.booking-choice a.primary-button:focus {
  color:#fff !important;
  background:#965236;
}
.platform-card .platform-brand {
  display:flex;
  align-items:center;
  width:175px;
  min-width:175px;
}
.platform-card .platform-logo {
  width:auto !important;
  max-width:145px !important;
  height:auto !important;
  max-height:38px !important;
  object-fit:contain !important;
}
.platform-card .airbnb-logo {
  width:128px !important;
  max-width:128px !important;
}
.platform-card .clickstay-logo {
  width:132px !important;
  max-width:132px !important;
}
@media(max-width:760px){
  .platform-card .platform-brand{width:auto;min-width:0}
  .platform-card .platform-logo{max-width:132px !important;max-height:36px !important}
}
