:root{
  --clr-primary-dark:#163429;
  --clr-primary:#204B38;
  --clr-sage:#E7F0EB;
  --clr-ivory:#F8F6F2;
  --clr-text:#2E2E2E;
  --clr-gold:#B68C3D;

  --radius:14px;
  --shadow:0 4px 14px rgba(0,0,0,.06);
  --container:1100px;
  --space-1:8px; --space-2:12px; --space-3:16px; --space-4:24px; --space-5:32px; --space-6:48px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; font-family: ui-sans-serif, system-ui, -apple-system, "Inter", "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
  color:var(--clr-text); background:var(--clr-ivory); line-height:1.6;
}
img{max-width:100%; height:auto; display:block}
a{color:var(--clr-primary); text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--container); margin-inline:auto; padding:0 var(--space-4)}
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:var(--space-4);top:var(--space-4);width:auto;height:auto;background:#fff;padding:var(--space-2) var(--space-3);border-radius:var(--radius);box-shadow:var(--shadow)}

.site-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:#fff;position:sticky;top:0;z-index:50;box-shadow:var(--shadow)}
.logo{display:flex;align-items:center;gap:10px;color:var(--clr-primary);font-weight:700}
.site-nav ul{list-style:none;display:flex;gap:18px;margin:0;padding:0;align-items:center}
.site-nav a{padding:8px 10px;border-radius:10px}
.site-nav a[aria-current="page"]{background:var(--clr-sage)}
.btn{background:var(--clr-primary);color:#fff;padding:10px 14px;border-radius:12px}
.btn:hover{text-decoration:none;filter:brightness(.95)}

.nav-toggle{display:none}

.availability-badge{display:flex;align-items:center;gap:8px;color:#1b6d2b;background:#e8f8ec;border-radius:999px;padding:6px 10px;font-size:.9rem}
.availability-badge .dot{width:8px;height:8px;border-radius:999px;background:#20c05d;display:inline-block}

.page-header{padding:var(--space-5) 0 var(--space-3)}
.lede{max-width:62ch;color:#4a4a4a}

.placeholder-card{background:#fff;border:1px solid #ececec;border-radius:var(--radius);padding:var(--space-5);box-shadow:var(--shadow);margin:var(--space-5) 0}

.site-footer{margin-top:var(--space-6);background:#fff;padding:var(--space-5) var(--space-4);border-top:1px solid #ececec}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-5);max-width:var(--container);margin-inline:auto}
.foot-links{list-style:none;margin:0;padding:0}
.foot-links li{margin-bottom:8px}
.license{color:#5a5a5a}
.legal{text-align:center;margin-top:var(--space-4);color:#717171}

.sticky-actions{position:fixed;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:12px;background:#fff;border:1px solid #ececec;border-radius:999px;box-shadow:var(--shadow);padding:8px 10px}
.sticky-actions a{padding:8px 12px;border-radius:999px;background:var(--clr-primary);color:#fff}

@media (max-width: 900px){
  .footer-grid{grid-template-columns:1fr}
  .site-nav{position:absolute;inset:64px var(--space-4) auto var(--space-4);background:#fff;border:1px solid #ececec;border-radius:var(--radius);padding:var(--space-3);box-shadow:var(--shadow);display:none}
  .site-nav.open{display:block}
  .site-nav ul{flex-direction:column;align-items:flex-start}
  .nav-toggle{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #ececec;border-radius:10px;padding:8px 10px}
}

/* ===== Shared sections & grids (global) ===== */
.section{padding:var(--space-6) 0}
.section h2{margin-top:0;color:var(--clr-primary)}
.muted{color:#616161}
.grid{display:grid;gap:var(--space-4)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr}}

/* Cards, chips, buttons (shared) */
.card{background:#fff;border:1px solid #ececec;border-radius:var(--radius);padding:var(--space-5);box-shadow:var(--shadow)}
.btn-secondary{background:#fff;color:var(--clr-primary);border:1px solid #dfe7e2}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{background:var(--clr-sage);border:1px solid #d7e4de;color:var(--clr-text);padding:8px 12px;border-radius:999px;font-size:.95rem}

/* Services */
.service-card{display:flex;gap:14px;align-items:flex-start}
.service-card img{width:36px;height:36px}
.service-card h4{margin:2px 0 6px 0}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}
.gallery figure{margin:0;background:#fff;border:1px solid #ececec;border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.gallery img{display:block;width:100%;height:260px;object-fit:cover}
.gallery figcaption{padding:10px;color:#5a5a5a}
@media (max-width:900px){.gallery{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.gallery{grid-template-columns:1fr}}

/* Accessibility utility */
.sr-only{
  position:absolute !important;
  width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* --- Sticky tray safe space (revised: guarantee extra scroll area) --- */
:root { --sticky-safe: 140px; }  /* a bit bigger than the tray to be safe */
body { padding-bottom: var(--sticky-safe); }   /* ensures you can scroll past the footer */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
  body { padding-bottom: calc(var(--sticky-safe) + env(safe-area-inset-bottom)); }
}

/* --- Header / nav polish --- */
.site-header { gap: 16px; }
.site-nav ul { flex-wrap: nowrap; gap: 14px; }
.site-nav a.btn { padding: 8px 12px; } /* slimmer CTA so it stays on one line longer */

/* Hamburger look (right aligned, no background, forest green lines) */
.nav-toggle{
  display:none; /* shown at <= 900px */
  border:0; background:transparent; padding:8px;
  color:var(--clr-primary-dark); cursor:pointer;
}
.nav-toggle .burger,
.nav-toggle .burger::before,
.nav-toggle .burger::after{
  content:""; display:block; width:26px; height:2px; background:var(--clr-primary-dark);
  border-radius:2px; position:relative;
}
.nav-toggle .burger::before{ top:-7px; position:absolute }
.nav-toggle .burger::after{ top:7px; position:absolute }

/* Mobile menu (overlay from the right) */
@media (max-width: 900px){
  .nav-toggle{ display:inline-flex; margin-left:auto }
  .site-nav{
    position:fixed; top:64px; right:16px; bottom:auto; left:auto;
    display:none; background:#fff; border:1px solid #ececec; border-radius:14px;
    padding:12px; box-shadow:var(--shadow); z-index:60;
    min-width: min(80vw, 320px);
  }
  .site-nav.open{ display:block }
  .site-nav ul{ flex-direction:column; align-items:flex-start; gap:10px }
  body.nav-open{ overflow:hidden }
}


/* --- Header alignment override: hamburger left of availability badge, darker --- */
@media (max-width: 900px){
  .nav-toggle{ margin-left:0; order:2 }
  .availability-badge{ order:3; margin-left:8px }
  .logo{ order:1 }
}


/* --- Mobile header definitive layout: burger | logo | badge on one line --- */
@media (max-width: 900px){
  .site-header{
    display:grid;
    grid-template-columns:auto 1fr auto;
    grid-template-areas: "burger logo badge";
    align-items:center;
  }
  .nav-toggle{ grid-area:burger; justify-self:start; margin-left:0 }
  .logo{
    grid-area:logo; justify-self:center; align-self:center;
    position:static; transform:none; display:flex; align-items:center;
  }
  .logo img{ height:32px; width:auto; display:block }
  .logo span{ display:none } /* hide brand text on mobile */
  .availability-badge{ grid-area:badge; justify-self:end; margin-left:0 }
}