@import url('/site-shell.css');

/* Internal pages extend the approved Home: warm limestone, dark iron, copper. */
:root { color-scheme: light; --ink: #252d2c; --paper: #eee9df; --stone: #dcd6c9; --line: #bcb2a4; --copper: #b48352; --muted: #59615b; }
body { line-height: 1.65; }
.optimized-picture { display: contents; }
main { min-height: 50dvh; }
.skip { position: fixed; z-index: 120; top: 12px; left: 12px; transform: translateY(-160%); padding: 11px 18px; background: var(--paper); color: var(--ink); }
.skip:focus { transform: translateY(0); }
.page-header { position: relative; overflow: hidden; background: #252d2c; color: #eee9df; padding: 150px 0 105px; }
.page-header::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 75% 55%, rgba(180,131,82,.11), transparent 45%), linear-gradient(90deg, transparent 24.9%, rgba(238,233,223,.045) 25%, transparent 25.1%, transparent 49.9%, rgba(238,233,223,.045) 50%, transparent 50.1%, transparent 74.9%, rgba(238,233,223,.045) 75%, transparent 75.1%); }
.page-header .shell { position: relative; z-index: 1; }
.page-header .eyebrow { color: #cba072; }
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 70px; color: #c7c4b9; font: 500 10px 'IBM Plex Mono', monospace; letter-spacing: .08em; text-transform: uppercase; }
.breadcrumbs a { transition: color .2s; }
.breadcrumbs a:hover { color: #d4a87a; }
.breadcrumbs span { color: #d4a87a; }
.page-header h1 { max-width: 1080px; margin: 19px 0 25px; font: 400 clamp(42px, 5vw, 74px)/1.17 'Prata', Georgia, serif; letter-spacing: -.055em; text-wrap: balance; }
.page-header .lead, .page-header p:not(.eyebrow) { max-width: 680px; margin: 0; color: #ced1c9; font-size: clamp(14px, 1.4vw, 18px); line-height: 1.8; }
.page-header .breadcrumbs + h1 { margin-top: 0; }

.content-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 330px); gap: clamp(55px, 7vw, 120px); align-items: start; padding-top: 100px; padding-bottom: 125px; }
.content-grid > * { min-width: 0; }
.page-copy, .article-copy { font-size: 16px; line-height: 1.85; color: #4d5650; }
.page-copy > :first-child, .article-copy > :first-child { margin-top: 0; }
.page-copy p, .article-copy p { margin: 0 0 1.55em; }
.page-copy address { font-style: normal; line-height: 1.7; margin: 0 0 1.55em; }
.page-copy strong, .article-copy strong { font-weight: 700; color: var(--ink); }
.page-copy a:not(.btn), .article-copy a:not(.btn) { color: #875d3b; border-bottom: 1px solid #b48352; transition: color .2s; }
.page-copy a:not(.btn):hover, .article-copy a:not(.btn):hover { color: var(--ink); }
.page-copy h2, .article-copy h2, .page-copy h3, .article-copy h3 { color: var(--ink); font-family: 'Prata', Georgia, serif; font-weight: 400; letter-spacing: -.055em; line-height: 1.25; text-wrap: balance; }
.page-copy h2, .article-copy h2 { font-size: clamp(34px, 4vw, 56px); margin: 1.55em 0 .5em; }
.page-copy h3, .article-copy h3 { font-size: clamp(25px, 3vw, 36px); margin: 1.35em 0 .5em; }
.page-copy ul, .article-copy ul, .page-copy ol, .article-copy ol { padding-left: 1.4em; margin: 0 0 1.6em; }
.page-copy li, .article-copy li { padding-left: .25em; margin-bottom: .6em; }
.page-copy blockquote, .article-copy blockquote { margin: 45px 0; padding: 7px 0 7px 30px; border-left: 2px solid var(--copper); color: var(--ink); font: 400 clamp(23px, 3vw, 34px)/1.5 'Prata', serif; letter-spacing: -.04em; }
.page-copy > img, .article-copy > img { width: 100%; height: auto; margin: 38px 0; }
figure { margin: 0; }
figure img { width: 100%; height: auto; }
figcaption { padding: 11px 0; color: #777970; font: 500 10px 'IBM Plex Mono', monospace; letter-spacing: .05em; }

/* Portfolio index and galleries: labels always remain BELOW photographs. */
.photo-grid, .gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 35px 20px; margin: 54px 0 75px; }
.gallery-card { min-width: 0; display: block; color: var(--ink); text-align: left; }
.gallery-card-image { display: block; width: 100%; aspect-ratio: 4 / 4.7; overflow: hidden; background: #d4cabe; }
.gallery-card-image img, img.gallery-card-image { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 4.7; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.gallery-card:hover .gallery-card-image img, .gallery-card:hover img.gallery-card-image { transform: scale(1.045); }
.gallery-card-title { display: block; position: static; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--ink); font-size: 13px; font-weight: 600; line-height: 1.55; }
.photo-grid figure { min-width: 0; }
.photo-grid figure img { display: block; width: 100%; aspect-ratio: 4 / 4.7; object-fit: cover; background: #d4cabe; }
.photo-grid figcaption { padding: 12px 0; border-top: 1px solid var(--line); margin-top: 12px; }

/* Editorial archive follows Home's asymmetrical journal rhythm. */
.blog-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 20px; padding: 95px 0 120px; }
.blog-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid #c6bdaf; background: transparent; transition: background .2s; }
.blog-card:hover { background: #e3daca; }
.blog-card-image { display: block; width: 100%; aspect-ratio: 1.6; overflow: hidden; object-fit: cover; background: #d4cabe; }
.blog-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.75); transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.blog-card > img.blog-card-image { filter: saturate(.75); }
.blog-card:hover .blog-card-image img { transform: scale(1.04); }
.blog-card:first-child .blog-card-image { aspect-ratio: 1.96; }
.blog-card-body { display: flex; flex: 1; flex-direction: column; padding: 23px; }
.blog-card-body .eyebrow { color: #96643e; }
.blog-card h2, .blog-card h3, .blog-card-title { margin: 16px 0 20px; color: var(--ink); font: 400 clamp(23px, 2.2vw, 34px)/1.32 'Prata', serif; letter-spacing: -.055em; }
.blog-card-body > p { color: var(--muted); font-size: 13px; line-height: 1.7; }
.blog-card-body .read-more { margin-top: auto; padding-top: 17px; border-top: 1px solid #c6bdaf; display: flex; align-items: center; justify-content: space-between; font: 600 10px 'IBM Plex Mono', monospace; text-transform: uppercase; }
.editorial-featured-image { margin: 0 0 48px; }
.editorial-featured-image img { display: block; width: 100%; max-height: 620px; aspect-ratio: 16 / 9; object-fit: cover; background: #d4cabe; }
.editorial-featured-image figcaption { border-bottom: 1px solid var(--line); }

/* Services feel like built objects, rather than a generic card deck. */
.service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #aba496; border: 1px solid #aba496; margin: 75px 0 110px; }
.service-grid .service-card, .service-card { min-width: 0; min-height: 340px; padding: 28px; display: flex; flex-direction: column; background: #dcd6c9; transition: background .25s; }
.service-card:hover { background: #cfc6b7; }
.service-card-image { display: block; flex: none; width: calc(100% + 56px); aspect-ratio: 16 / 9; margin: -28px -28px 25px; overflow: hidden; background: #bdb4a6; }
.service-card-image img, img.service-card-image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.78); transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.service-card:hover .service-card-image img, .service-card:hover img.service-card-image { transform: scale(1.035); }
.service-card .eyebrow { color: #806747; }
.service-card h2, .service-card h3 { margin: 25px 0 18px; font: 400 clamp(24px, 2.4vw, 34px)/1.3 'Prata', serif; letter-spacing: -.05em; }
.service-card p { font-size: 13px; line-height: 1.7; color: var(--muted); margin: 0 0 28px; }
.service-card .service-arrow { display: flex; justify-content: space-between; align-items: center; margin-top: auto; border-top: 1px solid #a9a293; padding-top: 15px; color: #815f3f; }
.service-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 470px; margin: 85px 0; background: var(--ink); color: var(--paper); }
.service-hero > img, .service-hero > picture, .service-hero figure { display: block; width: 100%; height: 100%; min-height: 400px; object-fit: cover; }
.service-hero picture img, .service-hero figure img { width: 100%; height: 100%; object-fit: cover; }
.service-hero > div { padding: clamp(35px, 6vw, 90px); align-self: center; }
.service-hero h2, .service-hero h3 { font: 400 clamp(34px, 4.5vw, 64px)/1.18 'Prata', serif; letter-spacing: -.06em; margin: 17px 0 25px; }
.service-hero p { color: #c3c9c1; line-height: 1.8; }
.service-hero .eyebrow { color: #c49a6c; }
.service-hero .btn { margin-top: 22px; }

.contact-form { background: #eee9df; border-top: 3px solid #b48352; padding: clamp(24px, 3.5vw, 42px); box-shadow: 12px 14px 0 #c9c1b4; margin: 25px 14px 70px 0; }
.contact-form h2, .contact-form h3 { margin: 0 0 20px; color: var(--ink); font: 400 31px/1.3 'Prata', serif; letter-spacing: -.05em; }
.contact-form label { display: block; margin: 0 0 8px; color: var(--ink); font: 600 10px 'IBM Plex Mono', monospace; text-transform: uppercase; letter-spacing: .08em; }
.contact-form input:not([type="checkbox"]):not([type="radio"]), .contact-form textarea, .contact-form select { display: block; width: 100%; min-width: 0; padding: 13px 14px; margin: 0 0 21px; border: 1px solid #bfb7a9; border-radius: 0; color: var(--ink); background: var(--paper); outline: none; font-size: 13px; }
.contact-form :is(input, textarea, select):focus { border-color: #95613d; }
.contact-form textarea { min-height: 125px; resize: vertical; }
.contact-form .privacy-check { display: block; margin: 2px 0 23px; color: var(--muted); font: 400 12px/1.6 'DM Sans', sans-serif; text-transform: none; letter-spacing: 0; cursor: pointer; }
.contact-form .privacy-check input[type="checkbox"] { display: inline-block; width: 16px; height: 16px; margin: 0 8px 0 0; vertical-align: -3px; accent-color: #95613d; cursor: pointer; }
.contact-form .privacy-check a { color: #875d3b; text-decoration: underline; text-underline-offset: 3px; }
.contact-form .privacy-check a:hover { color: var(--ink); }
.contact-form button[type="submit"] { width: 100%; justify-content: space-between; }
.contact-form small { display: block; margin-top: 12px; color: var(--muted); font-size: 11px; }
.contact-form .form-feedback[hidden] { display: none; }

.project-cta { position: sticky; top: 25px; padding: 34px; border-top: 3px solid var(--copper); background: var(--stone); }
.project-cta .eyebrow { color: #96643e; }
.project-cta h2, .project-cta h3 { font: 400 30px/1.35 'Prata', serif; letter-spacing: -.05em; margin: 22px 0; }
.project-cta p { color: var(--muted); line-height: 1.75; font-size: 13px; }
.project-cta a { display: inline-flex; align-items: center; gap: 12px; margin-top: 16px; padding-bottom: 4px; border-bottom: 1px solid currentColor; font: 600 10px 'IBM Plex Mono', monospace; letter-spacing: .08em; text-transform: uppercase; }
.project-cta a:first-of-type { display: flex; justify-content: space-between; min-height: 52px; padding: 14px 18px; border: 0; background: var(--copper); color: #1d2827; }
.project-cta a:hover { color: #855b36; }
.project-cta a:first-of-type:hover { background: #d2a775; color: #1d2827; }
.related { border-top: 1px solid var(--line); margin: 85px 0 0; padding-top: 30px; }
.related h2 { margin: 0 0 28px; font: 400 clamp(28px, 3vw, 42px)/1.25 'Prata', serif; letter-spacing: -.05em; }
.related ul { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 30px; padding: 0; margin: 0; }
.related li { margin: 0; padding: 0; }
.related a { display: block; padding: 15px 0; border-bottom: 1px solid var(--line); color: var(--ink); font-size: 13px; transition: color .2s; }
.related a:hover { color: #865c37; }
.embeds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 50px 0; }
.embeds iframe, .embeds video { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; background: var(--stone); }
.embeds iframe[src*="google.com/maps"] { grid-column: 1 / -1; aspect-ratio: 3 / 1; }

.lightbox { position: fixed; z-index: 100; inset: 0; background: rgba(15,21,20,.96); color: #eee9df; display: flex; flex-direction: column; }
.lightbox[hidden] { display: none; }
.lightbox-top { display: flex; align-items: center; justify-content: space-between; padding: 19px 34px; border-bottom: 1px solid #4b5350; }
.lightbox button { border: 1px solid #66706b; background: transparent; color: inherit; width: 42px; height: 42px; display: grid; place-items: center; }
.lightbox button:hover { background: var(--copper); }
.lightbox-main { min-height: 0; flex: 1; display: flex; align-items: center; justify-content: center; padding: 24px 90px; }
.lightbox-main img { display: block; max-width: 100%; max-height: calc(100dvh - 180px); object-fit: contain; }
.lightbox-nav { position: absolute; inset: 50% 25px auto; transform: translateY(-50%); display: flex; justify-content: space-between; pointer-events: none; }
.lightbox-nav button { pointer-events: auto; }
.lightbox-bottom { display: flex; justify-content: space-between; gap: 20px; padding: 17px 35px 22px; border-top: 1px solid #4b5350; }

@media (max-width: 980px) {
  .content-grid { grid-template-columns: minmax(0, 1fr) 250px; gap: 45px; }
  .photo-grid, .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .page-header { padding: 116px 0 72px; }
  .page-header h1 { font-size: clamp(36px, 8vw, 52px); }
  .breadcrumbs { margin-bottom: 46px; line-height: 1.7; }
  .content-grid { display: block; padding-top: 65px; padding-bottom: 85px; }
  .page-copy, .article-copy { font-size: 15px; }
  .page-copy h2, .article-copy h2 { font-size: 34px; }
  .project-cta { position: static; margin-top: 55px; }
  .service-hero { display: flex; flex-direction: column; margin: 65px 0; }
  .service-hero > img, .service-hero > picture, .service-hero figure { min-height: 280px; max-height: 360px; }
  .service-hero > div { padding: 40px 24px; }
  .blog-grid { grid-template-columns: 1fr; padding: 65px 0 85px; }
  .blog-card:first-child .blog-card-image { aspect-ratio: 1.6; }
  .service-grid { grid-template-columns: 1fr; margin: 55px 0 85px; }
  .service-card { min-height: 260px; }
  .embeds { grid-template-columns: 1fr; }
  .embeds iframe[src*="google.com/maps"] { aspect-ratio: 4 / 3; }
  .lightbox-main { padding: 15px 5px; }
  .lightbox-main img { max-height: calc(100dvh - 200px); }
  .lightbox-nav { inset: auto 15px 95px; transform: none; }
  .lightbox-top, .lightbox-bottom { padding-inline: 18px; }
}
@media (max-width: 480px) {
  .page-copy address { max-width: calc(100% - 52px); }
  .photo-grid, .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; }
  .gallery-card-title { font-size: 12px; }
  .related ul { grid-template-columns: 1fr; }
}

/* Service ateliers and the workshop story. These intentionally do not affect
   articles, archives, galleries, the contact form, or the vacancy template. */
.atelier-page { background: var(--paper); overflow: clip; }
.atelier-page .atelier-hero { position: relative; min-height: min(850px, 100svh); min-height: max(660px, 91svh); background: #252d2c; color: #eee9df; isolation: isolate; display: flex; flex-direction: column; }
.atelier-hero-photo { position: absolute; inset: 0 0 0 38%; width: 62%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.72) contrast(1.06); z-index: -2; }
.atelier-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #252d2c 4%, rgba(37,45,44,.97) 28%, rgba(37,45,44,.58) 56%, rgba(37,45,44,.1) 100%), linear-gradient(0deg, rgba(37,45,44,.48), transparent 45%); pointer-events: none; }
.atelier-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, transparent 24.94%, rgba(238,233,223,.08) 25%, transparent 25.06%, transparent 49.94%, rgba(238,233,223,.08) 50%, transparent 50.06%, transparent 74.94%, rgba(238,233,223,.08) 75%, transparent 75.06%); }
.atelier-hero .shell { position: relative; flex: 1; display: flex; flex-direction: column; }
.atelier-hero .breadcrumbs { padding-top: 136px; margin-bottom: auto; }
.atelier-hero-content { max-width: 970px; padding: 42px 0 88px; animation: atelier-rise .75s both; }
.atelier-overline { color: #d2aa7c; display: flex; align-items: center; gap: 14px; }
.atelier-overline::before { content: ''; width: 34px; height: 1px; background: currentColor; }
.atelier-hero h1 { max-width: 850px; font: 400 clamp(43px, 5.4vw, 79px)/1.17 'Prata', Georgia, serif; letter-spacing: -.055em; text-wrap: balance; margin: 26px 0 28px; }
.atelier-hero-lead { max-width: 490px; font-size: clamp(15px, 1.25vw, 18px); line-height: 1.8; color: #d5d5cc; margin: 0 0 32px; }
.atelier-hero-actions, .atelier-linkset { display: flex; align-items: center; flex-wrap: wrap; gap: 20px 28px; }
.atelier-textlink { display: inline-flex; gap: 12px; align-items: center; padding-bottom: 6px; border-bottom: 1px solid currentColor; font: 600 10px 'IBM Plex Mono', monospace; text-transform: uppercase; letter-spacing: .08em; transition: color .2s, transform .2s; }
.atelier-textlink:hover { color: #d2a775; transform: translateX(3px); }
.atelier-hero-foot { display: flex; justify-content: flex-end; border-top: 1px solid rgba(238,233,223,.24); padding: 19px 0 24px; color: #c5c2b8; }
.atelier-hero-foot a:hover { color: #d2a775; }
.atelier-section { padding: clamp(80px, 9vw, 145px) 0; }
.atelier-kicker { display: inline-flex; align-items: center; gap: 14px; color: #9d7049; }
.atelier-kicker::before { content: ''; width: 26px; height: 1px; background: currentColor; }
.atelier-heading { font: 400 clamp(32px, 3.8vw, 53px)/1.24 'Prata', Georgia, serif; letter-spacing: -.05em; margin: 22px 0 0; color: #252d2c; text-wrap: balance; }
.atelier-intro-grid { display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: clamp(45px, 7vw, 120px); align-items: start; }
.atelier-intro-copy { padding-top: 8px; max-width: 760px; }
.atelier-intro-copy p { color: #4d5650; font-size: clamp(15px, 1.2vw, 18px); line-height: 1.8; margin: 0 0 24px; }
.atelier-intro-copy .atelier-intro-lead { color: #252d2c; border-left: 2px solid var(--copper); padding: 2px 0 2px 25px; margin-bottom: 32px; font: 400 clamp(23px, 2.2vw, 31px)/1.48 'Prata', Georgia, serif; letter-spacing: -.045em; text-wrap: balance; }
.atelier-intro-copy .atelier-benefits-heading { margin: 36px 0 10px; color: #252d2c; font: 400 clamp(22px, 2vw, 28px)/1.4 'Prata', Georgia, serif; letter-spacing: -.045em; }
.atelier-benefits { list-style: none; counter-reset: benefit; padding: 0; margin: 34px 0 38px; border-top: 1px solid var(--line); }
.atelier-benefits li { counter-increment: benefit; display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 17px; padding: 21px 0; border-bottom: 1px solid var(--line); color: #4d5650; font-size: clamp(15px, 1.1vw, 17px); line-height: 1.7; }
.atelier-benefits li::before { content: counter(benefit, decimal-leading-zero); color: #956b46; padding-top: 5px; font: 600 10px 'IBM Plex Mono', monospace; letter-spacing: .06em; }
.atelier-benefits strong { display: block; color: #252d2c; font-weight: 700; }
.atelier-intro-copy > .atelier-linkset { padding-top: 5px; }
.atelier-intro-copy p:last-child { margin-bottom: 0; }
.atelier-intro-copy a, .atelier-story-copy a { color: #865c37; text-decoration: underline; text-underline-offset: 4px; }
.atelier-details { background: #dcd6c9; }
.atelier-details-head { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 54px; }
.atelier-details-head p { max-width: 360px; color: #59615b; line-height: 1.7; margin: 0; }
.atelier-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid #aaa393; }
.atelier-step { min-width: 0; min-height: 230px; padding: 23px 30px 20px 0; border-right: 1px solid #aaa393; }
.atelier-step + .atelier-step { padding-left: 30px; }
.atelier-step:last-child { border-right: 0; }
.atelier-step .eyebrow { color: #926d4e; }
.atelier-step h3 { font: 400 clamp(22px, 2.1vw, 31px)/1.28 'Prata', Georgia, serif; letter-spacing: -.05em; margin: 32px 0 13px; }
.atelier-step p { margin: 0; color: #505954; font-size: 13px; line-height: 1.75; }
.atelier-gallery { background: #eee9df; }
.atelier-gallery-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 42px; }
.atelier-gallery-head .atelier-heading { max-width: 720px; }
.atelier-photo-grid { display: flex; gap: 0; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; overscroll-behavior-inline: contain; }
.atelier-photo-grid::-webkit-scrollbar { display: none; }
.atelier-photo-grid:focus-visible { outline: 2px solid #875d3b; outline-offset: 3px; }
.atelier-photo-grid .atelier-photo { flex: 0 0 25%; scroll-snap-align: start; }
.atelier-photo { min-width: 0; margin: 0; }
.atelier-photo-frame { display: block; aspect-ratio: 1; background: #cfc6b7; overflow: hidden; }
.atelier-photo-frame img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8); transition: transform .6s cubic-bezier(.2,.7,.2,1), filter .3s; }
.atelier-photo-frame:hover img { transform: scale(1.045); filter: saturate(.95); }
.atelier-photo figcaption { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid #bcb2a4; margin-top: 14px; padding: 12px 0; color: #515952; font: 600 10px 'IBM Plex Mono', monospace; text-transform: uppercase; letter-spacing: .05em; }
.atelier-photo figcaption svg { flex: none; }
.atelier-carousel-controls { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 15px; padding-top: 15px; border-top: 1px solid #bcb2a4; }
.atelier-carousel-status { color: #515952; font: 600 11px 'IBM Plex Mono', monospace; letter-spacing: .08em; }
.atelier-carousel-buttons { display: flex; gap: 8px; }
.atelier-carousel-buttons button { display: grid; place-items: center; width: 43px; height: 43px; border: 1px solid #8d8679; background: transparent; color: #252d2c; font: 23px/1 Georgia, serif; cursor: pointer; }
.atelier-carousel-buttons button:hover:not(:disabled), .atelier-carousel-buttons button:focus-visible { background: #252d2c; color: #eee9df; }
.atelier-carousel-buttons button:disabled { opacity: .35; cursor: default; }
.atelier-interlude { background: #252d2c; color: #eee9df; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 580px; }
.atelier-interlude > .optimized-picture { display: block; min-width: 0; overflow: hidden; }
.atelier-interlude img { width: 100%; height: 100%; min-height: 580px; object-fit: cover; filter: saturate(.72); }
.atelier-interlude-copy { display: flex; justify-content: center; flex-direction: column; padding: clamp(52px, 8vw, 132px); }
.atelier-interlude-copy .eyebrow { color: #c49a6c; }
.atelier-interlude-copy h2 { font: 400 clamp(30px, 3.5vw, 48px)/1.23 'Prata', Georgia, serif; letter-spacing: -.05em; margin: 24px 0; text-wrap: balance; }
.atelier-interlude-copy p { color: #c3c9c1; line-height: 1.8; max-width: 480px; margin: 0 0 30px; }
.atelier-interlude-copy .atelier-story-copy, .atelier-interlude-copy .atelier-story-copy :is(h2, h3, h4, p, li, strong) { color: #eee9df; }
.atelier-interlude-copy .atelier-story-copy a { color: #e3bb8c; }
.atelier-interlude-copy .atelier-textlink { color: #eee9df; }
.atelier-closing { background: #b48352; color: #252d2c; padding: 90px 0; }
.atelier-closing-grid { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.atelier-closing h2 { font: 400 clamp(30px, 3.3vw, 48px)/1.23 'Prata', Georgia, serif; letter-spacing: -.05em; margin: 18px 0 0; max-width: 760px; }
.atelier-closing p { max-width: 560px; margin: 20px 0 0; line-height: 1.7; }
.atelier-closing .btn { background: #252d2c; color: #eee9df; white-space: nowrap; }
.atelier-closing .btn:hover { background: #394441; }
.atelier-closing-contact { display: flex; flex-wrap: wrap; gap: 12px 30px; margin-top: 26px; font: 600 14px/1.6 'DM Sans', sans-serif; }
.atelier-closing-contact a { display: inline-flex; align-items: center; gap: 9px; padding-bottom: 4px; border-bottom: 1px solid currentColor; }
.atelier-closing-contact a:hover { color: #eee9df; }
.atelier-closing-contact svg { flex: none; }
.atelier-appendix { padding: 54px 0 95px; }
.atelier-appendix .related { margin: 0; }
.atelier-about .atelier-hero-photo { object-position: center 45%; }
.atelier-about .atelier-hero h1 { max-width: 930px; }
.atelier-about .atelier-story { background: #dcd6c9; }
.atelier-story-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 9%; }
.atelier-story-copy { padding-top: 48px; }
.atelier-story-copy h3 { font: 400 clamp(28px, 3vw, 44px)/1.25 'Prata', Georgia, serif; letter-spacing: -.05em; margin: 0 0 20px; }
.atelier-story-copy p { color: #4d5650; line-height: 1.8; font-size: clamp(16px, 1.4vw, 20px); margin: 0 0 25px; }
.atelier-about-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #aaa393; border: 1px solid #aaa393; }
.atelier-about-value { background: #eee9df; padding: clamp(28px, 4vw, 58px); min-height: 350px; }
.atelier-about-value h3 { font: 400 clamp(27px, 3vw, 42px)/1.25 'Prata', Georgia, serif; letter-spacing: -.05em; margin: 38px 0 18px; }
.atelier-about-value p { font-size: 16px; line-height: 1.8; color: #4d5650; margin: 0; }
.atelier-artist { border-top: 1px solid #bcb2a4; }
.atelier-artist:nth-child(even) { background: #dcd6c9; }
.atelier-artist-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8%; align-items: center; }
.atelier-artist:nth-child(even) .atelier-artist-grid > .atelier-artist-photos { order: -1; }
.atelier-artist-copy h2 { font: 400 clamp(31px, 3.4vw, 47px)/1.23 'Prata', Georgia, serif; letter-spacing: -.05em; margin: 22px 0 24px; text-wrap: balance; }
.atelier-artist-copy h3 { margin: 0 0 26px; color: #8b603e; font: 600 11px 'IBM Plex Mono', monospace; text-transform: uppercase; letter-spacing: .12em; }
.atelier-artist-copy p { font-size: 15px; line-height: 1.85; color: #4d5650; max-width: 650px; margin: 0 0 20px; }
.atelier-artist-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: start; }
.atelier-artist-photos .atelier-photo { grid-column: auto; }
.atelier-artist-photos .atelier-photo:first-child { grid-column: 1 / -1; }
.atelier-artist-photos .atelier-photo-frame, .atelier-artist-photos .atelier-photo:nth-child(4n + 1) .atelier-photo-frame { aspect-ratio: 1.2; }
.atelier-artist-photos .atelier-photo:not(:first-child) .atelier-photo-frame { aspect-ratio: 1.05; }
.atelier-artist-photos .atelier-photo figcaption { font-size: 9px; }
.atelier-more { padding: 35px 0 110px; }
.atelier-more h2 { margin: 18px 0 35px; font: 400 clamp(30px, 3.3vw, 47px)/1.23 'Prata', Georgia, serif; letter-spacing: -.05em; }
.atelier-more-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 19px; }
.atelier-more-card { min-width: 0; display: block; border-top: 1px solid var(--line); color: var(--ink); padding-top: 13px; }
.atelier-more-image { display: block; aspect-ratio: 1; overflow: hidden; background: var(--stone); }
.atelier-more-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78); transition: transform .5s; }
.atelier-more-card:hover img, .atelier-more-card:focus-visible img { transform: scale(1.045); }
.atelier-more-title { display: flex; align-items: start; justify-content: space-between; gap: 12px; padding: 17px 0; font: 400 clamp(17px, 1.6vw, 23px)/1.38 'Prata', Georgia, serif; }
.atelier-more-title svg { flex: none; margin-top: 5px; color: #91623b; }
.quote-modal[hidden] { display: none; }
.quote-modal { position: fixed; z-index: 130; inset: 0; display: grid; place-items: center; padding: 20px; }
.quote-modal-backdrop { position: absolute; inset: 0; background: rgba(20, 27, 26, .86); }
.quote-modal-panel { position: relative; width: min(100%, 610px); max-height: calc(100dvh - 40px); overflow-y: auto; overscroll-behavior: contain; background: #eee9df; color: var(--ink); box-shadow: 14px 14px 0 #956b47; }
.quote-modal-top { position: sticky; top: 0; z-index: 1; background: #252d2c; color: #eee9df; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 12px 18px 12px 30px; }
.quote-modal-top .eyebrow { color: #d2aa7c; }
.quote-modal-close { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid #66706b; background: transparent; color: #eee9df; cursor: pointer; }
.quote-modal-close:hover { background: #394441; }
.quote-modal-body { padding: 28px 35px 35px; }
.quote-modal-body > h2 { font: 400 clamp(27px, 3vw, 39px)/1.25 'Prata', Georgia, serif; letter-spacing: -.05em; margin: 0 0 9px; }
.quote-modal-body > p { color: var(--muted); margin: 0 0 22px; font-size: 14px; }
.quote-modal .contact-form { padding: 0; margin: 0; border: 0; box-shadow: none; }
.quote-modal .contact-form > h2, .quote-modal .contact-form > p { display: none; }
.quote-modal :focus-visible, .atelier-more-card:focus-visible, .atelier-closing-contact a:focus-visible { outline: 2px solid #875d3b; outline-offset: 3px; }
body:has(.quote-modal:not([hidden])) { overflow: hidden; }
@keyframes atelier-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 980px) {
  .atelier-intro-grid, .atelier-story-grid { grid-template-columns: 1fr 1fr; gap: 6%; }
  .atelier-steps { grid-template-columns: repeat(2, 1fr); }
  .atelier-step:nth-child(2) { border-right: 0; }
  .atelier-step:nth-child(-n + 2) { border-bottom: 1px solid #aaa393; }
  .atelier-step:nth-child(3) { padding-left: 0; }
  .atelier-interlude-copy { padding: 55px; }
}
@media (max-width: 700px) {
  .atelier-page .atelier-hero { min-height: 720px; min-height: 100svh; }
  .atelier-hero-photo { inset: 0; width: 100%; opacity: .7; }
  .atelier-hero::before { background: linear-gradient(90deg, rgba(37,45,44,.9), rgba(37,45,44,.48)), linear-gradient(0deg, #252d2c, transparent 75%); }
  .atelier-hero .breadcrumbs { padding-top: 105px; margin-bottom: auto; }
  .atelier-hero-content { padding: 42px 0 68px; }
  .atelier-hero h1 { font-size: clamp(34px, 8vw, 55px); margin: 22px 0; overflow-wrap: normal; }
  .atelier-artists .atelier-hero h1 { font-size: clamp(32px, 7.5vw, 50px); overflow-wrap: normal; }
  .atelier-hero-lead { font-size: 14px; }
  .atelier-hero-actions { align-items: flex-start; gap: 21px; flex-direction: column; }
  .atelier-hero-foot { font-size: 8px; gap: 20px; }
  .atelier-section { padding: 77px 0; }
  .atelier-heading { font-size: clamp(30px, 7.4vw, 44px); }
  .atelier-intro-grid, .atelier-story-grid, .atelier-artist-grid { grid-template-columns: 1fr; gap: 27px; }
  .atelier-intro-copy, .atelier-story-copy { padding-top: 0; }
  .atelier-intro-copy p { font-size: 16px; }
  .atelier-intro-copy .atelier-intro-lead { font-size: clamp(21px, 6vw, 27px); padding-left: 18px; margin-bottom: 28px; }
  .atelier-benefits { margin: 27px 0 31px; }
  .atelier-benefits li { gap: 13px; padding: 18px 0; font-size: 15px; }
  .atelier-details-head, .atelier-gallery-head { display: block; margin-bottom: 35px; }
  .atelier-details-head p { margin-top: 22px; }
  .atelier-step { min-height: 190px; padding: 18px 14px 18px 0; }
  .atelier-step + .atelier-step { padding-left: 15px; }
  .atelier-step:nth-child(3) { padding-left: 0; }
  .atelier-step h3 { font-size: 21px; margin-top: 20px; }
  .atelier-step p { font-size: 12px; }
  .atelier-photo-grid .atelier-photo { flex-basis: 50%; }
  .atelier-photo-frame { aspect-ratio: 1; }
  .atelier-photo figcaption { font-size: 9px; line-height: 1.4; }
  .atelier-interlude { grid-template-columns: 1fr; }
  .atelier-interlude img { min-height: 340px; height: 340px; }
  .atelier-interlude-copy { padding: 65px 20px; }
  .atelier-closing { padding: 70px 0; }
  .atelier-closing-grid { flex-direction: column; align-items: flex-start; gap: 32px; }
  .atelier-closing .btn { white-space: normal; }
  .atelier-about-values { grid-template-columns: 1fr; }
  .atelier-about-value { min-height: auto; padding: 32px 25px; }
  .atelier-about-value h3 { margin: 20px 0 14px; }
  .atelier-artist:nth-child(even) .atelier-artist-grid > .atelier-artist-photos { order: 0; }
  .atelier-artist-photos { margin-top: 15px; }
  .atelier-more { padding: 20px 0 75px; }
  .atelier-more-grid { grid-template-columns: 1fr; gap: 22px; }
  .quote-modal { padding: 0; align-items: end; }
  .quote-modal-panel { width: 100%; max-height: 94dvh; box-shadow: none; }
  .quote-modal-body { padding: 24px 22px 34px; }
  .quote-modal-top { padding-left: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .atelier-photo-grid { scroll-behavior: auto; }
}

/* Contact and careers: a working desk beside the photographic atelier. */
body:has(.invitation-page) .site-header { background: #252d2c; }
.invitation-page { background: #eee9df; }
.invitation-page .invitation-layout { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); min-height: 790px; padding-top: 101px; }
.invitation-page .invitation-story { min-width: 0; background: #252d2c; color: #eee9df; }
.invitation-page .invitation-image { position: relative; height: clamp(300px, 32vw, 470px); overflow: hidden; background: #353d39; }
.invitation-page .invitation-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 44%; filter: saturate(.7) contrast(1.08); }
.invitation-page .invitation-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(37,45,44,.4), transparent 55%); pointer-events: none; }
.invitation-page .invitation-image-note { position: absolute; z-index: 1; bottom: 21px; left: clamp(28px, 5vw, 76px); color: #f0ece3; }
.invitation-page .invitation-story-inner { padding: clamp(35px, 5vw, 74px) clamp(28px, 5vw, 76px) 70px; }
.invitation-page .invitation-kicker { color: #cba072; margin: 0 0 18px; }
.invitation-page h1 { margin: 0 0 22px; color: inherit; font: 400 clamp(39px, 4.2vw, 66px)/1.13 'Prata', Georgia, serif; letter-spacing: -.055em; text-wrap: balance; }
.invitation-page .invitation-intro { max-width: 490px; margin: 0; color: #d4d5cd; font-size: clamp(15px, 1.3vw, 18px); line-height: 1.8; }
.invitation-page .invitation-career-note { margin: 42px 0 0; padding-top: 22px; border-top: 1px solid #626b64; color: #cba072; font: 400 19px/1.55 'Prata', Georgia, serif; }
.invitation-page .invitation-contact-list { margin-top: 48px; padding-top: 20px; border-top: 1px solid #626b64; display: grid; gap: 21px; }
.invitation-page .invitation-contact-row { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 16px; align-items: baseline; font-size: 14px; line-height: 1.6; color: #e6e2d9; }
.invitation-page .invitation-contact-row .eyebrow { color: #bd946b; }
.invitation-page .invitation-contact-row a { width: fit-content; overflow-wrap: anywhere; border-bottom: 1px solid transparent; transition: border-color .2s, color .2s; }
.invitation-page .invitation-contact-row a:hover { color: #e3bb8c; border-color: currentColor; }
.invitation-page .invitation-contact-row address { font-style: normal; }
.invitation-page .invitation-desk { min-width: 0; padding: 24px clamp(30px, 5.5vw, 104px) 95px; }
.invitation-page .invitation-desk-inner { max-width: 585px; margin-inline: auto; }
.invitation-page .invitation-breadcrumb { display: flex; gap: 9px; align-items: center; margin-bottom: 35px; color: #886a4d; font: 500 10px 'IBM Plex Mono', monospace; text-transform: uppercase; letter-spacing: .09em; }
.invitation-page .invitation-breadcrumb a:hover { text-decoration: underline; }
.invitation-page .invitation-desk > *, .invitation-page .invitation-desk-inner > * { min-width: 0; }
.invitation-page .invitation-desk h2 { margin: 0 0 11px; font: 400 clamp(28px, 2.8vw, 39px)/1.25 'Prata', Georgia, serif; letter-spacing: -.045em; }
.invitation-page .invitation-desk-lead { margin: 0 0 32px; max-width: 440px; color: #626b64; font-size: 14px; line-height: 1.75; }
.invitation-page .contact-form { margin: 0; padding: 0; box-shadow: none; border: 0; background: transparent; }
.invitation-page .contact-form > h2, .invitation-page .contact-form > p { display: none; }
.invitation-page .contact-form label:not(.privacy-check) { margin-bottom: 7px; font: 600 10px 'IBM Plex Mono', monospace; letter-spacing: .08em; }
.invitation-page .contact-form input:not([type="checkbox"]):not([type="radio"]), .invitation-page .contact-form textarea { margin-bottom: 20px; min-height: 47px; background: #f6f2e9; border-color: #c6bdaf; font: 400 14px 'DM Sans', sans-serif; transition: border-color .2s; }
.invitation-page .contact-form textarea { min-height: 112px; }
.invitation-page .contact-form .privacy-check { margin: 0 0 24px; }
.invitation-page .contact-form button[type="submit"] { min-height: 56px; background: #252d2c; color: #eee9df; }
.invitation-page .contact-form button[type="submit"]:hover { background: #485349; }
.invitation-page .contact-form small { margin-top: 12px; line-height: 1.5; }
.invitation-page .invitation-map-section { background: #ded8cc; padding: 60px 0 0; }
.invitation-page .invitation-map-head { display: flex; justify-content: space-between; gap: 30px; align-items: end; margin-bottom: 25px; }
.invitation-page .invitation-map-head h2 { color: #252d2c; font: 400 clamp(30px, 3.3vw, 48px)/1.23 'Prata', Georgia, serif; letter-spacing: -.05em; margin: 10px 0 0; }
.invitation-page .invitation-map-head a { font: 600 11px 'IBM Plex Mono', monospace; text-transform: uppercase; border-bottom: 1px solid currentColor; padding-bottom: 5px; }
.invitation-page .invitation-map-section .embeds { margin: 0; display: block; }
.invitation-page .invitation-map-section iframe[src*="google.com/maps"] { display: block; width: 100%; height: clamp(340px, 33vw, 530px); aspect-ratio: auto; border: 0; filter: grayscale(.45); }
.invitation-page .invitation-next { padding: 27px 0; border-top: 1px solid #c3b9a9; background: #eee9df; }
.invitation-page .invitation-next .shell { display: flex; justify-content: space-between; gap: 20px; align-items: center; }
.invitation-page .invitation-next p { margin: 0; font: 400 21px 'Prata', Georgia, serif; letter-spacing: -.04em; }
.invitation-page .invitation-next a { font: 600 10px 'IBM Plex Mono', monospace; letter-spacing: .07em; text-transform: uppercase; border-bottom: 1px solid currentColor; padding-bottom: 5px; }
.invitation-page :focus-visible { outline: 2px solid #a66d3c; outline-offset: 3px; }
@media (max-width: 850px) {
  .invitation-page .invitation-layout { grid-template-columns: 1fr; padding-top: 82px; }
  .invitation-page .invitation-story { display: contents; }
  .invitation-page .invitation-image { order: 0; height: 290px; }
  .invitation-page .invitation-story-inner { order: 1; background: #252d2c; padding: 35px 24px 45px; }
  .invitation-page .invitation-desk { order: 2; padding: 45px 24px 70px; }
  .invitation-page .invitation-breadcrumb { margin-bottom: 25px; }
  .invitation-page .invitation-contact-list { margin-top: 32px; }
  .invitation-page .invitation-map-section { padding: 45px 0 0; }
  .invitation-page .invitation-map-head { display: block; }
  .invitation-page .invitation-map-head a { display: inline-block; margin-top: 19px; }
  .invitation-page .invitation-map-section iframe[src*="google.com/maps"] { aspect-ratio: 1.25; }
}
@media (max-width: 530px) {
  .invitation-page .invitation-layout { padding-top: 72px; }
  .invitation-page .invitation-image { height: 235px; }
  .invitation-page .invitation-image-note { left: 20px; }
  .invitation-page .invitation-contact-row { grid-template-columns: 1fr; gap: 3px; }
  .invitation-page .invitation-next .shell { display: block; }
  .invitation-page .invitation-next a { display: inline-block; margin-top: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .invitation-page *, .invitation-page *::before, .invitation-page *::after { transition-duration: .01ms !important; }
}