:root{
  --brand:#141414; --brand-600:#2b2b2b;
  --accent:#D8E52B; --accent-600:#c6d418;
  --text:#141414; --muted:#8A8A8A;
  --bg:#ffffff; --surface:#F5F5F5; --border:#E7E7E7; --line:#141414;
  --radius:24px; --radius-pill:9999px;
  --font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* Fixed header: transparent over hero, opaque after scroll */
.site-header{position:fixed;top:0;left:0;right:0;z-index:60;color:#fff;
  background:transparent;transition:background-color .3s ease,box-shadow .3s ease,backdrop-filter .3s ease,color .3s ease}
.site-header a{color:inherit}
.site-header.is-scrolled{color:var(--text);background:rgba(255,255,255,.88);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--border)}
body[data-header="solid"] .site-header{color:var(--text)}
body[data-header="solid"] .site-header{background:rgba(255,255,255,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--border)}

/* Anchor offset for fixed header */
.section-anchor{scroll-margin-top:96px}

/* Hairline border that follows the current text colour (works in header on any bg) */
.current-hairline{border-color:color-mix(in srgb, currentColor 24%, transparent)}

/* Scroll-snap carousels without visible scrollbar */
.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}
.no-scrollbar::-webkit-scrollbar{display:none}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .6s cubic-bezier(.22,.61,.36,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *{animation-duration:.001ms !important;transition-duration:.001ms !important}
}

/* Masonry-ish gallery tiles keep their shadows; tiles are not clipped by parent overflow */

/* web components */
site-modal .zc-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55)}
site-modal .zc-modal-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;
  border-radius:var(--radius);max-width:560px;width:min(calc(100% - 32px),560px);max-height:88vh;overflow:hidden;
  display:flex;flex-direction:column;z-index:1}
site-modal .zc-modal-body{padding:28px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
site-modal .zc-modal-x{position:absolute;top:12px;right:14px;border:0;background:none;font-size:26px;line-height:1;cursor:pointer;color:var(--muted);z-index:2}
ui-select{position:relative;display:block}
ui-select .zc-select-btn{width:100%;text-align:left;display:flex;justify-content:space-between;gap:8px;
  padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer}
ui-select .zc-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zc-select-panel{min-width:160px;max-height:280px;overflow:hidden;background:#fff;border:1px solid var(--border);
  border-radius:12px;box-shadow:0 12px 30px rgba(15,23,42,.14)}
.zc-select-panel[hidden]{display:none}
.zc-select-list{max-height:268px;overflow-y:auto;margin:0;padding:6px;list-style:none;scrollbar-width:thin}
.zc-select-list::-webkit-scrollbar{width:8px}
.zc-select-list::-webkit-scrollbar-thumb{background:rgba(148,163,184,.4);border-radius:999px}
.zc-select-list li{padding:9px 12px;border-radius:8px;cursor:pointer}
.zc-select-list li:hover{background:var(--surface)}
ui-datepicker{position:relative;display:block}
ui-datepicker .zc-dp-btn{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:8px;
  padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer}
ui-datepicker .zc-dp-value{color:var(--text)}
ui-datepicker .zc-dp-caret{color:var(--muted)}
.zc-dp-panel{width:288px;max-width:calc(100vw - 2rem);padding:14px;background:#fff;border:1px solid var(--border);
  border-radius:14px;box-shadow:0 18px 40px rgba(15,23,42,.14);overflow:hidden}
.zc-dp-panel[hidden]{display:none}
.zc-dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.zc-dp-title{font-weight:600;color:var(--text)}
.zc-dp-nav{width:32px;height:32px;border:0;border-radius:8px;background:none;font-size:20px;line-height:1;cursor:pointer;color:var(--muted)}
.zc-dp-nav:hover{background:var(--surface)}
.zc-dp-week,.zc-dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.zc-dp-week span{font-size:12px;color:var(--muted);padding:4px 0}
.zc-dp-day{width:32px;height:32px;margin:0 auto;border:0;border-radius:8px;background:none;cursor:pointer;color:var(--text);font-size:14px}
.zc-dp-day:hover:not(:disabled){background:var(--surface)}
.zc-dp-other{color:var(--muted)}
.zc-dp-past{color:var(--border);cursor:default}
.zc-dp-today{box-shadow:inset 0 0 0 1px var(--brand)}
.zc-dp-selected{background:var(--brand);color:#fff;font-weight:600}
.zc-dp-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.zc-dp-clear{border:0;background:none;color:var(--muted);cursor:pointer}
.zc-dp-today-btn{border:0;background:none;color:var(--brand);font-weight:600;cursor:pointer}
ui-timepicker{position:relative;display:block}
ui-timepicker .zc-tp-btn{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:8px;
  padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer}
ui-timepicker .zc-tp-value{color:var(--text)}
ui-timepicker .zc-tp-caret{color:var(--muted)}
.zc-tp-panel{width:190px;padding:8px;background:#fff;border:1px solid var(--border);border-radius:14px;
  box-shadow:0 18px 40px rgba(15,23,42,.14);overflow:hidden}
.zc-tp-panel[hidden]{display:none}
.zc-tp-list{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;max-height:240px;overflow-y:auto;scrollbar-width:thin}
.zc-tp-list::-webkit-scrollbar{width:8px}
.zc-tp-list::-webkit-scrollbar-thumb{background:rgba(148,163,184,.4);border-radius:999px}
.zc-tp-slot{border:0;border-radius:8px;background:none;padding:8px 4px;cursor:pointer;color:var(--text);font-size:14px}
.zc-tp-slot:hover{background:var(--surface)}
.zc-tp-selected{background:var(--brand);color:#fff;font-weight:600}
ui-lightbox{display:block}
ui-lightbox img.zc-lb-thumb{cursor:zoom-in}
.zc-lb-overlay{position:fixed;inset:0;z-index:130;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;background:rgba(0,0,0,.9)}
.zc-lb-overlay[hidden]{display:none}
.zc-lb-img{max-width:min(100%,1100px);max-height:min(72vh,100%);border-radius:var(--radius);object-fit:contain}
.zc-lb-close{position:absolute;top:16px;right:20px;width:40px;height:40px;border:0;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:24px;line-height:1;cursor:pointer}
.zc-lb-close:hover{background:rgba(255,255,255,.22)}
.zc-lb-prev,.zc-lb-next{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.zc-lb-prev:hover,.zc-lb-next:hover{background:rgba(255,255,255,.22)}
.zc-lb-prev{left:16px}
.zc-lb-next{right:16px}
.zc-lb-thumbs{display:flex;gap:8px;max-width:100%;overflow-x:auto}
.zc-lb-dot{width:64px;height:44px;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:none;cursor:pointer;opacity:.6}
.zc-lb-dot img{width:100%;height:100%;object-fit:cover}
.zc-lb-dot-active{border-color:#fff;opacity:1}
