/* Thomas J. McLeish — static copy of the Squarespace 7.1 site (2026-10-14).
   Values were measured from the live site. Headings were set in Acumin Pro, an
   Adobe font licensed through Squarespace; Archivo is the free stand-in. */

@font-face { font-family: "Poppins"; font-style: normal; font-weight: 300; font-display: swap; src: url("/fonts/poppins-300.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: italic; font-weight: 300; font-display: swap; src: url("/fonts/poppins-300-italic.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("/fonts/poppins-400.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: italic; font-weight: 400; font-display: swap; src: url("/fonts/poppins-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("/fonts/poppins-500.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("/fonts/poppins-700.woff2") format("woff2"); }
@font-face { font-family: "Archivo"; font-style: normal; font-weight: 500 700; font-display: swap; src: url("/fonts/archivo.woff2") format("woff2"); }

:root {
  --white: #fff;
  --black: #000;
  --dark: #28282a;   /* Squarespace "darkAccent", the header */
  --light: #dfe0e1;  /* Squarespace "lightAccent" */
  --body: "Poppins", system-ui, sans-serif;
  --heading: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --gutter: 4vw;
  --max: 1500px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--white);
  color: var(--black);
  font-family: var(--body);
  font-weight: 300;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
strong, b { font-weight: 700; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.skip-link { position: absolute; left: -9999px; top: 0; background: var(--white); color: var(--black); padding: .75rem 1rem; z-index: 10; }
.skip-link:focus { left: 1rem; top: 1rem; }

/* ---------------------------------------------------------------- header */

.site-header {
  background: var(--dark);
  color: var(--white);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .5rem 2rem;
  padding: clamp(1rem, 2.2vw, 2rem) var(--gutter);
}
.site-title {
  font-family: var(--heading);
  font-weight: 500;
  font-size: 1.324rem;
  line-height: 1.4;
  text-decoration: none;
}
.site-header ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1.15rem; }
.site-header nav a { font-size: .892rem; line-height: 1.8; text-decoration: none; display: inline-block; }
.site-header nav a[aria-current="page"], .site-header nav a.current,
.site-header nav a:hover { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.site-header .icon { display: inline-flex; align-items: center; padding: .25rem 0; }

/* ---------------------------------------------------------------- sections */

.section { position: relative; display: flex; flex-direction: column; justify-content: center; }
.section-inner { position: relative; z-index: 1; width: 100%; max-width: var(--max); margin: 0 auto; padding: var(--pad) var(--gutter); }
.h-small  { --pad: clamp(1.5rem, 3.3vw, 3rem); }
.h-medium { --pad: clamp(2.5rem, 6.6vw, 6rem); }
.h-custom { --pad: clamp(1.25rem, 2vw, 1.75rem); }
.h-large  { --pad: clamp(3.5rem, 10vw, 9rem); }
.content { width: 100%; }
.w-medium .content { width: 75%; }
.w-narrow .content { width: 50%; }
.a-center .content { margin-inline: auto; }
.a-right .content { margin-left: auto; }
.v-top    { justify-content: flex-start; }
.v-bottom { justify-content: flex-end; }

.theme-white, .theme-white-bold { background: var(--white); color: var(--black); }
.theme-light, .theme-light-bold { background: var(--light); color: var(--black); }
.theme-dark,  .theme-dark-bold  { background: var(--dark);  color: var(--white); }
.theme-black, .theme-black-bold { background: var(--black); color: var(--white); }

.has-bg.h-small  { min-height: 33vh; }
.has-bg.h-medium { min-height: 66vh; }
.has-bg.h-large  { min-height: 100vh; }
.section-bg { position: absolute; inset: 0; overflow: hidden; }
.section-bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.overlay { position: absolute; inset: 0; background: var(--black); opacity: 0; }
.o5 { opacity: .05; } .o10 { opacity: .1; } .o15 { opacity: .15; } .o20 { opacity: .2; } .o25 { opacity: .25; }
.o30 { opacity: .3; } .o35 { opacity: .35; } .o40 { opacity: .4; } .o45 { opacity: .45; } .o50 { opacity: .5; }
.o55 { opacity: .55; } .o60 { opacity: .6; } .o65 { opacity: .65; } .o70 { opacity: .7; } .o75 { opacity: .75; }
.o80 { opacity: .8; } .o85 { opacity: .85; } .o90 { opacity: .9; } .o95 { opacity: .95; } .o100 { opacity: 1; }
.mh40 { min-height: 40vh; } .mh50 { min-height: 50vh; } .mh60 { min-height: 60vh; } .mh70 { min-height: 70vh; }
.mh75 { min-height: 75vh; } .mh80 { min-height: 80vh; } .mh85 { min-height: 85vh; } .mh90 { min-height: 90vh; }
.mh95 { min-height: 95vh; } .mh100 { min-height: 100vh; }

/* ---------------------------------------------------------------- 12-column grid */

.row { display: grid; grid-template-columns: repeat(var(--cols, 12), minmax(0, 1fr)); column-gap: 34px; align-items: start; }
.c1 { --cols: 1; } .c2 { --cols: 2; } .c3 { --cols: 3; } .c4 { --cols: 4; } .c5 { --cols: 5; } .c6 { --cols: 6; }
.c7 { --cols: 7; } .c8 { --cols: 8; } .c9 { --cols: 9; } .c10 { --cols: 10; } .c11 { --cols: 11; } .c12 { --cols: 12; }
.s1 { grid-column: span 1; } .s2 { grid-column: span 2; } .s3 { grid-column: span 3; } .s4 { grid-column: span 4; }
.s5 { grid-column: span 5; } .s6 { grid-column: span 6; } .s7 { grid-column: span 7; } .s8 { grid-column: span 8; }
.s9 { grid-column: span 9; } .s10 { grid-column: span 10; } .s11 { grid-column: span 11; } .s12 { grid-column: span 12; }
.col { min-width: 0; }
.col > * + * { margin-top: 1rem; }

/* ---------------------------------------------------------------- blocks */

.text p, .text li { font-size: .892rem; line-height: 1.8; }
.text p, .text h1, .text h2, .text h3, .text h4 { white-space: pre-wrap; overflow-wrap: break-word; }
.text p { margin: 0 0 1em; }
.text > :last-child { margin-bottom: 0; }
.text h1, .text h2, .text h3, .text h4, .grid-title, .item-pagination .title {
  font-family: var(--heading);
  font-weight: 500;
  letter-spacing: -.005em;
}
.text h1 { font-size: clamp(2.4rem, 1.4rem + 3vw, 3.7rem); line-height: 1.25; margin: 0 0 .5em; }
.text h2 { font-size: clamp(2rem, 1.3rem + 2.2vw, 2.944rem); line-height: 1.3; margin: 0 0 .6em; }
.text h3 { font-size: clamp(1.35rem, 1rem + 1vw, 1.648rem); line-height: 1.4; margin: 0 0 .6em; }
.text h4 { font-size: clamp(1.1rem, .95rem + .5vw, 1.3rem); line-height: 1.5; margin: 0 0 .6em; }
.text ul, .text ol { padding-left: 1.4em; margin: 0 0 1em; }
.text .large { font-size: clamp(1.15rem, 1rem + .6vw, 1.5rem); line-height: 1.6; }
.text .small { font-size: .8rem; }
.ta-center { text-align: center; }
.ta-right { text-align: right; }

.image { margin: 0; }
.image img { display: block; width: 100%; height: auto; }
.image figcaption { font-size: .8rem; line-height: 1.6; margin-top: .75rem; }

.button-wrap { margin: 1rem 0; }
.button {
  display: inline-block;
  background: var(--black);
  color: var(--white);
  font-family: var(--body);
  font-weight: 500;
  font-size: .95rem;
  letter-spacing: .02em;
  line-height: 1.2;
  padding: 1.15em 1.9em;
  text-decoration: none;
  transition: opacity .15s;
}
.button.small { font-size: .82rem; }
.button.large { font-size: 1.1rem; }
.button:hover { opacity: .8; }
.theme-dark .button, .theme-black .button, .theme-dark-bold .button, .theme-black-bold .button { background: var(--white); color: var(--black); }

.video { position: relative; aspect-ratio: 16 / 9; background: var(--black); }
.video.r4x3 { aspect-ratio: 4 / 3; }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.spacer.v1 { height: 34px; } .spacer.v2 { height: 68px; } .spacer.v3 { height: 102px; } .spacer.v4 { height: 136px; }
.spacer.v5 { height: 170px; } .spacer.v6 { height: 204px; } .spacer.v7 { height: 238px; } .spacer.v8 { height: 272px; }
.spacer.v9 { height: 306px; } .spacer.v10 { height: 340px; } .spacer.v11 { height: 374px; } .spacer.v12 { height: 408px; }

hr { border: 0; border-top: 1px solid currentColor; margin: 1.5rem 0; }
.anchor { display: block; scroll-margin-top: 1rem; }
.col > .anchor { margin: 0; }

/* ---------------------------------------------------------------- contact form */

.contact-form { font-size: .95rem; }
.contact-form fieldset { border: 0; margin: 0 0 1.1rem; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 .65rem; }
.contact-form legend { padding: 0; margin-bottom: .55rem; font-weight: 400; }
.contact-form .field { margin-bottom: 1.1rem; }
.contact-form fieldset .field { margin-bottom: 0; }
.contact-form label { display: block; margin-bottom: .45rem; font-weight: 400; }
.contact-form fieldset label { font-size: .85rem; }
.contact-form .req { color: #6b6b6b; font-weight: 300; margin-left: .25em; }
.contact-form input, .contact-form textarea {
  display: block;
  width: 100%;
  font: inherit;
  font-weight: 300;
  color: var(--black);
  background: #fafafa;
  border: 1px solid #000;
  border-radius: 0;
  padding: .85rem .9rem;
}
.contact-form textarea { min-height: 6.25rem; resize: vertical; }
.contact-form input:focus-visible, .contact-form textarea:focus-visible { outline: 2px solid #000; outline-offset: 0; }
.contact-form button { border: 0; cursor: pointer; }
/* A field people never see; anything that fills it in is a bot */
.contact-form .hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 767px) {
  .contact-form fieldset { grid-template-columns: 1fr; gap: 1.1rem; }
}

/* ---------------------------------------------------------------- collection grid */

.portfolio-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 31px 40px; }
.portfolio-grid a { text-decoration: none; display: block; }
.portfolio-grid .thumb { aspect-ratio: 4 / 3; overflow: hidden; background: var(--light); }
.portfolio-grid .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: opacity .2s; }
.portfolio-grid a:hover .thumb img, .portfolio-grid a:focus-visible .thumb img { opacity: .6; }
.grid-title { font-size: clamp(1.15rem, .9rem + .8vw, 1.648rem); line-height: 1.4; margin: 20px 0 0; }

/* ---------------------------------------------------------------- galleries */

.gallery-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 50px; }
.gallery-grid.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gallery-grid.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gallery-grid.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gallery-grid img { display: block; width: 100%; height: auto; }

.reel { list-style: none; margin: 0; padding: 0 0 1rem; display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; }
.reel li { flex: 0 0 auto; scroll-snap-align: start; }
.reel img { display: block; height: min(60vh, 600px); width: auto; max-width: none; }

/* ---------------------------------------------------------------- item pagination */

.item-pagination { display: flex; justify-content: space-between; gap: 2rem; max-width: var(--max); margin: 0 auto; padding: 3rem var(--gutter); }
.item-pagination a { text-decoration: none; display: flex; flex-direction: column; gap: .25rem; max-width: 45%; }
.item-pagination .next { margin-left: auto; text-align: right; }
.item-pagination .label { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.item-pagination .label::before { content: "\2039\00a0"; }
.item-pagination .next .label::before { content: none; }
.item-pagination .next .label::after { content: "\00a0\203a"; }
.item-pagination .title { font-size: clamp(1.05rem, .9rem + .5vw, 1.4rem); line-height: 1.4; }
.item-pagination a:hover .title { text-decoration: underline; text-underline-offset: 4px; }

/* ---------------------------------------------------------------- phones */

@media (max-width: 767px) {
  .row { display: block; }
  .w-medium .content, .w-narrow .content { width: 100%; }
  .col + .col { margin-top: 1rem; }
  .spacer { display: none; }
  .ta-right { text-align: left; }
  .portfolio-grid, .gallery-grid.g2, .gallery-grid.g3, .gallery-grid.g4 { grid-template-columns: 1fr; }
  .gallery-grid { gap: 24px; }
  .has-bg.h-medium, .has-bg.h-large, .has-bg[class*=" mh"] { min-height: 60vh; }
  .item-pagination a { max-width: 48%; }
  .reel img { height: 45vh; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; scroll-behavior: auto !important; }
}
