:root {
  --ink: #0b1622;
  --ink-soft: #172637;
  --paper: #f3efe5;
  --ivory: #fbf8f0;
  --warm: #e4dccd;
  --line: #cfc4b2;
  --gold: #aa8750;
  --gold-dark: #7d6037;
  --white: #fffefa;
  --serif: "Source Serif 4", Georgia, serif;
  --sans: "Public Sans", Arial, sans-serif;
  --shadow: 0 30px 90px rgba(6, 15, 24, .16);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.72;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
p, ul, ol { margin-top: 0; }
h1, h2, h3 {
  margin: 0 0 .8rem;
  font-family: var(--serif);
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.045em;
  text-wrap: balance;
}
h1 { font-size: clamp(3.25rem, 8vw, 8.4rem); }
h2 { font-size: clamp(2.35rem, 5vw, 5.4rem); }
h3 { font-size: clamp(1.7rem, 2.8vw, 3.25rem); }

.shell { width: min(100% - 3rem, 1280px); margin-inline: auto; }
.narrow { width: min(100% - 3rem, 800px); margin-inline: auto; }
.section { padding: clamp(5rem, 10vw, 9.5rem) 0; }
.section-paper { background: var(--ivory); }
.section-ivory { background: var(--ivory); }
.section-ink { background: var(--ink); color: var(--ivory); }
.eyebrow,
.archive-edition,
.folio-kicker,
.record-code,
.chapter-number,
.ledger-code,
.price-qualifier {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .17em;
  line-height: 1.4;
  text-transform: uppercase;
}
.eyebrow { color: var(--gold-dark); margin-bottom: 1.15rem; }
.section-ink .eyebrow, .site-footer .eyebrow { color: #cfb482; }
.lede { font-family: var(--serif); font-size: clamp(1.25rem, 2vw, 1.65rem); line-height: 1.52; letter-spacing: -.015em; }
.fine-print { color: #5f6871; font-size: .84rem; line-height: 1.65; }

.skip-link {
  position: fixed;
  top: .7rem;
  left: .7rem;
  z-index: 1000;
  padding: .7rem 1rem;
  background: var(--white);
  color: var(--ink);
  transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }
.preview-bar {
  background: #d4b26d;
  color: #0b1622;
  padding: .36rem 1rem;
  text-align: center;
  font-size: .73rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.site-header {
  position: relative;
  z-index: 100;
  background: rgba(243, 239, 229, .93);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}
.header-inner { min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .85rem; text-decoration: none; }
.brand-mark { width: 52px; height: 52px; flex: 0 0 auto; color: var(--ink); }
.brand-copy { display: grid; line-height: 1.1; }
.brand-name { font-family: var(--serif); font-size: 1.65rem; letter-spacing: -.035em; }
.brand-descriptor { margin-top: .22rem; font-size: .61rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.site-nav { display: flex; align-items: center; gap: clamp(.9rem, 1.7vw, 1.7rem); }
.site-nav a, .motion-toggle {
  position: relative;
  border: 0;
  background: none;
  color: var(--ink);
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
}
.site-nav a:not(.nav-cta)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -.45rem;
  height: 1px;
  background: var(--gold-dark);
  transition: right .25s ease;
}
.site-nav a:hover::after, .site-nav a[aria-current="page"]::after { right: 0; }
.motion-toggle { display: none; align-items: center; gap: .4rem; color: #59616a; }
.motion-ready .motion-toggle { display: inline-flex; }
.nav-cta { padding: .78rem 1.1rem; border: 1px solid var(--ink); }
.nav-cta:hover { background: var(--ink); color: var(--ivory); }
.menu-toggle { display: none; border: 0; background: transparent; color: var(--ink); cursor: pointer; }
.menu-icon { display: grid; gap: 5px; width: 25px; }
.menu-icon i { display: block; height: 1px; background: currentColor; transition: transform .25s ease; }

.button-row { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.button-row-center { justify-content: center; text-align: center; }
.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--ivory);
  padding: .86rem 1.4rem;
  font-size: .83rem;
  font-weight: 700;
  letter-spacing: .055em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.button:hover { transform: translateY(-2px); background: var(--gold-dark); border-color: var(--gold-dark); }
.button-secondary { background: transparent; color: var(--ink); }
.button-secondary:hover { background: var(--ink); color: var(--ivory); }
.button-light { border-color: var(--ivory); background: var(--ivory); color: var(--ink); }
.button-light:hover { border-color: var(--gold); background: var(--gold); color: var(--ink); }
.text-link { font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.text-link span { display: inline-block; margin-left: .4rem; transition: transform .2s ease; }
.text-link:hover span { transform: translate(3px, -3px); }

/* Home: an archive being opened */
.archive-hero { overflow: clip; background: var(--paper); }
.archive-hero__top { padding-top: clamp(2rem, 5vw, 4rem); }
.archive-edition { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-block: 1px solid var(--line); }
.archive-hero__title { max-width: 1050px; margin: 0 auto; padding: clamp(4.5rem, 9vw, 9rem) 0 2.5rem; text-align: center; }
.archive-hero__title h1 { margin-bottom: 2rem; }
.archive-hero__title .lede { max-width: 820px; margin: 0 auto 2.25rem; }
.archive-motion { min-height: 165vh; padding-top: 2rem; }
.archive-motion__sticky { position: sticky; top: 1.5rem; min-height: calc(100vh - 3rem); display: grid; place-items: center; }
.archive-motion__stage { position: relative; height: min(76vh, 760px); min-height: 520px; }
.archive-piece {
  --piece-x: 0px;
  --piece-y: 0px;
  --piece-r: 0deg;
  --piece-scale: 1;
  position: absolute;
  top: 7%;
  bottom: 8%;
  overflow: hidden;
  border: 12px solid var(--ivory);
  box-shadow: var(--shadow);
  transform: translate3d(var(--piece-x), var(--piece-y), 0) rotate(var(--piece-r)) scale(var(--piece-scale));
  will-change: transform;
}
.archive-piece img { width: 100%; height: 100%; object-fit: cover; }
.archive-piece--left { left: 3%; width: 31.5%; }
.archive-piece--left img { object-position: left center; }
.archive-piece--center { left: 34.25%; width: 31.5%; }
.archive-piece--center img { object-position: center center; }
.archive-piece--right { right: 3%; width: 31.5%; }
.archive-piece--right img { object-position: right center; }
.archive-motion__caption {
  position: absolute;
  left: 3%;
  right: 3%;
  bottom: 0;
  display: flex;
  justify-content: space-between;
  color: #5a6065;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.plain-answer { background: var(--ivory); border-block: 1px solid var(--line); }
.plain-answer__grid { display: grid; grid-template-columns: .8fr 1.6fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.plain-answer__grid h2 { font-size: clamp(2.6rem, 5.6vw, 5.8rem); }
.plain-answer__copy { padding-top: .6rem; }
.plain-answer__copy p + p { margin-top: 1.25rem; }
.folio-services { background: var(--ink); color: var(--ivory); }
.folio-services__intro { padding: clamp(5rem, 10vw, 9rem) 0; display: grid; grid-template-columns: 1fr 2fr; gap: 3rem; }
.folio-services__intro .eyebrow { color: #cfb482; }
.folio-services__intro h2 { max-width: 900px; }
.folio-service { border-top: 1px solid rgba(255,255,255,.22); }
.folio-service:last-child { border-bottom: 1px solid rgba(255,255,255,.22); }
.folio-service__grid { min-height: 300px; padding-block: clamp(3rem, 6vw, 5rem); display: grid; grid-template-columns: .4fr 1.35fr 1fr .85fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.folio-service__number { align-self: start; color: #cfb482; font-family: var(--serif); font-size: clamp(3rem, 6vw, 6rem); line-height: .8; }
.folio-service h3 { max-width: 520px; }
.folio-service p { color: #d8d9d7; }
.folio-service__end { display: grid; align-self: stretch; align-content: space-between; justify-items: end; text-align: right; }
.folio-service__end strong { color: #cfb482; font-family: var(--serif); font-size: 1.6rem; font-weight: 500; }
.folio-service--film { background: #142332; }
.folio-service--web { background: #e7dfd0; color: var(--ink); }
.folio-service--web p { color: #303b46; }
.folio-service--web .eyebrow { color: var(--gold-dark); }
.boundary-section { border-top: 12px solid var(--gold); }
.boundary-section__grid { display: grid; grid-template-columns: .95fr 1.25fr; gap: clamp(3rem, 8vw, 8rem); }
.boundary-section__title { position: sticky; top: 3rem; align-self: start; }
.boundary-section__title p:not(.eyebrow) { max-width: 570px; color: #cbd0d4; margin: 1.5rem 0 2rem; }
.boundary-list { margin: 0; padding: 0; list-style: none; }
.boundary-list li { display: grid; grid-template-columns: 84px 1fr; gap: 1.2rem; padding: 2.2rem 0; border-top: 1px solid rgba(255,255,255,.2); }
.boundary-list li:last-child { border-bottom: 1px solid rgba(255,255,255,.2); }
.boundary-list li > span { color: #cfb482; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.boundary-list strong { display: block; margin-bottom: .55rem; font-family: var(--serif); font-size: 1.65rem; font-weight: 500; }
.boundary-list p { color: #cbd0d4; }
.price-index { background: var(--paper); }
.price-index__heading { display: grid; grid-template-columns: 1.6fr .7fr; gap: 4rem; align-items: end; margin-bottom: 4rem; }
.price-index__heading > p { max-width: 460px; }
.price-index__rows { border-top: 1px solid var(--ink); margin-bottom: 3rem; }
.price-index__rows a { display: grid; grid-template-columns: .35fr 1.4fr .7fr .45fr; gap: 1.5rem; align-items: center; padding: 1.65rem .25rem; border-bottom: 1px solid var(--line); text-decoration: none; transition: padding .2s ease, background .2s ease; }
.price-index__rows a:hover { padding-inline: 1rem; background: var(--ivory); }
.price-index__rows span { font-size: .7rem; font-weight: 700; letter-spacing: .15em; }
.price-index__rows strong { font-family: var(--serif); font-size: clamp(1.5rem, 3vw, 2.6rem); font-weight: 500; }
.price-index__rows em { color: var(--gold-dark); font-family: var(--serif); font-size: 1.35rem; font-style: normal; }
.price-index__rows b { justify-self: end; font-size: .78rem; letter-spacing: .05em; text-transform: uppercase; }
.local-cta { background: var(--warm); text-align: center; }
.local-cta h2 { margin-bottom: 1.5rem; }
.local-cta .lede { margin-bottom: 2rem; }

/* Interior pages */
.page-hero { padding: clamp(5rem, 11vw, 10rem) 0 clamp(4rem, 8vw, 7rem); background: var(--paper); border-bottom: 1px solid var(--line); }
.page-hero-grid { display: grid; grid-template-columns: 1.6fr .65fr; gap: clamp(3rem, 8vw, 8rem); align-items: end; }
.page-hero h1 { max-width: 970px; font-size: clamp(3.6rem, 7.4vw, 7.6rem); }
.page-hero-aside { margin: 0; padding-top: 1.2rem; border-top: 1px solid var(--ink); font-family: var(--serif); font-size: 1.25rem; line-height: 1.55; }
.folio-kicker { display: flex; flex-wrap: wrap; gap: 1rem 2rem; color: var(--gold-dark); }
.detail-grid { display: grid; grid-template-columns: .7fr 1.5fr; gap: clamp(4rem, 9vw, 9rem); align-items: start; }
.detail-grid > aside { position: sticky; top: 2rem; }
.detail-grid > aside h2 { font-size: clamp(2.25rem, 4vw, 4rem); margin-bottom: 2rem; }
.content-block { padding: 0 0 3.5rem; border-bottom: 1px solid var(--line); margin-bottom: 3.5rem; }
.content-block:last-child { margin-bottom: 0; }
.content-block h3 { font-size: clamp(2rem, 3.4vw, 3.7rem); }
.content-block p, .content-block li { max-width: 800px; }
.included { columns: 2; column-gap: 3rem; padding: 0; list-style: none; }
.included li { break-inside: avoid; position: relative; padding: .7rem 0 .7rem 1.4rem; border-top: 1px solid var(--line); }
.included li::before { content: "—"; position: absolute; left: 0; color: var(--gold-dark); }
.callout { margin-top: 2rem; padding: 1.5rem 1.7rem; border-left: 4px solid var(--gold); background: var(--paper); }
.step-list { margin: 1.5rem 0 0; padding: 0; list-style: none; counter-reset: steps; }
.step-list li { counter-increment: steps; display: grid; grid-template-columns: 54px 1fr; gap: 1rem; padding: 1.35rem 0; border-top: 1px solid var(--line); }
.step-list li::before { content: counter(steps, decimal-leading-zero); color: var(--gold-dark); font-size: .75rem; font-weight: 700; letter-spacing: .12em; }
.step-list strong { display: block; margin-bottom: .2rem; }

/* Pricing: a bound service ledger, not cards */
.price-nav { position: sticky; top: 0; z-index: 50; background: var(--ink); color: var(--ivory); }
.price-nav .shell { display: flex; justify-content: center; gap: 0; }
.price-nav a { padding: 1rem 1.6rem; border-inline-start: 1px solid rgba(255,255,255,.18); font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.price-nav a:last-child { border-inline-end: 1px solid rgba(255,255,255,.18); }
.price-nav a:hover { background: var(--gold); color: var(--ink); }
.price-chapter { padding: clamp(5rem, 9vw, 9rem) 0; background: var(--ivory); }
.price-chapter-ink { background: var(--ink); color: var(--ivory); }
.chapter-heading { display: grid; grid-template-columns: .3fr 1.25fr .75fr; gap: clamp(2rem, 5vw, 5rem); align-items: start; margin-bottom: 4rem; }
.chapter-number { color: var(--gold-dark); font-family: var(--serif); font-size: clamp(4rem, 9vw, 8rem); font-weight: 500; letter-spacing: -.06em; line-height: .75; }
.price-chapter-ink .chapter-number { color: #cfb482; }
.chapter-heading h2 { font-size: clamp(2.8rem, 5vw, 5rem); }
.package-ledger { border-top: 1px solid currentColor; }
.price-record { border-bottom: 1px solid var(--line); }
.price-chapter-ink .price-record { border-color: rgba(255,255,255,.22); }
.price-record header { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: end; padding: 2.25rem 0; cursor: default; }
.price-record h3 { margin: .35rem 0; }
.price-record header p:not(.price) { margin: 0; }
.record-code { color: var(--gold-dark); }
.price-chapter-ink .record-code { color: #cfb482; }
.price { display: grid; gap: .25rem; justify-items: end; margin: 0; text-align: right; }
.price strong { font-family: var(--serif); font-size: clamp(2.2rem, 4vw, 4rem); font-weight: 500; letter-spacing: -.04em; }
.price-qualifier { color: var(--gold-dark); }
.price-chapter-ink .price-qualifier { color: #cfb482; }
.record-body { display: grid; grid-template-columns: 1fr auto; gap: 2.5rem; align-items: end; padding: 0 0 2.5rem; }
.record-body .included { margin: 0; }
.price-record-featured { margin-inline: -2rem; padding-inline: 2rem; background: var(--ink-soft); color: var(--ivory); box-shadow: 0 20px 60px rgba(4,12,20,.15); }
.price-chapter-ink .price-record-featured { background: var(--paper); color: var(--ink); }
.add-on-list { margin-top: 3rem; border-top: 1px solid var(--line); }
.add-on { display: grid; grid-template-columns: .7fr 1fr; gap: 2rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); }
.price-chapter-ink .add-on-list, .price-chapter-ink .add-on { border-color: rgba(255,255,255,.22); }

/* FAQ and forms */
.faq-list { border-top: 1px solid var(--ink); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-question { width: 100%; padding: 1.7rem 3.5rem 1.7rem 0; border: 0; background: transparent; color: var(--ink); font-family: var(--serif); font-size: clamp(1.35rem, 2.4vw, 2rem); line-height: 1.25; text-align: left; cursor: pointer; position: relative; }
.faq-question::after { content: "+"; position: absolute; right: .3rem; top: 1.5rem; color: var(--gold-dark); font-family: var(--sans); font-weight: 400; }
.faq-question[aria-expanded="true"]::after { content: "–"; }
.faq-answer { max-width: 720px; padding: 0 3rem 1.7rem 0; }
.contact-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(3rem, 8vw, 8rem); }
.contact-details { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.contact-details a { display: block; margin: .4rem 0 1rem; font-family: var(--serif); font-size: 1.4rem; }
.contact-card { padding: clamp(1.5rem, 4vw, 3rem); background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.field { display: grid; gap: .45rem; }
.field-full { grid-column: 1 / -1; }
.field label, .checkbox { font-size: .82rem; font-weight: 700; }
.field input, .field select, .field textarea { width: 100%; min-height: 50px; border: 1px solid #aa9f8d; border-radius: 0; background: var(--white); color: var(--ink); padding: .8rem .9rem; }
.field textarea { min-height: 165px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 3px solid rgba(170,135,80,.27); border-color: var(--gold-dark); }
.checkbox { display: flex; gap: .7rem; align-items: flex-start; }
.checkbox input { width: 20px; height: 20px; margin-top: .2rem; }
.form-status { margin-bottom: 1.5rem; padding: 1rem 1.2rem; background: #dfe9df; border-left: 4px solid #426648; }
.form-status.error { background: #f0dfdc; border-color: #873f38; }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* Footer */
.site-footer { background: #07111b; color: var(--ivory); }
.footer-lead { padding: clamp(5rem, 9vw, 8rem) 0; text-align: center; border-bottom: 1px solid rgba(255,255,255,.18); }
.footer-lead h2 { max-width: 920px; margin-inline: auto; }
.footer-lead > p:not(.eyebrow) { max-width: 650px; margin: 0 auto 2rem; color: #c8cdd1; }
.footer-grid { display: grid; grid-template-columns: 1.8fr repeat(3, 1fr); gap: 3rem; padding: 4rem 0; }
.brand-footer .brand-mark { color: var(--ivory); }
.brand-footer .brand-name { color: var(--ivory); }
.footer-note { max-width: 430px; color: #aeb5ba; margin-top: 1.25rem; }
.footer-grid h3 { margin-bottom: 1rem; color: #cfb482; font-family: var(--sans); font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.footer-grid > div:not(:first-child) { display: flex; flex-direction: column; align-items: flex-start; }
.footer-grid > div:not(:first-child) a { padding: .25rem 0; color: #d4d8db; text-decoration: none; }
.footer-grid a:hover { color: #cfb482; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; padding: 1.2rem 0 1.5rem; border-top: 1px solid rgba(255,255,255,.18); color: #9fa8ae; font-size: .75rem; }
.footer-bottom p { margin: 0; }

/* Progressive reveal */
.motion-ready [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.motion-ready [data-reveal].is-visible, .motion-off [data-reveal] { opacity: 1; transform: none; }

@media (max-width: 1080px) {
  .header-inner { min-height: 82px; }
  .menu-toggle { display: inline-flex; align-items: center; gap: .7rem; }
  .site-nav { position: fixed; inset: var(--preview-offset, 0) 0 0 0; z-index: -1; min-height: 100vh; padding: 7rem 1.5rem 3rem; background: var(--paper); flex-direction: column; align-items: stretch; justify-content: center; opacity: 0; visibility: hidden; transform: translateY(-12px); transition: opacity .25s ease, transform .25s ease, visibility .25s; }
  .menu-open .site-nav { z-index: 90; opacity: 1; visibility: visible; transform: none; }
  .site-nav a, .motion-toggle { width: min(100%, 600px); margin-inline: auto; padding: .75rem 0; border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: clamp(1.5rem, 5vw, 2.5rem); font-weight: 500; }
  .site-nav .nav-cta { margin-top: 1rem; border: 1px solid var(--ink); padding: .9rem 1rem; text-align: center; }
  .menu-open .menu-toggle { position: fixed; top: 1.6rem; right: 1.5rem; z-index: 110; }
  .menu-open .menu-icon i:first-child { transform: translateY(3px) rotate(45deg); }
  .menu-open .menu-icon i:last-child { transform: translateY(-3px) rotate(-45deg); }
  .folio-service__grid { grid-template-columns: .3fr 1.2fr 1fr; }
  .folio-service__end { grid-column: 2 / -1; grid-row: 2; display: flex; justify-content: space-between; align-items: center; }
  .plain-answer__grid { grid-template-columns: .55fr 1.45fr; }
  .plain-answer__copy { grid-column: 2; }
  .footer-grid { grid-template-columns: 1.5fr repeat(3, .8fr); }
}

@media (max-width: 760px) {
  body { font-size: .98rem; }
  .shell, .narrow { width: min(100% - 2rem, 1280px); }
  .section { padding: 4.5rem 0; }
  .brand-mark { width: 44px; height: 44px; }
  .brand-name { font-size: 1.35rem; }
  .brand-descriptor { font-size: .55rem; }
  .archive-edition span:nth-child(2) { display: none; }
  .archive-hero__title { padding: 4.5rem 0 1rem; }
  .archive-hero__title h1 { font-size: clamp(3.25rem, 14vw, 5.6rem); }
  .button-row { align-items: stretch; }
  .button-row .button { flex: 1 1 220px; }
  .archive-motion { min-height: 115vh; }
  .archive-motion__sticky { top: 1rem; min-height: 82vh; }
  .archive-motion__stage { height: 68vh; min-height: 470px; }
  .archive-piece { top: 8%; bottom: 12%; border-width: 6px; }
  .archive-piece--left { left: 0; width: 34%; }
  .archive-piece--center { left: 33%; width: 34%; }
  .archive-piece--right { right: 0; width: 34%; }
  .archive-motion__caption { left: 0; right: 0; display: grid; gap: .25rem; }
  .plain-answer__grid, .folio-services__intro, .boundary-section__grid, .price-index__heading, .page-hero-grid, .detail-grid, .contact-layout { grid-template-columns: 1fr; }
  .plain-answer__copy { grid-column: auto; }
  .folio-services__intro { gap: 1rem; }
  .folio-service__grid { grid-template-columns: 56px 1fr; align-items: start; }
  .folio-service__number { font-size: 3rem; }
  .folio-service__grid > p { grid-column: 2; }
  .folio-service__end { grid-column: 2; grid-row: auto; align-items: flex-start; flex-direction: column; gap: 1.2rem; text-align: left; }
  .boundary-section__title, .detail-grid > aside { position: static; }
  .price-index__heading { gap: 1rem; }
  .price-index__rows a { grid-template-columns: 54px 1fr; gap: .7rem 1rem; }
  .price-index__rows em, .price-index__rows b { grid-column: 2; justify-self: start; }
  .page-hero { padding: 4.5rem 0; }
  .page-hero h1 { font-size: clamp(3.25rem, 13vw, 5.4rem); }
  .page-hero-grid { gap: 2rem; }
  .included { columns: 1; }
  .price-nav { position: static; overflow-x: auto; }
  .price-nav .shell { justify-content: flex-start; width: max-content; min-width: 100%; }
  .price-nav a { white-space: nowrap; }
  .chapter-heading { grid-template-columns: 64px 1fr; gap: 1.2rem; }
  .chapter-heading > p { grid-column: 2; }
  .chapter-number { font-size: 3.8rem; }
  .price-record header, .record-body { grid-template-columns: 1fr; }
  .price { justify-items: start; text-align: left; }
  .price-record-featured { margin-inline: -.5rem; padding-inline: .5rem; }
  .add-on { grid-template-columns: 1fr; gap: .25rem; }
  .form-grid { grid-template-columns: 1fr; }
  .field-full { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; }
}

/* Location folios: each city gets its own page rhythm */
.location-hero { padding: clamp(5rem,11vw,10rem) 0; text-align: center; }
.location-hero .lede { max-width: 800px; margin: 0 auto 2rem; }
.lf-hero { background: var(--ivory); }
.lf-brief { padding: clamp(4rem,8vw,7rem) 0; background: var(--ink); color: var(--ivory); }
.lf-brief__grid { display: grid; grid-template-columns: .3fr 1.2fr .65fr; gap: clamp(2rem,6vw,6rem); align-items: start; }
.lf-brief__grid > span { color: #cfb482; font-size: .7rem; font-weight: 700; letter-spacing: .15em; }
.lf-brief__grid h2, .lf-brief__grid h3 { text-align: left; }
.lf-brief__grid p { color: #c8cdd1; }
.lf-brief__grid > div:last-child { display: grid; gap: .65rem; }
.lf-brief__grid a { color: #d5d9dc; }
.lf-detail { background: var(--warm); text-align: center; }
.lf-detail__rows { max-width: 950px; margin: 3rem auto; border-top: 1px solid var(--ink); }
.lf-detail__rows p { display: grid; grid-template-columns: .55fr 1fr; gap: 2rem; margin: 0; padding: 1.3rem 0; border-bottom: 1px solid var(--line); text-align: left; }
.lf-detail__rows strong { font-family: var(--serif); font-size: 1.5rem; font-weight: 500; }

.lb-hero { background: var(--paper); text-align: left; }
.lb-hero__grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: clamp(3rem,8vw,8rem); align-items: end; }
.lb-hero h1, .lb-hero .eyebrow { text-align: left; margin-inline: 0; }
.lb-hero .lede { margin: 0; padding-top: 1.2rem; border-top: 1px solid var(--ink); }
.lb-moments { background: var(--ivory); }
.lb-moments__heading { max-width: 900px; margin-bottom: 4rem; text-align: center; }
.lb-ribbon { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid var(--ink); }
.lb-ribbon article { min-height: 300px; padding: 2rem 1.4rem; border-right: 1px solid var(--line); }
.lb-ribbon article:last-child { border-right: 0; }
.lb-ribbon span { color: var(--gold-dark); font-size: .7rem; font-weight: 700; letter-spacing: .14em; }
.lb-ribbon h3 { margin-top: 4rem; text-align: left; font-size: 1.75rem; }
.lb-services { padding: clamp(5rem,9vw,8rem) 0; background: var(--gold); }
.lb-services__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(3rem,8vw,8rem); align-items: center; }
.lb-services__grid h2, .lb-services__grid .eyebrow { text-align: left; margin-inline: 0; }
.lb-services__grid a { font-weight: 700; }
.lb-cta { text-align: center; }

.ls-hero { background: var(--ink); color: var(--ivory); }
.ls-hero .lede { color: #c8cdd1; }
.ls-route { padding: clamp(5rem,9vw,8rem) 0; background: var(--paper); }
.ls-route__heading { max-width: 850px; margin-bottom: 4rem; text-align: center; }
.ls-route__track { display: grid; grid-template-columns: repeat(4,1fr); padding: 0; border-top: 1px solid var(--ink); list-style: none; }
.ls-route__track li { min-height: 310px; padding: 1.7rem 1.3rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--ink); }
.ls-route__track li:last-child { border-right: 0; }
.ls-route__track span { color: var(--gold-dark); font-size: .7rem; font-weight: 700; }
.ls-route__track strong { display: block; margin: 3rem 0 .8rem; font-family: var(--serif); font-size: 1.7rem; font-weight: 500; }
.ls-choice { background: var(--warm); }
.ls-choice__grid { display: grid; grid-template-columns: .5fr 1.5fr; gap: clamp(3rem,8vw,8rem); align-items: center; }
.ls-choice__grid > div:first-child { padding: 2rem; border: 1px solid var(--ink); text-align: center; }
.ls-large { display: block; color: var(--gold-dark); font-family: var(--serif); font-size: clamp(7rem,16vw,13rem); line-height: .75; }
.ls-choice__grid > div:last-child { text-align: center; }
.ls-cta { padding: clamp(5rem,9vw,8rem) 0; background: var(--ink); color: var(--ivory); text-align: center; }
.ls-cta p { color: #c8cdd1; }

.df-hero { background: var(--ink-soft); color: var(--ivory); }
.df-hero .lede { color: #c8cdd1; }
.df-edit { background: var(--ivory); }
.df-edit__grid { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--ink); }
.df-edit__grid > div { min-height: 350px; padding: clamp(1.5rem,4vw,3rem); border-right: 1px solid var(--line); }
.df-edit__grid > div:last-child { border-right: 0; }
.df-edit__grid span { color: var(--gold-dark); font-size: .72rem; font-weight: 700; }
.df-edit__grid h2 { margin-top: 3.5rem; text-align: left; font-size: clamp(2rem,3.4vw,3.2rem); }
.df-prices { padding: clamp(5rem,9vw,8rem) 0; background: var(--warm); text-align: center; }
.df-price-row { display: grid; grid-template-columns: 1fr 1fr; margin: 2rem 0; border-block: 1px solid var(--ink); }
.df-price-row article { padding: clamp(2rem,5vw,4rem); }
.df-price-row article:first-child { border-right: 1px solid var(--ink); }
.df-price-row strong { display: block; color: var(--gold-dark); font-family: var(--serif); font-size: 3.5rem; font-weight: 500; }
.df-cta { text-align: center; }

.hp-hero { background: var(--paper); }
.hp-hero__frame { max-width: 1120px; padding: clamp(2rem,6vw,6rem); border: 1px solid var(--ink); background: var(--ivory); box-shadow: var(--shadow); }
.hp-access { background: var(--ink); color: var(--ivory); }
.hp-access__grid { display: grid; grid-template-columns: repeat(3,1fr); }
.hp-access__grid > div { min-height: 330px; padding: clamp(2rem,5vw,4rem); border-right: 1px solid rgba(255,255,255,.22); }
.hp-access__grid > div:last-child { border-right: 0; }
.hp-access__grid span { color: #cfb482; font-size: .7rem; font-weight: 700; letter-spacing: .15em; }
.hp-access__grid h2 { margin-top: 3rem; text-align: left; font-size: 2.7rem; }
.hp-access__grid p { color: #c8cdd1; }
.hp-included { background: var(--warm); }
.hp-included__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem,8vw,8rem); align-items: start; margin-bottom: 3rem; }
.hp-included__grid h2, .hp-included__grid .eyebrow { text-align: left; margin-inline: 0; }
.hp-included__grid ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ink); }
.hp-included__grid li { padding: 1rem 0; border-bottom: 1px solid var(--line); }

.lv-hero { background: var(--ivory); }
.lv-hero__grid { display: grid; grid-template-columns: .35fr 1.65fr; gap: clamp(2rem,6vw,6rem); align-items: center; }
.lv-mark { display: grid; place-items: center; aspect-ratio: 1; border: 1px solid var(--ink); border-radius: 50%; color: var(--gold-dark); font-family: var(--serif); font-size: clamp(3rem,8vw,7rem); }
.lv-ledger { background: var(--paper); }
.lv-ledger__rows { margin-top: 2.5rem; border-top: 1px solid var(--ink); }
.lv-ledger__rows a { display: grid; grid-template-columns: .2fr 1.3fr .5fr; gap: 1.5rem; align-items: center; padding: 2rem 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.lv-ledger__rows a:hover { background: var(--ivory); }
.lv-ledger__rows span { color: var(--gold-dark); font-size: .72rem; font-weight: 700; }
.lv-ledger__rows strong { font-family: var(--serif); font-size: clamp(1.6rem,3vw,2.8rem); font-weight: 500; }
.lv-ledger__rows em { justify-self: end; color: var(--gold-dark); font-family: var(--serif); font-size: 1.5rem; font-style: normal; }
.lv-collection { padding: clamp(5rem,9vw,8rem) 0; background: var(--ink); color: var(--ivory); }
.lv-collection__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem,8vw,8rem); align-items: center; }
.lv-collection__grid > div:last-child { text-align: center; }
.lv-collection__grid > div:last-child > strong { color: #cfb482; font-family: var(--serif); font-size: clamp(4rem,9vw,8rem); font-weight: 500; }
.lv-collection p { color: #c8cdd1; }
.lv-cta { text-align: center; }

@media (max-width: 900px) {
  .lf-brief__grid { grid-template-columns: 1fr 1fr; }
  .lf-brief__grid > span { grid-column: 1 / -1; }
  .lb-ribbon, .ls-route__track { grid-template-columns: 1fr 1fr; }
  .df-edit__grid, .hp-access__grid { grid-template-columns: 1fr; }
  .df-edit__grid > div, .hp-access__grid > div { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
}

@media (max-width: 760px) {
  .lf-brief__grid, .lb-hero__grid, .lb-services__grid, .ls-choice__grid, .hp-included__grid, .lv-hero__grid, .lv-collection__grid { grid-template-columns: 1fr; text-align: center; }
  .lf-brief__grid h2, .lf-brief__grid h3, .lb-hero h1, .lb-hero .eyebrow, .lb-services__grid h2, .lb-services__grid .eyebrow, .hp-included__grid h2, .hp-included__grid .eyebrow { text-align: center; margin-inline: auto; }
  .lf-detail__rows p { grid-template-columns: 1fr; gap: .4rem; text-align: center; }
  .lb-ribbon, .ls-route__track, .df-price-row { grid-template-columns: 1fr; }
  .lb-ribbon article, .ls-route__track li, .df-price-row article:first-child { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .lb-ribbon h3, .df-edit__grid h2, .hp-access__grid h2 { margin-top: 1.5rem; text-align: center; }
  .ls-route__track strong { margin-top: 1.5rem; text-align: center; }
  .hp-included__grid ul { text-align: left; }
  .lv-mark { width: 140px; margin-inline: auto; }
  .lv-ledger__rows a { grid-template-columns: 46px 1fr; }
  .lv-ledger__rows em { grid-column: 2; justify-self: start; }
}

@media (max-width: 440px) {
  .archive-edition { font-size: .63rem; }
  .archive-motion__caption { font-size: .58rem; }
  .folio-service__grid { grid-template-columns: 44px 1fr; }
  .boundary-list li { grid-template-columns: 58px 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-grid > div:first-child { grid-column: auto; }
}

/* Image-free editorial compositions and transparent local pricing */
.archive-register {
  margin-bottom: clamp(4rem, 8vw, 8rem);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.archive-register p {
  display: grid;
  grid-template-columns: 4rem minmax(210px, .7fr) 1.3fr;
  gap: 1.25rem;
  align-items: baseline;
  margin: 0;
  padding: 1.4rem 0;
  border-top: 1px solid var(--line);
}
.archive-register p:first-child { border-top: 0; }
.archive-register span { color: var(--gold-dark); font-size: .72rem; font-weight: 700; letter-spacing: .16em; }
.archive-register strong { font-family: var(--serif); font-size: clamp(1.35rem, 2.2vw, 2.2rem); font-weight: 500; }
.archive-register em { color: #4f5963; font-style: normal; }

.web-scope { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(2.5rem, 6vw, 5rem); border: 1px solid var(--ink); }
.web-scope p { display: grid; align-content: start; gap: 1rem; min-height: 270px; margin: 0; padding: clamp(1.4rem, 3vw, 2.5rem); border-left: 1px solid var(--ink); }
.web-scope p:first-child { border-left: 0; }
.web-scope span { color: var(--gold-dark); font-size: .7rem; font-weight: 700; letter-spacing: .16em; }
.web-scope strong { font-family: var(--serif); font-size: clamp(1.55rem, 2.7vw, 2.7rem); font-weight: 500; line-height: 1.05; }
.web-scope em { color: #56606a; font-style: normal; }

main section > .narrow { text-align: center; }
main .narrow > .button,
.detail-grid aside > .button { width: max-content; max-width: 100%; margin-inline: auto; }
.detail-grid aside { text-align: center; }

.city-rates { padding: clamp(4rem, 8vw, 7rem) 0; background: var(--ivory); border-block: 1px solid var(--line); }
.city-rates__heading { max-width: 850px; margin: 0 auto 2.5rem; text-align: center; }
.city-rates__heading > p:last-child { max-width: 720px; margin-inline: auto; color: #53606b; }
.city-photo-rates { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--ink); }
.city-photo-rates a { display: grid; grid-template-rows: auto auto 1fr; gap: .65rem; min-height: 220px; padding: clamp(1.35rem, 2.5vw, 2.2rem); border-left: 1px solid var(--ink); color: inherit; text-align: center; text-decoration: none; }
.city-photo-rates a:first-child { border-left: 0; }
.city-photo-rates span { color: #5b6570; font-size: .76rem; font-weight: 650; letter-spacing: .05em; text-transform: uppercase; }
.city-photo-rates strong { font-family: var(--serif); font-size: clamp(1.5rem, 2.5vw, 2.5rem); font-weight: 500; line-height: 1.05; }
.city-photo-rates em { align-self: end; color: var(--gold-dark); font-family: var(--serif); font-size: clamp(2.2rem, 4vw, 4rem); font-style: normal; line-height: 1; }
.city-other-rates { margin: 1rem 0 2rem; border-top: 1px solid var(--line); }
.city-other-rates a { display: grid; grid-template-columns: minmax(210px, .7fr) 1.3fr auto; gap: 1rem; align-items: baseline; padding: 1rem .25rem; border-bottom: 1px solid var(--line); text-decoration: none; }
.city-other-rates span { color: #5b6570; }
.city-other-rates em { color: var(--gold-dark); font-family: var(--serif); font-size: 1.4rem; font-style: normal; }
.city-rates a:hover strong { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
.city-rates--lake-bluff { background: var(--warm); }
.city-rates--lincolnshire { background: var(--ink); color: var(--ivory); }
.city-rates--lincolnshire .city-rates__heading > p:last-child,
.city-rates--lincolnshire .city-photo-rates span,
.city-rates--lincolnshire .city-other-rates span { color: #c7ccd1; }
.city-rates--lincolnshire .city-photo-rates { border-color: #cfb482; }
.city-rates--lincolnshire .city-photo-rates a { border-color: #cfb482; }
.city-rates--lincolnshire .city-other-rates { border-color: rgba(255,255,255,.25); }
.city-rates--lincolnshire .city-other-rates a { border-color: rgba(255,255,255,.25); }
.city-rates--lincolnshire .city-photo-rates em,
.city-rates--lincolnshire .city-other-rates em { color: #cfb482; }
.city-rates--deerfield .city-photo-rates { border-width: 0 0 1px; }
.city-rates--deerfield .city-photo-rates a:first-child { border-left: 1px solid var(--ink); }
.city-rates--deerfield .city-other-rates a { grid-template-columns: 2fr 2fr auto; }
.city-rates--highland-park { background: #eee8dc; }
.city-rates--highland-park .city-photo-rates a:nth-child(2) { background: var(--ink); color: var(--ivory); }
.city-rates--highland-park .city-photo-rates a:nth-child(2) span { color: #c9ced3; }
.city-rates--highland-park .city-photo-rates a:nth-child(2) em { color: #cfb482; }
.city-rates--libertyville .city-photo-rates { border-inline: 0; }
.city-rates--libertyville .city-photo-rates a { min-height: 190px; }

@media (max-width: 760px) {
  .archive-register p { grid-template-columns: 2.25rem 1fr; gap: .65rem 1rem; }
  .archive-register em { grid-column: 2; }
  .web-scope { grid-template-columns: 1fr; }
  .web-scope p { min-height: 0; border-left: 0; border-top: 1px solid var(--ink); text-align: center; }
  .web-scope p:first-child { border-top: 0; }
  .city-photo-rates { grid-template-columns: 1fr; }
  .city-photo-rates a { min-height: 0; border-left: 0; border-top: 1px solid var(--ink); }
  .city-photo-rates a:first-child { border-top: 0; }
  .city-rates--deerfield .city-photo-rates a:first-child { border-left: 0; }
  .city-other-rates a,
  .city-rates--deerfield .city-other-rates a { grid-template-columns: 1fr auto; text-align: left; }
  .city-other-rates span { grid-column: 1 / -1; grid-row: 2; }
}

@media (max-width: 420px) {
  .city-other-rates a { grid-template-columns: 1fr; text-align: center; }
  .city-other-rates span { grid-column: auto; grid-row: auto; }
}

main h1, main h2, main h3, main .eyebrow { text-align: center !important; margin-inline: auto !important; }

/* Three service pages, three distinct compositions */
.photo-hero { padding: clamp(5rem, 11vw, 10rem) 0; background: var(--paper); border-bottom: 1px solid var(--line); }
.photo-hero__inner { max-width: 1100px; text-align: center; }
.photo-hero h1 { max-width: 1000px; margin-inline: auto; }
.photo-hero .lede { max-width: 790px; margin: 0 auto 2.2rem; }
.photo-boundaries { padding: clamp(4rem, 8vw, 7rem) 0; background: var(--ink); color: var(--ivory); }
.photo-boundaries__intro { display: grid; grid-template-columns: .3fr 1.7fr; gap: 2rem; align-items: start; margin-bottom: 3rem; }
.photo-index { color: #cfb482; font-family: var(--serif); font-size: clamp(4rem, 9vw, 8rem); line-height: .7; }
.photo-boundaries__intro h2 { max-width: 920px; text-align: left; margin-inline: 0; }
.boundary-cards { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid rgba(255,255,255,.22); }
.boundary-cards article { min-height: 300px; padding: clamp(1.5rem,4vw,3rem); border-right: 1px solid rgba(255,255,255,.22); }
.boundary-cards article:last-child { border-right: 0; }
.boundary-cards span { color: #cfb482; font-size: .72rem; font-weight: 700; letter-spacing: .16em; }
.boundary-cards h3 { margin-top: 2.5rem; text-align: left; }
.boundary-cards p { color: #c8cdd1; }
.photo-contact-sheet__heading { max-width: 930px; margin-bottom: 4rem; text-align: center; }
.moment-strip { display: grid; grid-template-columns: repeat(4,1fr); padding: 0; border-block: 1px solid var(--ink); list-style: none; }
.moment-strip li { min-height: 330px; padding: 2rem 1.5rem; border-right: 1px solid var(--line); }
.moment-strip li:last-child { border-right: 0; }
.moment-strip span { display: block; margin-bottom: 4rem; color: var(--gold-dark); font-size: .72rem; font-weight: 700; letter-spacing: .14em; }
.moment-strip strong { display: block; margin-bottom: .8rem; font-family: var(--serif); font-size: 1.55rem; font-weight: 500; line-height: 1.12; }
.photo-method { background: var(--warm); }
.photo-method__grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(3rem,8vw,8rem); }
.photo-method__statement { text-align: center; }
.photo-method__statement p:last-child { max-width: 620px; margin-inline: auto; }
.photo-method__steps article { display: grid; grid-template-columns: 70px 1fr; gap: 0 1.2rem; padding: 1.7rem 0; border-top: 1px solid var(--ink); }
.photo-method__steps article:last-child { border-bottom: 1px solid var(--ink); }
.photo-method__steps span { grid-row: 1 / 3; color: var(--gold-dark); font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.photo-method__steps h3 { margin: 0 0 .5rem; text-align: left; font-size: 1.8rem; }
.photo-price { background: var(--ink); color: var(--ivory); }
.photo-price__inner { max-width: 940px; text-align: center; }
.photo-price__inner > p:not(.eyebrow) { max-width: 760px; margin-inline: auto; color: #cbd0d4; }
.photo-price .privacy-note { margin-block: 2rem; padding: 1.5rem; border: 1px solid rgba(255,255,255,.25); color: var(--ivory) !important; }
.photo-price .button-secondary { border-color: var(--ivory); color: var(--ivory); }

.film-hero { padding: clamp(5rem,11vw,10rem) 0 0; overflow: hidden; background: #07111b; color: var(--ivory); }
.film-hero__copy { max-width: 1080px; text-align: center; }
.film-code { color: #cfb482; font-size: .72rem; font-weight: 700; letter-spacing: .16em; }
.film-hero h1 { margin-inline: auto; }
.film-hero .lede { max-width: 790px; margin: 0 auto 2.2rem; color: #c8cdd1; }
.film-hero .button-secondary { border-color: var(--ivory); color: var(--ivory); }
.film-strip { display: grid; grid-template-columns: repeat(8,1fr); margin-top: clamp(4rem,8vw,7rem); border-top: 1px solid rgba(255,255,255,.22); }
.film-strip span { min-height: 110px; display: grid; place-items: center; border-right: 1px solid rgba(255,255,255,.22); color: #cfb482; font-family: var(--serif); font-size: 1.6rem; }
.film-choices__heading { max-width: 940px; margin-bottom: 4rem; text-align: center; }
.film-choice { display: grid; grid-template-columns: .25fr 1.1fr .65fr; gap: clamp(2rem,5vw,5rem); align-items: center; padding: clamp(2.5rem,5vw,4.5rem); border: 1px solid var(--line); }
.film-choice + .film-choice { border-top: 0; }
.film-choice__number { color: var(--gold-dark); font-family: var(--serif); font-size: clamp(4rem,8vw,7rem); line-height: .8; }
.film-choice h3 { text-align: left; }
.film-choice__terms { display: grid; gap: .7rem; padding-left: 2rem; border-left: 1px solid var(--line); }
.film-choice__terms strong { color: var(--gold-dark); font-family: var(--serif); font-size: 2.8rem; font-weight: 500; }
.film-choice__terms span { padding-top: .7rem; border-top: 1px solid var(--line); font-size: .78rem; font-weight: 600; }
.film-choice--ink { background: var(--ink); color: var(--ivory); }
.film-choice--ink p { color: #c8cdd1; }
.film-choice--ink .film-choice__terms { border-color: rgba(255,255,255,.22); }
.film-choice--ink .film-choice__terms strong { color: #cfb482; }
.film-choice--ink .film-choice__terms span { border-color: rgba(255,255,255,.22); }
.film-timeline { padding: clamp(5rem,10vw,9rem) 0; background: var(--warm); }
.film-timeline__heading { max-width: 900px; margin-bottom: 4rem; text-align: center; }
.film-timeline__track { display: grid; grid-template-columns: repeat(4,1fr); }
.film-timeline__track article { position: relative; min-height: 300px; padding: 2rem 1.5rem; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.film-timeline__track article:not(:last-child) { border-right: 1px solid var(--line); }
.film-timeline__track article::before { content: ""; position: absolute; top: -6px; left: 1.5rem; width: 11px; height: 11px; border-radius: 50%; background: var(--gold-dark); }
.film-timeline__track span { color: var(--gold-dark); font-size: .7rem; font-weight: 700; letter-spacing: .13em; }
.film-timeline__track h3 { margin-top: 3rem; text-align: left; font-size: 1.65rem; }
.music-note { background: var(--ivory); }
.music-note__inner { display: grid; grid-template-columns: .35fr 1.65fr; gap: clamp(2rem,6vw,6rem); align-items: start; }
.music-note__mark { display: grid; place-items: center; aspect-ratio: 1; border: 1px solid var(--ink); color: var(--gold-dark); font-family: var(--serif); font-size: clamp(4rem,9vw,8rem); }
.music-note__inner > div { text-align: center; }
.music-note__inner > div > p:not(.eyebrow) { max-width: 760px; margin-inline: auto; }

.web-hero { padding: clamp(5rem,11vw,9rem) 0; background: var(--warm); }
.web-hero__copy { max-width: 1050px; text-align: center; }
.web-hero__copy .lede { max-width: 800px; margin: 0 auto 2.2rem; }
.browser-object { position: relative; max-width: 1040px; margin-top: clamp(4rem,8vw,7rem); padding: 0; border: 10px solid var(--ink); background: var(--ivory); box-shadow: var(--shadow); }
.browser-object__bar { min-height: 55px; display: flex; align-items: center; gap: .45rem; padding: .8rem 1rem; background: var(--ink); color: var(--ivory); }
.browser-object__bar > span { width: 10px; height: 10px; border-radius: 50%; background: #cfb482; }
.browser-object__bar em { margin-left: auto; font-size: .72rem; font-style: normal; letter-spacing: .08em; }
.browser-object__page { min-height: 480px; display: grid; align-content: center; justify-items: center; padding: clamp(2rem,6vw,5rem); text-align: center; }
.browser-object__page > p { color: var(--gold-dark); font-size: .7rem; font-weight: 700; letter-spacing: .16em; }
.browser-object__lines { width: min(100%,580px); display: grid; gap: .6rem; margin: 1.2rem 0 2rem; }
.browser-object__lines span { height: 1px; background: var(--line); }
.browser-object__gallery { width: 100%; display: grid; grid-template-columns: repeat(4,1fr); gap: .7rem; }
.browser-object__gallery i { min-height: 110px; background: linear-gradient(135deg,var(--warm),#b8aa93); }
.browser-object > small { position: absolute; right: 1rem; bottom: .7rem; color: #5d6670; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.web-blueprint__heading { display: grid; grid-template-columns: .3fr 1.7fr; gap: 2rem; align-items: start; margin-bottom: 4rem; }
.web-blueprint__heading > span { color: var(--gold-dark); font-family: var(--serif); font-size: clamp(4rem,8vw,7rem); line-height: .8; }
.web-blueprint__heading h2 { max-width: 900px; text-align: left; margin-inline: 0; }
.blueprint-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-template-areas: "story story service" "gallery film film" "voices voices voices"; border: 1px solid var(--ink); }
.blueprint-grid article { min-height: 250px; padding: clamp(1.5rem,4vw,3rem); border: 1px solid var(--line); }
.blueprint-grid span { color: var(--gold-dark); font-size: .7rem; font-weight: 700; letter-spacing: .14em; }
.blueprint-grid h3 { margin-top: 2.5rem; text-align: left; }
.blueprint-story { grid-area: story; }
.blueprint-service { grid-area: service; background: var(--warm); }
.blueprint-gallery { grid-area: gallery; background: var(--ink); color: var(--ivory); }
.blueprint-gallery p, .blueprint-film p { color: #c8cdd1; }
.blueprint-film { grid-area: film; background: var(--ink-soft); color: var(--ivory); }
.blueprint-voices { grid-area: voices; }
.web-privacy { padding: clamp(5rem,10vw,9rem) 0; background: var(--ink); color: var(--ivory); }
.web-privacy__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem,8vw,8rem); }
.web-privacy__options { border-top: 1px solid rgba(255,255,255,.25); }
.web-privacy__options p { display: grid; grid-template-columns: .55fr 1fr; gap: 1rem; padding: 1.4rem 0; border-bottom: 1px solid rgba(255,255,255,.25); }
.web-privacy__options strong { color: #cfb482; font-family: var(--serif); font-size: 1.45rem; font-weight: 500; }
.web-privacy__options span { color: #c8cdd1; }
.web-launch { background: var(--ivory); }
.web-launch__heading { max-width: 880px; margin-bottom: 4rem; text-align: center; }
.web-launch__heading > p:last-child { max-width: 760px; margin-inline: auto; }
.launch-track { display: grid; grid-template-columns: repeat(4,1fr); padding: 0; border-block: 1px solid var(--ink); list-style: none; }
.launch-track li { min-height: 280px; padding: 1.7rem 1.4rem; border-right: 1px solid var(--line); }
.launch-track li:last-child { border-right: 0; }
.launch-track span { display: block; margin-bottom: 3rem; color: var(--gold-dark); font-size: .7rem; font-weight: 700; }
.launch-track strong { display: block; margin-bottom: .7rem; font-family: var(--serif); font-size: 1.55rem; font-weight: 500; }
.web-collection { display: flex; justify-content: space-between; gap: 3rem; align-items: center; margin-top: 4rem; padding: clamp(2rem,5vw,4rem); background: var(--ink); color: var(--ivory); }
.web-collection h3 { text-align: left; }
.web-collection p:last-child { color: #c8cdd1; }

@media (max-width: 900px) {
  .boundary-cards, .moment-strip, .film-timeline__track, .launch-track { grid-template-columns: 1fr 1fr; }
  .boundary-cards article:nth-child(2), .moment-strip li:nth-child(2), .film-timeline__track article:nth-child(2), .launch-track li:nth-child(2) { border-right: 0; }
  .boundary-cards article, .moment-strip li, .film-timeline__track article, .launch-track li { border-bottom: 1px solid var(--line); }
  .film-choice { grid-template-columns: .25fr 1fr; }
  .film-choice__terms { grid-column: 2; padding-left: 0; border-left: 0; }
  .blueprint-grid { grid-template-columns: 1fr 1fr; grid-template-areas: "story story" "service gallery" "film film" "voices voices"; }
}

@media (max-width: 760px) {
  .photo-boundaries__intro, .web-blueprint__heading { grid-template-columns: 1fr; text-align: center; }
  .photo-index, .web-blueprint__heading > span { margin-inline: auto; }
  .photo-boundaries__intro h2, .web-blueprint__heading h2 { text-align: center; margin-inline: auto; }
  .boundary-cards, .moment-strip, .film-timeline__track, .launch-track { grid-template-columns: 1fr; }
  .boundary-cards article, .boundary-cards article:nth-child(2), .moment-strip li, .film-timeline__track article, .launch-track li { min-height: 0; border-right: 0; }
  .moment-strip span, .film-timeline__track h3, .launch-track span { margin-top: 0; margin-bottom: 1.4rem; }
  .moment-strip strong { text-align: center; }
  .photo-method__grid, .music-note__inner, .web-privacy__grid { grid-template-columns: 1fr; }
  .photo-method__steps h3 { text-align: left; }
  .film-strip { grid-template-columns: repeat(4,1fr); }
  .film-strip span { min-height: 70px; }
  .film-choice { grid-template-columns: 1fr; text-align: center; }
  .film-choice__number { margin-inline: auto; }
  .film-choice h3 { text-align: center; }
  .film-choice__terms { grid-column: auto; }
  .music-note__mark { width: 130px; margin-inline: auto; }
  .browser-object { border-width: 5px; }
  .browser-object__page { min-height: 390px; }
  .browser-object__gallery { grid-template-columns: 1fr 1fr; }
  .browser-object__gallery i { min-height: 80px; }
  .blueprint-grid { grid-template-columns: 1fr; grid-template-areas: "story" "service" "gallery" "film" "voices"; }
  .blueprint-grid article { min-height: 0; text-align: center; }
  .blueprint-grid h3 { margin-top: 1.5rem; text-align: center; }
  .web-privacy__options p { grid-template-columns: 1fr; text-align: center; }
  .web-collection { flex-direction: column; text-align: center; }
  .web-collection h3 { text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  [data-motion-piece] { transform: none !important; }
  [data-reveal] { opacity: 1 !important; transform: none !important; }
}

/* 2026 responsive refinement: centered editorial system, sticky navigation and tools */
[hidden] { display: none !important; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
html, body { max-width: 100%; overflow-x: clip; }
body { overflow-wrap: anywhere; }
h1, h2, h3, .eyebrow { text-align: center; margin-inline: auto; }
.button-row { justify-content: center; text-align: center; }
.site-header { position: sticky; top: 0; z-index: 300; }
.price-nav { top: var(--header-height, 96px); }
[id] { scroll-margin-top: calc(var(--header-height, 96px) + 1rem); }
.page-hero-grid { text-align: center; }
.page-hero-grid > div, .page-hero-aside { max-width: 980px; margin-inline: auto; }
.page-hero-aside { width: min(100%, 760px); }
.contact-layout > div:first-child { text-align: center; }
.contact-layout .step-list, .contact-layout .contact-details { text-align: left; }
.form-submit { display: flex; justify-content: center; padding-top: .4rem; }
.motion-off .archive-motion { min-height: auto; padding: clamp(1.5rem, 4vw, 3rem) 0; }
.motion-off .archive-motion__sticky { position: relative; top: auto; min-height: 0; }

/* Branded utilities */
.site-utility-left,
.site-utility-right { position: fixed; bottom: max(1rem, env(safe-area-inset-bottom)); z-index: 320; pointer-events: none; }
.site-utility-left { left: max(1rem, env(safe-area-inset-left)); }
.site-utility-right { right: max(1rem, env(safe-area-inset-right)); }
.utility-button { pointer-events: auto; min-width: 48px; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; background: var(--ink); color: var(--ivory); box-shadow: 0 12px 35px rgba(6,15,24,.28); cursor: pointer; font-size: .73rem; font-weight: 700; }
.utility-button:hover { background: var(--gold-dark); }
.utility-access { width: 48px; }
.scroll-top { width: 48px; opacity: 0; visibility: hidden; transform: translateY(12px); transition: .2s ease; }
.scroll-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.scroll-top span { color: #cfb482; font-size: 1.25rem; }
.panel-scrim { position: fixed; inset: 0; z-index: 340; background: rgba(7,17,27,.65); backdrop-filter: blur(4px); }
.utility-panel { position: fixed; right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, env(safe-area-inset-bottom)); z-index: 350; width: min(calc(100% - 2rem), 430px); max-height: min(720px, calc(100dvh - 2rem)); overflow-y: auto; padding: 1.4rem; border: 1px solid var(--line); border-top: 7px solid var(--gold); background: var(--ivory); color: var(--ink); box-shadow: 0 28px 80px rgba(6,15,24,.38); }
.a11y-panel { right: auto; left: max(1rem, env(safe-area-inset-left)); }
.utility-panel__bar { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.utility-panel h2 { margin: .25rem 0 0; font-size: 2rem; text-align: left; }
.utility-panel__bar > button { width: 44px; height: 44px; flex: 0 0 auto; border: 1px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer; font-size: 1.65rem; }
.utility-kicker { color: var(--gold-dark); font-size: .64rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.a11y-controls { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; margin: 1.25rem 0; }
.a11y-controls button { min-height: 48px; border: 1px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer; font-weight: 700; }
.a11y-controls button[aria-pressed="true"], .a11y-controls button:hover { background: var(--ink); color: var(--ivory); }
.powered-link { display: inline-block; margin-top: .5rem; color: var(--gold-dark); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

body.a11y-text { font-size: 118%; }
body.a11y-readable, body.a11y-readable h1, body.a11y-readable h2, body.a11y-readable h3, body.a11y-readable .serif { font-family: Arial, sans-serif !important; letter-spacing: normal !important; line-height: 1.45 !important; }
body.a11y-links main a:not(.button), body.a11y-links footer a { text-decoration: underline !important; text-decoration-thickness: .14em !important; }
body.a11y-contrast { --paper: #fff; --ivory: #fff; --ink: #000; --ink-soft: #111; --gold: #d19b00; --gold-dark: #6b4a00; --line: #555; }
body.a11y-motion *, body.a11y-motion *::before, body.a11y-motion *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }

@media (max-width: 1220px) {
  .header-inner { min-height: 82px; }
  .menu-toggle { display: inline-flex; align-items: center; gap: .7rem; }
  .site-header { backdrop-filter: none; }
  .site-nav { position: fixed; top: var(--header-height, 82px); right: 0; bottom: 0; left: 0; z-index: 290; height: calc(100dvh - var(--header-height, 82px)); min-height: 0; padding: 1.5rem max(1.5rem, env(safe-area-inset-right)) max(2rem, env(safe-area-inset-bottom)) max(1.5rem, env(safe-area-inset-left)); background: var(--paper); flex-direction: column; align-items: stretch; justify-content: flex-start; overflow-y: auto; overscroll-behavior: contain; opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .25s ease, transform .25s ease, visibility .25s; }
  .menu-open .site-nav { opacity: 1; visibility: visible; transform: none; }
  .site-nav a, .motion-toggle { width: min(100%, 600px); margin-inline: auto; padding: .7rem 0; border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: clamp(1.2rem, 4.2vw, 2rem); font-weight: 500; text-align: center; }
  .site-nav .nav-cta { margin-top: .7rem; border: 1px solid var(--ink); padding: .85rem 1rem; }
  .menu-open .menu-toggle { position: relative; z-index: 310; }
  .menu-open .menu-icon i:first-child { transform: translateY(3px) rotate(45deg); }
  .menu-open .menu-icon i:last-child { transform: translateY(-3px) rotate(-45deg); }
  .footer-grid { grid-template-columns: 1.35fr repeat(4, .8fr); gap: 2rem; }
}

@media (max-width: 760px) {
  h1 { font-size: clamp(2.65rem, 11vw, 4.25rem); line-height: 1.02; }
  h2 { font-size: clamp(2.15rem, 9vw, 3.5rem); line-height: 1.05; }
  h3 { font-size: clamp(1.55rem, 7vw, 2.35rem); line-height: 1.12; }
  .archive-hero__title { padding: 3.8rem 0 1rem; }
  .archive-hero__title h1, .page-hero h1 { max-width: 100%; font-size: clamp(2.75rem, 12vw, 4.4rem); }
  .archive-hero__title .lede, .page-hero-aside, .lede { font-size: 1.08rem; line-height: 1.58; }
  .page-hero, .section { padding-block: 4rem; }
  .page-hero-grid { gap: 1.5rem; }
  .plain-answer__grid, .folio-services__intro, .boundary-section__grid, .price-index__heading, .chapter-heading { text-align: center; }
  .chapter-heading { grid-template-columns: 1fr; }
  .chapter-heading > p { grid-column: auto; }
  .chapter-number { margin-inline: auto; }
  .price { justify-items: center; text-align: center; }
  .record-body .button { justify-self: center; }
  .archive-motion { min-height: 108vh; }
  .archive-motion__sticky { min-height: 78vh; }
  .archive-motion__stage { height: 62vh; min-height: 410px; }
  .folio-service__grid > p, .folio-service__end { text-align: center; }
  .folio-service__end { align-items: center; }
  .contact-card { padding: 1.25rem 1rem; }
  .field input, .field select { min-height: 52px; }
  .field textarea { min-height: 140px; }
  .checkbox { line-height: 1.45; }
  .footer-grid { grid-template-columns: 1fr 1fr; text-align: center; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .footer-grid > div:not(:first-child) { align-items: center; }
  .brand-footer { justify-content: center; }
  .footer-note { margin-inline: auto; }
  .footer-bottom { align-items: center; text-align: center; }
  .site-utility-left { left: max(.75rem, env(safe-area-inset-left)); bottom: max(.75rem, env(safe-area-inset-bottom)); }
  .site-utility-right { right: max(.75rem, env(safe-area-inset-right)); bottom: max(.75rem, env(safe-area-inset-bottom)); }
  .utility-panel { right: .65rem; bottom: max(.65rem, env(safe-area-inset-bottom)); width: calc(100% - 1.3rem); max-height: calc(100dvh - 1.3rem); padding: 1.15rem; }
  .a11y-panel { right: auto; left: .65rem; }
}

@media (max-width: 440px) {
  .shell, .narrow { width: calc(100% - 1.5rem); }
  .header-inner { min-height: 74px; gap: .5rem; }
  .brand { min-width: 0; gap: .55rem; }
  .brand-mark { width: 42px; height: 42px; }
  .brand-copy { min-width: 0; max-width: 155px; }
  .brand-name { font-size: 1.2rem; }
  .brand-descriptor { font-size: .5rem; letter-spacing: .1em; }
  .menu-toggle { gap: .45rem; padding: .5rem .2rem; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-grid > div:first-child { grid-column: auto; }
  .a11y-controls { grid-template-columns: 1fr; }
}

@media (max-width: 360px) {
  .menu-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
}

/* 2026 archival editorial pass */
:root {
  --ink: #091521;
  --ink-soft: #152433;
  --paper: #f3efe5;
  --ivory: #fcf9f1;
  --warm: #e5dccd;
  --line: #d2c6b3;
  --gold: #b08a4d;
  --gold-dark: #76572f;
  --shadow: 0 30px 90px rgba(6, 15, 24, .14);
}

body { background: var(--paper); }
main { isolation: isolate; }
h1, h2, h3 { max-width: 1040px; letter-spacing: -.04em; }
p { text-wrap: pretty; }

.site-header { background: rgba(243, 239, 229, .95); }
.header-inner { min-height: 90px; }
.nav-cta { padding-inline: 1.2rem; }

/* Home hero: a title page, not a framed interface */
.archive-hero {
  position: relative;
  min-height: min(800px, calc(100svh - var(--header-height, 90px)));
  display: grid;
  align-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 42%, rgba(176, 138, 77, .14), transparent 34%),
    linear-gradient(180deg, var(--ivory), var(--paper));
}
.archive-hero__seal {
  position: absolute;
  top: 50%;
  left: 50%;
  width: clamp(290px, 42vw, 620px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 1px solid rgba(9, 21, 33, .1);
  border-radius: 50%;
  color: rgba(176, 138, 77, .07);
  font-family: var(--serif);
  font-size: clamp(8rem, 23vw, 22rem);
  letter-spacing: -.12em;
  line-height: 1;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.archive-hero__seal::before,
.archive-hero__seal::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(9, 21, 33, .075);
  border-radius: inherit;
}
.archive-hero__seal::before { inset: 8%; }
.archive-hero__seal::after { inset: 20%; }
.archive-hero__top { position: relative; z-index: 1; padding-top: 0; }
.archive-hero__title { padding: clamp(6rem, 12vw, 10rem) 0; }
.archive-hero__title h1 { max-width: 980px; margin-inline: auto; }
.archive-hero__title h1 em { color: var(--gold-dark); font-weight: 500; }
.archive-hero__title .lede { max-width: 780px; }

.plain-answer { background: var(--ivory); }

/* Signature art moment: three archival mounts settle into place */
.archive-art {
  padding-top: clamp(6rem, 10vw, 9rem);
  overflow: clip;
  background: var(--ink);
  color: var(--ivory);
}
.archive-art__intro { max-width: 900px; text-align: center; }
.archive-art__intro .eyebrow { color: #cfb482; }
.archive-art__intro > p:last-child { max-width: 680px; margin: 1.5rem auto 0; color: #c8cdd1; }
.archive-motion { min-height: 165vh; padding-top: 0; }
.archive-motion__sticky {
  top: calc(var(--header-height, 90px) + 1rem);
  min-height: calc(100svh - var(--header-height, 90px) - 1rem);
}
.archive-stage {
  position: relative;
  height: min(72vh, 760px);
  min-height: 520px;
  margin-block: 2rem;
}
.archive-piece {
  top: 5%;
  bottom: 5.5rem;
  border: clamp(7px, .8vw, 12px) solid var(--ivory);
  background-image: url("/assets/images/dearly-archive-v2.webp");
  background-repeat: no-repeat;
  background-size: cover;
  box-shadow: 0 26px 65px rgba(0, 0, 0, .32);
}
.archive-piece--left { left: 2%; width: 34%; background-position: left center; }
.archive-piece--center { left: 33%; width: 34%; background-position: center; }
.archive-piece--right { right: 2%; width: 34%; background-position: right center; }
.archive-stage__static { display: none; }
.archive-stage figcaption {
  position: absolute;
  right: 2%;
  bottom: 0;
  left: 2%;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, .2);
  color: #9ea7ae;
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.archive-stage figcaption strong { color: #cfb482; font-weight: 700; text-align: right; }
.archive-art .archive-register {
  margin-bottom: 0;
  border-color: rgba(255, 255, 255, .35);
}
.archive-art .archive-register p { border-color: rgba(255, 255, 255, .18); }
.archive-art .archive-register span { color: #cfb482; }
.archive-art .archive-register em { color: #c8cdd1; }

.folio-services__intro {
  grid-template-columns: 1fr;
  max-width: 1040px;
  text-align: center;
}
.folio-service__grid { min-height: 270px; }
.boundary-section { border-top-width: 1px; }

/* Interior openings are calm and centered; individual page art follows below */
.page-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(5.5rem, 10vw, 9rem) 0;
  background:
    radial-gradient(circle at 50% -30%, rgba(176, 138, 77, .17), transparent 44%),
    var(--ivory);
}
.page-hero::after,
.location-hero::after {
  content: "";
  display: block;
  width: 68px;
  height: 1px;
  margin: clamp(2rem, 4vw, 3.25rem) auto 0;
  background: var(--gold-dark);
}
.page-hero-grid {
  grid-template-columns: 1fr;
  max-width: 1120px;
  gap: 1.75rem;
}
.page-hero h1 { max-width: 980px; font-size: clamp(3.2rem, 7vw, 6.9rem); }
.page-hero-aside {
  width: min(100%, 720px);
  color: #48545f;
  border-top-color: var(--gold-dark);
}

.location-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(5.5rem, 10vw, 9rem) 0;
  background: var(--ivory);
  color: var(--ink);
  border-bottom: 1px solid var(--line);
}
.location-hero h1 { max-width: 1000px; margin-inline: auto; font-size: clamp(3rem, 6.7vw, 6.7rem); }
.location-hero .lede { color: #4d5862; }
.lf-hero,
.lb-hero,
.ls-hero,
.df-hero,
.hp-hero,
.lv-hero { background: linear-gradient(180deg, var(--ivory), var(--paper)); color: var(--ink); }
.ls-hero .lede,
.df-hero .lede { color: #4d5862; }
.lb-hero__grid,
.lv-hero__grid { grid-template-columns: 1fr; max-width: 1080px; }
.lb-hero .lede { margin-inline: auto; border-top-color: var(--gold-dark); }
.hp-hero__frame { max-width: 1080px; padding: 0; border: 0; background: transparent; box-shadow: none; }
.location-hero .button-light { border-color: var(--ink); background: var(--ink); color: var(--ivory); }
.location-hero .button-light:hover { border-color: var(--gold-dark); background: var(--gold-dark); }

.photo-hero,
.web-hero {
  padding: clamp(5.5rem, 10vw, 9rem) 0;
  background:
    radial-gradient(circle at 50% -30%, rgba(176, 138, 77, .16), transparent 42%),
    var(--ivory);
}
.film-hero {
  padding-top: clamp(5.5rem, 10vw, 9rem);
  background: var(--ink);
}
.film-hero .eyebrow { color: #cfb482; }
.film-strip { margin-top: clamp(3.5rem, 7vw, 6rem); }

/* The website-service page reads as an editorial outline, never a fake website */
.web-scope { border-inline: 0; }
.web-scope p { border-color: var(--line); }
.web-blueprint__heading { grid-template-columns: 1fr; max-width: 960px; margin-inline: auto; text-align: center; }
.web-blueprint__heading > span { font-size: 1rem; }
.web-blueprint__heading h2 { margin-inline: auto; text-align: center; }
.blueprint-grid {
  grid-template-columns: repeat(2, 1fr);
  grid-template-areas: "story service" "gallery film" "voices voices";
  gap: 0 4rem;
  border: 0;
}
.blueprint-grid article {
  min-height: 250px;
  padding: 2.5rem 0;
  border: 0;
  border-top: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
  text-align: center;
}
.blueprint-grid article p { color: #4f5a64; }
.blueprint-grid h3 { margin: 2rem auto 1rem; text-align: center; }
.blueprint-voices { border-bottom: 1px solid var(--ink) !important; }

.motion-off .archive-motion { min-height: auto; padding: 2rem 0 5rem; }
.motion-off .archive-motion__sticky { position: relative; top: auto; min-height: 0; }
.motion-off .archive-piece { display: none; }
.motion-off .archive-stage__static { display: block; }
.motion-off .archive-stage { height: auto; min-height: 0; }
.motion-off .archive-stage figcaption { position: relative; margin-top: 1rem; }

@media (max-width: 900px) {
  .plain-answer__grid { grid-template-columns: 1fr; max-width: 880px; text-align: center; }
  .plain-answer__copy { max-width: 670px; margin-inline: auto; }
  .boundary-section__title { position: relative; top: auto; }
  .blueprint-grid { gap: 0 2rem; }
}

@media (max-width: 760px) {
  .header-inner { min-height: 74px; }
  .archive-hero { min-height: auto; }
  .archive-hero__title { padding: 5rem 0; }
  .archive-hero__title h1 { font-size: clamp(3rem, 14vw, 4.9rem); }
  .archive-hero__seal { width: 84vw; }
  .button-row .button { width: min(100%, 360px); }
  .archive-art { padding-top: 4.5rem; }
  .archive-motion { min-height: auto; padding: 2rem 0 4rem; }
  .archive-motion__sticky { position: relative; top: auto; min-height: 0; }
  .archive-stage { height: auto; min-height: 0; margin-block: 1rem; }
  .archive-piece { display: none; }
  .archive-stage__static { display: block; }
  .archive-stage__static img { width: 100%; height: auto; border: 8px solid var(--ivory); }
  .archive-stage figcaption { position: relative; flex-direction: column; margin-top: 1rem; text-align: center; }
  .archive-stage figcaption strong { text-align: center; }
  .archive-art .archive-register { margin-top: 2.5rem; }
  .folio-service__grid { min-height: 0; }
  .page-hero,
  .location-hero,
  .photo-hero,
  .web-hero,
  .film-hero { padding-block: 4.75rem; }
  .page-hero h1,
  .location-hero h1 { font-size: clamp(2.75rem, 12vw, 4.4rem); }
  .blueprint-grid { grid-template-columns: 1fr; grid-template-areas: "story" "service" "gallery" "film" "voices"; }
  .blueprint-grid article { min-height: 0; }
}

@media (max-width: 440px) {
  .archive-hero__title { padding-block: 4.25rem; }
  .archive-hero__title h1 { font-size: clamp(2.8rem, 13.5vw, 4.05rem); }
}

@media (prefers-reduced-motion: reduce) {
  .archive-motion { min-height: auto; padding: 2rem 0 5rem; }
  .archive-motion__sticky { position: relative; top: auto; min-height: 0; }
  .archive-piece { display: none; }
  .archive-stage__static { display: block; }
  .archive-stage { height: auto; min-height: 0; }
  .archive-stage figcaption { position: relative; margin-top: 1rem; }
}

/* Selected homepage direction: The Living Archive */
.home-folio {
  background: var(--ivory);
}

.home-folio .site-header {
  background: rgba(252, 249, 241, .96);
}

.home-folio .header-inner {
  min-height: 82px;
}

.home-folio .brand-mark {
  width: 48px;
  height: 48px;
}

.dt-home-hero {
  position: relative;
  overflow: clip;
  padding: clamp(5.5rem, 10vw, 9rem) 0 clamp(4.5rem, 8vw, 7rem);
  background: var(--ivory);
  border-bottom: 1px solid var(--line);
}

.dt-home-hero::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: min(1040px, calc(100% - 3rem));
  height: 1px;
  background: var(--gold);
  transform: translateX(-50%);
  transform-origin: center;
  opacity: .72;
}

.dt-home-hero__inner {
  max-width: 1080px;
  text-align: center;
}

.dt-home-hero .eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.dt-home-hero .eyebrow::before,
.dt-home-hero .eyebrow::after {
  content: "";
  width: clamp(34px, 6vw, 84px);
  height: 1px;
  background: var(--gold);
}

.dt-home-hero h1 {
  max-width: 1040px;
  margin: 0 auto 1.75rem;
  font-size: clamp(4rem, 7.5vw, 7.3rem);
  line-height: .94;
}

.dt-home-hero h1 em {
  display: block;
  color: var(--gold-dark);
  font-weight: 500;
}

.dt-home-hero__copy {
  max-width: 760px;
  margin: 0 auto 2rem;
  color: #3f4a55;
  font-family: var(--serif);
  font-size: clamp(1.22rem, 1.7vw, 1.5rem);
  line-height: 1.55;
}

.dt-home-hero .button-row {
  gap: .9rem;
}

.dt-home-hero .button {
  min-width: 178px;
}

.dt-archive {
  margin: 0;
  overflow: clip;
  background: var(--ink);
}

.dt-archive__mat {
  width: min(100%, 1600px);
  margin-inline: auto;
  overflow: hidden;
  background: var(--ink);
}

.dt-archive__mat picture,
.dt-archive__mat img {
  width: 100%;
}

.dt-archive__mat img {
  height: min(70vw, 850px);
  min-height: 520px;
  object-fit: cover;
  object-position: center 50%;
}

.dt-archive figcaption {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  width: min(100% - 3rem, 1280px);
  margin-inline: auto;
  padding: 1rem 0 1.15rem;
  border-top: 1px solid rgba(255, 255, 255, .18);
  color: #bbc1c6;
  font-size: .67rem;
  letter-spacing: .1em;
  line-height: 1.5;
  text-transform: uppercase;
}

.dt-archive figcaption strong {
  color: #d6bd90;
  text-align: right;
}

.motion-ready .dt-archive[data-reveal] {
  opacity: 1;
  transform: none;
}

.motion-ready .dt-archive[data-reveal] .dt-archive__mat {
  clip-path: inset(0 8%);
  opacity: .82;
  transform: translateY(20px);
  transition: clip-path 1.15s cubic-bezier(.22, .78, .2, 1), opacity .8s ease, transform 1.15s cubic-bezier(.22, .78, .2, 1);
}

.motion-ready .dt-archive[data-reveal] .dt-archive__mat img {
  transform: scale(1.045);
  transition: transform 1.5s cubic-bezier(.22, .78, .2, 1);
}

.motion-ready .dt-archive[data-reveal].is-visible .dt-archive__mat {
  clip-path: inset(0);
  opacity: 1;
  transform: none;
}

.motion-ready .dt-archive[data-reveal].is-visible .dt-archive__mat img {
  transform: scale(1);
}

.dt-why {
  padding-block: clamp(5.5rem, 9vw, 8rem);
  background: var(--ivory);
  text-align: center;
}

.dt-why .narrow {
  width: min(100% - 3rem, 920px);
}

.dt-why h2 {
  max-width: 920px;
  margin-bottom: 1.7rem;
  font-size: clamp(2.65rem, 5vw, 5.1rem);
}

.dt-why .lede {
  max-width: 760px;
  margin-inline: auto;
  color: #46515b;
}

.dt-services {
  background: var(--paper);
}

.dt-services__heading {
  max-width: 900px;
  padding-block: clamp(5rem, 9vw, 8rem);
  text-align: center;
}

.dt-services__heading h2 {
  margin-bottom: 1.2rem;
}

.dt-services__heading > p:last-child {
  max-width: 650px;
  margin: 0 auto;
  color: #4a5560;
  font-size: 1.05rem;
}

.dt-service {
  overflow: clip;
  border-top: 1px solid var(--line);
}

.dt-service:last-child {
  border-bottom: 1px solid var(--line);
}

.dt-service__grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.15fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
  min-height: 690px;
  padding-block: clamp(5rem, 8vw, 7.5rem);
}

.dt-service__copy {
  display: grid;
  justify-items: center;
  align-content: center;
  text-align: center;
}

.dt-service__copy h3 {
  max-width: 600px;
  margin-bottom: 1.5rem;
  font-size: clamp(2.25rem, 4vw, 4.25rem);
  line-height: 1.02;
}

.dt-inclusions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .35rem 0;
  max-width: 590px;
  margin: 0 auto 1.8rem;
  padding: 1.35rem 0;
  border-block: 1px solid var(--line);
  list-style: none;
}

.dt-inclusions li {
  color: #4d5862;
  font-size: .83rem;
  line-height: 1.5;
}

.dt-inclusions li:not(:last-child)::after {
  content: "·";
  margin-inline: .65rem;
  color: var(--gold-dark);
}

.dt-service__price {
  display: grid;
  justify-items: center;
  margin: 0 0 1.25rem;
  color: var(--ink);
}

.dt-service__price span {
  color: var(--gold-dark);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.dt-service__price strong {
  font-family: var(--serif);
  font-size: clamp(2.35rem, 4vw, 4rem);
  font-weight: 500;
  line-height: 1.1;
}

.dt-service__visual {
  margin: 0;
}

.dt-service__visual picture {
  display: block;
  overflow: hidden;
  background: var(--ink);
  box-shadow: var(--shadow);
}

.dt-service__visual img {
  width: 100%;
  height: 540px;
  object-fit: cover;
  transition: transform 1s cubic-bezier(.22, .78, .2, 1);
}

.dt-service__visual figcaption {
  margin-top: .75rem;
  color: #69727a;
  font-size: .62rem;
  letter-spacing: .07em;
  line-height: 1.5;
  text-align: center;
  text-transform: uppercase;
}

.dt-service__visual--photo {
  margin-right: -8vw;
}

.dt-service__visual--photo img {
  object-position: 50% 48%;
  transform: scale(1.12);
}

.dt-service--film {
  background: var(--ink);
  color: var(--ivory);
}

.dt-service--film .dt-service__grid {
  grid-template-columns: minmax(0, 1.14fr) minmax(0, .86fr);
}

.dt-service--film .eyebrow,
.dt-service--film .dt-service__price span {
  color: #d6bd90;
}

.dt-service--film .dt-inclusions {
  border-color: rgba(255, 255, 255, .22);
}

.dt-service--film .dt-inclusions li {
  color: #d2d6da;
}

.dt-service--film .dt-service__price {
  color: var(--ivory);
}

.dt-service--film .text-link {
  color: var(--ivory);
}

.dt-service__visual--film {
  margin-left: -8vw;
}

.dt-service__visual--film img {
  object-position: 83% 62%;
  transform: scale(1.2);
}

.dt-service--film .dt-service__visual figcaption {
  color: #aeb6bd;
}

.dt-service--website {
  background: #e8dfd0;
}

.dt-service--website .dt-service__grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.dt-service__visual--website {
  margin-right: -5vw;
}

.dt-service__visual--website picture {
  border: 10px solid var(--ivory);
}

.dt-service__visual--website img {
  height: 500px;
  object-position: 70% 72%;
  transform: scale(1.16);
}

.motion-ready .dt-service__visual[data-reveal]:not(.is-visible) img {
  transform: scale(1.24) translateY(10px);
}

.dt-approach {
  background: var(--ink);
  color: var(--ivory);
  text-align: center;
}

.dt-approach .narrow {
  width: min(100% - 3rem, 900px);
}

.dt-approach h2 {
  margin-bottom: 1.5rem;
}

.dt-approach p:not(.eyebrow) {
  max-width: 760px;
  margin: 0 auto 2rem;
  color: #c9d0d5;
  font-family: var(--serif);
  font-size: clamp(1.15rem, 1.8vw, 1.4rem);
  line-height: 1.6;
}

.dt-home-cta {
  background: var(--ivory);
  text-align: center;
}

.dt-home-cta h2 {
  margin-bottom: 1.25rem;
}

.dt-home-cta p:not(.eyebrow) {
  max-width: 620px;
  margin: 0 auto 2rem;
  color: #4a5560;
}

.home-folio .site-footer .footer-lead {
  display: none;
}

@media (hover: hover) and (pointer: fine) {
  .dt-service__visual:hover img {
    transform: scale(1.08);
  }

  .dt-service__visual--film:hover img {
    transform: scale(1.16);
  }
}

@media (max-width: 1100px) {
  .dt-service__grid,
  .dt-service--film .dt-service__grid,
  .dt-service--website .dt-service__grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 3rem;
    min-height: 620px;
  }

  .dt-service__visual--photo,
  .dt-service__visual--website {
    margin-right: 0;
  }

  .dt-service__visual--film {
    margin-left: 0;
  }

  .dt-service__visual img,
  .dt-service__visual--website img {
    height: 460px;
  }
}

@media (max-width: 760px) {
  .home-folio .header-inner {
    min-height: 74px;
  }

  .dt-home-hero {
    padding: 4.5rem 0 4rem;
  }

  .dt-home-hero::after {
    width: calc(100% - 1.5rem);
  }

  .dt-home-hero .eyebrow {
    display: block;
    max-width: 330px;
    font-size: .65rem;
    line-height: 1.6;
  }

  .dt-home-hero .eyebrow::before,
  .dt-home-hero .eyebrow::after {
    display: none;
  }

  .dt-home-hero h1 {
    max-width: 570px;
    font-size: clamp(2.8rem, 12.5vw, 4.4rem);
    line-height: .98;
  }

  .dt-home-hero h1 em {
    display: inline;
  }

  .dt-home-hero__copy {
    max-width: 560px;
    font-size: 1.08rem;
    line-height: 1.62;
  }

  .dt-home-hero .button-row {
    flex-direction: column;
  }

  .dt-home-hero .button {
    width: min(100%, 340px);
  }

  .dt-archive__mat img {
    height: min(112vw, 620px);
    min-height: 420px;
    object-position: 52% center;
  }

  .dt-archive figcaption {
    flex-direction: column;
    width: calc(100% - 1.5rem);
    text-align: center;
  }

  .dt-archive figcaption strong {
    text-align: center;
  }

  .motion-ready .dt-archive[data-reveal] .dt-archive__mat {
    clip-path: inset(0 4%);
  }

  .motion-ready .dt-archive[data-reveal].is-visible .dt-archive__mat {
    clip-path: inset(0);
  }

  .dt-why {
    padding-block: 4.5rem;
  }

  .dt-why .narrow {
    width: calc(100% - 1.5rem);
  }

  .dt-why h2 {
    font-size: clamp(2.35rem, 10vw, 3.7rem);
  }

  .dt-services__heading {
    padding-block: 4.5rem;
  }

  .dt-service__grid,
  .dt-service--film .dt-service__grid,
  .dt-service--website .dt-service__grid {
    grid-template-columns: 1fr;
    gap: 2.75rem;
    min-height: 0;
    padding-block: 4.5rem;
  }

  .dt-service--film .dt-service__visual {
    order: 2;
  }

  .dt-service--film .dt-service__copy {
    order: 1;
  }

  .dt-service__copy h3 {
    font-size: clamp(2.05rem, 9.5vw, 3.25rem);
    line-height: 1.06;
  }

  .dt-inclusions {
    display: grid;
    gap: .55rem;
    width: min(100%, 500px);
    padding-block: 1.2rem;
  }

  .dt-inclusions li {
    font-size: .86rem;
  }

  .dt-inclusions li:not(:last-child)::after {
    display: none;
  }

  .dt-service__visual,
  .dt-service__visual--photo,
  .dt-service__visual--film,
  .dt-service__visual--website {
    width: calc(100% + 1.5rem);
    margin: 0 -.75rem;
  }

  .dt-service__visual picture,
  .dt-service__visual--website picture {
    border-width: 6px;
  }

  .dt-service__visual img,
  .dt-service__visual--website img {
    height: min(90vw, 520px);
  }

  .dt-service__visual figcaption {
    padding-inline: .75rem;
  }

  .dt-approach {
    padding-block: 4.75rem;
  }

  .dt-home-cta {
    padding-block: 4.75rem;
  }
}

@media (max-width: 440px) {
  .dt-home-hero {
    padding-block: 3.8rem 3.5rem;
  }

  .dt-home-hero h1 {
    font-size: clamp(2.55rem, 12vw, 3.35rem);
  }

  .dt-home-hero__copy {
    font-size: 1rem;
  }

  .dt-archive__mat img {
    height: 118vw;
    min-height: 390px;
  }

  .dt-why h2,
  .dt-service__copy h3 {
    font-size: clamp(2rem, 9vw, 2.65rem);
  }

  .dt-service__grid,
  .dt-service--film .dt-service__grid,
  .dt-service--website .dt-service__grid {
    padding-block: 3.9rem;
  }

  .dt-service__visual img,
  .dt-service__visual--website img {
    height: 98vw;
  }
}

.motion-off .dt-archive__mat,
.motion-off .dt-archive__mat img,
.motion-off .dt-service__visual img {
  clip-path: none !important;
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .dt-archive__mat,
  .dt-archive__mat img,
  .dt-service__visual img {
    clip-path: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Homepage content must never depend on an observer to become readable. */
.motion-ready .home-folio [data-reveal] {
  opacity: 1;
  transform: none;
}

/* Direction 1 fidelity correction: one compact service composition. */
.dt-home-hero .button:not(.button-secondary),
.dt-home-cta .button {
  border-color: var(--gold);
  background: var(--gold);
  color: var(--ink);
}

.dt-home-hero .button:not(.button-secondary):hover,
.dt-home-cta .button:hover {
  border-color: var(--gold-dark);
  background: var(--gold-dark);
  color: var(--ivory);
}

.dt-services {
  padding-bottom: clamp(5rem, 8vw, 7rem);
  background: var(--paper);
}

.dt-services__heading {
  padding-block: clamp(4.75rem, 7vw, 6.5rem) clamp(3.5rem, 5vw, 4.75rem);
}

.dt-service-index {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-block: 1px solid var(--line);
}

.dt-service-card {
  min-width: 0;
  padding: clamp(2.25rem, 4vw, 3.5rem) clamp(1.4rem, 3vw, 2.75rem);
  text-align: center;
}

.dt-service-card + .dt-service-card {
  border-left: 1px solid var(--line);
}

.dt-service-card__inner {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  align-items: center;
}

.dt-service-card .eyebrow {
  min-height: 2.3em;
  margin-bottom: 1.1rem;
}

.dt-service-card h3 {
  max-width: 340px;
  margin-bottom: 1rem;
  font-size: clamp(2rem, 2.65vw, 3rem);
  line-height: 1.04;
}

.dt-service-card__summary {
  max-width: 355px;
  margin: 0 auto 1.5rem;
  color: #46515b;
  line-height: 1.65;
}

.dt-service-card .dt-service__price {
  margin: 0 auto 1.35rem;
}

.dt-service-card .dt-service__price strong {
  font-size: clamp(2.5rem, 3.6vw, 3.9rem);
}

.dt-service-card .dt-inclusions {
  display: grid;
  width: 100%;
  max-width: 360px;
  gap: .42rem;
  margin: 0 auto 1.7rem;
  padding: 1.2rem 0;
}

.dt-service-card .dt-inclusions li {
  font-size: .82rem;
  line-height: 1.45;
}

.dt-service-card .dt-inclusions li::after {
  display: none;
}

.dt-service-card .text-link {
  margin-top: auto;
}

.dt-services__pricing-link {
  margin-top: 2.25rem;
}

.dt-approach {
  overflow: hidden;
  border-top: 1px solid var(--line);
  background: var(--ivory);
  color: var(--ink);
}

.dt-approach__stage {
  display: grid;
  grid-template-areas:
    "flowers copy lakeside"
    "note note note";
  grid-template-columns: minmax(220px, 1fr) minmax(420px, 1.35fr) minmax(220px, 1fr);
  align-items: center;
  gap: clamp(2rem, 4vw, 5rem) clamp(1.5rem, 3vw, 3.75rem);
}

.dt-approach__copy {
  grid-area: copy;
  width: 100%;
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
}

.dt-approach p:not(.eyebrow) {
  color: #46515b;
}

.dt-approach__copy > p:not(.eyebrow) {
  max-width: 680px;
  margin: 0 auto 2rem;
}

.dt-approach__print {
  width: min(100%, 390px);
  margin: 0;
  filter: drop-shadow(0 18px 28px rgba(7, 20, 32, .14));
}

.dt-approach__print--flowers {
  grid-area: flowers;
  justify-self: end;
  transform: translateX(-2%) rotate(-3deg);
}

.dt-approach__print--lakeside {
  grid-area: lakeside;
  justify-self: start;
  transform: translateX(2%) rotate(3deg);
}

.dt-approach__print picture,
.dt-approach__print img {
  display: block;
  width: 100%;
}

.dt-approach__print img {
  height: auto;
}

.dt-approach__disclosure {
  grid-area: note;
  margin: 0 !important;
  color: #6c7378 !important;
  font-family: var(--sans) !important;
  font-size: .63rem !important;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.5 !important;
  text-align: center;
  text-transform: uppercase;
}

.dt-approach .button-light {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--ivory);
}

.dt-approach .button-light:hover {
  border-color: var(--gold-dark);
  background: var(--gold-dark);
}

.dt-home-cta {
  border-top: 1px solid var(--line);
  background: var(--paper);
}

@media (max-width: 900px) {
  .dt-service-index {
    grid-template-columns: 1fr;
    width: min(100% - 3rem, 680px);
  }

  .dt-service-card {
    padding: 3rem 1.25rem;
  }

  .dt-service-card + .dt-service-card {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .dt-service-card .eyebrow {
    min-height: 0;
  }

  .dt-approach__stage {
    grid-template-areas:
      "copy copy"
      "flowers lakeside"
      "note note";
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.75rem 1rem;
  }

  .dt-approach__copy {
    width: min(100% - 1.5rem, 720px);
  }

  .dt-approach__print {
    width: 100%;
  }
}

@media (max-width: 760px) {
  .home-folio .button-row .button,
  .home-folio .dt-home-hero .button {
    flex: 0 0 auto;
    width: min(100%, 340px);
    min-height: 50px;
  }

  .dt-home-hero .button-row {
    align-items: center;
  }

  .dt-services {
    padding-bottom: 4.5rem;
  }

  .dt-services__heading {
    padding-block: 4.25rem 3.25rem;
  }

  .dt-service-index {
    width: calc(100% - 1.5rem);
  }

  .dt-service-card {
    padding: 2.75rem .75rem;
  }

  .dt-service-card h3 {
    max-width: 320px;
    font-size: clamp(2.1rem, 9vw, 2.8rem);
  }

  .dt-service-card__summary {
    max-width: 330px;
    font-size: .98rem;
  }

  .dt-service-card .dt-inclusions {
    max-width: 330px;
  }

  .dt-services__pricing-link {
    margin-top: 1.75rem;
  }

  .dt-approach {
    padding-block: 4.75rem 3.75rem;
  }

  .dt-approach__stage {
    width: calc(100% - 1.5rem);
    gap: 2.75rem .65rem;
  }

  .dt-approach__copy {
    width: 100%;
  }

  .dt-approach__copy h2 {
    max-width: 520px;
    margin-inline: auto;
  }

  .dt-approach__print--flowers {
    transform: translateY(3%) rotate(-2deg);
  }

  .dt-approach__print--lakeside {
    transform: translateY(-3%) rotate(2deg);
  }

  .dt-approach__disclosure {
    max-width: 320px;
    margin-inline: auto !important;
    font-size: .58rem !important;
  }
}

/* Homepage service choice: standalone services followed by coordinated collections. */
.dt-services {
  padding-bottom: 0;
}

.dt-service-card .text-link,
.dt-service-card__button {
  margin-top: auto;
}

.dt-service-card__button {
  width: min(100%, 290px);
  padding-inline: 1.25rem;
}

.dt-collections {
  overflow: hidden;
  background: var(--ink);
  color: var(--ivory);
  text-align: center;
}

.dt-collections__heading {
  width: min(100%, 820px);
  margin: 0 auto clamp(3rem, 5vw, 4.75rem);
}

.dt-collections__heading .eyebrow,
.dt-collection .eyebrow,
.dt-collection__price span {
  color: #d4b77f;
}

.dt-collections__heading h2 {
  margin-bottom: 1.25rem;
}

.dt-collections__heading > p:last-child {
  max-width: 660px;
  margin-inline: auto;
  color: #c8d0d6;
  font-size: 1.05rem;
  line-height: 1.65;
}

.dt-collection-index {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-block: 1px solid rgba(255, 255, 255, .22);
}

.dt-collection {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  padding: clamp(3rem, 5vw, 5rem) clamp(1.5rem, 4vw, 4.5rem);
}

.dt-collection + .dt-collection {
  border-left: 1px solid rgba(255, 255, 255, .22);
}

.dt-collection h3 {
  max-width: 520px;
  margin-bottom: 1.25rem;
  color: var(--ivory);
  font-size: clamp(2.4rem, 4vw, 4.25rem);
  line-height: 1.02;
}

.dt-collection__price {
  display: grid;
  justify-items: center;
  margin: 0 auto 1.5rem;
}

.dt-collection__price span {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.dt-collection__price strong {
  font-family: var(--serif);
  font-size: clamp(2.75rem, 4.5vw, 4.8rem);
  font-weight: 500;
  line-height: 1.08;
}

.dt-collection ul {
  display: grid;
  width: min(100%, 470px);
  gap: .55rem;
  margin: 0 auto 2rem;
  padding: 1.35rem 0;
  border-block: 1px solid rgba(255, 255, 255, .16);
  color: #c8d0d6;
  list-style: none;
}

.dt-collection li {
  font-size: .9rem;
  line-height: 1.5;
}

.dt-collection .button {
  width: min(100%, 290px);
  margin-top: auto;
  border-color: #d4b77f;
  background: #d4b77f;
  color: var(--ink);
}

.dt-collection .button:hover {
  border-color: var(--ivory);
  background: var(--ivory);
  color: var(--ink);
}

.dt-collections__compare {
  margin-top: clamp(2.5rem, 4vw, 3.75rem);
}

.dt-collections__compare .button-secondary {
  border-color: rgba(255, 255, 255, .55);
  color: var(--ivory);
}

.dt-collections__compare .button-secondary:hover {
  border-color: var(--ivory);
  background: var(--ivory);
  color: var(--ink);
}

@media (max-width: 900px) {
  .dt-collection-index {
    grid-template-columns: 1fr;
  }

  .dt-collection + .dt-collection {
    border-top: 1px solid rgba(255, 255, 255, .22);
    border-left: 0;
  }
}

@media (max-width: 760px) {
  .dt-service-card__button {
    min-height: 50px;
  }

  .dt-collections {
    padding-block: 4.75rem;
  }

  .dt-collections__heading {
    width: calc(100% - 1rem);
    margin-bottom: 3rem;
  }

  .dt-collection-index {
    width: calc(100% - .5rem);
    margin-inline: auto;
  }

  .dt-collection {
    padding: 3.25rem .75rem;
  }

  .dt-collection h3 {
    max-width: 370px;
    font-size: clamp(2.35rem, 10vw, 3.4rem);
  }

  .dt-collection ul {
    max-width: 360px;
  }

  .dt-collections__compare {
    margin-top: 2.5rem;
  }
}

/* Funeral photography: contact-sheet editorial direction */
.photo-editorial {
  background: var(--ivory);
}

.photo-editorial main {
  overflow: clip;
}

.dt-photo-hero {
  position: relative;
  padding: clamp(4.75rem, 8vw, 7.5rem) 0 clamp(4.25rem, 7vw, 6.25rem);
  border-bottom: 1px solid var(--line);
  background: var(--ivory);
}

.dt-photo-hero::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 5px;
  background: var(--gold);
}

.dt-photo-hero__inner {
  width: min(100% - 3rem, 1040px);
  text-align: center;
}

.dt-photo-hero__inner .eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
}

.dt-photo-hero__inner .eyebrow::before,
.dt-photo-hero__inner .eyebrow::after {
  content: "";
  width: clamp(34px, 6vw, 80px);
  height: 1px;
  background: var(--line);
}

.dt-photo-hero h1 {
  max-width: 1000px;
  margin-bottom: 1.6rem;
  font-size: clamp(3.25rem, 6.8vw, 7rem);
  line-height: .94;
}

.dt-photo-hero .lede {
  max-width: 790px;
  margin: 0 auto 2rem;
  color: #3f4a55;
  font-size: clamp(1.12rem, 1.7vw, 1.42rem);
  line-height: 1.55;
}

.dt-photo-button-gold {
  border-color: var(--gold);
  background: var(--gold);
  color: var(--ink);
}

.dt-photo-button-gold:hover {
  border-color: var(--gold-dark);
  background: var(--gold-dark);
  color: var(--ivory);
}

.dt-contact-sheet {
  margin: 0;
  padding: .75rem;
  background: #07111b;
  color: var(--ivory);
}

.dt-contact-sheet__rail {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 34px;
  padding: 0 .35rem;
  color: #d4b77f;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .18em;
  line-height: 1;
}

.dt-contact-sheet__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .72rem;
}

.dt-contact-sheet picture {
  display: block;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .23);
  background: #101820;
}

.dt-contact-sheet img {
  width: 100%;
  height: clamp(180px, 17vw, 320px);
  object-fit: cover;
  filter: grayscale(1) contrast(1.06);
  transition: transform .8s cubic-bezier(.22, .78, .2, 1), filter .4s ease;
}

.dt-contact-sheet picture:nth-child(2) img {
  object-position: 48% 45%;
}

.dt-contact-sheet picture:nth-child(4) img {
  object-position: 50% 42%;
}

.dt-contact-sheet picture:nth-child(6) img {
  object-position: 48% 55%;
}

.dt-contact-sheet figcaption {
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
  padding: .85rem .35rem .25rem;
  color: #bfc5ca;
  font-size: .62rem;
  letter-spacing: .09em;
  line-height: 1.5;
  text-transform: uppercase;
}

.dt-contact-sheet figcaption strong {
  color: #d4b77f;
  text-align: right;
}

@media (hover: hover) and (pointer: fine) {
  .dt-contact-sheet picture:hover img {
    filter: grayscale(.35) contrast(1.03);
    transform: scale(1.035);
  }
}

.dt-photo-section-heading {
  max-width: 920px;
  margin-bottom: clamp(3rem, 5vw, 4.75rem);
  text-align: center;
}

.dt-photo-section-heading h2 {
  margin-bottom: 1.2rem;
}

.dt-photo-section-heading > p:last-child {
  max-width: 760px;
  margin: 0 auto;
  color: #46515b;
  font-size: 1.04rem;
  line-height: 1.7;
}

.dt-photo-story {
  background: var(--ivory);
}

.dt-photo-moments {
  margin-bottom: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}

.dt-photo-moments li {
  display: grid;
  grid-template-columns: minmax(190px, 270px) minmax(220px, .8fr) minmax(280px, 1.2fr);
  gap: clamp(1.25rem, 3vw, 3.5rem);
  align-items: center;
  min-height: 190px;
  padding: 1.15rem 0;
  border-bottom: 1px solid var(--line);
}

.dt-photo-moments picture {
  display: block;
  overflow: hidden;
  background: var(--warm);
}

.dt-photo-moments img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  filter: grayscale(1) contrast(1.04);
}

.dt-photo-moments li:nth-child(4) img {
  object-position: 50% 58%;
}

.dt-photo-moments h3 {
  margin: 0;
  font-size: clamp(1.75rem, 2.65vw, 2.75rem);
  line-height: 1;
}

.dt-photo-moments p {
  margin: 0;
  color: #46515b;
  line-height: 1.6;
}

.dt-photo-privacy {
  position: relative;
  border-block: 1px solid rgba(255, 255, 255, .18);
  background: var(--ink);
  color: var(--ivory);
}

.dt-photo-privacy__inner {
  width: min(100% - 3rem, 940px);
  text-align: center;
}

.dt-photo-privacy .eyebrow {
  color: #d4b77f;
}

.dt-photo-privacy h2 {
  margin-bottom: 1.5rem;
}

.dt-photo-privacy__inner > p:not(.eyebrow) {
  max-width: 790px;
  margin-inline: auto;
  color: #c8d0d6;
  font-family: var(--serif);
  font-size: clamp(1.1rem, 1.7vw, 1.35rem);
  line-height: 1.62;
}

.dt-photo-privacy__promise {
  margin-top: 2rem;
  padding: 1.5rem clamp(1rem, 3vw, 2.5rem);
  border-block: 1px solid rgba(255, 255, 255, .22);
}

.dt-photo-privacy__promise strong {
  color: var(--ivory);
}

.dt-photo-packages {
  background: var(--paper);
}

.dt-photo-package-list {
  border-top: 1px solid var(--line);
}

.dt-photo-package {
  display: grid;
  grid-template-columns: minmax(180px, .78fr) minmax(210px, .88fr) minmax(280px, 1.15fr) minmax(190px, .75fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: center;
  padding: clamp(2rem, 3.5vw, 3rem) 0;
  border-bottom: 1px solid var(--line);
}

.dt-photo-package > figure {
  margin: 0;
}

.dt-photo-package > figure picture {
  display: block;
  overflow: hidden;
  background: var(--warm);
}

.dt-photo-package > figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  filter: grayscale(1) contrast(1.04);
}

.dt-photo-package > figure figcaption {
  margin-top: .45rem;
  color: #68717a;
  font-size: .56rem;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.4;
  text-align: center;
  text-transform: uppercase;
}

.dt-photo-package header {
  min-width: 0;
  text-align: center;
}

.dt-photo-package__number {
  display: block;
  margin-bottom: 1.3rem;
  color: var(--gold-dark);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.dt-photo-package header .eyebrow {
  margin-bottom: .6rem;
  font-size: .6rem;
}

.dt-photo-package h3 {
  margin-bottom: .3rem;
  font-size: clamp(2rem, 3.3vw, 3.35rem);
  line-height: 1;
}

.dt-photo-package__price {
  margin: 0;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(2.5rem, 3.8vw, 3.9rem);
  font-weight: 500;
  line-height: 1.05;
}

.dt-photo-package > ul {
  display: grid;
  gap: .42rem;
  margin: 0;
  padding: 0;
  color: #3f4a55;
  list-style: none;
}

.dt-photo-package > ul li {
  position: relative;
  padding-left: 1rem;
  font-size: .82rem;
  line-height: 1.45;
}

.dt-photo-package > ul li::before {
  content: "";
  position: absolute;
  top: .65em;
  left: 0;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gold-dark);
}

.dt-photo-package__action {
  display: grid;
  justify-items: center;
  gap: 1rem;
  text-align: center;
}

.dt-photo-package__action .button {
  width: min(100%, 220px);
}

.dt-photo-packages__compare {
  margin-top: clamp(2.5rem, 4vw, 4rem);
}

.dt-photo-process {
  border-top: 1px solid var(--line);
  background: var(--ivory);
}

.dt-photo-process__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: clamp(2.5rem, 4vw, 4rem);
  padding: 0;
  border-block: 1px solid var(--line);
  list-style: none;
}

.dt-photo-process__steps li {
  min-width: 0;
  padding: clamp(2rem, 4vw, 3.5rem);
  text-align: center;
}

.dt-photo-process__steps li + li {
  border-left: 1px solid var(--line);
}

.dt-photo-process__steps span {
  display: block;
  margin-bottom: 2rem;
  color: var(--gold-dark);
  font-family: var(--serif);
  font-size: clamp(2.5rem, 4vw, 4.5rem);
  line-height: .8;
}

.dt-photo-process__steps h3 {
  margin-bottom: .8rem;
  font-size: clamp(1.8rem, 2.8vw, 2.7rem);
}

.dt-photo-process__steps p {
  max-width: 330px;
  margin: 0 auto;
  color: #46515b;
}

.dt-photo-faq {
  border-top: 1px solid var(--line);
  background: #e8dfd0;
}

.dt-photo-faq .dt-photo-section-heading {
  width: min(100% - 3rem, 900px);
}

.dt-photo-faq .faq-list {
  border-top-color: var(--ink);
}

.dt-photo-faq .faq-question {
  text-align: center;
}

.dt-photo-faq .faq-answer {
  text-align: center;
}

.dt-photo-faq .faq-answer p {
  max-width: 650px;
  margin-inline: auto;
}

.photo-editorial .site-footer .footer-lead {
  display: none;
}

@media (max-width: 1120px) {
  .dt-contact-sheet__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .dt-contact-sheet img {
    height: clamp(210px, 29vw, 320px);
  }

  .dt-photo-moments li {
    grid-template-columns: minmax(170px, 230px) minmax(190px, .85fr) 1fr;
    gap: 1.5rem;
  }

  .dt-photo-package {
    grid-template-columns: minmax(180px, .75fr) 1fr 1.15fr;
  }

  .dt-photo-package__action {
    grid-column: 2 / -1;
    grid-template-columns: auto auto;
    justify-content: center;
    align-items: center;
  }
}

@media (max-width: 820px) {
  .dt-photo-hero h1 {
    font-size: clamp(3rem, 9vw, 5.25rem);
  }

  .dt-photo-moments li {
    grid-template-columns: 180px 1fr;
  }

  .dt-photo-moments p {
    grid-column: 1 / -1;
  }

  .dt-photo-package {
    grid-template-columns: minmax(190px, .72fr) 1fr;
  }

  .dt-photo-package > ul {
    align-self: stretch;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
  }

  .dt-photo-package__action {
    grid-column: 2;
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .dt-photo-hero {
    padding: 4.25rem 0 3.75rem;
  }

  .dt-photo-hero__inner {
    width: calc(100% - 1.5rem);
  }

  .dt-photo-hero__inner .eyebrow {
    font-size: .63rem;
  }

  .dt-photo-hero h1 {
    max-width: 580px;
    font-size: clamp(2.8rem, 12vw, 4.35rem);
    line-height: .96;
  }

  .dt-photo-hero .lede {
    max-width: 560px;
    font-size: 1.04rem;
    line-height: 1.6;
  }

  .dt-photo-hero .button-row {
    flex-direction: column;
    align-items: center;
  }

  .dt-photo-hero .button {
    flex: 0 0 auto;
    width: min(100%, 340px);
    min-height: 50px;
  }

  .dt-contact-sheet {
    padding: .5rem;
  }

  .dt-contact-sheet__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
  }

  .dt-contact-sheet img {
    height: 42vw;
    min-height: 150px;
  }

  .dt-contact-sheet figcaption {
    flex-direction: column;
    gap: .2rem;
    padding-top: .7rem;
    text-align: center;
  }

  .dt-contact-sheet figcaption strong {
    text-align: center;
  }

  .dt-photo-section-heading {
    width: calc(100% - 1.5rem);
    margin-bottom: 2.75rem;
  }

  .dt-photo-section-heading h2 {
    font-size: clamp(2.45rem, 10.5vw, 3.8rem);
  }

  .dt-photo-section-heading > p:last-child {
    font-size: .98rem;
  }

  .dt-photo-moments {
    width: calc(100% - 1.5rem);
  }

  .dt-photo-moments li {
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 1.35rem 0 1.75rem;
  }

  .dt-photo-moments picture,
  .dt-photo-moments h3,
  .dt-photo-moments p {
    grid-column: 1;
  }

  .dt-photo-moments picture {
    width: 100%;
  }

  .dt-photo-moments img {
    height: min(56vw, 310px);
  }

  .dt-photo-moments h3 {
    font-size: clamp(1.85rem, 8vw, 2.65rem);
  }

  .dt-photo-moments p {
    text-align: center;
  }

  .dt-photo-privacy__inner {
    width: calc(100% - 1.5rem);
  }

  .dt-photo-package-list {
    width: calc(100% - 1.5rem);
  }

  .dt-photo-package {
    grid-template-columns: 1fr;
    gap: 1.6rem;
    padding: 2.75rem 0;
  }

  .dt-photo-package > figure {
    width: min(100%, 520px);
    margin-inline: auto;
  }

  .dt-photo-package header,
  .dt-photo-package > ul,
  .dt-photo-package__action {
    grid-column: 1;
    width: min(100%, 460px);
    margin-inline: auto;
  }

  .dt-photo-package > ul {
    gap: .55rem;
    padding: 1.25rem 0;
    border-block: 1px solid var(--line);
  }

  .dt-photo-package > ul li {
    padding-left: 0;
    text-align: center;
  }

  .dt-photo-package > ul li::before {
    display: none;
  }

  .dt-photo-package__action {
    justify-items: center;
  }

  .dt-photo-package__action .button {
    width: min(100%, 340px);
  }

  .dt-photo-packages__compare {
    width: calc(100% - 1.5rem);
  }

  .dt-photo-packages__compare .button {
    width: min(100%, 390px);
  }

  .dt-photo-process__steps {
    grid-template-columns: 1fr;
    width: calc(100% - 1.5rem);
  }

  .dt-photo-process__steps li + li {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .dt-photo-process__steps span {
    margin-bottom: 1.5rem;
  }

  .dt-photo-faq .dt-photo-section-heading {
    width: calc(100% - 1.5rem);
  }

  .dt-photo-faq .faq-list {
    width: calc(100% - 1.5rem);
  }
}

@media (max-width: 430px) {
  .dt-photo-hero h1 {
    font-size: clamp(2.55rem, 11.8vw, 3.35rem);
  }

  .dt-photo-hero__inner .eyebrow::before,
  .dt-photo-hero__inner .eyebrow::after {
    display: none;
  }

  .dt-contact-sheet__rail {
    font-size: .5rem;
    letter-spacing: .12em;
  }

  .dt-contact-sheet img {
    min-height: 135px;
  }

  .dt-photo-moments {
    width: calc(100% - 1rem);
  }

  .dt-photo-moments li {
    grid-template-columns: 1fr;
  }

  .dt-photo-package-list {
    width: calc(100% - 1rem);
  }
}

.motion-off .dt-contact-sheet img,
.motion-off .dt-photo-moments img,
.motion-off .dt-photo-package img {
  transform: none !important;
  transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .dt-contact-sheet img,
  .dt-photo-moments img,
  .dt-photo-package img {
    transform: none !important;
    transition: none !important;
  }
}

/* Dearly Told — memorial tribute films */
.film-editorial {
  background: var(--ivory);
}

.dt-film-button-gold {
  border-color: #b58b49;
  background: #b58b49;
  color: var(--ink);
}

.dt-film-button-gold:hover {
  border-color: #ceb071;
  background: #ceb071;
  color: var(--ink);
}

.dt-film-button-light {
  border-color: rgba(255, 255, 255, .75);
  background: var(--ivory);
  color: var(--ink);
}

.dt-film-button-light:hover {
  border-color: var(--ivory);
  background: var(--white);
  color: var(--ink);
}

.dt-film-hero {
  position: relative;
  display: grid;
  min-height: min(790px, calc(100svh - var(--header-height, 90px)));
  overflow: hidden;
  background: var(--ink);
  color: var(--ivory);
  isolation: isolate;
}

.dt-film-hero__media {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.dt-film-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 52%;
  filter: grayscale(1) brightness(.42) contrast(1.08);
  transform: scale(1.01);
  transition: transform 1.2s cubic-bezier(.2, .7, .2, 1), filter .5s ease;
}

.dt-film-hero__copy {
  align-self: center;
  width: min(100% - 3rem, 1040px);
  padding: clamp(7rem, 12vw, 11rem) 0;
  text-align: center;
}

.dt-film-hero .eyebrow {
  color: #e0c58f;
}

.dt-film-hero h1 {
  max-width: 970px;
  margin: 0 auto 1.4rem;
  color: var(--ivory);
  font-size: clamp(4.15rem, 7.1vw, 7.4rem);
  line-height: .91;
  text-wrap: balance;
}

.dt-film-hero .lede {
  max-width: 760px;
  margin: 0 auto 2rem;
  color: #edf0f2;
  font-family: var(--serif);
  font-size: clamp(1.12rem, 1.8vw, 1.42rem);
  line-height: 1.55;
}

.dt-film-hero .button-row {
  justify-content: center;
}

.dt-film-hero .button {
  flex: 0 0 auto;
  min-width: 200px;
}

.dt-film-hero__disclosure {
  position: absolute;
  right: max(1.5rem, calc((100vw - 1320px) / 2));
  bottom: 1.2rem;
  margin: 0;
  color: rgba(255, 255, 255, .78);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.dt-film-intro {
  border-bottom: 1px solid var(--line);
  background: var(--ivory);
  text-align: center;
}

.dt-film-intro .narrow {
  max-width: 860px;
}

.dt-film-intro h2 {
  margin-bottom: 1.25rem;
}

.dt-film-intro p:last-child {
  max-width: 760px;
  margin-inline: auto;
  color: #46515b;
  font-size: 1.08rem;
  line-height: 1.75;
}

.dt-film-packages {
  background: var(--ivory);
}

.dt-film-package {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(3rem, 6vw, 7rem);
  align-items: center;
  width: min(100% - 3rem, 1240px);
  margin-inline: auto;
  padding: clamp(4.5rem, 8vw, 8rem) 0;
  border-bottom: 1px solid var(--line);
}

.dt-film-package:first-child {
  border-top: 1px solid var(--line);
}

.dt-film-package > figure {
  margin: 0;
}

.dt-film-package > figure picture {
  display: block;
  overflow: hidden;
  background: var(--warm);
}

.dt-film-package > figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  filter: grayscale(1) contrast(1.04);
  transition: transform .8s cubic-bezier(.2, .7, .2, 1), filter .4s ease;
}

.dt-film-package > figure figcaption {
  margin-top: .55rem;
  color: #68717a;
  font-size: .56rem;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.45;
  text-align: center;
  text-transform: uppercase;
}

.dt-film-package--reverse > figure {
  order: 2;
}

.dt-film-package--reverse .dt-film-package__content {
  order: 1;
}

.dt-film-package__content {
  min-width: 0;
  text-align: center;
}

.dt-film-package__content .eyebrow {
  margin-bottom: .8rem;
}

.dt-film-package h2 {
  margin-bottom: .45rem;
  font-size: clamp(2.7rem, 4.6vw, 5rem);
  line-height: .95;
  text-wrap: balance;
}

.dt-film-package__price {
  margin: 0 0 1.4rem;
  color: var(--gold-dark);
  font-family: var(--serif);
  font-size: clamp(3.15rem, 5vw, 5.2rem);
  font-weight: 500;
  line-height: 1;
}

.dt-film-package__summary {
  max-width: 590px;
  margin: 0 auto 1.7rem;
  color: #46515b;
  font-size: 1.03rem;
  line-height: 1.68;
}

.dt-film-package__content ul {
  display: grid;
  margin: 0 auto 2rem;
  padding: 0;
  border-top: 1px solid var(--line);
  color: #3f4a55;
  list-style: none;
}

.dt-film-package__content li {
  padding: .58rem .5rem;
  border-bottom: 1px solid var(--line);
  font-size: .84rem;
  line-height: 1.45;
  text-align: center;
}

.dt-film-package__content .button {
  width: min(100%, 230px);
}

.dt-film-section-heading {
  max-width: 880px;
  margin-bottom: clamp(3rem, 5vw, 4.5rem);
  text-align: center;
}

.dt-film-section-heading h2 {
  margin-bottom: 1.15rem;
}

.dt-film-section-heading > p:last-child {
  max-width: 760px;
  margin: 0 auto;
  line-height: 1.7;
}

.dt-film-process {
  border-block: 1px solid rgba(255, 255, 255, .18);
  background: var(--ink);
  color: var(--ivory);
}

.dt-film-process .eyebrow {
  color: #d4b77f;
}

.dt-film-process .dt-film-section-heading > p:last-child {
  color: #c8d0d6;
}

.dt-film-process__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.4vw, 2rem);
}

.dt-film-process__grid article {
  min-width: 0;
  text-align: center;
}

.dt-film-process__grid picture {
  display: block;
  overflow: hidden;
  margin-bottom: 1.7rem;
  border: 1px solid rgba(255, 255, 255, .22);
  background: #101820;
}

.dt-film-process__grid img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  filter: grayscale(1) contrast(1.05);
  transition: transform .8s cubic-bezier(.2, .7, .2, 1);
}

.dt-film-process__grid h3 {
  margin-bottom: .75rem;
  color: var(--ivory);
  font-size: clamp(2rem, 3vw, 3rem);
}

.dt-film-process__grid p {
  max-width: 350px;
  margin: 0 auto;
  color: #c8d0d6;
  line-height: 1.65;
}

.dt-film-process__disclosure {
  margin-top: 2.5rem;
  color: #98a3ad;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-align: center;
  text-transform: uppercase;
}

.dt-film-transfer {
  background: var(--paper);
}

.dt-film-transfer__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-block: 1px solid var(--line);
}

.dt-film-transfer__grid article {
  padding: clamp(2rem, 4vw, 3.25rem) clamp(1rem, 2.5vw, 2.25rem);
  text-align: center;
}

.dt-film-transfer__grid article + article {
  border-left: 1px solid var(--line);
}

.dt-film-transfer__grid h3 {
  margin-bottom: .8rem;
  font-size: clamp(1.75rem, 2.5vw, 2.35rem);
}

.dt-film-transfer__grid p {
  margin: 0;
  color: #46515b;
  line-height: 1.65;
}

.dt-film-music {
  border-block: 1px solid var(--line);
  background: #e8dfd0;
  text-align: center;
}

.dt-film-music .narrow {
  max-width: 850px;
}

.dt-film-music h2 {
  margin-bottom: 1.2rem;
}

.dt-film-music p:last-child {
  max-width: 780px;
  margin-inline: auto;
  color: #46515b;
  line-height: 1.7;
}

.dt-film-faq {
  background: var(--ivory);
}

.dt-film-faq .faq-question,
.dt-film-faq .faq-answer {
  text-align: center;
}

.dt-film-faq .faq-answer p {
  max-width: 680px;
  margin-inline: auto;
}

.dt-film-cta {
  border-top: 1px solid var(--line);
  background: var(--paper);
  text-align: center;
}

.dt-film-cta .narrow {
  max-width: 860px;
}

.dt-film-cta h2 {
  margin-bottom: 1rem;
}

.dt-film-cta p:not(.eyebrow) {
  max-width: 720px;
  margin: 0 auto 2rem;
  color: #46515b;
  line-height: 1.7;
}

@media (hover: hover) and (pointer: fine) {
  .dt-film-hero:hover .dt-film-hero__media img {
    filter: grayscale(.72) brightness(.45) contrast(1.06);
    transform: scale(1.025);
  }

  .dt-film-package figure:hover img,
  .dt-film-process__grid picture:hover img {
    filter: grayscale(.55) contrast(1.03);
    transform: scale(1.025);
  }
}

@media (max-width: 1000px) {
  .dt-film-hero {
    min-height: 720px;
  }

  .dt-film-package {
    grid-template-columns: 1fr;
    gap: 2.5rem;
    width: min(100% - 3rem, 760px);
  }

  .dt-film-package--reverse > figure,
  .dt-film-package--reverse .dt-film-package__content {
    order: initial;
  }

  .dt-film-process__grid {
    grid-template-columns: 1fr;
    width: min(100% - 3rem, 720px);
    gap: 3rem;
  }

  .dt-film-transfer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dt-film-transfer__grid article:nth-child(3) {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .dt-film-transfer__grid article:nth-child(4) {
    border-top: 1px solid var(--line);
  }
}

@media (max-width: 760px) {
  .dt-film-hero {
    min-height: 720px;
  }

  .dt-film-hero__media img {
    object-position: 43% 50%;
    filter: grayscale(1) brightness(.36) contrast(1.08);
  }

  .dt-film-hero__copy {
    width: calc(100% - 1.5rem);
    padding: 5.5rem 0 7rem;
  }

  .dt-film-hero h1 {
    max-width: 580px;
    font-size: clamp(3rem, 12.1vw, 4.6rem);
    line-height: .94;
  }

  .dt-film-hero .lede {
    max-width: 560px;
    font-family: var(--sans);
    font-size: 1.02rem;
    line-height: 1.6;
  }

  .dt-film-hero .button-row,
  .dt-film-cta .button-row {
    flex-direction: column;
    align-items: center;
  }

  .dt-film-hero .button,
  .dt-film-cta .button {
    flex: 0 0 auto;
    width: min(100%, 340px);
    min-height: 50px;
  }

  .dt-film-hero__disclosure {
    right: .75rem;
    bottom: .8rem;
    left: .75rem;
    text-align: center;
  }

  .dt-film-intro .narrow,
  .dt-film-music .narrow,
  .dt-film-cta .narrow {
    width: calc(100% - 1.5rem);
  }

  .dt-film-package {
    width: calc(100% - 1.5rem);
    padding: 4rem 0;
  }

  .dt-film-package h2 {
    font-size: clamp(2.75rem, 11vw, 4.1rem);
  }

  .dt-film-package__price {
    font-size: clamp(3.4rem, 13vw, 4.5rem);
  }

  .dt-film-package__content .button {
    width: min(100%, 340px);
  }

  .dt-film-section-heading {
    width: calc(100% - 1.5rem);
  }

  .dt-film-process__grid {
    width: calc(100% - 1.5rem);
  }

  .dt-film-process__grid picture {
    width: 100%;
  }

  .dt-film-transfer__grid {
    grid-template-columns: 1fr;
    width: calc(100% - 1.5rem);
  }

  .dt-film-transfer__grid article + article,
  .dt-film-transfer__grid article:nth-child(3),
  .dt-film-transfer__grid article:nth-child(4) {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .dt-film-faq .faq-list {
    width: calc(100% - 1.5rem);
  }
}

@media (max-width: 430px) {
  .dt-film-hero {
    min-height: 690px;
  }

  .dt-film-hero h1 {
    font-size: clamp(2.75rem, 11.7vw, 3.5rem);
  }

  .dt-film-package {
    width: calc(100% - 1rem);
  }

  .dt-film-section-heading,
  .dt-film-process__grid,
  .dt-film-transfer__grid,
  .dt-film-faq .faq-list {
    width: calc(100% - 1rem);
  }
}

.motion-off .dt-film-hero__media img,
.motion-off .dt-film-package img,
.motion-off .dt-film-process img {
  transform: none !important;
  transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .dt-film-hero__media img,
  .dt-film-package img,
  .dt-film-process img {
    transform: none !important;
    transition: none !important;
  }
}

/* Dearly Told — custom memorial websites */
.website-editorial {
  background: var(--ivory);
}

.website-editorial main {
  overflow: clip;
}

.website-editorial .site-footer .footer-lead {
  display: none;
}

.dt-web-button-gold {
  border-color: var(--gold);
  background: var(--gold);
  color: var(--ink);
}

.dt-web-button-gold:hover {
  border-color: var(--gold-dark);
  background: var(--gold-dark);
  color: var(--ivory);
}

.dt-web-hero {
  position: relative;
  padding: clamp(3.25rem, 4vw, 4rem) 0 0;
  border-bottom: 1px solid var(--line);
  background: var(--ivory);
}

.dt-web-hero__copy {
  position: relative;
  z-index: 2;
  width: min(100% - 3rem, 1040px);
  text-align: center;
}

.dt-web-hero .eyebrow,
.dt-web-section-heading .eyebrow,
.dt-web-closing .eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.15rem;
}

.dt-web-hero .eyebrow::before,
.dt-web-hero .eyebrow::after,
.dt-web-section-heading .eyebrow::before,
.dt-web-section-heading .eyebrow::after,
.dt-web-closing .eyebrow::before,
.dt-web-closing .eyebrow::after {
  content: "";
  width: clamp(28px, 5vw, 72px);
  height: 1px;
  background: currentColor;
  opacity: .45;
}

.dt-web-hero h1 {
  max-width: 980px;
  margin-bottom: 1.4rem;
  font-size: clamp(3.35rem, 6.7vw, 7rem);
  line-height: .94;
}

.dt-web-hero .lede {
  max-width: 820px;
  margin: 0 auto 1.45rem;
  color: #3f4b56;
  font-size: clamp(1.12rem, 1.7vw, 1.42rem);
  line-height: 1.55;
}

.dt-web-hero__price {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: .55rem;
  margin: 0 auto 1.55rem;
  color: var(--gold-dark);
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.2vw, 2rem);
  line-height: 1.2;
}

.dt-web-hero__price span::after {
  content: "·";
  margin-left: .55rem;
}

.dt-web-hero__price strong {
  font-size: 1.22em;
  font-weight: 500;
}

.dt-web-collage {
  position: relative;
  height: clamp(300px, 26vw, 350px);
  margin-top: clamp(2rem, 2.75vw, 2.5rem);
}

.dt-web-collage picture {
  position: absolute;
  display: block;
  overflow: hidden;
  border: clamp(7px, .8vw, 12px) solid var(--ivory);
  background: var(--warm);
  box-shadow: 0 28px 70px rgba(9, 21, 33, .2);
}

.dt-web-collage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1s cubic-bezier(.22, .78, .2, 1);
}

.dt-web-collage__album {
  bottom: -2.5%;
  left: -6%;
  z-index: 1;
  width: 47%;
  height: 72%;
  transform: rotate(-2.2deg);
}

.dt-web-collage__portrait {
  top: 2%;
  left: 30%;
  z-index: 3;
  width: 45%;
  height: 78%;
  transform: rotate(-.4deg);
}

.dt-web-collage__lake {
  top: 8%;
  right: -5%;
  z-index: 2;
  width: 32%;
  height: 63%;
  transform: rotate(2.3deg);
}

.dt-web-collage__portrait img {
  object-position: 50% 52%;
}

.dt-web-collage__lake img {
  object-position: 46% center;
}

.dt-web-collage figcaption,
.dt-web-privacy__figure figcaption,
.dt-web-process__caption {
  color: #68717a;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.5;
  text-align: center;
  text-transform: uppercase;
}

.dt-web-collage figcaption {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  z-index: 5;
  padding: .45rem .65rem;
  background: rgba(252, 249, 241, .9);
}

@media (hover: hover) and (pointer: fine) {
  .dt-web-collage picture:hover img,
  .dt-web-process article:hover img,
  .dt-web-privacy__figure:hover img {
    transform: scale(1.035);
  }
}

.dt-web-inclusions {
  border-top: 5px solid var(--gold);
  background: var(--ivory);
}

.dt-web-section-heading {
  width: min(100% - 3rem, 980px);
  margin-bottom: clamp(3rem, 5vw, 4.75rem);
  text-align: center;
}

.dt-web-section-heading h2 {
  margin-bottom: 1.15rem;
}

.dt-web-section-heading > p:last-child {
  max-width: 790px;
  margin: 0 auto;
  color: #46515b;
  font-size: 1.05rem;
}

.dt-web-inclusion-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.dt-web-inclusion-grid article {
  position: relative;
  min-height: 235px;
  padding: clamp(1.5rem, 2.6vw, 2.5rem) clamp(1rem, 2vw, 2rem);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: center;
}

.dt-web-inclusion-grid article::before {
  content: "";
  display: block;
  width: 34px;
  height: 2px;
  margin: 0 auto 1.7rem;
  background: var(--gold);
}

.dt-web-inclusion-grid h3 {
  max-width: 210px;
  margin-bottom: .8rem;
  font-size: clamp(1.28rem, 1.75vw, 1.75rem);
  line-height: 1.06;
}

.dt-web-inclusion-grid p {
  max-width: 240px;
  margin: 0 auto;
  color: #53606a;
  font-size: .84rem;
  line-height: 1.55;
}

.dt-web-visitors {
  position: relative;
  min-height: 650px;
  display: grid;
  align-items: center;
  overflow: hidden;
  padding: clamp(5rem, 9vw, 8.5rem) 0;
  border-block: 1px solid var(--line);
}

.dt-web-visitors__media,
.dt-web-visitors__media img,
.dt-web-visitors__veil {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.dt-web-visitors__media img {
  object-fit: cover;
  object-position: center 45%;
}

.dt-web-visitors__veil {
  z-index: 1;
  background: rgba(252, 249, 241, .82);
}

.dt-web-visitors__content {
  position: relative;
  z-index: 2;
}

.dt-web-visitors .dt-web-section-heading {
  margin-bottom: clamp(2.5rem, 4vw, 3.5rem);
}

.dt-web-visitor-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-block: 1px solid rgba(9, 21, 33, .36);
}

.dt-web-visitor-grid article {
  padding: 1.75rem clamp(.9rem, 1.8vw, 1.7rem);
  text-align: center;
}

.dt-web-visitor-grid article + article {
  border-left: 1px solid rgba(9, 21, 33, .28);
}

.dt-web-visitor-grid h3 {
  margin-bottom: .75rem;
  font-size: clamp(1.45rem, 2vw, 2rem);
}

.dt-web-visitor-grid p {
  margin: 0;
  color: #34424e;
  font-size: .86rem;
  line-height: 1.55;
}

.dt-web-privacy {
  background: var(--ivory);
}

.dt-web-privacy__grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
}

.dt-web-privacy__copy {
  text-align: center;
}

.dt-web-privacy__copy > p:not(.eyebrow) {
  max-width: 650px;
  margin: 0 auto 2.25rem;
  color: #46515b;
  font-size: 1.03rem;
}

.dt-web-privacy__options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-block: 1px solid var(--line);
}

.dt-web-privacy__options article {
  padding: 1.6rem clamp(.8rem, 1.7vw, 1.4rem);
  text-align: center;
}

.dt-web-privacy__options article + article {
  border-left: 1px solid var(--line);
}

.dt-web-privacy__options h3 {
  margin-bottom: .7rem;
  color: var(--gold-dark);
  font-size: clamp(1.35rem, 1.8vw, 1.8rem);
}

.dt-web-privacy__options p {
  margin: 0;
  color: #52606a;
  font-size: .8rem;
  line-height: 1.55;
}

.dt-web-privacy__figure {
  margin: 0;
  padding: clamp(.55rem, 1vw, .85rem);
  border: 1px solid var(--line);
  background: var(--paper);
  box-shadow: var(--shadow);
}

.dt-web-privacy__figure picture {
  display: block;
  overflow: hidden;
}

.dt-web-privacy__figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform 1s cubic-bezier(.22, .78, .2, 1);
}

.dt-web-privacy__figure figcaption {
  padding: .65rem .25rem .1rem;
}

.dt-web-packages {
  border-top: 1px solid var(--line);
  background: var(--paper);
}

.dt-web-package-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.dt-web-package {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: clamp(2rem, 3.5vw, 3.5rem) clamp(1.3rem, 2.7vw, 2.75rem);
  border: 1px solid var(--line);
  background: var(--ivory);
  text-align: center;
}

.dt-web-package + .dt-web-package {
  border-left: 0;
}

.dt-web-package--featured {
  position: relative;
  z-index: 1;
  border: 2px solid var(--gold);
  background: #fffdf8;
  transform: translateY(-12px);
}

.dt-web-package--featured + .dt-web-package {
  border-left: 0;
}

.dt-web-package header {
  min-height: 245px;
}

.dt-web-package .eyebrow {
  min-height: 2.2em;
  margin-bottom: 1rem;
  font-size: .61rem;
}

.dt-web-package h3 {
  max-width: 350px;
  margin-bottom: 1rem;
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1;
}

.dt-web-package__price {
  margin: 0;
  color: var(--gold-dark);
  font-family: var(--serif);
  font-size: clamp(3rem, 4.2vw, 4.5rem);
  line-height: 1;
}

.dt-web-package__saving {
  margin: .65rem 0 0;
  color: var(--gold-dark);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dt-web-package ul {
  display: grid;
  gap: .55rem;
  margin: 0 0 2rem;
  padding: 1.75rem 0;
  border-block: 1px solid var(--line);
  color: #46515b;
  list-style: none;
}

.dt-web-package li {
  font-size: .84rem;
  line-height: 1.45;
}

.dt-web-package .button {
  width: min(100%, 300px);
  margin: auto auto 0;
}

.dt-web-packages__compare {
  margin-top: clamp(2.5rem, 4vw, 4rem);
}

.dt-web-process {
  border-top: 1px solid var(--line);
  background: var(--ivory);
}

.dt-web-process__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--line);
}

.dt-web-process article {
  min-width: 0;
  padding: 1rem clamp(1rem, 2vw, 1.75rem) 2rem;
  border-bottom: 1px solid var(--line);
  text-align: center;
}

.dt-web-process article + article {
  border-left: 1px solid var(--line);
}

.dt-web-process picture {
  display: block;
  margin: 0 calc(clamp(1rem, 2vw, 1.75rem) * -1) 1.6rem;
  overflow: hidden;
  background: var(--warm);
}

.dt-web-process img {
  width: 100%;
  height: clamp(170px, 17vw, 250px);
  object-fit: cover;
  transition: transform .9s cubic-bezier(.22, .78, .2, 1);
}

.dt-web-process article:nth-child(2) img {
  filter: grayscale(.75) contrast(1.02);
}

.dt-web-process h3 {
  margin-bottom: .7rem;
  font-size: clamp(1.5rem, 2vw, 2rem);
}

.dt-web-process article p {
  max-width: 290px;
  margin: 0 auto;
  color: #4d5964;
  font-size: .85rem;
  line-height: 1.55;
}

.dt-web-process__caption {
  margin-top: 1.1rem;
  margin-bottom: 0;
}

.dt-web-closing {
  position: relative;
  border-top: 5px solid var(--gold);
  background: var(--ink);
  color: var(--ivory);
}

.dt-web-closing__inner {
  width: min(100% - 3rem, 900px);
  text-align: center;
}

.dt-web-closing h2 {
  margin-bottom: 1.2rem;
}

.dt-web-closing__inner > p:not(.eyebrow) {
  max-width: 760px;
  margin: 0 auto 2rem;
  color: #cad1d6;
  font-family: var(--serif);
  font-size: clamp(1.12rem, 1.7vw, 1.35rem);
  line-height: 1.6;
}

@media (max-width: 1080px) {
  .dt-web-inclusion-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dt-web-visitor-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-left: 1px solid rgba(9, 21, 33, .28);
  }

  .dt-web-visitor-grid article {
    border-right: 1px solid rgba(9, 21, 33, .28);
    border-bottom: 1px solid rgba(9, 21, 33, .28);
  }

  .dt-web-visitor-grid article + article {
    border-left: 0;
  }

  .dt-web-package-grid {
    grid-template-columns: 1fr;
    width: min(100% - 3rem, 760px);
  }

  .dt-web-package + .dt-web-package,
  .dt-web-package--featured + .dt-web-package {
    border-top: 0;
    border-left: 1px solid var(--line);
  }

  .dt-web-package--featured {
    border: 2px solid var(--gold);
    transform: none;
  }

  .dt-web-package header {
    min-height: 0;
  }

  .dt-web-process__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dt-web-process article:nth-child(3) {
    border-left: 0;
  }
}

@media (max-width: 820px) {
  .dt-web-privacy__grid {
    grid-template-columns: 1fr;
    width: min(100% - 3rem, 700px);
  }

  .dt-web-privacy__figure {
    width: min(100%, 640px);
    margin-inline: auto;
  }
}

@media (max-width: 760px) {
  .dt-web-hero {
    padding-top: 4.25rem;
  }

  .dt-web-hero__copy {
    width: calc(100% - 1.5rem);
  }

  .dt-web-hero .eyebrow,
  .dt-web-section-heading .eyebrow,
  .dt-web-closing .eyebrow {
    font-size: .61rem;
  }

  .dt-web-hero h1 {
    max-width: 620px;
    font-size: clamp(2.75rem, 11.7vw, 4.25rem);
    line-height: .97;
  }

  .dt-web-hero .lede {
    max-width: 560px;
    font-size: 1.04rem;
    line-height: 1.58;
  }

  .dt-web-hero__price {
    flex-direction: column;
    gap: .2rem;
  }

  .dt-web-hero__price span::after {
    display: none;
  }

  .dt-web-hero .button-row {
    flex-direction: column;
    align-items: center;
  }

  .dt-web-hero .button {
    flex: 0 0 auto;
    width: min(100%, 270px);
    min-height: 50px;
  }

  .dt-web-collage {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    width: calc(100% - 1rem);
    height: auto;
    margin-top: 3.5rem;
    padding-bottom: 2.8rem;
  }

  .dt-web-collage picture {
    position: relative;
    inset: auto;
    width: auto;
    height: auto;
    transform: none;
  }

  .dt-web-collage__portrait {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .dt-web-collage__album,
  .dt-web-collage__lake {
    grid-row: 2;
  }

  .dt-web-collage picture img {
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
  }

  .dt-web-collage__album img,
  .dt-web-collage__lake img {
    aspect-ratio: 4 / 3;
  }

  .dt-web-collage figcaption {
    right: 0;
    bottom: .45rem;
    left: 0;
    background: transparent;
  }

  .dt-web-section-heading {
    width: calc(100% - 1.5rem);
    margin-bottom: 2.75rem;
  }

  .dt-web-section-heading h2 {
    font-size: clamp(2.45rem, 10.5vw, 3.8rem);
  }

  .dt-web-section-heading > p:last-child {
    font-size: .98rem;
  }

  .dt-web-inclusion-grid {
    grid-template-columns: 1fr;
    width: calc(100% - 1.5rem);
  }

  .dt-web-inclusion-grid article {
    min-height: 0;
    padding: 2rem 1.25rem;
  }

  .dt-web-inclusion-grid h3,
  .dt-web-inclusion-grid p {
    max-width: 440px;
  }

  .dt-web-visitors {
    min-height: 0;
    padding-block: 4.75rem;
  }

  .dt-web-visitors__media img {
    object-position: 42% center;
  }

  .dt-web-visitors__veil {
    background: rgba(252, 249, 241, .88);
  }

  .dt-web-visitor-grid {
    grid-template-columns: 1fr;
    width: calc(100% - 1.5rem);
    margin-inline: auto;
  }

  .dt-web-visitor-grid article + article {
    border-top: 1px solid rgba(9, 21, 33, .28);
  }

  .dt-web-visitor-grid article {
    padding: 1.6rem 1.25rem;
  }

  .dt-web-visitor-grid p {
    max-width: 470px;
    margin-inline: auto;
  }

  .dt-web-privacy__grid {
    width: calc(100% - 1.5rem);
  }

  .dt-web-privacy__options {
    grid-template-columns: 1fr;
  }

  .dt-web-privacy__options article + article {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .dt-web-package-grid {
    width: calc(100% - 1.5rem);
  }

  .dt-web-package,
  .dt-web-package + .dt-web-package,
  .dt-web-package--featured + .dt-web-package {
    padding: 2.75rem 1.25rem;
    border-left: 1px solid var(--line);
  }

  .dt-web-package--featured {
    border: 2px solid var(--gold);
  }

  .dt-web-package h3 {
    max-width: 440px;
    font-size: clamp(2.2rem, 10vw, 3.2rem);
  }

  .dt-web-package ul {
    width: min(100%, 460px);
    margin-inline: auto;
  }

  .dt-web-package .button {
    width: min(100%, 290px);
  }

  .dt-web-packages__compare {
    width: calc(100% - 1.5rem);
  }

  .dt-web-packages__compare .button {
    flex: 0 0 auto;
    width: min(100%, 310px);
  }

  .dt-web-closing .button {
    flex: 0 0 auto;
    width: min(100%, 280px);
  }

  .dt-web-process__grid {
    grid-template-columns: 1fr;
    width: calc(100% - 1.5rem);
  }

  .dt-web-process article,
  .dt-web-process article:nth-child(3) {
    border-left: 0;
  }

  .dt-web-process article + article {
    border-top: 1px solid var(--line);
  }

  .dt-web-process picture {
    margin: 0 0 1.5rem;
  }

  .dt-web-process img {
    height: min(62vw, 340px);
  }

  .dt-web-process article p {
    max-width: 460px;
  }

  .dt-web-closing__inner {
    width: calc(100% - 1.5rem);
  }
}

@media (max-width: 430px) {
  .dt-web-hero .eyebrow::before,
  .dt-web-hero .eyebrow::after,
  .dt-web-section-heading .eyebrow::before,
  .dt-web-section-heading .eyebrow::after,
  .dt-web-closing .eyebrow::before,
  .dt-web-closing .eyebrow::after {
    display: none;
  }

  .dt-web-hero h1 {
    font-size: clamp(2.55rem, 11.6vw, 3.35rem);
  }

  .dt-web-collage {
    gap: .45rem;
  }

  .dt-web-collage picture {
    border-width: 5px;
  }

  .dt-web-inclusion-grid,
  .dt-web-visitor-grid,
  .dt-web-privacy__grid,
  .dt-web-package-grid,
  .dt-web-process__grid {
    width: calc(100% - 1rem);
  }
}

.motion-off .dt-web-collage img,
.motion-off .dt-web-privacy__figure img,
.motion-off .dt-web-process img {
  transform: none !important;
  transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .dt-web-collage img,
  .dt-web-privacy__figure img,
  .dt-web-process img {
    transform: none !important;
    transition: none !important;
  }
}

@media (min-width: 1221px) {
  .footer-grid {
    grid-template-columns: 1.55fr repeat(4, minmax(0, .75fr));
    gap: 2rem;
  }
}

/* Pricing: editorial investment menu */
.pricing-editorial {
  background: #f6f1e7;
}

.pricing-editorial .button {
  min-height: 44px;
  padding: .72rem 1.15rem;
  font-size: .76rem;
}

.pricing-editorial .site-footer .footer-lead {
  display: none;
}

.pricing-showcase-hero {
  overflow: hidden;
  padding: clamp(3.5rem, 7vw, 7rem) 0 clamp(4.5rem, 8vw, 8rem);
  background:
    radial-gradient(circle at 10% 20%, rgba(170, 135, 80, .08), transparent 34%),
    var(--ivory);
  border-bottom: 1px solid var(--line);
}

.pricing-showcase-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, .98fr) minmax(420px, 1.02fr);
  gap: clamp(3rem, 5vw, 5rem);
  align-items: center;
}

.pricing-showcase-hero__copy {
  max-width: 650px;
}

.pricing-showcase-hero__copy h1 {
  max-width: 690px;
  margin-bottom: 1.75rem;
  font-size: clamp(4.2rem, 5vw, 6.3rem);
  line-height: .93;
  text-align: left;
}

.pricing-showcase-hero__lead {
  max-width: 610px;
  margin-bottom: 2rem;
  color: #45505a;
  font-family: var(--serif);
  font-size: clamp(1.13rem, 1.5vw, 1.35rem);
  line-height: 1.55;
}

.pricing-showcase-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.3rem;
}

.pricing-showcase-hero__primary {
  border-color: var(--gold-dark);
  background: var(--gold);
  color: var(--ink);
}

.pricing-showcase-hero__primary span {
  margin-left: .45rem;
}

.pricing-showcase-hero__secondary {
  border-color: #b69d77;
  background: transparent;
  color: var(--ink);
}

.pricing-showcase-hero__figure {
  position: relative;
  margin: 0;
  padding: 1rem 1rem 2.9rem;
  background: #e7decd;
  box-shadow: 0 30px 80px rgba(20, 28, 34, .14);
  transform: rotate(.7deg);
}

.pricing-showcase-hero__figure::before {
  content: "";
  position: absolute;
  inset: -1.25rem 1.75rem 1.2rem -1.5rem;
  z-index: -1;
  border: 1px solid rgba(125, 96, 55, .35);
  transform: rotate(-2deg);
}

.pricing-showcase-hero__figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  filter: grayscale(1) sepia(.14) contrast(.92);
}

.pricing-showcase-hero__figure figcaption {
  position: absolute;
  right: 2rem;
  bottom: .75rem;
  margin: 0;
  color: #6d6255;
  font-family: var(--serif);
  font-size: 1.08rem;
  font-style: italic;
  letter-spacing: .03em;
  transform: rotate(-3deg);
}

.pricing-menu {
  padding: clamp(3.75rem, 5vw, 5rem) 0;
  background: var(--ivory);
}

.pricing-menu__heading,
.pricing-process__heading {
  max-width: 850px;
  margin-bottom: clamp(2.5rem, 3.5vw, 3.5rem);
  text-align: center;
}

.pricing-menu__heading h2,
.pricing-process__heading h2 {
  margin-bottom: 1.3rem;
  font-size: clamp(3rem, 4.2vw, 4.6rem);
}

.pricing-menu__heading > p:last-child,
.pricing-process__heading + p {
  color: #4c5660;
}

.pricing-category {
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.6fr);
  gap: clamp(3.25rem, 7vw, 7rem);
  padding-block: clamp(2rem, 3vw, 3rem);
  border-top: 1px solid var(--line);
}

.pricing-category--last {
  padding-bottom: 0;
}

.pricing-category__intro {
  align-self: start;
}

.pricing-category__intro .eyebrow {
  margin-bottom: .8rem;
  font-size: .67rem;
}

.pricing-category__intro h2 {
  margin-bottom: 1.2rem;
  font-size: clamp(3rem, 4.3vw, 4.7rem);
  text-align: left;
}

.pricing-category__intro > p:not(.eyebrow) {
  max-width: 390px;
  color: #4c5660;
  line-height: 1.65;
}

.pricing-category__intro picture {
  display: block;
  max-width: 300px;
  margin-top: 2rem;
  padding: .55rem;
  background: #e9e0d1;
}

.pricing-category__intro img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  filter: grayscale(1) sepia(.1) contrast(.94);
}

.pricing-category__list {
  align-self: stretch;
  border-top: 1px solid var(--line);
}

.pricing-line {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(120px, .3fr) 100px;
  gap: clamp(1.25rem, 2.8vw, 2.75rem);
  align-items: center;
  min-height: 130px;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
}

.pricing-line--featured::before {
  content: "";
  position: absolute;
  inset: 0 -.85rem;
  z-index: 0;
  background: rgba(170, 135, 80, .07);
}

.pricing-line > * {
  position: relative;
  z-index: 1;
}

.pricing-line h3 {
  margin-bottom: .6rem;
  font-size: clamp(1.75rem, 2.35vw, 2.65rem);
  line-height: 1.02;
}

.pricing-line div > p:last-child {
  max-width: 530px;
  margin: 0;
  color: #505a62;
  font-size: .9rem;
  line-height: 1.55;
}

.pricing-line__note {
  margin-bottom: .5rem;
  color: var(--gold-dark);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .15em;
  line-height: 1.3;
  text-transform: uppercase;
}

.pricing-line__price {
  margin: 0;
  color: var(--gold-dark);
  font-family: var(--serif);
  font-size: clamp(1.8rem, 2.4vw, 2.55rem);
  line-height: 1;
  text-align: right;
  white-space: nowrap;
}

.pricing-line__qualifier {
  display: block;
  margin-bottom: .55rem;
  color: #737a7d;
  font-family: var(--sans);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.pricing-line__amount {
  display: block;
  font-weight: 500;
}

.pricing-line__link {
  justify-self: end;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .055em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}

.pricing-line__link span,
.pricing-collections article > a span {
  display: inline-block;
  margin-left: .35rem;
  transition: transform .2s ease;
}

.pricing-line__link:hover span,
.pricing-collections article > a:hover span {
  transform: translateX(4px);
}

.pricing-category__note {
  margin: 1.1rem 0 0;
  color: #687077;
  font-size: .78rem;
}

.pricing-collections {
  padding: clamp(3.5rem, 4.5vw, 4.5rem) 0;
  background: var(--ink);
  color: var(--ivory);
}

.pricing-collections__heading {
  display: grid;
  grid-template-columns: 1fr minmax(0, 1.6fr) 1fr;
  gap: 3rem;
  align-items: end;
  margin-bottom: clamp(2rem, 3vw, 3rem);
}

.pricing-collections__heading .eyebrow,
.pricing-collections article .eyebrow {
  color: #cfb482;
}

.pricing-collections__heading h2 {
  margin: 0;
  font-size: clamp(3.2rem, 4.8vw, 5rem);
  text-align: left;
}

.pricing-collections__heading > p:last-child {
  margin: 0;
  color: #c9c7c0;
  font-size: .91rem;
}

.pricing-collections__grid {
  display: grid;
  grid-template-columns: minmax(260px, .85fr) 1fr 1fr;
  border-block: 1px solid rgba(255, 255, 255, .24);
}

.pricing-collections__grid figure {
  min-height: 310px;
  margin: 0;
  padding: 1.5rem 1.5rem 1.5rem 0;
}

.pricing-collections__grid figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) sepia(.12) contrast(.9);
}

.pricing-collections__grid article {
  display: flex;
  min-height: 310px;
  flex-direction: column;
  justify-content: center;
  padding: 2.5rem clamp(1.8rem, 3.3vw, 3.7rem);
  border-left: 1px solid rgba(255, 255, 255, .24);
}

.pricing-collections__grid article .eyebrow {
  margin-bottom: .8rem;
  font-size: .64rem;
}

.pricing-collections__grid h3 {
  margin-bottom: 1.15rem;
  font-size: clamp(2.15rem, 2.8vw, 3rem);
}

.pricing-collections__grid article > p:not(.eyebrow):not(.pricing-collections__price) {
  color: #d1d0cb;
  font-size: .91rem;
  line-height: 1.62;
}

.pricing-collections__price {
  margin: .55rem 0 1.2rem;
  color: #d4b87f;
  font-family: var(--serif);
  font-size: 2rem;
  line-height: 1;
}

.pricing-collections__amount {
  font-weight: 500;
}

.pricing-collections__qualifier,
.pricing-collections__saving {
  color: #bfc0bd;
  font-family: var(--sans);
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.pricing-collections__qualifier {
  display: block;
  margin-bottom: .55rem;
}

.pricing-collections__saving {
  margin-left: .55rem;
}

.pricing-collections article > a {
  align-self: flex-start;
  color: var(--ivory);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
}

.pricing-process {
  padding: clamp(3rem, 4vw, 4rem) 0;
  background: #eee7da;
}

.pricing-process__heading {
  margin-bottom: clamp(2rem, 3vw, 3rem);
}

.pricing-process__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-block: 1px solid var(--line);
}

.pricing-process__grid article {
  min-height: 170px;
  padding: clamp(1.5rem, 2.4vw, 2.25rem);
}

.pricing-process__grid article + article {
  border-left: 1px solid var(--line);
}

.pricing-process__grid h3 {
  font-size: clamp(1.75rem, 2.5vw, 2.5rem);
  line-height: 1.05;
}

.pricing-process__grid p {
  margin: 0;
  color: #515a61;
  font-size: .9rem;
  line-height: 1.65;
}

.pricing-fine-print {
  max-width: 950px;
  margin-top: 2rem;
  text-align: center;
}

.pricing-process__action {
  display: flex;
  justify-content: center;
  margin: 1.5rem 0 0;
}

.pricing-closing {
  padding: clamp(3.4rem, 6vw, 5.5rem) 0;
  background: #ddd1bd;
  border-top: 1px solid var(--line);
}

.pricing-closing__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr);
  gap: 4rem;
  align-items: center;
}

.pricing-closing h2 {
  max-width: 800px;
  margin: 0;
  font-size: clamp(2.7rem, 4.6vw, 4.9rem);
  text-align: left;
}

.pricing-closing__inner > div:last-child {
  display: grid;
  justify-items: start;
}

.pricing-closing__inner > div:last-child p {
  max-width: 360px;
  margin-bottom: 1.25rem;
  color: #48525a;
}

@media (max-width: 980px) {
  .pricing-showcase-hero__grid {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
  }

  .pricing-showcase-hero__copy h1 {
    font-size: clamp(3.8rem, 7.8vw, 5.8rem);
  }

  .pricing-category {
    grid-template-columns: minmax(220px, .55fr) minmax(0, 1.45fr);
    gap: 2.5rem;
  }

  .pricing-line {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .pricing-line__link {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .pricing-collections__heading {
    grid-template-columns: 1fr 2fr;
  }

  .pricing-collections__heading > p:last-child {
    grid-column: 2;
  }

  .pricing-collections__grid {
    grid-template-columns: .75fr 1fr 1fr;
  }

  .pricing-collections__grid article {
    padding-inline: 1.7rem;
  }
}

@media (max-width: 760px) {
  .pricing-editorial .site-header {
    background: var(--paper);
    backdrop-filter: none;
  }

  .pricing-editorial .shell {
    width: min(100% - 2rem, 1280px);
  }

  .pricing-editorial main p {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
  }

  .pricing-showcase-hero {
    padding: 3.6rem 0 4.8rem;
  }

  .pricing-showcase-hero__grid,
  .pricing-category,
  .pricing-collections__heading,
  .pricing-collections__grid,
  .pricing-process__grid,
  .pricing-closing__inner {
    grid-template-columns: 1fr;
  }

  .pricing-showcase-hero__grid {
    gap: 3.5rem;
  }

  .pricing-showcase-hero__copy {
    margin-inline: auto;
    text-align: center;
  }

  .pricing-showcase-hero__copy h1 {
    font-size: clamp(3.25rem, 14vw, 4.7rem);
  }

  .pricing-showcase-hero__lead {
    font-size: 1.08rem;
  }

  .pricing-showcase-hero__actions {
    justify-content: center;
  }

  .pricing-showcase-hero__figure {
    width: calc(100% - .75rem);
    margin-left: .75rem;
  }

  .pricing-menu__heading,
  .pricing-process__heading {
    margin-bottom: 3.8rem;
  }

  .pricing-menu__heading h2,
  .pricing-process__heading h2 {
    font-size: clamp(2.75rem, 12vw, 4rem);
  }

  .pricing-category {
    gap: 2.75rem;
    padding-block: 4.3rem;
  }

  .pricing-category__intro h2 {
    font-size: clamp(2.85rem, 12vw, 4rem);
  }

  .pricing-category__intro picture {
    max-width: none;
    margin: 1.5rem auto 0;
  }

  .pricing-line {
    grid-template-columns: 1fr;
    justify-items: center;
    min-height: 0;
    gap: 1.15rem;
    padding: 2rem 0;
    text-align: center;
  }

  .pricing-line--featured::before {
    inset: 0 -.5rem;
  }

  .pricing-line h3 {
    font-size: clamp(1.75rem, 7.5vw, 2.35rem);
  }

  .pricing-line__price {
    align-self: start;
    padding-top: .15rem;
    font-size: 1.75rem;
    text-align: center;
    white-space: normal;
  }

  .pricing-line__qualifier {
    display: block;
    margin: 0 0 .55rem;
    font-size: .5rem;
  }

  .pricing-line__link {
    grid-column: auto;
    justify-self: center;
    text-align: center;
  }

  .pricing-line__note {
    text-align: center;
  }

  .pricing-collections__heading {
    gap: 1.1rem;
  }

  .pricing-collections__heading h2 {
    font-size: clamp(3rem, 12vw, 4.3rem);
  }

  .pricing-collections__heading > p:last-child {
    grid-column: auto;
  }

  .pricing-collections__grid figure,
  .pricing-collections__grid article {
    min-height: 0;
  }

  .pricing-collections__grid figure {
    height: 300px;
    padding: 1rem 0;
  }

  .pricing-collections__grid article {
    align-items: center;
    padding: 2.7rem .25rem;
    border-top: 1px solid rgba(255, 255, 255, .24);
    border-left: 0;
    text-align: center;
  }

  .pricing-collections__grid h3 {
    font-size: clamp(2.4rem, 10vw, 3.4rem);
  }

  .pricing-collections__price {
    display: grid;
    justify-items: center;
    gap: .45rem;
    text-align: center;
  }

  .pricing-collections__qualifier {
    margin: 0;
  }

  .pricing-collections__saving {
    margin: 0;
  }

  .pricing-collections article > a {
    align-self: center;
    text-align: center;
  }

  .pricing-process__grid article {
    min-height: 0;
    padding: 2.25rem .25rem;
  }

  .pricing-process__grid article + article {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .pricing-closing__inner {
    gap: 2rem;
  }

  .pricing-closing h2 {
    font-size: clamp(2.6rem, 11vw, 3.8rem);
  }

  .pricing-editorial .pricing-showcase-hero__actions .button,
  .pricing-editorial .pricing-closing .button {
    width: auto;
    max-width: 100%;
  }
}

@media (max-width: 430px) {
  .pricing-line {
    grid-template-columns: 1fr;
  }

  .pricing-line__price {
    text-align: center;
  }

  .pricing-line__qualifier {
    display: block;
    margin: 0 0 .55rem;
  }
}
