/* Shared visual language: paper, ink and forest green. */
:root {
  --bg:#f7f5ef;
  --card:#fffefa;
  --panel:#fffefa;
  --text:#242e28;
  --muted:#626d63;
  --accent:#28543d;
  --accent-weak:#e9eee4;
  --border:#dce0d4;
  --line:var(--border);
  --paper:#edece1;
  --art:#e9ebdf;
  --shadow:0 10px 35px #213d2810;
  --ring:0 0 0 3px #75937b55;
  --radius:12px;
  --accent-green:#28543d;
  --accent-pink:#795b35;
  color-scheme:light
}
:root[data-theme=dark] {
  --bg:#17231d;
  --card:#203027;
  --panel:#203027;
  --text:#f1f0e6;
  --muted:#bdc9ba;
  --accent:#bad4ab;
  --accent-weak:#334738;
  --border:#435347;
  --paper:#27392c;
  --art:#293b2d;
  --accent-green:#bad4ab;
  --accent-pink:#dcc49c;
  color-scheme:dark
}
* {
  box-sizing:border-box
}
html {
  scrollbar-gutter:stable;
  scroll-behavior:smooth;
  scroll-padding-top:110px
}
html.fs-md {
  font-size:16px
}
html.fs-lg {
  font-size:18px
}
body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'Segoe UI',Arial,sans-serif;
  line-height:1.6
}
button,input,textarea,select {
  font:inherit
}
button,a,input,textarea,summary {
  touch-action:manipulation
}
button,a {
  -webkit-tap-highlight-color:transparent
}
a {
  color:var(--accent);
  text-decoration:none
}
a:hover {
  text-decoration:underline
}
button {
  cursor:pointer
}
svg {
  flex-shrink:0;
  vertical-align:middle
}
img {
  max-width:100%;
  height:auto
}
h1,h2,h3,h4,p {
  margin-top:0
}
h1,h2 {
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  letter-spacing:-.045em;
  line-height:1.12
}
h2 {
  font-size:clamp(2rem,3.2vw,2.9rem)
}
h3 {
  font-size:1.08rem;
  line-height:1.4
}
h4 {
  font-size:1rem;
  line-height:1.45
}
em {
  color:var(--accent);
  font-weight:400
}
h1 em,h2 em {
  font-family:Georgia,'Times New Roman',serif
}
p {
  margin-bottom:1rem
}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:4px
}
input:focus-visible,textarea:focus-visible {
  outline-offset:1px;
  box-shadow:var(--ring)
}
[hidden] {
  display:none!important
}
.wrap {
  width:min(1220px,100% - 96px);
  margin-inline:auto
}
.main-content {
  min-height:65vh;
  padding-block:44px 0
}
.main-content:focus {
  outline:none
}
.muted {
  color:var(--muted)
}
.small {
  font-size:.9rem
}
.tiny {
  font-size:.79rem
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap
}
.skip-link {
  position:fixed;
  top:12px;
  left:12px;
  transform:translateY(-180%);
  padding:10px 20px;
  background:var(--card);
  z-index:100
}
.skip-link:focus {
  transform:translateY(0)
}
.site-header {
  position:sticky;
  top:0;
  z-index:30;
  background:var(--bg);
  border-bottom:1px solid var(--border)
}
.header-row {
  min-height:96px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px
}
.site-header .header-row {
  width:min(1420px,100% - 96px);
  min-height:80px
}
.site-nav .plan-count {
  width:28px;
  flex:0 0 28px;
  font-variant-numeric:tabular-nums
}
@media(max-width:980px) {
  .site-header .header-row { width:calc(100% - 48px) }
}
@media(max-width:760px) {
  .site-header .header-row { width:calc(100% - 40px); min-height:76px }
}
.brand {
  display:flex;
  align-items:center;
  gap:11px;
  color:var(--text);
  font:600 1.4rem Georgia,serif;
  letter-spacing:-.055em;
  white-space:nowrap
}
.brand:hover {
  text-decoration:none
}
.brand-mark {
  display:grid;
  place-items:center;
  width:45px;
  height:49px;
  border:1px solid var(--accent);
  border-radius:24px 24px 4px 4px;
  color:var(--accent)
}
.brand-accent {
  color:var(--accent)
}
.brand small {
  display:block;
  font:500 .49rem 'Segoe UI',Arial,sans-serif;
  letter-spacing:.13em;
  margin-top:7px
}
.site-nav {
  display:flex;
  align-items:center;
  gap:25px;
  font-size:.84rem;
  font-weight:500
}
.site-nav>a {
  color:var(--muted);
  white-space:nowrap
}
.site-nav>a[aria-current=page] {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:7px
}
.site-nav .nav-cta {
  border:1px solid var(--accent);
  padding:10px 16px;
  color:var(--accent);
  display:flex;
  align-items:center;
  gap:16px;
  border-radius:5px
}
.ui-tools {
  display:flex;
  align-items:center;
  gap:2px;
  border-left:1px solid var(--border);
  padding-left:12px
}
.icon-button {
  border:0;
  background:transparent;
  color:var(--text);
  min-width:36px;
  min-height:40px;
  padding:7px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:1px
}
.smaller {
  font-size:.65em
}
.language-link {
  padding:10px 7px;
  min-height:40px;
  font-size:.73rem;
  color:var(--text)
}
.burger {
  display:none
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  border:1px solid var(--border);
  padding:12px 20px;
  min-height:46px;
  border-radius:5px;
  background:var(--card);
  color:var(--accent);
  font-size:.9rem;
  font-weight:600;
  line-height:1.4;
  text-decoration:none;
  transition:background .18s,transform .18s
}
.btn:hover {
  background:var(--accent-weak);
  text-decoration:none;
  transform:translateY(-1px)
}
.btn.primary {
  background:var(--accent);
  border-color:var(--accent);
  color:var(--bg)
}
.btn.primary:hover {
  filter:brightness(1.12)
}
.btn.small {
  font-size:.8rem;
  min-height:40px;
  padding:9px 14px
}
.btn.ghost {
  background:transparent
}
.btn:disabled {
  opacity:.7;
  cursor:wait;
  transform:none
}
.text-button {
  border:0;
  padding:4px 0;
  background:transparent;
  color:var(--muted);
  font-size:inherit;
  text-decoration:underline;
  text-underline-offset:3px
}
.eyebrow {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:.65rem;
  letter-spacing:.17em;
  font-weight:650;
  color:var(--accent);
  margin-bottom:22px;
  line-height:1.5
}
.eyebrow-line {
  width:26px;
  height:1px;
  background:var(--accent)
}
.hero {
  display:grid;
  grid-template-columns:1.13fr 1fr;
  gap:65px;
  align-items:center;
  padding:25px 0 58px
}
.hero h1 {
  font-size:clamp(3.3rem,5.15vw,4.7rem);
  margin-bottom:25px
}
.hero-description {
  color:var(--muted);
  max-width:440px;
  font-size:.98rem;
  line-height:1.85;
  margin-bottom:28px
}
.hero-search label {
  font-size:.82rem;
  display:block;
  font-weight:600;
  margin-bottom:9px
}
.search-input-row {
  display:flex;
  align-items:center;
  gap:12px;
  padding:7px 7px 7px 17px;
  border:1px solid #b9c5b4;
  border-radius:7px;
  background:var(--card);
  box-shadow:0 3px 12px #25443108
}
.search-input-row>svg {
  color:var(--muted)
}
.search-input-row input {
  width:100%;
  min-width:0;
  border:0;
  background:transparent;
  padding:10px 0;
  font-size:.86rem;
  color:var(--text)
}
.search-input-row .btn {
  flex-shrink:0
}
.search-input-row input:focus-visible {
  outline-offset:3px;
  box-shadow:none
}
.search-hint {
  font-size:.72rem;
  line-height:1.7;
  color:var(--muted);
  margin:10px 0 0;
  max-width:435px
}
#search-status:empty {
  display:none
}
#search-status {
  margin:7px 0 0
}
.hero-assurances {
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  font-size:.69rem;
  color:var(--muted);
  margin-top:21px
}
.hero-assurances span {
  display:flex;
  align-items:center;
  gap:6px
}
.hero-assurances svg {
  color:var(--accent)
}
.heritage-art {
  background:var(--art);
  border-radius:160px 160px 10px 10px;
  min-height:465px;
  padding:45px 30px 21px;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:1px solid var(--border)
}
.heritage-art:before {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background-image:radial-gradient(#6b7d671e .8px,transparent .8px);
  background-size:8px 8px;
  opacity:.7
}
.art-topline {
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:var(--accent);
  font-size:.57rem;
  letter-spacing:.15em;
  margin:6px 28px 43px
}
.art-topline>span:first-child {
  display:flex;
  align-items:center;
  gap:8px
}
.tree-ancestors {
  display:flex;
  justify-content:center;
  gap:35px
}
.ancestor-card {
  position:relative;
  width:142px;
  background:var(--card);
  border:1px solid #cbd2bf;
  box-shadow:0 8px 20px #4552390b;
  border-radius:5px;
  text-align:center;
  padding:16px 8px 12px;
  display:flex;
  align-items:center;
  flex-direction:column
}
.person-monogram {
  display:grid;
  place-items:center;
  width:39px;
  height:43px;
  background:var(--paper);
  border-radius:22px 22px 5px 5px;
  color:var(--accent);
  font:1.03rem Georgia,serif;
  margin-bottom:10px
}
.ancestor-card strong {
  font:400 .88rem Georgia,serif
}
.ancestor-card small {
  font-size:.63rem;
  color:var(--muted);
  margin-top:5px
}
.person-place {
  font-size:.58rem;
  letter-spacing:.09em;
  color:var(--muted);
  margin-top:5px
}
.tree-branch {
  position:relative;
  width:178px;
  height:27px;
  border:1px solid #83947a;
  border-top:0;
  margin:auto
}
.tree-branch:after {
  content:'';
  position:absolute;
  top:26px;
  left:50%;
  width:1px;
  height:24px;
  background:#83947a
}
.ancestor-card.descendant {
  width:262px;
  flex-direction:row;
  gap:12px;
  margin:23px auto 0;
  padding:16px 13px;
  text-align:left
}
.descendant .person-monogram {
  margin:0;
  flex-shrink:0
}
.descendant strong {
  font-size:.92rem;
  display:block
}
.descendant small {
  display:block
}
.record-stamp {
  color:var(--accent);
  margin-left:auto
}
.tree-stem {
  height:27px;
  width:1px;
  background:repeating-linear-gradient(to bottom,#83947a 0 4px,transparent 4px 8px);
  margin:auto
}
.generation-note {
  display:block;
  font:italic .81rem Georgia,serif;
  color:var(--accent);
  text-align:center
}
.art-bottomline {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  border-top:1px solid #bec7b3;
  padding-top:15px;
  margin-top:28px;
  color:var(--muted);
  font:italic .69rem Georgia,serif
}
.art-bottomline small {
  font:500 .51rem 'Segoe UI',sans-serif;
  text-transform:uppercase;
  letter-spacing:.07em
}
.source-strip {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:28px 0;
  border-block:1px solid var(--border)
}
.source-strip>span {
  font-size:.56rem;
  letter-spacing:.13em;
  max-width:135px;
  color:var(--muted)
}
.source-strip>div {
  display:flex;
  align-items:center;
  gap:30px;
  font:1.1rem Georgia,serif;
  color:var(--muted)
}
.source-strip>a {
  display:flex;
  gap:9px;
  align-items:center;
  font-size:.74rem;
  white-space:nowrap
}
.getting-started {
  padding:70px 0
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:40px;
  margin-bottom:30px
}
.section-heading h2 {
  margin-bottom:0
}
.section-heading>p {
  font-size:.88rem;
  max-width:295px;
  color:var(--muted);
  margin-bottom:4px;
  line-height:1.8
}
.section-heading .eyebrow {
  margin-bottom:15px
}
.steps-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
  margin-top:37px
}
.steps-grid article {
  position:relative;
  border-top:1px solid var(--border);
  padding:28px 23px 0 0
}
.steps-grid article>svg {
  color:var(--accent);
  margin-bottom:22px
}
.step-number {
  position:absolute;
  top:22px;
  right:10px;
  font:2rem Georgia,serif;
  color:#9ba891
}
.steps-grid h3 {
  font-size:1rem;
  margin-bottom:10px
}
.steps-grid p {
  color:var(--muted);
  font-size:.84rem;
  line-height:1.85;
  max-width:320px;
  margin:0
}
.research-offer {
  display:grid;
  grid-template-columns:1.4fr 1fr;
  background:#244b37;
  color:#f5f2e6;
  border-radius:9px;
  padding:46px 53px;
  gap:66px;
  position:relative
}
.research-offer .eyebrow {
  color:#c1d0b6;
  font-size:.58rem
}
.research-offer h2 {
  font-size:clamp(2.1rem,3.2vw,2.9rem);
  margin-bottom:21px
}
.research-offer em {
  color:#d6dcb4
}
.offer-copy>p {
  max-width:390px;
  font-size:.86rem;
  line-height:1.85;
  color:#d7dfd2
}
.offer-details {
  font-size:.77rem;
  color:#e4e7d8;
  display:inline-flex;
  align-items:center;
  gap:14px;
  text-decoration:underline;
  text-underline-offset:4px
}
.offer-order {
  border-left:1px solid #ffffff2e;
  padding-left:48px;
  display:flex;
  flex-direction:column;
  justify-content:center
}
.offer-label {
  font-size:.6rem;
  letter-spacing:.15em;
  color:#d4ddc8
}
.offer-price {
  font:3.5rem Georgia,serif;
  letter-spacing:-.07em;
  margin:12px 0 17px
}
.offer-price>span {
  font-size:1.75rem;
  letter-spacing:0
}
.offer-price small {
  font:.78rem 'Segoe UI',sans-serif;
  letter-spacing:0;
  color:#d4ddc8;
  margin-left:17px
}
.offer-order ul {
  list-style:none;
  padding:0;
  margin:0 0 24px
}
.offer-order li {
  font-size:.77rem;
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:8px
}
.btn.cream {
  background:#efeddf;
  color:#244b37;
  border-color:#efeddf;
  justify-content:space-between
}
.btn.cream:hover {
  background:#fffdf2
}
.payment-note {
  font-size:.63rem;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  color:#d4ddc8;
  margin-top:12px
}
.home-faq {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:70px;
  padding:78px 0 88px
}
.home-faq h2 {
  font-size:2.5rem
}
.faq-list details {
  border-bottom:1px solid var(--border)
}
.faq-list summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  font-weight:600;
  font-size:.9rem;
  cursor:pointer;
  padding:19px 0;
  list-style:none
}
.faq-list details:first-child summary {
  padding-top:0
}
.faq-list details p {
  font-size:.87rem;
  color:var(--muted);
  line-height:1.8;
  max-width:520px
}
summary::-webkit-details-marker {
  display:none
}
details[open]>summary>svg:last-child {
  transform:rotate(180deg)
}
.site-footer {
  border-top:1px solid var(--border);
  background:var(--paper)
}
.footer-top {
  padding-block:33px 26px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px
}
.footer-brand {
  font:1.15rem Georgia,serif;
  display:inline-flex;
  align-items:center;
  gap:9px
}
.footer-top p {
  font-size:.72rem;
  color:var(--muted);
  margin:10px 0 0
}
.footer-nav {
  display:flex;
  gap:28px;
  font-size:.78rem
}
.footer-bottom {
  border-top:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding-block:19px;
  color:var(--muted);
  font-size:.68rem
}
.footer-bottom>div {
  display:flex;
  gap:22px;
  flex-wrap:wrap
}
.footer-bottom a {
  color:var(--muted)
}
.footer-bottom small {
  font-size:inherit
}
.panel,.box,.card {
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:28px
}
.panel>h2:first-child {
  font-size:2.1rem
}
.flash {
  background:var(--accent-weak);
  border:1px solid var(--border);
  border-left:3px solid var(--accent);
  padding:15px 20px;
  margin:0 0 24px;
  border-radius:5px
}
.tag {
  font:500 .68rem 'Segoe UI',sans-serif;
  display:inline-block;
  background:var(--accent-weak);
  color:var(--accent);
  border:1px solid var(--border);
  border-radius:30px;
  padding:5px 10px;
  vertical-align:middle;
  letter-spacing:0
}
.page-intro {
  margin:4px 0 30px
}
.page-intro h1 {
  font-size:clamp(2.3rem,4vw,3.6rem);
  margin-bottom:16px
}
.page-intro>p {
  color:var(--muted);
  max-width:660px
}
.lead-form {
  display:grid;
  gap:10px;
  width:100%
}
label {
  font-size:.88rem;
  font-weight:600
}
input[type=text],input[type=email],input[type=search],input[type=number],input[type=date],textarea,select {
  background:var(--card);
  color:var(--text);
  border:1px solid var(--border);
  border-radius:5px;
  padding:12px 14px;
  max-width:100%
}
textarea {
  resize:vertical;
  width:100%;
  min-height:100px
}
input::placeholder,textarea::placeholder {
  color:var(--muted);
  opacity:.85
}
input[type=checkbox] {
  accent-color:var(--accent);
  width:17px;
  height:17px;
  vertical-align:middle
}
fieldset {
  min-width:0;
  border:1px solid var(--border);
  border-radius:6px;
  padding:18px
}
.lead-form>.btn {
  margin-top:8px
}
.lead-form input {
  width:100%
}
.lead-form input[type=checkbox] {
  width:17px
}
.search-form {
  display:flex;
  flex-wrap:wrap;
  gap:10px
}
.search-form input {
  flex:1;
  min-width:180px
}
.main-content>.panel:last-child,.main-content>section:last-child:not(.home-faq) {
  margin-bottom:55px
}
.main-content>.panel p,.main-content>.panel li {
  overflow-wrap:anywhere
}
.step-label {
  font-size:.72rem;
  color:var(--accent);
  letter-spacing:.12em;
  text-transform:uppercase
}
.results-section {
  padding:50px 0 0;
  scroll-margin-top:20px
}
.results-section .section-heading h2 {
  font-size:2.1rem;
  overflow-wrap:anywhere
}
.results-section .section-heading p {
  margin:16px 0 0;
  max-width:780px;
  font-size:.87rem
}
.source-tools {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:20px
}
.source-tools h3 {
  margin:0
}
.filter-label {
  display:flex;
  gap:9px;
  align-items:center;
  color:var(--muted)
}
.filter-label input {
  max-width:220px;
  font-size:.8rem
}
.source-group {
  border-top:1px solid var(--border)
}
.source-group summary {
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  padding:18px 0;
  font-size:.9rem;
  font-weight:600
}
.source-count {
  display:flex;
  gap:13px;
  align-items:center;
  color:var(--muted);
  font-size:.76rem
}
.source-group ul {
  list-style:none;
  padding:0;
  margin:0 0 18px
}
.link-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:13px 17px;
  border-radius:5px;
  background:var(--bg);
  margin-bottom:6px
}
.link-row>div {
  min-width:0
}
.link-row strong {
  font-size:.87rem
}
.link-row p {
  margin:3px 0 0
}
.link-row>a {
  flex-shrink:0
}
.source-link.visited {
  border-color:var(--accent);
  background:var(--accent-weak)
}
.polona-section {
  margin-top:35px
}
.polona-section h3 {
  margin-bottom:7px
}
.polona-section .section-heading {
  margin-bottom:15px
}
.result-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px
}
.result-card {
  border:1px solid var(--border);
  background:var(--card);
  border-radius:8px;
  overflow:hidden;
  min-width:0
}
.result-card>a>img,.result-placeholder {
  width:100%;
  height:160px;
  object-fit:contain;
  background:var(--paper)
}
.result-placeholder {
  display:grid;
  place-items:center;
  color:var(--muted)
}
.result-card>div:not(.result-placeholder) {
  padding:15px
}
.result-card h4 {
  margin-bottom:9px;
  overflow-wrap:anywhere
}
.result-card p {
  margin:0
}
.empty-state {
  display:flex;
  align-items:center;
  gap:18px;
  background:var(--paper);
  border-radius:8px;
  padding:22px;
  color:var(--muted);
  font-size:.86rem
}
.empty-state p {
  margin:0
}
.pager {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:20px;
  margin:24px 0
}
.map-details {
  margin-top:28px;
  padding:22px
}
.map-details summary {
  display:flex;
  align-items:center;
  gap:16px;
  cursor:pointer;
  list-style:none
}
.map-details summary>span {
  flex:1;
  font-weight:600
}
.map-details small {
  display:block;
  color:var(--muted);
  font-size:.78rem;
  font-weight:400;
  margin-top:5px
}
#irp-map {
  height:450px;
  margin-top:22px;
  border-radius:8px;
  overflow:hidden
}
#irp-map:empty {
  background:var(--paper)
}
.hero-with-results {
  padding-bottom:40px
}
.cookie-banner {
  position:fixed;
  z-index:60;
  bottom:20px;
  left:20px;
  width:min(430px,calc(100% - 40px));
  background:var(--card);
  border:1px solid var(--border);
  border-radius:10px;
  box-shadow:0 8px 50px #12251b30;
  padding:20px
}
.cookie-copy h2 {
  font:600 .92rem 'Segoe UI',sans-serif;
  letter-spacing:0;
  margin-bottom:9px
}
.cookie-copy p {
  font-size:.74rem;
  line-height:1.7;
  color:var(--muted);
  margin-bottom:15px
}
.cookie-copy a {
  text-decoration:underline
}
.cookie-actions {
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap
}
.cookie-actions .text-button {
  font-size:.69rem
}
.cookie-actions .btn {
  font-size:.71rem;
  min-height:38px;
  padding:9px 12px
}
.cookie-settings {
  display:grid;
  gap:9px;
  padding:12px 0 18px
}
.cookie-settings label {
  font-size:.77rem;
  display:flex;
  align-items:center;
  gap:8px
}
@media(min-width:1500px) {
  .hero {
    gap:90px
  }
  .hero h1 {
    font-size:4.8rem
  }
}
@media(max-width:1150px) {
  .wrap {
    width:calc(100% - 64px)
  }
  .site-nav {
    gap:15px
  }
  .ui-tools {
    padding-left:7px
  }
  .site-nav .nav-cta {
    padding:9px 11px;
    gap:8px
  }
  .hero {
    gap:35px
  }
  .heritage-art {
    padding-inline:20px
  }
  .source-strip>div {
    gap:20px;
    font-size:.98rem
  }
  .research-offer {
    gap:35px;
    padding:40px
  }
  .offer-order {
    padding-left:30px
  }
}
@media(max-width:980px) {
  .header-row {
    min-height:82px
  }
  .burger {
    display:flex;
    position:relative;
    width:42px;
    height:44px
  }
  .burger span {
    position:absolute;
    height:1.5px;
    width:22px;
    background:var(--text);
    left:10px;
    top:21px;
    transition:transform .18s,opacity .18s
  }
  .burger span:first-child {
    transform:translateY(-6px)
  }
  .burger span:last-child {
    transform:translateY(6px)
  }
  .burger[aria-expanded=true] span:first-child {
    transform:rotate(45deg)
  }
  .burger[aria-expanded=true] span:nth-child(2) {
    opacity:0
  }
  .burger[aria-expanded=true] span:last-child {
    transform:rotate(-45deg)
  }
  .site-nav {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    flex-direction:column;
    align-items:stretch;
    padding:20px 32px 28px;
    border-bottom:1px solid var(--border);
    background:var(--bg);
    box-shadow:0 15px 25px #20352416;
    max-height:calc(100dvh - 82px);
    overflow:auto;
    gap:5px
  }
  .site-nav.open {
    display:flex
  }
  .site-nav>a {
    padding:12px 0
  }
  .site-nav .nav-cta {
    margin:7px 0;
    justify-content:space-between;
    padding:14px
  }
  .ui-tools {
    border-left:0;
    border-top:1px solid var(--border);
    padding:10px 0 0;
    gap:12px
  }
  .hero h1 {
    font-size:3.4rem
  }
  .hero {
    gap:27px;
    grid-template-columns:1.1fr 1fr
  }
  .heritage-art {
    min-height:440px;
    padding-inline:14px
  }
  .art-topline {
    margin-inline:17px
  }
  .tree-ancestors {
    gap:17px
  }
  .ancestor-card {
    width:126px
  }
  .tree-branch {
    width:143px
  }
  .search-input-row {
    gap:9px;
    padding-left:12px
  }
  .search-input-row>svg {
    display:none
  }
  .search-input-row input {
    font-size:.8rem
  }
  .search-input-row .btn {
    padding:12px 14px
  }
  .source-strip {
    flex-wrap:wrap;
    gap:16px
  }
  .source-strip>span {
    max-width:none
  }
  .source-strip>div {
    order:3;
    width:100%;
    justify-content:space-between
  }
  .home-faq {
    gap:38px
  }
  .result-grid {
    grid-template-columns:repeat(3,1fr)
  }
}
@media(max-width:720px) {
  .wrap {
    width:calc(100% - 40px)
  }
  .header-row {
    min-height:76px
  }
  .brand {
    font-size:1.3rem
  }
  .brand small {
    font-size:.46rem
  }
  .brand-mark {
    width:39px;
    height:44px
  }
  .main-content {
    padding-top:24px
  }
  .hero {
    grid-template-columns:1fr;
    padding:15px 0 33px;
    gap:34px
  }
  .hero h1 {
    font-size:clamp(3.05rem,10vw,4.3rem);
    margin-bottom:20px
  }
  .hero .eyebrow {
    font-size:.56rem;
    margin-bottom:18px
  }
  .hero-description {
    font-size:.9rem;
    line-height:1.75;
    max-width:480px;
    margin-bottom:24px
  }
  .hero-search {
    max-width:520px
  }
  .hero-assurances {
    font-size:.63rem;
    gap:13px;
    margin-top:15px
  }
  .heritage-art {
    min-height:410px;
    max-width:430px;
    width:100%;
    margin-inline:auto;
    padding:33px 26px 19px;
    border-radius:135px 135px 9px 9px
  }
  .art-topline {
    margin-bottom:30px
  }
  .tree-ancestors {
    gap:35px
  }
  .ancestor-card {
    width:137px
  }
  .tree-branch {
    width:172px
  }
  .art-bottomline {
    margin-top:22px
  }
  .hero-with-results .heritage-art {
    display:none
  }
  .source-strip {
    padding:22px 0;
    gap:17px
  }
  .source-strip>span {
    font-size:.5rem
  }
  .source-strip>a {
    font-size:.68rem
  }
  .source-strip>div {
    flex-wrap:wrap;
    justify-content:flex-start;
    gap:10px 24px;
    font-size:.94rem
  }
  .getting-started {
    padding:44px 0
  }
  .section-heading {
    display:block;
    margin-bottom:24px
  }
  .section-heading h2 {
    font-size:2.1rem
  }
  .section-heading>p {
    max-width:100%;
    margin:18px 0 0;
    font-size:.85rem
  }
  .steps-grid {
    grid-template-columns:1fr;
    gap:23px;
    margin-top:25px
  }
  .steps-grid article {
    padding:20px 35px 0 47px
  }
  .steps-grid article>svg {
    position:absolute;
    left:0;
    top:22px
  }
  .steps-grid h3 {
    margin-bottom:8px;
    font-size:.97rem
  }
  .steps-grid p {
    max-width:none;
    font-size:.82rem
  }
  .step-number {
    top:14px;
    right:0;
    font-size:1.7rem
  }
  .research-offer {
    grid-template-columns:1fr;
    padding:30px 25px;
    gap:28px
  }
  .offer-order {
    border-left:0;
    border-top:1px solid #ffffff2e;
    padding:26px 0 0
  }
  .offer-copy>p {
    max-width:none
  }
  .offer-price {
    margin-block:8px 14px
  }
  .offer-order ul {
    margin-bottom:20px
  }
  .research-offer h2 {
    font-size:2.45rem
  }
  .home-faq {
    grid-template-columns:1fr;
    gap:17px;
    padding:46px 0 52px
  }
  .home-faq h2 {
    font-size:2.15rem
  }
  .eyebrow {
    font-size:.58rem;
    margin-bottom:16px
  }
  .faq-list summary {
    font-size:.86rem
  }
  .faq-list p {
    font-size:.81rem
  }
  .footer-top {
    align-items:flex-start;
    flex-direction:column;
    gap:23px
  }
  .footer-nav {
    gap:23px;
    font-size:.73rem
  }
  .footer-bottom {
    align-items:flex-start;
    flex-direction:column;
    gap:13px
  }
  .footer-bottom>div {
    gap:14px
  }
  .panel,.box,.card {
    padding:20px
  }
  .page-intro h1 {
    font-size:2.6rem
  }
  .source-tools {
    align-items:stretch;
    flex-direction:column;
    gap:13px
  }
  .filter-label input {
    width:100%;
    max-width:none
  }
  .filter-label {
    width:100%
  }
  .results-section {
    padding-top:35px
  }
  .results-section .section-heading h2 {
    font-size:1.8rem
  }
  .link-row {
    padding:12px;
    gap:12px
  }
  .link-row .btn {
    padding:8px 10px;
    font-size:.71rem
  }
  .link-row p {
    font-size:.72rem
  }
  .result-grid {
    grid-template-columns:repeat(2,1fr);
    gap:12px
  }
  .map-details summary {
    gap:12px
  }
  .map-details summary small {
    font-size:.71rem
  }
  .map-details summary>span {
    font-size:.88rem
  }
  #irp-map {
    height:360px
  }
  .cookie-banner {
    bottom:10px;
    left:10px;
    width:calc(100% - 20px);
    padding:16px;
    max-width:430px
  }
}
@media(max-width:380px) {
  .wrap {
    width:calc(100% - 30px)
  }
  .hero h1 {
    font-size:2.9rem
  }
  .search-input-row .btn {
    padding:12px 11px;
    gap:6px
  }
  .search-input-row .btn svg {
    display:none
  }
  .heritage-art {
    padding-inline:16px
  }
  .tree-ancestors {
    gap:20px
  }
  .ancestor-card {
    width:122px
  }
  .tree-branch {
    width:143px
  }
  .result-grid {
    grid-template-columns:1fr
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
}
.hero-search .search-input-row input {
  border:0;
  padding:10px 0;
  background:transparent
}
.kwerenda-page {
  margin-bottom:55px
}
.kwerenda-page .payment-note {
  color:var(--muted);
  display:block;
  font-size:.79rem
}
.form {
  display:grid;
  gap:16px;
  max-width:720px;
  margin-bottom:50px
}
.form label {
  display:grid;
  gap:7px
}
.form .agree {
  display:flex;
  align-items:flex-start;
  gap:10px
}
.person-name-fields,.person-detail-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px
}
.person-field { min-width:0; }
.person-field label { display:block; margin:0 0 7px; }
.person-field input { display:block; width:100%; min-width:0; }
.person-name-hint { max-width:none; margin:10px 0 0; }
.person-search-details {
  margin:16px 0;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border)
}
.person-search-details>summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:13px 0;
  color:var(--accent);
  cursor:pointer;
  list-style:none;
  font-size:.83rem;
  font-weight:600
}
.person-search-details>summary small {
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:.73rem;
  font-weight:400
}
.person-detail-fields { padding:16px; margin-bottom:16px; background:var(--accent-weak); border-radius:8px; }
.person-detail-intro { grid-column:1 / -1; margin:0; color:var(--muted); font-size:.76rem; }
.person-detail-fields .search-hint { margin-top:7px; }
.hero-search .person-search-submit { width:100%; justify-content:center; min-height:48px; }
.person-search-actions { display:flex; flex-wrap:wrap; gap:10px; }
.catalog-person-search { max-width:760px; }
.person-search-error { color:#a32922; font-size:.85rem; margin:12px 0; }
:root[data-theme=dark] .person-search-error { color:#ffa397; }
@media(max-width:480px) {
  .person-name-fields,.person-detail-fields { grid-template-columns:1fr; gap:13px; }
  .person-search-actions .btn { width:100%; justify-content:center; }
}
@media(max-width:720px) {
  .hero-search .search-input-row input,.filter-label input,.search-form input,.person-field input {
    font-size:16px
  }
}
