/*
Theme Name: Walker Family Archive
Theme URI: https://family.gareywalker.com
Author: Walker Family
Description: A restrained block theme for a modern historical family museum.
Version: 0.2.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: walker-family-archive
*/

:root { color-scheme: light; }
html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }
a { text-underline-offset: .22em; text-decoration-thickness: .055em; }
a:hover { text-decoration-thickness: .1em; }
:where(a, button, input, textarea, select, summary):focus-visible { outline: 3px solid #a28355; outline-offset: 4px; }
.wp-site-blocks { overflow: clip; }
.wp-block-post-content > p,
.wfa-reading-width { max-width: 68ch; }

/* Architectural header */
.wfa-site-header { border-bottom: 1px solid rgba(25,26,24,.16); position: relative; z-index: 20; }
.wfa-site-header__inner { min-height: 5.75rem; padding-block: 1rem; }
.wfa-site-header .wp-block-site-title { letter-spacing: .015em; }
.wfa-site-header .wp-block-site-title a,
.wfa-site-header .wp-block-navigation-item__content { text-decoration: none; }
.home .wfa-site-header { background: linear-gradient(180deg,rgba(25,26,24,.76),rgba(25,26,24,0)); border-bottom-color: rgba(244,240,232,.25); color: #f4f0e8; left: 0; position: absolute; right: 0; top: 0; }
.home.admin-bar .wfa-site-header { top: 32px; }
.home .wfa-site-header a { color: #f4f0e8; }

/* Shared curatorial language */
.wfa-kicker,
.wfa-label { font-family: var(--wp--preset--font-family--interface); font-size: clamp(.66rem,.62rem + .16vw,.76rem); font-weight: 650; letter-spacing: .18em; line-height: 1.45; text-transform: uppercase; }
.wfa-caption { border-top: 1px solid currentColor; font-family: var(--wp--preset--font-family--interface); font-size: .68rem; letter-spacing: .14em; line-height: 1.5; opacity: .78; padding-top: .85rem; text-transform: uppercase; }
.wfa-section { padding-block: clamp(5.5rem, 10vw, 10rem); }
.wfa-section-intro { margin-bottom: clamp(3.5rem, 7vw, 7rem); max-width: 68rem; }
.wfa-section h2 { font-size: clamp(3rem, 6vw, 6.7rem) !important; letter-spacing: -.035em; line-height: .9 !important; }
.wfa-text-link { font-family: var(--wp--preset--font-family--interface); font-size: .78rem; font-weight: 700; letter-spacing: .11em; margin-top: 2rem; text-transform: uppercase; }
.wfa-text-link a { color: inherit; text-decoration: none; }
.wfa-text-link a span { display: inline-block; margin-left: .45rem; transition: transform .2s ease; }
.wfa-text-link a:hover span,
.wfa-text-link a:focus-visible span { transform: translateX(.28rem); }
.wfa-dark { background: #191a18; color: #f4f0e8; }

/* Entrance gallery */
.wfa-hero { align-items: end; display: flex; min-height: clamp(760px, 90svh, 980px) !important; position: relative; }
.wfa-hero-placeholder { background: linear-gradient(110deg,#171916 0%,#2d352f 38%,#485548 68%,#242923 100%); }
.wfa-hero-placeholder::before { background: radial-gradient(ellipse at 78% 32%,rgba(244,240,232,.2),transparent 43%),linear-gradient(90deg,rgba(25,26,24,.35),transparent 58%); content: ""; inset: 0; position: absolute; }
.wfa-hero-placeholder::after { border: 1px solid rgba(244,240,232,.12); content: ""; inset: clamp(6.5rem,10vw,9rem) clamp(1.25rem,4vw,3rem) clamp(1.25rem,4vw,3rem); pointer-events: none; position: absolute; }
.wfa-hero > .wp-block-cover__inner-container { position: relative; z-index: 1; }
.wfa-hero__content { padding-bottom: clamp(2rem,5vw,4.5rem); padding-top: clamp(10rem,18vh,15rem); }
.wfa-hero__eyebrow { margin-bottom: clamp(1.5rem,3vw,3rem); }
.wfa-hero__title { font-size: clamp(4rem,8.4vw,8.75rem) !important; letter-spacing: -.05em; line-height: .82 !important; margin: 0; max-width: 13ch; text-transform: uppercase; }
.wfa-hero__subtitle { font-family: var(--wp--preset--font-family--editorial); font-size: clamp(1.35rem,2.2vw,2.35rem); font-style: italic; line-height: 1.25; margin: clamp(1.8rem,3vw,3rem) 0 0; max-width: 32ch; }
.wfa-hero__actions { align-items: center; gap: 1.75rem; margin-top: clamp(2.25rem,4vw,4rem); }
.wfa-hero__actions .wfa-text-link { margin: 0; }
.wfa-hero__caption { gap: 1rem 3rem; margin-top: clamp(2.5rem,5vw,5rem); }
.wfa-hero__caption p { margin: 0; }

/* Gallery wall introduction */
.wfa-introduction { padding-block: clamp(7rem,13vw,13rem); }
.wfa-introduction__columns { gap: clamp(3rem,9vw,10rem); }
.wfa-introduction__lead { font-family: var(--wp--preset--font-family--editorial); font-size: clamp(1.3rem,2vw,1.75rem) !important; line-height: 1.55; }

/* Family index */
.wfa-family-index { border-block: 1px solid rgba(25,26,24,.16); }
.wfa-family-index__heading { gap: clamp(2rem,8vw,8rem); margin-bottom: clamp(4rem,7vw,7rem); }
.wfa-family-index__list { gap: 0 clamp(3rem,8vw,9rem); }
.wfa-family-index__list p { border-top: 1px solid rgba(25,26,24,.3); margin: 0; }
.wfa-family-index__list a { align-items: baseline; color: #191a18; display: flex; font-family: var(--wp--preset--font-family--display); font-size: clamp(2.5rem,5vw,5.4rem); gap: 1.25rem; letter-spacing: -.035em; line-height: 1; padding: clamp(1.25rem,2.6vw,2.35rem) 0; text-decoration: none; }
.wfa-family-index__list a span { color: #673f3a; font-family: var(--wp--preset--font-family--interface); font-size: .7rem; font-weight: 700; letter-spacing: .16em; }
.wfa-family-index__list a::after { content: "↗"; font-family: var(--wp--preset--font-family--interface); font-size: .9rem; margin-left: auto; opacity: 0; transform: translate(-.4rem,.4rem); transition: opacity .2s ease,transform .2s ease; }
.wfa-family-index__list a:hover::after,
.wfa-family-index__list a:focus-visible::after { opacity: 1; transform: translate(0,0); }
.wfa-branch-grid .wp-block-post { border-top: 1px solid rgba(25,26,24,.25); padding-block: 2rem; }
.wfa-branch-grid .wp-block-post-title a { text-decoration: none; }

/* Featured editorial story */
.wfa-featured-story { padding-block: clamp(6rem,11vw,11rem); }
.wfa-featured-story__layout { gap: clamp(3rem,8vw,9rem); }
.wfa-featured-story h2 a,
.wfa-featured-story .wfa-text-link a { color: #f4f0e8; }
.wfa-photo-field { background: linear-gradient(145deg,#313631,#20221f); border: 1px solid rgba(244,240,232,.16); box-sizing: border-box; min-height: clamp(34rem,65vw,50rem); padding: clamp(1.25rem,3vw,2.5rem); position: relative; }
.wfa-photo-field::before { border: 1px solid rgba(244,240,232,.1); content: ""; inset: 12%; position: absolute; }
.wfa-photo-field::after { background: radial-gradient(circle,rgba(244,240,232,.16) 0 1px,transparent 1.5px); background-size: 14px 14px; content: ""; inset: 12%; opacity: .28; position: absolute; }
.wfa-photo-field > * { position: relative; z-index: 1; }
.wfa-photo-field .wfa-caption { margin-top: auto; }

/* Historical chronology */
.wfa-generations { overflow: hidden; }
.wfa-timeline { gap: 0; position: relative; }
.wfa-timeline::before { background: #a28355; content: ""; height: 1px; left: 0; position: absolute; right: 0; top: 5.1rem; }
.wfa-timeline-entry { padding: 0 clamp(2rem,5vw,5rem) 0 0; position: relative; }
.wfa-timeline-entry::before { background: #f4f0e8; border: 1px solid #a28355; border-radius: 50%; content: ""; height: .78rem; left: 0; position: absolute; top: 4.72rem; width: .78rem; }
.wfa-timeline-entry:nth-child(2) { padding-left: clamp(2rem,5vw,5rem); }
.wfa-timeline-entry:nth-child(2)::before { left: clamp(2rem,5vw,5rem); }
.wfa-timeline-date { font-family: var(--wp--preset--font-family--display); font-size: clamp(2.5rem,5vw,5rem); line-height: .9; margin: 0 0 4.4rem; }
.wfa-timeline-entry h3 { font-size: clamp(1.7rem,2.7vw,2.5rem); max-width: 18ch; }

/* Object table */
.wfa-objects__heading { gap: clamp(2rem,8vw,8rem); margin-bottom: clamp(4rem,7vw,7rem); }
.wfa-object-index,
.wfa-archive-grid .wp-block-post-template { gap: clamp(2rem,4vw,4rem); }
.wfa-object { background: transparent; padding: 0; }
.wfa-object__stage { align-items: center; background: #d8d0c3; display: flex; justify-content: center; margin-bottom: 1.75rem; min-height: clamp(20rem,34vw,34rem); overflow: hidden; padding: clamp(2rem,5vw,5rem); position: relative; }
.wfa-object__stage::before { background: radial-gradient(ellipse at center,rgba(25,26,24,.11),transparent 58%); content: ""; inset: 20%; position: absolute; }
.wfa-object__stage .wp-block-post-featured-image { background: transparent; margin: 0; position: relative; width: 100%; z-index: 1; }
.wfa-object__stage img { height: auto !important; max-height: 32rem; object-fit: contain !important; width: 100%; }
.wfa-object__mark { color: rgba(25,26,24,.36); font-family: var(--wp--preset--font-family--display); font-size: clamp(6rem,14vw,13rem); line-height: 1; margin: 0; position: relative; }
.wfa-object > .wfa-kicker { border-top: 1px solid rgba(25,26,24,.3); margin-top: 0; padding-top: 1rem; }
.wfa-object h3 { margin-bottom: .7rem; }

/* Geographic field */
.wfa-places { padding-block: clamp(6rem,11vw,11rem); }
.wfa-places__layout { gap: clamp(3rem,8vw,9rem); }
.wfa-places .wfa-text-link a { color: #f4f0e8; }
.wfa-map-field { background-color: #3c483e; background-image: linear-gradient(rgba(244,240,232,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(244,240,232,.08) 1px,transparent 1px); background-size: 12.5% 12.5%; border: 1px solid rgba(244,240,232,.18); box-sizing: border-box; min-height: clamp(30rem,48vw,44rem); padding: clamp(1.5rem,3vw,3rem); position: relative; }
.wfa-map-field::before,
.wfa-map-field::after { background: #a28355; content: ""; left: 64%; position: absolute; top: 38%; }
.wfa-map-field::before { height: 1px; transform: translateX(-50%); width: 3rem; }
.wfa-map-field::after { height: 3rem; transform: translateY(-50%); width: 1px; }
.wfa-map-field__label { margin-top: auto; max-width: 28rem; }

/* Research finding aids */
.wfa-research-desk__heading { gap: clamp(2rem,8vw,8rem); margin-bottom: clamp(4rem,7vw,7rem); }
.wfa-finding-aids .wp-block-post-template { gap: clamp(2rem,6vw,6rem); }
.wfa-finding-aid { border-block: 1px solid rgba(25,26,24,.3); padding: 1.25rem 0 clamp(2rem,4vw,4rem); position: relative; }
.wfa-finding-aid::before { background: #a28355; content: ""; height: .3rem; left: 0; position: absolute; top: -1px; width: 3rem; }
.wfa-finding-aid__meta { gap: 1rem; margin-bottom: clamp(2rem,4vw,4rem); }
.wfa-finding-aid h3 { font-size: clamp(2rem,3.7vw,3.8rem); max-width: 18ch; }

/* Genealogy transition and contribution */
.wfa-family-tree { position: relative; }
.wfa-family-tree::before { background-image: linear-gradient(90deg,transparent 49.8%,rgba(103,63,58,.26) 50%,transparent 50.2%); content: ""; inset: 0 0 0 54%; opacity: .75; position: absolute; }
.wfa-family-tree::after { border: 1px solid rgba(103,63,58,.26); border-width: 1px 1px 0 0; content: ""; height: 26%; position: absolute; right: 12%; top: 37%; width: 34%; }
.wfa-family-tree__inner { margin-left: max(0px,calc((100% - 1320px)/2)); max-width: 46rem; position: relative; z-index: 1; }
.wfa-contribute { padding-block: clamp(7rem,13vw,13rem); }
.wfa-contribute__layout { border-top: 1px solid rgba(25,26,24,.3); gap: clamp(3rem,9vw,10rem); padding-top: clamp(2.5rem,5vw,5rem); }
.wfa-contribute__invitation { font-family: var(--wp--preset--font-family--editorial); font-size: clamp(1.2rem,2vw,1.65rem); }

/* Curatorial metadata and long-form records */
.wfa-evidence { align-items: baseline; border-block: 1px solid rgba(25,26,24,.28); display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-block: 2.5rem; padding-block: 1rem; }
.wfa-evidence__label,
.wfa-evidence__badge { font-family: var(--wp--preset--font-family--interface); font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.wfa-evidence__badge { border-left: 3px solid #673f3a; color: #673f3a; padding: .25rem 0 .25rem .7rem; }
.wfa-evidence__description { flex: 1 1 22rem; font-size: .9rem; }
.wfa-details { display: grid; gap: 0; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); margin-block: 2.5rem; }
.wfa-details div { border-top: 1px solid rgba(25,26,24,.25); padding: 1rem 1rem 1rem 0; }
.wfa-details dt { font-family: var(--wp--preset--font-family--interface); font-size: .68rem; font-weight: 700; letter-spacing: .14em; margin-bottom: .35rem; text-transform: uppercase; }
.wfa-details dd { margin: 0; }
.wfa-evidence-guide { background: rgba(25,26,24,.18); display: grid; gap: 1px; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); }
.wfa-evidence-guide section { background: #f4f0e8; padding: 1.5rem; }
.wfa-related { border-top: 1px solid rgba(25,26,24,.25); margin-block: 3rem; padding-top: 2rem; }
.wfa-related ul { columns: 2; padding-left: 1.1rem; }
.wfa-archive-grid .wp-block-post { display: flex; flex-direction: column; }
.wfa-archive-grid > .wp-block-post-template > .wp-block-post { border-top: 1px solid rgba(25,26,24,.25); padding-top: 1.5rem; }
.wfa-person-hero .wp-block-post-featured-image img { height: auto; max-height: 78vh; object-fit: contain; object-position: left bottom; }
.wfa-document-hero .wp-block-post-featured-image { background: #e6ded0; padding: clamp(1rem,4vw,3rem); }
.wfa-document-hero .wp-block-post-featured-image img { height: auto; max-height: 82vh; object-fit: contain; width: 100%; }
.wfa-admin-note { border: 1px dashed #a28355; font-size: .9rem; padding: 1rem; }

/* Institutional footer */
.wfa-site-footer { padding-block: clamp(5rem,9vw,9rem) 2rem; }
.wfa-site-footer a { color: inherit; }
.wfa-site-footer__main { gap: clamp(3rem,10vw,10rem); }
.wfa-site-footer__mission { max-width: 37rem; }
.wfa-site-footer .wp-block-navigation { margin-top: 1.5rem; }
.wfa-site-footer .wp-block-separator { margin-block: clamp(3rem,6vw,6rem) 1.5rem; opacity: .5; }
.wfa-site-footer__base { opacity: .72; }

@media (max-width: 900px) {
  .wfa-site-header__inner { min-height: 4.75rem; }
  .wfa-hero { min-height: 84svh !important; }
  .wfa-family-index__list { grid-template-columns: 1fr 1fr; }
  .wfa-section h2 { font-size: clamp(3rem,8vw,5rem) !important; }
  .wfa-photo-field { min-height: 38rem; }
  .wfa-object-index { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 781px) {
  html { scroll-behavior: auto; }
  .home.admin-bar .wfa-site-header { top: 46px; }
  .wfa-site-header__inner { padding-block: .75rem; }
  .wfa-site-header .wp-block-site-title { font-size: 1.1rem !important; max-width: calc(100% - 3.5rem); }
  .wp-block-navigation__responsive-container.is-menu-open { background: #191a18 !important; color: #f4f0e8 !important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; padding: 5.5rem 1.5rem 2rem; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; width: 100%; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { border-top: 1px solid rgba(244,240,232,.22); font-family: var(--wp--preset--font-family--display); font-size: clamp(2rem,10vw,3.4rem); padding-block: .65rem; width: 100%; }
  .wp-block-navigation__responsive-container-close { right: 1.5rem; top: 1.5rem; }
  .wfa-section { padding-block: clamp(4.75rem,18vw,7rem); }
  .wfa-section h2 { font-size: clamp(2.8rem,14vw,4.5rem) !important; }
  .wfa-hero { min-height: 780px !important; }
  .wfa-hero-placeholder::after { inset: 7.5rem 1rem 1rem; }
  .wfa-hero__content { padding: 9rem 0 1.5rem; }
  .wfa-hero__title { font-size: clamp(3.4rem,18vw,5.4rem) !important; line-height: .8 !important; }
  .wfa-hero__subtitle { font-size: 1.25rem; }
  .wfa-hero__actions { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .wfa-hero__caption { align-items: flex-start; flex-direction: column; }
  .wfa-introduction__columns,
  .wfa-family-index__heading,
  .wfa-featured-story__layout,
  .wfa-objects__heading,
  .wfa-places__layout,
  .wfa-research-desk__heading,
  .wfa-contribute__layout { gap: 2.5rem; }
  .wfa-family-index__list { grid-template-columns: 1fr; }
  .wfa-family-index__list a { font-size: clamp(2.3rem,13vw,3.7rem); }
  .wfa-photo-field { min-height: 32rem; }
  .wfa-featured-story__layout { flex-direction: column; }
  .wfa-timeline { display: block !important; padding-left: 1.5rem; }
  .wfa-timeline::before { bottom: 0; height: auto; left: 0; right: auto; top: 0; width: 1px; }
  .wfa-timeline-entry,
  .wfa-timeline-entry:nth-child(2) { padding: 0 0 4rem 1.5rem; }
  .wfa-timeline-entry::before,
  .wfa-timeline-entry:nth-child(2)::before { left: -.4rem; top: .35rem; }
  .wfa-timeline-date { font-size: 2.7rem; margin-bottom: 1.5rem; }
  .wfa-object-index { display: block !important; }
  .wfa-object { margin-bottom: 3.5rem; }
  .wfa-object__stage { min-height: 24rem; }
  .wfa-map-field { min-height: 28rem; }
  .wfa-family-tree::before { left: 78%; }
  .wfa-family-tree::after { right: 3%; width: 20%; }
  .wfa-related ul { columns: 1; }
  .wfa-site-footer .wp-block-navigation__container { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
