/*!
 * PPD&G Astra Child — design system.
 *
 * Part 1 is the approved redesign stylesheet (homepage + interior pages),
 * with element selectors scoped to the theme's header/nav/footer classes.
 * Part 2 adapts the design to WordPress output (menus, blocks, patterns,
 * Gravity Forms, comments, widgets).
 *
 * Brand tokens: --ink, --gold, --paper, --line (see :root below).
 */
/* ===== from base.css ===== */
:root {
  --ink: #252922;
  --gold: #8b794b;
  --paper: #f7f5ef;
  --line: #deded3;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: #fff;
  color: var(--ink);
  font:
    16px/1.6 Arial,
    Helvetica,
    sans-serif;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a,
summary {
  touch-action: manipulation;
}
button,
a,
summary,
.ppdg-form input,
.ppdg-form select,
.ppdg-form textarea {
  outline-offset: 5px;
}
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--gold);
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: #fffffff5;
  border-bottom: 1px solid var(--line);
  padding: 24px 5%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.logo {
  font:
    44px/0.95 Georgia,
    serif;
  letter-spacing: -3px;
  color: #71613d;
  white-space: nowrap;
}
.logo small {
  font:
    8px/2.5 Arial,
    sans-serif;
  display: block;
  letter-spacing: 1px;
}
.main-nav {
  display: flex;
  align-items: center;
  gap: 30px;
  font-size: 14px;
}
summary {
  cursor: pointer;
  list-style: none;
}
summary::-webkit-details-marker {
  display: none;
}
summary span {
  margin-left: 6px;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 26px;
  background: var(--ink);
  color: white;
  padding: 14px 22px;
  border: 1px solid var(--ink);
  font-size: 14px;
  cursor: pointer;
  min-height: 48px;
}
.button:hover {
  background: #435044;
}
.button.secondary {
  background: transparent;
  color: var(--ink);
  border-color: #b6b8aa;
}
.textlink {
  border-bottom: 1px solid #8b794b;
  padding-bottom: 6px;
  font-size: 14px;
}
.mega {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 15px 20px #0001;
  display: grid;
  grid-template-columns: 2fr 1fr;
  padding: 36px 12%;
  gap: 50px;
}
.mega > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.mega .eyebrow {
  grid-column: 1/-1;
}
.mega a {
  font-family: Georgia, serif;
  font-size: 24px;
}
.mega small {
  display: block;
  font: 14px/1.7 Arial;
  color: #686c61;
}
.mega aside {
  border-left: 1px solid var(--line);
  padding-left: 40px;
}
.mega aside p {
  font: 28px/1.3 Georgia;
}
.mega aside a {
  font: 14px Arial;
}
.eyebrow {
  font-size: 12px;
  letter-spacing: 2px;
  font-weight: 600;
  color: #77683e;
  margin: 0 0 20px;
}
.hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--paper);
  min-height: 565px;
}
.hero-copy {
  padding: 70px 8% 65px 10%;
  align-self: center;
}
.hero h1 {
  font:
    clamp(42px, 4.4vw, 72px) / 1.07 Georgia,
    serif;
  font-weight: 400;
  letter-spacing: -2px;
  margin: 0 0 26px;
}
.hero h1 em {
  font-weight: 400;
  color: var(--gold);
}
.hero p:not(.eyebrow) {
  max-width: 440px;
  color: #5f645c;
  margin-bottom: 30px;
}
.actions {
  display: flex;
  gap: 22px;
  align-items: center;
  flex-wrap: wrap;
}
.trust {
  padding: 25px 5%;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.trust p {
  font-size: 12px;
  letter-spacing: 1px;
  max-width: 160px;
}
.trust span {
  font: 24px Georgia;
  letter-spacing: 2px;
  color: #64655b;
}
.section {
  padding: 70px 5%;
  max-width: 1600px;
  margin: auto;
}
.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 25px;
  margin-bottom: 32px;
}
h2 {
  font: clamp(32px, 3vw, 46px) / 1.14 Georgia;
  margin: 0 0 15px;
  font-weight: 400;
  letter-spacing: -1px;
}
h3 {
  font: 26px/1.25 Georgia;
  margin: 14px 0;
}
p {
  margin-top: 0;
}
.section-heading p {
  color: #6a6e64;
  margin: 0;
}
.cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.card {
  display: block;
}
.card img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  background: var(--paper);
  transition: transform 0.3s;
}
.card:hover img {
  transform: translateY(-5px);
}
.card :is(h2, h3) {
  display: flex;
  justify-content: space-between;
}
.card p {
  font-size: 14px;
  color: #64695f;
}
.assist {
  background: var(--paper);
  padding: 26px 32px;
  margin-top: 30px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
.assist p {
  margin: 0;
  color: #676b62;
}
.assist strong {
  font-weight: 400;
  font-family: Georgia;
  font-size: 23px;
  display: block;
  color: var(--ink);
}
.dark {
  background: #29372e;
  color: white;
}
.dark .eyebrow {
  color: #cfbf91;
}
.dark .section {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 70px;
}
.steps {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
}
.steps article {
  border-top: 1px solid #718074;
  padding-top: 16px;
}
.steps span {
  color: #cfbf91;
  font-size: 12px;
}
.steps h3 {
  font-size: 23px;
}
.steps p {
  font-size: 14px;
  color: #d2d9cf;
}
.cta {
  text-align: center;
  background: var(--paper);
  padding: 65px 20px;
}
.cta p {
  color: #62695e;
}
.crumb {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 13px;
  color: #6a6e64;
  margin-bottom: 25px;
}
.crumb a {
  text-decoration: underline;
}
.page-head {
  padding: 45px 5% 35px;
  background: var(--paper);
}
.page-head h1 {
  font: 52px/1.12 Georgia;
  margin: 0 0 20px;
}
.page-head p {
  max-width: 630px;
  color: #62685e;
}
.twocol {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 60px;
}
.feature {
  width: 100%;
  max-height: 540px;
  object-fit: cover;
}
.options {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.option {
  border: 1px solid var(--line);
  padding: 22px;
  display: block;
  background: white;
}
.option:hover {
  border-color: var(--gold);
  background: var(--paper);
}
.option :is(h2, h3) {
  font-size: 23px;
}
.option p {
  font-size: 14px;
  color: #64695f;
  margin: 0;
}
.option .arrow {
  float: right;
}
.spec {
  width: 100%;
  border-collapse: collapse;
}
.spec td {
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
}
.spec td:first-child {
  font-weight: bold;
  width: 36%;
}
.faq details {
  border-bottom: 1px solid var(--line);
  padding: 18px 0;
}
.faq summary {
  font-size: 17px;
}
.faq p {
  margin: 12px 0 0;
  color: #64695f;
}
.filters {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 25px 0;
}
.filters button {
  padding: 9px 18px;
  border: 1px solid var(--line);
  border-radius: 30px;
  background: white;
  cursor: pointer;
  font-size: 14px;
}
.filters button.active {
  background: var(--ink);
  color: white;
}
.search {
  width: 100%;
  padding: 14px;
  border: 1px solid #aeb1a6;
  background: white;
}
.quote-layout {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 80px;
}
.quote-note {
  padding: 25px;
  background: var(--paper);
  margin-top: 30px;
}
.quote-note p {
  font-size: 14px;
  margin-bottom: 0;
}
.ppdg-form {
  border: 1px solid var(--line);
  padding: 32px;
}
.fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.ppdg-form label {
  display: block;
  font-size: 14px;
  margin-bottom: 18px;
}
.ppdg-form input,
.ppdg-form select,
.ppdg-form textarea {
  display: block;
  width: 100%;
  border: 1px solid #b5b8ad;
  padding: 12px;
  background: white;
  border-radius: 0;
  margin-top: 6px;
}
.ppdg-form textarea {
  min-height: 125px;
  resize: vertical;
}
.ppdg-form small {
  font-size: 12px;
  color: #64695f;
}
.success {
  padding: 35px;
  background: var(--paper);
}
.site-footer {
  padding: 55px 5% 25px;
  display: grid;
  grid-template-columns: 1fr 1.4fr 1fr 1fr;
  gap: 25px;
  border-top: 1px solid var(--line);
}
.site-footer p {
  font: 27px/1.3 Georgia;
}
.site-footer div a {
  display: block;
  font-size: 14px;
  margin-bottom: 8px;
}
.site-footer > small {
  grid-column: 1/-1;
  border-top: 1px solid var(--line);
  padding-top: 20px;
  font-size: 12px;
  color: #686d62;
}
.skip {
  position: absolute;
  top: -100px;
}
.skip:focus {
  top: 0;
  z-index: 30;
  background: white;
  padding: 15px;
}
@media (min-width: 1500px) {
  .hero-copy {
    padding-left: 15%;
  }
  .hero {
    min-height: 650px;
  }
  .card img {
    height: 320px;
  }
}
@media (max-width: 900px) {
  .site-header {
    flex-wrap: wrap;
    padding: 18px 5%;
    gap: 18px;
  }
  .main-nav {
    order: 3;
    width: 100%;
    justify-content: space-between;
    gap: 12px;
  }
  .hero {
    min-height: 0;
  }
  .hero-copy {
    padding: 40px 8% 40px 10%;
  }
  .hero h1 {
    font-size: 44px;
  }
  .cards {
    grid-template-columns: repeat(2, 1fr);
  }
  .trust span {
    font-size: 18px;
  }
  .trust span:last-child {
    display: none;
  }
  .quote-layout {
    gap: 35px;
  }
  .options {
    grid-template-columns: 1fr 1fr;
  }
  .mega {
    padding: 25px 5%;
  }
}
@media (max-width: 600px) {
  .logo {
    font-size: 36px;
  }
  .logo small {
    font-size: 6px;
  }
  .headerquote {
    padding: 10px 12px;
    font-size: 12px;
    gap: 10px;
  }
  .main-nav {
    font-size: 13px;
  }
  .hero {
    grid-template-columns: 1fr;
  }
  .hero-copy {
    padding: 40px 6%;
  }
  .hero h1 {
    font-size: 48px;
  }
  .trust {
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
  }
  .trust p {
    max-width: 100%;
    width: 100%;
    text-align: center;
    margin: 0;
  }
  .trust span {
    font-size: 17px;
  }
  .section {
    padding: 45px 6%;
  }
  .section-heading {
    display: block;
  }
  .section-heading .textlink {
    display: inline-block;
    margin-top: 15px;
  }
  .cards {
    gap: 15px;
  }
  .card img {
    height: 190px;
  }
  .card :is(h2, h3) {
    font-size: 22px;
  }
  .assist {
    padding: 22px;
    display: block;
  }
  .assist .textlink {
    display: inline-block;
    margin-top: 20px;
  }
  .dark .section,
  .twocol,
  .quote-layout {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .options {
    grid-template-columns: 1fr;
  }
  .page-head h1 {
    font-size: 40px;
  }
  .mega {
    grid-template-columns: 1fr;
  }
  .mega aside {
    display: none;
  }
  .mega a {
    font-size: 20px;
  }
  .mega small {
    font-size: 12px;
  }
  .fields {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .ppdg-form {
    padding: 22px;
  }
  .site-footer {
    grid-template-columns: 1fr 1fr;
  }
  .site-footer .logo,
  .site-footer p {
    grid-column: 1/-1;
  }
  h2 {
    font-size: 34px;
  }
}
.manufacturer-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  background: #29372e;
  color: #fff;
  padding: 24px 5%;
}
.manufacturer-bar strong {
  display: block;
  font: 26px/1.3 Georgia;
  margin-bottom: 5px;
}
.manufacturer-bar span {
  font-size: 14px;
  color: #d4d9ce;
}
.manufacturer-bar .textlink {
  white-space: nowrap;
}
.hero-copy {
  padding-top: 48px;
  padding-bottom: 48px;
}
.main-nav {
  gap: 22px;
}
@media (max-width: 1000px) {
  .site-header {
    flex-wrap: wrap;
  }
  .main-nav {
    order: 3;
    width: 100%;
    justify-content: space-between;
  }
  .manufacturer-bar {
    align-items: start;
  }
}
@media (max-width: 600px) {
  .main-nav {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 12px 20px;
  }
  .manufacturer-bar {
    display: block;
  }
  .manufacturer-bar .textlink {
    display: inline-block;
    margin-top: 18px;
  }
  .manufacturer-bar span {
    font-size: 12px;
  }
  .hero h1 {
    font-size: 45px;
  }
}

/* Editorial typography and warm materials, with the manufacturing reel as the focus. */
.hero {
  grid-template-columns: 0.86fr 1.14fr;
  min-height: 540px;
  padding: 36px 5% 45px;
  gap: 5%;
  background: var(--paper);
  align-items: center;
}
.hero-copy {
  padding: 28px 0;
}
.hero h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(48px, 5.3vw, 84px);
  line-height: 1.07;
  letter-spacing: -2px;
  margin-bottom: 25px;
}
.hero h1 em {
  font-style: italic;
  font-weight: 400;
  color: var(--gold);
}
.hero-copy p:not(.eyebrow) {
  font-size: 18px;
  max-width: 420px;
  line-height: 1.65;
}
.hero .eyebrow {
  font-size: 11px;
  letter-spacing: 2px;
}
.reel-panel {
  min-width: 0;
}
.reel-heading {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 14px;
  font-size: 10px;
  letter-spacing: 1.3px;
  color: #62695e;
}
.reel-frame {
  position: relative;
  background: #151a15;
  aspect-ratio: 16/9;
  overflow: hidden;
  border-radius: 4px;
}
.reel-frame video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}
.reel-play {
  position: absolute;
  left: 22px;
  bottom: 48px;
  display: flex;
  gap: 14px;
  align-items: center;
  border: 1px solid #ffffff50;
  background: #202820e8;
  color: white;
  padding: 14px 18px;
  text-align: left;
  cursor: pointer;
  border-radius: 3px;
  font-size: 14px;
}
.reel-play[hidden] {
  display: none;
}
.play-symbol {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: white;
  color: #29372e;
  font-size: 13px;
}
.reel-play small {
  display: block;
  color: #c5cdbf;
  font-size: 11px;
  margin-top: 3px;
}
.reel-caption {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-top: 14px;
  font-size: 12px;
  color: #62695e;
}
.reel-caption span:last-child {
  font-size: 10px;
  letter-spacing: 1px;
  white-space: nowrap;
}
.manufacturer-bar {
  padding: 18px 5%;
  background: white;
  color: #29372e;
  border-bottom: 1px solid var(--line);
}
.manufacturer-bar strong {
  font:
    400 24px/1.35 Georgia,
    serif;
}
.manufacturer-bar span {
  color: #686e61;
  font-size: 12px;
}
.trust {
  padding-top: 18px;
  padding-bottom: 18px;
  background: white;
}
.trust span {
  font-size: 21px;
}
.trust p {
  font-size: 10px;
}
.section h2,
.cta h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: -1px;
}
.card :is(h2, h3) {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 26px;
  letter-spacing: -0.4px;
}
.button {
  border-radius: 3px;
}
.hero .actions {
  gap: 18px;
}
.hero .textlink {
  font-size: 13px;
}
.section {
  padding-top: 58px;
  padding-bottom: 58px;
}
#reel-error {
  font-size: 13px;
  padding-top: 12px;
}
#reel-error a {
  text-decoration: underline;
}
@media (min-width: 1500px) {
  .hero {
    min-height: 610px;
  }
}
@media (max-width: 1050px) {
  .hero {
    grid-template-columns: 1fr 1.15fr;
    gap: 4%;
  }
  .hero h1 {
    font-size: 58px;
    letter-spacing: -1.5px;
  }
  .reel-heading span:last-child {
    display: none;
  }
  .reel-caption span:last-child {
    display: none;
  }
  .reel-play {
    left: 12px;
    bottom: 42px;
    padding: 9px 12px;
  }
  .reel-play small {
    display: none;
  }
}
@media (max-width: 700px) {
  .hero {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 28px 6% 32px;
  }
  .hero-copy {
    padding: 0;
  }
  .hero h1 {
    font-size: 58px;
    letter-spacing: -1.5px;
  }
  .hero-copy p:not(.eyebrow) {
    font-size: 16px;
    margin-bottom: 22px;
  }
  .reel-heading {
    margin-top: 10px;
  }
  .reel-play {
    font-size: 12px;
  }
  .reel-caption {
    font-size: 11px;
  }
  .hero .eyebrow {
    margin-bottom: 16px;
  }
  .manufacturer-bar .textlink {
    margin-top: 10px;
  }
}

/* Finishing details shared by the homepage and interior pages. */
:root {
  --ink: #292922;
  --gold: #887346;
  --paper: #f8f6f0;
  --line: #e3ded2;
}
body {
  color: var(--ink);
}
.site-header {
  padding-top: 25px;
  padding-bottom: 25px;
}
.eyebrow {
  color: #806b3e;
}
.hero {
  padding-top: 54px;
  padding-bottom: 62px;
  min-height: 575px;
  gap: 6%;
}
.hero-copy p:not(.eyebrow) {
  color: #68685e;
  font-size: 17px;
}
.hero .eyebrow {
  letter-spacing: 2.5px;
  margin-bottom: 25px;
}
.hero .actions {
  margin-top: 32px;
}
.button {
  background: #71613f;
  border-color: #71613f;
  border-radius: 0;
  padding: 15px 24px;
}
.button:hover {
  background: #55492f;
  border-color: #55492f;
}
.reel-heading {
  color: #7a6946;
  letter-spacing: 1.5px;
  margin-bottom: 18px;
}
.reel-frame {
  border-radius: 0;
  box-shadow: 0 18px 42px #3d332019;
  outline: 1px solid #c5b998;
  outline-offset: 8px;
}
.reel-caption {
  margin-top: 24px;
  color: #716d60;
}
.reel-play {
  background: #292921ed;
  border-color: #b7a37488;
  border-radius: 0;
}
.play-symbol {
  background: #f4eedf;
  color: #78643b;
}
.manufacturer-bar {
  padding-top: 25px;
  padding-bottom: 25px;
}
.trust {
  padding-top: 22px;
  padding-bottom: 22px;
}
.trust span {
  color: #6a665a;
}
.card img {
  border-radius: 0;
}
.card :is(h2, h3) span {
  font: 20px Arial;
  color: #887346;
}
.assist {
  border-left: 2px solid #ad9867;
  background: #f8f6f0;
}
.dark {
  background: #32372f;
}
.dark .textlink {
  color: #f2e7cb;
}
.section-heading {
  margin-bottom: 38px;
}
.cta {
  padding: 75px 20px;
  background: #f7f4ed;
}
.cta h2 {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.page-head {
  background: #f8f6f0;
}
.page-head h1 {
  letter-spacing: -1.5px;
}
@media (max-width: 700px) {
  .hero {
    padding: 35px 6% 42px;
    gap: 32px;
    min-height: 0;
  }
  .hero .actions {
    margin-top: 24px;
  }
  .hero .eyebrow {
    margin-bottom: 20px;
  }
  .reel-frame {
    outline-offset: 5px;
  }
  .reel-heading {
    font-size: 11px;
  }
  .manufacturer-bar strong {
    font-size: 23px;
  }
  .card :is(h2, h3) {
    font-size: 23px;
  }
  .cta {
    padding: 52px 6%;
  }
}

/* Research-led composition: editorial work, clear product discovery, accessible depth. */
.homepage .hero {
  grid-template-columns: 1fr 1.12fr;
  background: #f6f3ec;
  padding: 65px 5% 68px;
  min-height: 590px;
  gap: 5%;
}
.homepage .hero h1 {
  font-size: clamp(43px, 4.5vw, 76px);
  letter-spacing: -2.3px;
  line-height: 1.12;
}
.homepage .hero h1 em {
  display: inline-block;
}
.homepage .hero .eyebrow {
  font-size: 12px;
  letter-spacing: 1.8px;
}
.homepage .hero-copy > p:not(.eyebrow) {
  max-width: 465px;
  font-size: 17px;
}
.homepage .reel-frame {
  outline: none;
  box-shadow: 0 20px 55px #28211725;
}
.homepage .reel-panel {
  border-top: 1px solid #b7a57b;
  padding-top: 16px;
}
.homepage .manufacturer-bar {
  border-top: 1px solid #e1dacb;
}
.homepage .trust {
  background: #fcfbf8;
}
.homepage .section {
  padding-top: 82px;
  padding-bottom: 82px;
}
.homepage h2 em {
  font-weight: 400;
  color: var(--gold);
}
.solution-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px 30px;
}
.solution-card {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  background: #f6f4ee;
  min-height: 310px;
}
.solution-image {
  position: relative;
  display: block;
  overflow: hidden;
}
.solution-image img {
  width: 100%;
  height: 100%;
  min-height: 310px;
  object-fit: cover;
  transition: transform 0.35s;
}
.solution-image:hover img {
  transform: scale(1.03);
}
.image-index {
  position: absolute;
  bottom: 14px;
  left: 14px;
  right: 14px;
  background: #fffffff0;
  color: #585344;
  font-size: 11px;
  letter-spacing: 1px;
  padding: 8px 10px;
}
.solution-copy {
  padding: 26px 24px;
}
.solution-copy h3 {
  font-size: 29px;
  margin: 0 0 13px;
}
.solution-copy h3 span {
  float: right;
  font: 20px Arial;
  color: var(--gold);
}
.solution-copy > p {
  font-size: 14px;
  color: #6c6c62;
}
.product-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 22px;
}
.product-links a {
  font-size: 13px;
  text-decoration: underline;
  text-decoration-color: #c9c0a9;
  text-underline-offset: 4px;
}
.product-links a:last-child {
  color: #78623a;
  margin-top: 6px;
}
.selected-work {
  background: #f7f5ef;
  max-width: none !important;
}
.selected-work .section-heading {
  align-items: center;
}
.selected-work .section-heading .textlink {
  display: inline-block;
  margin-top: 20px;
}
.editorial-grid {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 5%;
  align-items: start;
}
.editorial-project {
  display: block;
}
.editorial-project img {
  width: 100%;
  object-fit: cover;
  display: block;
}
.editorial-project.large img {
  height: 490px;
}
.editorial-project.small {
  padding-top: 90px;
}
.editorial-project.small img {
  height: 345px;
}
.editorial-project > div {
  padding: 22px 0;
  border-bottom: 1px solid #d4cbb7;
}
.editorial-project span {
  font-size: 11px;
  letter-spacing: 1.6px;
  color: #776747;
}
.editorial-project h3 {
  font-size: 29px;
  margin: 10px 0 0;
}
.editorial-project b {
  float: right;
  font: 22px Arial;
  color: #887346;
}
.craft-note {
  display: grid;
  grid-template-columns: 1fr 1.6fr auto;
  align-items: center;
  gap: 25px;
  padding-top: 45px;
}
.craft-note p {
  margin: 0;
}
.craft-note > p:nth-child(2) {
  font: 26px/1.4 Georgia;
  color: #625e50;
}
.homepage .dark .section {
  max-width: none;
  gap: 8%;
}
.homepage .dark h2 {
  color: #f8f6ed;
}
.homepage .dark {
  background: #282f29;
}
.directory-grid {
  border-top: 1px solid #c9b98e;
}
.directory-grid details {
  border-bottom: 1px solid #dcd6c7;
}
.directory-grid summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 24px 0;
  font: 30px Georgia;
}
.directory-count {
  font: 12px Arial;
  color: #736f63;
  display: flex;
  gap: 35px;
  align-items: center;
}
.directory-count b {
  font: 26px Georgia;
  font-weight: 400;
  color: #887346;
}
.directory-grid details[open] .directory-count b {
  transform: rotate(45deg);
}
.directory-body {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 35px;
  padding: 5px 0 30px;
}
.directory-body > div {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  align-content: start;
}
.directory-body .eyebrow {
  width: 100%;
  margin-bottom: 8px;
}
.directory-body a {
  font-size: 14px;
  text-decoration: underline;
  text-decoration-color: #d3c7ae;
  text-underline-offset: 4px;
}
.buying-guide {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 10%;
  border-top: 1px solid var(--line);
}
.buying-guide > div > p:not(.eyebrow) {
  color: #6b6a60;
}
.buying-guide .faq details:first-child {
  border-top: 1px solid var(--line);
}
.buying-guide .faq summary {
  padding-right: 20px;
}
.buying-guide .faq p a {
  border-bottom: 1px solid var(--gold);
}
.homepage .cta {
  background: #ece7da;
  padding-top: 75px;
  padding-bottom: 75px;
}
.homepage .cta h2 {
  font-size: clamp(36px, 3.5vw, 54px);
  max-width: 820px;
}
@media (max-width: 1100px) {
  .solution-card {
    grid-template-columns: 1fr;
  }
  .solution-image img {
    height: 300px;
    min-height: 0;
  }
  .solution-copy {
    padding: 24px;
  }
  .editorial-project.large img {
    height: 380px;
  }
  .editorial-project.small img {
    height: 280px;
  }
  .homepage .hero h1 {
    font-size: 50px;
  }
}
@media (max-width: 700px) {
  .homepage .hero {
    grid-template-columns: 1fr;
    padding: 38px 6% 42px;
    min-height: 0;
    gap: 25px;
  }
  .homepage .hero h1 {
    font-size: 47px;
    letter-spacing: -1.8px;
  }
  .homepage .section {
    padding: 48px 6%;
  }
  .solution-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .solution-card {
    grid-template-columns: 1fr 1fr;
  }
  .solution-image img {
    min-height: 285px;
    height: 100%;
  }
  .solution-copy {
    padding: 21px 16px;
  }
  .solution-copy h3 {
    font-size: 25px;
  }
  .product-links a {
    font-size: 13px;
  }
  .editorial-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .editorial-project.small {
    padding-top: 0;
  }
  .editorial-project.large img,
  .editorial-project.small img {
    height: 310px;
  }
  .editorial-project h3 {
    font-size: 25px;
  }
  .craft-note {
    grid-template-columns: 1fr;
    gap: 16px;
    padding-top: 30px;
  }
  .craft-note .textlink {
    justify-self: start;
  }
  .directory-body {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .directory-grid summary {
    font-size: 25px;
  }
  .directory-count {
    font-size: 11px;
    gap: 12px;
  }
  .buying-guide {
    grid-template-columns: 1fr;
    gap: 35px;
  }
  .homepage .cta {
    padding: 50px 6%;
  }
  .homepage .hero-copy > p:not(.eyebrow) {
    font-size: 16px;
  }
}
@media (max-width: 390px) {
  .solution-card {
    grid-template-columns: 1fr;
  }
  .solution-image img {
    height: 250px;
    min-height: 0;
  }
  .homepage .hero h1 {
    font-size: 41px;
  }
}
/* Keep featured projects aligned with identical image proportions. */
.editorial-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
  align-items: start;
}
.editorial-project.small {
  padding-top: 0;
}
.editorial-project.large img,
.editorial-project.small img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  object-fit: cover;
  object-position: center;
}
.editorial-project > div {
  min-height: 120px;
}
@media (max-width: 700px) {
  .editorial-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .editorial-project.large img,
  .editorial-project.small img {
    height: auto;
    aspect-ratio: 4/3;
  }
  .editorial-project > div {
    min-height: 0;
  }
}

.production-proof {
  min-width: 0;
}
.production-proof video {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: contain;
  background: #111;
}
.production-proof p {
  font-size: 11px;
  letter-spacing: 0.12em;
  line-height: 1.6;
}
.dark .steps {
  grid-column: 1/-1;
}

/* Shared alignment across portfolio and case-study sections. */
.homepage .section-heading {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
  align-items: start;
}
.homepage .section-heading > div:last-child {
  max-width: 100%;
}
.editorial-project h3 {
  display: flex;
  justify-content: space-between;
  gap: 15px;
}
.editorial-project b {
  float: none;
  flex-shrink: 0;
}
.case-section {
  border-top: 1px solid var(--line);
}
.case-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
}
.case-card {
  display: flex;
  flex-direction: column;
  border-bottom: 1px solid var(--line);
}
.case-card img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}
.case-card > div {
  padding: 26px 0;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.case-card :is(h2, h3) {
  margin: 0 0 16px;
  font-size: 30px;
}
.case-card .eyebrow {
  margin-bottom: 14px;
}
.case-card .textlink {
  align-self: start;
  margin-top: auto;
}
.case-card p:not(.eyebrow) {
  max-width: 520px;
  color: #68685e;
}
.case-kicker {
  margin-top: 32px;
}
.case-hero {
  width: 100%;
  max-height: 650px;
  object-fit: cover;
  margin-bottom: 32px;
}
.case-story {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 36px;
  margin: 35px 0;
}
.case-story span {
  font-size: 11px;
  letter-spacing: 1.4px;
  color: var(--gold);
}
.case-story h2 {
  font-size: 30px;
  margin-top: 18px;
}
.case-story p {
  color: #68685e;
}
.dark .section {
  row-gap: 40px;
}
@media (max-width: 700px) {
  .homepage .section-heading,
  .case-grid,
  .case-story {
    grid-template-columns: 1fr;
  }
  .case-card :is(h2, h3) {
    font-size: 27px;
  }
  .case-story {
    gap: 24px;
  }
  .main-nav {
    gap: 15px;
  }
}

.cta > p:not(.eyebrow) {
  max-width: 780px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.75;
}
.project-fit-note {
  padding: 16px 20px;
  background: #ece7da;
  border-left: 2px solid #887346;
  font-size: 15px;
  line-height: 1.6;
}

/* Original homepage depth stays available without crowding the first screen. */
.home-depth > div > h2 {
  max-width: 850px;
  margin-bottom: 36px;
}
.home-original-module {
  border-top: 1px solid #d4cbb9;
  padding: 0;
}
.home-original-module > summary {
  cursor: pointer;
  padding: 24px 0;
  font:
    26px/1.3 Georgia,
    serif;
  list-style-position: inside;
}
.home-original-module > summary:focus-visible {
  outline: 2px solid #887346;
  outline-offset: 4px;
}
.original-module-body {
  padding: 12px 0 38px;
  max-width: 900px;
  line-height: 1.8;
}
.original-module-body h2 {
  font-size: 32px;
  margin: 20px 0;
}
.original-module-body h3 {
  font-size: 25px;
  margin: 16px 0;
}
.original-module-body img {
  display: block;
  max-width: min(100%, 540px);
  height: auto;
  max-height: 440px;
  object-fit: contain;
  margin: 24px 0;
}
.original-module-body a {
  color: inherit;
  text-underline-offset: 4px;
}
.original-brand-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
}
.original-brand-grid img {
  width: 100%;
  height: 76px;
  object-fit: contain;
  margin: 0;
  background: white;
}
.original-product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}
.original-product-grid img {
  max-height: 120px;
  width: 100%;
  object-fit: contain;
}
.original-product-grid h2 {
  font-size: 22px;
}
@media (max-width: 700px) {
  .home-original-module > summary {
    font-size: 23px;
  }
  .original-brand-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .original-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Visible keyboard focus without changing the resting design. */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid #75613d;
  outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* Keep scrolled page content from showing through navigation. */
.site-header {
  background: #fff;
}

/* Preview status link must remain distinguishable without color alone. */

.result-count {
  font-size: 14px;
  color: #50554c;
  margin: 0 0 20px;
}

/* ===== from content.css ===== */
.content-page {
  background: #f8f6f0;
}
.content-head {
  max-width: 1240px;
  margin: auto;
  padding: 65px 5% 48px;
  border-bottom: 1px solid #ded7c7;
}
.content-head h1 {
  font:
    clamp(40px, 5vw, 70px) / 1.08 Georgia,
    serif;
  letter-spacing: -1.8px;
  max-width: 1000px;
  margin: 22px 0;
}
.content-head em {
  color: #887346;
  font-weight: 400;
}
.crumbs {
  font-size: 13px;
  color: #706d61;
  margin-bottom: 35px;
}
.crumbs a {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.muted {
  font-size: 13px;
  color: #706d61;
}
.reading-layout {
  max-width: 1240px;
  margin: auto;
  padding: 50px 5% 75px;
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 60px;
}
.contents {
  align-self: start;
  position: sticky;
  top: 140px;
}
.contents a:not(.button) {
  display: block;
  font-size: 13px;
  padding: 10px 0;
  border-bottom: 1px solid #ded7c7;
  line-height: 1.45;
}
.contents .button {
  margin-top: 24px;
  font-size: 13px;
  padding: 12px;
}
.reading-body {
  min-width: 0;
  font-size: 17px;
  line-height: 1.85;
}
.reading-body :is(h1, h2) {
  font-size: 34px;
  margin: 40px 0 20px;
  scroll-margin-top: 150px;
}
.reading-body h3 {
  font-size: 27px;
  scroll-margin-top: 150px;
}
.reading-body p {
  margin: 0 0 24px;
}
.reading-body a {
  text-decoration: underline;
  text-decoration-color: #b8a779;
  text-underline-offset: 4px;
}
.reading-body img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 28px auto;
}
.reading-body figure {
  margin: 0;
}
.reading-body ul,
.reading-body ol {
  padding-left: 24px;
}
.reading-body .product-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin: 32px 0;
}
.reading-body .product-item img {
  aspect-ratio: 4/3;
  object-fit: cover;
  width: 100%;
  margin: 0;
}
.reading-body .product-item h2 {
  font-size: 24px;
  margin: 16px 0 24px;
}
.reading-body .product-item a {
  text-decoration: none;
}
.reading-body .content-section:first-child p:first-child {
  font-size: 19px;
}
.pilot-cta {
  padding: 60px 6%;
  text-align: center;
  background: #ece7da;
}
.pilot-cta h2 {
  margin: 12px 0 28px;
}
.pilot-cta .muted {
  margin-top: 20px;
}
.journal-grid {
  max-width: 1240px;
  margin: auto;
  padding: 40px 5% 70px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}
.journal-card {
  padding: 30px;
  background: #fff;
  border: 1px solid #e1dacb;
  display: flex;
  flex-direction: column;
}
.journal-card h2 {
  font-size: 29px;
}
.journal-card p {
  font-size: 15px;
  color: #68685e;
}
.journal-card span {
  font-size: 13px;
  margin-top: auto;
  color: #887346;
}
.content-page .site-footer {
  gap: 30px;
}
.content-page .skip:focus {
  z-index: 100;
}
@media (max-width: 900px) {
  .reading-layout {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .contents {
    position: static;
  }
  .contents a:not(.button) {
    display: inline-block;
    margin-right: 16px;
  }
  .contents .button {
    display: none;
  }
  .content-head {
    padding-top: 40px;
  }
  .content-page .site-header {
    flex-wrap: wrap;
  }
  .content-page .main-nav {
    flex-wrap: wrap;
    gap: 16px;
  }
  .reading-body :is(h1, h2) {
    font-size: 29px;
  }
}
@media (max-width: 600px) {
  .journal-grid {
    grid-template-columns: 1fr;
  }
  .reading-body .product-grid {
    grid-template-columns: 1fr;
  }
  .content-page .site-header .logo {
    font-size: 34px;
  }
  .content-page .site-header > .button {
    font-size: 12px;
    padding: 10px;
  }
  .reading-body {
    font-size: 16px;
  }
  .content-head h1 {
    letter-spacing: -1px;
  }
  .journal-card {
    padding: 24px;
  }
}

.approved-service-image {
  display: block;
  max-width: 100%;
  width: 500px;
  height: 330px;
  object-fit: contain;
  margin-top: 30px;
}

.archive-navigation {
  max-width: 1240px;
  margin: 24px auto 0;
  padding: 0 5%;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
.archive-navigation a {
  text-decoration: underline;
  text-underline-offset: 5px;
}
.reading-body > ol > li {
  padding-bottom: 35px;
  margin-bottom: 35px;
  border-bottom: 1px solid #ded7c7;
}

/* Journal: consistent photography, quieter navigation and comfortable reading. */
.journal-index .content-head {
  padding-top: 80px;
  padding-bottom: 56px;
}
.journal-index .content-head h1 {
  max-width: 900px;
}
.journal-index .content-head > p:not(.eyebrow) {
  max-width: 650px;
  font-size: 18px;
  line-height: 1.7;
}
.journal-index .content-head > .muted {
  font-size: 14px;
}
.journal-index .journal-grid {
  gap: 50px 34px;
  padding-top: 48px;
}
.journal-index .journal-card {
  padding: 0;
  border: 0;
  background: transparent;
  overflow: hidden;
}
.journal-card-image {
  aspect-ratio: 4/3;
  background: #ede9df;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.journal-card-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.journal-card-type {
  font:
    42px/1.3 Georgia,
    serif;
  color: #887346;
  text-align: center;
}
.journal-card-copy {
  padding: 25px 0 28px;
  border-bottom: 1px solid #d4cbb9;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.journal-card-copy .eyebrow {
  font-size: 12px;
  letter-spacing: 1.6px;
  margin: 0 0 15px;
  color: #766746;
}
.journal-card-copy h2 {
  font:
    32px/1.22 Georgia,
    serif;
  margin: 0 0 16px;
  letter-spacing: -0.5px;
}
.journal-card-copy > p:not(.eyebrow) {
  font-size: 16px;
  line-height: 1.7;
  margin: 0 0 24px;
}
.journal-card-copy span {
  font-size: 15px;
  padding-top: 10px;
}
.journal-card:focus-visible {
  outline: 2px solid #887346;
  outline-offset: 7px;
}
.journal-card:hover h2 {
  color: #887346;
}
.journal-article .content-head {
  max-width: 1160px;
  padding-top: 64px;
}
.journal-article .content-head h1 {
  font-size: clamp(36px, 4.8vw, 62px);
  line-height: 1.13;
  max-width: 970px;
}
.journal-article .reading-layout {
  max-width: 1160px;
  grid-template-columns: 210px minmax(0, 700px);
  gap: 50px;
}
.journal-article .reading-body {
  font-size: 18px;
  line-height: 1.85;
}
.journal-article .reading-body :is(h1, h2) {
  font:
    34px/1.25 Georgia,
    serif;
  margin: 48px 0 22px;
}
.journal-article .reading-body h3 {
  font:
    27px/1.3 Georgia,
    serif;
}
.journal-article .reading-body img {
  margin: 36px auto;
  max-height: 620px;
  object-fit: contain;
}
.journal-article .reading-body blockquote {
  margin: 32px 0;
  padding: 12px 24px;
  border-left: 2px solid #887346;
  font:
    25px/1.5 Georgia,
    serif;
}
.journal-article .contents a:not(.button) {
  font-size: 14px;
  line-height: 1.5;
}
.journal-archive .reading-layout {
  grid-template-columns: 1fr;
  max-width: 1080px;
}
.journal-archive .contents {
  position: static;
  border-bottom: 1px solid #ded7c7;
  padding-bottom: 24px;
}
.journal-archive .contents a:not(.button) {
  display: inline-block;
  margin-right: 20px;
}
.journal-archive .contents .button {
  display: none;
}
.archive-story {
  padding: 32px 0;
  border-bottom: 1px solid #ded7c7;
  display: flow-root;
}
.archive-story img {
  width: 260px;
  height: 195px;
  object-fit: contain;
  float: left;
  margin: 0 30px 20px 0;
}
.archive-story :is(h1, h2) {
  margin-top: 0;
}
.archive-navigation {
  font-size: 14px;
  line-height: 1.6;
  padding-top: 8px;
  padding-bottom: 8px;
}
@media (max-width: 900px) {
  .journal-article .reading-layout {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .journal-article .contents {
    position: static;
  }
  .journal-article .content-head {
    padding-top: 40px;
  }
}
@media (max-width: 600px) {
  .journal-index .content-head {
    padding-top: 40px;
  }
  .journal-card-copy h2 {
    font-size: 27px;
  }
  .journal-index .journal-grid {
    gap: 32px;
  }
  .journal-article .reading-body {
    font-size: 17px;
  }
  .journal-article .reading-body :is(h1, h2) {
    font-size: 29px;
  }
  .archive-story img {
    float: none;
    width: 100%;
    height: auto;
    max-height: 300px;
    margin: 0 0 22px;
  }
  .journal-card-copy {
    padding-top: 20px;
  }
}

/* Reference library: original definitions, quiet navigation, consistent cards. */
.resource-index .reading-layout {
  display: block;
  max-width: 1240px;
}
.resource-index .contents {
  display: none;
}
.resource-index .reading-body {
  max-width: none;
}
.resource-index .reading-body ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 2rem;
}
.resource-index .reading-body li {
  margin: 0;
  display: flex;
  border-bottom: 1px solid #cfc7b7;
}
.resource-index .reading-body li a {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 1.4rem 0;
  min-height: 96px;
  font-family: Georgia, serif;
  font-size: 1.45rem;
  line-height: 1.3;
  text-decoration: none;
  color: #282a22;
}
.resource-index .reading-body li a:hover,
.resource-index .reading-body li a:focus-visible {
  color: #75643d;
  text-decoration: underline;
  text-underline-offset: 5px;
}
.resource-article .reading-body {
  font-size: 1.15rem;
  line-height: 1.85;
  max-width: 760px;
}
.resource-article .reading-body p:first-child {
  margin-top: 0;
}
.resource-article .content-head h1,
.resource-index .content-head h1 {
  max-width: 1000px;
}
@media (max-width: 900px) {
  .resource-index .reading-body ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .resource-index .reading-body ul {
    grid-template-columns: 1fr;
  }
  .resource-index .reading-body li a {
    min-height: 76px;
    font-size: 1.3rem;
  }
}

.preserved-embed {
  display: block;
  border: 0;
  width: 100%;
  margin: 2rem 0;
  background: #eeeae1;
}

/* Preserve original journal excerpts and archives in aligned editorial cards. */
.blog-home .reading-layout {
  display: block;
  max-width: 1240px;
}
.blog-home .reading-body {
  max-width: none;
}
.blog-home .contents {
  display: none;
}
.blog-stories {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 44px 32px;
}
.blog-home .archive-story {
  padding: 0 0 26px;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.blog-home .archive-story figure {
  margin: 0 0 24px;
  aspect-ratio: 4/3;
  background: #ede9df;
}
.blog-home .archive-story figure a {
  display: block;
  width: 100%;
  height: 100%;
}
.blog-home .archive-story img {
  float: none;
  display: block;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
  margin: 0;
}
.blog-home .archive-story :is(h2, h3) {
  font:
    clamp(25px, 2.5vw, 34px) / 1.25 Georgia,
    serif;
  margin: 0 0 16px;
}
.blog-home .archive-story :is(h2, h3) a {
  text-decoration: none;
}
.blog-home .archive-story time,
.blog-home .archive-story time + a {
  font-size: 14px;
  color: #6c685c;
}
.blog-home .archive-story p {
  font-size: 16px;
  line-height: 1.75;
}
.blog-pagination,
.blog-resources {
  grid-column: 1/-1;
}
.blog-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  padding: 20px 0;
  border-block: 1px solid #d4cbb9;
}
.blog-resources {
  padding: 12px 0 32px;
  columns: 3;
  column-gap: 36px;
}
.blog-resources :is(h2, h4) {
  font:
    24px/1.3 Georgia,
    serif;
  margin-top: 20px;
  break-after: avoid;
}
.blog-resources ul {
  padding-left: 20px;
  break-inside: avoid;
  font-size: 15px;
}
.style-directory {
  max-width: 1160px;
  margin: 0 auto 80px;
  padding: 0 5vw;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.style-directory a {
  padding: 32px 0;
  border-bottom: 1px solid #cfc7b7;
  font:
    30px/1.2 Georgia,
    serif;
}
@media (max-width: 700px) {
  .blog-stories,
  .style-directory {
    grid-template-columns: 1fr;
  }
  .blog-resources {
    columns: 1;
  }
}

.style-hub .reading-layout {
  display: none;
}
.blog-home .archive-navigation {
  max-width: 1240px;
  margin: 0 auto 48px;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}

.blog-home .archive-story figure a {
  display: flex;
  align-items: center;
  justify-content: center;
}
.blog-home .archive-story figure {
  overflow: hidden;
}

/* Compact product navigation shared by preserved content pages. */
.content-head .crumbs {
  display: block;
  font-size: 13px;
  line-height: 2;
  color: #706d61;
  margin: 0 0 35px;
}
@media (max-width: 900px) {
  .content-page .site-header > .main-nav {
    display: flex;
    order: 3;
    width: 100%;
  }
}

/* Product specifications remain readable in narrow content columns. */
.reading-body table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  margin: 32px 0;
  font-size: 15px;
  line-height: 1.6;
}
.reading-body th,
.reading-body td {
  padding: 16px 18px;
  border-bottom: 1px solid #ded7c7;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}
.reading-body th {
  width: 32%;
  font-weight: 600;
  color: #514932;
  background: #eee9dd;
}
.reading-body td {
  background: #fcfaf6;
}
.reading-body .preserved-embed {
  display: block;
  max-width: 100%;
  border: 0;
}
@media (max-width: 600px) {
  .reading-body table {
    font-size: 14px;
  }
  .reading-body th,
  .reading-body td {
    padding: 12px 10px;
  }
  .reading-body th {
    width: 35%;
  }
}

.reading-layout:not(:has(.contents)) {
  grid-template-columns: minmax(0, 1fr);
  max-width: 940px;
}
.reading-body .restored-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  text-decoration: none;
  border: 1px solid #b8a779;
  border-radius: 50%;
  color: #66562f;
}
.restored-icon-link::before {
  content: "\2192";
  font-size: 24px;
  line-height: 1;
}

/* Leave breathing room below the wrapped sticky navigation on small screens. */
@media (max-width: 900px) {
  .reading-body :is(h1, h2),
  .reading-body h3 {
    scroll-margin-top: 190px;
  }
}
@media (max-width: 600px) {
  .reading-body :is(h1, h2),
  .reading-body h3 {
    scroll-margin-top: 220px;
  }
}
@media (max-width: 360px) {
  .reading-body :is(h1, h2),
  .reading-body h3 {
    scroll-margin-top: 220px;
  }
}

/* Maintain readable secondary text on the ivory quote invitation. */
.pilot-cta .eyebrow {
  color: #66562f;
}
.pilot-cta .muted {
  color: #5e5848;
}

.reading-body .career-introduction {
  font-size: 27px;
  line-height: 1.5;
}
.reading-body .news-story-heading {
  font-size: 27px;
}
.reading-body .news-resource-heading {
  font:
    24px/1.3 Georgia,
    serif;
}

.priority-intro {
  max-width: 620px;
  font-size: 19px;
  line-height: 1.6;
  color: #56594f;
}
.priority-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 24px;
  margin: 26px 0;
}
.priority-actions > a:not(.button) {
  text-decoration: underline;
  text-underline-offset: 4px;
  font-size: 15px;
}
.priority-service .content-head:has(.approved-service-image) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 50px;
  align-items: start;
}
.priority-service
  .content-head:has(.approved-service-image)
  > :not(.approved-service-image) {
  grid-column: 1;
}
.priority-service .content-head .approved-service-image {
  grid-column: 2;
  grid-row: 2/6;
  width: 100%;
  max-height: 400px;
  object-fit: contain;
  align-self: center;
  margin: 0;
}
.priority-service .content-head h1 {
  font-size: clamp(36px, 4vw, 58px);
}
.priority-service .pilot-cta h2 {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
.priority-quote-copy {
  max-width: 650px;
  margin: 0 auto 28px;
}
.priority-service .contents a:not(.button) {
  font-size: 14px;
}
@media (max-width: 760px) {
  .priority-service .content-head:has(.approved-service-image) {
    display: block;
  }
  .priority-service .content-head .approved-service-image {
    height: auto;
    max-height: 320px;
    margin-top: 30px;
  }
  .priority-intro {
    font-size: 17px;
  }
}

.reading-body .gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  margin: 30px 0;
}
.gallery-item[hidden],
.gallery-more[hidden] {
  display: none !important;
}
.reading-body .gallery-item img {
  width: 100%;
  height: 100%;
  aspect-ratio: 4/3;
  object-fit: contain;
  margin: 0;
  background: #f1eee7;
}
.gallery-item a {
  display: block;
}
.gallery-count {
  display: block;
  margin-top: 14px;
  font-size: 14px;
  color: #575b51;
}
.project-gallery > div > p {
  text-align: center;
}
@media (max-width: 600px) {
  .reading-body .gallery-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

.section-navigation > summary {
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.08em;
  padding: 12px 0;
  text-transform: uppercase;
  color: #66562f;
}
.section-navigation > summary:focus-visible {
  outline: 2px solid #66562f;
  outline-offset: 4px;
}
@media (max-width: 900px) {
  .section-navigation {
    border-top: 1px solid #ded7c7;
    border-bottom: 1px solid #ded7c7;
    padding: 6px 0;
  }
  .section-navigation[open] {
    padding-bottom: 18px;
  }
}
.section-navigation > summary::after {
  content: "+";
  float: right;
  font-size: 18px;
  line-height: 1;
}
.section-navigation[open] > summary::after {
  content: "−";
}

@media (min-width: 901px) {
  .contents {
    max-height: calc(100vh - 164px);
    max-height: calc(100dvh - 164px);
    overflow-y: auto;
    scrollbar-width: thin;
    padding-right: 10px;
    scroll-padding-block: 12px;
  }
}

/* Keep approved opening images proportional on small screens. */
@media (max-width: 760px) {
  .content-page .approved-service-image {
    height: auto;
    max-height: 320px;
  }
}

/* Keep consent controls compact; preserve the existing form fields and wording. */

/* Keep the logo and quote action together on the narrowest phones. */
@media (max-width: 360px) {
  .content-page .site-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px 12px;
    padding: 16px 5%;
  }
  .content-page .site-header .logo small {
    white-space: normal;
    line-height: 1.6;
    max-width: 140px;
  }
  .content-page .site-header > .main-nav {
    grid-column: 1/-1;
    gap: 12px;
  }
}

/* =========================================================================
 * WordPress integration layer
 * Everything below adapts the approved design to WordPress output: menus,
 * core blocks, patterns, Gravity Forms, comments, pagination and widgets.
 * ====================================================================== */

[hidden] {
  display: none !important;
}
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.site-main:focus {
  outline: none;
}
img {
  max-width: 100%;
  height: auto;
}

/* ---------- Header ---------------------------------------------------- */
.admin-bar .site-header {
  top: 32px;
}
@media (max-width: 782px) {
  .admin-bar .site-header {
    top: 46px;
  }
}
@media (max-width: 600px) {
  .admin-bar .site-header {
    top: 0;
  }
}
.logo-image {
  line-height: 0;
}
.logo-image img {
  max-height: 64px;
  width: auto;
}
.main-nav > a,
.main-nav summary {
  padding: 8px 0;
}
.main-nav > a[aria-current],
.main-nav .nav-dropdown.is-current > summary {
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-underline-offset: 6px;
}
.main-nav .mega a[aria-current] {
  color: var(--gold);
}
.mega {
  z-index: 20;
}
.mega > div > a {
  line-height: 1.25;
}
.mega aside .textlink {
  display: inline-block;
}
@media (max-width: 900px) {
  .mega {
    max-height: 70vh;
    overflow-y: auto;
  }
}

/* ---------- Footer ---------------------------------------------------- */
.site-footer .logo {
  align-self: start;
}
.site-footer .footer-links a:hover,
.site-footer small a {
  text-decoration: underline;
  text-underline-offset: 4px;
}
/* Discreet link in the footer small print: looks like the surrounding text. */
.site-footer small a.quiet-link,
.site-footer .footer-links a.quiet-link {
  color: inherit;
  text-decoration: none;
}
.content-page .site-footer {
  background: #fff;
}

/* ---------- Page header ----------------------------------------------- */
.content-head.has-head-image {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 50px;
  align-items: start;
}
.content-head.has-head-image > :not(.approved-service-image) {
  grid-column: 1;
}
.content-head.has-head-image .approved-service-image {
  grid-column: 2;
  grid-row: 1 / span 6;
  width: 100%;
  height: auto;
  max-height: 400px;
  object-fit: contain;
  align-self: center;
  margin: 0;
}
@media (max-width: 760px) {
  .content-head.has-head-image {
    display: block;
  }
  .content-head.has-head-image .approved-service-image {
    max-height: 320px;
    margin-top: 30px;
  }
}

/* ---------- Reading layout -------------------------------------------- */
.reading-layout.no-toc {
  grid-template-columns: minmax(0, 1fr);
  max-width: 940px;
}
.blog-home .reading-layout.no-toc {
  max-width: 1240px;
}
.journal-archive:not(.blog-home) .reading-layout.no-toc {
  max-width: 1080px;
}
.contents .toc-level-3 {
  padding-left: 14px;
  font-size: 12.5px;
}
.reading-body > :first-child,
.reading-body .content-section:first-child > :first-child {
  margin-top: 0;
}
.reading-body .child-page-list {
  margin-top: 30px;
}
.comments-wrap {
  max-width: 940px;
  margin: 0 auto;
  padding: 0 5% 60px;
}
.content-page .section {
  max-width: 1240px;
  padding: 50px 5%;
}
.full-width-body {
  max-width: 1240px;
  margin: 0 auto;
  padding: 50px 5% 75px;
  font-size: 17px;
  line-height: 1.75;
}
.canvas-body > .wp-block-group:not(.ppdg-page-head):not(.ppdg-dark):not(.ppdg-cta):not(.ppdg-section) {
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 5%;
  padding-right: 5%;
}

/* Resource index: lists become a link grid. */
.resource-index .reading-layout {
  max-width: 1240px;
}
.resource-index .reading-body ul ul {
  display: block;
  grid-template-columns: none;
}

/* ---------- Blog & archives ------------------------------------------- */
.archive-story .story-title a {
  text-decoration: none;
}
.archive-story time {
  font-size: 14px;
  color: #6c685c;
  margin-right: 10px;
}
.archive-list .archive-story p {
  margin: 12px 0 0;
}
.blog-home .blog-stories .archive-story p {
  margin-top: 12px;
}
.blog-pagination {
  align-items: center;
  margin-top: 30px;
  font-size: 15px;
}
.blog-pagination a {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.blog-pagination .current {
  font-weight: 700;
}
.blog-pagination .page-count {
  color: #6c685c;
  margin-right: 10px;
}
.blog-resources {
  margin-top: 30px;
}
.blog-resources .widget-title {
  font: 24px/1.3 Georgia, serif;
  margin-top: 20px;
}
.blog-resources .widget {
  break-inside: avoid;
  margin-bottom: 20px;
}
.blog-resources ul {
  list-style: disc;
}

/* Search form */
.search-form {
  display: flex;
  gap: 10px;
  margin: 0 0 30px;
  border: 0;
  padding: 0;
}
.search-form label {
  flex: 1;
  margin: 0;
}
.search-form .search-field {
  width: 100%;
  padding: 13px 14px;
  border: 1px solid #b5b8ad;
  background: #fff;
  border-radius: 0;
  font: inherit;
}
.search-form .search-submit {
  background: #71613f;
  color: #fff;
  border: 1px solid #71613f;
  padding: 12px 22px;
  cursor: pointer;
}

/* Comments */
.comments-area {
  border-top: 1px solid #ded7c7;
  padding-top: 40px;
}
.comment-list {
  list-style: none;
  padding: 0;
}
.comment-list .comment {
  border-bottom: 1px solid #ded7c7;
  padding: 18px 0;
}
.comment-list .children {
  list-style: none;
  padding-left: 30px;
}
.comment-meta {
  font-size: 13px;
  color: #6c685c;
}
.comment-author .avatar {
  border-radius: 50%;
  vertical-align: middle;
  margin-right: 8px;
}
.comment-form label {
  display: block;
  font-size: 14px;
  margin-bottom: 6px;
}
.comment-form input:not([type="submit"]):not([type="checkbox"]),
.comment-form textarea {
  width: 100%;
  border: 1px solid #b5b8ad;
  padding: 12px;
  background: #fff;
  border-radius: 0;
}
.comment-form-cookies-consent label {
  display: inline;
}

/* ---------- Case studies ---------------------------------------------- */
.case-card-placeholder {
  display: block;
  aspect-ratio: 4 / 3;
  background: #ede9df;
}
.case-card:hover :is(h2, h3) {
  color: var(--gold);
}
.case-detail {
  padding-top: 40px;
}
.case-detail .case-hero {
  height: auto;
}
.case-story p:last-child {
  margin-bottom: 0;
}
.case-index .case-grid {
  margin-bottom: 20px;
}

/* ---------- Hub & Capability Finder ----------------------------------- */
.hub-options .options {
  margin-top: 10px;
}
.option {
  position: relative;
}
.option p.eyebrow {
  margin-bottom: 10px;
  font-size: 11px;
}
.capability-finder .finder-label {
  display: block;
  font-size: 14px;
  margin-bottom: 8px;
}
.capability-finder .search {
  font: inherit;
  border-radius: 0;
}
.capability-finder .option h2 {
  font-size: 23px;
  margin: 0 0 8px;
}

/* ---------- Form template & Gravity Forms ----------------------------- */
.form-section {
  padding-top: 40px;
}
.quote-intro {
  font-size: 19px;
  line-height: 1.6;
  color: #56594f;
}
.quote-note h3 {
  margin-top: 0;
}
.quote-form-card {
  background: #fff;
  border: 1px solid #ded7c7;
  padding: 32px;
  min-width: 0;
}
@media (max-width: 600px) {
  .quote-form-card {
    padding: 20px;
  }
}

.gform_wrapper {
  --gf-color-primary: #71613f;
  --gf-color-primary-rgb: 113, 97, 63;
  --gf-color-primary-darker: #55492f;
  --gf-color-in-ctrl-primary: #71613f;
  --gf-ctrl-border-color: #ccc6b8;
  --gf-ctrl-bg-color: #f8f6f0;
  --gf-radius: 0;
  --gf-ctrl-btn-radius: 0;
  --gf-ctrl-label-color-primary: #292922;
  --gf-font-family-base: Arial, Helvetica, sans-serif;
}
.gform_wrapper .gform_required_legend {
  font-size: 13px;
  color: #706d61;
}
.gform_wrapper .gfield_label,
.gform_wrapper legend.gfield_label {
  font-size: 15px !important;
  font-weight: 400 !important;
  color: var(--ink);
}
.gform_wrapper .gfield_required {
  color: #887346 !important;
}
.gform_wrapper
  input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]),
.gform_wrapper select,
.gform_wrapper textarea {
  width: 100%;
  padding: 12px !important;
  border: 1px solid #ccc6b8 !important;
  background: #f8f6f0 !important;
  color: var(--ink);
  border-radius: 0 !important;
  font: inherit !important;
  box-shadow: none !important;
  min-height: 48px;
}
.gform_wrapper input:focus-visible,
.gform_wrapper select:focus-visible,
.gform_wrapper textarea:focus-visible {
  outline: 3px solid #75613d;
  outline-offset: 2px;
}
.gform_wrapper input[type="checkbox"],
.gform_wrapper input[type="radio"] {
  accent-color: #75613d;
  width: 20px;
  height: 20px;
}
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_footer button,
.gform_wrapper .gform_page_footer input[type="button"],
.gform_wrapper .gform_page_footer input[type="submit"],
.gform_wrapper .gform_button {
  background: #71613f !important;
  border: 1px solid #71613f !important;
  color: #fff !important;
  border-radius: 0 !important;
  padding: 15px 24px !important;
  min-height: 48px;
  font-size: 14px !important;
  cursor: pointer;
}
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_button:hover {
  background: #55492f !important;
}
.gform_wrapper .gfield_description {
  font-size: 13px;
  color: #6c685c;
}
.gform_wrapper .gform_validation_errors,
.gform_wrapper .validation_message {
  border-radius: 0 !important;
}
.gform_confirmation_message {
  padding: 24px;
  background: #ece7da;
  border-left: 3px solid #887346;
}

/* ---------- Core blocks in content ------------------------------------ */
.entry-content .wp-block-button__link,
.reading-body .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #71613f;
  border: 1px solid #71613f;
  color: #fff;
  border-radius: 0;
  padding: 15px 24px;
  font-size: 14px;
  min-height: 48px;
  text-decoration: none;
}
.entry-content .wp-block-button__link:hover {
  background: #55492f;
  border-color: #55492f;
  color: #fff;
}
.entry-content .is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--ink);
  border-color: #b6b8aa;
}
.entry-content .is-style-ppdg-textlink .wp-block-button__link {
  background: none;
  border: 0;
  border-bottom: 1px solid #8b794b;
  color: inherit;
  padding: 0 0 6px;
  min-height: 0;
  font-size: 14px;
}
.is-style-ppdg-eyebrow,
.entry-content .eyebrow {
  font-size: 12px;
  letter-spacing: 2px;
  font-weight: 600;
  color: #806b3e;
  margin: 0 0 20px;
  text-transform: uppercase;
}
.reading-body .wp-block-image {
  margin: 28px 0;
}
.reading-body .wp-block-image img {
  margin: 0 auto;
}
.wp-block-image figcaption,
.wp-element-caption {
  font-size: 13px;
  color: #706d61;
  text-align: center;
  margin-top: 10px;
}
.reading-body .wp-block-gallery img,
.reading-body .gallery img {
  margin: 0;
}
.reading-body blockquote,
.entry-content .wp-block-quote {
  margin: 32px 0;
  padding: 12px 24px;
  border-left: 2px solid #887346;
  font: 25px/1.5 Georgia, serif;
}
.reading-body blockquote cite {
  display: block;
  font: 14px Arial, sans-serif;
  color: #706d61;
  margin-top: 10px;
}
.entry-content .wp-block-separator {
  border: 0;
  border-top: 1px solid #ded7c7;
  margin: 40px 0;
}
.reading-body .wp-block-embed,
.reading-body iframe {
  max-width: 100%;
}
.alignleft {
  float: left;
  margin: 6px 28px 18px 0;
}
.alignright {
  float: right;
  margin: 6px 0 18px 28px;
}
.aligncenter {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* Gallery block: "Load more (6 at a time)" style uses the design's grid. */
.wp-block-gallery.is-style-ppdg-load-more,
.reading-body .gallery {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px !important;
  margin: 30px 0;
}
.wp-block-gallery.is-style-ppdg-load-more > figure,
.reading-body .gallery > .gallery-item {
  width: auto !important;
  margin: 0 !important;
  max-width: none !important;
}
.wp-block-gallery.is-style-ppdg-load-more img,
.reading-body .gallery img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 4 / 3;
  object-fit: contain !important;
  background: #f1eee7;
}
.reading-body .gallery br {
  display: none;
}
.gallery-actions {
  text-align: center;
}
.gallery-actions .gallery-more {
  margin: 0 auto;
}
@media (max-width: 600px) {
  .wp-block-gallery.is-style-ppdg-load-more,
  .reading-body .gallery {
    grid-template-columns: 1fr;
  }
}

/* Table block: "Spec sheet" style. */
.wp-block-table.is-style-ppdg-spec td:first-child {
  width: 32%;
  font-weight: 600;
  color: #514932;
  background: #eee9dd;
}
.wp-block-table.is-style-ppdg-spec table {
  border: 0;
}
.wp-block-table.is-style-ppdg-spec td {
  border: 0;
  border-bottom: 1px solid #ded7c7;
}

/* List block: "Link grid" style (and lists on Resource Index pages). */
.wp-block-list.is-style-ppdg-link-grid,
.resource-index .reading-body > ul,
.resource-index .reading-body .content-section ul,
.resource-index .reading-body .child-page-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 2rem;
}
.wp-block-list.is-style-ppdg-link-grid li {
  margin: 0;
  display: flex;
  border-bottom: 1px solid #cfc7b7;
}
.wp-block-list.is-style-ppdg-link-grid li a {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 1.4rem 0;
  min-height: 96px;
  font-family: Georgia, serif;
  font-size: 1.45rem;
  line-height: 1.3;
  text-decoration: none;
  color: #282a22;
}
@media (max-width: 900px) {
  .wp-block-list.is-style-ppdg-link-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .wp-block-list.is-style-ppdg-link-grid {
    grid-template-columns: 1fr;
  }
}

/* Group block: "Note box" style. */
.wp-block-group.is-style-ppdg-note {
  padding: 20px 24px;
  border-left: 3px solid #887346;
  background: #ece7da;
  margin: 28px 0;
}
.wp-block-group.is-style-ppdg-note > :last-child {
  margin-bottom: 0;
}

/* Details block: accordion styling. */
.wp-block-details {
  border-bottom: 1px solid var(--line);
  padding: 18px 0;
}
.wp-block-details > summary {
  font-size: 17px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
.wp-block-details > summary::after {
  content: "+";
  font: 22px/1 Georgia, serif;
  color: var(--gold);
}
.wp-block-details[open] > summary::after {
  content: "−";
}
.wp-block-details > :not(summary) {
  margin: 12px 0 0;
  color: #64695f;
}

/* Legacy ACF fallback output. */
.legacy-content .content-section + .content-section {
  margin-top: 10px;
}
.legacy-content .legacy-row {
  margin-bottom: 24px;
}

/* ---------- PPD&G block patterns -------------------------------------- */
.ppdg-page-head {
  background: #f8f6f0;
  border-bottom: 1px solid #ded7c7;
  padding: 65px max(5%, calc((100% - 1140px) / 2)) 48px;
}
.ppdg-page-head h1 {
  font: clamp(40px, 5vw, 70px) / 1.08 Georgia, serif;
  letter-spacing: -1.8px;
  max-width: 1000px;
  margin: 22px 0;
}
.ppdg-page-head h1 em,
.ppdg-section h2 em,
.ppdg-cta h2 em {
  color: var(--gold);
}
.ppdg-page-head .priority-intro {
  max-width: 620px;
}
.ppdg-section {
  max-width: 1240px;
  margin: 0 auto;
  padding: 58px 5%;
}
.full-width-body .ppdg-section {
  padding-left: 0;
  padding-right: 0;
}
.ppdg-section h2 {
  font: 400 clamp(32px, 3vw, 46px) / 1.14 Georgia, serif;
  letter-spacing: -1px;
}
.ppdg-twocol {
  display: grid !important;
  grid-template-columns: 1.2fr 1fr;
  gap: 60px !important;
  align-items: center;
}
.ppdg-twocol > .wp-block-column {
  flex-basis: auto !important;
}
.ppdg-twocol .wp-block-image,
.ppdg-twocol .wp-block-image img {
  margin: 0;
  width: 100%;
  max-height: 540px;
  object-fit: cover;
}
.ppdg-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 28px;
}
.ppdg-option {
  position: relative;
  border: 1px solid var(--line);
  padding: 22px;
  background: #fff;
}
.ppdg-option:hover {
  border-color: var(--gold);
  background: var(--paper);
}
.ppdg-option h3 {
  font-size: 23px;
  margin: 0 0 10px;
}
.ppdg-option h3 a {
  text-decoration: none;
}
.ppdg-option h3 a::after {
  content: "";
  position: absolute;
  inset: 0;
}
.ppdg-option p {
  font-size: 14px;
  color: #64695f;
  margin: 0;
}
.ppdg-assist {
  background: #f8f6f0;
  border-left: 2px solid #ad9867;
  padding: 26px 32px;
  margin: 30px auto;
  max-width: 1240px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
.ppdg-assist p {
  margin: 0;
  color: #676b62;
}
.ppdg-assist .assist-title {
  font: 23px Georgia, serif;
  color: var(--ink);
  margin-bottom: 4px;
}
.ppdg-dark {
  background: #32372f;
  color: #fff;
}
.ppdg-dark .eyebrow,
.ppdg-dark .step-label {
  color: #cfbf91;
}
.ppdg-dark h2,
.ppdg-dark h3 {
  color: #f8f6ed;
}
.ppdg-dark p {
  color: #d2d9cf;
}
.ppdg-dark .wp-block-button__link {
  color: #f2e7cb;
}
.ppdg-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 25px;
  margin-top: 30px;
}
.ppdg-steps > .wp-block-group {
  border-top: 1px solid #718074;
  padding-top: 16px;
}
.ppdg-steps .step-label,
.ppdg-case-story .step-label {
  font-size: 12px;
  letter-spacing: 1.4px;
  margin: 0;
}
.ppdg-steps h3 {
  font-size: 23px;
}
.ppdg-steps p:not(.step-label) {
  font-size: 14px;
}
.ppdg-faq-layout {
  display: grid !important;
  grid-template-columns: 1fr 1.25fr;
  gap: 10% !important;
}
.ppdg-faq-layout > .wp-block-column {
  flex-basis: auto !important;
}
.ppdg-faq-layout .wp-block-details:first-child {
  border-top: 1px solid var(--line);
}
.ppdg-cta {
  text-align: center;
  background: #f7f4ed;
  padding: 75px 20px;
}
.ppdg-cta h2 {
  font: 400 clamp(32px, 3vw, 46px) / 1.14 Georgia, serif;
  max-width: 720px;
  margin: 0 auto 15px;
  letter-spacing: -1px;
}
.ppdg-cta p:not(.eyebrow) {
  max-width: 780px;
  margin-left: auto;
  margin-right: auto;
  color: #62695e;
  line-height: 1.75;
}
.ppdg-cta .wp-block-buttons {
  justify-content: center;
}
.ppdg-case-story {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 36px;
  margin: 35px 0;
}
.ppdg-case-story .step-label {
  color: var(--gold);
}
.ppdg-case-story h2 {
  font-size: 30px;
  margin-top: 18px;
}
@media (max-width: 900px) {
  .ppdg-options {
    grid-template-columns: 1fr 1fr;
  }
  .ppdg-steps {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 700px) {
  .ppdg-twocol,
  .ppdg-faq-layout,
  .ppdg-case-story,
  .ppdg-options,
  .ppdg-steps {
    grid-template-columns: 1fr;
    gap: 30px !important;
  }
  .ppdg-assist {
    display: block;
    padding: 22px;
  }
  .ppdg-assist .wp-block-buttons {
    margin-top: 18px;
  }
  .ppdg-page-head {
    padding-top: 40px;
  }
}

.directory-body .eyebrow,
.mega .eyebrow {
  text-transform: uppercase;
}
@media (max-width: 600px) {
  .main-nav > a,
  .main-nav summary {
    padding: 2px 0;
  }
}

/* =========================================================================
 * ACF modules ("Additional Content / Modules" flexible content)
 * Matches the redesign's reading layout: content sections, 4:3 product
 * cards, the Load More gallery and the ivory/gold accents.
 * ====================================================================== */
.ppdg-module {
  margin: 0 0 36px;
}
.ppdg-module:last-child {
  margin-bottom: 0;
}
.module-heading {
  margin: 40px 0 24px;
}
.module-heading h2 {
  margin-bottom: 8px;
}
.reading-body .module-heading h2,
.full-width-body .module-heading h2 {
  margin-top: 0;
}
.module-subtext {
  font-size: 15px;
  color: #706d61;
  letter-spacing: 0.02em;
}
.module-divider {
  border: 0;
  border-top: 1px solid #ded7c7;
  margin: 44px 0;
}
.module-divider.is-shape {
  width: 120px;
  border-top-color: #b8a779;
  margin: 50px auto;
}

/* Content Columns */
.module-columns {
  display: grid;
  gap: 28px 36px;
}
.module-columns.cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.module-columns.cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.module-columns.cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.module-col > :first-child {
  margin-top: 0;
}

/* Product / bucket cards (redesign .product-grid) */
.product-options {
  margin: 32px 0;
}
.reading-body .product-grid,
.product-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
}
.product-grid.cols-1 {
  grid-template-columns: minmax(0, 1fr);
}
.product-grid.cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.product-grid.cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.product-item {
  min-width: 0;
}
.product-item a {
  display: block;
  text-decoration: none !important;
}
.product-item figure {
  margin: 0;
  background: #ede9df;
  overflow: hidden;
}
.reading-body .product-item img,
.product-item img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  margin: 0;
  transition: transform 0.35s;
}
.product-item a:hover img {
  transform: scale(1.03);
}
.reading-body .product-item h3,
.product-item h3 {
  font: 24px/1.25 Georgia, serif;
  margin: 16px 0 6px;
}
.product-item a:hover h3 {
  color: var(--gold);
}
.product-grid.is-carousel {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(240px, 42%);
  grid-template-columns: none;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 12px;
}
.product-grid.is-carousel .product-item {
  scroll-snap-align: start;
}

/* Gallery column variants (Load More behaviour from theme.js) */
.reading-body .project-gallery.cols-1 .gallery-grid {
  grid-template-columns: minmax(0, 1fr);
}
.reading-body .project-gallery.cols-3 .gallery-grid,
.reading-body .project-gallery.cols-4 .gallery-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.gallery-item figcaption {
  font-size: 13px;
  color: #706d61;
  margin-top: 8px;
}

/* Image gallery with thumbnails */
.thumb-gallery-main {
  margin: 0 0 14px;
  background: #f1eee7;
}
.reading-body .thumb-gallery-main img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  margin: 0;
}
.thumb-gallery-strip {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 6px;
}
.thumb-gallery-strip .thumb {
  flex: 0 0 88px;
  padding: 0;
  border: 1px solid transparent;
  background: #f1eee7;
  cursor: pointer;
}
.thumb-gallery-strip .thumb.is-active {
  border-color: var(--gold);
}
.reading-body .thumb-gallery-strip img {
  width: 88px;
  height: 66px;
  object-fit: cover;
  margin: 0;
}

/* Table (html) */
.module-table {
  overflow-x: auto;
}
.module-table thead th {
  background: #e5dfd0;
}

/* Tabs */
.ppdg-tabs .tab-list {
  margin: 0 0 22px;
}
.ppdg-tabs .tab-list button {
  font-size: 14px;
}
.ppdg-tabs .tab-list button[aria-selected="true"] {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
.ppdg-tabs.is-enhanced .tab-panel-title {
  display: none;
}
.tab-panel {
  padding: 4px 0;
}
.tab-panel-title {
  font-size: 23px;
}

/* Text & Media / feature rows */
.module-text-media,
.module-feature {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 40px;
  align-items: center;
  margin: 30px 0;
}
.module-feature.no-media {
  grid-template-columns: minmax(0, 1fr);
}
.module-feature.is-reversed .module-feature-media {
  order: 2;
}
.module-feature-media {
  margin: 0;
  background: #ede9df;
}
.reading-body .module-feature-media img,
.module-feature-media img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 460px;
  object-fit: cover;
  margin: 0;
}
.module-feature-copy > :first-child,
.module-text > :first-child,
.module-media > :first-child {
  margin-top: 0;
}
.module-feature-copy h2 {
  margin-top: 0;
}
.reading-body .module-media img {
  margin: 0;
}
.module-feature + .module-feature {
  border-top: 1px solid #ded7c7;
  padding-top: 30px;
}

/* Full Width CTA (inside content) */
.module-cta {
  background: #ece7da;
  border-left: 2px solid #887346;
  padding: 32px 36px;
  text-align: left;
}
.reading-body .module-cta h2 {
  margin: 0 0 10px;
  font-size: 30px;
}
.module-cta p {
  color: #56594f;
}
.module-cta .button {
  text-decoration: none;
  color: #fff;
}

/* Click to Expand */
.module-expand.has-spacing {
  margin: 30px 0;
}
.module-expand .expand-body {
  color: var(--ink);
  font-size: 16px;
}
.module-expand .expand-body > :first-child {
  margin-top: 0;
}

/* Capabilities buckets */
.capability-buckets {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
  margin: 30px 0;
}
.capability-bucket {
  background: #fff;
  border: 1px solid #e1dacb;
  padding: 0 0 22px;
}
.capability-bucket figure {
  margin: 0 0 18px;
}
.reading-body .capability-bucket img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  margin: 0;
}
.capability-bucket h3,
.capability-bucket .bucket-text {
  padding: 0 22px;
}
.capability-bucket h3 {
  margin: 0 0 8px;
  font-size: 24px;
}
.capability-bucket .bucket-text {
  font-size: 15px;
  color: #64695f;
}

/* Make It */
.make-it-list {
  list-style: none;
  padding: 0 !important;
  margin: 24px 0;
  border-top: 1px solid #c9b98e;
}
.make-it-list li {
  display: flex;
  gap: 24px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid #ded7c7;
  font: 24px/1.35 Georgia, serif;
}
.make-it-list span {
  font: 600 12px Arial, sans-serif;
  letter-spacing: 2px;
  color: var(--gold);
}

/* Testimonials */
.testimonial-head .stars {
  color: #b59d6e;
  letter-spacing: 4px;
  font-size: 18px;
}
.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.reading-body blockquote.testimonial,
blockquote.testimonial {
  margin: 0;
  padding: 26px 28px;
  background: #fff;
  border: 1px solid #e1dacb;
  border-left: 2px solid #887346;
  font: 20px/1.55 Georgia, serif;
}
blockquote.testimonial p {
  margin: 0 0 14px;
}
blockquote.testimonial cite {
  font: normal 13px Arial, sans-serif;
  letter-spacing: 1px;
  color: #706d61;
  text-transform: uppercase;
}

/* Brands */
.original-brand-grid .brand-logo img,
.reading-body .original-brand-grid img {
  width: 100%;
  height: 76px;
  object-fit: contain;
  margin: 0;
  background: #fff;
  padding: 10px;
}

/* Center divider */
.center-divider {
  --divider-color: #b59d6e;
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 44px 0;
  text-align: center;
}
.center-divider::before,
.center-divider::after {
  content: "";
  flex: 1;
  border-top: 1px solid var(--divider-color);
}
.center-divider-content {
  font: 20px Georgia, serif;
  color: #66562f;
  max-width: 70%;
}
.center-divider-content svg,
.center-divider-content img {
  max-height: 40px;
  width: auto;
  margin: 0 !important;
}

/* Horizontal scrollers: news, slides, portfolio strips */
.module-scroller {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(240px, 46%);
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 12px;
  margin: 24px 0;
  scrollbar-width: thin;
}
.module-scroller > * {
  scroll-snap-align: start;
  min-width: 0;
}
.module-scroller figure {
  margin: 0;
  background: #ede9df;
}
.reading-body .module-scroller img,
.module-scroller img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  margin: 0;
}
.news-card h3,
.slide-card h3 {
  font-size: 23px;
  margin: 14px 0 8px;
}
.news-card-text {
  font-size: 15px;
  color: #64695f;
}
.slide-card .eyebrow {
  margin: 14px 0 0;
}
.image-strip {
  grid-auto-columns: minmax(160px, 30%);
}

/* Who We Are slider: linked cards (the whole card is the link) */
.slide-card.is-linked {
  position: relative;
  display: block;
  color: inherit;
  text-decoration: none;
}
.slide-card.is-linked figure {
  overflow: hidden;
}
.slide-card.is-linked img {
  transition: transform .5s ease;
}
.slide-card.is-linked h3 {
  transition: color .2s ease;
}
.slide-card.is-linked:hover img,
.slide-card.is-linked:focus-visible img {
  transform: scale(1.04);
}
.slide-card.is-linked:hover h3,
.slide-card.is-linked:focus-visible h3 {
  color: var(--gold);
}
.slide-card.is-linked:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce) {
  .slide-card.is-linked img { transition: none; }
}

/* Portfolio page module */
.portfolio-item {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 30px;
  align-items: center;
  padding: 30px 0;
  border-bottom: 1px solid #ded7c7;
}
.portfolio-item-image {
  margin: 0;
}
.reading-body .portfolio-item-image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  margin: 0;
}
.portfolio-item-links h3 {
  font-size: 30px;
  margin: 0 0 16px;
}
.portfolio-item-links h3 a {
  text-decoration: none;
}
.portfolio-item-links h3 span {
  color: var(--gold);
  font: 20px Arial;
}
.portfolio-item .image-strip {
  grid-column: 1 / -1;
  margin: 0;
}

/* Banner, fancy text, career */
.module-banner {
  margin: 30px 0;
}
.reading-body .module-banner img {
  width: 100%;
  margin: 0;
}
.reading-body .career-introduction > :first-child {
  margin-top: 0;
}

/* Floating CTA (Right Fixed CTA / Fixed RFA CTA modules) */
.reading-body .fixed-cta,
.fixed-cta {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 15;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 10px 26px #28211733;
}
.reading-body .fixed-cta:hover {
  color: #fff;
}

/* Homepage: modules shown as collapsible panels */
.home-content .home-original-module .ppdg-module {
  margin: 0;
}
.home-content .module-feature {
  margin: 10px 0;
}

@media (max-width: 900px) {
  .module-columns.cols-3,
  .module-columns.cols-4,
  .product-grid.cols-3,
  .product-grid.cols-4,
  .capability-buckets,
  .testimonial-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 700px) {
  .module-columns.cols-2,
  .module-columns.cols-3,
  .module-columns.cols-4,
  .module-text-media,
  .module-feature,
  .portfolio-item,
  .testimonial-grid,
  .capability-buckets {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
  .module-feature.is-reversed .module-feature-media {
    order: 0;
  }
  .module-scroller,
  .product-grid.is-carousel {
    grid-auto-columns: 80%;
  }
  .module-cta {
    padding: 26px 22px;
  }
  .fixed-cta {
    right: 12px;
    bottom: 12px;
    min-height: 42px;
    padding: 10px 16px;
  }
}
@media (max-width: 600px) {
  .product-grid,
  .product-grid.cols-3,
  .product-grid.cols-4,
  .reading-body .project-gallery.cols-3 .gallery-grid,
  .reading-body .project-gallery.cols-4 .gallery-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
.reading-body .module-media img,
.module-media img {
  width: 100%;
  height: auto;
}
@media (max-width: 700px) {
      }

/* =========================================================================
 * v1.2 — header search, 3:2 featured images (1536 × 1024), Case Studies
 * hub, homepage articles, search results and 404.
 * ====================================================================== */

/* Search form (header panel, search page, 404) */
.ppdg-search {
  display: flex;
  gap: 12px;
  margin: 0;
  padding: 0;
  border: 0;
  max-width: 820px;
}
.ppdg-search .search-field {
  flex: 1;
  min-width: 0;
  width: auto;
  margin: 0;
  padding: 14px 16px;
  border: 0;
  border-bottom: 1px solid #b8a779;
  background: transparent;
  border-radius: 0;
  font: 26px/1.3 Georgia, serif;
  color: var(--ink);
}
.ppdg-search .search-field::placeholder {
  color: #9a9585;
}
.ppdg-search .search-field:focus-visible {
  outline: none;
  border-bottom-color: var(--ink);
  box-shadow: 0 1px 0 var(--ink);
}
.ppdg-search .search-submit {
  flex-shrink: 0;
  gap: 14px;
}
.search-head-form {
  margin: 30px 0 6px;
}
.search-head-form .search-field,
.reading-body .ppdg-search .search-field {
  background: #fff;
  border: 1px solid #ccc6b8;
  font-size: 20px;
}

@media (max-width: 600px) {
  .ppdg-search {
    flex-direction: column;
  }
  .ppdg-search .search-field {
    font-size: 21px;
  }
  .ppdg-search .search-submit {
    align-self: flex-start;
  }
}

/* ---------- 3:2 cards ------------------------------------------------- */
.case-card img,
.case-card .case-card-placeholder,
.post-card img,
.post-card .case-card-placeholder {
  aspect-ratio: 3 / 2;
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}
.case-card,
.post-card {
  color: inherit;
}
.case-card img,
.post-card img {
  transition: opacity 0.3s;
}
.case-card:hover img,
.post-card:hover img {
  opacity: 0.9;
}

/* ---------- Case Studies hub ------------------------------------------ */
.case-hub .case-hub-intro {
  padding-bottom: 0;
}
.case-hub .case-index {
  padding-top: 50px;
}
.case-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: 48px;
  align-items: center;
  padding-bottom: 50px;
  margin-bottom: 50px;
  border-bottom: 1px solid #d4cbb9;
}
.case-feature figure {
  margin: 0;
  background: #ede9df;
  overflow: hidden;
}
.case-feature img,
.case-feature .case-card-placeholder {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  transition: transform 0.4s;
}
.case-feature:hover img {
  transform: scale(1.02);
}
.case-feature h2 {
  font: 400 clamp(30px, 3vw, 42px) / 1.15 Georgia, serif;
  letter-spacing: -0.8px;
  margin: 0 0 18px;
}
.case-feature:hover h2 {
  color: var(--gold);
}
.case-feature-copy > p:not(.eyebrow) {
  color: #68685e;
  font-size: 17px;
  line-height: 1.7;
}
.case-feature-scope {
  font-size: 11px !important;
  letter-spacing: 1.4px;
  color: var(--gold) !important;
  margin: 20px 0 26px;
}
.case-hub .case-grid {
  row-gap: 50px;
}
.case-hub .case-card :is(h2, h3) {
  font-size: 28px;
}
.single-case-study .case-hero,
.case-detail .case-hero {
  aspect-ratio: 3 / 2;
  max-height: 760px;
  object-fit: cover;
}

/* ---------- Blog grid -------------------------------------------------- */
.blog-home .archive-story figure {
  aspect-ratio: 3 / 2;
  margin: 0 0 22px;
  background: #ede9df;
}
.blog-home .archive-story figure a {
  display: block;
}
.blog-home .archive-story img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s;
}
.blog-home .archive-story figure {
  overflow: hidden;
}
.blog-home .archive-story:hover img {
  transform: scale(1.03);
}
.blog-home .archive-story:hover .story-title a {
  color: var(--gold);
}
.story-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font: 42px Georgia, serif;
  color: #b8a779;
}
.story-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  align-items: center;
  margin: 0 0 12px !important;
  font-size: 12px !important;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}
.story-meta time {
  color: #6c685c;
  font-size: 12px;
  margin: 0;
}
.story-kicker {
  color: #806b3e;
  font-weight: 600;
}
.blog-home .archive-story .story-copy p:not(.story-meta) {
  color: #56594f;
}
.blog-home .archive-story .textlink {
  display: inline-block;
  text-decoration: none;
  font-size: 14px;
  margin-top: 4px;
}
.blog-home .archive-story {
  border-bottom: 1px solid #d4cbb9;
  padding-bottom: 32px;
}

/* Single post featured image */
.post-hero {
  max-width: 1160px;
  margin: 0 auto;
  padding: 44px 5% 0;
}
.post-hero img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  background: #ede9df;
}
.post-hero figcaption {
  font-size: 13px;
  color: #706d61;
  margin-top: 10px;
}

/* ---------- Homepage latest articles ---------------------------------- */
.post-section {
  border-top: 1px solid var(--line);
}
.post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
}
.post-card {
  display: flex;
  flex-direction: column;
  border-bottom: 1px solid var(--line);
}
.post-card > div {
  padding: 24px 0;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.post-card .eyebrow {
  margin-bottom: 12px;
  font-size: 11px;
}
.post-card h3 {
  font-size: 25px;
  margin: 0 0 14px;
}
.post-card:hover h3 {
  color: var(--gold);
}
.post-card p:not(.eyebrow) {
  color: #68685e;
  font-size: 15px;
}
.post-card .textlink {
  align-self: start;
  margin-top: auto;
}

/* ---------- Search results -------------------------------------------- */
.search-head h1 em,
.error-head h1 em {
  color: var(--gold);
}
.search-head .search-count {
  margin-top: -6px;
}
.search-results {
  padding-top: 40px;
}
.search-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 1040px;
  border-top: 1px solid #c9b98e;
}
.search-result {
  border-bottom: 1px solid #ded7c7;
}
.search-result-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 210px;
  gap: 36px;
  align-items: center;
  padding: 30px 0;
}
.search-result-link:not(:has(figure)) {
  grid-template-columns: minmax(0, 1fr);
}
.search-result .eyebrow {
  margin-bottom: 10px;
  font-size: 11px;
}
.search-result h2 {
  font-size: 28px;
  margin: 0 0 10px;
}
.search-result-link:hover h2 {
  color: var(--gold);
}
.search-result p:not(.eyebrow) {
  color: #56594f;
  margin-bottom: 10px;
}
.search-result-path {
  font-size: 13px;
  color: #8a8578;
  text-decoration: underline;
  text-decoration-color: #d3c7ae;
  text-underline-offset: 4px;
}
.search-result-image {
  margin: 0;
  background: #ede9df;
}
.search-result-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.search-empty {
  max-width: 1040px;
  margin-top: 0;
}
.popular-links {
  margin-top: 46px;
}
.popular-links .eyebrow {
  margin-bottom: 18px;
}

/* ---------- 404 ------------------------------------------------------- */
.error-head h1 {
  font-size: clamp(44px, 6vw, 84px);
}
.error-head .priority-actions {
  margin-top: 26px;
}
.error-links .assist {
  margin-top: 40px;
}

@media (max-width: 1000px) {
  .post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 800px) {
  .case-feature {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }
}
@media (max-width: 700px) {
  .post-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .search-result-link {
    grid-template-columns: minmax(0, 1fr) 96px;
    gap: 18px;
    padding: 24px 0;
  }
  .search-result h2 {
    font-size: 23px;
  }
  .post-hero {
    padding-top: 28px;
  }
}
.assist .textlink {
  white-space: nowrap;
}
.center-divider-content svg {
  display: block;
  width: 50px;
  height: auto;
  max-height: 60px;
}
/* Dark "How we make it" band: the original percentage gap overflowed into
   the next section once the band stacked to one column on phones. */
.homepage .dark .section {
  row-gap: 40px;
}

/* ---------- Fancy Text Module ("Custom" + rotating word) --------------- */
.fancy-band {
  position: relative;
  overflow: hidden;
  margin: 36px 0;
  padding: clamp(40px, 6vw, 72px) clamp(24px, 5vw, 64px);
  background: #2f342c;
  color: #f8f6ed;
  isolation: isolate;
}
.fancy-band::after {
  content: "";
  position: absolute;
  inset: 14px;
  border: 1px solid rgba(207, 191, 145, 0.28);
  pointer-events: none;
}
.fancy-inner {
  position: relative;
}
.reading-body .fancy-heading,
.fancy-heading {
  margin: 0;
  font: 400 clamp(38px, 5.4vw, 68px) / 1.08 Georgia, "Times New Roman", serif;
  letter-spacing: -1.2px;
  color: #f8f6ed;
}
.fancy-static {
  display: block;
}
.fancy-rotator {
  display: grid;
  margin-top: 4px;
}
.fancy-word {
  grid-area: 1 / 1;
  font-style: italic;
  color: #cfbf91;
  opacity: 0;
  transform: translateY(0.35em);
  transition: opacity 0.55s ease, transform 0.55s ease;
  white-space: nowrap;
}
.fancy-word.is-active {
  opacity: 1;
  transform: none;
}
.fancy-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
  list-style: none;
  margin: 34px 0 0 !important;
  padding: 22px 0 0 !important;
  border-top: 1px solid rgba(207, 191, 145, 0.35);
}
.fancy-list li {
  margin: 0;
  font: 600 11px/1.4 Arial, Helvetica, sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(248, 246, 237, 0.55);
  transition: color 0.3s;
}
.fancy-list li {
  position: relative;
  padding-left: 14px;
}
.fancy-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 5px;
  height: 5px;
  margin-top: -3px;
  border: 1px solid rgba(207, 191, 145, 0.55);
  transform: rotate(45deg);
  transition: background 0.3s;
}
.fancy-list li.is-active::before {
  background: #cfbf91;
  border-color: #cfbf91;
}
.fancy-list li.is-active {
  color: #cfbf91;
}
@media (max-width: 600px) {
  .fancy-band::after {
    inset: 10px;
  }
  .reading-body .fancy-heading,
  .fancy-heading {
    font-size: clamp(34px, 10vw, 44px);
  }
  .fancy-word {
    white-space: normal;
  }
  .fancy-list li {
    font-size: 10px;
    letter-spacing: 1.6px;
  }
  .fancy-list {
    gap: 10px 20px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .fancy-word {
    transition: none;
  }
}

/* Fancy Text: signature sign-off (desktop: right of the heading). */
.fancy-band.has-signature .fancy-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 40px;
  align-items: center;
}
.fancy-band.has-signature .fancy-list {
  grid-column: 1 / -1;
}
.reading-body .fancy-signature,
.fancy-signature {
  display: block;
  width: clamp(170px, 24vw, 290px);
  height: auto;
  margin: 0;
  justify-self: end;
}
@media (max-width: 600px) {
  .fancy-band.has-signature .fancy-inner {
    display: block;
  }
  .reading-body .fancy-signature,
  .fancy-signature {
    width: 150px;
    margin: 26px 0 0;
  }
}

/* ---------- Pages: latest case studies + blog posts ------------------- */
.reading-layout.has-side.has-side {
  grid-template-columns: 240px minmax(0, 1fr);
  max-width: 1240px;
}
.reading-side {
  align-self: start;
  min-width: 0;
}
.reading-side .contents {
  position: static;
  max-height: none;
  overflow: visible;
  padding-right: 0;
}
.reading-side.is-sticky {
  position: sticky;
  top: 140px;
}
.side-latest {
  margin-top: 44px;
  display: grid;
  gap: 36px;
}
.reading-side > .side-latest:first-child {
  margin-top: 0;
}
.side-latest-group {
  display: grid;
  gap: 4px;
}
.side-latest .eyebrow {
  text-transform: uppercase;
  margin: 0 0 8px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--gold);
}
.side-card {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid #ded7c7;
  color: var(--ink);
  text-decoration: none;
}
.side-card-media {
  display: block;
  overflow: hidden;
  background: #ede9df;
  aspect-ratio: 3 / 2;
}
.side-card-media img,
.side-card-placeholder {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
.side-card-text {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.side-card-kicker {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.side-card-title {
  font: 15px/1.3 Georgia, "Times New Roman", serif;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color .2s ease;
}
.side-card:hover .side-card-title,
.side-card:focus-visible .side-card-title {
  color: var(--gold);
}
.side-card:hover img,
.side-card:focus-visible img {
  transform: scale(1.05);
}
.side-latest-all {
  justify-self: start;
  margin-top: 10px;
  font-size: 13px;
  color: var(--ink);
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-underline-offset: 5px;
}
.side-latest-all:hover {
  color: var(--gold);
}

/* Tablet / mobile: latest content moves below the article. */
@media (max-width: 900px) {
  .reading-layout.has-side.has-side {
    grid-template-columns: minmax(0, 1fr);
  }
  .reading-side {
    display: contents;
  }
  .reading-side .contents {
    order: 0;
  }
  .reading-layout.has-side .reading-body {
    order: 1;
  }
  .side-latest {
    order: 2;
    margin-top: 10px;
    padding-top: 36px;
    border-top: 1px solid var(--line);
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 36px 40px;
  }
  .side-card {
    grid-template-columns: 112px minmax(0, 1fr);
  }
  .side-card-title {
    font-size: 17px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .side-card-media img { transition: none; }
}

/* Case studies: no "On this page" sidebar, so the story uses the full
   content width and lines up with the header and project summary. */
.single-case-study .reading-layout.no-toc {
  max-width: 1240px;
}
