/* Self-hosted Inter 4.1, distributed under the bundled SIL Open Font License. */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('../fonts/inter/InterVariable.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: italic; font-weight: 100 900; font-display: swap; src: url('../fonts/inter/InterVariable-Italic.woff2') format('woff2'); }

/* Approved print-editorial identity, shared by native blocks and Astra chrome. */
:root {
  --db-paper: #f3f0e9;
  --db-surface: #faf8f3;
  --db-ink: #191917;
  --db-muted: #625f58;
  --db-line: #d8d3c8;
  --db-control-line: #8c867b;
  --db-accent: #9a4f32;
  --db-dark-muted: #d0ccc5;
  --db-max: 1440px;
  --db-gutter: clamp(1.25rem, 4vw, 4.5rem);
  --db-serif: Georgia, "Times New Roman", serif;
  --db-sans: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --db-section-space: clamp(3.5rem, 6vw, 6rem);
  --db-section-tight: clamp(2.75rem, 4.5vw, 4.5rem);
}

html { font-size: 100%; scroll-behavior: smooth; }
body { background: var(--db-paper); color: var(--db-ink); font-family: var(--db-sans); font-size: 16px; font-weight: 400; line-height: 1.55; }
.site-content#content { background: var(--db-paper); }
img { height: auto; max-width: 100%; }

/* Separate heading levels, with enough leading for Georgia's descenders. */
:is(.entry-content, .editor-styles-wrapper) :is(h1, h2, h3, h4) { color: var(--db-ink); font-family: var(--db-serif); font-weight: 400; text-wrap: pretty; }
:is(.entry-content, .editor-styles-wrapper) h1.db-display { font-size: clamp(2.7rem, 5.6vw, 6rem); line-height: .97; letter-spacing: -.045em; max-width: 24ch; }
:is(.entry-content, .editor-styles-wrapper) h2 { font-size: clamp(2.5rem, 4.5vw, 5rem); line-height: 1; letter-spacing: -.04em; }
:is(.entry-content, .editor-styles-wrapper) h3 { font-size: 1.6rem; line-height: 1.55; letter-spacing: normal; }
:is(.entry-content, .editor-styles-wrapper) h4 { font-size: 1.25rem; line-height: 1.3; }
:is(.entry-content, .editor-styles-wrapper) p { line-height: 1.55; }
:is(.entry-content, .editor-styles-wrapper) .db-lede { color: var(--db-muted); font-size: clamp(1rem, 1.5vw, 1.25rem); font-weight: 400; line-height: 1.55; max-width: 40rem; }
:is(.entry-content, .editor-styles-wrapper) :is(.db-hero, #photography, #selected-works, .db-exhibition) .db-lede { font-size: 1rem; }
.db-body { max-width: 68ch; }
.db-muted { color: var(--db-muted); }
.db-display { max-width: 24ch; }
:is(.entry-content, .editor-styles-wrapper) .db-section--dark :is(h1, h2, h3, h4) { color: var(--db-surface); }
:is(.entry-content, .editor-styles-wrapper) .db-section--dark :is(.db-lede, .db-muted) { color: var(--db-dark-muted); }
:is(.entry-content, .editor-styles-wrapper) .db-container > :first-child { margin-top: 0; }
:is(.entry-content, .editor-styles-wrapper) .db-container > :last-child { margin-bottom: 0; }

/* Editorial text links get a single underline; linked images never inherit it. */
.ast-single-post .entry-content a { color: var(--db-accent); text-decoration-thickness: 1px; text-underline-offset: .22em; }
.ast-single-post .entry-content a.db-link,
.editor-styles-wrapper a.db-link {
  display: inline-flex; align-items: center; gap: .5rem; box-sizing: border-box;
  min-height: 44px; padding-block: .6rem; border: 0; border-radius: 0;
  color: var(--db-ink); background: transparent; box-shadow: none;
  font-family: var(--db-sans); font-size: .78rem; font-weight: 650;
  letter-spacing: .1em; line-height: 1.55; text-transform: uppercase;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .42em;
  white-space: nowrap; transition: color 160ms ease;
}
.ast-single-post .entry-content a.db-link:is(:hover, :focus-visible) { color: var(--db-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .42em; }
.ast-single-post .entry-content .db-section--dark a.db-link { color: var(--db-surface); }
.ast-single-post .entry-content .db-section--dark a.db-link:is(:hover, :focus-visible) { color: #e3a78b; }
.ast-single-post .entry-content .db-photo-card > a { display: block; color: var(--db-ink); text-decoration: none; }
.ast-single-post .entry-content .db-photo-card > a:is(:hover, :focus-visible) h3 { color: var(--db-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; }

:where(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--db-accent); outline-offset: 4px; }
.site-header a:focus-visible, .site-footer a:focus-visible,
.entry-content :is(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--db-accent); outline-offset: 4px; }
.entry-content .db-section--dark :is(a, button, input, select, textarea):focus-visible { outline-color: #e3a78b; }

/* Astra retains its native header/menu behavior, using the same editorial tokens. */
.site-header, .main-header-bar, .ast-primary-header-bar { background: var(--db-paper); }
.site-header .ast-primary-header-bar { border-bottom: 1px solid var(--db-line); min-height: 72px; }
.site-header .ast-primary-header-bar .site-primary-header-wrap { min-height: 72px; }
.site-header .ast-container, .site-footer .ast-container { max-width: var(--db-max); padding-inline: var(--db-gutter); }
.site-header .site-branding { padding-block: 1rem; }
.site-title, .site-title a { color: var(--db-ink); font-family: var(--db-serif); font-size: clamp(1.2rem, 2vw, 1.7rem); font-weight: 400; letter-spacing: .01em; line-height: 1.55; }
.site-header .site-description { color: var(--db-muted); font-size: .82rem; }
.site-header .main-navigation .menu-link { color: var(--db-ink); font-family: var(--db-sans); font-size: .84rem; font-weight: 400; line-height: 1.55; letter-spacing: normal; white-space: nowrap; text-decoration: none; }
.site-header .main-navigation .menu-item.current-menu-item > .menu-link,
.site-header .main-navigation .menu-item:hover > .menu-link,
.site-header .main-navigation .menu-item > .menu-link:focus-visible { color: var(--db-accent); }
.site-header .ast-button-wrap .menu-toggle.main-header-menu-toggle { color: var(--db-ink); min-width: 44px; min-height: 44px; border-radius: 0; }
.site-header .ast-button-wrap .menu-toggle.main-header-menu-toggle .ast-mobile-svg { fill: currentColor; }
.site-header .ast-button-wrap .menu-toggle.main-header-menu-toggle:focus-visible { outline: 2px solid var(--db-accent); outline-offset: 3px; }
.ast-mobile-popup-drawer .ast-mobile-popup-inner { background: var(--db-paper); }
.site-footer, #colophon .site-primary-footer-wrap, #colophon .site-below-footer-wrap { background: var(--db-paper); color: var(--db-muted); }
.site-footer { border-top: 1px solid var(--db-line); }
.site-footer a { color: var(--db-ink); }
.site-footer a:is(:hover, :focus-visible) { color: var(--db-accent); }
.ast-footer-copyright { font-size: .75rem; font-weight: 400; line-height: 1.55; letter-spacing: normal; }
#ast-scroll-top { box-sizing: border-box; width: 44px; height: 44px; line-height: 44px; border: 1px solid var(--db-control-line); border-radius: 0; background: var(--db-paper); color: var(--db-ink); box-shadow: none; }
#ast-scroll-top:is(:hover, :focus-visible) { background: var(--db-ink); color: var(--db-surface); }
#ast-scroll-top:focus-visible { outline: 2px solid var(--db-accent); outline-offset: 4px; }

/* Native block layout; spacing has one owner instead of Astra plus block margins. */
body.page .ast-article-single:has(> .entry-content > :is(.db-section, .db-detail-shell, .db-portfolio-detail)) { padding: 0; }
.entry-content > .wp-block-group.db-section, .db-section { padding: var(--db-section-space) 0; }
.entry-content > .wp-block-group.db-section.db-section--tight, .db-section--tight { padding-block: var(--db-section-tight); }
.db-container { box-sizing: border-box; margin-inline: auto; max-width: var(--db-max); padding-inline: var(--db-gutter); }
.db-section--dark { background: var(--db-ink); color: var(--db-surface); }
.db-section--dark a { color: var(--db-surface); }
.db-eyebrow { color: var(--db-accent); font-size: .72rem; font-weight: 650; letter-spacing: .15em; line-height: 1.55; text-transform: uppercase; }
.db-section--dark .db-eyebrow { color: #e3a78b; }
.db-rule { border-top: 1px solid var(--db-line); }
.db-intro { display: grid; gap: clamp(1.5rem, 4vw, 3.5rem); grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: start; }
.db-intro > *, .db-exhibition > *, .db-grid > * { min-width: 0; }
.entry-content :is(.db-intro, .db-exhibition) > * { margin-block: 0; }
.db-intro .db-lede { margin-top: 0; }
/* Inner-page titles and descriptors form one readable introduction. */
.entry-content > .db-section:first-child:not(.db-hero) .db-intro { grid-template-columns: 1fr; gap: 1.25rem; }
.entry-content > .db-section:first-child:not(.db-hero) .db-intro > * { margin-block: 0; }
.db-hero .db-intro { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); align-items: end; }
:is(.entry-content, .editor-styles-wrapper) .db-hero h1.db-display { font-size: clamp(3rem, 7vw, 7.5rem); max-width: none; line-height: .91; letter-spacing: -.055em; }
:is(.entry-content, .editor-styles-wrapper) #about h2.db-display { font-size: clamp(2.7rem, 5.6vw, 6rem); font-weight: 400; line-height: .97; letter-spacing: -.045em; }
.db-hero .db-intro > * > :last-child { margin-bottom: 0; }
.db-exhibition { display: grid; gap: clamp(2rem, 5vw, 5rem); grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: center; }
.db-grid { display: grid; gap: clamp(1.25rem, 2.4vw, 2.5rem); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.db-card img { display: block; width: 100%; height: auto; }
.db-empty { border-block: 1px solid var(--db-line); color: var(--db-muted); padding-block: clamp(2rem, 4vw, 3rem); }

/* Readable quotes and lists, retaining the client's complete supplied wording. */
:is(.entry-content, .editor-styles-wrapper) blockquote { border: 0; border-inline-start: 2px solid var(--db-line); padding: .25rem 0 .25rem 1.5rem; margin: 2rem 0; font-size: 1.0625rem; font-style: normal; }
:is(.entry-content, .editor-styles-wrapper) blockquote p { margin-block: 0 1rem; }
:is(.entry-content, .editor-styles-wrapper) blockquote cite { display: block; color: var(--db-muted); font-family: var(--db-sans); font-size: .875rem; font-style: normal; line-height: 1.6; margin-top: 0; }
.entry-content .db-container > ul { max-width: 68ch; padding-inline-start: 1.25rem; margin-inline-start: 0; }
.entry-content .db-container > ul > li + li { margin-top: .8rem; }
.entry-content #other-work .wp-block-columns { gap: 2rem; }
.entry-content #other-work .wp-block-column { display: flex; flex-direction: column; }
.entry-content #other-work .wp-block-column > p:last-child { margin-top: auto; padding-top: .75rem; }

@media (min-width: 922px) {
  .site-header .main-header-menu > .menu-item > .menu-link { padding-inline: .7rem; min-height: 72px; line-height: 1.55; }
}
@media (min-width: 922px) and (max-width: 1100px) {
  .site-header .main-header-menu > .menu-item > .menu-link { padding-inline: .5rem; }
  .db-hero .db-intro { grid-template-columns: 1fr; gap: 1.5rem; }
  .db-hero .db-lede { max-width: 60ch; }
}
@media (max-width: 921px) {
  .db-intro, .db-hero .db-intro, .db-exhibition { grid-template-columns: 1fr; gap: 1.75rem; }
  .db-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-header .main-navigation .menu-link { min-height: 44px; }
}
@media (max-width: 767px) {
  :root { --db-section-space: 3.5rem; --db-section-tight: 2.75rem; }
  .db-grid { grid-template-columns: 1fr; }
  .entry-content #other-work .wp-block-columns { gap: 2rem; }
  .entry-content #other-work .wp-block-column + .wp-block-column { padding-top: 1.5rem; border-top: 1px solid var(--db-line); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Homepage collection rows follow the approved mockup, using supplied place names. */
:is(.entry-content, .editor-styles-wrapper) .db-container > ul.db-collection-list { list-style: none; width: 100%; max-width: none; padding: 0; margin: 2rem 0 0; border-top: 1px solid var(--db-line); }
:is(.entry-content, .editor-styles-wrapper) .db-container > ul.db-collection-list > li { padding: 0; margin: 0; border-bottom: 1px solid var(--db-line); }
.ast-single-post .entry-content .db-collection-list a, .editor-styles-wrapper .db-collection-list a { display: grid; grid-template-columns: 5rem minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.25rem 0; color: var(--db-ink); text-decoration: none; }
.db-collection-index { color: var(--db-muted); font: 400 .72rem/1.55 var(--db-sans); }
.db-collection-name { font: 400 clamp(1.8rem, 3.4vw, 3.6rem)/1.55 var(--db-serif); transition: transform 200ms ease; }
.db-collection-arrow { font: 400 1.2rem/1.55 var(--db-sans); }
.db-collection-list a:is(:hover, :focus-visible) .db-collection-name { transform: translateX(.4rem); }
@media (max-width: 620px) { .ast-single-post .entry-content .db-collection-list a, .editor-styles-wrapper .db-collection-list a { grid-template-columns: 2.5rem minmax(0, 1fr) auto; } }
@media (prefers-reduced-motion: reduce) { .db-collection-list a:is(:hover, :focus-visible) .db-collection-name { transform: none; } }
@media (max-width: 620px) { :is(.entry-content, .editor-styles-wrapper) .db-hero h1.db-display { font-size: clamp(3.2rem, 17vw, 5.2rem); } }
