/* Ever After. One visual world, matched to the previous site:
   an off-white page with a wide matching border, a high-contrast serif for headings and text,
   a geometric sans for navigation and small capitals, full-bleed photo sections. */
/* Open-licensed stand-ins for the previous site's Adobe fonts (Freight Big Pro, Futura PT),
   chosen and scaled so text runs to the same widths and line heights. */
@font-face { font-family: "EA Serif"; src: url(/fonts/LibreCaslonDisplay-normal-400.woff2) format("woff2"); font-weight: 400 600; font-style: normal; font-display: swap; size-adjust: 102%; ascent-override: 92%; descent-override: 34%; line-gap-override: 0%; }
@font-face { font-family: "EA Serif"; src: url(/fonts/LibreCaslonText-normal-700.woff2) format("woff2"); font-weight: 700; font-style: normal; font-display: swap; size-adjust: 88%; }
@font-face { font-family: "EA Serif"; src: url(/fonts/LibreCaslonText-italic-400.woff2) format("woff2"); font-weight: 400 700; font-style: italic; font-display: swap; size-adjust: 88%; }
/* Old-style figures, as the previous typeface had */
@font-face { font-family: "EA Serif"; src: url(/fonts/Figures.woff2) format("woff2"); font-weight: 400 600; font-style: normal; font-display: swap; unicode-range: U+30-39, U+24; size-adjust: 106%; }
@font-face { font-family: "EA Sans"; src: url(/fonts/Jost-normal.woff2) format("woff2"); font-weight: 400 500; font-style: normal; font-display: swap; size-adjust: 92.6%; }
:root {
  --bg: #fafafa;
  --ink: #000000;
  --head: #404040;
  --muted: rgba(0, 0, 0, 0.6);
  --accent: #c6c5b3;
  --serif: "EA Serif", "Times New Roman", serif;
  --sans: "EA Sans", "Century Gothic", Arial, sans-serif;
  --b: 50px;      /* site border and section side padding */
  --hpad: 37.5px; /* header side padding */
  color-scheme: light;
}
@media (max-width: 960px) { :root { --b: 48px; --hpad: 35.5px; } }
@media (max-width: 768px) { :root { --b: 36px; --hpad: 23.5px; } }
@media (max-width: 640px) { :root { --b: 20px; --hpad: 7.5px; } }

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 500 19px/1.6 var(--serif); letter-spacing: 0.02em; word-spacing: 0em; -webkit-text-stroke: 0.3px currentColor; }
.html h1, .html h3, .Header-branding, .Header-nav, .html h2, .poster-title, .form .button { -webkit-text-stroke: 0; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid var(--head); outline-offset: 2px; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; letter-spacing: inherit; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
img { max-width: 100%; }

.Site { border: var(--b) solid var(--bg); }
.Site-inner { position: relative; }

/* Header */
.Header--bottom { background: var(--bg); color: var(--head); }
.Header--overlay { position: absolute; top: 0; left: 0; right: 0; z-index: 1000; background: transparent; color: #fff; }
.Header-inner { display: flex; align-items: center; max-width: 1325px; margin: 0 auto; padding: 40px var(--hpad) 0; }
.Header-side { flex: 1 1 0; min-width: 0; text-align: left; }
.Header-branding { display: inline-block; padding: 10px 12.5px; font: 400 30px/1 var(--serif); letter-spacing: 0.04em; white-space: nowrap; }
.Header-nav { flex: 0 1 auto; padding: 10px 12.5px; font: 400 15px/1 var(--sans); letter-spacing: 0.06em; text-align: center; white-space: nowrap; }
.Header-nav-inner { margin: -9.27px -12px; }
.Header-nav-item { display: inline-block; vertical-align: middle; margin: 0 12px; padding: 9.27px 0; transition: opacity 0.17s ease-in-out; }
.Header-nav-item:hover { opacity: 0.6; }
/* When the menu would run into the name, the header falls back to three equal columns and the menu wraps */
.Header.nc-collapse .Header-side { flex: 0 0 33.3333%; }
.Header.nc-collapse .Header-nav { flex: 0 0 33.3333%; white-space: normal; }

.page-index-plain .Header-inner { padding-bottom: 40px; }
.Mobile { display: none; }

/* Stacked index sections */
.Index-page { position: relative; overflow: hidden; background: var(--bg); }
.Index-page--has-image { background: #000; color: #fff; }
.Index-page-content { position: relative; z-index: 2; max-width: 1325px; margin: 0 auto; padding: 90px var(--b); }
.Index-page--has-image .Index-page-content { padding-top: 240px; padding-bottom: 240px; }
@media (max-width: 1280px) { .Index-page--has-image .Index-page-content { padding-top: 180px; padding-bottom: 180px; } }
@media (max-width: 960px) { .Index-page--has-image .Index-page-content { padding-top: 120px; padding-bottom: 120px; } }
.Index-page-image { position: absolute; inset: 0; margin: 0; container-type: size; }
.Index-page-image::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(0, 0, 0, 0.125); }
.Index-page-image img {
  position: absolute; max-width: none;
  --w: max(100cqw, calc(100cqh * var(--ar)));
  --h: max(100cqh, calc(100cqw / var(--ar)));
  width: var(--w); height: var(--h);
  left: clamp(calc(100cqw - var(--w)), calc(50cqw - var(--fx) * var(--w)), 0px);
  top: clamp(calc(100cqh - var(--h)), calc(50cqh - var(--fy) * var(--h)), 0px);
}
/* First photo section fills the screen under the overlaid header */
.page[data-overlay="1"] .Index-page--first { padding-top: var(--header-h, 90px); }
.page[data-overlay="1"] .Index-page--first .Index-page-content { min-height: calc(100vh - 2 * var(--b) - var(--header-h, 90px)); display: flex; flex-direction: column; justify-content: center; }
.Index-page-scroll-indicator { position: absolute; bottom: 0; left: 50%; z-index: 3; transform: translateX(-50%); line-height: 0; }
.Index-page-scroll-indicator-line { width: 1px; height: 45px; background: #fff; }

/* Regular pages */
.Main { background: var(--bg); }
.Main-content { max-width: 1325px; margin: 0 auto; padding: 80px var(--b); }

/* 12 column grid */
.layout { margin: 0 -17px; }
.row { display: flex; flex-wrap: wrap; }
.col { min-width: 0; }
.blk { padding: 17px; }
.blk.top { padding-top: 0; }
.blk.top.only { padding-bottom: 0; }
.spacer.sized::before { content: ""; display: block; height: calc(var(--v) * 34px); }
.spacer:not(.sized)::before { content: ""; display: block; box-sizing: content-box; height: 30.4px; padding-bottom: calc(var(--r) * 1%); }

/* Text */
.html { overflow-wrap: break-word; }
.html h1, .html h2, .html h3, .html p { white-space: pre-wrap; margin: 1em 0; }
.html h1 { font: 400 80px/1 var(--serif); letter-spacing: 0.02em; color: var(--head); margin: 0; }
.html h2 { font: 400 30px/1.2 var(--sans); letter-spacing: 0.15em; text-transform: lowercase; color: var(--muted); margin: 0.83em 0; }
.html h3 { font: 400 30px/1 var(--serif); letter-spacing: 0.02em; color: rgba(64, 64, 64, 0.9); }
.html a { color: rgba(64, 64, 64, 0.85); }
.html a:hover { color: rgba(64, 64, 64, 0.43); }
.html .e::before { content: "\200b"; }
.html > :first-child { margin-top: 0; }
.html > :last-child { margin-bottom: 0; }
.Index-page--has-image .html h1, .Index-page--has-image .html h2, .Index-page--has-image .html h3, .Index-page--has-image .html a { color: #fff; }
.Footer .html, .Footer .html a { color: var(--muted); }
.c { text-align: center; }
.r { text-align: right; }

/* Images */
figure.img { margin: 0 auto; position: relative; }
.imgbox { display: block; position: relative; overflow: hidden; height: 0; }
.imgbox img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.imglink { display: block; }
figcaption.caption { padding-top: 18px; font-size: 12px; line-height: 1.68; }
figcaption.caption p { margin: 1em 0; }
figcaption.caption > :first-child { margin-top: 0; }
figcaption.caption > :last-child { margin-bottom: 0; }
.poster { container-type: inline-size; }
.poster-title { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; pointer-events: none;
  font: 400 6.97cqw/1.25 var(--serif); letter-spacing: 0.06em; color: #fff; }
.poster-title p { margin: 0; }
.poster-title a { pointer-events: auto; color: rgba(255, 255, 255, 0.96); }

.rule hr { border: 0; height: 1px; margin: 0; background: #e6e6e6; }
.social { text-align: center; line-height: 0; }
.social-icon { display: inline-block; width: 20px; height: 20px; }
.social-icon svg { display: block; width: 20px; height: 20px; fill: none; stroke: #000; stroke-width: 1.6; }
.social-icon:hover svg { opacity: 0.6; }
.mapbox { display: flex; align-items: flex-end; position: relative; aspect-ratio: 709 / 180; background: #ececec; }
.pin { position: absolute; left: 50%; top: 50%; width: 22px; height: 22px; margin: -28px 0 0 -11px; background: #232323; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }
.pin::after { content: ""; position: absolute; left: 7px; top: 7px; width: 8px; height: 8px; border-radius: 50%; background: #fff; }
.maplabel { margin: 6px; padding: 3px 7px; background: #fff; font: 400 10px/1.3 var(--sans); letter-spacing: 0.02em; color: var(--head); -webkit-text-stroke: 0; }

/* Gallery: one large photo and two small ones per band, alternating sides */
.Index-gallery { background: var(--bg); overflow: hidden; padding: var(--b) 0 0 var(--b); }
.Index-gallery-wrapper { margin: 0 calc(-1 * var(--b)); position: relative; }
.Index-gallery-inner::after { content: ""; display: table; clear: both; }
.Index-gallery-item { display: block; float: left; width: 33.3333%; aspect-ratio: 1; padding: 0 var(--b) var(--b) 0; cursor: zoom-in; }
.Index-gallery-item.big { width: 66.6667%; }
.Index-gallery-item.half { width: 50%; }
.Index-gallery-item.right { float: right; }
.Index-gallery-item-inner { display: block; position: relative; width: 100%; height: 100%; overflow: hidden; }
.Index-gallery-item img { position: absolute; inset: -1px; width: calc(100% + 2px); height: calc(100% + 2px); max-width: none; object-fit: cover; display: block; }

/* Contact form */
.form { font-size: 19px; line-height: normal; }
.form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-wrap: wrap; column-gap: 10px; }
.form legend { padding: 0; }
.form .field { flex: 1 1 0; min-width: 0; margin-bottom: 18px; }
.form .cap { display: flex; gap: 9px; padding: 7px 0 2px; font-size: 12px; line-height: 15px; }
.form .title { display: block; padding-bottom: 4px; }
.form .req { font-size: 12px; opacity: 0.6; }
.form .title .req { margin-left: 8.5px; }
.form .form-item { margin-bottom: 18px; }
.form fieldset.form-item { margin-bottom: 0; }
.form input, .form textarea { display: block; width: 100%; height: 46px; padding: 10px; border: 1px solid #a9a9a9; border-radius: 0; background: var(--bg); color: var(--ink); font: 500 19px/normal var(--serif); letter-spacing: normal; }
.form textarea { height: 100px; min-height: 100px; resize: vertical; margin-bottom: 5px; }
.form .button { display: inline-block; padding: 19px 47.5px; border: 2px solid var(--accent); color: var(--accent); font: 400 19px/30.4px var(--sans); letter-spacing: 0.06em; transition: background-color 0.17s, color 0.17s; }
.form .button:hover { background: var(--accent); color: #1d1d1d; }
.form-note { margin: 14px 0 0; font-size: 16px; line-height: 1.5; color: var(--head); }
.form .bad { border-color: #b00020; }

/* Footer */
.Footer { background: rgba(224, 224, 224, 0.1); }
.Footer-inner { max-width: 1325px; margin: 0 auto; padding: var(--b); }
.Footer-middle { margin-bottom: 20.5px; }
.Footer-nav { margin-right: -15px; padding: 20px 0; text-align: center; font: 500 15px/1.5 var(--serif); letter-spacing: 0.06em; }
.Footer-nav-item { display: inline-block; padding-right: 15px; color: var(--muted); transition: color 0.15s ease-out; }
.Footer-nav-item:hover { color: rgba(0, 0, 0, 0.3); }

dialog#lb { border: 0; padding: 0; background: #111; max-width: 94vw; }
dialog#lb::backdrop { background: rgba(0, 0, 0, 0.88); }
dialog#lb img { display: block; max-width: 94vw; max-height: 90vh; }
#lb-close { position: absolute; top: 8px; right: 8px; padding: 6px 12px; background: rgba(0, 0, 0, 0.6); color: #fff; font: 400 13px/1 var(--sans); letter-spacing: 0.06em; }

/* Phone layout */
@media (max-width: 640px) {
  .Site { border-top: 0; margin-top: 56px; margin-bottom: 16px; }
  .Header--bottom { display: none; }
  .Mobile { display: block; }
  .Mobile-bar--top { position: fixed; top: 0; left: 0; right: 0; z-index: 1001; display: flex; align-items: center; justify-content: space-between; height: 56px; padding: 8px 12px; background: var(--bg); color: var(--head); }
  .Mobile-bar-branding { padding: 8px; font: 400 24px/1 var(--serif); letter-spacing: 0.02em; color: rgba(64, 64, 64, 0.85); -webkit-text-stroke: 0; }
  .Mobile-bar-menu { padding: 8px; width: 41px; height: 23px; position: relative; }
  .Mobile-bar-menu span, .Mobile-bar-menu span::before, .Mobile-bar-menu span::after { content: ""; position: absolute; top: 9px; width: 5px; height: 5px; border-radius: 50%; background: var(--head); }
  .Mobile-bar-menu span { left: 18px; }
  .Mobile-bar-menu span::before { top: 0; left: -10px; }
  .Mobile-bar-menu span::after { top: 0; left: 10px; }
  .Mobile-overlay { position: fixed; inset: 0; z-index: 1002; background: var(--bg); overflow: auto; }
  .Mobile-overlay-nav { width: 330px; max-width: 100%; padding: 36px; text-align: left; }
  .Mobile-overlay-nav-item { display: block; padding-bottom: 0.618em; font: 400 28px/1 var(--serif); letter-spacing: 0.02em; color: rgba(64, 64, 64, 0.85); -webkit-text-stroke: 0; }
  .Mobile-overlay-close { position: absolute; top: 0; right: 0; width: 60px; height: 60px; }
  .Mobile-overlay-close::before, .Mobile-overlay-close::after { content: ""; position: absolute; left: 20px; top: 29px; width: 20px; height: 2px; background: var(--head); transform: rotate(45deg); }
  .Mobile-overlay-close::after { transform: rotate(-45deg); }
  .page[data-overlay="1"] .Index-page--first { padding-top: 0; }
  .page[data-overlay="1"] .Index-page--first .Index-page-content { min-height: calc(100vh - 56px - var(--b)); }
  .Index-page-content { padding-top: 60px; padding-bottom: 60px; }
  .Index-page--has-image .Index-page-content { padding-top: 60px; padding-bottom: 60px; }
  .Main-content { padding-top: 60px; padding-bottom: 60px; }
  .col { width: 100% !important; }
  .blk.top { padding-top: 17px; }
  .blk.top.only { padding-bottom: 17px; }
  .spacer.mhide { display: none; }
  .html h1 { font-size: 32px; letter-spacing: 0.00025em; }
  .html h2 { font-size: 28px; letter-spacing: 0.005em; }
  .html h3 { font-size: 24px; letter-spacing: 0.00067em; }
  .Index-gallery-item, .Index-gallery-item.big, .Index-gallery-item.half { width: 100%; float: none; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* Live map on the deployed site */
.mapbox iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

