:root{
  --paper:#EDF1EF;
  --surface:#FBFCFB;
  --surface-2:#E1E8E4;
  --border:#CCD6D0;
  --ink:#172420;
  --ink-soft:#4C5C56;
  --ink-mute:#7E8D87;
  --harbor:#1F6F63;
  --harbor-strong:#124E45;
  --harbor-tint:#DCEAE6;
  --sand:#D9A857;
  --sand-tint:#FBF0DC;
  --warning:#9C6B12;
  --warning-tint:#FBEBC9;
  --radius:10px;
  --shadow:0 1px 2px rgba(18,78,69,.06),0 8px 24px -12px rgba(18,78,69,.18);
  --font-display:'Fraunces','Georgia',serif;
  --font-body:system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);line-height:1.5;}
a{color:var(--harbor-strong);}
.wrap{max-width:960px;margin:0 auto;padding:0 1.25rem;}

header.site{border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:10;}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;flex-wrap:wrap;}
header.site .brand{font-family:var(--font-display);font-size:21px;font-weight:700;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:.45rem;}
header.site .brand svg{flex:none;}
nav.site-nav{display:flex;gap:1.25rem;flex-wrap:wrap;align-items:center;}
nav.site-nav a{text-decoration:none;color:var(--ink-soft);font-size:14px;font-weight:600;}
nav.site-nav a:hover{color:var(--harbor-strong);}

/* Hero: gradient wash + soft palm-leaf motif, no stock photography */
.hero{
  position:relative;
  overflow:hidden;
  padding:4rem 0 3rem;
  text-align:center;
  background:
    radial-gradient(60% 90% at 85% -10%, var(--harbor-tint) 0%, transparent 60%),
    radial-gradient(50% 70% at 10% 110%, var(--sand-tint) 0%, transparent 55%),
    linear-gradient(180deg, var(--surface) 0%, var(--paper) 100%);
  border-bottom:1px solid var(--border);
}
.hero-motif{position:absolute;top:-60px;right:-80px;width:420px;height:420px;pointer-events:none;opacity:.3;}
@media(max-width:640px){.hero-motif{width:220px;height:220px;top:-20px;right:-60px;}}
.hero .wrap{position:relative;}
.hero-eyebrow{display:inline-flex;align-items:center;gap:.4rem;background:var(--surface);border:1px solid var(--border);color:var(--harbor-strong);font-size:12.5px;font-weight:600;padding:.35rem .8rem;border-radius:999px;margin-bottom:1.1rem;box-shadow:var(--shadow);}
.hero h1{font-family:var(--font-display);font-size:clamp(32px,5.5vw,48px);line-height:1.1;margin:0 0 .6rem;letter-spacing:-.01em;}
.hero p{color:var(--ink-soft);font-size:17px;max-width:540px;margin:0 auto 1.75rem;}
.hero-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;}

.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.8rem 1.5rem;border-radius:var(--radius);text-decoration:none;font-weight:600;font-size:14.5px;border:1px solid var(--border);transition:transform .12s ease,box-shadow .12s ease,background .12s ease;}
.btn.primary{background:var(--harbor);border-color:var(--harbor);color:#fff;box-shadow:0 6px 16px -6px rgba(18,78,69,.45);}
.btn.primary:hover{background:var(--harbor-strong);transform:translateY(-1px);box-shadow:0 10px 20px -8px rgba(18,78,69,.5);}
.btn.ghost{background:var(--surface);color:var(--ink);}
.btn.ghost:hover{background:var(--surface-2);transform:translateY(-1px);}

/* Photo gallery — bento layout, honestly labeled as placeholder art until real photos exist */
.photo-gallery{margin:2.5rem 0;}
.photo-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:8px;
  border-radius:16px;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.photo-grid .ph{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  color:var(--harbor-strong);
  font-size:12.5px;
  font-weight:600;
  text-align:center;
  padding:8px;
  min-height:120px;
}
.photo-grid .ph:nth-child(1){grid-row:1 / 3;background:linear-gradient(155deg,var(--harbor-tint) 0%,var(--surface-2) 100%);}
.photo-grid .ph:nth-child(2){background:linear-gradient(155deg,var(--sand-tint) 0%,var(--surface-2) 100%);}
.photo-grid .ph:nth-child(3){background:linear-gradient(155deg,var(--surface-2) 0%,var(--harbor-tint) 100%);}
.photo-grid .ph:nth-child(4){background:linear-gradient(155deg,var(--surface-2) 0%,var(--sand-tint) 100%);}
.photo-grid .ph svg{opacity:.55;}
@media(max-width:640px){
  .photo-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto;}
  .photo-grid .ph:nth-child(1){grid-row:auto;grid-column:1 / 3;min-height:160px;}
}
.photo-gallery-note{text-align:center;font-size:12.5px;color:var(--ink-mute);margin-top:.6rem;}

.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.6rem;margin-bottom:1.5rem;box-shadow:var(--shadow);}
.card h2{font-family:var(--font-display);font-size:21px;margin:0 0 1rem;}

.amenities{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.6rem;list-style:none;padding:0;margin:0;}
.amenities li{display:flex;align-items:center;gap:.55rem;background:var(--surface-2);border-radius:9px;padding:.65rem .85rem;font-size:14px;}
.amenities li svg{flex:none;color:var(--harbor-strong);}

form.booking{display:grid;gap:1rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
@media(max-width:640px){.form-row{grid-template-columns:1fr;}}
label{display:block;font-size:13px;font-weight:600;margin-bottom:.35rem;color:var(--ink-soft);}
input,textarea{width:100%;padding:.65rem .75rem;border:1px solid var(--border);border-radius:9px;font-family:inherit;font-size:14px;background:var(--surface);color:var(--ink);transition:border-color .12s ease,box-shadow .12s ease;}
input:focus,textarea:focus{outline:none;border-color:var(--harbor);box-shadow:0 0 0 3px var(--harbor-tint);}
textarea{resize:vertical;}

.notice{border-radius:10px;padding:.9rem 1rem;font-size:13.5px;margin-top:1rem;}
.notice.info{background:var(--harbor-tint);color:var(--harbor-strong);}
.notice.warn{background:var(--warning-tint);color:var(--warning);}
[hidden]{display:none!important;}

.calendar-month{margin-bottom:2rem;}
.calendar-month h3{font-family:var(--font-display);font-size:18px;margin:0 0 .75rem;}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.calendar-grid .day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:7px;font-size:13px;background:var(--surface);border:1px solid var(--border);}
.calendar-grid .day.blocked{background:var(--warning-tint);color:var(--warning);text-decoration:line-through;}
.calendar-grid .day.empty{background:transparent;border:none;}
.calendar-legend{display:flex;gap:1rem;font-size:12.5px;color:var(--ink-mute);margin-top:.5rem;}
.legend-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:middle;}

footer.site{border-top:1px solid var(--border);margin-top:3rem;padding:2rem 0;text-align:center;color:var(--ink-mute);font-size:13px;}
