/* philmin.com — layout matched to wedding_final.pdf (1728px design frame).
   Colors and --font-body come from /theme.css (CRM-controlled). */

@font-face {
  font-family: 'Pitch';
  src: url('/static/fonts/Pitch-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Pitch';
  src: url('/static/fonts/Pitch-RegularItalic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Pitch';
  src: url('/static/fonts/Pitch-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Pitch';
  src: url('/static/fonts/Pitch-MediumItalic.woff2') format('woff2');
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Pitch';
  src: url('/static/fonts/Pitch-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Pitch';
  src: url('/static/fonts/Pitch-BoldItalic.woff2') format('woff2');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

* { box-sizing: border-box; }

html, body { margin: 0; padding: 0; }

body {
  background: var(--bg, #FFFEFC);
  color: var(--ink, #000);
  font-family: var(--font-body, 'Pitch'), 'Pitch', ui-monospace, 'Courier New', monospace;
  font-size: 18px;
  line-height: 23px;
  -webkit-font-smoothing: antialiased;
}

.wrap { padding: 47px 40px 110px 45px; }

/* Header: script logo top-left, nav row beneath */
.logo { display: inline-block; }
.logo img { display: block; height: 42px; width: auto; }

nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 70px;
  margin-top: 24px;
}
nav a {
  color: var(--muted, #B2B1AF);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
nav a.active { color: var(--ink, #000); }
nav a:hover { color: var(--ink, #000); }

/* Content column hugs the left edge; width set per page */
main { margin-top: 63px; }
.page-home main { margin-top: 19px; }

h2 {
  font-size: 18px;
  line-height: 23px;
  font-weight: 700;
  margin: 0;
}

p { margin: 5px 0 0; max-width: var(--text-width, none); }
p + p { margin-top: 14px; }
/* spacer from extra blank lines in the CRM; keep normal paragraph
   spacing on either side of it */
.vspace + p { margin-top: 14px; }

/* Gap between sections is per-page data, edited in the CRM ("Section spacing") */
section + section { margin-top: var(--section-gap, 46px); }
.page-stay section p { margin-top: 12px; }
.page-date section p { margin-top: 0; }

/* Images placed in section bodies via ![alt](/media/...) */
section p img {
  display: block;
  width: var(--img-size, auto);
  max-width: min(var(--img-size, 480px), 100%);
  height: auto;
  margin: 8px 0;
}

/* A linked image is an icon: [![Map](/static/img/icons/map.svg)](url) */
section p a img {
  display: inline-block;
  height: var(--img-size, 26px);
  width: auto;
  max-width: none;
  margin: 6px 16px 0 0;
  vertical-align: middle;
}
section p a:hover img { opacity: 0.55; }

/* !gallery blocks: square thumbnails + lightbox (gallery.js) */
.gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 13px;
}
.gallery-item img {
  display: block;
  width: var(--thumb, 140px);
  height: var(--thumb, 140px);
  object-fit: cover;
}
.gallery-item:hover img { opacity: 0.85; }

.lightbox {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: rgba(12, 12, 10, 0.93);
  display: flex;
  align-items: center;
  justify-content: center;
}
.lightbox figure { margin: 0; text-align: center; }
.lightbox img {
  display: block;
  max-width: 86vw;
  max-height: 82vh;
}
.lightbox figcaption {
  color: #c9c8c5;
  font-size: 14px;
  margin-top: 12px;
  min-height: 1em;
}
.lightbox button {
  position: absolute;
  background: none;
  border: none;
  color: #fff;
  font-family: inherit;
  font-size: 46px;
  line-height: 1;
  padding: 18px;
  cursor: pointer;
  opacity: 0.75;
}
.lightbox button:hover { opacity: 1; }
.lb-close { top: 8px; right: 14px; }
.lb-prev { left: 8px; top: 50%; transform: translateY(-50%); }
.lb-next { right: 8px; top: 50%; transform: translateY(-50%); }

ul { margin: 13px 0 0; padding-left: 22px; }
li + li { margin-top: 12px; }
ul + ul { margin-top: 27px; }

a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

strong { font-weight: 700; }

/* Home hero: photo with handwritten scribble overlay */
.hero {
  margin: 0;
  position: relative;
  width: min(480px, 100%);
}
.hero-photo { display: block; width: 100%; height: auto; }
.hero-scribble {
  position: absolute;
  height: auto;
  transform-origin: left bottom;
  pointer-events: none;
}
.page-home .hero + section { margin-top: 26px; }
.page-home section p { margin-top: 21px; line-height: 22px; }

@media (max-width: 640px) {
  .wrap { padding: 28px 20px 70px; }
  .logo img { height: 34px; }
  nav { gap: 8px 24px; margin-top: 22px; }
  main { margin-top: 40px; }
  body { font-size: 16px; line-height: 21px; }
  h2 { font-size: 16px; line-height: 21px; }
}
