:root{
  --brown:#4A3426;
  --green:#2F5D3A;
  --ivory:#F7F3EA;
  --charcoal:#141414;
  --muted: rgba(20,20,20,.78);
  --white:#fff;
  --container:1080px;
}

*{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
  overflow-y:scroll;
  scrollbar-gutter:stable;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  min-height:100vh;
  position:relative;
  display:flex;
  flex-direction:column;
  font-family:'Georgia', serif;
  font-size:18px;
  line-height:1.6;
  color:var(--charcoal);
  overflow-x:hidden;
  background:url("../img/bg-forest-dark.jpg") center top / cover no-repeat fixed;
}

body > *{
  position:relative;
  z-index:1;
}

img{
  max-width:100%;
  height:auto;
  display:block;
}

a{
  color:inherit;
  text-decoration:none;
}

p{
  line-height:1.7;
  color:var(--muted);
  margin:.35rem 0;
}

h1,h2,h3{
  line-height:1.15;
  color:var(--charcoal);
  margin:.35rem 0 .65rem;
}

h1{ font-size:clamp(30px, 4vw, 42px); }
h2{ font-size:clamp(24px, 3vw, 32px); }
h3{ font-size:clamp(20px, 2.2vw, 24px); }

.container{
  width:min(var(--container), calc(100% - 2.2rem));
  margin:0 auto;
}

main{
  flex:1 0 auto;
  margin-top:90px;
}

.simpleSection{
  padding:1.2rem 0 3rem;
  text-align:center;
}

.centerContent{
  text-align:center;
}

.readPanel{
  background:transparent !important;
  box-shadow:none !important;
  border:none !important;
  padding:0;
}

.topHeader{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1000;
  padding:.95rem 0;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(10px);
  border:3px solid #000;
}

.topNav{
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.topNavGrid{
  display:grid !important;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:0;
}

.topNavGrid .navLeft{ justify-self:start; }
.topNavGrid .topBrandCenter{ justify-self:center; }

.topNavGrid .navRight{
  justify-self:end;
  display:flex;
  align-items:center;
  gap:14px;
}

.topLinks{
  display:flex;
  align-items:center;
  gap:28px;
  margin-left:auto;
}

.topLinks a{
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:.82rem;
  color:rgba(20,20,20,.88);
  padding:.35rem 0;
}

.topLinks a:hover{
  opacity:.8;
}

.headerLogo{
  height:44px;
  width:auto;
  display:block;
}

.burger{
  display:none;
  border:1px solid rgba(20,20,20,.22);
  border-radius:999px;
  padding:.7rem .9rem;
  min-width:44px;
  min-height:44px;
  font-weight:900;
  color:rgba(20,20,20,.9);
  background:rgba(20,20,20,.04);
  cursor:pointer;
}

.mobileMenu{
  display:none;
}

.mobileMenu.open{
  display:block;
  margin-top:.75rem;
  padding:.9rem 1rem;
  border-radius:16px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(20,20,20,.10);
  box-shadow:0 18px 44px rgba(0,0,0,.10);
}

.mobileMenu a{
  display:block;
  padding:.7rem 0;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:.82rem;
  color:rgba(20,20,20,.88);
}

.siteFooter{
  position:relative;
  bottom:auto;
  left:auto;
  right:auto;
  z-index:1000;
  margin-top:auto;
  padding:1.1rem 0;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(10px);
  border:3px solid #000;
}

.siteFooter .footerRow{
  display:flex;
  flex-wrap:wrap;
  gap:.9rem 1.2rem;
  align-items:center;
  justify-content:center;
  text-align:center;
}

.siteFooter a{
  text-decoration:underline;
  text-underline-offset:3px;
}

.glassBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:1rem 2rem;
  border-radius:40px;
  border:2px solid rgba(255,255,255,.85);
  background:rgba(255,255,255,.15);
  backdrop-filter:blur(10px);
  color:#fff;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  transition:.3s ease;
  cursor:pointer;
}

.glassBtn:hover{
  background:rgba(255,255,255,.35);
  transform:translateY(-2px);
}

.lbOverlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.88);
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  z-index:999999;
}

.lbOverlay.open{
  display:flex;
}

.lbOverlay .lbPanel{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  max-width:min(92vw, 1100px);
  max-height:90vh;
  width:auto;
}

.lbOverlay .lbPanel img,
.lbOverlay .lbImage{
  display:block;
  max-width:90vw;
  max-height:78vh;
  width:auto;
  height:auto;
  border-radius:18px;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
  background:transparent;
  margin:0 auto;
}

.lbOverlay .lbCaption,
.lbOverlay .lbCap{
  display:block;
  width:100%;
  margin-top:14px;
  text-align:center;
  color:#fff;
  font-family:'Cormorant Garamond', serif;
  font-size:20px;
  line-height:1.4;
  text-shadow:0 2px 12px rgba(0,0,0,.55);
}

.lbClose,
.lbPrev,
.lbNext{
  position:fixed;
  z-index:1000001;
  width:52px;
  height:52px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  background:rgba(0,0,0,.45);
  border:1px solid rgba(255,255,255,.22);
  cursor:pointer;
  font-size:34px;
}

.lbClose{
  top:18px;
  right:22px;
  line-height:1;
}

.lbPrev,
.lbNext{
  top:50%;
  transform:translateY(-50%);
}

.lbPrev{ left:22px; }
.lbNext{ right:22px; }

.lbClose:hover,
.lbPrev:hover,
.lbNext:hover{
  background:rgba(0,0,0,.65);
}

.galleryTiles{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
  gap:14px;
}

.galleryTiles .tile{
  display:block;
  width:100%;
  min-width:0;
  aspect-ratio:1 / 1;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  box-shadow:0 16px 40px rgba(0,0,0,.28);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.galleryTiles .tile:hover{
  transform:translateY(-4px);
  border-color:rgba(255,255,255,.24);
  box-shadow:0 22px 56px rgba(0,0,0,.35);
}

.galleryTiles .tile img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  background:transparent;
  transition:transform .25s ease;
  will-change:transform;
}

.galleryTiles .tile:hover img{
  transform:scale(1.04);
}

@keyframes fadeInUp{
  from{
    opacity:0;
    transform:translateY(20px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@media (max-width: 860px){
  body{ background-attachment:scroll; }
  .topNavGrid .topLinks{ display:none !important; }
  .burger{ display:inline-flex !important; }
}

@media (max-width: 560px){
  body{ font-size:16px; }
  .container{ width:min(var(--container), calc(100% - 1.25rem)); }
  .headerLogo{ height:40px; }
  .galleryTiles{
    grid-template-columns:repeat(2, 1fr);
    gap:8px;
  }
  .siteFooter .footerRow{ flex-direction:column; gap:.45rem; }
  .lbPrev{ left:10px; }
  .lbNext{ right:10px; }

  .lbOverlay .lbCaption,
  .lbOverlay .lbCap{
    font-size:18px;
  }
}
