/* Shared alignment keeps the pages on one calm, readable axis. */
:root {
  --lx-paper: #f2f1ed;
  --lx-ink: #242421;
  --lx-muted: #62625c;
  --lx-line: #cecec5;
  --lx-pad: max(22px, 5vw);
  --lx-width: 100%;
  --lx-space: clamp(72px, 9vw, 128px);
  --lx-radius: 0;
}
body { font-family: Montserrat, Arial, sans-serif; background: var(--lx-paper); color: var(--lx-ink); margin: 0; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
.lx, .lx-header, .lx-footer { font-family: Montserrat, Arial, sans-serif; box-sizing: border-box; }
.lx *, .lx-header *, .lx-footer * { box-sizing: border-box; }
.lx { font-size: 17px; line-height: 1.8; }
.lx a, .lx-header a, .lx-footer a { color: inherit; text-decoration: none; }
.lx h1, .lx h2, .lx h3 { font-family: Montserrat, Arial, sans-serif; font-weight: 400; line-height: 1.2; letter-spacing: .005em; margin: 0; overflow-wrap: break-word; text-wrap: balance; }
.lx h2 { font-size: clamp(30px, 3.5vw, 48px); }
.lx h3 { font-size: clamp(22px, 2vw, 28px); }
.lx p { margin: 0; text-wrap: pretty; }
.lx img { display: block; width: 100%; height: auto; }
.lx input, .lx textarea, .lx select, .lx button { font-family: inherit; }
.lx-header, .lx-footer, .lx > section, .lx > div {
  width: min(calc(100% - var(--lx-pad) * 2), var(--lx-width));
  margin-inline: auto;
}
.lx-header { max-width: 1240px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 32px; padding-block: 30px; }
.lx-brand { width: clamp(190px, 19vw, 240px); }
.lx-brand img { width: 100%; height: auto; display: block; }
.lx-header nav { display: flex; justify-content: center; gap: 28px; font-size: 13px; }
.lx-header nav a { padding: 10px 0; white-space: nowrap; }
.lx-header > .lx-button { justify-self: end; }
.lx-header nav a:hover, .lx-footer a:hover { text-decoration: underline; text-underline-offset: 5px; }
.lx-button { display: inline-flex; justify-content: center; align-items: center; max-width: 100%; text-align: center; border-radius: 0; font-weight: 600; letter-spacing: .04em; background: var(--lx-ink); color: var(--lx-paper) !important; padding: 16px 29px; font-size: 13px; line-height: 1.5; transition: background .2s; }
.lx-button:hover { background: #484841; }
.lx-text-link, .lx-back { display: inline-block; font-size: 14px; line-height: 1.6; border-bottom: 1px solid #86867d; padding-bottom: 4px; }
.lx-text-link:hover, .lx-back:hover { border-color: var(--lx-ink); color: #484841; }
.lx-eyebrow { font-size: 10px; letter-spacing: .2em; line-height: 1.8; text-transform: uppercase; font-weight: 500; }
.lx-home-copy, .lx-intro { text-align: center; padding-block: clamp(50px, 7vw, 94px) 52px; }
.lx-home-copy { max-width: 820px; margin-inline: auto; }
.lx-home-copy h1, .lx-intro h1 { font-size: clamp(40px, 5.5vw, 76px); margin: 23px auto 27px; max-width: 900px; }
.lx-home-copy h1 { font-size: clamp(36px, 4.6vw, 64px); }
.lx-home-copy > p:not(.lx-eyebrow) { color: var(--lx-muted); max-width: 620px; margin-inline: auto; }
.lx-hero-actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 28px; margin-top: 28px; }
.lx-home-photo { display: block; position: relative; overflow: hidden; border-radius: var(--lx-radius); background: #292925; }
.lx-home-photo img { height: clamp(350px, 43vw, 560px); object-fit: cover; object-position: 50% 55%; }
.lx-home-photo > span { position: absolute; bottom: 0; left: 0; right: 0; text-align: center; padding: 90px 24px 28px; background: linear-gradient(transparent, rgba(0,0,0,.72)); color: #fff; font-size: 10px; letter-spacing: .15em; }
.lx-home-photo strong { display: block; font-size: 16px; font-weight: 400; letter-spacing: 0; margin-top: 6px; }
.lx-home-statement { padding-block: var(--lx-space); text-align: center; }
.lx-home-statement h2 { max-width: 820px; margin: 22px auto 26px; }
.lx-home-statement > div { max-width: 650px; margin-inline: auto; }
.lx-home-statement > div > p { color: var(--lx-muted); margin-bottom: 25px; }
.lx-home-work { padding-bottom: var(--lx-space); }
.lx-section-head { max-width: 740px; margin: 0 auto 42px; text-align: center; }
.lx-section-head h2 { margin-block: 18px 18px; }
.lx-section-head > p:last-child:not(.lx-eyebrow) { color: var(--lx-muted); }
.lx-work-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px; }
.lx-work-pair article { text-align: center; }
.lx-image-link { display: block; overflow: hidden; position: relative; border-radius: var(--lx-radius); background: #deddd5; }
.lx-image-link img { width: 100%; height: clamp(320px, 38vw, 510px); object-fit: cover; transition: transform .6s; }
.lx-image-link:hover img { transform: scale(1.025); }
.lx-work-pair .lx-eyebrow { margin: 24px 0 10px; }
.lx-work-pair h3 { font-size: clamp(24px, 2.4vw, 32px); }
.lx-image-action { position: absolute; right: 18px; bottom: 18px; background: var(--lx-paper); border-radius: 0; padding: 10px 19px; font-size: 12px; }
.lx-section-end { text-align: center; margin-top: 38px; }
.lx-process { text-align: center; padding-bottom: var(--lx-space); }
.lx-process > h2 { max-width: 760px; margin: 20px auto 44px; }
.lx-process-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 50px; }
.lx-process-grid h3 { margin-bottom: 16px; font-size: 23px; }
.lx-process-grid p { color: var(--lx-muted); font-size: 15px; }
.lx-cta { text-align: center; padding: clamp(50px, 7vw, 85px) clamp(22px, 5vw, 72px); background: transparent;   border-radius: 0; }
.lx-cta h2 { max-width: 780px; margin: 20px auto 22px; }
.lx-cta-copy { max-width: 570px; color: var(--lx-muted); margin: 0 auto 28px !important; }
.lx-quiet { display: block; width: fit-content; margin: 19px auto 0; font-size: 14px; }
.lx-quiet:hover { text-decoration: underline; text-underline-offset: 5px; }
.lx-footer { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 17px; padding-block: 72px 28px; font-size: 13px; line-height: 1.8; }
.lx-footer-brand { width: 240px; display: block; margin-bottom: 10px; }
.lx-footer-brand img { width: 100%; height: auto; }
.lx-footer p, .lx-footer small { color: var(--lx-muted); }
.lx-footer-contact, .lx-footer nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 25px; }
.lx-footer small { font-size: 10px; margin-top: 18px; }
/* Interior pages use the same centered introductions and image edges. */
.lx-intro { padding-bottom: 64px; }
.lx-intro-bottom { display: flex; flex-direction: column; align-items: center; gap: 25px; max-width: 640px; margin-inline: auto; color: var(--lx-muted); }
.lx-project-index { padding-bottom: 24px; }
.lx-index-item { margin-bottom: 72px; }
.lx-index-item .lx-image-link img { height: clamp(350px, 50vw, 640px); }
.lx-index-item:nth-child(3) .lx-image-link img { object-position: 50% 58%; }
.lx-index-caption { text-align: center; padding-top: 25px; }
.lx-index-caption h2 { font-size: clamp(28px, 3vw, 40px); margin: 12px auto; }
.lx-index-caption > p { color: var(--lx-muted); font-size: 15px; max-width: 640px; margin-inline: auto; }
.lx-service-photo img { max-height: 600px; object-fit: cover; border-radius: var(--lx-radius); }
.lx-service-list { padding-block: 45px var(--lx-space); max-width: 920px; }
.lx-service-list article { display: grid; grid-template-columns: 1fr 1.3fr; gap: 65px; padding-block: 36px; align-items: start; }
.lx-service-list h2 { font-size: clamp(28px, 3vw, 36px); }
.lx-service-list p { color: var(--lx-muted); margin-bottom: 17px; }
.lx-feature-detail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; align-items: center; padding-bottom: 30px; }
.lx-feature-detail img { border-radius: var(--lx-radius); }
.lx-feature-detail h2 { font-size: clamp(30px, 3vw, 42px); margin: 18px 0 24px; }
.lx-feature-detail p:not(.lx-eyebrow) { color: var(--lx-muted); margin-bottom: 22px; }
.lx-contact { max-width: 920px; display: grid; grid-template-columns: 1fr 1fr; gap: 70px; padding-block: 10px 60px; }
.lx-contact-email { font-size: clamp(22px, 2.3vw, 32px); display: block; margin: 20px 0 6px; overflow-wrap: anywhere; }
.lx-contact-phone { display: block; font-size: 24px; margin-bottom: 19px; }
.lx-contact > div > p:not(.lx-eyebrow) { color: var(--lx-muted); margin-bottom: 25px; font-size: 14px; }
.lx-contact ul { padding-left: 18px; margin-block: 20px; font-size: 15px; }
.lx-contact li + li { margin-top: 6px; }
.lx-contact aside > p:last-child { color: var(--lx-muted); font-size: 15px; }
.lx-existing-form { max-width: 920px; }
/* Project stories: centered titles, readable paragraphs, aligned photographs. */
.lx-case-heading { text-align: center; padding-block: 36px 55px; }
.lx-back { margin-bottom: 42px; }
.lx-case-heading h1 { font-size: clamp(38px, 5vw, 68px); max-width: 900px; margin: 20px auto; }
.lx-case-heading > div > p:last-child { color: var(--lx-muted); max-width: 650px; margin-inline: auto; }
.lx-case-hero img { max-height: 700px; object-fit: cover; border-radius: var(--lx-radius); }
.lx-project-brief { display: grid; grid-template-columns: 1.5fr 1fr; gap: 80px; padding-block: 72px; }
.lx-project-brief h2 { margin: 18px 0 23px; font-size: clamp(30px, 3vw, 42px); }
.lx-project-brief p:not(.lx-eyebrow) { color: var(--lx-muted); }
.lx-project-brief ul { padding-left: 18px; font-size: 15px; margin: 18px 0 0; }
.lx-project-brief li + li { margin-top: 8px; }
.lx-story { text-align: center; padding-block: 42px; }
.lx-story h2 { max-width: 800px; margin: 18px auto 24px; }
.lx-story > div > p { max-width: 700px; color: var(--lx-muted); margin-inline: auto; }
.lx-photo-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; padding-bottom: 45px; align-items: start; }
.lx-figure { margin: 0; }
.lx-figure img { border-radius: var(--lx-radius); }
.lx-figure a { display: block; }
.lx-figure figcaption { color: var(--lx-muted); font-size: 12px; line-height: 1.6; margin-top: 14px; text-align: center; }
.lx-night { display: grid; grid-template-columns: 1fr 1fr; gap: 55px; align-items: center; padding: 50px; background: #e7e6df; border-radius: var(--lx-radius); margin-block: 35px 60px; }
.lx-night h2 { margin: 20px 0 24px; }
.lx-night p:not(.lx-eyebrow) { color: var(--lx-muted); }
.lx-night img { max-height: 650px; object-fit: contain; }
.lx-wide-photo { padding-bottom: 30px; }
.lx-next { text-align: center; padding-block: 40px 80px; }
.lx-next > a { display: block; margin-top: 18px; }
.lx-next h2 { font-size: clamp(28px, 3.5vw, 44px); }
.lx-next > a:hover h2, .lx-index-caption h2 a:hover, .lx-work-pair h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .15em; }
.lx :focus-visible, .lx-header :focus-visible, .lx-footer :focus-visible { outline: 2px solid #52524a; outline-offset: 6px; }
.lx-skip { position: absolute; left: 20px; top: -100px; z-index: 99; background: white; padding: 10px; }
.lx-skip:focus { top: 10px; }
@media (min-width: 761px) and (max-width: 1050px) {
  .lx-header { grid-template-columns: 1fr 1fr; gap: 20px; }
  .lx-header nav { grid-column: 1 / -1; grid-row: 2; }
  .lx-feature-detail { gap: 35px; }
  .lx-process-grid { gap: 28px; }
}
@media (max-width: 760px) {
  .lx { font-size: 16px; }
  .lx-header { grid-template-columns: 1fr auto; gap: 24px 15px; padding-block: 24px; }
  .lx-brand { width: clamp(150px, 43vw, 205px); }
  .lx-header > .lx-button { padding: 12px 17px; font-size: 11px; }
  .lx-header nav { grid-column: 1 / -1; grid-row: 2; gap: 28px; font-size: 12px; }
  .lx-home-copy, .lx-intro { padding-block: 38px 35px; }
  .lx-home-copy h1, .lx-intro h1 { font-size: clamp(34px, 8.7vw, 54px); }
  .lx-home-copy h1 br { display: none; }
  .lx-home-copy > p:not(.lx-eyebrow) { font-size: 15px; }
  .lx-home-photo img { height: 420px; object-position: 50% 55%; }
  .lx-home-photo > span { padding: 80px 16px 22px; }
  .lx-home-photo strong { font-size: 13px; }
  .lx-work-pair, .lx-process-grid, .lx-feature-detail, .lx-contact, .lx-project-brief, .lx-photo-pair, .lx-night { grid-template-columns: 1fr; gap: 38px; }
  .lx-process-grid { max-width: 390px; margin-inline: auto; }
  .lx-work-pair { gap: 40px; }
  .lx-work-pair .lx-image-link img { height: 370px; }
  .lx-process-grid h3 { font-size: 23px; margin-bottom: 10px; }
  .lx-home-statement br, .lx-process br { display: none; }
  .lx-service-list { padding-top: 20px; }
  .lx-service-list article { grid-template-columns: 1fr; gap: 18px; padding-block: 28px; }
  .lx-contact { padding-top: 20px; }
  .lx-contact > div { text-align: center; }
  .lx-contact-email { font-size: clamp(20px, 5.8vw, 28px); }
  .lx-contact aside { max-width: 390px; margin-inline: auto; }
  .lx-case-heading { padding-block: 28px 38px; }
  .lx-back { margin-bottom: 30px; }
  .lx-case-heading h1 { font-size: clamp(34px, 8vw, 56px); }
  .lx-project-brief { padding-block: 50px 20px; }
  .lx-project-brief aside { padding-top: 0; }
  .lx-night { padding: 30px 22px; }
  .lx-footer { padding-top: 55px; }
  .lx-footer-brand { width: 215px; }
}
@media (prefers-reduced-motion: reduce) {
  .lx * { scroll-behavior: auto !important; transition: none !important; }
}

/* Architectural direction: shared axes, deliberate photography, clear hierarchy. */
:root { --lx-width: 100%; --lx-paper: #efeee8; --lx-ink: #1b1e1b; }
.lc-header-shell { background: #171a17; color: #f4f3ec; }
.lc-header-shell .lx-header { margin-block: 0; padding-block: 28px; }
.lc-header-shell .lx-brand { width: clamp(220px, 22vw, 320px); }
.lc-header-shell .lx-header nav { font-size: 12px; letter-spacing: .04em; }
.lc-header-shell .lx-header > .lx-button { border: 1px solid #72786d; background: transparent; font-weight: 500; padding: 13px 22px; }
.lc-header-shell .lx-header > .lx-button:hover { background: #30362f; }
.lc-home > .lc-hero { width: 100%; position: relative; min-height: 650px; height: min(770px, 83svh); background: #292b26; color: #fff; }
.lc-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.lc-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,#171a17,transparent 130px),linear-gradient(90deg,rgba(11,16,13,.8),rgba(11,16,13,.45) 42%,rgba(11,16,13,.06) 80%),linear-gradient(0deg,rgba(9,14,11,.65),transparent 35%); }
.lc-hero-inner { position: relative; z-index: 1; width: min(calc(100% - var(--lx-pad) * 2), var(--lx-width)); height: 100%; margin-inline: auto; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding-bottom: 70px; }
.lc-hero h1 { color: #fff; font-size: clamp(56px, 6.4vw, 92px); line-height: 1.08; letter-spacing: -.025em; margin: 24px 0; text-wrap: initial; }
.lc-hero-description { font-size: 16px; line-height: 1.8; color: #eeeee8; margin-bottom: 30px !important; }
.lc-white-button { background: #f1f0e8; color: #1b1e1b !important; padding: 17px 29px; }
.lc-white-button:hover { background: #d6d8cb; }
.lc-hero-bottom { position: absolute; bottom: 25px; left: 0; right: 0; display: flex; align-items: end; justify-content: space-between; gap: 20px; font-size: 10px; letter-spacing: .16em; }
.lc-hero-bottom > a { text-align: right; }
.lc-hero-bottom > a span { display: block; font-size: 12px; letter-spacing: 0; margin-top: 5px; text-decoration: underline; text-underline-offset: 5px; }
.lc-home > .lc-trade-line { display: flex; justify-content: space-between; gap: 20px; padding-block: 25px; font-size: 10px; letter-spacing: .14em;  }
.lc-work { padding-block: 90px 95px; }
.lc-section-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 70px; margin-bottom: 45px; }
.lc-section-heading h2, .lc-services h2, .lc-contact-band h2 { font-size: clamp(38px, 4.2vw, 60px); letter-spacing: -.018em; line-height: 1.12; margin-top: 20px; text-wrap: initial; }
.lc-section-heading > p { max-width: 450px; font-size: 16px; color: #64665c; justify-self: end; }
.lc-featured { display: grid; grid-template-columns: 1.65fr 1fr; background: #e1e1d8; }
.lc-project-visual { min-width: 0; position: relative; }
.lc-project-visual > img { height: 100%; min-height: 570px; object-fit: cover; object-position: 60% 70%; }
.lc-project-info { padding: 48px 42px; }
.lc-project-info h3 { font-size: clamp(30px, 3vw, 44px); margin: 22px 0; line-height: 1.15; text-wrap: initial; }
.lc-project-info > p:not(.lx-eyebrow) { font-size: 14px; color: #606257; }
.lc-project-info dl { margin: 27px 0; }
.lc-project-info dl div {  padding: 12px 0; }
.lc-project-info dt { font-size: 9px; letter-spacing: .15em; }
.lc-project-info dd { margin: 4px 0 0; font-size: 13px; }
.lc-before { position: absolute; inset: 0; pointer-events: none; }
.lc-before summary { position: absolute; bottom: 22px; left: 22px; z-index: 3; list-style: none; cursor: pointer; background: #efeee8; color: #22261f; padding: 12px 18px; font-size: 12px; pointer-events: auto; }
.lc-before summary::-webkit-details-marker { display: none; }
.lc-before summary:hover { background: #fff; }
.lc-before .lc-show-after { display: none; }
.lc-before[open] .lc-show-after { display: inline; }
.lc-before[open] .lc-show-before { display: none; }
.lc-before > div { position: absolute; inset: 0; background: #292b26; }
.lc-before > div img { width: 100%; height: 100%; object-fit: cover; }
.lc-before-label { position: absolute; top: 18px; left: 18px; right: 18px; font-size: 9px; letter-spacing: .12em; background: rgba(18,23,18,.85); color: #fff; padding: 8px 12px; width: fit-content; }
.lc-project-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; margin-top: 45px; }
.lc-project-image { display: block; overflow: hidden; }
.lc-project-image img { height: 410px; object-fit: cover; transition: transform .5s; }
.lc-project-image:hover img { transform: scale(1.02); }
.lc-project-caption { display: grid; grid-template-columns: 25px 1fr auto; gap: 15px; align-items: center; padding: 24px 0;  }
.lc-project-caption > span { align-self: start; font-size: 11px; padding-top: 3px; }
.lc-project-caption .lx-eyebrow { font-size: 9px; letter-spacing: .12em; }
.lc-project-caption h3 { font-size: clamp(22px, 2vw, 28px); margin-top: 8px; text-wrap: initial; }
.lc-project-caption > a { font-size: 12px; white-space: nowrap; }
.lc-project-caption h3 a:hover { text-decoration: underline; text-underline-offset: 5px; }
.lc-home > .lc-craft { width: 100%; background: #1a201b; color: #f0f0e8; }
.lc-craft-inner { width: min(calc(100% - var(--lx-pad) * 2), var(--lx-width)); margin-inline: auto; padding-block: 80px; display: grid; grid-template-columns: 1.2fr 1fr; gap: 90px; align-items: center; }
.lc-craft-copy { max-width: 540px; }
.lc-craft h2 { color: #f1f1e9; font-size: clamp(42px, 4.7vw, 66px); letter-spacing: -.02em; line-height: 1.12; margin: 26px 0 30px; text-wrap: initial; }
.lc-craft-copy > p:not(.lx-eyebrow) { max-width: 440px; color: #c4c9be; font-size: 16px; margin-bottom: 16px; }
.lc-craft .lx-text-link { margin-top: 14px; border-color: #939e8a; }
.lc-craft .lx-text-link:hover { color: #fff; }
.lc-craft figure { margin: 0; }
.lc-craft figure img { max-height: 610px; object-fit: cover; }
.lc-craft figcaption { font-size: 9px; letter-spacing: .13em; color: #b3bba9; margin-top: 17px; }
.lc-services { display: grid; grid-template-columns: 1fr 1.25fr; gap: 110px; padding-block: 100px; }
.lc-services > div > p:not(.lx-eyebrow) { max-width: 350px; color: #64665c; font-size: 15px; margin: 25px 0; }
.lc-service-rows details { border-top: 1px solid #bfc2b6; }
.lc-service-rows details:last-child {  }
.lc-service-rows summary { font-size: 20px; line-height: 1.5; padding: 24px 35px 24px 0; cursor: pointer; list-style: none; position: relative; }
.lc-service-rows summary::-webkit-details-marker { display: none; }
.lc-service-rows summary::after { content: '+'; position: absolute; right: 0; top: 24px; font-size: 23px; font-weight: 300; }
.lc-service-rows details[open] summary::after { content: '−'; }
.lc-service-rows details p { color: #63685c; font-size: 14px; max-width: 470px; margin: -8px 25px 24px 0; }
.lc-contact-band { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 90px;  padding-block: 65px; }
.lc-contact-band > div:last-child { max-width: 400px; justify-self: end; }
.lc-contact-band p:not(.lx-eyebrow) { color: #63685c; margin-bottom: 23px; }
.lc-contact-number { display: inline-block; font-size: 14px; margin-left: 20px; }
.lx-footer { padding-block: 65px 25px; }
@media (max-width: 1050px) {
 .lc-header-shell .lx-header { grid-template-columns: 1fr auto; }
 .lc-project-info { padding: 32px 26px; }
 .lc-project-caption { grid-template-columns: 20px 1fr; }
 .lc-project-caption > a { grid-column: 2; justify-self: start; }
 .lc-services { gap: 50px; }
 .lc-craft-inner { gap: 50px; }
 .lc-contact-number { display: block; margin: 18px 0 0; }
}
@media (max-width: 760px) {
 .lc-header-shell .lx-header { padding-block: 22px; gap: 22px 14px; }
 .lc-header-shell .lx-brand { width: clamp(155px, 44vw, 220px); }
 .lc-header-shell .lx-header > .lx-button { font-size: 10px; padding: 10px 12px; }
 .lc-header-shell .lx-header nav { font-size: 11px; gap: 26px; }
 .lc-home > .lc-hero { min-height: 560px; height: 76svh; max-height: 730px; }
 .lc-hero h1 { font-size: clamp(43px, 11.2vw, 72px); }
 .lc-hero > img { object-position: 56% 65%; }
 .lc-hero::after { background: linear-gradient(180deg,#171a17,transparent 90px),linear-gradient(90deg,rgba(12,18,14,.78),rgba(12,18,14,.32)),linear-gradient(0deg,rgba(9,14,11,.7),transparent 35%); }
 .lc-hero-description { font-size: 14px; }
 .lc-hero-inner { padding-bottom: 65px; }
 .lc-hero-bottom { font-size: 8px; gap: 12px; }
 .lc-hero-bottom > a span { font-size: 11px; }
 .lc-home > .lc-trade-line { flex-wrap: wrap; justify-content: center; font-size: 8px; padding-block: 20px; gap: 9px 20px; text-align: center; }
 .lc-work { padding-block: 55px; }
 .lc-section-heading, .lc-featured, .lc-project-pair, .lc-craft-inner, .lc-services, .lc-contact-band { grid-template-columns: 1fr; gap: 28px; }
 .lc-section-heading { margin-bottom: 30px; }
 .lc-section-heading > p { font-size: 14px; justify-self: start; }
 .lc-section-heading h2, .lc-services h2, .lc-contact-band h2 { font-size: 40px; }
 .lc-featured { gap: 0; }
 .lc-project-visual > img { height: 360px; min-height: 0; }
 .lc-project-info { padding: 28px 24px; }
 .lc-project-info h3 { font-size: 34px; }
 .lc-project-info h3 br { display: none; }
 .lc-project-pair { margin-top: 30px; gap: 30px; }
 .lc-project-image img { height: 340px; }
 .lc-project-caption { grid-template-columns: 20px 1fr; padding-top: 20px; }
 .lc-craft-inner { padding-block: 50px; gap: 35px; }
 .lc-craft h2 { font-size: 43px; }
 .lc-craft figure img { max-height: 520px; }
 .lc-services { padding-block: 60px; gap: 35px; }
 .lc-service-rows summary { font-size: 17px; }
 .lc-contact-band { padding-block: 45px; }
 .lc-contact-band > div:last-child { justify-self: start; }
}

.lc-project-visual:has(.lc-before[open]) > img { visibility: hidden; }
/* Carry the same hierarchy into the service and project pages. */
.lx-intro { text-align: left; padding-block: 65px 55px; }
.lx-intro h1 { font-size: clamp(40px, 5vw, 70px); max-width: 950px; margin: 24px 0 28px; }
.lx-intro-bottom { align-items: start; max-width: 660px; margin-inline: 0; }
.lx-case-heading { text-align: left; }
.lx-case-heading h1 { margin-inline: 0; }
.lx-case-heading > div > p:last-child { margin-inline: 0; }
.lx-index-caption { display: grid; grid-template-columns: 1.35fr 1fr; gap: 36px; align-items: center; text-align: left;  padding-bottom: 26px; }
.lx-index-caption h2 { margin: 10px 0 0; }
.lx-index-caption > p { margin-inline: 0; justify-self: end; max-width: 370px; }
.lx-next { text-align: left; }
.lx-cta { display: grid; grid-template-columns: 1.3fr 1fr; column-gap: 85px; text-align: left; padding: 60px 0; border-bottom: 0; }
.lx-cta > .lx-eyebrow { grid-column: 1; }
.lx-cta h2 { grid-column: 1; grid-row: 2 / 5; margin: 20px 0 0; font-size: clamp(36px, 4vw, 52px); }
.lx-cta .lx-cta-copy { grid-column: 2; grid-row: 2; margin: 20px 0 25px !important; }
.lx-cta > .lx-button { grid-column: 2; grid-row: 3; justify-self: start; }
.lx-cta > .lx-quiet { grid-column: 2; grid-row: 4; margin: 15px 0 0; }
@media(max-width:760px) {
 .lx-intro { padding-block: 40px; }
 .lx-index-caption { grid-template-columns: 1fr; gap: 17px; }
 .lx-index-caption > p { justify-self: start; }
 .lx-cta { grid-template-columns: 1fr; gap: 0; padding-block: 45px; }
 .lx-cta > .lx-eyebrow, .lx-cta h2, .lx-cta .lx-cta-copy, .lx-cta > .lx-button, .lx-cta > .lx-quiet { grid-column: 1; grid-row: auto; }
}

/* Primary navigation: a consistent bar with a compact disclosure on mobile. */
.ln-header { position: sticky; top: 0; z-index: 50; background: #171a17; color: #f1f1e9;  font-family: Montserrat, Arial, sans-serif; }
.ln-header, .ln-header * { box-sizing: border-box; }
/* WordPress wraps template parts; make the wrapper carry the sticky position. */
.wp-block-template-part:has(> .ln-header) { position: sticky; top: 0; z-index: 50; }
.wp-block-template-part > .ln-header { position: relative; }
body.admin-bar .wp-block-template-part:has(> .ln-header) { top: 32px; }
@media (min-width:601px) and (max-width:782px) {
 body.admin-bar .wp-block-template-part:has(> .ln-header) { top: 46px; }
}
@media (max-width:600px) {
 body.admin-bar .wp-block-template-part:has(> .ln-header) { top: 0; }
}
.ln-header-inner { width: calc(100% - var(--lx-pad) * 2); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 45px; min-height: 102px; }
.ln-header a { color: inherit; text-decoration: none; }
.ln-brand { display: block; flex: 0 0 270px; }
.ln-brand img { display: block; width: 100%; height: auto; }
.ln-navigation { display: flex; align-items: center; gap: 45px; }
.ln-nav-links { display: flex; align-items: center; gap: 30px; }
.ln-nav-links > a { position: relative; font-size: 12px; font-weight: 500; letter-spacing: .09em; text-transform: uppercase; padding-block: 24px; color: #c5cbbf; }
.ln-nav-links > a::after { content: ''; position: absolute; bottom: 12px; inset-inline: 0; height: 2px; background: #e1e4d7; transform: scaleX(0); transform-origin: left; transition: transform .18s; }
.ln-nav-links > a:hover, .ln-nav-links > a[aria-current] { color: #fff; }
.ln-nav-links > a:hover::after, .ln-nav-links > a[aria-current]::after { transform: scaleX(1); }
.ln-contact-link { display: inline-block; padding: 14px 20px; border: 1px solid #8b9582; font-size: 12px; font-weight: 500; white-space: nowrap; }
.ln-contact-link:hover, .ln-contact-link[aria-current] { background: #eeeee5; color: #20251e; }
.ln-menu-toggle, .ln-mobile-meta { display: none; }
.ln-header :focus-visible { outline: 2px solid #e0e5d5; outline-offset: 5px; }
.lx-skip { z-index: 60; }
.lp-projects { --lp-scroll-offset: 125px; }
.lp-projects > .lp-intro { display: grid; grid-template-columns: 1.2fr 1fr; gap: 70px; align-items: end; padding-block: 66px 45px; }
.lp-intro h1 { font-size: clamp(68px, 9vw, 126px); letter-spacing: -.035em; line-height: 1; margin-top: 22px; }
.lp-intro > div:last-child { max-width: 450px; padding-bottom: 8px; justify-self: end; }
.lp-intro > div:last-child p { color: #555f50; font-size: 18px; margin-bottom: 23px; }
.lp-intro > div:last-child span { font-size: 10px; letter-spacing: .15em; }
.lp-project-index { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(calc(100% - var(--lx-pad) * 2), var(--lx-width)); margin-inline: auto;  }
.lp-project-index a { display: flex; align-items: center; gap: 18px; padding: 22px 20px; font-size: 13px; }
.lp-project-index a:first-child { padding-left: 0; }
.lp-project-index a + a {  }
.lp-project-index a span { font-size: 10px; color: #67715e; }
.lp-project-index a:hover { background: #e1e3d9; }
.lp-projects > .lp-collection { padding-bottom: 45px; }
.lp-project { scroll-margin-top: var(--lp-scroll-offset); padding-top: 65px; }
.lp-project + .lp-project { margin-top: 25px; }
.lp-project-heading { display: flex; align-items: start; gap: 26px; margin-bottom: 26px; }
.lp-project-number { display: block; color: #67715e; font-size: 13px; margin-top: 2px; }
.lp-project-heading .lx-eyebrow { font-size: 10px; }
.lp-project-heading h2 { font-size: clamp(34px, 4vw, 52px); margin: 10px 0 0; letter-spacing: -.015em; }
.lp-project-heading h2 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .15em; }
.lp-gallery { display: grid; grid-template-columns: 1.8fr 1fr; gap: 16px; }
.lp-gallery a { display: block; overflow: hidden; background: #dadfd2; }
.lp-gallery img { height: clamp(360px, 39vw, 530px); object-fit: cover; transition: transform .5s; }
.lp-gallery a:hover img { transform: scale(1.018); }
.lp-project:nth-child(2) .lp-gallery { grid-template-columns: 1.4fr 1fr; }
.lp-project:nth-child(3) .lp-gallery { grid-template-columns: 1fr 1fr; }
.lp-project-bottom { display: grid; grid-template-columns: 1fr 1.2fr; gap: 75px; padding-top: 23px; padding-bottom: 38px;  }
.lp-photo-caption { color: #535e4d; font-size: 12px; }
.lp-scope { font-size: 10px; letter-spacing: .035em; margin-top: 12px !important; color: #6c7561; }
.lp-project-bottom > div:last-child > p { font-size: 15px; color: #535e4d; }
.lp-project-action { display: flex; align-items: center; gap: 23px; margin-top: 22px; }
.lp-project-action .lx-button { flex-shrink: 0; padding: 14px 22px; font-size: 12px; }
.lp-project-action span { font-size: 11px; line-height: 1.6; color: #6c7561; max-width: 170px; }
@media(max-width:1100px) and (min-width:1001px) {
 .ln-header-inner, .ln-navigation { gap: 25px; }
 .ln-brand { flex-basis: 235px; }
 .ln-nav-links { gap: 20px; }
}
@media(max-width:1000px) {
 .ln-header-inner { min-height: 86px; flex-wrap: wrap; gap: 0; }
 .ln-brand { flex-basis: 230px; }
 .ln-enhanced .ln-menu-toggle { display: flex; align-items: center; gap: 13px; border: 0; background: transparent; color: #f1f1e9; font-family: inherit; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; padding: 15px 0 15px 14px; cursor: pointer; }
 .ln-menu-lines { width: 23px; height: 13px; display: flex; flex-direction: column; justify-content: space-between; }
 .ln-menu-lines i { width: 100%; height: 1px; background: currentColor; transition: transform .2s; }
 .ln-header[data-menu-open] .ln-menu-lines i:first-child { transform: translateY(6px) rotate(45deg); }
 .ln-header[data-menu-open] .ln-menu-lines i:last-child { transform: translateY(-6px) rotate(-45deg); }
 .ln-navigation { display: block; flex-basis: 100%; padding-block: 18px 30px; }
 .ln-enhanced .ln-navigation { position: absolute; top: 100%; left: 0; right: 0; padding: 20px var(--lx-pad) 30px;  border-bottom: 1px solid #6b765f; background: #171a17; max-height: calc(100dvh - 86px); overflow-y: auto; }
 .ln-enhanced:not([data-menu-open]) .ln-navigation { display: none; }
 .ln-nav-links { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
 .ln-nav-links > a { font-size: 25px; font-weight: 400; text-transform: none; letter-spacing: .005em; padding: 15px 0; border-bottom: 1px solid #373f31; }
 .ln-nav-links > a::after { display: none; }
 .ln-nav-links > a[aria-current] { color: #fff; padding-left: 15px; border-left: 2px solid #e1e4d7; }
 .ln-contact-link { margin-top: 24px; padding: 14px 22px; }
 .ln-mobile-meta { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin-top: 28px; color: #b7c0ab; font-size: 10px; letter-spacing: .08em; }
 .lp-projects { --lp-scroll-offset: 110px; }
 .lp-project-action { flex-wrap: wrap; gap: 12px; }
 .lp-project-action span { max-width: none; }
}
@media(max-width:760px) {
 .ln-header-inner { min-height: 80px; }
 .ln-brand { flex-basis: clamp(160px, 48vw, 220px); }
 .ln-enhanced .ln-navigation { max-height: calc(100dvh - 80px); }
 .lp-projects > .lp-intro { grid-template-columns: 1fr; gap: 25px; padding-block: 42px 30px; }
 .lp-intro h1 { font-size: clamp(62px, 17vw, 88px); margin-top: 18px; }
 .lp-intro > div:last-child { justify-self: start; }
 .lp-intro > div:last-child p { font-size: 16px; margin-bottom: 16px; }
 .lp-project-index { grid-template-columns: 1fr; }
 .lp-project-index a { padding: 15px 0; font-size: 12px; }
 .lp-project-index a + a { border-left: 0;  }
 .lp-project { padding-top: 42px; }
 .lp-project-heading { gap: 15px; margin-bottom: 22px; }
 .lp-project-heading .lx-eyebrow { font-size: 9px; letter-spacing: .1em; }
 .lp-project-heading h2 { font-size: clamp(28px, 8vw, 39px); }
 .lp-gallery, .lp-project:nth-child(2) .lp-gallery, .lp-project:nth-child(3) .lp-gallery { grid-template-columns: 1fr; gap: 12px; }
 .lp-gallery .lp-main-photo img { height: 330px; }
 .lp-gallery .lp-detail-photo img { height: 210px; }
 .lp-project:first-child .lp-detail-photo img { object-position: 50% 70%; }
 .lp-project-bottom { grid-template-columns: 1fr; gap: 22px; }
 .lp-project-action { gap: 16px; }
}
@media(prefers-reduced-motion:reduce) {
 .ln-header *, .lp-projects * { transition: none !important; }
}

/* Footer follows the header's charcoal palette and shared page frame. */
.lf-footer { background: #171a17; color: #f1f1e9;  font-family: Montserrat, Arial, sans-serif; }
.lf-footer, .lf-footer * { box-sizing: border-box; }
.lf-inner { width: calc(100% - var(--lx-pad) * 2); margin-inline: auto; }
.lf-main { display: grid; grid-template-columns: 1.55fr .7fr 1.1fr 1fr; gap: 42px; padding-block: 66px 52px; }
.lf-footer a { color: inherit; text-decoration: none; }
.lf-brand { display: block; max-width: 330px; margin-bottom: 24px; }
.lf-brand img { display: block; width: 100%; height: auto; }
.lf-brand-block p { margin: 0 0 23px; color: #bfc7b8; font-size: 13px; line-height: 1.9; }
.lf-location { color: #bfc7b8; font-size: 9px; letter-spacing: .16em; }
.lf-footer h2 { margin: 0 0 17px; color: #bfc7b8; font-family: inherit; font-size: 10px; font-weight: 500; line-height: 1.5; letter-spacing: .15em; text-transform: uppercase; }
.lf-links a { display: flex; align-items: center; min-height: 44px; font-size: 13px; line-height: 1.6; padding-block: 9px; }
.lf-contact > a { display: flex; align-items: center; min-height: 44px; width: fit-content; max-width: 100%; }
.lf-phone { font-size: 17px; letter-spacing: .015em; white-space: nowrap; }
.lf-email { font-size: 12px; overflow-wrap: anywhere; }
.lf-contact > .lf-enquiry { justify-content: center; border: 1px solid #8b9582; margin-top: 18px; padding: 14px 18px; font-size: 12px; font-weight: 500; line-height: 1.5; }
.lf-enquiry:hover { background: #eeeee5; color: #20251e; }
.lf-links a:hover, .lf-phone:hover, .lf-email:hover, .lf-bottom a:hover { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.lf-footer :focus-visible { outline: 2px solid #e0e5d5; outline-offset: 5px; }
.lf-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px;  padding-block: 19px; }
.lf-bottom small { color: #bfc7b8; font-size: 10px; line-height: 1.8; }
.lf-bottom small a, .lf-top { display: inline-flex; align-items: center; min-height: 44px; }
.lf-top { font-size: 11px; }
@media (max-width:1100px) {
 .lf-main { grid-template-columns: 1.5fr 1fr; gap: 40px 65px; }
 .lf-contact { grid-column: 2; grid-row: 1; }
 .lf-links {  padding-top: 25px; }
}
@media (max-width:600px) {
 .lf-main { grid-template-columns: 1fr 1fr; gap: 35px 24px; padding-block: 42px 30px; }
 .lf-brand-block, .lf-contact { grid-column: 1 / -1; }
 .lf-brand { max-width: 280px; }
 .lf-brand-block p { margin-bottom: 17px; }
 .lf-contact { grid-row: auto;  padding-top: 27px; }
 .lf-links a { font-size: 12px; }
 .lf-footer h2 { font-size: 9px; }
 .lf-bottom { display: grid; grid-template-columns: 1fr auto; gap: 0 20px; padding-block: 20px; }
 .lf-bottom small { grid-column: 1; }
 .lf-top { grid-column: 2; grid-row: 1 / 3; align-self: center; }
}

/* Fluid desktop composition: the page frame follows the viewport at every size.
   Reading measures belong to paragraphs and forms, never the whole page. */
.lx-service-list, .lx-contact, .lx-existing-form { max-width: none; }
.lx-existing-form > .wp-block-post-content { max-width: 920px; margin-inline: 0; }
.lx-feature-detail > div, .lx-project-brief > div, .lx-service-list article > div, .lx-contact aside { max-width: 65ch; }
.lc-project-info > p, .lp-project-bottom > div:last-child > p { max-width: 58ch; }
@media (min-width:1440px) {
 .ln-brand { flex-basis: clamp(270px, 16vw, 360px); }
 .ln-navigation { gap: clamp(45px, 3.2vw, 72px); }
 .ln-nav-links { gap: clamp(30px, 2.2vw, 52px); }
 .ln-nav-links > a, .ln-contact-link { font-size: clamp(12px, .75vw, 16px); }
 .ln-contact-link { padding: 14px 24px; }
 .lx { font-size: 18px; }
 .lx-eyebrow, .lc-trade-line, .lc-hero-bottom { font-size: clamp(10px, .55vw, 13px); }
 .lx-button { font-size: clamp(13px, .7vw, 16px); }
 .lp-intro > div:last-child { max-width: 43ch; }
 .lp-project-index a { font-size: clamp(13px, .75vw, 16px); }
 .lf-main { gap: 3vw; }
 .lf-brand { max-width: 380px; }
 .lf-brand-block p, .lf-links a, .lf-email, .lf-contact > .lf-enquiry { font-size: clamp(13px, .7vw, 16px); }
 .lf-phone { font-size: clamp(17px, 1vw, 22px); }
 .lf-footer h2, .lf-location, .lf-bottom small, .lf-top { font-size: clamp(10px, .6vw, 12px); }
}

/* Keep each desktop project overview together, including the copy and link.
   Photo height follows the available screen height rather than screen width.
   The article remains natural-height so zoom and short windows never clip text. */
@media (min-width: 1001px) {
 .lp-projects {
  --lp-header-height: var(--lx-header-height);
  --lp-admin-height: 0px;
  --lp-scroll-offset: calc(var(--lp-header-height) + var(--lp-admin-height));
 }
 body.admin-bar .lp-projects { --lp-admin-height: 32px; }
 .lp-project { padding-top: 24px; }
 .lp-project + .lp-project { margin-top: clamp(30px, 4svh, 56px); }
 .lp-project-heading { margin-bottom: 18px; }
 .lp-project-heading h2 { font-size: clamp(34px, 2.8vw, 64px); margin-top: 6px; }
 .lp-gallery img { height: clamp(240px, min(52svh, calc(100svh - var(--lp-scroll-offset) - 360px)), 640px); }
 .lp-project:first-child .lp-detail-photo img { object-position: 50% 70%; }
 .lp-project-bottom { grid-template-columns: .8fr 1.2fr; gap: clamp(24px, 4vw, 75px); padding-block: 18px 24px; }
 .lp-photo-caption { font-size: clamp(12px, .8vw, 16px); }
 .lp-scope { font-size: 11px; margin-top: 6px !important; }
 .lp-project-bottom > div:last-child > p { font-size: clamp(15px, .9vw, 18px); line-height: 1.65; }
 .lp-project-action { margin-top: 14px; }
 .lp-project-action .lx-button { font-size: clamp(12px, .8vw, 16px); padding-block: 12px; }
}

/* Screen-aware rhythm across every page. Text stays in normal flow, while
   photography and surrounding space share a budget based on screen height. */
:root {
 --lx-header-height: 102px;
 --lx-admin-height: 0px;
 --lx-view-height: calc(100svh - var(--lx-header-height) - var(--lx-admin-height));
 --lx-space: clamp(44px, 6svh, 80px);
}
/* Resolve the height budget on body so the signed-in toolbar is included. */
body { --lx-view-height: calc(100svh - var(--lx-header-height) - var(--lx-admin-height)); }
body.admin-bar { --lx-admin-height: 32px; }
.lx > section[id] { scroll-margin-top: var(--lx-header-height); }
@media (min-width: 1440px) {
 :root { --lx-header-height: clamp(102px, 5vw, 120px); }
 .ln-header-inner { min-height: var(--lx-header-height); }
}
@media (min-width: 761px) {
 .lc-home > .lc-hero { height: auto; min-height: 0; }
 .lc-hero-inner { min-height: max(460px, calc(var(--lx-view-height) - 68px)); height: auto; padding-block: clamp(32px, 5svh, 64px) 92px; }
 .lc-hero h1 { font-size: clamp(52px, min(6.4vw, 10svh), 120px); margin-block: 20px; }
 .lc-hero-description { font-size: clamp(16px, 1vw, 20px); margin-bottom: 24px !important; }
 .lc-hero-bottom > a span { font-size: clamp(12px, .75vw, 16px); }
 .lc-work, .lc-services { padding-block: var(--lx-space); }
 .lc-work { padding-top: clamp(24px, 3svh, 40px); }
 .lc-section-heading { margin-bottom: 28px; }
 .lc-section-heading h2, .lc-services h2, .lc-contact-band h2 { font-size: clamp(38px, min(3.5vw, 7svh), 64px); }
 .lc-section-heading > p { max-width: 44ch; font-size: clamp(16px, .9vw, 18px); }
 .lc-featured { min-height: clamp(460px, calc(var(--lx-view-height) - 280px), 640px); }
 .lc-project-visual > img { position: absolute; inset: 0; height: 100%; min-height: 0; }
 .lc-project-info { padding: clamp(26px, 3svh, 40px) clamp(26px, 2.5vw, 54px); align-self: center; }
 .lc-project-info h3 { font-size: clamp(30px, 2.7vw, 52px); margin-block: 16px; }
 .lc-project-info > p:not(.lx-eyebrow) { font-size: clamp(14px, .85vw, 17px); }
 .lc-project-info dl { margin-block: 18px; }
 .lc-project-info dl div { padding-block: 8px; }
 .lc-project-info dd { font-size: clamp(13px, .8vw, 16px); }
 .lc-project-pair { margin-top: 32px; }
 .lc-project-image img { height: clamp(260px, calc(var(--lx-view-height) - 220px), 560px); }
 .lc-project-caption { padding-block: 18px; }
 .lc-project-caption h3 { font-size: clamp(22px, 1.8vw, 36px); }
 .lc-project-caption > a { font-size: clamp(12px, .75vw, 16px); }
 .lc-craft-inner { padding-block: var(--lx-space); gap: clamp(35px, 5vw, 90px); }
 .lc-craft h2 { font-size: clamp(42px, min(4vw, 7svh), 72px); margin-block: 20px; }
 .lc-craft-copy { max-width: 56ch; }
 .lc-craft-copy > p:not(.lx-eyebrow) { max-width: 45ch; font-size: clamp(16px, .9vw, 18px); }
 .lc-craft figure img { height: clamp(300px, calc(var(--lx-view-height) - 200px), 640px); max-height: none; object-position: 50% 70%; }
 .lc-service-rows summary { font-size: clamp(20px, 1.4vw, 26px); padding-block: 18px; }
 .lc-service-rows summary::after { top: 18px; }
 .lc-service-rows details p { font-size: clamp(14px, .85vw, 17px); max-width: 55ch; }
 .lc-contact-band, .lx-cta { padding-block: clamp(36px, 5svh, 64px); }
 .lc-contact-band p:not(.lx-eyebrow) { font-size: clamp(17px, .9vw, 18px); }
 .lx-intro { display: grid; grid-template-columns: 1.2fr 1fr; column-gap: 6vw; padding-block: clamp(30px, 4svh, 48px); align-items: end; }
 .lx-intro > .lx-eyebrow { grid-column: 1 / -1; }
 .lx-intro h1 { font-size: clamp(40px, min(4vw, 7svh), 80px); max-width: 24ch; margin: 18px 0 0; }
 .lx-intro-bottom { max-width: 48ch; gap: 18px; }
 .lx-case-heading { padding-block: 24px 30px; }
 .lx-back { margin-bottom: 20px; }
 .lx-case-heading h1 { font-size: clamp(38px, min(4vw, 7svh), 80px); max-width: 28ch; margin-block: 14px; }
 .lx-case-heading > div > p:last-child { max-width: 65ch; }
 .lx-case-hero img, .lx-service-photo img { height: clamp(240px, calc(var(--lx-view-height) - 340px), 600px); max-height: none; object-fit: cover; }
 .lx-project-brief { padding-block: clamp(32px, 5svh, 60px); }
 .lx-story { padding-block: 28px; }
 .lx-story h2 { margin-block: 14px 18px; }
 .lx-photo-pair { padding-bottom: 28px; }
 .lx-photo-pair .lx-figure img { height: clamp(240px, calc(var(--lx-view-height) - 330px), 600px); object-fit: contain; }
 .lx-wide-photo .lx-figure img { width: auto; max-width: 100%; max-height: clamp(280px, calc(var(--lx-view-height) - 330px), 640px); margin-inline: auto; }
 .lx-feature-detail { gap: clamp(32px, 4vw, 64px); }
 .lx-feature-detail h2 { margin-block: 14px 18px; }
 .lx-feature-detail p:not(.lx-eyebrow) { margin-bottom: 18px; }
 .lx-feature-detail > img { height: clamp(280px, calc(var(--lx-view-height) - 340px), 600px); object-fit: cover; }
 .lx-feature-detail .lx-figure img { height: clamp(280px, calc(var(--lx-view-height) - 160px), 640px); object-fit: contain; }
 .lx-night { padding: clamp(28px, 4svh, 48px); margin-block: 24px 36px; }
 .lx-night img { max-height: clamp(280px, calc(var(--lx-view-height) - 200px), 600px); }
 .lx-next { padding-block: 30px 44px; }
 .lx-service-list { padding-block: 28px var(--lx-space); }
 .lx-service-list article { padding-block: 26px; }
 .lx-contact { padding-bottom: 36px; }
 .lp-projects > .lp-intro { padding-block: clamp(30px, 4svh, 48px); }
 .lp-intro h1 { font-size: clamp(68px, min(8vw, 12svh), 140px); }
 .lp-intro > div:last-child p { font-size: clamp(18px, 1vw, 22px); }
 .lf-main { padding-block: clamp(38px, 5svh, 64px); }
}
@media (max-width: 1000px) {
 :root { --lx-header-height: 86px; }
}
@media (min-width: 601px) and (max-width: 782px) {
 body.admin-bar { --lx-admin-height: 46px; }
}
@media (max-width: 760px) {
 :root { --lx-header-height: 80px; }
 .lx-case-hero img, .lx-service-photo img, .lx-feature-detail img, .lx-wide-photo img, .lx-photo-pair img { max-height: min(560px, 70svh); object-fit: contain; }
 .lc-home > .lc-hero { height: auto; min-height: 0; max-height: none; }
 .lc-hero-inner { height: auto; min-height: max(480px, calc(var(--lx-view-height) - 60px)); padding-block: 32px 100px; }
 .lc-hero h1 { font-size: clamp(40px, min(11.2vw, 9svh), 64px); }
 .lc-craft figure img { max-height: min(480px, 65svh); }
 .lx-night img { max-height: min(480px, 65svh); }
}

@media (min-width: 1001px) {
 .lx-story { text-align: left; }
 .lx-story > div { display: grid; grid-template-columns: 1fr 1fr; gap: 5vw; align-items: start; margin-top: 14px; }
 .lx-story h2 { max-width: 24ch; margin: 0; }
 .lx-story > div > p { max-width: 60ch; margin: 0; }
}

/* Services has its own composition: show the work beside its purpose immediately. */
.ls-services > .ls-intro { display: grid; grid-template-columns: 1.2fr 1fr; align-items: end; gap: 6vw; padding-block: clamp(30px, 4svh, 56px); }
.ls-intro h1 { font-size: clamp(42px, 3.7vw, 72px); line-height: 1.08; letter-spacing: -.025em; margin-top: 18px; text-wrap: initial; }
.ls-intro-copy { max-width: 45ch; justify-self: end; }
.ls-intro-copy p { color: var(--lx-muted); font-size: clamp(16px, .9vw, 19px); margin-bottom: 18px; }
.ls-services-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 2.6vw, 64px); padding-bottom: clamp(44px, 6svh, 80px); }
.ls-service { min-width: 0; }
.ls-service-heading { display: flex; gap: 15px; align-items: baseline; margin-bottom: 20px; min-height: 2.4em; }
.ls-service-heading > span { color: #687060; font-size: 11px; flex-shrink: 0; }
.ls-service-heading h2 { font-size: clamp(24px, 2vw, 38px); letter-spacing: -.025em; text-wrap: initial; }
.ls-service-image { display: block; }
.ls-service-image img { height: clamp(200px, calc(var(--lx-view-height) - 480px), 430px); object-fit: cover; }
.ls-service:nth-child(1) img { object-position: 48% 65%; }
.ls-service:nth-child(2) img { object-position: 45% 65%; }
.ls-service:nth-child(3) img { object-position: 50% 65%; }
.ls-service-copy { padding-top: 22px; max-width: 52ch; }
.ls-service-copy > p:first-child { font-size: clamp(15px, .85vw, 18px); line-height: 1.7; color: var(--lx-muted); }
.ls-service-copy > a { font-size: 13px; margin-top: 18px; }
.ls-services > .ls-together { width: 100%; background: #1a201b; color: #f1f1e9; padding: clamp(36px, 5svh, 68px) var(--lx-pad); display: grid; grid-template-columns: 1fr 1fr; gap: 7vw; }
.ls-together h2, .ls-contact h2 { font-size: clamp(32px, 3.2vw, 60px); line-height: 1.15; letter-spacing: -.025em; margin-top: 18px; }
.ls-together > div:last-child { max-width: 54ch; }
.ls-together p:not(.lx-eyebrow) { color: #c4c9be; font-size: clamp(16px, .9vw, 18px); margin-bottom: 18px; }
.ls-together a { border-color: #939e8a; color: #f1f1e9; }
.ls-together a:hover { color: #fff; }
.ls-together :focus-visible { outline-color: #f1f1e9; }
.ls-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 7vw; align-items: center; padding-block: clamp(40px, 6svh, 80px); }
.ls-contact > div:last-child { max-width: 48ch; }
.ls-contact p:not(.lx-eyebrow) { color: var(--lx-muted); margin-bottom: 22px; }
.ls-phone { display: inline-block; margin: 18px 0 0 22px; font-size: 14px; }
@media (min-width: 761px) and (max-width: 1100px) {
 .ls-service-heading { min-height: 58px; gap: 10px; }
 .ls-service-heading h2 { font-size: 24px; }
 .ls-phone { display: block; margin-left: 0; }
}
@media (max-width: 760px) {
 .ls-services > .ls-intro { grid-template-columns: 1fr; gap: 22px; padding-block: 32px; }
 .ls-intro h1 { font-size: clamp(40px, 10vw, 62px); }
 .ls-intro-copy { justify-self: start; }
 .ls-services-grid { grid-template-columns: 1fr; gap: 40px; }
 .ls-service-heading { min-height: 0; margin-bottom: 16px; }
 .ls-service-heading h2 { font-size: 28px; }
 .ls-service-image img { height: auto; aspect-ratio: 4 / 3; max-height: 430px; }
 .ls-service-copy { padding-top: 18px; }
 .ls-services > .ls-together, .ls-contact { grid-template-columns: 1fr; gap: 26px; }
 .ls-together h2 br { display: none; }
 .ls-phone { display: block; margin-left: 0; }
}

@media (min-width: 761px) and (max-width: 1250px) { .ls-service-heading { min-height: 58px; } }

@media (min-width: 761px) { .ls-service-copy > p:first-child { min-height: 5.1em; } }
