:root{
  --bg:#101014;
  --ivory:#F7F1E6;
  --brass:#A9843F;
  --line:rgba(247,241,230,.14);
  --line-strong:rgba(169,132,63,.55);
  --muted:rgba(247,241,230,.66);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ivory);
  font-family:"Inter",sans-serif;
  font-weight:300;
  font-size:17px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{margin:0;font-weight:400;}
p{margin:0 0 1.1rem;}
ul,ol{list-style:none;margin:0;padding:0;}

.wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 28px;}

.label{
  font-family:"Inter",sans-serif;
  text-transform:uppercase;
  letter-spacing:.3em;
  font-size:.64rem;
  font-weight:400;
  color:var(--muted);
  margin:0 0 1.2rem;
  display:block;
}
.label--brass{color:var(--brass);}

.display{
  font-family:"Playfair Display",serif;
  font-weight:400;
  line-height:1.12;
  letter-spacing:-.01em;
  font-size:clamp(2.1rem,5.2vw,3.5rem);
  margin:0 0 1.6rem;
}
.display--sm{font-size:clamp(1.7rem,3.6vw,2.5rem);}
.display--xs{font-size:1.25rem;margin-bottom:1rem;}
.display--hero{font-size:clamp(2.4rem,7vw,4.6rem);margin-bottom:2rem;}

/* top bar */
.topbar{
  border-bottom:1px solid var(--line);
  position:sticky;top:0;
  background:rgba(16,16,20,.94);
  backdrop-filter:blur(6px);
  z-index:20;
}
.topbar__inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:18px;min-height:82px;flex-wrap:wrap;
}
.wordmark{display:block;line-height:1.15;}
.wordmark__name{
  display:block;
  font-family:"Playfair Display",serif;
  font-size:1.35rem;letter-spacing:.04em;
}
.wordmark__sub{
  display:block;
  text-transform:uppercase;letter-spacing:.3em;
  font-size:.56rem;color:var(--brass);margin-top:4px;
}
.nav{display:flex;gap:30px;align-items:center;}
.nav .label{margin:0;padding:6px 0;border-bottom:1px solid transparent;transition:color .25s,border-color .25s;}
.nav .label:hover{color:var(--brass);border-bottom-color:var(--line-strong);}
.navtoggle{
  display:none;background:none;border:1px solid var(--line);
  color:var(--ivory);padding:9px 16px;cursor:pointer;margin:0;
  border-radius:0;
}

/* sections */
.sec{padding:96px 0;border-bottom:1px solid var(--line);}
.sec--hours{padding-top:110px;}
.lede{max-width:52ch;color:var(--muted);font-size:1.05rem;margin-bottom:3rem;}

/* rows */
.row{
  display:flex;gap:28px;align-items:flex-start;justify-content:space-between;
  padding:30px 0;border-top:1px solid var(--line);
}
.rows .row:last-child{border-bottom:1px solid var(--line);}
.row__main{max-width:70ch;}
.row__title{
  display:block;
  font-family:"Playfair Display",serif;
  font-size:1.22rem;margin-bottom:.5rem;
}
.row__note{display:block;color:var(--muted);font-size:.95rem;}
.row__right{
  white-space:nowrap;
  font-family:"Playfair Display",serif;
  font-size:1.1rem;color:var(--brass);
  letter-spacing:.02em;padding-top:2px;
}

.season{
  margin-top:3rem;max-width:62ch;color:var(--muted);
  border-left:1px solid var(--line-strong);padding-left:24px;
}
.season .label{margin-bottom:.5rem;}

/* photo frame */
.frame{
  margin:62px 0 0;
  border:1px solid var(--line-strong);
  padding:14px;
}
.frame img{width:100%;height:auto;filter:saturate(.72) contrast(1.04);}
.frame figcaption{margin:14px 2px 2px;}

/* ghost cta */
.cta-line{margin-top:48px;}
.ghost{
  display:inline-block;
  border:1px solid var(--line-strong);
  padding:16px 34px;
  text-transform:uppercase;letter-spacing:.3em;font-size:.64rem;
  color:var(--ivory);
  transition:background .3s,color .3s;
  border-radius:0;
}
.ghost:hover{background:var(--brass);color:#101014;}

/* steps */
.steps{margin-top:3rem;}
.step{
  display:flex;gap:30px;align-items:flex-start;
  padding:30px 0;border-top:1px solid var(--line);
}
.step:last-child{border-bottom:1px solid var(--line);}
.step__num{
  font-family:"Playfair Display",serif;
  color:var(--brass);font-size:1.1rem;
  letter-spacing:.12em;min-width:54px;padding-top:4px;
}
.step__title{
  font-family:"Playfair Display",serif;
  font-size:1.18rem;margin-bottom:.5rem;
}
.step p{color:var(--muted);font-size:.95rem;margin:0;max-width:64ch;}

/* hero */
.hero{
  min-height:88vh;
  display:flex;align-items:center;
  text-align:center;
  border-bottom:1px solid var(--line);
  padding:90px 0;
  background:
    radial-gradient(circle at 50% 42%, rgba(169,132,63,.14), rgba(16,16,20,0) 62%);
}
.hero__inner{width:100%;}
.hero__sub{
  max-width:46ch;margin:0 auto;color:var(--muted);
}
.hero .cta-line{margin-top:44px;}

/* contact */
.contact-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:40px;margin-top:2.4rem;
  border-top:1px solid var(--line);padding-top:38px;
}
.contact-col .label{margin-bottom:.8rem;}
.contact-big{
  font-family:"Playfair Display",serif;
  font-size:1.2rem;line-height:1.45;margin-bottom:.7rem;
  word-break:break-word;
}
.contact-big a{border-bottom:1px solid var(--line-strong);}
.contact-big a:hover{color:var(--brass);}
.contact-note{color:var(--muted);font-size:.9rem;margin:0;}

.privacy{
  margin-top:72px;border:1px solid var(--line);
  padding:34px 32px;
}
.privacy p{color:var(--muted);font-size:.9rem;max-width:78ch;}
.privacy p:last-child{margin-bottom:0;}

/* footer */
.foot{padding:34px 0 46px;}
.foot__inner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.foot .label{margin:0;}
.foot a{border-bottom:1px solid var(--line-strong);}
.foot a:hover{color:var(--brass);}

@media (max-width:860px){
  .contact-grid{grid-template-columns:1fr;gap:34px;}
}
@media (max-width:720px){
  body{font-size:16px;}
  .topbar__inner{min-height:70px;}
  .navtoggle{display:block;}
  .nav{
    display:none;width:100%;flex-direction:column;align-items:flex-start;
    gap:0;border-top:1px solid var(--line);padding:8px 0 16px;
  }
  .nav.is-open{display:flex;}
  .nav .label{padding:12px 0;width:100%;}
  .sec{padding:68px 0;}
  .row{flex-direction:column;gap:10px;}
  .row__right{padding-top:0;}
  .step{flex-direction:column;gap:10px;}
  .step__num{padding-top:0;}
  .privacy{padding:26px 20px;}
}