@import url('fonts.css');
/* Studio header and shared look (style D, Oct 2026).
   Loaded after joachim.min.css on every page. */

:root {
  --jt-paper: #F7F5F0;
  --jt-ink: #34363B;
  --jt-grey: #6E675C;
  --jt-rule: #C9C3B7;
  --jt-red: #9A6F2E; /* accent: gold ochre, same as the Enquire button (was red #A8321F) */
  --jt-oak: #9A6F2E;
  --jt-serif: "Spectral", Georgia, serif;
  --jt-sans: "Spectral", Georgia, serif;
  --jt-mono: "Spectral SC", Georgia, serif;
}

.jt-header {
  box-sizing: border-box;
  width: 80%;
  margin: 0 auto;
  padding-top: 40px;
  position: relative;
  z-index: 1000;
  font-family: var(--jt-serif);
}
.jt-header *, .jt-header *::before, .jt-header *::after { box-sizing: border-box; }

.jt-brand {
  display: inline-flex;
  align-items: center;
  gap: 24px;
  text-decoration: none;
}
.jt-brand .jt-logo { height: 76px; width: auto; display: block; }
.jt-brand .jt-name { width: min(440px, 46vw); height: auto; display: block; }

.jt-toggle { display: none; }

.jt-nav {
  display: flex;
  align-items: center;
  margin-top: 24px;
}
.jt-nav a {
  position: relative;
  font-family: var(--jt-serif);
  font-size: clamp(17px, 1.55vw, 23px);
  line-height: 1.2;
  color: var(--jt-ink);
  text-decoration: none;
  letter-spacing: 0;
  text-transform: none;
  padding: 12px clamp(16px, 1.8vw, 28px);
  transition: color .2s ease-out;
}
.jt-nav a:first-child { padding-left: 0; }
/* between the items: a small open diamond in the gold of the logo */
.jt-nav a + a:not(.jt-enquire)::before {
  content: "";
  position: absolute;
  left: -4px;
  top: 50%;
  width: 7px;
  height: 7px;
  margin-top: -3px;
  border: 1px solid #A08A67;
  transform: rotate(45deg);
}
.jt-nav a:hover { color: var(--jt-oak); }
.jt-nav a[aria-current="page"] { color: var(--jt-oak); }
.jt-nav a.jt-enquire {
  margin-left: auto;
  border: 1px solid var(--jt-oak);
  color: var(--jt-oak);
  font-family: var(--jt-mono);
  font-size: 13px;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 10px 20px;
}
.jt-nav a.jt-enquire:hover,
.jt-nav a.jt-enquire[aria-current="page"] { background: var(--jt-oak); color: #fff; text-decoration: none; }

.jt-header a:focus-visible, .jt-toggle:focus-visible { outline: 1px solid var(--jt-oak); outline-offset: 3px; }

/* the old header left room for itself with padding; the new one sits in the flow */
#maincontent_keinbackground { padding-top: 48px; }

@media (max-width: 900px) {
  .jt-header { width: auto; margin: 0 16px; padding-top: 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
  .jt-brand { gap: 12px; }
  .jt-brand .jt-name { width: min(240px, 52vw); }
  .jt-brand .jt-logo { height: 48px; }
  .jt-toggle {
    display: block;
    font-family: var(--jt-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
    color: var(--jt-ink); background: transparent; border: 1px solid var(--jt-ink);
    padding: 10px 14px; cursor: pointer;
  }
  .jt-nav { display: none; flex-basis: 100%; flex-direction: column; align-items: stretch; margin-top: 8px; background: var(--jt-paper); }
  .jt-header.is-open .jt-nav { display: flex; }
  .jt-nav a { font-size: 22px; padding: 12px 0; }
  .jt-nav a + a:not(.jt-enquire)::before { display: none; }
  .jt-nav a.jt-enquire { margin: 14px 0; text-align: center; border: 1px solid var(--jt-red); }
  #maincontent_keinbackground { padding-top: 28px; }
}

/* home: one clear headline under the menu, text in the house type */
#hometext {
  clear: both; width: auto; max-width: 760px; padding: 0; margin: 64px 0 72px;
  background: transparent; text-align: left;
  font-family: var(--jt-sans); font-style: normal; font-weight: 300;
  font-size: 18px; line-height: 1.7; color: #3D3A35;
}
#hometext a { color: var(--jt-red); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.jt-home-title {
  margin: 0 0 14px; font-family: var(--jt-serif); font-weight: 400; font-style: normal;
  font-size: clamp(32px, 3.6vw, 52px); line-height: 1.12; letter-spacing: 0; text-transform: none; color: var(--jt-ink);
}
.jt-home-sub {
  margin: 0 0 32px; font-family: var(--jt-mono); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--jt-grey);
}
@media (max-width: 600px) {
  #hometext { margin: 36px 0 48px; font-size: 16px; text-align: left; }
  .jt-home-sub { font-size: 12px; }
  .jt-home-title br { display: none; }
}

/* Studio: one continuous page in three chapters, with a bar that jumps between them */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.jt-chapters {
  position: sticky; top: 0; z-index: 900; display: flex; flex-wrap: wrap; gap: 4px 0;
  background: var(--jt-paper); padding: 14px 0; margin: 8px 0 24px; border-bottom: 1px solid var(--jt-rule);
}
.jt-chapters a {
  position: relative; font-family: var(--jt-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--jt-grey); text-decoration: none; padding: 4px 22px;
}
.jt-chapters a:first-child { padding-left: 0; }
.jt-chapters a + a::before {
  content: ""; position: absolute; left: -3px; top: 50%; width: 6px; height: 6px; margin-top: -3px;
  border: 1px solid #A08A67; transform: rotate(45deg);
}
.jt-chapters a:hover, .jt-chapters a[aria-current="true"] { color: var(--jt-red); }
.jt-chapter { scroll-margin-top: 30px; padding: 56px 0 24px; }
.jt-chapter + .jt-chapter { border-top: 1px solid var(--jt-rule); margin-top: 48px; }
.jt-chapter-label { margin: 0 0 20px; font-family: var(--jt-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--jt-grey); }
.jt-chapter-title {
  margin: 0 0 24px; font-family: var(--jt-serif); font-weight: 400; font-size: clamp(28px, 2.8vw, 42px); line-height: 1.15;
  letter-spacing: 0; text-transform: none; color: var(--jt-ink); max-width: 22ch;
}
.jt-chapter-title.jt-wide { max-width: 30ch; margin-bottom: 36px; }
.jt-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.jt-split-flip { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); align-items: center; }
.jt-portrait { width: 100%; height: auto; display: block; }
.jt-split-flip .jt-portrait { aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 35%; }
.jt-prose { font-family: var(--jt-sans); font-weight: 300; font-size: 17px; line-height: 1.7; color: #3D3A35; max-width: 62ch; }
.jt-prose p { margin: 0 0 1.1em; }
.jt-prose b { font-weight: 400; color: var(--jt-ink); }
.jt-prose a { color: var(--jt-red); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.jt-honours { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px 24px; margin: 36px 0 28px; padding-top: 28px; border-top: 1px solid var(--jt-rule); font-size: 15px; line-height: 1.55; }
.jt-honours dt { font-family: var(--jt-mono); font-size: 13px; color: var(--jt-grey); padding-top: 2px; }
.jt-honours dd { margin: 0; }
.jt-intbau img { width: 140px; height: auto; display: block; }

/* the story: one step per stage, text beside one or two photos that open the project */
.jt-step { scroll-margin-top: 30px; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 5vw, 80px); align-items: center; padding: 72px 0; border-top: 1px solid var(--jt-rule); }
.jt-step-flip .jt-step-text { order: 2; }
.jt-step-figs { display: grid; gap: 16px; align-items: end; }
.jt-figs-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.jt-fig { display: block; margin: 0; color: var(--jt-grey); text-decoration: none; }
.jt-fig img { width: 100%; height: auto; display: block; aspect-ratio: 4 / 5; object-fit: cover; }
.jt-figs-1 .jt-fig img { aspect-ratio: 4 / 3; }
#studio .jt-fig img { aspect-ratio: 4 / 5; max-height: 640px; object-position: 50% 35%; }
.jt-fig-cap { display: block; margin-top: 10px; font-family: var(--jt-mono); font-size: 12px; letter-spacing: .06em; }
a.jt-fig:hover .jt-fig-cap { color: var(--jt-red); }
a.jt-fig:hover img { opacity: .92; }
.jt-read-on { font-family: var(--jt-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--jt-grey); margin-top: 28px !important; }
.jt-prose a.jt-next-main { color: var(--jt-ink); text-decoration: none; }
.jt-prose a.jt-next-main:hover { color: var(--jt-red); }
.jt-credentials { max-width: none; border-top: 1px solid var(--jt-rule); }
#credentials .jt-honours { max-width: 820px; border-top: 0; padding-top: 0; margin-top: 0; }

@media (max-width: 800px) {
  .jt-split, .jt-split-flip { grid-template-columns: minmax(0, 1fr); }
  .jt-split-flip .jt-portrait { order: -1; }
  .jt-portrait { max-width: 420px; }
  .jt-step { grid-template-columns: minmax(0, 1fr); padding: 48px 0; }
  .jt-step-flip .jt-step-text { order: 0; }
  .jt-chapters a { padding: 4px 12px; font-size: 11px; letter-spacing: .06em; }
  .jt-chapter { padding-top: 40px; }
}

/* Built Work: the quiet row on home, the next step on each building */
.jt-built-intro {
  font-family: var(--jt-serif); font-size: clamp(22px, 2vw, 28px); line-height: 1.3; color: var(--jt-ink);
  margin: 4px 0 32px; max-width: 34ch;
}
.jt-built {
  clear: both; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 40px; align-items: center;
  margin: 72px 0 40px; padding-top: 40px; border-top: 1px solid var(--jt-rule); text-decoration: none; color: var(--jt-ink);
}
.jt-built img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.jt-built-text { display: grid; gap: 14px; }
.jt-built-label { font-family: var(--jt-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--jt-grey); }
.jt-built-line { font-family: var(--jt-serif); font-size: clamp(24px, 2.3vw, 34px); line-height: 1.2; }
.jt-built-more { font-family: var(--jt-mono); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--jt-red); }
.jt-built:hover .jt-built-more { text-decoration: underline; text-underline-offset: 4px; }

.jt-next { clear: both; margin: 56px 0 48px; padding-top: 28px; border-top: 1px solid var(--jt-rule); display: grid; gap: 10px; justify-items: start; }
.jt-next-label { margin: 0; font-family: var(--jt-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--jt-grey); }
.jt-next-main { font-family: var(--jt-serif); font-size: clamp(22px, 2vw, 30px); line-height: 1.25; color: var(--jt-ink); text-decoration: none; }
.jt-next-main:hover { color: var(--jt-red); }
.jt-next-alt { font-family: var(--jt-mono); font-size: 13px; letter-spacing: .06em; color: var(--jt-red); text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 700px) {
  .jt-built { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 48px; }
}

/* ---- Studio page: light chapter bands (Nov 2026) ---- */
.jt-band { position: relative; box-shadow: 0 0 0 100vmax var(--band, #F7F5F0); clip-path: inset(0 -100vmax); background: var(--band, #F7F5F0); border-top: 0 !important; margin-top: 0 !important; }
.jt-band-a { --band: #F7F5F0; }
.jt-band-b { --band: #E9E5DB; }
.jt-chapter.jt-band, .jt-step.jt-band { padding-top: clamp(64px, 9vw, 120px); padding-bottom: clamp(64px, 9vw, 120px); }
.jt-band .jt-chapter-label { color: var(--jt-red); margin-bottom: 18px; }
.jt-band .jt-chapter-title { font-size: clamp(36px, 4.4vw, 66px); line-height: 1.06; max-width: 16ch; margin-bottom: 14px; }
.jt-sub { margin: 0 0 28px; font-family: var(--jt-serif); font-style: italic; font-size: clamp(20px, 1.8vw, 26px); line-height: 1.3; color: var(--jt-grey); }
.jt-band .jt-prose { font-size: 18px; line-height: 1.75; }
.jt-step { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.jt-band .jt-fig-cap { color: var(--jt-grey); }
.jt-intro .jt-chapter-title { max-width: 18ch; }
.jt-credentials.jt-band { border-top: 0; }
.jt-band-b .jt-honours dt { color: var(--jt-grey); }
.jt-chapters { margin-bottom: 0; }
@media (max-width: 900px) { .jt-step { grid-template-columns: minmax(0, 1fr); } .jt-band .jt-chapter-title { font-size: clamp(32px, 9vw, 44px); } }

/* ---- Studio round 2: menu inside first band, merged chapter 02 ---- */
.jt-intro .jt-chapters { position: static; background: transparent; border-bottom: 0; border-top: 1px solid var(--jt-rule); margin: clamp(40px, 5vw, 64px) 0 0; padding: 18px 0 0; }
.jt-step.jt-part { border-top: 0; padding: clamp(28px, 4vw, 56px) 0 0; }
.jt-step.jt-part + .jt-step.jt-part { padding-top: clamp(56px, 7vw, 96px); }
.jt-subtitle { margin: 0 0 18px; font-family: var(--jt-serif); font-weight: 400; font-size: clamp(26px, 2.6vw, 38px); line-height: 1.15; color: var(--jt-ink); }
.jt-group > .jt-chapter-title { max-width: 18ch; }

p.jt-sub { margin: 0 0 28px; }

/* ---- Studio round 3 ---- */
.jt-intro .jt-chapters { border-top: 0; border-bottom: 1px solid var(--jt-rule); margin: 0 0 clamp(36px, 4.5vw, 60px); padding: 0 0 18px; }
.jt-studio { padding-bottom: clamp(24px, 3vw, 40px) !important; }
.jt-hanover { padding-top: clamp(24px, 3vw, 40px) !important; }
.jt-hanover-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.jt-subtitle-big { font-size: clamp(30px, 3.2vw, 46px); max-width: 16ch; }
.jt-hfigs { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.jt-hfigs .jt-fig img { aspect-ratio: 1 / 1; object-fit: cover; }
.jt-hfigs .jt-hwide { grid-column: 1 / -1; }
.jt-hfigs .jt-hwide img { aspect-ratio: 16 / 9; }
.jt-prose a.jt-more { font-family: var(--jt-mono); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
@media (max-width: 900px) { .jt-hanover-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---- Geometry & Number page (Nov 2026) ---- */
html, body { overflow-x: clip; }
.geo-hero { padding-top: clamp(64px, 8vw, 110px) !important; }
.geo-h1 { max-width: 20ch !important; font-size: clamp(40px, 5.2vw, 78px) !important; }
.geo-lead { max-width: 64ch; font-size: 19px; }
.jt-bleed { position: relative; margin: 0 0 0 calc(50% - 50vw); width: 100vw; background: #FBFAF6; }
.jt-bleed img { width: 100%; height: auto; display: block; }
.jt-bleed-dark { background: #131418; }
.jt-bleed figcaption { position: absolute; left: max(16px, calc(50vw - 560px)); bottom: 14px; font-family: var(--jt-mono); font-size: 12px; letter-spacing: .06em; color: var(--jt-grey); max-width: 60ch; }
.jt-bleed-dark figcaption { color: #cfc6b2; }
.jt-chapter .jt-step.jt-part { padding-top: 0; }
.geo-panels { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 40px 0 8px; }
.geo-panels .jt-fig img { aspect-ratio: 1 / 1; }
.geo-slider { position: relative; }
.geo-stage { position: relative; aspect-ratio: var(--ratio, 3 / 2); background: #e3dfd3; overflow: hidden; }
.geo-stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.geo-over { opacity: 0; }
.geo-try { margin: 16px 0 6px; font-family: var(--jt-serif); font-size: clamp(19px, 1.7vw, 23px); color: var(--jt-ink); }
.geo-range { width: 100%; -webkit-appearance: none; appearance: none; height: 28px; background: transparent; margin: 0; }
.geo-range::-webkit-slider-runnable-track { height: 1px; background: linear-gradient(90deg, #A08A67, var(--jt-rule)); }
.geo-range::-moz-range-track { height: 1px; background: linear-gradient(90deg, #A08A67, var(--jt-rule)); }
.geo-range::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; margin-top: -9px; background: var(--jt-paper); border: 1px solid #A08A67; transform: rotate(45deg); }
.geo-range::-moz-range-thumb { width: 14px; height: 14px; background: var(--jt-paper); border: 1px solid #A08A67; border-radius: 0; transform: rotate(45deg); }
.geo-range.breathe::-webkit-slider-thumb { animation: geobreathe 4s ease-in-out infinite; }
@keyframes geobreathe { 0%,100% { box-shadow: 0 0 0 0 rgba(160,138,103,.0); } 50% { box-shadow: 0 0 0 7px rgba(160,138,103,.25); } }
.geo-ends { display: flex; justify-content: space-between; font-family: var(--jt-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--jt-grey); }
.geo-ph { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 12px; padding: 24px; text-align: center; border: 1px dashed #A08A67; }
.geo-ph p { margin: 0; max-width: 34ch; font-family: var(--jt-sans); font-size: 14px; line-height: 1.5; color: var(--jt-grey); }
.geo-ph-tag { font-family: var(--jt-mono); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: #8a6f3e; }
.geo-cap { display: block; margin-top: 16px; font-family: var(--jt-sans); font-size: 14px; line-height: 1.55; color: var(--jt-grey); letter-spacing: 0; }
.geo-cap a { color: var(--jt-red); }
@media (max-width: 900px) { .geo-panels { grid-template-columns: repeat(2, minmax(0, 1fr)); } .jt-bleed figcaption { position: static; padding: 10px 16px; max-width: none; background: transparent; } }

/* ---- Keep going block (Nov 2026) ---- */
.jt-next { clear: both; margin: 56px 0 48px; padding-top: 28px; border-top: 1px solid var(--jt-rule); display: grid; gap: 18px; justify-items: start; }
.jt-next-links { display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; }
.jt-next-links a, .jt-prose .jt-next-links a { font-family: var(--jt-serif); font-size: clamp(21px, 1.9vw, 27px); line-height: 1.25; color: var(--jt-ink); text-decoration: none; border-bottom: 1px solid var(--jt-rule); padding-bottom: 3px; }
.jt-next-links a:hover { color: var(--jt-oak, #9A6F2E); border-bottom-color: var(--jt-oak, #9A6F2E); }
.jt-next-links a.jt-next-touch, .jt-prose .jt-next-links a.jt-next-touch { color: var(--jt-oak, #9A6F2E); border: 1px solid var(--jt-oak, #9A6F2E); padding: 10px 22px; }
.jt-next-links a.jt-next-touch:hover { background: var(--jt-oak, #9A6F2E); color: #fff; }

/* ---- links as plain oak underlined links (Nov 2026, replaces box button) ---- */
.jt-next { gap: 0; }
.jt-next-links a, .jt-prose .jt-next-links a, .jt-next-links a.jt-next-touch, .jt-prose .jt-next-links a.jt-next-touch {
  font-family: var(--jt-serif); font-size: clamp(21px, 1.9vw, 27px); line-height: 1.3; color: var(--jt-oak, #9A6F2E);
  border: 0; padding: 0; background: none; text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px;
}
.jt-next-links a:hover, .jt-next-links a.jt-next-touch:hover { color: var(--jt-ink); background: none; text-decoration-color: var(--jt-ink); }

/* ---- links stacked (Nov 2026) ---- */
.jt-next-links { flex-direction: column; align-items: flex-start; gap: 14px; }

/* ---- Footer in the site fonts (Nov 2026) ---- */
#footerscroll .footerbutton, #footerscroll a.footerbutton {
  font-family: var(--jt-mono); font-size: 11.5px; font-weight: 400; letter-spacing: .12em; text-transform: uppercase;
  color: var(--jt-grey); line-height: 40px; text-decoration: none;
}
#footerscroll a.footerbutton:hover { color: var(--jt-red); }
#footerscroll #copyright { color: var(--jt-grey); }
@media (max-width: 600px) {
  #footerscroll .footerbutton, #footerscroll a.footerbutton { font-size: 10.5px; letter-spacing: .08em; padding-right: 4%; }
}

/* ---- Typeface B: Spectral, small-caps labels, graphite ink (Nov 2026) ---- */
.jt-nav a.jt-enquire,
.jt-toggle,
.jt-home-sub,
.jt-chapters a,
.jt-chapter-label,
.jt-honours dt,
.jt-fig-cap,
.jt-read-on,
.jt-built-label,
.jt-built-more,
.jt-next-label,
.jt-next-alt,
.jt-prose a.jt-more,
.jt-bleed figcaption,
.geo-ends,
.geo-ph-tag,
#footerscroll .footerbutton, #footerscroll a.footerbutton { text-transform: lowercase !important; letter-spacing: .09em !important; }
.jt-chapter-title, .jt-subtitle, .hm-title, .hm-h2, .geo-h1 { font-weight: 300 !important; }
.jt-prose, .hm-lead, .hm-card-text, #hometext { font-weight: 300; }
.jt-nav a { color: var(--jt-ink); }

/* page banner title in Spectral SC */
.pagetitle { font-family: var(--jt-mono) !important; text-transform: lowercase !important; letter-spacing: .14em !important; color: var(--jt-ink) !important; }

/* ===== Old template pages in the new scheme (Nov 4 2026) =====
   Piece pages, workshops, contact, legal. Overrides joachim.min.css. */
/* not on the dark Meridian/Cypher pages (they have .eyebrow) */
body:not(:has(.eyebrow)) { background-image: none !important; background-color: var(--jt-paper) !important; font-family: var(--jt-serif); color: var(--jt-ink); }
#maincontent_keinbackground, #maincontent_background { font-family: var(--jt-serif); color: var(--jt-ink); font-weight: 300; }
#maincontent_background { background: transparent !important; }
body:not(:has(.jt-prose, .jt-band)) :is(#maincontent_keinbackground, #maincontent_background) :is(p, li), .impressumtext {
  font-family: var(--jt-serif) !important; color: var(--jt-ink) !important; font-size: 17px; line-height: 1.7; font-weight: 300; text-align: left !important;
}
body:not(:has(.jt-prose, .jt-band)) :is(#maincontent_keinbackground, #maincontent_background) :is(h1, h2, h3, h4) {
  font-family: var(--jt-serif) !important; font-weight: 400; color: var(--jt-ink) !important; letter-spacing: 0 !important; text-transform: none !important; line-height: 1.25;
}
body:not(:has(.jt-prose, .jt-band)) #maincontent_keinbackground h3 { font-size: 22px; margin: 1.6em 0 .4em; }
body:not(:has(.jt-prose, .jt-band)) .indprojectparagraph a, .impressumtext a { color: var(--jt-red); }

/* piece page text block */
.indprojecttitle { font-family: var(--jt-serif) !important; font-weight: 300 !important; font-size: clamp(30px, 3.2vw, 44px) !important; line-height: 1.1 !important; letter-spacing: 0 !important; color: var(--jt-ink) !important; padding-bottom: 14px !important; }
.indprojectsubtitle { font-family: var(--jt-mono) !important; text-transform: lowercase !important; letter-spacing: .09em !important; font-weight: 400 !important; font-size: 15px !important; line-height: 1.5; color: var(--jt-oak) !important; margin-bottom: 32px !important; }
.indprojectparagraph, .indprojectparagraph p { font-family: var(--jt-serif) !important; font-size: 18px !important; line-height: 1.7 !important; font-weight: 300 !important; color: var(--jt-ink) !important; text-align: left !important; }
.indprojectparagraph p { margin: 0 0 1em; }
.indprojectparagraph a { color: var(--jt-red) !important; }
.indprojectimage { box-shadow: none; }

/* in-page Enquire button, same look as the menu one */
.enquirebutton { font-family: var(--jt-mono) !important; text-transform: lowercase !important; letter-spacing: .14em !important; font-size: 14px !important; color: var(--jt-oak) !important; background: transparent !important; border: 1px solid var(--jt-oak) !important; outline: 0 !important; box-shadow: none !important; padding: 8px 20px !important; border-radius: 0 !important; cursor: pointer; }
.enquirebutton:hover { background: var(--jt-oak) !important; color: #fff !important; }

/* previous / next */
#prev_project, #next_project { font-family: var(--jt-mono) !important; text-transform: lowercase !important; letter-spacing: .12em !important; font-size: 14px !important; color: var(--jt-grey) !important; opacity: 1 !important; }
#prev_project:hover, #next_project:hover { color: var(--jt-red) !important; }

/* piece grid captions */
.projecttitle { font-family: var(--jt-mono) !important; text-transform: lowercase !important; letter-spacing: .1em !important; font-size: 15px !important; color: var(--jt-ink) !important; margin: 10px 0 28px !important; }
.gallery .projectgalleryitem:hover .projecttitle { color: var(--jt-red) !important; }

/* enquiry form */
.enquirepopup, .freecontactform { font-family: var(--jt-serif) !important; color: var(--jt-ink) !important; }
.freecontactform label { font-family: var(--jt-mono) !important; text-transform: lowercase; letter-spacing: .09em; font-size: 14px; color: var(--jt-grey); }
.contact_feld { font-family: var(--jt-serif) !important; font-size: 16px !important; color: var(--jt-ink) !important; border: 1px solid var(--jt-rule) !important; border-radius: 0 !important; background: #fff !important; }
#submitbutton { font-family: var(--jt-mono) !important; text-transform: lowercase !important; letter-spacing: .14em !important; font-size: 14px !important; background: var(--jt-ink) !important; color: var(--jt-paper) !important; border: 0 !important; border-radius: 0 !important; }
#submitbutton:hover { background: var(--jt-red) !important; }
@media (max-width: 600px) {
  .indprojectparagraph, .indprojectparagraph p { font-size: 17px !important; }
}
#enquirebutton { position: static !important; display: block; width: fit-content !important; margin: 0 0 28px auto; line-height: 1.6 !important; }

/* legal pages: readable line length, links in red */
body:not(:has(.jt-prose, .jt-band)) #maincontent_keinbackground > :is(p, h3, ul), .impressumtext { max-width: 46em; }
body:not(:has(.jt-prose, .jt-band)) #maincontent_keinbackground > :is(p, ul) a { color: var(--jt-red) !important; }

/* footer a little larger (Nov 4 2026) */
#footerscroll .footerbutton, #footerscroll a.footerbutton { font-size: 14px !important; }
@media (max-width: 600px) { #footerscroll .footerbutton, #footerscroll a.footerbutton { font-size: 12.5px !important; } }

/* section labels ("01 / Sculpture & furniture") readable, same size as Meridian's big eyebrows (Nov 4 2026) */
body .jt-chapter-label, body .hm-block .jt-chapter-label { font-family: var(--jt-serif) !important; font-size: clamp(14px, 1.1vw, 16px) !important; font-weight: 400 !important; letter-spacing: clamp(.08em, 1vw, .14em) !important; text-transform: uppercase !important; line-height: 1.3; margin-bottom: 22px !important; }

/* ===== Links that ask to be clicked (Nov 5 2026) =====
   "See Meridian" style links and the outline buttons get a gold line
   ending in an open diamond (like the menu), which stretches on hover. */
.jt-prose a.jt-more, a.gn-btn {
  --arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M5 .8 9.2 5 5 9.2 .8 5Z' fill='none' stroke='%239A6F2E' stroke-width='1.2'/%3E%3C/svg%3E");
}
.jt-prose a.jt-more {
  display: inline-flex; align-items: center; gap: 14px;
  font-size: 15px !important; letter-spacing: .1em !important;
  color: var(--jt-oak) !important; text-decoration: none !important;
  padding: 8px 0; border: 0 !important;
}
.jt-prose a.jt-more::after, a.gn-btn::after {
  content: ""; flex: none; width: 38px; height: 11px;
  background: var(--arrow) right center / 11px 11px no-repeat,
              linear-gradient(#9A6F2E, #9A6F2E) left center / calc(100% - 9px) 1px no-repeat;
  transition: width .35s cubic-bezier(.2,.7,.2,1);
}
.jt-prose a.jt-more:hover::after, a.gn-btn:hover::after { width: 64px; }
.jt-prose a.jt-more:hover { color: var(--jt-ink) !important; }
a.gn-btn { display: inline-flex !important; align-items: center; gap: 14px; font-size: 15px !important; padding: 15px 24px !important; }
a.gn-btn:hover::after { filter: brightness(0) invert(1); }

/* ===== Quick fixes (Nov 6 2026) ===== */
/* old template's second ENQUIRE button: the menu's Enquire now opens the same form */
#enquirebutton { display: none !important; }
/* social icons: no longer floating at the left edge, sit at the end of the footer */
#footerfixed { position: static !important; width: auto !important; height: auto !important; margin: 0 !important;
  background: transparent !important; display: flex; justify-content: flex-end; gap: 10px;
  padding: 0 clamp(16px, 10vw, 144px) 28px !important; box-sizing: border-box; }
#footerfixed .socialmediabutton { width: 26px !important; height: 26px !important; opacity: .7; }
#footerfixed a:hover .socialmediabutton { opacity: 1; }

/* ===== Piece pages, new template (Nov 6 2026) ===== */
.jt-piece-page { padding-top: 0 !important; }
.jt-piece { font-family: var(--jt-serif); color: var(--jt-ink); }
.jt-piece .jt-band { padding: clamp(48px, 7vw, 104px) 0; }
.jt-piece-hero { padding-top: clamp(32px, 4vw, 56px) !important; }
.jt-piece-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 5vw, 88px); align-items: center; }
.jt-piece-title { font-family: var(--jt-serif); font-weight: 300; font-size: clamp(40px, 5vw, 72px); line-height: 1.04; margin: 0 0 10px; color: var(--jt-ink); }
.jt-piece-figure { margin: 0; }
.jt-piece-figure img { width: 100%; height: auto; max-height: 86vh; object-fit: cover; display: block; }
.jt-facts { display: grid; grid-template-columns: max-content 1fr; gap: 10px 28px; margin: 28px 0 22px; padding: 18px 0; border-top: 1px solid var(--jt-rule); border-bottom: 1px solid var(--jt-rule); }
.jt-facts dt { font-family: var(--jt-mono); font-size: 13px; letter-spacing: .1em; text-transform: lowercase; color: var(--jt-grey); padding-top: 3px; }
.jt-facts dd { margin: 0; font-size: 17px; color: var(--jt-ink); }
.jt-price { font-size: clamp(22px, 2vw, 28px); font-weight: 300; color: var(--jt-ink); margin: 0 0 22px !important; }
.jt-btns { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px !important; }
a.jt-btn, button.jt-btn { cursor: pointer; display: inline-flex; align-items: center; gap: 14px; padding: 15px 24px; border: 1px solid var(--jt-oak); font-family: var(--jt-mono); font-size: 15px; letter-spacing: .12em; text-transform: lowercase; color: var(--jt-oak) !important; text-decoration: none !important; transition: background .2s, color .2s; }
a.jt-btn::after, button.jt-btn::after { content: ""; flex: none; width: 38px; height: 11px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M5 .8 9.2 5 5 9.2 .8 5Z' fill='none' stroke='%239A6F2E' stroke-width='1.2'/%3E%3C/svg%3E") right center / 11px 11px no-repeat,
              linear-gradient(#9A6F2E, #9A6F2E) left center / calc(100% - 9px) 1px no-repeat;
  transition: width .35s cubic-bezier(.2,.7,.2,1); }
a.jt-btn:hover::after, button.jt-btn:hover::after { width: 64px; }
a.jt-btn-solid, a.jt-btn:hover, button.jt-btn-solid { background: var(--jt-oak); color: #fff !important; }
a.jt-btn-solid::after, a.jt-btn:hover::after, button.jt-btn-solid::after { filter: brightness(0) invert(1); }
a.jt-btn-solid:hover, button.jt-btn-solid:hover { background: #7f5b25; }
.jt-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.jt-g { display: block; overflow: hidden; }
.jt-g img { width: 100%; height: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; transition: transform .6s ease; }
.jt-g:hover img { transform: scale(1.03); }
.jt-g-wide { grid-column: span 2; grid-row: span 2; }
.jt-g-wide img { aspect-ratio: auto; }
.jt-piece-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); }
.jt-piece .jt-chapter-title { font-size: clamp(30px, 3.2vw, 46px) !important; max-width: 18ch; }
.jt-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 8px 0 28px; }
.jt-rel { display: block; text-decoration: none; color: var(--jt-ink); }
.jt-rel img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; margin-bottom: 12px; }
.jt-rel-name { display: block; font-size: 22px; font-weight: 300; }
.jt-rel-meta { display: block; font-family: var(--jt-mono); font-size: 12px; letter-spacing: .08em; text-transform: lowercase; color: var(--jt-grey); margin-top: 2px; }
.jt-rel:hover .jt-rel-name { color: var(--jt-oak); }
@media (max-width: 860px) {
  .jt-piece-grid, .jt-piece-cols { grid-template-columns: minmax(0, 1fr); }
  .jt-piece-figure { order: -1; }
  .jt-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .jt-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .jt-related-grid .jt-rel:nth-child(3) { display: none; }
  .jt-gallery .jt-g:nth-child(even):last-child { display: none; } /* no lone photo in the last row */
}

/* Piece pages: details, enquiry form, full-screen photos (Nov 6 2026) */
.jt-price .jt-pricelink { font-family: var(--jt-mono); font-size: 14px; letter-spacing: .1em; text-transform: lowercase; color: var(--jt-oak); text-decoration: none; border-bottom: 1px solid var(--jt-oak); margin-left: 6px; }
.jt-details-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); margin-top: 18px; }
.jt-details h3 { font-family: var(--jt-mono); font-weight: 400; font-size: 15px; letter-spacing: .12em; text-transform: lowercase; color: var(--jt-oak); margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--jt-rule); }
.jt-details dl { margin: 0; }
.jt-details dt { font-family: var(--jt-mono); font-size: 12px; letter-spacing: .1em; text-transform: lowercase; color: var(--jt-grey); margin-top: 14px; }
.jt-details dd { margin: 2px 0 0; font-size: 17px; line-height: 1.45; color: var(--jt-ink); }
.jt-tbc { display: inline-block; font-family: var(--jt-mono); font-size: 12px; letter-spacing: .08em; padding: 1px 8px; background: #F3E3B8; color: #6b4e1f; }
.jt-form { display: grid; gap: 16px; align-content: start; }
.jt-form label { display: grid; gap: 6px; font-family: var(--jt-mono); font-size: 13px; letter-spacing: .1em; text-transform: lowercase; color: var(--jt-grey); }
.jt-form input, .jt-form textarea { font-family: var(--jt-serif); font-size: 17px; color: var(--jt-ink); background: #fff; border: 1px solid var(--jt-rule); border-radius: 0; padding: 12px 14px; width: 100%; box-sizing: border-box; letter-spacing: 0; text-transform: none; }
.jt-form textarea { min-height: 150px; resize: vertical; line-height: 1.5; }
.jt-form input:focus, .jt-form textarea:focus { outline: none; border-color: var(--jt-oak); }
.jt-form button.jt-btn { justify-self: start; border: 1px solid var(--jt-oak); margin-top: 4px; }
.jt-g, .jt-piece-figure img { cursor: zoom-in; }
.jt-lb { position: fixed; inset: 0; z-index: 10000; background: rgba(22, 21, 19, .96); display: none; align-items: center; justify-content: center; touch-action: pan-y; }
.jt-lb.open { display: flex; }
.jt-lb img { max-width: 92vw; max-height: 88vh; object-fit: contain; display: block; user-select: none; -webkit-user-drag: none; }
.jt-lb button { position: absolute; background: none; border: 0; color: #fff; opacity: .75; cursor: pointer; font-family: var(--jt-serif); font-weight: 300; line-height: 1; padding: 14px; }
.jt-lb button:hover { opacity: 1; }
.jt-lb-close { top: 10px; right: 14px; font-size: 40px; }
.jt-lb-prev, .jt-lb-next { top: 50%; transform: translateY(-50%); font-size: 54px; }
.jt-lb-prev { left: 8px; } .jt-lb-next { right: 8px; }
.jt-lb-count { position: absolute; bottom: 16px; left: 0; right: 0; text-align: center; color: #fff; opacity: .6; font-family: var(--jt-mono); font-size: 13px; letter-spacing: .12em; }
@media (max-width: 1100px) { .jt-details-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .jt-details-grid { grid-template-columns: minmax(0, 1fr); } .jt-lb-prev, .jt-lb-next { display: none; } .jt-lb img { max-width: 100vw; } }
.jt-price .jt-vat { font-family: var(--jt-mono); font-size: 13px; letter-spacing: .08em; color: var(--jt-grey); margin-left: 4px; }
.jt-price .jt-net { display: block; margin-top: 8px; font-family: var(--jt-mono); font-size: 13px; letter-spacing: .06em; color: var(--jt-grey); }
.jt-price .jt-net .jt-pricelink { margin-left: 4px; }
/* hero photo never cropped; even gallery without a wide tile */
.jt-piece-figure { text-align: center; }
.jt-piece-figure img { width: auto !important; max-width: 100%; max-height: 86vh; object-fit: contain !important; margin: 0 auto; }
.jt-gallery-even { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 860px) { .jt-gallery-even { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }
/* justified gallery rows (js/jt-lightbox.js) */
.jt-gallery.jt-flow { display: flex !important; flex-wrap: wrap; gap: 12px; }
.jt-gallery.jt-flow .jt-g { display: block !important; flex: none; grid-column: auto; grid-row: auto; }
.jt-gallery.jt-flow .jt-g img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
@media (max-width: 860px) { .jt-gallery.jt-flow { gap: 8px; } }
/* gallery as a strip: one calm row, swipe or arrows */
.jt-gallery.jt-gallery-strip { display: flex !important; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.jt-gallery-strip::-webkit-scrollbar { display: none; }
.jt-gallery-strip .jt-g { display: block !important; flex: none; height: clamp(260px, 44vh, 440px); scroll-snap-align: start; }
.jt-gallery-strip .jt-g img { height: 100%; width: auto; aspect-ratio: auto; object-fit: contain; }
.jt-gallery-strip .jt-g:hover img { transform: none; }
.jt-strip-nav { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.jt-strip-nav button { width: 46px; height: 46px; border: 1px solid var(--jt-oak); background: none; color: var(--jt-oak); font-size: 20px; cursor: pointer; transition: background .2s, color .2s, opacity .2s; }
.jt-strip-nav button:hover:not(:disabled) { background: var(--jt-oak); color: #fff; }
.jt-strip-nav button:disabled { opacity: .3; cursor: default; }
@media (max-width: 860px) { .jt-gallery-strip .jt-g { height: 280px; } .jt-gallery.jt-gallery-strip { gap: 8px; } }
/* soft fade on the side where more photos wait */
.jt-gallery-strip { --fl: 0px; --fr: 0px; -webkit-mask-image: linear-gradient(to right, transparent 0, #000 var(--fl), #000 calc(100% - var(--fr)), transparent 100%); mask-image: linear-gradient(to right, transparent 0, #000 var(--fl), #000 calc(100% - var(--fr)), transparent 100%); }
.jt-gallery-strip.fade-l { --fl: clamp(40px, 8vw, 120px); }
.jt-gallery-strip.fade-r { --fr: clamp(40px, 8vw, 120px); }

/* ---- Studio top tidy (Nov 6 2026): no page title, bigger jump menu, readable lead-in ---- */
.jt-intro .jt-chapters { gap: 6px 0; padding: 0 0 22px; }
.jt-intro .jt-chapters a { font-size: 19px !important; padding: 6px 30px; color: var(--jt-ink); }
.jt-intro .jt-chapters a:first-child { padding-left: 0; }
.jt-intro .jt-chapters a:hover, .jt-intro .jt-chapters a[aria-current="true"] { color: var(--jt-red); }
.jt-intro .jt-read-on { font-family: var(--jt-serif) !important; text-transform: none !important; letter-spacing: 0 !important; font-size: clamp(24px, 2.4vw, 34px); line-height: 1.2; margin-top: 36px !important; color: var(--jt-ink); }
.jt-intro .jt-read-on a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--jt-red); padding-bottom: 2px; }
.jt-intro .jt-read-on a::after { content: "  \2193"; color: var(--jt-red); }
@media (max-width: 900px) { .jt-intro .jt-chapters a { font-size: 13px !important; padding: 5px 14px; } }
.jt-intro.jt-chapter { padding-top: clamp(8px, 1.5vw, 24px); }
#maincontent_keinbackground:has(.jt-intro) { padding-top: 0; }

/* ---- Hanover house before / today slider ---- */
.hh-cmp { margin: 0; }
.hh-stage { position: relative; aspect-ratio: 16 / 9; overflow: hidden; touch-action: pan-y; cursor: ew-resize; user-select: none; -webkit-user-select: none; background: #ddd; }
.hh-stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.hh-before { clip-path: inset(0 calc(100% - var(--p)) 0 0); }
.hh-line { position: absolute; top: 0; bottom: 0; left: var(--p); width: 2px; margin-left: -1px; background: #fff; box-shadow: 0 0 6px rgba(0,0,0,.35); pointer-events: none; }
.hh-line i { position: absolute; top: 50%; left: 50%; width: 38px; height: 38px; margin: -19px 0 0 -19px; border-radius: 50%; border: 1px solid #fff; background: rgba(52,54,59,.55); }
.hh-line i::before, .hh-line i::after { content: ""; position: absolute; top: 50%; width: 7px; height: 7px; margin-top: -4px; border-top: 1.5px solid #fff; border-left: 1.5px solid #fff; }
.hh-line i::before { left: 9px; transform: rotate(-45deg); }
.hh-line i::after { right: 9px; transform: rotate(135deg); }
.hh-tag { position: absolute; top: 12px; font-family: var(--jt-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #fff; background: rgba(52,54,59,.6); padding: 4px 10px; pointer-events: none; }
.hh-tag-l { left: 12px; } .hh-tag-r { right: 12px; }
.hh-range { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; margin: 0; cursor: ew-resize; }
.hh-range:focus-visible ~ .hh-line i { outline: 2px solid var(--jt-red); outline-offset: 3px; }
.hh-geo { opacity: var(--g, 0); filter: drop-shadow(0 0 1.2px rgba(40,40,40,.55)); }
.hh-geolab { display: flex; align-items: center; gap: 16px; margin-top: 14px; font-family: var(--jt-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--jt-grey); }
.hh-gslide { flex: 1; max-width: 360px; accent-color: var(--jt-red); }

/* ---- Hanover: two lines (before/today and geometry) ---- */
.hh-geo { opacity: 1; clip-path: inset(0 0 0 var(--q)); }
.hh-range, .hh-line, .hh-geolab { display: none; }
.hh-h { position: absolute; top: 0; bottom: 0; width: 44px; margin-left: -22px; padding: 0; border: 0; background: none; cursor: ew-resize; touch-action: pan-y; }
.hh-hp { left: var(--p); } .hh-hq { left: var(--q); }
.hh-hl { position: absolute; top: 0; bottom: 0; left: 50%; width: 2px; margin-left: -1px; background: #fff; box-shadow: 0 0 6px rgba(0,0,0,.35); }
.hh-h i { position: absolute; top: 50%; left: 50%; width: 38px; height: 38px; margin: -19px 0 0 -19px; border-radius: 50%; border: 1px solid #fff; background: rgba(52,54,59,.55); }
.hh-h i::before, .hh-h i::after { content: ""; position: absolute; top: 50%; width: 7px; height: 7px; margin-top: -4px; border-top: 1.5px solid #fff; border-left: 1.5px solid #fff; }
.hh-h i::before { left: 9px; transform: rotate(-45deg); }
.hh-h i::after { right: 9px; transform: rotate(135deg); }
.hh-hq .hh-hl { background: #e9d3a6; }
.hh-hq i { border-color: #e9d3a6; }
.hh-hq em { position: absolute; bottom: 12px; right: 50%; margin-right: 10px; font-style: normal; font-family: var(--jt-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #fff; background: rgba(52,54,59,.6); padding: 4px 10px; white-space: nowrap; }
.hh-h:focus-visible i { outline: 2px solid var(--jt-red); outline-offset: 3px; }
.hh-tag-r { top: 12px; }

/* ---- One footer for all pages (Nov 6 2026): closing line, copyright left, links right ---- */
footer.jt-foot { display: block; border-top: 1px solid var(--line, var(--jt-rule)) !important; background: transparent; margin: 0; padding: 0; }
.jt-foot-in { box-sizing: border-box; width: 80%; margin: 0 auto; padding: 16px 0 18px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px 24px; }
footer.jt-foot, footer.jt-foot span, footer.jt-foot a { font-family: var(--jt-mono) !important; font-size: 13px !important; letter-spacing: .06em !important; text-transform: none !important; color: var(--muted, var(--jt-grey)) !important; text-decoration: none !important; }
footer.jt-foot a, footer.jt-foot span { border: 0 !important; }
footer.jt-foot a:hover { color: var(--jt-red) !important; }
footer.jt-foot nav { display: flex; flex-wrap: wrap; gap: 8px 24px; }
@media (max-width: 900px) { .jt-foot-in { width: auto; margin: 0 16px; } }

/* ---- Social links: a small fixed rail at the left edge, always in reach ---- */
.jt-social { position: fixed; left: 20px; top: 50%; transform: translateY(-50%); z-index: 950; display: flex; flex-direction: column; align-items: center; gap: 12px; color: #9A6F2E; }
.jt-social::before, .jt-social::after { content: ""; display: block; width: 1px; height: 40px; background: currentColor; opacity: .4; }
.jt-social a { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: rgba(247, 245, 240, .9); border: 1px solid rgba(154, 111, 46, .5); color: #9A6F2E; text-decoration: none; transition: background .2s, color .2s; }
.jt-social a:hover, .jt-social a:focus-visible { background: #9A6F2E; color: #fff; }
.jt-social svg, .jt-social-m svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.jt-social-m { display: none; }
@media (max-width: 900px) { .jt-social { display: none; } }
@media (max-width: 900px) {
  .jt-social-m { display: flex; gap: 14px; padding-top: 14px; }
  .jt-social-m a { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(154, 111, 46, .5); color: #9A6F2E; }
}
@media print { .jt-social { display: none; } }

/* ---- One page width for every page (Nov 6 2026): header, content and footer line up with the Meridian-type pages ---- */
@media (min-width: 901px) {
  .jt-header, .jt-foot-in,
  #maincontent_keinbackground, #maincontent_background, #homemaincontent {
    box-sizing: border-box; width: min(1200px, calc(100% - 128px)) !important; margin-left: auto !important; margin-right: auto !important;
  }
}

/* rail sits in the middle of the left margin, and gets smaller on narrow screens */
.jt-social { left: max(6px, calc((100vw - 1200px) / 4 - 16px)); }
@media (max-width: 1279px) { .jt-social a { width: 26px; height: 26px; } .jt-social svg { width: 13px; height: 13px; } .jt-social::before, .jt-social::after { height: 28px; } }

/* Meridian-type pages use --gutter for their side margins: give them the same 64px, so the social rail never touches text */
@media (min-width: 901px) { html:root { --wide: 1328px; --gutter: max(64px, env(safe-area-inset-left, 0px)); --gutter-r: max(64px, env(safe-area-inset-right, 0px)); } }

/* Nov 6 2026 round 2: social rail further left, bigger, lighter until hovered */
.jt-social { left: max(10px, calc((100vw - 1200px) / 4 - 34px)); gap: 14px; }
.jt-social a { width: 38px; height: 38px; opacity: .55; transition: opacity .2s, background .2s, color .2s; }
.jt-social a:hover, .jt-social a:focus-visible { opacity: 1; }
.jt-social svg { width: 17px; height: 17px; }
.jt-social::before, .jt-social::after { opacity: .25; }
@media (max-width: 1279px) { .jt-social a { width: 32px; height: 32px; } .jt-social svg { width: 15px; height: 15px; } .jt-social { left: 8px; } }
footer.jt-foot { margin: 0 !important; }
#maincontent_keinbackground, #maincontent_background, #homemaincontent { margin-bottom: 0 !important; padding-bottom: 0 !important; }
body::after { display: none !important; }
/* social buttons: solid outline and icon, see-through fill */
.jt-social a { opacity: 1 !important; background: rgba(247, 245, 240, .35); border: 1px solid #9A6F2E; }
.jt-social a:hover, .jt-social a:focus-visible { background: #9A6F2E; }
/* chapter labels: a polygon instead of a number (triangle, square, pentagon, hexagon ...) */
.jt-num { display: inline-block; width: 1.15em; height: 1.15em; margin: 0 .6em 0 0; vertical-align: -0.2em; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linejoin: round; }
/* social buttons: near-solid paper fill so they read on light and dark sections */
.jt-social a { background: rgba(247, 245, 240, .92) !important; }
.jt-social a:hover, .jt-social a:focus-visible { background: #9A6F2E !important; color: #fff; }

/* ---- Final check Nov 6 2026 ---- */
/* menu: the same light weight on every page */
.jt-nav a:not(.jt-enquire) { font-weight: 300 !important; }
/* footer: same height everywhere */
.jt-foot-in, .jt-foot-in span, .jt-foot-in a { line-height: 1.6 !important; }
/* piece titles on portfolio and built-work pages use the same Cormorant Garamond as the sales pages */
.jt-piece-title { font-family: "Cormorant Garamond", Georgia, serif !important; font-weight: 300 !important; letter-spacing: .02em; }
/* page titles that became h1: keep the old look */
h1.pagetitle { font-size: inherit; font-weight: inherit; margin: 0; line-height: inherit; }
.jt-vh { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
