:root{--paper:#f8f5ee;--ink:#262b21;--olive:#30392a;--line:#d8d5c9;--accent:#dfbf8a;--serif:"Cormorant Garamond",Georgia,serif;--sans:"Manrope",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 var(--sans)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}[hidden]{display:none!important}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #ab783c;outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:.98}h1{font-size:clamp(4rem,8.4vw,9rem);letter-spacing:-.052em}h2{font-size:clamp(3.4rem,7vw,7rem);letter-spacing:-.052em}h3{font-size:clamp(2rem,3vw,3rem);letter-spacing:-.045em}em{font-weight:500}.wrap{width:min(1320px,calc(100% - 112px));margin-inline:auto}
.top{display:grid;grid-template-rows:auto 1fr auto;min-height:min(850px,100svh);min-height:clamp(675px,94svh,1050px);color:#fff9ed;background:linear-gradient(180deg,rgba(21,23,15,.48),rgba(21,23,15,.36) 24%,rgba(21,23,15,.5) 76%,rgba(21,23,15,.72)),#43372a url(assets/hero.jpg) center 53%/cover no-repeat}.nav{min-height:99px;border-bottom:1px solid #fff8e853;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}.wordmark{font:600 48px/.73 var(--serif);letter-spacing:-.075em;justify-self:start;display:inline-block;padding-block:6px}.dot{color:var(--accent)}.wordmark small{display:block;font:700 8px/1 var(--sans);letter-spacing:.23em;margin:12px 0 0 3px}.navlinks{display:flex;gap:34px;font-size:13px}.navlinks a:hover,.footer a:hover{text-decoration:underline;text-underline-offset:5px}.outline{justify-self:end;padding:11px 16px;border:1px solid #fff8e888;font-size:12px;white-space:nowrap;transition:background .2s}.outline:hover{background:#fff8e82a}.outline span,.button span[aria-hidden]{margin-left:12px}
.hero{align-self:center;text-align:center;padding:48px 0 58px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.19em;line-height:1.5;margin-bottom:21px}.hero .eyebrow{display:flex;align-items:center;justify-content:center;gap:15px}.hero .eyebrow span{width:25px;height:1px;background:var(--accent)}.hero h1 em{color:#f5e3bf}.hero-copy{margin:25px auto 28px;max-width:520px;color:#fff9ee;font-size:15px}.button{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 23px;font:700 13px/1.35 var(--sans);transition:background .2s,color .2s}.light{background:#f4ead5;color:#282c22}.light:hover{background:#fff8e8}.dark{background:var(--olive);color:var(--paper)}.dark:hover{background:#45533b}.hero-foot{min-height:63px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #fff8e84f;font-size:10px;letter-spacing:.18em}.hero-foot a span{margin-left:10px}
.section{padding-block:clamp(65px,8vw,124px)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:37px}.section-head>p{max-width:360px;padding-bottom:4px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}.cards article{display:flex;flex-direction:column}.card-image{position:relative;overflow:hidden;aspect-ratio:1.08;background:#444436}.card-image img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .6s}.cards article:hover img{transform:scale(1.045)}.card-image span{position:absolute;top:13px;left:13px;background:var(--paper);padding:5px 9px;font-size:9px;letter-spacing:.14em;font-weight:700}.cards h3{margin:18px 0 8px}.cards p{padding-right:12px;margin-bottom:19px;max-width:365px}.cards a{align-self:start;margin-top:auto;font-size:13px;font-weight:700;border-bottom:1px solid;padding-bottom:3px}.cards a span{margin-left:5px}
.approach{background:var(--olive);color:#f8f3e8}.approach-inner,.brief-inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,7vw,125px);padding-block:clamp(65px,8vw,115px)}.approach em{color:#e6c994}.principles>div{padding:20px 0;border-top:1px solid #ffffff45}.principles h3{margin-bottom:10px}.principles p{max-width:540px;color:#efeadc}.steps{margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);list-style:none;gap:19px}.steps li{border-top:1px solid var(--line);padding:15px 0}.steps span{font-size:12px;font-weight:700;color:#756342}.steps h3{margin:12px 0 8px}.steps p{max-width:320px}
.brief{background:#e8e7db}.brief-inner>div>p:last-child{max-width:380px;margin-top:21px}.brief form{background:var(--paper);padding:clamp(22px,4vw,48px);min-width:0}.form-progress{font-size:10px;letter-spacing:.18em;font-weight:700;margin-bottom:17px;color:#5d634f}fieldset{margin:0;padding:0;border:0;min-width:0}legend{font:600 clamp(2.2rem,3.8vw,3.6rem)/1 var(--serif);margin-bottom:18px}.choices,.fields{display:grid;gap:10px}.choices label{position:relative;cursor:pointer}.choices input{position:absolute;opacity:0}.choices span{display:block;border:1px solid var(--line);padding:10px 13px}.choices input:checked+span{background:#e3e6d8;border-color:#56624a}.choices input:focus-visible+span{outline:2px solid #ab783c;outline-offset:2px}.fields{grid-template-columns:1fr 1fr}.fields.single{grid-template-columns:1fr}.fields label,.result label{font-size:12px;font-weight:700;display:block}.fields input,textarea{border:1px solid var(--line);background:#fffdf8;color:var(--ink);padding:9px;width:100%;min-width:0;margin-top:4px}.fields textarea,textarea{resize:vertical}.controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-top:19px}.back,.download{background:none;color:var(--ink);border:0;padding:7px 0;text-decoration:underline;text-underline-offset:4px;font-size:13px;font-weight:700}.status{margin-top:9px;font-size:13px}.result h3{margin-bottom:14px}
footer{background:#252b21;color:var(--paper)}.footer{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:121px;font-size:13px}.intro{position:fixed;inset:0;z-index:5;display:grid;place-content:center;justify-items:center;gap:25px;background:#30392a;color:var(--paper);font:600 clamp(5rem,12vw,12rem)/.8 var(--serif);letter-spacing:-.075em;animation:intro 1.08s ease-in-out both;pointer-events:none}.intro i{width:105px;height:1px;background:var(--accent);animation:line .72s ease both;transform-origin:left}@keyframes intro{0%,58%{transform:translateY(0);visibility:visible}100%{transform:translateY(-101%);visibility:hidden}}@keyframes line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:950px){.wrap{width:calc(100% - 64px)}.cards h3{font-size:clamp(1.9rem,3.4vw,2.7rem)}}
@media(max-width:680px){.wrap{width:calc(100% - 36px)}.nav{grid-template-columns:1fr auto;min-height:77px}.navlinks{display:none}.wordmark{font-size:40px}.outline{font-size:11px;padding:9px}.outline span{margin-left:4px}.top{min-height:clamp(600px,88svh,760px)}.hero{padding-block:32px 48px}.hero .eyebrow{font-size:9px;gap:7px}.hero .eyebrow span{width:13px}h1{font-size:clamp(3.1rem,11.9vw,5.1rem)}.hero-copy{font-size:14px}.hero-copy br{display:none}.hero-foot{min-height:48px}.hero-foot>span{display:none}.section-head{display:block;margin-bottom:23px}.section-head>p{margin-top:14px}.cards,.steps,.brief-inner,.approach-inner{grid-template-columns:1fr}.cards{gap:36px}.card-image{aspect-ratio:1.34}.steps{gap:6px}.footer{flex-wrap:wrap;min-height:105px;padding-block:15px;gap:14px}.footer>a:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.intro{display:none}*{transition:none!important}}

.wordmark{font-size:clamp(24px,3vw,42px);line-height:.9;letter-spacing:-.055em}
.intro{font-size:clamp(2.75rem,8vw,8rem);letter-spacing:-.055em;text-align:center;padding-inline:18px}

.top{position:relative;isolation:isolate;background:#242a21}
.hero-film{position:absolute;z-index:-1;inset:0 0 0 38%;overflow:hidden}
.hero-film video{width:100%;height:100%;object-fit:contain;display:block}
.hero-film:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#242a21 0%,rgba(36,42,33,.65) 18%,transparent 43%),linear-gradient(180deg,rgba(19,21,15,.35),transparent 22%,transparent 66%,rgba(19,21,15,.58))}
.hero{text-align:left}.hero h1{font-size:clamp(3.65rem,7.2vw,8rem)}.hero .eyebrow{justify-content:flex-start}.hero-copy{margin-left:0}
.film-toggle{position:absolute;z-index:1;bottom:76px;right:24px;padding:8px 12px;color:#fff8e8;background:#252a22;border:1px solid #fff8e880;border-radius:4px;font-size:12px}
@media(max-width:680px){.hero-film{inset:0}.hero-film:after{background:linear-gradient(0deg,#242a21 0%,rgba(24,29,21,.8) 30%,rgba(24,29,21,.36) 72%,rgba(24,29,21,.54))}.hero{text-align:center;align-self:end;padding-bottom:60px}.hero h1{font-size:clamp(3.1rem,11vw,5rem)}.hero .eyebrow{justify-content:center}.hero-copy{margin-inline:auto}.film-toggle{bottom:9px;right:18px}}

.section-nav {
  grid-template-columns: auto 1fr;
  column-gap: 32px;
}
.page-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 12px clamp(18px, 3vw, 46px);
  font-size: 14px;
  font-weight: 600;
}
.page-links a {
  padding: 4px 0;
  text-underline-offset: 5px;
}
.page-links a:hover,
.page-links a[aria-current="page"] {
  text-decoration: underline;
}
.detail-header {
  background: #242a21;
  color: #fff9ee;
}
.detail-main {
  padding-block: clamp(40px, 8vw, 110px);
}
.detail-main h1 {
  margin-top: 26px;
  font-size: clamp(3.25rem, 8vw, 7.5rem);
}
.detail-lead {
  margin-top: 20px;
  max-width: 620px;
  font-size: clamp(1rem, 2vw, 1.2rem);
}
.detail-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 3vw, 36px);
  margin-top: 34px;
}
.detail-cards article {
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.detail-cards h2 {
  margin: 0 0 10px;
  font-size: clamp(1.9rem, 3.4vw, 3rem);
}
.detail-main .button {
  margin-top: 30px;
}
@media (max-width: 680px) {
  .section-nav {
    grid-template-columns: 1fr;
    row-gap: 11px;
    padding-block: 14px;
  }
  .page-links {
    justify-content: flex-start;
    column-gap: 16px;
    row-gap: 4px;
    font-size: 13px;
  }
  .detail-cards {
    grid-template-columns: 1fr;
  }
}

/* Keep the navigation in its own band above the film. */
.detail-header .section-nav {
  min-height: 108px;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px clamp(16px, 4vw, 56px);
  border-bottom-color: #ead4a52e;
}
.top {
  grid-template-rows: 1fr auto;
  min-height: clamp(540px, calc(94svh - 108px), 960px);
}
.heart-brand {
  position: relative;
  display: grid;
  align-content: start;
  justify-items: center;
  width: 164px;
  height: 91px;
  padding: 27px 0 0;
  color: #fff9ed;
  font-size: 28px;
  letter-spacing: -.045em;
  white-space: nowrap;
}
.heart-brand svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  color: #d9b777;
  pointer-events: none;
}
.heart-brand small {
  margin: 6px 0 0;
  font-size: 7px;
  letter-spacing: .16em;
}
@media (max-width: 680px) {
  .detail-header .section-nav {
    min-height: 88px;
    padding-block: 7px;
    column-gap: 10px;
  }
  .heart-brand {
    width: 116px;
    height: 71px;
    padding-top: 22px;
    font-size: 19px;
  }
  .heart-brand small {
    margin-top: 5px;
    font-size: 5px;
  }
  .detail-header .page-links {
    display: grid;
    grid-template-columns: repeat(2, max-content);
    justify-content: end;
    gap: 3px clamp(9px, 3vw, 20px);
    font-size: 12px;
  }
  .top {
    min-height: clamp(520px, calc(88svh - 88px), 760px);
  }
}
@media (max-width: 360px) {
  .detail-header .wrap {
    width: calc(100% - 24px);
  }
  .detail-header .page-links {
    font-size: 11px;
  }
}

.detail-header .page-links {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(15px, 2.2vw, 24px);
  font-weight: 600;
  letter-spacing: .015em;
}
.heart-brand {
  padding-top: 31px;
  font-size: 25px;
}
.heart-brand svg {
  color: #e2c184;
}
.detail-header.home-header .section-nav {
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  gap: 1px;
  padding-block: 8px 12px;
}
.home-header .heart-brand {
  justify-self: center;
}
.detail-header.home-header .page-links {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  column-gap: clamp(10px, 3.4vw, 48px);
}
.home-header .page-links a {
  white-space: nowrap;
}
@media (max-width: 680px) {
  .heart-brand {
    padding-top: 24px;
    font-size: 18px;
  }
  .detail-header.home-header .page-links {
    font-size: clamp(13px, 4.1vw, 20px);
    column-gap: clamp(7px, 3vw, 24px);
  }
  .detail-header:not(.home-header) .page-links {
    font-size: 14px;
  }
}

.heart-brand {
  width: 148px;
  height: 111px;
  padding-top: 37px;
  font-size: 23px;
}
@media (max-width: 680px) {
  .heart-brand {
    width: 108px;
    height: 81px;
    padding-top: 26px;
    font-size: 17px;
  }
}

.invitation-heading {
  display: grid;
  width: min(100%, 720px);
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: clamp(12px, 3vw, 38px);
}
.invitation-rule {
  position: relative;
  height: 11px;
  color: #d9b777;
  background: linear-gradient(to right, transparent, #d9b777a0) left center / 100% 1px no-repeat;
}
.invitation-rule:last-child {
  transform: scaleX(-1);
}
.invitation-rule::before,
.invitation-rule::after {
  position: absolute;
  top: 50%;
  content: "";
  transform: translateY(-50%) rotate(45deg);
}
.invitation-rule::before {
  right: 0;
  width: 8px;
  height: 8px;
  border: 1px solid currentColor;
  background: #242a21;
}
.invitation-rule::after {
  right: 17px;
  width: 4px;
  height: 4px;
  background: currentColor;
}

.service-price {
  margin: 0 0 12px;
  color: #605334;
  font-weight: 700;
}

.venue-cards img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 12px;
  margin-bottom: 18px;
}

.venue-cards h2 {
  font-size: clamp(1.7rem, 2.7vw, 2.5rem);
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.venue-credit {
  display: inline-block;
  margin-top: 8px;
  font-size: .8rem;
}

a.venue-credit {
  text-decoration: underline;
  text-underline-offset: .2em;
}

.venue-alternative {
  margin-top: 28px;
}

.contact-profile {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(18px, 4vw, 44px);
  margin-block: 28px;
}

.contact-profile img {
  display: block;
  width: min(100%, 240px);
  height: auto;
  border-radius: 12px;
}

.contact-profile h2 {
  margin: 0 0 12px;
  font-size: clamp(2rem, 5vw, 3.25rem);
}

.review-form {
  max-width: 620px;
  margin-top: 28px;
}

.review-form .button {
  justify-self: start;
  margin-top: 8px;
}

.contact-profile p {
  margin: 6px 0;
  color: #4b5242;
  font-family: "Cormorant", Georgia, serif;
  font-style: italic;
  font-size: clamp(1.25rem, 2.5vw, 1.55rem);
  font-weight: 500;
}

.contact-profile a {
  text-decoration-skip-ink: none;
  text-decoration: underline;
  text-underline-offset: .2em;
  color: #805323;
  text-decoration-color: #a97c45;
}

@media (max-width: 680px) {
  .detail-header .section-nav {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 4px;
  }

  .detail-header.home-header .page-links,
  .detail-header:not(.home-header) .page-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0 16px;
    font-size: clamp(16px, 4vw, 19px);
  }

  .detail-header .page-links a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  .top {
    min-height: 0;
    grid-template-rows: auto auto auto;
  }

  .hero-film {
    grid-area: 1 / 1;
    position: relative;
    inset: auto;
    z-index: 0;
    aspect-ratio: 16 / 9;
    background: #242a21;
  }

  .hero-film::after {
    background: linear-gradient(0deg, #242a21, transparent 22%);
  }

  .hero {
    align-self: auto;
    padding-block: 20px 32px;
  }

  .hero h1,
  .detail-main h1 {
    font-size: clamp(2.8rem, 12vw, 4.25rem);
  }

  .hero-copy br {
    display: none;
  }

  .brief-inner,
  .brief .fields {
    grid-template-columns: minmax(0, 1fr);
  }

  .brief input:not([type="radio"]),
  .brief textarea,
  .review-form input,
  .review-form textarea {
    font-size: 16px;
  }

  .button {
    min-height: 44px;
  }
  .film-toggle {
    position: relative;
    grid-area: 1 / 1;
    place-self: end end;
    inset: auto;
    margin: 0 12px 12px 0;
    min-height: 44px;
  }
}

.home-services {
  padding-block: clamp(48px, 7vw, 96px);
}

.home-services h2,
.service-detail h2 {
  font-size: clamp(2rem, 4vw, 3.5rem);
}

.home-services h3 {
  margin-bottom: 10px;
}

.home-services a,
.service-detail section p a {
  text-decoration: underline;
  text-underline-offset: .18em;
}

.service-detail h1 {
  max-width: 18ch;
  font-size: clamp(2.8rem, 6vw, 5.5rem);
}

.service-detail section {
  max-width: 720px;
  margin-top: 32px;
  border-top: 1px solid var(--line);
  padding-top: 22px;
}

.service-detail section p {
  margin-top: 12px;
}
