/* ArtisAegis — conservation-report design system.
   Libre Caslon throughout; paper/ink/gilt/venetian; hairline ledger rules. */

:root{
  --paper:#f5f1e8;
  --paper-deep:#ece5d6;
  --ink:#241f18;
  --ink-soft:#5d5344;
  --bench:#191510;
  --bench-ink:#e9e2d3;
  --bench-soft:#a2957e;
  --venetian:#7e2d1e;
  --gilt:#a8823f;
  --hair:#cfc4ac;
  --hair-dark:#3a3226;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Libre Caslon Text", Georgia, serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.62;
  font-size:17px;
}
img{max-width:100%;display:block}
a{color:inherit}

h1,h2,h3,.display{
  font-family:"Libre Caslon Display","Libre Caslon Text",Georgia,serif;
  font-weight:400;
  line-height:1.12;
  letter-spacing:-0.005em;
}

.label{
  font-size:.72rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--gilt);
}
.label.on-dark{color:var(--gilt)}

.wrap{max-width:1220px;margin:0 auto;padding:0 5vw}

/* ---------- header ---------- */
header{
  border-bottom:1px solid var(--hair);
  background:var(--paper);
}
.head-in{
  max-width:1220px;margin:0 auto;padding:1.05rem 5vw;
  display:flex;align-items:baseline;gap:2rem;flex-wrap:wrap;
}
.wordmark{font-family:"Libre Caslon Display",serif;font-size:1.22rem;text-decoration:none;white-space:nowrap}
.wordmark span{color:var(--venetian)}
nav{display:flex;gap:1.6rem;margin-left:auto;flex-wrap:wrap}
nav a{
  text-decoration:none;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-soft);padding-bottom:2px;border-bottom:1px solid transparent;
}
nav a:hover,nav a[aria-current]{color:var(--ink);border-bottom-color:var(--gilt)}
.head-tel{font-size:.85rem;color:var(--ink);text-decoration:none;white-space:nowrap}

/* ---------- hero (full-bleed studio photograph) ---------- */
.hero{
  position:relative;overflow:hidden;isolation:isolate;
  background:var(--bench);border-bottom:1px solid var(--hair-dark);
}
.hero-img{
  width:100%;height:auto;min-height:74vh;max-height:90vh;
  object-fit:cover;object-position:72% 30%;display:block;
}
.hero-scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(to right,
      rgba(16,11,7,0.88) 0%, rgba(16,11,7,0.70) 30%,
      rgba(16,11,7,0.36) 52%, rgba(16,11,7,0.08) 74%, rgba(16,11,7,0) 100%),
    linear-gradient(to top,
      rgba(16,11,7,0.82) 0%, rgba(16,11,7,0.42) 26%, rgba(16,11,7,0) 60%);
}
.hero-content{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  max-width:1220px;margin:0 auto;
  padding:0 5vw clamp(3rem,5vw,5.4rem);
  color:var(--paper);
}
.hero-content>*{max-width:44rem}
.label.on-hero{color:#e6c489;display:block;margin-bottom:1.5rem}
.hero h1{
  font-size:clamp(2.6rem,5.4vw,5rem);color:#fbf3e2;
  margin-bottom:1.5rem;max-width:16ch;text-shadow:0 2px 26px rgba(0,0,0,.5);
}
.hero h1 em{font-style:italic;color:#e0b070}
.hero-sub{
  font-size:clamp(1rem,1.25vw,1.14rem);color:#ece2cc;max-width:40rem;
  margin-bottom:2.2rem;line-height:1.6;text-shadow:0 1px 12px rgba(0,0,0,.5);
}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.btn{
  display:inline-block;text-decoration:none;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;
  padding:.95rem 1.5rem;border:1px solid var(--ink);
}
.btn.primary{background:var(--venetian);border-color:var(--venetian);color:#fff}
.btn.primary:hover{background:#6a2418}
.btn.quiet:hover{background:var(--paper-deep)}
.btn.quiet-hero{color:#fbf3e2;border-color:rgba(251,243,226,.72);background:transparent}
.btn.quiet-hero:hover{background:rgba(251,243,226,.12);border-color:#fbf3e2}
.hero-note{font-size:.82rem;color:#d8cbad;margin-top:1.1rem;text-shadow:0 1px 8px rgba(0,0,0,.5)}

/* ---------- ledger strip ---------- */
.ledger{border-bottom:1px solid var(--hair);background:var(--paper-deep)}
.ledger-in{
  max-width:1220px;margin:0 auto;padding:1.5rem 5vw;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;
}
.ledger-item{border-left:1px solid var(--gilt);padding-left:1.1rem}
.ledger-item b{font-family:"Libre Caslon Display",serif;font-weight:400;font-size:1.05rem;display:block;line-height:1.3}
.ledger-item span{font-size:.8rem;color:var(--ink-soft)}

/* ---------- sections ---------- */
section{padding:5.2rem 0}
.sec-head{max-width:760px;margin-bottom:3rem}
.sec-head .label{display:block;margin-bottom:1rem}
.sec-head h2{font-size:clamp(1.8rem,3.2vw,2.7rem);margin-bottom:1rem}
.sec-head p{color:var(--ink-soft)}

/* what we treat */
.treat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.6rem}
.treat{border-top:1px solid var(--hair-dark);padding-top:1.4rem}
.treat h3{font-size:1.22rem;margin-bottom:.7rem}
.treat p{font-size:.95rem;color:var(--ink-soft)}

/* ---------- bench (dark gallery) ---------- */
.bench{background:var(--bench);color:var(--bench-ink)}
.bench .sec-head h2{color:var(--bench-ink)}
.bench .sec-head p{color:var(--bench-soft)}
.case-rows{display:flex;flex-direction:column;gap:4.2rem}
.case{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:2.6rem;align-items:end}
.case:nth-child(even){grid-template-columns:minmax(0,4fr) minmax(0,7fr)}
.case:nth-child(even) figure{order:2}
.case figure{border:1px solid var(--hair-dark);background:#000}
.case figure img{width:100%;height:auto}
.case.tall{grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:center}
.case.tall figure{max-width:580px;justify-self:center}
.case-note h3{font-size:1.35rem;margin-bottom:.8rem;color:var(--bench-ink)}
.case-note p{font-size:.93rem;color:var(--bench-soft)}
.case-note .label{display:block;margin-bottom:.9rem}
.case-pair{display:grid;grid-template-columns:1fr 1fr;gap:2.6rem}
.case-pair .case-sm figure{border:1px solid var(--hair-dark);background:#000}
.case-sm h3{font-size:1.1rem;margin:.9rem 0 .3rem;color:var(--bench-ink)}
.case-sm p{font-size:.88rem;color:var(--bench-soft)}

/* ---------- feature case (1860) ---------- */
.feature{background:var(--venetian);color:#f7ede4}
.feature-in{max-width:900px;margin:0 auto;padding:0 5vw;text-align:left}
.feature .label{color:#e5c79a;display:block;margin-bottom:1.4rem}
.feature blockquote{
  font-family:"Libre Caslon Display",serif;
  font-size:clamp(1.25rem,2.4vw,1.75rem);line-height:1.42;
}
.feature cite{display:block;font-style:normal;font-size:.85rem;margin-top:1.6rem;color:#e0c2a4}
.feature cite b{display:block;font-size:.95rem;color:#fff}

/* ---------- quotes ---------- */
.quotes{border-top:1px solid var(--hair)}
.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.quote{border-top:2px solid var(--gilt);padding-top:1.5rem}
.quote blockquote{font-size:1.02rem;line-height:1.6}
.quote cite{display:block;font-style:normal;font-size:.82rem;color:var(--ink-soft);margin-top:1rem;letter-spacing:.05em}

/* ---------- process page ---------- */
.steps{display:flex;flex-direction:column}
.step{
  display:grid;grid-template-columns:110px minmax(0,1fr);gap:2.4rem;
  padding:2.6rem 0;border-top:1px solid var(--hair);
}
.step:last-child{border-bottom:1px solid var(--hair)}
.step-no{
  font-family:"Libre Caslon Display",serif;font-size:2rem;color:var(--gilt);line-height:1;
}
.step h3{font-size:1.45rem;margin-bottom:.8rem}
.step p{max-width:46rem;color:var(--ink-soft);font-size:.98rem}
.step p+p{margin-top:.8rem}
.step .fine{font-size:.85rem;color:var(--gilt)}

.ethics{background:var(--paper-deep);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.ethics-in{max-width:820px;margin:0 auto;padding:0 5vw;text-align:center}
.ethics p{font-family:"Libre Caslon Display",serif;font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.5}
.ethics .label{display:block;margin-bottom:1.2rem}

/* ---------- conservator page ---------- */
.cons-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:3.4rem;align-items:start}
.cons-photos{display:flex;flex-direction:column;gap:1.6rem;position:sticky;top:2rem}
.cons-photos figure{border:1px solid var(--hair)}
.cons-photos figcaption{font-size:.78rem;color:var(--ink-soft);padding:.6rem .2rem 0;letter-spacing:.04em}
.cons-copy h2{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:1.4rem}
.cons-copy p{margin-bottom:1.1rem;color:var(--ink-soft)}
.cons-copy p b{color:var(--ink);font-weight:400}
.record{margin-top:2.6rem;border-top:1px solid var(--hair-dark);padding-top:1.6rem}
.record h3{font-size:1.2rem;margin-bottom:1rem}
.record ul{list-style:none}
.record li{
  padding:.55rem 0;border-bottom:1px solid var(--hair);
  font-size:.92rem;display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap;
}
.record li span{color:var(--ink-soft);font-size:.85rem}

/* ---------- contact band ---------- */
.contact{background:var(--bench);color:var(--bench-ink);text-align:center}
.contact .label{display:block;margin-bottom:1.2rem}
.contact h2{font-size:clamp(1.9rem,3.4vw,2.8rem);margin-bottom:1.1rem;color:var(--bench-ink)}
.contact p{color:var(--bench-soft);max-width:38rem;margin:0 auto 2.2rem}
.contact .hero-cta{justify-content:center}
.contact .btn{border-color:var(--bench-ink);color:var(--bench-ink)}
.contact .btn.primary{background:var(--venetian);border-color:var(--venetian);color:#fff}
.contact .fine{font-size:.8rem;color:var(--bench-soft);margin-top:1.4rem}

/* ---------- footer ---------- */
footer{background:#120f0b;color:var(--bench-soft);font-size:.85rem}
.foot-in{
  max-width:1220px;margin:0 auto;padding:2.6rem 5vw;
  display:flex;gap:2.5rem;flex-wrap:wrap;justify-content:space-between;
}
footer a{color:var(--bench-ink);text-decoration:none}
footer .fm{font-family:"Libre Caslon Display",serif;font-size:1rem;color:var(--bench-ink)}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .hero-img{min-height:240px;height:44vh;max-height:none;object-position:66% 30%}
  .hero-scrim{display:none}
  .hero-content{
    position:relative;left:auto;right:auto;bottom:auto;
    background:var(--bench);padding:2.6rem 5vw 3rem;
  }
  .hero h1{font-size:clamp(2.1rem,7vw,3rem)}
  .ledger-in{grid-template-columns:1fr 1fr;gap:1.4rem}
  .treat-grid{grid-template-columns:1fr}
  .case,.case:nth-child(even){grid-template-columns:1fr}
  .case:nth-child(even) figure{order:0}
  .case-pair{grid-template-columns:1fr}
  .quote-grid{grid-template-columns:1fr}
  .cons-grid{grid-template-columns:1fr}
  .cons-photos{position:static;flex-direction:row}
  .cons-photos figure{flex:1}
}
@media (max-width:560px){
  body{font-size:16px}
  .head-in{gap:.9rem;padding:.9rem 5vw}
  nav{gap:1rem;margin-left:0}
  .head-tel{margin-left:auto}
  .hero-content{padding:2.2rem 5vw 2.8rem}
  .btn.primary,.btn.quiet-hero{width:100%;text-align:center}
  section{padding:3.6rem 0}
  .step{grid-template-columns:1fr;gap:.6rem}
  .cons-photos{flex-direction:column}
}
