/*
   GreenerPasture V2 design system
   Safe to load alongside the existing site styles while V2 is being tested.
*/
:root {
    --gp-green: #315c3a;
    --gp-green-dark: #21442a;
    --gp-green-deep: #183622;
    --gp-green-soft: #edf3e9;
    --gp-cream: #f7f5ef;
    --gp-cream-dark: #ece8dc;
    --gp-gold: #b59a5a;
    --gp-text: #263027;
    --gp-muted: #687168;
    --gp-border: #d9ddd4;
    --gp-white: #ffffff;
    --gp-danger: #b33a32;
    --gp-shadow: 0 8px 24px rgba(27, 47, 32, .08);
    --gp-radius: 10px;
    --gp-max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    min-height: 100%;
    background: var(--gp-cream);
    color: var(--gp-text);
    font-family: "Segoe UI", Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
body.gp-menu-open { overflow: hidden; }

img { max-width: 100%; height: auto; }
button, input, select { font: inherit; }
button { cursor: pointer; }
a, a:link {
    color: var(--gp-green);
    font-weight: 600;
    text-decoration: none;
}
a:hover, a:focus { color: var(--gp-green-dark); text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
    outline: 3px solid rgba(181, 154, 90, .55);
    outline-offset: 2px;
}

.gp-header {
    position: relative;
    z-index: 1000;
    background: rgba(255,255,255,.98);
    border-bottom: 1px solid var(--gp-border);
    box-shadow: 0 1px 10px rgba(25, 45, 30, .04);
}
.gp-header-inner {
    width: min(var(--gp-max), calc(100% - 40px));
    min-height: 76px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 28px;
}
.gp-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--gp-green-deep);
    flex: 0 0 auto;
}
.gp-brand:hover { text-decoration: none; color: var(--gp-green-deep); }
.gp-brand-logo {
    width: 54px;
    max-height: 62px;
    object-fit: contain;
}
.gp-brand-copy { display: flex; flex-direction: column; line-height: 1.15; }
.gp-brand-name {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: .045em;
}
.gp-brand-tagline {
    margin-top: 4px;
    color: var(--gp-muted);
    font-size: 12px;
    letter-spacing: .02em;
}
.gp-seasonal-badge {
    margin-left: auto;
    padding: 5px 10px;
    border: 1px solid #ddd5ba;
    border-radius: 999px;
    background: #fbf8ed;
    color: #6f5b25;
    font-size: 12px;
    white-space: nowrap;
}
.gp-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin-left: auto;
}
.gp-nav-group { position: relative; }
.gp-nav-group > a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 12px;
    color: var(--gp-green-deep);
    font-weight: 600;
}
.gp-nav-group > a:hover { text-decoration: none; color: var(--gp-green); }
.gp-nav-menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    min-width: 220px;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--gp-border);
    border-radius: 8px;
    box-shadow: var(--gp-shadow);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
}
.gp-nav-group:hover .gp-nav-menu,
.gp-nav-group:focus-within .gp-nav-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.gp-nav-menu a {
    display: block;
    padding: 9px 10px;
    color: var(--gp-text);
    font-size: 14px;
    border-radius: 6px;
}
.gp-nav-menu a:hover { background: var(--gp-green-soft); text-decoration: none; }
.gp-account { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.gp-account-link { font-size: 13px; }
.gp-menu-button { display: none; }

.gp-main { min-height: 60vh; }
.gp-container {
    width: min(var(--gp-max), calc(100% - 40px));
    margin: 0 auto;
}

.gp-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 10px 20px;
    border: 1px solid transparent;
    border-radius: 7px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
}
.gp-button:hover { text-decoration: none; transform: translateY(-1px); }
.gp-button-primary { background: var(--gp-green); color: #fff !important; }
.gp-button-primary:hover { background: var(--gp-green-dark); }
.gp-button-outline { background: #fff; color: var(--gp-green) !important; border-color: var(--gp-green); }
.gp-button-outline:hover { background: var(--gp-green-soft); }
.gp-button-small { min-height: 38px; padding: 8px 14px; font-size: 13px; }
.gp-button-wide { width: 100%; }

/* Shared legacy-compatible validation classes */
.validation-summary-errors, .field-validation-error, .input-validation-error { color: var(--gp-danger); font-weight: 700; }


/* Search page */
.gp-search-page {
    padding: 28px 0 0;
}
.gp-search-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
    min-height: 390px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid var(--gp-border);
    border-radius: 12px;
    box-shadow: 0 12px 30px rgba(27, 47, 32, .09);
}
.gp-search-hero::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: var(--gp-gold);
}
.gp-search-hero-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 58px 58px 62px;
}
.gp-eyebrow {
    display: block;
    margin-bottom: 8px;
    color: var(--gp-green);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1.4;
    text-transform: uppercase;
}
.gp-search-hero h1 {
    max-width: 650px;
    margin: 0;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(44px, 5vw, 70px);
    line-height: .96;
    letter-spacing: -.028em;
}
.gp-hero-lead {
    max-width: 560px;
    margin: 24px 0 26px;
    color: var(--gp-muted);
    font-size: 18px;
    line-height: 1.55;
}
.gp-hero-button { align-self: flex-start; }
.gp-hero-meta {
    margin: 14px 0 0;
    color: var(--gp-muted);
    font-size: 13px;
    letter-spacing: .01em;
}
.gp-search-hero-image {
    position: relative;
    min-height: 390px;
    background: url('/Content/images/search_by_place_pic2.jpg') center center / cover no-repeat;
}
.gp-search-hero-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(24,54,34,.03), rgba(24,54,34,.12));
}

.gp-search-panel {
    position: relative;
    z-index: 2;
    margin: -28px 28px 0;
    padding: 32px 34px 34px;
    background: #ffffff;
    border: 1px solid var(--gp-border);
    border-radius: 10px;
    box-shadow: 0 14px 34px rgba(27, 47, 32, .11);
}
.gp-search-panel-intro h2,
.gp-section-heading h2,
.gp-store-banner h2,
.gp-brick-wall h2,
.gp-archive h2,
.gp-topic-section h2 {
    margin: 0;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 700;
    line-height: 1.2;
}
.gp-search-panel-intro h2 { font-size: 31px; }
.gp-search-panel-intro p { margin: 8px 0 0; color: var(--gp-muted); }
.gp-small-note { font-size: 13px; }
.gp-form-grid {
    display: grid;
    gap: 18px;
    margin-top: 24px;
}
.gp-form-grid-name {
    grid-template-columns: 2fr 2fr 1fr 1fr 1.2fr;
}
.gp-field label {
    display: block;
    margin-bottom: 7px;
    color: var(--gp-text);
    font-size: 13px;
    font-weight: 700;
}
.gp-required { color: var(--gp-danger); }
.gp-field-hint { color: var(--gp-muted); font-weight: 400; }
.gp-field input,
.gp-field select,
.gp-inline-form input,
.gp-browse-fields select {
    width: 100%;
    min-height: 46px;
    padding: 9px 12px;
    border: 1px solid #bcc6bd;
    border-radius: 6px;
    background: #fff;
    color: var(--gp-text);
}
.gp-field input:focus,
.gp-field select:focus,
.gp-inline-form input:focus,
.gp-browse-fields select:focus {
    border-color: var(--gp-green);
    outline: 3px solid rgba(49, 92, 58, .12);
}
.gp-search-form-bottom {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px 22px;
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--gp-border);
}
.gp-checkbox { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.gp-checkbox input { width: 18px; height: 18px; }
.gp-search-hint { color: var(--gp-muted); font-size: 13px; }
.gp-search-submit { margin-left: auto; min-width: 205px; }

.gp-discovery-section {
    margin-top: 34px;
    padding: 36px;
    background: var(--gp-green-soft);
    border: 1px solid #d8e4d8;
    border-radius: var(--gp-radius);
}
.gp-discovery-heading {
    max-width: 720px;
    margin-bottom: 22px;
}
.gp-discovery-heading .gp-eyebrow { margin-bottom: 5px; }
.gp-discovery-heading h2 {
    margin: 0;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 30px;
    line-height: 1.2;
}
.gp-discovery-heading p { margin: 8px 0 0; color: var(--gp-muted); }
.gp-discovery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}
.gp-discovery-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 330px;
    padding: 28px;
    background: #ffffff;
    border: 1px solid var(--gp-border);
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(27, 47, 32, .04);
}
.gp-discovery-card-heading {
    min-width: 0;
}
.gp-discovery-card-place {
    background: linear-gradient(180deg, #fff 0%, #fbfdf9 100%);
}
.gp-discovery-card-map {
    background: linear-gradient(180deg, #fff 0%, #fdfbf6 100%);
}
.gp-discovery-card-tree {
    background: linear-gradient(180deg, #fff 0%, #f8fbf7 100%);
}
.gp-form-label,
.gp-form-control label {
    display: block;
    margin-bottom: 6px;
    color: var(--gp-text);
    font-size: 13px;
    font-weight: 700;
}
.gp-form-helper {
    display: block;
    margin-top: 7px;
    color: var(--gp-muted);
    font-size: 12px;
    line-height: 1.45;
}
.gp-inline-form .gp-button,
.gp-browse-form .gp-button {
    width: 100%;
    margin-top: 14px;
}
.gp-tree-benefits {
    margin: 4px 0 18px;
    padding: 0;
    list-style: none;
    color: var(--gp-muted);
    font-size: 14px;
    line-height: 1.5;
}
.gp-tree-benefits li {
    position: relative;
    margin: 9px 0;
    padding-left: 16px;
}
.gp-tree-benefits li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .65em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--gp-gold);
}
.gp-discovery-card::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    background: var(--gp-green);
    border-radius: 8px 8px 0 0;
}
.gp-discovery-card-map::before { background: var(--gp-gold); }
.gp-discovery-card-tree::before { background: var(--gp-green-deep); }
.gp-discovery-kicker {
    display: block;
    margin-bottom: 8px;
    color: var(--gp-gold);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1.4;
}
.gp-discovery-card h2 { margin: 0; color: var(--gp-green-deep); font-family: Georgia, "Times New Roman", serif; font-size: 25px; line-height: 1.25; }
.gp-discovery-card p { margin: 10px 0 18px; color: var(--gp-muted); }
.gp-discovery-card .gp-button { align-self: flex-start; margin-top: auto; }
.gp-inline-form,
.gp-browse-form { margin-top: auto; }
.gp-inline-form { display: grid; gap: 10px; }
.gp-browse-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 0; }
.gp-form-control { min-width: 0; }
.gp-browse-form .gp-button { margin-top: 0; }
.gp-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.gp-ad-slot {
    min-height: 90px;
    margin: 28px 0;
    padding: 10px;
    text-align: center;
    overflow: hidden;
}
.gp-store-banner {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(260px, .6fr);
    gap: 34px;
    align-items: center;
    margin-top: 36px;
    padding: 30px 34px;
    background: linear-gradient(135deg, #edf3e9 0%, #f7f5ef 100%);
    border: 1px solid #d8e4d8;
    border-radius: var(--gp-radius);
}
.gp-store-copy { min-width: 0; }
.gp-store-copy .gp-eyebrow { margin-bottom: 6px; }
.gp-store-banner h2 { font-size: 28px; }
.gp-store-banner p { max-width: 650px; margin: 8px 0 18px; color: var(--gp-muted); }
.gp-store-banner .gp-button { margin-top: 2px; }
.gp-store-note {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 130px;
    padding: 24px 26px;
    border-left: 1px solid #c9d7ca;
    color: var(--gp-green-deep);
}
.gp-store-note strong { font-family: Georgia, "Times New Roman", serif; font-size: 21px; line-height: 1.3; }
.gp-store-note span { margin-top: 7px; color: var(--gp-muted); font-size: 14px; }

.gp-explore-section { margin-top: 52px; }
.gp-section-heading { max-width: 760px; margin-bottom: 26px; }
.gp-section-heading h2 { font-size: 32px; }
.gp-section-heading p { margin: 10px 0 0; color: var(--gp-muted); font-size: 16px; }
.gp-history-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.gp-history-card {
    display: grid; grid-template-columns: 110px minmax(0, 1fr); align-items: center; gap: 20px;
    min-width: 0; min-height: 170px; padding: 24px; background: #fff;
    border: 1px solid var(--gp-border); border-radius: var(--gp-radius);
    box-shadow: 0 4px 16px rgba(27, 47, 32, .05);
}
.gp-history-image { display: flex; align-items: center; justify-content: center; width: 110px; height: 110px; overflow: hidden; }
.gp-history-image img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.gp-history-content { min-width: 0; }
.gp-history-content h3 { margin: 0 0 8px; color: var(--gp-green-deep); font-family: Georgia, "Times New Roman", serif; font-size: 21px; line-height: 1.25; }
.gp-history-content p { margin: 0 0 14px; color: var(--gp-muted); line-height: 1.5; }
.gp-history-content a { font-weight: 700; }

.gp-content-split {
    display: grid; grid-template-columns: minmax(280px, .75fr) minmax(0, 1.5fr); gap: 24px;
    margin-top: 52px; align-items: stretch;
}
.gp-brick-wall, .gp-archive, .gp-topic-section, .gp-featured-products { background: #fff; border: 1px solid var(--gp-border); border-radius: var(--gp-radius); }
.gp-brick-wall {
    position: relative; display: flex; flex-direction: column; align-items: flex-start; padding: 34px;
    background: var(--gp-green-deep); color: #eaf0e9; overflow: hidden;
}
.gp-brick-wall::after { content: ""; position: absolute; right: -70px; bottom: -70px; width: 190px; height: 190px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; }
.gp-brick-wall .gp-eyebrow { color: #b9cdbd; }
.gp-brick-wall h2 { color: #fff; font-size: 30px; margin-bottom: 8px; }
.gp-brick-wall p { color: #cbd8cd; margin: 0; max-width: 430px; }
.gp-brick-wall-rule { width: 48px; height: 2px; margin: 22px 0; background: var(--gp-gold); }
.gp-button-light { background: #fff; color: var(--gp-green-deep) !important; border-color: #fff; }
.gp-button-light:hover { background: var(--gp-green-soft); }
.gp-archive { padding: 30px; }
.gp-section-heading-left { margin-bottom: 18px; }
.gp-section-heading-left p { font-size: 14px; }
.gp-article-list { display: grid; gap: 8px; }
.gp-article-item { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 14px; align-items: center; padding: 10px; border: 1px solid transparent; border-radius: 7px; }
.gp-article-item:hover { background: var(--gp-green-soft); border-color: #d8e4d8; text-decoration: none; }
.gp-article-thumb { width: 62px; height: 52px; display: flex; align-items: center; justify-content: center; overflow: hidden; background: #f2eee4; border-radius: 5px; }
.gp-article-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.gp-article-copy { min-width: 0; }
.gp-article-copy strong { display: block; color: var(--gp-text); line-height: 1.35; }
.gp-article-copy small { display: block; margin-top: 3px; color: var(--gp-green); font-weight: 700; }
.gp-more-link { display: inline-block; margin-top: 14px; }

.gp-topic-section { margin-top: 28px; padding: 30px; }
.gp-topic-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.gp-topic-group { min-width: 0; padding: 22px; background: var(--gp-cream); border: 1px solid var(--gp-border); border-radius: 8px; }
.gp-topic-group h3 { margin: 0 0 12px; color: var(--gp-green-deep); font-family: Georgia, "Times New Roman", serif; font-size: 18px; line-height: 1.3; }
.gp-topic-group a { display: block; margin: 8px 0; font-size: 14px; font-weight: 500; }

.gp-featured-products { display: grid; grid-template-columns: minmax(180px, .55fr) minmax(0, 1.7fr) auto; gap: 24px; align-items: center; margin-top: 28px; padding: 26px 30px; }
.gp-featured-products h2 { margin: 0; color: var(--gp-green-deep); font-family: Georgia, "Times New Roman", serif; font-size: 24px; }
.gp-featured-products-content { min-width: 0; }


@media (max-width: 1120px) and (min-width: 981px) {
    .gp-discovery-card { padding: 24px; min-height: 350px; }
    .gp-discovery-card h2 { font-size: 23px; }
    .gp-browse-fields { grid-template-columns: 1fr; gap: 10px; }
}

@media (max-width: 980px) {
    .gp-search-hero { grid-template-columns: 1fr; }
    .gp-search-hero-image { min-height: 280px; }
    .gp-search-panel { margin-left: 18px; margin-right: 18px; }
    .gp-form-grid-name { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gp-discovery-grid { grid-template-columns: 1fr; }
    .gp-discovery-section { padding: 26px; }
    .gp-content-split { grid-template-columns: 1fr; }
    .gp-topic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gp-featured-products { grid-template-columns: 1fr; }
    .gp-store-banner { grid-template-columns: 1fr; }
    .gp-store-note { min-height: 0; padding: 18px 0 0; border-left: 0; border-top: 1px solid #c9d7ca; }
}

@media (max-width: 700px) {
    .gp-discovery-card { min-height: 0; }
    .gp-browse-fields { grid-template-columns: 1fr; }
    .gp-search-page { padding-top: 16px; }
    .gp-search-hero-copy { padding: 38px 26px 42px; }
    .gp-search-panel { margin: -18px 12px 0; padding: 24px; }
    .gp-search-hero h1 { font-size: 44px; }
    .gp-search-panel { padding: 24px; }
    .gp-form-grid-name { grid-template-columns: 1fr; }
    .gp-search-submit { margin-left: 0; width: 100%; }
    .gp-store-banner { align-items: flex-start; flex-direction: column; }
    .gp-history-grid { grid-template-columns: 1fr; }
    .gp-topic-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .gp-search-panel { margin-left: 0; margin-right: 0; padding: 20px; }
    .gp-discovery-section { padding: 22px; }
    .gp-history-card { grid-template-columns: 1fr; align-items: start; }
    .gp-history-image { width: 100%; height: 120px; justify-content: flex-start; }
    .gp-browse-fields { grid-template-columns: 1fr; }
    .gp-brick-wall, .gp-archive, .gp-topic-section { padding: 22px; }
}

/* Footer */
.gp-footer {
    margin-top: 64px;
    padding: 44px 0 24px;
    background: var(--gp-green-deep);
    color: #eaf0e9;
}
.gp-footer-inner { width: min(var(--gp-max), calc(100% - 40px)); margin: 0 auto; }
.gp-footer-search {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding-bottom: 30px;
    border-bottom: 1px solid rgba(255,255,255,.15);
}
.gp-footer-kicker { color: #b9cdbd; font-size: 12px; text-transform: uppercase; letter-spacing: .12em; }
.gp-footer h2, .gp-footer h3 { margin: 0; color: #fff; font-family: Georgia, "Times New Roman", serif; }
.gp-footer h2 { margin-top: 2px; font-size: 26px; }
.gp-footer h3 { margin-bottom: 12px; font-size: 16px; }
.gp-footer-search-box { width: min(480px, 100%); }
.gp-footer-search-box .gsc-control-cse { padding: 0 !important; border: 0 !important; background: transparent !important; }
.gp-footer-search-box .gsc-input-box { border-radius: 6px; }
.gp-footer-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 36px;
    padding: 36px 0;
}
.gp-footer-grid a { display: block; margin: 7px 0; color: #dbe7dc; font-size: 14px; font-weight: 500; }
.gp-footer-grid a:hover { color: #fff; }
.gp-footer-note {
    padding: 20px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 8px;
    color: #cbd8cd;
    font-size: 13px;
}
.gp-footer-note strong { display: block; margin-bottom: 6px; color: #fff; font-family: Georgia, "Times New Roman", serif; font-size: 18px; }
.gp-footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 0 10px;
}
.gp-footer-bottom a { margin-right: 18px; color: #dbe7dc; font-size: 12px; }
.gp-footer-social a { margin-right: 0; margin-left: 18px; }
.gp-footer-copyright { margin: 10px 0 0; color: #9fb0a1; font-size: 11px; }

@media (max-width: 1020px) {
    .gp-header-inner { gap: 14px; }
    .gp-brand-name { font-size: 20px; }
    .gp-brand-logo { width: 46px; }
    .gp-nav-group > a { padding: 8px 8px; font-size: 14px; }
    .gp-account-link { display: none; }
}

@media (max-width: 820px) {
    .gp-header-inner { min-height: 68px; }
    .gp-seasonal-badge { display: none; }
    .gp-menu-button {
        display: inline-flex;
        margin-left: auto;
        width: 42px;
        height: 42px;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 5px;
        border: 1px solid var(--gp-border);
        border-radius: 7px;
        background: #fff;
    }
    .gp-menu-button span { width: 20px; height: 2px; background: var(--gp-green-deep); border-radius: 2px; transition: transform .15s ease; }
    .gp-menu-button[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .gp-menu-button[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
    .gp-menu-button[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
    .gp-nav {
        position: fixed;
        top: 68px;
        left: 0;
        right: 0;
        display: none;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0;
        max-height: calc(100vh - 68px);
        overflow-y: auto;
        padding: 10px 20px 24px;
        background: #fff;
        border-bottom: 1px solid var(--gp-border);
        box-shadow: 0 12px 28px rgba(27,47,32,.12);
    }
    .gp-nav.gp-nav-open { display: flex; }
    .gp-nav-group { border-bottom: 1px solid var(--gp-border); }
    .gp-nav-group > a { display: block; padding: 14px 4px; }
    .gp-nav-menu {
        position: static;
        min-width: 0;
        padding: 0 0 8px 12px;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
    }
    .gp-nav-menu a { padding: 7px 4px; }
    .gp-account { margin-left: 0; }
    .gp-account .gp-button { white-space: nowrap; }
    .gp-brand-tagline { display: none; }
}

@media (max-width: 620px) {
    .gp-header-inner, .gp-container, .gp-footer-inner { width: min(100% - 24px, var(--gp-max)); }
    .gp-brand-name { font-size: 18px; }
    .gp-brand-logo { width: 40px; max-height: 48px; }
    .gp-account .gp-button { padding: 8px 11px; }
    .gp-footer-search { align-items: stretch; flex-direction: column; }
    .gp-footer-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .gp-footer-bottom { flex-direction: column; }
    .gp-footer-social a { margin-left: 0; margin-right: 18px; }
}

@media (max-width: 420px) {
    .gp-footer-grid { grid-template-columns: 1fr; }
}


/* V2 lower-page refinement */
.gp-content-split {
    grid-template-columns: minmax(300px, .82fr) minmax(0, 1.55fr);
    gap: 28px;
    margin-top: 54px;
}
.gp-brick-wall {
    min-height: 100%;
    justify-content: center;
    padding: 38px;
    border: 0;
    box-shadow: 0 12px 30px rgba(27,47,32,.08);
}
.gp-brick-wall h2 {
    max-width: 360px;
    margin-top: 4px;
    font-size: clamp(30px, 3vw, 38px);
    line-height: 1.08;
}
.gp-brick-wall p {
    max-width: 390px;
    font-size: 16px;
    line-height: 1.65;
}
.gp-brick-wall .gp-button {
    margin-top: 2px;
}
.gp-archive {
    padding: 32px;
    box-shadow: 0 8px 24px rgba(27,47,32,.035);
}
.gp-archive .gp-section-heading-left {
    padding-bottom: 16px;
    border-bottom: 1px solid var(--gp-border);
}
.gp-archive .gp-section-heading-left h2 {
    margin-bottom: 7px;
}
.gp-article-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
}
.gp-article-item {
    min-height: 76px;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 12px;
    padding: 10px;
    background: #fbfaf6;
    border-color: #eeeae0;
}
.gp-article-item:hover {
    background: var(--gp-green-soft);
    border-color: #d4e0d4;
}
.gp-article-thumb {
    width: 54px;
    height: 54px;
    background: #eee9dd;
}
.gp-article-copy strong {
    font-size: 14px;
    line-height: 1.35;
}
.gp-article-copy small {
    margin-top: 6px;
    font-size: 11px;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.gp-archive .gp-more-link {
    margin-top: 18px;
    font-size: 14px;
}

.gp-topic-section {
    margin-top: 34px;
    padding: 34px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(27,47,32,.025);
}
.gp-topic-section .gp-section-heading {
    max-width: 760px;
    margin-bottom: 24px;
}
.gp-topic-grid {
    gap: 18px;
}
.gp-topic-group {
    padding: 24px;
    background: var(--gp-cream);
    border-radius: 9px;
}
.gp-topic-group h3 {
    padding-bottom: 12px;
    border-bottom: 1px solid #dedfd6;
}
.gp-topic-group a {
    position: relative;
    padding-left: 0;
    line-height: 1.4;
    transition: color .15s ease, padding-left .15s ease;
}
.gp-topic-group a:hover {
    padding-left: 5px;
    text-decoration: none;
}

.gp-featured-products {
    margin-top: 34px;
    padding: 22px 26px;
    background: #f1f5ef;
    border-color: #dbe5da;
    grid-template-columns: minmax(170px, .55fr) minmax(0, 1.7fr) auto;
}
.gp-featured-products h2 {
    font-size: 22px;
}
.gp-featured-products-content {
    font-size: 13px;
}
.gp-featured-products-content img {
    max-width: 100%;
    height: auto;
}
.gp-featured-products .gp-more-link {
    white-space: nowrap;
}

@media (max-width: 900px) {
    .gp-article-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .gp-brick-wall {
        min-height: 0;
        padding: 30px;
    }
    .gp-archive {
        padding: 26px;
    }
    .gp-topic-section {
        padding: 26px;
    }
    .gp-featured-products {
        padding: 24px;
    }
}

/* V2 header refinement */
.gp-header {
    background: rgba(255, 255, 255, .985);
    border-bottom-color: #dfe3db;
    box-shadow: 0 2px 14px rgba(27, 47, 32, .045);
}
.gp-header-inner {
    min-height: 82px;
    gap: 24px;
}
.gp-brand {
    min-width: 250px;
    gap: 12px;
}
.gp-brand-logo {
    width: 50px;
    max-height: 58px;
}
.gp-brand-name {
    font-size: 23px;
    letter-spacing: .055em;
}
.gp-brand-tagline {
    color: #7a837a;
    font-size: 11px;
    letter-spacing: .035em;
}
.gp-nav {
    gap: 2px;
}
.gp-nav-group > a {
    position: relative;
    min-height: 46px;
    padding: 10px 12px;
    color: #294831;
    font-size: 14px;
    letter-spacing: .01em;
}
.gp-nav-group > a::after {
    content: "";
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 5px;
    height: 2px;
    background: var(--gp-gold);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .16s ease;
}
.gp-nav-group:hover > a::after,
.gp-nav-group:focus-within > a::after {
    transform: scaleX(1);
}
.gp-nav-group > a:hover {
    color: var(--gp-green-deep);
}
.gp-nav-menu {
    top: calc(100% + 7px);
    min-width: 235px;
    padding: 9px;
    border-color: #dfe3db;
    box-shadow: 0 14px 30px rgba(27, 47, 32, .12);
}
.gp-nav-menu a {
    padding: 9px 11px;
    font-weight: 600;
}
.gp-account {
    gap: 8px;
}
.gp-account-link {
    padding: 8px 7px;
    color: var(--gp-green-deep);
    font-weight: 600;
}
.gp-account .gp-button-small {
    min-height: 40px;
    padding: 8px 15px;
}
.gp-seasonal-badge {
    margin-left: auto;
    font-size: 11px;
    letter-spacing: .025em;
}

/* Give the footer a calmer editorial finish. */
.gp-footer {
    margin-top: 72px;
    padding-top: 50px;
}
.gp-footer-search {
    padding-bottom: 34px;
}
.gp-footer-grid {
    padding: 40px 0 34px;
}
.gp-footer-grid h3 {
    font-size: 17px;
    letter-spacing: .01em;
}
.gp-footer-grid a {
    transition: color .12s ease, transform .12s ease;
}
.gp-footer-grid a:hover {
    transform: translateX(2px);
    text-decoration: none;
}
.gp-footer-note {
    max-width: 920px;
    line-height: 1.65;
}
.gp-footer-bottom {
    border-top: 1px solid rgba(255,255,255,.1);
    margin-top: 28px;
    padding-top: 24px;
}

@media (max-width: 1020px) {
    .gp-brand { min-width: 225px; }
    .gp-header-inner { gap: 14px; }
    .gp-nav-group > a { padding-left: 9px; padding-right: 9px; }
    .gp-nav-group > a::after { left: 9px; right: 9px; }
}

/* V2 responsive and first-screen polish */
.gp-search-page {
    padding-bottom: 6px;
}

.gp-search-hero-copy {
    padding-right: clamp(34px, 5vw, 64px);
}

.gp-search-hero-image {
    min-height: 420px;
}

.gp-search-hero-image::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(247,245,239,.02) 55%, rgba(24,54,34,.12) 100%);
    z-index: 1;
}

.gp-search-hero-image::after {
    background: linear-gradient(90deg, rgba(24,54,34,.02), rgba(24,54,34,.16));
}

.gp-search-panel-intro {
    max-width: 820px;
}

.gp-search-panel-intro .gp-eyebrow {
    margin-bottom: 7px;
}

.gp-search-panel-intro h2 {
    letter-spacing: -.012em;
}

.gp-form-grid-name .gp-field input,
.gp-form-grid-name .gp-field select {
    transition: border-color .15s ease, box-shadow .15s ease;
}

.gp-form-grid-name .gp-field input:hover,
.gp-form-grid-name .gp-field select:hover {
    border-color: #9eac9f;
}

.gp-discovery-card {
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.gp-discovery-card:hover {
    transform: translateY(-2px);
    border-color: #cbd5cc;
    box-shadow: 0 9px 22px rgba(27,47,32,.075);
}

.gp-history-card {
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.gp-history-card:hover {
    transform: translateY(-2px);
    border-color: #cbd5cc;
    box-shadow: 0 9px 22px rgba(27,47,32,.075);
}

.gp-history-content a::after,
.gp-more-link::after {
    content: "";
    display: inline-block;
    width: 0;
    height: 1px;
    margin-left: 0;
    vertical-align: middle;
    background: currentColor;
    transition: width .15s ease, margin-left .15s ease;
}

.gp-history-content a:hover::after,
.gp-more-link:hover::after {
    width: 18px;
    margin-left: 6px;
}

.gp-store-banner {
    position: relative;
    overflow: hidden;
}

.gp-store-banner::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--gp-gold);
}

.gp-store-copy,
.gp-store-note {
    position: relative;
    z-index: 1;
}

.gp-topic-group {
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.gp-topic-group:hover {
    transform: translateY(-2px);
    border-color: #cbd5cc;
    box-shadow: 0 7px 18px rgba(27,47,32,.055);
}

.gp-topic-group a:focus-visible {
    border-radius: 3px;
}

@media (min-width: 1100px) {
    .gp-search-hero {
        min-height: 410px;
    }

    .gp-search-hero-copy {
        padding-left: 64px;
    }

    .gp-search-panel {
        margin-left: 38px;
        margin-right: 38px;
    }
}

@media (max-width: 1020px) {
    .gp-header-inner {
        min-height: 76px;
    }

    .gp-nav-group > a {
        font-size: 13px;
    }

    .gp-search-hero-copy {
        padding: 48px 42px 52px;
    }

    .gp-search-hero-image {
        min-height: 340px;
    }
}

@media (max-width: 820px) {
    .gp-search-hero {
        border-radius: 10px;
    }

    .gp-search-hero-copy {
        padding: 44px 32px 48px;
    }

    .gp-search-hero-image {
        min-height: 300px;
    }

    .gp-search-panel {
        margin-top: -24px;
    }

    .gp-search-form-bottom {
        align-items: flex-start;
    }

    .gp-search-hint {
        flex: 1 1 240px;
    }
}

@media (max-width: 700px) {
    .gp-search-hero-copy {
        padding: 38px 26px 44px;
    }

    .gp-search-hero h1 {
        font-size: clamp(38px, 10vw, 48px);
    }

    .gp-hero-lead {
        margin-top: 18px;
        font-size: 16px;
    }

    .gp-hero-button {
        width: 100%;
    }

    .gp-search-hero-image {
        min-height: 245px;
    }

    .gp-search-panel {
        margin-top: -16px;
    }

    .gp-discovery-section {
        margin-top: 28px;
    }

    .gp-store-banner,
    .gp-explore-section,
    .gp-content-split,
    .gp-topic-section {
        margin-top: 40px;
    }

    .gp-history-card:hover,
    .gp-discovery-card:hover,
    .gp-topic-group:hover {
        transform: none;
    }

    .gp-article-item {
        min-height: 72px;
    }
}

@media (max-width: 480px) {
    .gp-search-hero-copy {
        padding: 32px 20px 36px;
    }

    .gp-search-hero h1 {
        font-size: 38px;
    }

    .gp-search-hero-image {
        min-height: 205px;
    }

    .gp-search-panel-intro h2 {
        font-size: 27px;
    }

    .gp-search-form-bottom {
        gap: 14px;
    }

    .gp-search-hint {
        flex-basis: 100%;
    }

    .gp-store-banner {
        padding: 26px 22px;
    }

    .gp-section-heading h2,
    .gp-topic-section .gp-section-heading h2 {
        font-size: 29px;
    }

    .gp-article-item {
        grid-template-columns: 48px minmax(0, 1fr);
        gap: 10px;
        padding: 8px;
    }

    .gp-article-thumb {
        width: 48px;
        height: 48px;
    }

    .gp-footer {
        margin-top: 54px;
    }
}

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

/* Search workflow refinement */
.gp-search-panel {
    padding: 34px 36px 36px;
}

.gp-search-panel-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 28px;
    align-items: end;
}

.gp-search-panel-intro .gp-eyebrow,
.gp-search-panel-intro h2,
.gp-search-panel-intro > p {
    grid-column: 1;
}

.gp-search-panel-intro .gp-eyebrow { grid-row: 1; }
.gp-search-panel-intro h2 { grid-row: 2; }
.gp-search-panel-intro > p:not(.gp-small-note) { grid-row: 3; }
.gp-search-panel-intro .gp-small-note {
    grid-column: 2;
    grid-row: 2 / span 2;
    align-self: center;
    max-width: 300px;
    margin: 0;
    padding-left: 20px;
    border-left: 1px solid var(--gp-border);
    font-size: 12px;
    line-height: 1.55;
}

.gp-form-grid-name {
    gap: 20px;
}

.gp-field input,
.gp-field select {
    box-sizing: border-box;
    font-size: 15px;
}

.gp-field input::placeholder {
    color: #8a938b;
}

.gp-field-hint {
    white-space: nowrap;
    font-size: 12px;
}

.gp-search-form-bottom {
    align-items: center;
    min-height: 46px;
}

.gp-checkbox {
    min-height: 42px;
    padding: 0 12px 0 2px;
    color: var(--gp-text);
}

.gp-checkbox input {
    accent-color: var(--gp-green);
    margin: 0;
}

.gp-search-hint {
    max-width: 360px;
    line-height: 1.45;
}

.gp-search-submit {
    min-height: 48px;
    padding-left: 26px;
    padding-right: 26px;
    letter-spacing: .01em;
}

.gp-discovery-card .gp-inline-form input,
.gp-discovery-card .gp-browse-fields select {
    box-sizing: border-box;
}

@media (max-width: 900px) {
    .gp-search-panel-intro {
        display: block;
    }

    .gp-search-panel-intro .gp-small-note {
        max-width: none;
        margin-top: 12px;
        padding: 0;
        border-left: 0;
    }

    .gp-form-grid-name {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gp-field-last-name,
    .gp-form-grid-name .gp-field:nth-child(2) {
        grid-column: span 1;
    }

    .gp-search-form-bottom {
        align-items: flex-start;
    }

    .gp-search-submit {
        margin-left: auto;
    }
}

@media (max-width: 620px) {
    .gp-search-panel {
        margin-left: 14px;
        margin-right: 14px;
        padding: 26px 20px 22px;
        border-radius: 8px;
    }

    .gp-form-grid-name {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .gp-search-form-bottom {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .gp-search-submit {
        width: 100%;
        margin-left: 0;
    }

    .gp-search-hint {
        max-width: none;
        font-size: 12px;
    }

    .gp-checkbox {
        padding-left: 0;
    }
}


/* =========================================================
   Ancestor Details V2 - CSS ONLY
   This section intentionally requires ZERO Details.aspx edits.
   Site.Master already loads this site-level stylesheet.
   ========================================================= */

#colMain {
    width: min(1180px, calc(100% - 32px));
    margin: 24px auto 64px;
    box-sizing: border-box;
    color: #26342b;
}

#colMain *,
#colMain *::before,
#colMain *::after {
    box-sizing: border-box;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] {
    width: 100%;
}

/* Ancestor identity */
#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type {
    margin: 22px 0 28px;
    border: 1px solid #d8dfd7;
    border-radius: 12px;
    background: linear-gradient(135deg, #f4f7f2 0%, #ffffff 76%);
    box-shadow: 0 8px 24px rgba(30,55,38,.055);
    overflow: hidden;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] h1 {
    margin: 0 !important;
    padding: 28px 30px 12px !important;
    border: 0 !important;
    background: transparent !important;
    color: #183c2a !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(2rem, 4vw, 3.1rem) !important;
    line-height: 1.08 !important;
    text-align: left !important;
    box-shadow: none !important;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] h1 .Person {
    color: #183c2a !important;
}

/* General section rhythm without altering any ASP/VB markup. */
#colMain .flex-container {
    max-width: 100%;
}

#colMain h2 {
    color: #183c2a;
    font-family: Georgia, "Times New Roman", serif;
    line-height: 1.25;
}

#colMain .flex-item-no-border-sm-font,
#colMain .flex-item-no-border,
#colMain .flex-item-no-border-centered,
#colMain .flex-item-centered {
    line-height: 1.6;
}

/* The main ancestry/family narrative block follows the profile area.
   Give legacy white sections a calmer card treatment without changing markup. */
#colMain .flex-container > .flex-item-no-border-sm-font {
    border-radius: 10px;
}

#colMain a {
    text-underline-offset: 2px;
}

/* Existing family-and-children area */
#colMain h2 + .flex-container,
#colMain .flex-container + .flex-container {
    scroll-margin-top: 90px;
}

/* Existing event/history cards generated by VB */
#colMain .flex-item-gray-no-border-sm-font {
    border: 1px solid #dce3da !important;
    border-radius: 9px !important;
    background: #f8faf7 !important;
    color: #3f5045;
    line-height: 1.55;
}

#colMain .flex-item-gray-no-border-sm-font a {
    color: #245f43;
    font-weight: 700;
}

#colMain .flex-item-gray-no-border-sm-font img {
    max-width: 100%;
    height: auto;
}

/* Existing green utility / research areas */
#colMain .flex-item-green-no-border {
    border-radius: 9px;
}

/* Existing tables */
#colMain table {
    max-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

#colMain table th {
    background: #f2f5f1;
    color: #314638;
    font-weight: 700;
}

#colMain table th,
#colMain table td {
    padding: 9px 11px;
}

/* Buttons already present in the legacy view */
#colMain .greenbutton,
#colMain .yellowbutton,
#colMain .graybutton {
    border-radius: 6px;
    font-weight: 700;
}

/* Media */
#colMain img {
    max-width: 100%;
}

#colMain iframe {
    max-width: 100%;
}

/* Search-again / related-place white sections near bottom */
#colMain .flex-item-no-border-centered[style*="background:#ffffff"],
#colMain .flex-item-centered[style*="background:#ffffff"] {
    border: 1px solid #d8dfd7;
    border-radius: 10px;
    padding: 24px !important;
    box-shadow: 0 5px 18px rgba(30,55,38,.04);
}

@media (max-width: 760px) {
    #colMain {
        width: min(100% - 20px, 1180px);
        margin-top: 14px;
    }

    #colMain > div[itemscope][itemtype="https://schema.org/Person"] h1 {
        padding: 22px 20px 10px !important;
        font-size: 2rem !important;
    }

    #colMain table {
        display: block;
        overflow-x: auto;
    }
}


/* =========================================================
   Ancestor Details V2 - CSS ONLY, Pass 02
   Family connections + life/history stream
   ZERO changes to Details.aspx
   ========================================================= */

/* ---------------------------------------------------------
   FAMILY & CHILDREN
   Existing markup uses:
     #displayText
     #toggleText1
   We style those hooks directly rather than touching ASPX.
   --------------------------------------------------------- */

#colMain #displayText {
    display: inline-block;
    margin: 6px 0 10px;
    padding: 6px 12px;
    border: 1px solid #cbd7cd;
    border-radius: 999px;
    background: #f4f7f2;
    color: #245f43 !important;
    font-size: .8rem;
    font-weight: 700;
    text-decoration: none !important;
}

#colMain #displayText:hover {
    background: #eaf0e8;
    border-color: #b8c8bb;
}

#colMain #toggleText1 {
    margin-top: 8px;
    padding: 22px 24px;
    border: 1px solid #dce3da;
    border-radius: 10px;
    background: #fbfcfa;
}

/* marriageHTML frequently contains links, line breaks, images and legacy
   elements. Give all of it a more readable rhythm without assuming structure. */
#colMain #toggleText1,
#colMain #toggleText1 p,
#colMain #toggleText1 div {
    line-height: 1.65;
}

#colMain #toggleText1 a {
    color: #245f43;
    font-weight: 700;
    text-underline-offset: 2px;
}

#colMain #toggleText1 img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
}

/* ---------------------------------------------------------
   HISTORY, LIFE EVENTS & RECORDS
   Existing markup uses:
     #displayText2
     #toggleText2
   --------------------------------------------------------- */

#colMain #displayText2 {
    display: inline-block;
    margin: 8px 0 10px;
    padding: 6px 12px;
    border: 1px solid #cbd7cd;
    border-radius: 999px;
    background: #f4f7f2;
    color: #245f43 !important;
    font-size: .8rem;
    font-weight: 700;
    text-decoration: none !important;
}

#colMain #displayText2:hover {
    background: #eaf0e8;
    border-color: #b8c8bb;
}

#colMain #toggleText2 {
    margin-top: 8px;
    padding: 26px 28px;
    border: 1px solid #dbe2da;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(30,55,38,.045);
}

#colMain #toggleText2 > h2 {
    margin: 0 0 20px !important;
    padding: 0 0 12px !important;
    border-bottom: 1px solid #dce3da;
    color: #183c2a !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(1.5rem, 2.4vw, 2rem) !important;
    line-height: 1.22 !important;
    text-align: left !important;
}

/* Event array output. These are generated dynamically by existing VB as
   .flex-item-gray-no-border-sm-font. No markup changes required. */
#colMain #toggleText2 .flex-item-gray-no-border-sm-font {
    width: calc(50% - 12px) !important;
    min-width: 280px;
    margin: 6px !important;
    padding: 18px 19px !important;
    border: 1px solid #dce3da !important;
    border-left: 4px solid #b59a5a !important;
    border-radius: 9px !important;
    background: #f8faf7 !important;
    color: #3e4e44 !important;
    line-height: 1.55 !important;
    text-align: left !important;
    justify-content: flex-start !important;
    box-shadow: none !important;
}

#colMain #toggleText2 .flex-item-gray-no-border-sm-font:hover {
    background: #f4f8f3 !important;
    border-color: #c7d4c9 !important;
}

#colMain #toggleText2 .flex-item-gray-no-border-sm-font a {
    color: #245f43 !important;
    font-weight: 700;
}

#colMain #toggleText2 .flex-item-gray-no-border-sm-font img {
    max-width: 68px;
    height: auto;
    margin: 0 9px 7px 0;
    vertical-align: middle;
}

/* Keep user-added media and YouTube embeds from overflowing. */
#colMain #toggleText2 iframe {
    max-width: 100% !important;
}

#colMain #toggleText2 > .flex-container {
    gap: 0;
}

/* Existing "share/add life event" prompt immediately before the history
   toggle becomes quieter so the records are visually primary. */
#colMain a[href*="AddLifeEventFor"] img {
    width: 58px !important;
    height: 58px !important;
    vertical-align: middle;
    margin-right: 10px;
}

/* ---------------------------------------------------------
   LOWER-PAGE CALLOUTS
   --------------------------------------------------------- */

#colMain a[href*="/Ancestors/FamilyTree"],
#colMain a[href*="/Ancestors/Pedigree"],
#colMain a[href*="/Ancestors/FamilyGroup"] {
    text-underline-offset: 2px;
}

/* Tone down shop/product tiles inside Details so genealogy remains primary. */
#colMain .flex-item-green-no-border {
    border: 1px solid #dce4da;
    background: #f4f7f2;
    box-shadow: none;
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 900px) {
    #colMain #toggleText2 .flex-item-gray-no-border-sm-font {
        width: 100% !important;
        min-width: 0;
        margin: 6px 0 !important;
    }
}

@media (max-width: 760px) {
    #colMain #toggleText1,
    #colMain #toggleText2 {
        padding: 20px 18px;
    }

    #colMain #toggleText2 > h2 {
        font-size: 1.45rem !important;
    }

    #colMain #displayText,
    #colMain #displayText2 {
        margin-bottom: 8px;
    }
}


/* =========================================================
   Ancestor Details V2 - CSS ONLY, Pass 03
   Identity, relationship links, related places, research tools
   ZERO changes to Details.aspx
   ========================================================= */

/* ---------------------------------------------------------
   TOP IDENTITY / PROFILE AREA
   --------------------------------------------------------- */

/* Give the first profile block a stronger visual finish without relying on
   new classes in Details.aspx. */
#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type {
    position: relative;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #b59a5a;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type .flex-item-no-border-centered,
#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type .flex-item-no-border {
    width: 100%;
    padding: 0 30px 26px !important;
    text-align: left !important;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type a {
    color: #245f43;
    font-weight: 700;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type b {
    color: #2c4334;
}

/* Make portrait/profile images feel intentional rather than inline fragments. */
#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type img:not([src*="icon"]):not([src*="edit"]):not([src*="delete"]) {
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(30,55,38,.08);
}

/* ---------------------------------------------------------
   FAMILY NAVIGATION / RELATIONSHIP LINKS
   --------------------------------------------------------- */

#colMain a[href*="/Ancestors/Details/"],
#colMain a[href*="/Ancestors/FamilyTree/"],
#colMain a[href*="/Ancestors/Pedigree/"],
#colMain a[href*="/Ancestors/FamilyGroup/"] {
    color: #245f43;
    text-underline-offset: 2px;
}

/* Existing family-tree / pedigree / group-record action buttons become a
   compact set of research actions when they appear as legacy buttons. */
#colMain a.greenbutton[href*="/Ancestors/FamilyTree"],
#colMain a.greenbutton[href*="/Ancestors/Pedigree"],
#colMain a.greenbutton[href*="/Ancestors/FamilyGroup"],
#colMain a.yellowbutton[href*="/Ancestors/FamilyTree"],
#colMain a.yellowbutton[href*="/Ancestors/Pedigree"],
#colMain a.yellowbutton[href*="/Ancestors/FamilyGroup"] {
    margin: 4px 5px 4px 0;
    padding: 9px 14px !important;
    border-radius: 6px !important;
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   RELATED PLACE / CEMETERY / LOCATION PANELS
   --------------------------------------------------------- */

/* Legacy white callout sections near the bottom commonly contain place and
   cemetery research. Improve hierarchy without depending on exact text. */
#colMain .flex-container > .flex-item-no-border-centered[style*="background:#ffffff"],
#colMain .flex-container > .flex-item-centered[style*="background:#ffffff"] {
    position: relative;
    overflow: hidden;
}

#colMain .flex-container > .flex-item-no-border-centered[style*="background:#ffffff"]::before,
#colMain .flex-container > .flex-item-centered[style*="background:#ffffff"]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #b59a5a;
}

#colMain .flex-container > .flex-item-no-border-centered[style*="background:#ffffff"] h2,
#colMain .flex-container > .flex-item-centered[style*="background:#ffffff"] h2 {
    margin-top: 0;
    color: #183c2a;
    font-family: Georgia, "Times New Roman", serif;
    text-align: left;
}

#colMain .flex-container > .flex-item-no-border-centered[style*="background:#ffffff"] a,
#colMain .flex-container > .flex-item-centered[style*="background:#ffffff"] a {
    color: #245f43;
    font-weight: 700;
}

/* ---------------------------------------------------------
   RESEARCH / SOURCE LINKS
   --------------------------------------------------------- */

#colMain a[href*="familysearch.org"],
#colMain a[href*="findagrave.com"],
#colMain a[href*="ancestry.com"],
#colMain a[href*="newspapers.com"],
#colMain a[href*="archive.org"] {
    display: inline-block;
    margin: 3px 5px 3px 0;
    padding: 6px 9px;
    border: 1px solid #d8e0d8;
    border-radius: 5px;
    background: #f8faf7;
    color: #245f43 !important;
    font-size: .9rem;
    font-weight: 700;
    text-decoration: none !important;
}

#colMain a[href*="familysearch.org"]:hover,
#colMain a[href*="findagrave.com"]:hover,
#colMain a[href*="ancestry.com"]:hover,
#colMain a[href*="newspapers.com"]:hover,
#colMain a[href*="archive.org"]:hover {
    background: #eef4ed;
    border-color: #c6d4c8;
}

/* ---------------------------------------------------------
   PAGE DENSITY / READABILITY
   --------------------------------------------------------- */

/* Older Details content contains many consecutive line breaks. We don't alter
   markup, but make surrounding paragraphs and headings create the rhythm. */
#colMain p {
    margin-top: .55em;
    margin-bottom: .9em;
}

#colMain h3 {
    margin-top: 1.3em;
    margin-bottom: .55em;
    color: #2a4b37;
}

/* Quiet horizontal rules */
#colMain hr {
    border: 0;
    border-top: 1px solid #e0e5df;
    margin: 24px 0;
}

/* Give legacy centered copy a little more readable measure. */
#colMain center {
    line-height: 1.6;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 760px) {
    #colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type .flex-item-no-border-centered,
    #colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type .flex-item-no-border {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    #colMain a[href*="familysearch.org"],
    #colMain a[href*="findagrave.com"],
    #colMain a[href*="ancestry.com"],
    #colMain a[href*="newspapers.com"],
    #colMain a[href*="archive.org"] {
        margin-bottom: 6px;
    }
}


/* =========================================================
   Ancestor Details V2 - CSS ONLY, Pass 04
   Lower research areas, visual hierarchy, commercial de-emphasis
   ZERO changes to Details.aspx
   ========================================================= */

/* ---------------------------------------------------------
   RESEARCH / SOURCE AREAS
   --------------------------------------------------------- */

/* Older Details markup often presents source tools inside generic flex items.
   Give those blocks a calm utility-panel treatment without assuming exact HTML. */
#colMain .flex-container > .flex-item-no-border-sm-font:has(a[href*="familysearch.org"]),
#colMain .flex-container > .flex-item-no-border-sm-font:has(a[href*="findagrave.com"]),
#colMain .flex-container > .flex-item-no-border-sm-font:has(a[href*="ancestry.com"]),
#colMain .flex-container > .flex-item-no-border:has(a[href*="familysearch.org"]),
#colMain .flex-container > .flex-item-no-border:has(a[href*="findagrave.com"]),
#colMain .flex-container > .flex-item-no-border:has(a[href*="ancestry.com"]) {
    padding: 22px 24px !important;
    border: 1px solid #dbe2da;
    border-radius: 10px;
    background: #fbfcfa;
}

/* Source/research headings that immediately precede these utilities. */
#colMain h2 + .flex-container:has(a[href*="familysearch.org"]),
#colMain h2 + .flex-container:has(a[href*="findagrave.com"]),
#colMain h2 + .flex-container:has(a[href*="ancestry.com"]) {
    margin-top: 10px;
}

/* Keep source links compact when many appear together. */
#colMain .flex-container:has(a[href*="familysearch.org"]) a[href*="familysearch.org"],
#colMain .flex-container:has(a[href*="findagrave.com"]) a[href*="findagrave.com"],
#colMain .flex-container:has(a[href*="ancestry.com"]) a[href*="ancestry.com"] {
    margin-top: 4px;
    margin-bottom: 4px;
}

/* ---------------------------------------------------------
   CEMETERY / BURIAL INFORMATION
   --------------------------------------------------------- */

#colMain a[href*="/Cemeteries/"],
#colMain a[href*="findagrave.com"] {
    color: #245f43 !important;
}

#colMain .flex-container:has(a[href*="/Cemeteries/"]) {
    margin-top: 18px;
    margin-bottom: 26px;
}

#colMain .flex-container:has(a[href*="/Cemeteries/"]) > div {
    border-radius: 9px;
}

/* ---------------------------------------------------------
   RELATED PERSON / PLACE DISCOVERY
   --------------------------------------------------------- */

/* Related links should feel navigational rather than like raw database output. */
#colMain a[href*="/Places/Details/"],
#colMain a[href*="/Ancestors/Details/"] {
    text-decoration-thickness: 1px;
}

#colMain a[href*="/Places/Details/"]:hover,
#colMain a[href*="/Ancestors/Details/"]:hover {
    color: #173d2a !important;
}

/* ---------------------------------------------------------
   COMMERCIAL / PRODUCT CONTENT
   --------------------------------------------------------- */

/* Product and store areas should remain visible, but genealogy content leads. */
#colMain a[href*="amazon.com"],
#colMain a[href*="amzn.to"] {
    color: #56665b !important;
    font-weight: 600;
}

#colMain .flex-container:has(a[href*="amazon.com"]),
#colMain .flex-container:has(a[href*="amzn.to"]) {
    opacity: .9;
}

#colMain .flex-container:has(a[href*="amazon.com"]) > div,
#colMain .flex-container:has(a[href*="amzn.to"]) > div {
    border-color: #e2e6e1 !important;
    box-shadow: none !important;
}

/* Images in product areas should not overpower ancestor/history imagery. */
#colMain .flex-container:has(a[href*="amazon.com"]) img,
#colMain .flex-container:has(a[href*="amzn.to"]) img {
    max-height: 180px;
    width: auto;
}

/* ---------------------------------------------------------
   COMMENTS / DISCUSSION
   --------------------------------------------------------- */

/* Give embedded discussion a clear break from the genealogy record above it. */
#colMain #disqus_thread {
    margin-top: 42px;
    padding-top: 28px;
    border-top: 1px solid #dce3da;
}

/* ---------------------------------------------------------
   PAGE-END NAVIGATION / SEARCH AGAIN
   --------------------------------------------------------- */

#colMain form[action*="/Ancestors"],
#colMain form[action*="SearchByName"],
#colMain form[action*="Search"] {
    max-width: 100%;
}

#colMain input[type="text"],
#colMain input[type="number"],
#colMain select {
    border: 1px solid #cbd6cd;
    border-radius: 6px;
}

#colMain input[type="text"]:focus,
#colMain input[type="number"]:focus,
#colMain select:focus {
    border-color: #6f927a;
    outline: 2px solid rgba(79, 124, 91, .13);
    outline-offset: 1px;
}

/* ---------------------------------------------------------
   SMALL POLISH
   --------------------------------------------------------- */

#colMain blockquote {
    margin: 20px 0;
    padding: 16px 20px;
    border-left: 4px solid #b59a5a;
    background: #f8faf7;
    color: #4b5a50;
}

#colMain ul,
#colMain ol {
    padding-left: 1.35rem;
}

#colMain li {
    margin-bottom: .35rem;
}

#colMain small,
#colMain .small,
#colMain .sm-font {
    color: #66736a;
}

/* Avoid motion where the user's OS requests it. */
@media (prefers-reduced-motion: reduce) {
    #colMain *,
    #colMain *::before,
    #colMain *::after {
        transition: none !important;
        animation: none !important;
    }
}

@media (max-width: 760px) {
    #colMain #disqus_thread {
        margin-top: 30px;
        padding-top: 20px;
    }

    #colMain .flex-container:has(a[href*="amazon.com"]) img,
    #colMain .flex-container:has(a[href*="amzn.to"]) img {
        max-height: 150px;
    }
}


/* =========================================================
   Ancestor Details V2 - CSS ONLY, Pass 05
   Burial, family tools, place discovery, event presentation
   ZERO changes to Details.aspx
   ========================================================= */

/* ---------------------------------------------------------
   BURIAL / OBITUARY BLOCK
   The original Details.aspx renders this in a green flex item.
   We keep the markup and make the content feel archival rather
   than promotional.
   --------------------------------------------------------- */

#colMain .flex-container > .flex-item-green-no-border b {
    color: #244231;
}

#colMain .flex-container > .flex-item-green-no-border a[href*="/Cemeteries/"],
#colMain .flex-container > .flex-item-green-no-border a[href*="/Places/"] {
    color: #245f43 !important;
    font-weight: 700;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

/* Death/burial sections can contain long obituary text. */
#colMain .flex-container > .flex-item-green-no-border {
    line-height: 1.65;
    overflow-wrap: anywhere;
}

/* ---------------------------------------------------------
   PERSON RESEARCH / TRIVIA LINKS
   Existing markup: a flex-container containing .flex-item-sm-font.
   Make these feel like a compact research toolbox.
   --------------------------------------------------------- */

#colMain .flex-container > .flex-item-sm-font {
    padding: 16px 14px !important;
    border: 1px solid #dce3da;
    border-radius: 9px;
    background: #ffffff;
    text-align: center;
    box-shadow: 0 3px 12px rgba(30,55,38,.035);
}

#colMain .flex-container > .flex-item-sm-font > a:first-child {
    color: #245f43 !important;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none !important;
}

#colMain .flex-container > .flex-item-sm-font > a:first-child:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

#colMain .flex-container > .flex-item-sm-font > a:first-child img {
    display: block;
    margin: 0 auto 10px;
    width: auto;
    max-width: 52px;
    height: 48px;
    object-fit: contain;
}

/* Amazon companion links inside research-tool tiles stay visible but quiet. */
#colMain .flex-container > .flex-item-sm-font a[href*="amzn.to"],
#colMain .flex-container > .flex-item-sm-font a[href*="amazon.com"] {
    display: block;
    margin-top: 8px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #728078 !important;
    font-size: .78rem;
    font-weight: 500;
    line-height: 1.4;
}

/* ---------------------------------------------------------
   EXPLORE PLACE CALLOUT
   Existing white centered card from original Details.aspx.
   --------------------------------------------------------- */

#colMain .flex-item-no-border-centered[style*="background:#ffffff"] {
    text-align: left !important;
}

#colMain .flex-item-no-border-centered[style*="background:#ffffff"] > h2 {
    margin-bottom: 10px !important;
}

#colMain .flex-item-no-border-centered[style*="background:#ffffff"] > h2 + br {
    display: none;
}

/* ---------------------------------------------------------
   HISTORY / EVENTS
   Polish existing event cards a little further.
   --------------------------------------------------------- */

#colMain #toggleText2 .flex-item-gray-no-border-sm-font {
    position: relative;
    overflow: hidden;
}

#colMain #toggleText2 .flex-item-gray-no-border-sm-font::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: #b59a5a;
}

#colMain #toggleText2 .flex-item-gray-no-border-sm-font br + br {
    line-height: .5;
}

#colMain #toggleText2 .flex-item-gray-no-border-sm-font strong,
#colMain #toggleText2 .flex-item-gray-no-border-sm-font b {
    color: #2b4434;
}

/* Keep the main event stream visually above seasonal/shop content. */
#colMain #toggleText2 .flex-item-gray-no-border-sm-font {
    order: 0;
}

#colMain #toggleText2 .flex-item-green-no-border {
    opacity: .88;
}

/* ---------------------------------------------------------
   IMAGE / VIDEO BLOCKS
   --------------------------------------------------------- */

#colMain #toggleText2 .flex-container[style*="max-width: 600px"] {
    margin: 24px auto;
    border-radius: 10px;
    overflow: hidden;
}

#colMain #toggleText2 iframe {
    display: block;
    border-radius: 8px;
}

/* ---------------------------------------------------------
   ADDED / UPDATED METADATA
   --------------------------------------------------------- */

#colMain .flex-container > .flex-item-green-no-border font[size="-1"] {
    color: #718078;
    font-size: .78rem;
}

#colMain .flex-container > .flex-item-green-no-border font[size="-1"] i {
    color: inherit;
}

/* ---------------------------------------------------------
   PAGE SECTION SEPARATION
   --------------------------------------------------------- */

#colMain #toggleText1,
#colMain #toggleText2,
#colMain #disqus_thread {
    scroll-margin-top: 96px;
}

#colMain #toggleText1 + br,
#colMain #toggleText2 + br {
    display: none;
}

/* Avoid very wide readable text runs in long narrative areas. */
#colMain #toggleText1,
#colMain #toggleText2 {
    max-width: 100%;
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 900px) {
    #colMain .flex-container > .flex-item-sm-font {
        flex: 1 1 calc(50% - 12px);
        min-width: 220px;
    }
}

@media (max-width: 600px) {
    #colMain .flex-container > .flex-item-sm-font {
        flex: 1 1 100%;
        min-width: 0;
    }

    #colMain .flex-container > .flex-item-sm-font > a:first-child img {
        max-width: 46px;
        height: 44px;
    }
}


/* =========================================================
   Ancestor Details V2 - CSS ONLY, Pass 06
   Based on the current live Details layout:
   profile -> family narrative -> life/records -> research CTA
   -> related content -> quieter products/comments.
   ZERO changes to Details.aspx.
   ========================================================= */

/* ---------------------------------------------------------
   1. MAIN FAMILY NARRATIVE
   The second direct flex section inside the Person schema block is the
   ancestry/family narrative in the original Details.aspx.
   --------------------------------------------------------- */

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:nth-of-type(2) {
    margin: 30px 0;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:nth-of-type(2) > .flex-item-no-border-sm-font {
    width: 100%;
    padding: 30px 34px !important;
    border: 1px solid #dbe2da;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 6px 20px rgba(30,55,38,.045);
    color: #33483a;
    font-size: 1rem;
    line-height: 1.72;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:nth-of-type(2) h2 {
    margin: 0 0 18px !important;
    padding: 0 0 12px !important;
    border-bottom: 1px solid #dce3da;
    color: #183c2a !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(1.45rem, 2.35vw, 2rem) !important;
    line-height: 1.24 !important;
    text-align: left !important;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:nth-of-type(2) center {
    margin: -4px 0 22px;
    color: #6a766e;
    text-align: left;
    font-size: .94rem;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:nth-of-type(2) span[itemprop="parent"] a,
#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:nth-of-type(2) span[itemprop="spouse"] a,
#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:nth-of-type(2) span[itemprop="children"] a {
    color: #245f43 !important;
    font-weight: 700;
}

/* Tiny remove-parent icons are useful to editors but should not dominate. */
#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:nth-of-type(2) img[src*="delete_this"] {
    width: 24px !important;
    height: auto !important;
    opacity: .72;
    vertical-align: middle;
}

/* ---------------------------------------------------------
   2. OCCUPATION / FACT PANELS
   Existing gray information boxes are useful historical context.
   Distinguish them from the main event stream.
   --------------------------------------------------------- */

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container > .flex-item-gray-no-border-sm-font {
    padding: 20px 22px !important;
    border-left: 4px solid #b59a5a !important;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container > .flex-item-gray-no-border-sm-font > b:first-child {
    display: inline-block;
    margin-bottom: 7px;
    color: #234532;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.08rem;
}

/* ---------------------------------------------------------
   3. SIGN-IN / "THERE'S MORE" RESEARCH CTA
   Exact selector is based on the original inline background.
   --------------------------------------------------------- */

#colMain .flex-item-no-border-centered[style*="background:#e1f0d5"] {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 26px;
    align-items: center;
    margin: 34px 0 !important;
    padding: 28px 32px !important;
    border: 1px solid #cddacb;
    border-left: 4px solid #315f3e;
    border-radius: 12px;
    background: #eef4ec !important;
    text-align: left !important;
    box-shadow: 0 6px 20px rgba(30,55,38,.045);
}

#colMain .flex-item-no-border-centered[style*="background:#e1f0d5"] p {
    margin: 0;
}

#colMain .flex-item-no-border-centered[style*="background:#e1f0d5"] p:first-child {
    grid-row: 1 / span 2;
}

#colMain .flex-item-no-border-centered[style*="background:#e1f0d5"] img[src*="wait_theres_more_sm"] {
    display: block;
    width: 140px !important;
    height: auto !important;
    margin: 0 auto;
    border-radius: 8px;
    box-shadow: none;
}

#colMain .flex-item-no-border-centered[style*="background:#e1f0d5"] .greenbutton {
    margin: 8px 8px 8px 0;
    padding: 10px 18px !important;
    border-radius: 6px !important;
}

#colMain .flex-item-no-border-centered[style*="background:#e1f0d5"] font[size="-1"] {
    color: #68766d;
    line-height: 1.5;
}

/* ---------------------------------------------------------
   4. GIFT / PRODUCT AREA
   Keep monetization present, but clearly secondary to genealogy.
   --------------------------------------------------------- */

#colMain .flex-container:has(a[href="/Products"]),
#colMain .flex-container:has(a[href*="greenerpasture.printify.me"]),
#colMain .flex-container:has(a[href*="amzn.to"]),
#colMain .flex-container:has(a[href*="amazon.com"]) {
    margin-top: 12px;
    margin-bottom: 18px;
}

#colMain .flex-container:has(a[href="/Products"]) > div,
#colMain .flex-container:has(a[href*="greenerpasture.printify.me"]) > div,
#colMain .flex-container:has(a[href*="amzn.to"]) > div,
#colMain .flex-container:has(a[href*="amazon.com"]) > div {
    padding: 14px !important;
    border: 1px solid #e1e6e0 !important;
    border-radius: 8px !important;
    background: #fbfcfa !important;
    box-shadow: none !important;
}

#colMain a[href*="greenerpasture.printify.me"] img,
#colMain a[href*="amzn.to"] img,
#colMain a[href*="amazon.com"] img {
    max-width: 110px !important;
    max-height: 110px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain;
}

#colMain a[href="/Products"] {
    color: #53645a !important;
}

/* Store-related headings become secondary editorial headings. */
#colMain h2:has(img[src*="christmas"]),
#colMain h2:has(+ .flex-container a[href="/Products"]) {
    margin-top: 34px !important;
    color: #526158 !important;
    font-size: clamp(1.25rem, 2vw, 1.6rem) !important;
}

/* ---------------------------------------------------------
   5. COMMENTS
   --------------------------------------------------------- */

#colMain .flex-container:has(#disqus_thread) {
    margin-top: 36px;
}

#colMain .flex-container:has(#disqus_thread) > .flex-item-no-border {
    width: 100%;
    padding: 28px 0 0 !important;
    border-top: 1px solid #dce3da;
}

/* ---------------------------------------------------------
   6. FIRST-SCREEN BALANCE
   --------------------------------------------------------- */

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type {
    margin-bottom: 24px;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type + br,
#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:nth-of-type(2) + br {
    display: none;
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 760px) {
    #colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:nth-of-type(2) > .flex-item-no-border-sm-font {
        padding: 22px 20px !important;
    }

    #colMain .flex-item-no-border-centered[style*="background:#e1f0d5"] {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 22px 20px !important;
    }

    #colMain .flex-item-no-border-centered[style*="background:#e1f0d5"] p:first-child {
        grid-row: auto;
    }

    #colMain .flex-item-no-border-centered[style*="background:#e1f0d5"] img[src*="wait_theres_more_sm"] {
        width: 110px !important;
        margin-left: 0;
    }

    #colMain .flex-item-no-border-centered[style*="background:#e1f0d5"] .greenbutton {
        display: inline-block;
        margin-bottom: 8px;
    }
}


/* =========================================================
   Ancestor Details V2 - CSS ONLY, Pass 07
   Records, tables, forms, and section hierarchy
   ZERO changes to Details.aspx
   ========================================================= */

/* ---------------------------------------------------------
   SECTION HEADINGS
   Bring older H2/H3 headings into one visual hierarchy while
   staying scoped to Details pages only.
   --------------------------------------------------------- */

#colMain > div[itemscope][itemtype="https://schema.org/Person"] h2 {
    margin-top: 34px;
    margin-bottom: 16px;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] h2:not(:first-child) {
    padding-bottom: 10px;
    border-bottom: 1px solid #dfe5de;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] h3 {
    color: #31513d;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.12rem;
}

/* ---------------------------------------------------------
   CENSUS / RECORD TABLES
   Keep genuine tabular genealogy data tabular, but improve
   readability and mobile behavior.
   --------------------------------------------------------- */

#colMain table {
    width: 100%;
    margin: 16px 0 24px;
    border: 1px solid #dce3da;
    border-radius: 9px;
    overflow: hidden;
    background: #fff;
}

#colMain table thead th,
#colMain table tr:first-child th {
    background: #eef3ed;
    color: #294333;
    font-size: .88rem;
    letter-spacing: .01em;
}

#colMain table th,
#colMain table td {
    border-bottom: 1px solid #e6ebe5;
    vertical-align: top;
    line-height: 1.5;
}

#colMain table tr:last-child td {
    border-bottom: 0;
}

#colMain table tr:nth-child(even) td {
    background: #fbfcfa;
}

#colMain table a {
    color: #245f43;
    font-weight: 700;
}

/* ---------------------------------------------------------
   SEARCH / RESEARCH FORMS
   --------------------------------------------------------- */

#colMain form {
    max-width: 100%;
}

#colMain form label,
#colMain form .label {
    color: #3b5042;
    font-weight: 700;
}

#colMain input[type="text"],
#colMain input[type="number"],
#colMain input[type="email"],
#colMain select,
#colMain textarea {
    min-height: 40px;
    padding: 8px 10px;
    background: #fff;
}

#colMain textarea {
    min-height: 110px;
    resize: vertical;
}

#colMain input[type="submit"],
#colMain button,
#colMain .greenbutton {
    min-height: 40px;
}

/* Search-again forms near the bottom often use legacy row/span layout.
   Make those rows breathe without changing markup. */
#colMain .row {
    margin-bottom: 10px;
}

#colMain .row .formw {
    padding-left: 8px;
}

/* ---------------------------------------------------------
   "ADD / EDIT" UTILITIES
   Keep editor controls discoverable but visually secondary.
   --------------------------------------------------------- */

#colMain a[href*="Edit"],
#colMain a[href*="Add"],
#colMain a[href*="Delete"] {
    text-underline-offset: 2px;
}

#colMain a[href*="AddLifeEventFor"],
#colMain a[href*="AddLifeEvent"],
#colMain a[href*="EditLifeEvent"] {
    color: #4c6655 !important;
    font-weight: 700;
}

#colMain img[src*="edit"],
#colMain img[src*="delete"],
#colMain img[src*="add"] {
    opacity: .8;
}

#colMain a:hover img[src*="edit"],
#colMain a:hover img[src*="delete"],
#colMain a:hover img[src*="add"] {
    opacity: 1;
}

/* ---------------------------------------------------------
   EVENT STREAM RHYTHM
   --------------------------------------------------------- */

#colMain #toggleText2 .flex-container {
    align-items: stretch;
}

#colMain #toggleText2 .flex-item-gray-no-border-sm-font {
    min-height: 118px;
}

#colMain #toggleText2 .flex-item-gray-no-border-sm-font > br:first-child {
    display: none;
}

#colMain #toggleText2 .flex-item-gray-no-border-sm-font a + br {
    line-height: .7;
}

/* ---------------------------------------------------------
   FAMILY / RELATIONSHIP READABILITY
   --------------------------------------------------------- */

#colMain #toggleText1 {
    color: #35483b;
}

#colMain #toggleText1 b,
#colMain #toggleText1 strong {
    color: #284431;
}

#colMain #toggleText1 hr {
    margin: 20px 0;
}

#colMain #toggleText1 .greenbutton,
#colMain #toggleText1 .yellowbutton,
#colMain #toggleText1 .graybutton {
    margin: 4px 5px 4px 0;
}

/* ---------------------------------------------------------
   PAGE-END "TRY AGAIN" AREA
   --------------------------------------------------------- */

#colMain .flex-item-centered[style*="background:#ffffff"] form,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"] form {
    margin-top: 16px;
}

#colMain .flex-item-centered[style*="background:#ffffff"] input[type="submit"],
#colMain .flex-item-no-border-centered[style*="background:#ffffff"] input[type="submit"] {
    margin-top: 8px;
}

/* ---------------------------------------------------------
   ACCESSIBILITY / FOCUS
   --------------------------------------------------------- */

#colMain a:focus-visible,
#colMain button:focus-visible,
#colMain input:focus-visible,
#colMain select:focus-visible,
#colMain textarea:focus-visible {
    outline: 3px solid rgba(68, 112, 80, .28);
    outline-offset: 2px;
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 760px) {
    #colMain table {
        font-size: .9rem;
    }

    #colMain table th,
    #colMain table td {
        padding: 8px 9px;
    }

    #colMain .row .label,
    #colMain .row .formw {
        display: block;
        width: 100%;
        padding-left: 0;
    }

    #colMain input[type="text"],
    #colMain input[type="number"],
    #colMain input[type="email"],
    #colMain select,
    #colMain textarea {
        width: 100%;
        max-width: 100%;
    }

    #colMain #toggleText2 .flex-item-gray-no-border-sm-font {
        min-height: 0;
    }
}


/* =========================================================
   Ancestor Details V2 - Safe Markup Pass 08
   Details.aspx was edited using byte-for-byte replacements only.
   BOM, CRLF line endings, and all VB control-flow remain intact.
   ========================================================= */

.gp-details-page {
    width: min(1180px, calc(100% - 32px));
    margin: 24px auto 64px;
}

.gp-details-section-heading {
    margin: 0 0 18px !important;
    padding: 0 0 12px !important;
    border-bottom: 1px solid #dce3da;
    color: #183c2a !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(1.45rem, 2.4vw, 2rem) !important;
    line-height: 1.2 !important;
    text-align: left !important;
}

/* Family summary */
.gp-details-family-summary {
    margin: 28px 0;
}

.gp-details-family-summary-inner {
    width: 100%;
    padding: 30px 34px !important;
    border: 1px solid #dbe2da;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(30,55,38,.045);
    line-height: 1.72;
}

.gp-details-family-summary-inner center {
    margin-bottom: 18px;
    color: #69766d;
    text-align: left;
}

/* Family & children */
.gp-details-family-children {
    margin: 30px 0;
}

.gp-details-family-children-inner {
    width: 100%;
    padding: 28px 32px !important;
    border: 1px solid #dbe2da;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(30,55,38,.04);
}

/* Life/history */
.gp-details-history-section {
    margin: 32px 0;
}

.gp-details-history-inner {
    width: 100%;
    padding: 30px 32px !important;
    border: 1px solid #dbe2da;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(30,55,38,.045);
}

/* Research continuation CTA */
.gp-details-more-cta {
    margin: 34px 0;
}

.gp-details-more-cta-inner {
    display: grid;
    grid-template-columns: 150px minmax(0,1fr);
    gap: 26px;
    align-items: center;
    padding: 28px 32px !important;
    border: 1px solid #cddacb !important;
    border-left: 4px solid #315f3e !important;
    border-radius: 12px;
    background: #eef4ec !important;
    text-align: left !important;
    box-shadow: 0 6px 20px rgba(30,55,38,.045);
}

.gp-details-more-cta-inner img[src*="wait_theres_more_sm"] {
    width: 140px !important;
    height: auto !important;
    border-radius: 8px;
}

/* Gifts are useful, but secondary. */
.gp-details-gifts-heading {
    margin: 38px 0 16px !important;
    color: #5c685f !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(1.25rem, 2vw, 1.6rem) !important;
    line-height: 1.25 !important;
}

/* Comments */
.gp-details-comments {
    margin-top: 38px;
}

.gp-details-comments-inner {
    width: 100%;
    padding-top: 28px !important;
    border-top: 1px solid #dce3da;
}

@media (max-width: 760px) {
    .gp-details-family-summary-inner,
    .gp-details-family-children-inner,
    .gp-details-history-inner {
        padding: 22px 20px !important;
    }

    .gp-details-more-cta-inner {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 22px 20px !important;
    }

    .gp-details-more-cta-inner img[src*="wait_theres_more_sm"] {
        width: 110px !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Safe Markup Pass 09
   A focused top-of-page/profile refinement.
   ========================================================= */

.gp-details-profile-title {
    margin: 0 !important;
    padding: 28px 30px 10px !important;
    color: #183c2a !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(2rem, 4vw, 3.1rem) !important;
    line-height: 1.08 !important;
    text-align: left !important;
}

/* Editing/status icons still live inside the H1 in the legacy view.
   Keep them useful without letting them visually overpower the name. */
.gp-details-profile-title > a img,
.gp-details-profile-title > img {
    max-height: 46px;
    width: auto;
    margin: 0 5px 5px 0;
    vertical-align: middle;
}

.gp-details-profile-title .Person {
    display: inline;
    color: #183c2a !important;
}

/* Birth/death/location facts now have their own semantic visual region. */
.gp-details-vitals {
    margin: 0 30px 26px;
    padding: 18px 0 0;
    border-top: 1px solid #d9e0d8;
    color: #4b5b51;
    font-size: .98rem;
    line-height: 1.72;
    text-align: left;
}

.gp-details-vitals b {
    color: #284431;
}

.gp-details-vitals a {
    color: #245f43 !important;
    font-weight: 650;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

/* Replace the old centered marketing slogan with a proper section intro. */
.gp-details-family-intro {
    max-width: 780px;
    margin: -2px 0 22px !important;
    color: #66736a;
    font-size: .96rem;
    line-height: 1.65;
}

.gp-details-family-intro strong {
    color: #3a4e40;
}

/* The birth sentence within Family Connections is supporting information,
   not another page-level headline. */
.gp-details-family-summary-inner > h2:not(.gp-details-section-heading) {
    margin: 18px 0 14px !important;
    padding: 15px 18px !important;
    border: 1px solid #e0e6df !important;
    border-radius: 8px;
    background: #f7f9f6;
    color: #36503f !important;
    font-family: inherit !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    line-height: 1.5 !important;
    text-align: left !important;
}

/* The person name repeated inside schema markup should read like body copy
   when it appears in the family narrative. */
.gp-details-family-summary-inner > span[itemprop="name"] {
    font-weight: 700;
    color: #284431;
}

@media (max-width: 760px) {
    .gp-details-profile-title {
        padding: 22px 20px 8px !important;
        font-size: 2rem !important;
    }

    .gp-details-profile-title > a img,
    .gp-details-profile-title > img {
        max-height: 38px;
    }

    .gp-details-vitals {
        margin: 0 20px 22px;
        padding-top: 15px;
        font-size: .93rem;
    }
}


/* =========================================================
   Ancestor Details V2 - Safe Markup Pass 10
   Portrait enlargement + family/children refinement
   No additional Details.aspx edits in this pass.
   ========================================================= */

/* ---------------------------------------------------------
   PERSON PORTRAIT / "smallimage"
   The portrait was visually too small on the live Details page.
   Scope this to the Person schema block so other site thumbnails
   are not unintentionally enlarged.
   --------------------------------------------------------- */

#colMain > div[itemscope][itemtype="https://schema.org/Person"] img.smallimage,
#colMain > div[itemscope][itemtype="https://schema.org/Person"] .smallimage img {
    width: 190px !important;
    max-width: 190px !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain;
    border-radius: 10px;
    box-shadow: 0 6px 20px rgba(30,55,38,.12);
}

/* If the legacy smallimage class is applied to a wrapper instead of the IMG,
   give that wrapper enough room for the larger portrait. */
#colMain > div[itemscope][itemtype="https://schema.org/Person"] .smallimage {
    max-width: 210px;
}

/* Keep portrait links from inheriting utility-button presentation. */
#colMain > div[itemscope][itemtype="https://schema.org/Person"] a:has(> img.smallimage) {
    display: inline-block;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

/* ---------------------------------------------------------
   FAMILY & CHILDREN
   We already added safe structural hooks in Pass 08.
   This pass makes that area more readable without touching VB.
   --------------------------------------------------------- */

.gp-details-family-children {
    margin-top: 34px;
    margin-bottom: 34px;
}

.gp-details-family-children-inner {
    position: relative;
    overflow: hidden;
}

.gp-details-family-children-inner::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #315f3e;
}

.gp-details-family-children-inner > .gp-details-section-heading {
    margin-left: 2px !important;
}

/* Marriage/child output is generated as HTML strings and can be dense.
   Give links and separators more breathing room without assuming exact tags. */
.gp-details-family-children-inner a[href*="/Ancestors/Details/"] {
    color: #245f43 !important;
    font-weight: 700;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.gp-details-family-children-inner br + br {
    line-height: .65;
}

.gp-details-family-children-inner hr {
    margin: 24px 0;
    border: 0;
    border-top: 1px solid #dfe5de;
}

/* Record/source links inside marriage blocks become compact supporting actions. */
.gp-details-family-children-inner a[href*="familysearch.org"],
.gp-details-family-children-inner a[href*="numerique.banq.qc.ca"] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 8px 5px 4px 0;
    padding: 7px 10px;
    border: 1px solid #d5ded6;
    border-radius: 6px;
    background: #f7faf6;
    color: #315a40 !important;
    font-size: .88rem;
    text-decoration: none !important;
}

.gp-details-family-children-inner a[href*="familysearch.org"]:hover,
.gp-details-family-children-inner a[href*="numerique.banq.qc.ca"]:hover {
    background: #edf4eb;
    border-color: #c1d0c4;
}

.gp-details-family-children-inner a[href*="familysearch.org"] img,
.gp-details-family-children-inner a[href*="numerique.banq.qc.ca"] img {
    width: auto !important;
    max-width: 28px !important;
    height: 30px !important;
    margin: 0 !important;
}

/* ---------------------------------------------------------
   TOP PROFILE BALANCE WITH LARGER PORTRAIT
   --------------------------------------------------------- */

/* Let the first profile block accommodate a larger portrait gracefully. */
#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type {
    padding-top: 4px;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type .flex-item-no-border-centered,
#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type .flex-item-no-border {
    min-width: 0;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 760px) {
    #colMain > div[itemscope][itemtype="https://schema.org/Person"] img.smallimage,
    #colMain > div[itemscope][itemtype="https://schema.org/Person"] .smallimage img {
        width: 145px !important;
        max-width: 145px !important;
    }

    #colMain > div[itemscope][itemtype="https://schema.org/Person"] .smallimage {
        max-width: 160px;
    }

    .gp-details-family-children-inner a[href*="familysearch.org"],
    .gp-details-family-children-inner a[href*="numerique.banq.qc.ca"] {
        display: flex;
        width: fit-content;
        max-width: 100%;
    }
}


/* =========================================================
   Ancestor Details V2 - Safe Markup Pass 11
   Portrait correction + family relationship polish
   ZERO new Details.aspx/VB changes in this pass.
   ========================================================= */

/* ---------------------------------------------------------
   PORTRAIT CORRECTION
   The source "smallimage" files are low-resolution thumbnails,
   so 190px was too aggressive. Keep them crisp and useful.
   --------------------------------------------------------- */

#colMain > div[itemscope][itemtype="https://schema.org/Person"] img.smallimage,
#colMain > div[itemscope][itemtype="https://schema.org/Person"] .smallimage img {
    width: 96px !important;
    max-width: 96px !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(30,55,38,.10);
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] .smallimage {
    max-width: 108px;
}

/* ---------------------------------------------------------
   FAMILY / MARRIAGE / CHILDREN POLISH
   Use the safe structural hooks already present from Pass 08.
   --------------------------------------------------------- */

.gp-details-family-children-inner {
    color: #35483b;
    line-height: 1.7;
}

.gp-details-family-children-inner > b,
.gp-details-family-children-inner > strong {
    color: #284431;
}

/* Legacy family links can be dense. Give linked ancestor names a clearer,
   consistent relationship-navigation treatment. */
.gp-details-family-children-inner a[href*="/Ancestors/Details/"] {
    display: inline;
    color: #245f43 !important;
    font-weight: 700;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.gp-details-family-children-inner a[href*="/Ancestors/Details/"]:hover {
    color: #173d2a !important;
}

/* Give spouse/marriage groups a little visual rhythm where the existing
   markup uses horizontal rules and repeated line breaks. */
.gp-details-family-children-inner hr {
    margin: 26px 0 22px;
    border: 0;
    border-top: 1px solid #dce3da;
}

.gp-details-family-children-inner br + br {
    line-height: .8;
}

/* Existing family-tree utility buttons inside the family section. */
.gp-details-family-children-inner .greenbutton,
.gp-details-family-children-inner .yellowbutton,
.gp-details-family-children-inner .graybutton {
    margin: 6px 5px 6px 0;
    padding: 8px 13px !important;
    min-height: 36px;
    border-radius: 6px !important;
    box-shadow: none !important;
}

/* Source/document links related to marriages become secondary utilities. */
.gp-details-family-children-inner a[href*="familysearch.org"],
.gp-details-family-children-inner a[href*="numerique.banq.qc.ca"],
.gp-details-family-children-inner a[href*="archive.org"] {
    font-size: .86rem;
}

/* ---------------------------------------------------------
   FAMILY SUMMARY POLISH
   --------------------------------------------------------- */

.gp-details-family-summary-inner {
    position: relative;
}

.gp-details-family-summary-inner::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #b59a5a;
}

.gp-details-family-summary-inner span[itemprop="parent"] a,
.gp-details-family-summary-inner span[itemprop="spouse"] a,
.gp-details-family-summary-inner span[itemprop="children"] a {
    color: #245f43 !important;
    font-weight: 700;
    text-underline-offset: 3px;
}

/* ---------------------------------------------------------
   PROFILE / PHOTO SPACING
   --------------------------------------------------------- */

.gp-details-profile-title + .gp-details-vitals {
    margin-top: 0;
}

/* Keep the thumbnail from looking lost next to large profile typography. */
#colMain > div[itemscope][itemtype="https://schema.org/Person"] a:has(> img.smallimage) {
    margin: 4px 12px 8px 0;
    vertical-align: top;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 760px) {
    #colMain > div[itemscope][itemtype="https://schema.org/Person"] img.smallimage,
    #colMain > div[itemscope][itemtype="https://schema.org/Person"] .smallimage img {
        width: 82px !important;
        max-width: 82px !important;
    }

    #colMain > div[itemscope][itemtype="https://schema.org/Person"] .smallimage {
        max-width: 92px;
    }

    .gp-details-family-children-inner .greenbutton,
    .gp-details-family-children-inner .yellowbutton,
    .gp-details-family-children-inner .graybutton {
        display: inline-block;
    }
}


/* =========================================================
   Ancestor Details V2 - Profile Layout Pass 12
   Implements the approved profile/family direction.
   ========================================================= */

/* Spacer GIF/JPGs were creating visible empty boxes under modern card styles. */
#colMain img[src*="white_spacer"] {
    display: none !important;
}

/* -------------------- PROFILE -------------------- */

.gp-details-profile-title {
    display: grid !important;
    grid-template-columns: 76px minmax(0, 1fr);
    column-gap: 24px;
    row-gap: 6px;
    align-items: center;
    padding: 28px 30px 18px !important;
}

/* The old icon stream remains in the ASPX for functionality/history, but the
   redesigned page uses the explicit tool bar below instead. */
.gp-details-legacy-icons,
.gp-details-postname-actions {
    display: none !important;
}

.gp-details-main-photo {
    grid-column: 1;
    grid-row: 1;
    display: block;
    width: 75px;
}

.gp-details-main-photo img {
    display: block;
    width: 75px !important;
    max-width: 75px !important;
    height: auto !important;
    border-radius: 9px;
    border: 1px solid #d3dbd3;
    box-shadow: 0 4px 14px rgba(30,55,38,.10);
}

/* Do NOT upscale thumbnail source files. */
#colMain > div[itemscope][itemtype="https://schema.org/Person"] img.smallimage,
#colMain > div[itemscope][itemtype="https://schema.org/Person"] .smallimage img {
    width: 75px !important;
    max-width: 75px !important;
    height: auto !important;
}

.gp-details-name-block {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}

.gp-details-name-block .Person {
    display: block;
    color: #183c2a !important;
    font-size: clamp(2.15rem, 4.2vw, 3.6rem);
    line-height: 1.04;
    letter-spacing: .005em;
}

.gp-details-vitals {
    margin-top: -1px;
    padding: 19px 30px 25px;
    background: #fff;
    border-top: 1px solid #dce3da;
}

/* -------------------- ACTION BAR -------------------- */

.gp-details-actionbar {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin: -10px 0 30px;
    border: 1px solid #dbe2da;
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 5px 18px rgba(30,55,38,.035);
}

.gp-details-action {
    min-height: 92px;
    padding: 15px 10px 13px;
    border-right: 1px solid #e0e5df;
    color: #30463a !important;
    text-align: center;
    text-decoration: none !important;
    font-size: .86rem;
    font-weight: 700;
    line-height: 1.3;
}

.gp-details-action:last-child {
    border-right: 0;
}

.gp-details-action:hover {
    background: #f5f8f4;
    color: #183c2a !important;
}

.gp-details-action img {
    display: block;
    width: auto !important;
    max-width: 42px !important;
    height: 40px !important;
    object-fit: contain;
    margin: 0 auto 8px;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.gp-details-action span {
    display: block;
}

/* -------------------- FAMILY CONNECTION CARDS -------------------- */

.gp-details-relationship-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 20px 0 24px;
    border: 1px solid #dce3da;
    border-radius: 10px;
    background: #fbfcfa;
    overflow: hidden;
}

.gp-details-relationship-card {
    min-height: 128px;
    padding: 21px 20px;
    border-right: 1px solid #dce3da;
}

.gp-details-relationship-card:last-child {
    border-right: 0;
}

.gp-details-relationship-card > strong {
    display: block;
    margin-bottom: 10px;
    color: #233f2f;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.08rem;
}

.gp-details-relationship-links {
    display: grid;
    gap: 6px;
    color: #66736a;
    font-size: .92rem;
    line-height: 1.45;
}

.gp-details-relationship-links a {
    color: #245f43 !important;
    font-weight: 700;
    text-decoration: none !important;
}

.gp-details-relationship-links a:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

/* Remove redundant whitespace just below the new family grid. */
.gp-details-relationship-grid + br,
.gp-details-relationship-grid + br + br {
    display: none;
}

/* -------------------- FAMILY DETAILS -------------------- */

#marriages {
    scroll-margin-top: 90px;
}

.gp-details-family-children-inner {
    border-left: 4px solid #315f3e;
}

/* -------------------- RESPONSIVE -------------------- */

@media (max-width: 980px) {
    .gp-details-actionbar {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gp-details-action {
        border-bottom: 1px solid #e0e5df;
    }

    .gp-details-relationship-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gp-details-relationship-card:nth-child(2) {
        border-right: 0;
    }

    .gp-details-relationship-card:nth-child(-n+2) {
        border-bottom: 1px solid #dce3da;
    }
}

@media (max-width: 620px) {
    .gp-details-profile-title {
        grid-template-columns: 64px minmax(0, 1fr);
        column-gap: 16px;
        padding: 22px 20px 16px !important;
    }

    .gp-details-main-photo,
    .gp-details-main-photo img,
    #colMain > div[itemscope][itemtype="https://schema.org/Person"] img.smallimage,
    #colMain > div[itemscope][itemtype="https://schema.org/Person"] .smallimage img {
        width: 64px !important;
        max-width: 64px !important;
    }

    .gp-details-name-block .Person {
        font-size: clamp(1.8rem, 9vw, 2.5rem);
    }

    .gp-details-vitals {
        padding: 16px 20px 22px;
    }

    .gp-details-actionbar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gp-details-action {
        min-height: 84px;
    }

    .gp-details-relationship-grid {
        grid-template-columns: 1fr;
    }

    .gp-details-relationship-card {
        min-height: 0;
        border-right: 0;
        border-bottom: 1px solid #dce3da;
    }

    .gp-details-relationship-card:last-child {
        border-bottom: 0;
    }
}


/* =========================================================
   Ancestor Details V2 - Family Layout Pass 13
   Marriage / spouse / children presentation
   ========================================================= */

.gp-marriage-records {
    width: 100%;
    padding: 0 !important;
    background: transparent !important;
}

.gp-marriage-card {
    margin: 0 0 24px;
    border: 1px solid #d8e0d8;
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(30,55,38,.035);
}

.gp-marriage-spouse {
    padding: 22px 24px;
    background: linear-gradient(90deg, #f0f5ef 0%, #f8faf7 100%);
    border-bottom: 1px solid #dce3da;
    color: #3d4f43;
    line-height: 1.7;
}

.gp-marriage-spouse .Person a {
    color: #245f43 !important;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.16rem;
    font-weight: 700;
    text-decoration: none !important;
}

.gp-marriage-spouse .Person a:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.gp-marriage-spouse a[href*="/Places/Details/"],
.gp-marriage-spouse a[href*="maps.google.com"] {
    color: #315b40 !important;
    font-weight: 650;
}

.gp-marriage-spouse font[size="-1"] {
    display: block;
    margin-top: 10px;
    color: #68766d;
    font-size: .88rem;
}

/* Authorized marriage controls */
.gp-marriage-records img[src*="edit_marriage"],
.gp-marriage-records img[src*="delete_this"] {
    width: auto !important;
    height: 34px !important;
    max-width: 38px !important;
    margin: 4px 8px 10px 0 !important;
    opacity: .8;
    box-shadow: none !important;
}

.gp-marriage-records a:hover img[src*="edit_marriage"],
.gp-marriage-records a:hover img[src*="delete_this"] {
    opacity: 1;
}

/* Marriage sources */
.gp-marriage-spouse a[href*="familysearch.org"],
.gp-marriage-spouse a[href*="numerique.banq.qc.ca"] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 10px 6px 2px 0;
    padding: 7px 10px;
    border: 1px solid #d3ddd4;
    border-radius: 6px;
    background: #fff;
    color: #315a40 !important;
    font-size: .87rem;
    font-weight: 700;
    text-decoration: none !important;
}

.gp-marriage-spouse a[href*="familysearch.org"] img,
.gp-marriage-spouse a[href*="numerique.banq.qc.ca"] img {
    width: auto !important;
    height: 26px !important;
    max-width: 26px !important;
    margin: 0 !important;
    box-shadow: none !important;
}

.gp-marriage-children {
    padding: 20px 24px 22px;
}

.gp-marriage-children > h3 {
    margin: 0 0 15px !important;
    padding: 0 0 10px;
    border-bottom: 1px solid #e0e5df;
    color: #284632 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.15rem !important;
    line-height: 1.3;
}

.gp-marriage-children > a img[src*="add_child"] {
    width: auto !important;
    height: 38px !important;
    max-width: 42px !important;
    margin: 0 0 12px !important;
    opacity: .86;
    box-shadow: none !important;
}

.gp-child-list {
    width: 100% !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    line-height: 1.65;
}

.gp-child-list > a[href*="/Ancestors/Details/"] {
    color: #245f43 !important;
    font-weight: 750;
    font-size: 1rem;
    text-decoration: none !important;
}

.gp-child-list > a[href*="/Ancestors/Details/"]:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.gp-child-list font[size="-1"] {
    color: #68766d;
    font-size: .86rem;
}

.gp-child-list font[size="-1"] a {
    color: #45654f !important;
    font-weight: 650;
}

.gp-child-list br + br {
    display: block;
    content: "";
    margin: 7px 0;
    border-bottom: 1px solid #edf0ec;
}

.gp-marriage-divider {
    height: 1px;
    margin: 28px 4px;
    background: #dce3da;
}

.gp-marriage-records > h2#marriages:empty {
    display: none;
}

.gp-details-family-children-inner > a[href*="FindSpouse"] img {
    width: auto !important;
    height: 40px !important;
    max-width: 44px !important;
    vertical-align: middle;
    margin-right: 8px;
    box-shadow: none !important;
}

@media (max-width: 700px) {
    .gp-marriage-spouse,
    .gp-marriage-children {
        padding: 18px 17px;
    }

    .gp-marriage-spouse .Person a {
        font-size: 1.08rem;
    }

    .gp-marriage-children > h3 {
        font-size: 1.08rem !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Life & Records Pass 14
   Birth/death, personal records and historical context
   ========================================================= */

/* Add-life-event utility */
.gp-add-life-event {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    max-width: 760px;
    margin: 0 0 18px;
    padding: 16px 18px;
    border: 1px solid #d8e1d8;
    border-radius: 9px;
    background: #f5f8f4;
    color: #59685e;
    line-height: 1.45;
}

.gp-add-life-event > a {
    display: block;
}

.gp-add-life-event img {
    display: block;
    width: 52px !important;
    max-width: 52px !important;
    height: 52px !important;
    object-fit: contain;
    margin: 0 !important;
    box-shadow: none !important;
}

.gp-add-life-event strong {
    display: inline-block;
    margin-bottom: 3px;
    color: #284632;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1rem;
}

.gp-add-life-event span {
    font-size: .88rem;
}

/* Hide/show is a utility, not part of the content hierarchy. */
.gp-details-history-inner #displayText2 {
    margin: 4px 0 12px;
}

/* Sorted record/history stream */
.gp-life-records-stream {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
    margin-top: 18px;
}

/* Personal birth/death cards */
.gp-life-records-stream > .gp-life-event {
    position: relative;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 20px 20px 20px 24px !important;
    border: 1px solid #d9e1d9 !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: #3c4e42;
    line-height: 1.6;
    text-align: left !important;
    justify-content: flex-start !important;
    box-shadow: 0 3px 12px rgba(30,55,38,.025);
}

.gp-life-records-stream > .gp-life-event::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
}

.gp-life-event-birth::before {
    background: #568261;
}

.gp-life-event-death::before {
    background: #657068;
}

.gp-life-event > img {
    float: left;
    width: auto !important;
    max-width: 44px !important;
    height: 40px !important;
    object-fit: contain;
    margin: 1px 12px 8px 0 !important;
    box-shadow: none !important;
}

.gp-life-event > b:first-of-type {
    color: #234532;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.08rem;
}

/* Context cards: things happening in the world during this person's life. */
.gp-life-records-stream > .gp-history-context-event {
    position: relative;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 18px 19px 18px 22px !important;
    border: 1px solid #e0e4df !important;
    border-left: 3px solid #b59a5a !important;
    border-radius: 9px !important;
    background: #fafbf9 !important;
    color: #526057 !important;
    line-height: 1.55 !important;
    text-align: left !important;
    justify-content: flex-start !important;
    box-shadow: none !important;
}

.gp-history-context-event a {
    color: #315a40 !important;
    font-weight: 700;
    text-decoration: none !important;
}

.gp-history-context-event a:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.gp-history-context-event > img,
.gp-history-context-event img {
    width: auto !important;
    max-width: 32px !important;
    height: 30px !important;
    object-fit: contain;
    margin: 0 9px 5px 0 !important;
    vertical-align: middle;
    box-shadow: none !important;
}

/* Events generated from database/user records may still use the old gray class
   without gp-history-context-event. They stay compatible with previous passes. */
.gp-life-records-stream > .flex-item-gray-no-border-sm-font:not(.gp-history-context-event) {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

/* Seasonal/product cards injected after every ten events should not visually
   masquerade as historical records. */
.gp-life-records-stream > .flex-item-no-border-centered {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 15px !important;
    border: 1px dashed #dfe4de;
    border-radius: 9px;
    background: #fbfcfa;
    opacity: .8;
}

.gp-life-records-stream > .flex-item-no-border-centered img {
    max-width: 120px !important;
    max-height: 120px !important;
    width: auto !important;
    height: auto !important;
}

/* The embedded historical-place videos sit outside the record grid and retain
   a calmer editorial presentation. */
.gp-details-history-inner iframe {
    border-radius: 8px;
    box-shadow: 0 4px 18px rgba(30,55,38,.05);
}

/* Wide screens can support denser chronology without becoming a wall. */
@media (min-width: 1280px) {
    .gp-life-records-stream {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gp-life-records-stream > .gp-life-event {
        grid-column: span 1;
    }
}

@media (max-width: 850px) {
    .gp-life-records-stream {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .gp-add-life-event {
        grid-template-columns: 44px minmax(0, 1fr);
        gap: 12px;
        padding: 14px;
    }

    .gp-add-life-event img {
        width: 42px !important;
        max-width: 42px !important;
        height: 42px !important;
    }

    .gp-life-records-stream {
        gap: 12px;
    }

    .gp-life-records-stream > .gp-life-event,
    .gp-life-records-stream > .gp-history-context-event {
        padding: 16px 16px 16px 19px !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Record Types Pass 15
   Visually separates personal records, family milestones,
   photos/documents and historical context.
   ========================================================= */

/* ---------------------------------------------------------
   PERSONAL RECORDS
   These come from Model.Events and represent evidence/details
   about the ancestor rather than general world history.
   --------------------------------------------------------- */

.gp-life-records-stream > .gp-personal-record {
    position: relative;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 20px 20px 20px 24px !important;
    border: 1px solid #cedbd0 !important;
    border-left: 4px solid #315f3e !important;
    border-radius: 10px !important;
    background: #ffffff !important;
    color: #34483a;
    line-height: 1.62;
    text-align: left !important;
    justify-content: flex-start !important;
    box-shadow: 0 4px 15px rgba(30,55,38,.035);
}

.gp-personal-record > b:first-of-type,
.gp-personal-record > strong:first-of-type {
    color: #21462f;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.08rem;
}

.gp-personal-record a {
    color: #245f43 !important;
    font-weight: 700;
}

.gp-personal-record font[size="-1"] {
    color: #6a776e;
    font-size: .86rem;
    line-height: 1.5;
}

.gp-personal-record img[src*="edit"],
.gp-personal-record img[src*="delete"] {
    width: auto !important;
    max-width: 30px !important;
    height: 30px !important;
    margin: 0 6px 8px 0 !important;
    opacity: .72;
    box-shadow: none !important;
}

/* Source scans attached to a record */
.gp-personal-record a[href*="familysearch.org"],
.gp-personal-record a[href*="numerique.banq.qc.ca"] {
    display: inline-block;
    margin-top: 8px;
    padding: 6px 9px;
    border: 1px solid #d7e0d8;
    border-radius: 5px;
    background: #f7faf6;
    text-decoration: none !important;
}

/* ---------------------------------------------------------
   FAMILY MILESTONES
   Marriage/partner, spouse death, child birth/marriage/death.
   --------------------------------------------------------- */

.gp-life-records-stream > .gp-family-milestone {
    position: relative;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 19px 19px 19px 23px !important;
    border: 1px solid #dbe1da !important;
    border-radius: 10px !important;
    background: #fbfcfa !important;
    color: #425147;
    line-height: 1.58;
    text-align: left !important;
    justify-content: flex-start !important;
}

.gp-family-milestone::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
}

.gp-family-milestone-marriage::before {
    background: #a98d4c;
}

.gp-family-milestone-birth::before {
    background: #6b9272;
}

.gp-family-milestone-death::before {
    background: #747e77;
}

.gp-family-milestone img {
    float: left;
    width: auto !important;
    max-width: 36px !important;
    height: 32px !important;
    object-fit: contain;
    margin: 0 10px 6px 0 !important;
    box-shadow: none !important;
}

.gp-family-milestone > b:first-of-type {
    color: #304a39;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.03rem;
}

.gp-family-milestone a {
    color: #315a40 !important;
    font-weight: 700;
}

/* ---------------------------------------------------------
   PHOTOS & DOCUMENTS
   PersonImages are evidence too, but visually distinct from
   textual records and world-history context.
   --------------------------------------------------------- */

.gp-life-records-stream > .gp-photo-record {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 18px !important;
    border: 1px solid #dedfd9 !important;
    border-radius: 10px !important;
    background: #fcfbf7 !important;
    color: #4d584f;
    line-height: 1.55;
    text-align: left !important;
    box-shadow: 0 3px 13px rgba(30,55,38,.025);
}

.gp-photo-record > a:first-of-type > img.mediumimage {
    display: block;
    width: 100% !important;
    max-width: 230px !important;
    height: auto !important;
    margin: 0 auto 12px !important;
    border-radius: 7px;
    border: 1px solid #dfdfd8;
    box-shadow: 0 4px 14px rgba(30,55,38,.06);
}

.gp-photo-record > a[href*="pinterest"] img,
.gp-photo-record iframe {
    box-shadow: none !important;
}

.gp-photo-record a {
    color: #315a40 !important;
    font-weight: 650;
}

/* Admin image controls */
.gp-photo-record img[src*="edit"],
.gp-photo-record img[src*="delete"] {
    width: auto !important;
    max-width: 30px !important;
    height: 30px !important;
    margin: 0 6px 8px 0 !important;
    opacity: .72;
}

/* ---------------------------------------------------------
   HISTORICAL CONTEXT
   Keep these softer than actual records.
   --------------------------------------------------------- */

.gp-life-records-stream > .gp-history-context-event {
    background: #f8f8f4 !important;
    border-color: #e0e1da !important;
    color: #5b645d !important;
    box-shadow: none !important;
}

.gp-history-context-event > b:first-of-type,
.gp-history-context-event > strong:first-of-type {
    color: #525d55;
}

/* ---------------------------------------------------------
   VISUAL LEGEND
   Uses pseudo-elements only, so no ASPX markup is required.
   --------------------------------------------------------- */

.gp-details-history-inner > .gp-details-section-heading::after {
    content: "Personal records are shown in green; family milestones in gold; historical context in neutral tones.";
    display: block;
    max-width: 760px;
    margin-top: 8px;
    color: #788279;
    font-family: Arial, Helvetica, sans-serif;
    font-size: .78rem;
    font-weight: 400;
    line-height: 1.45;
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 620px) {
    .gp-life-records-stream > .gp-personal-record,
    .gp-life-records-stream > .gp-family-milestone,
    .gp-life-records-stream > .gp-photo-record {
        padding: 16px 16px 16px 19px !important;
    }

    .gp-photo-record > a:first-of-type > img.mediumimage {
        max-width: 190px !important;
    }

    .gp-details-history-inner > .gp-details-section-heading::after {
        font-size: .74rem;
    }
}


/* =========================================================
   Ancestor Details V2 - Burial & Obituary Pass 16
   Gives end-of-life information a clear, respectful home.
   ========================================================= */

.gp-death-burial-section {
    margin: 34px 0;
}

.gp-death-burial-inner {
    width: 100%;
    padding: 0 !important;
    background: transparent !important;
}

.gp-death-burial-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.gp-obituary-card,
.gp-burial-card {
    min-width: 0;
    padding: 26px 28px;
    border: 1px solid #d9e0d9;
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(30,55,38,.035);
}

.gp-obituary-card {
    border-top: 4px solid #7c877e;
}

.gp-burial-card {
    border-top: 4px solid #315f3e;
    background: linear-gradient(180deg, #fbfcfa 0%, #ffffff 100%);
}

.gp-record-eyebrow {
    margin-bottom: 7px;
    color: #7b683b;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.gp-obituary-card h2,
.gp-burial-card h2 {
    margin: 0 0 17px !important;
    padding: 0 0 11px !important;
    border-bottom: 1px solid #e1e6e0;
    color: #234532 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.42rem !important;
    line-height: 1.2 !important;
    text-align: left !important;
}

.gp-obituary-text {
    color: #46554b;
    line-height: 1.72;
}

.gp-burial-person {
    margin: 0 0 10px !important;
    color: #526057;
}

.gp-cemetery-name {
    margin-bottom: 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.16rem;
    line-height: 1.3;
}

.gp-cemetery-name a {
    color: #245f43 !important;
    font-weight: 700;
    text-decoration: none !important;
}

.gp-cemetery-name a:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.gp-cemetery-details {
    color: #4d5d52;
    line-height: 1.62;
}

.gp-cemetery-details a {
    color: #315a40 !important;
    font-weight: 700;
}

.gp-burial-notes {
    margin-top: 17px;
    padding-top: 15px;
    border-top: 1px solid #e1e6e0;
    color: #58665d;
    line-height: 1.65;
}

/* The older blanket green-box styling no longer applies to this section. */
.gp-death-burial-section .flex-item-no-border {
    border-radius: 0;
}

/* If only one of obituary/burial exists, let it use the available space without
   becoming uncomfortably wide. */
.gp-death-burial-grid > :only-child {
    grid-column: 1 / -1;
    max-width: 820px;
}

/* Metadata that follows the burial section should visually recede. */
.gp-death-burial-section + .flex-container > .flex-item-green-no-border {
    padding: 12px 16px !important;
    border: 0 !important;
    background: transparent !important;
    color: #778279;
    box-shadow: none !important;
}

.gp-death-burial-section + .flex-container > .flex-item-green-no-border font[size="-1"] {
    color: #778279;
}

@media (max-width: 820px) {
    .gp-death-burial-grid {
        grid-template-columns: 1fr;
    }

    .gp-death-burial-grid > :only-child {
        grid-column: auto;
        max-width: none;
    }
}

@media (max-width: 620px) {
    .gp-obituary-card,
    .gp-burial-card {
        padding: 21px 19px;
    }

    .gp-obituary-card h2,
    .gp-burial-card h2 {
        font-size: 1.28rem !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Research Tools Pass 17
   External records, source links, research actions
   ZERO new Details.aspx changes in this pass.
   ========================================================= */

#colMain a[href*="familysearch.org"],
#colMain a[href*="findagrave.com"],
#colMain a[href*="newspapers.com"],
#colMain a[href*="archive.org"],
#colMain a[href*="ancestry.com"],
#colMain a[href*="numerique.banq.qc.ca"] {
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

#colMain a[href*="familysearch.org"] {
    border-color: #cbd8cd !important;
    background: #f5f8f4 !important;
    color: #245f43 !important;
}

#colMain a[href*="findagrave.com"] {
    border-color: #d7d7d2 !important;
    background: #faf9f6 !important;
    color: #4e5b52 !important;
}

#colMain a[href*="newspapers.com"] {
    border-color: #ddd6c6 !important;
    background: #fbf8f1 !important;
    color: #6a5b37 !important;
}

#colMain a[href*="archive.org"],
#colMain a[href*="numerique.banq.qc.ca"] {
    border-color: #d4dae0 !important;
    background: #f6f8fa !important;
    color: #455a6b !important;
}

#colMain a[href*="ancestry.com"] {
    border-color: #d9dfd6 !important;
    background: #f8faf7 !important;
    color: #59675d !important;
}

#colMain a[href*="familysearch.org"]:hover,
#colMain a[href*="findagrave.com"]:hover,
#colMain a[href*="newspapers.com"]:hover,
#colMain a[href*="archive.org"]:hover,
#colMain a[href*="ancestry.com"]:hover,
#colMain a[href*="numerique.banq.qc.ca"]:hover {
    background: #edf3ec !important;
    border-color: #bfcdbf !important;
}

#colMain .flex-container > .flex-item-sm-font {
    position: relative;
    overflow: hidden;
}

#colMain .flex-container > .flex-item-sm-font::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    background: #315f3e;
}

#colMain .flex-container > .flex-item-sm-font > a:first-child {
    display: block;
    min-height: 82px;
}

#colMain .flex-container > .flex-item-sm-font > a:first-child img {
    transition: transform .15s ease;
}

#colMain .flex-container > .flex-item-sm-font:hover > a:first-child img {
    transform: translateY(-2px);
}

#colMain .flex-container > .flex-item-sm-font:hover {
    border-color: #c5d1c7;
    background: #fbfdfb;
}

.gp-personal-record a[href*="familysearch.org"],
.gp-personal-record a[href*="newspapers.com"],
.gp-personal-record a[href*="archive.org"],
.gp-photo-record a[href*="familysearch.org"],
.gp-photo-record a[href*="archive.org"],
.gp-marriage-spouse a[href*="familysearch.org"],
.gp-marriage-spouse a[href*="numerique.banq.qc.ca"] {
    border-radius: 6px;
    box-shadow: none !important;
}

.gp-personal-record a[href*="familysearch.org"],
.gp-personal-record a[href*="newspapers.com"],
.gp-personal-record a[href*="archive.org"],
.gp-photo-record a[href*="familysearch.org"],
.gp-photo-record a[href*="archive.org"] {
    font-size: .84rem;
    font-weight: 700;
}

.gp-burial-card a[href*="/Cemeteries/"],
.gp-burial-card a[href*="/Places/Details/"],
.gp-death-burial-section a[href*="/Cemeteries/"],
.gp-death-burial-section a[href*="/Places/Details/"] {
    color: #245f43 !important;
    font-weight: 700;
    text-decoration: none !important;
}

.gp-burial-card a[href*="/Cemeteries/"]:hover,
.gp-burial-card a[href*="/Places/Details/"]:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

#colMain .flex-item-centered[style*="background:#ffffff"],
#colMain .flex-item-no-border-centered[style*="background:#ffffff"] {
    background: linear-gradient(180deg, #ffffff 0%, #fbfcfa 100%) !important;
}

#colMain .flex-item-centered[style*="background:#ffffff"] > b:first-of-type,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"] > b:first-of-type {
    display: inline-block;
    margin-bottom: 8px;
    color: #284632;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.08rem;
}

.gp-details-comments-inner::before {
    content: "Discussion & Contributions";
    display: block;
    margin-bottom: 16px;
    color: #284632;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.32rem;
    font-weight: 700;
}

.gp-details-comments-inner::after {
    content: "Share corrections, context, or family-history details that may help other researchers.";
    display: block;
    margin-top: 10px;
    color: #748078;
    font-size: .84rem;
    line-height: 1.5;
}

.gp-details-family-summary,
.gp-details-family-children,
.gp-details-history-section,
.gp-death-burial-section,
.gp-details-comments {
    scroll-margin-top: 90px;
}

.gp-details-page > br + br {
    line-height: .4;
}

@media (max-width: 620px) {
    #colMain .flex-container > .flex-item-sm-font > a:first-child {
        min-height: 0;
    }

    .gp-details-comments-inner::before {
        font-size: 1.2rem;
    }
}


/* =========================================================
   Ancestor Details V2 - Places & Continue Research Pass 18
   Related places, search-again tools, lower-page cleanup
   ZERO new Details.aspx changes in this pass.
   ========================================================= */

/* ---------------------------------------------------------
   RELATED PLACE CALLOUTS
   The original view contains white centered boxes that link to
   places connected to the ancestor. Give those sections a more
   intentional "Explore this place" treatment.
   --------------------------------------------------------- */

#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]),
#colMain .flex-item-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) {
    position: relative;
    overflow: hidden;
    padding: 28px 30px 28px 34px !important;
    border: 1px solid #d8e0d8 !important;
    border-radius: 11px !important;
    background: linear-gradient(135deg, #fbfcfa 0%, #ffffff 72%) !important;
    text-align: left !important;
    box-shadow: 0 5px 18px rgba(30,55,38,.035);
}

#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"])::before,
#colMain .flex-item-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"])::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #b59a5a;
}

#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) h2,
#colMain .flex-item-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) h2 {
    margin: 0 0 9px !important;
    padding: 0 !important;
    border: 0 !important;
    color: #234532 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.38rem !important;
    line-height: 1.25 !important;
    text-align: left !important;
}

#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) a[href*="/Places/Details/"],
#colMain .flex-item-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) a[href*="/Places/Details/"] {
    display: inline-block;
    margin-top: 8px;
    padding: 8px 12px;
    border: 1px solid #cfd9d1;
    border-radius: 6px;
    background: #f4f8f3;
    color: #245f43 !important;
    font-weight: 700;
    text-decoration: none !important;
}

#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) a[href*="/Places/Details/"]:hover,
#colMain .flex-item-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) a[href*="/Places/Details/"]:hover {
    background: #eaf1e8;
    border-color: #bdcdbf;
}

/* ---------------------------------------------------------
   SEARCH AGAIN
   Existing lower-page form stays intact; this makes it feel like
   a purposeful continuation of research.
   --------------------------------------------------------- */

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form),
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) {
    padding: 28px 30px !important;
    border: 1px solid #d8e0d8 !important;
    border-radius: 11px !important;
    background: #f6f8f5 !important;
    text-align: left !important;
    box-shadow: 0 5px 18px rgba(30,55,38,.03);
}

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) > b:first-of-type,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) > b:first-of-type {
    display: block;
    margin: 0 0 6px;
    color: #234532;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.28rem;
}

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) form,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) form {
    margin-top: 16px;
}

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) .row,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) .row {
    display: grid;
    grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    margin-bottom: 10px;
}

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) .row .label,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) .row .label {
    width: auto;
    padding: 0;
    color: #405246;
    font-weight: 700;
}

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) .row .formw,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) .row .formw {
    width: auto;
    padding: 0;
}

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) input[type="text"],
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) input[type="text"],
#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) input[type="number"],
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) input[type="number"],
#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) select,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) select {
    width: 100%;
    max-width: 420px;
}

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) input[type="submit"],
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) input[type="submit"] {
    margin-top: 10px;
    padding: 10px 18px;
    border-radius: 6px;
}

/* ---------------------------------------------------------
   LOWER-PAGE VISUAL CLEANUP
   --------------------------------------------------------- */

/* Old spacer images should never consume layout space. */
#colMain img[src*="white_spacer"] {
    display: none !important;
}

/* Keep generic trailing green boxes from becoming louder than research content. */
#colMain > .flex-container:last-of-type > .flex-item-green-no-border {
    border: 1px solid #e0e5df !important;
    background: #f8faf7 !important;
    box-shadow: none !important;
}

/* Footer-adjacent utility text should be quieter. */
#colMain .flex-item-no-border font[size="-1"],
#colMain .flex-item-no-border-centered font[size="-1"] {
    line-height: 1.5;
}

/* ---------------------------------------------------------
   DESKTOP RHYTHM
   --------------------------------------------------------- */

@media (min-width: 1000px) {
    #colMain .flex-container:has(.gp-death-burial-section),
    #colMain .gp-death-burial-section,
    #colMain .gp-details-comments {
        margin-top: 38px;
    }
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 760px) {
    #colMain .flex-item-centered[style*="background:#ffffff"]:has(form) .row,
    #colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) .row {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    #colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]),
    #colMain .flex-item-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]),
    #colMain .flex-item-centered[style*="background:#ffffff"]:has(form),
    #colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) {
        padding: 22px 20px !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Whole Page Cleanup Pass 19
   Reduce duplication, flatten repeated legacy treatments, and
   make the page feel like one coherent V2 experience.
   ZERO new Details.aspx changes in this pass.
   ========================================================= */

/* ---------------------------------------------------------
   GLOBAL DETAILS PAGE RHYTHM
   --------------------------------------------------------- */

#colMain {
    --gp-details-section-gap: 34px;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container,
#colMain > .flex-container {
    margin-top: 0;
}

#colMain h2 + br,
#colMain h3 + br {
    display: none;
}

/* Consecutive breaks were heavily used for layout in the legacy view.
   Keep one break meaningful, but suppress obvious stacked spacer pairs. */
#colMain br + br + br {
    display: none;
}

/* ---------------------------------------------------------
   REPEATED HEADINGS / LEGACY PROMO LANGUAGE
   --------------------------------------------------------- */

/* De-emphasize generic "your ancestor" / SEO-style headings when a stronger
   V2 section heading is already present nearby. */
#colMain .gp-details-family-summary .gp-details-section-heading + h2,
#colMain .gp-details-family-children .gp-details-section-heading + h2,
#colMain .gp-details-history-section .gp-details-section-heading + h2 {
    margin-top: 12px !important;
    font-family: inherit !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: #4d5d52 !important;
    border: 0 !important;
    background: transparent !important;
}

/* ---------------------------------------------------------
   DUPLICATE RESEARCH ACTIONS
   The new profile actionbar is the primary tool set. Older tool tiles remain
   useful lower on the page, but should read as secondary.
   --------------------------------------------------------- */

#colMain .gp-details-actionbar ~ .flex-container > .flex-item-sm-font {
    box-shadow: none !important;
}

#colMain .gp-details-actionbar ~ .flex-container > .flex-item-sm-font::before {
    background: #9aaa9c;
}

#colMain .gp-details-actionbar ~ .flex-container > .flex-item-sm-font > a:first-child {
    min-height: 64px;
    font-size: .88rem;
}

#colMain .gp-details-actionbar ~ .flex-container > .flex-item-sm-font > a:first-child img {
    max-width: 42px !important;
    height: 38px !important;
}

/* Secondary Amazon/chart companion links are visually tertiary. */
#colMain .gp-details-actionbar ~ .flex-container > .flex-item-sm-font a[href*="amzn.to"],
#colMain .gp-details-actionbar ~ .flex-container > .flex-item-sm-font a[href*="amazon.com"] {
    font-size: .74rem !important;
    color: #7d877f !important;
}

/* ---------------------------------------------------------
   FAMILY SECTION: LESS REPETITION
   --------------------------------------------------------- */

.gp-details-family-summary + .gp-details-family-children {
    margin-top: 24px;
}

.gp-details-family-summary-inner,
.gp-details-family-children-inner {
    box-shadow: 0 4px 14px rgba(30,55,38,.03);
}

/* Parent/grandparent summary cards already provide orientation. Make the
   narrative beneath them less visually card-heavy. */
.gp-details-family-summary-inner > .gp-details-relationship-grid + * {
    margin-top: 18px;
}

/* Marriage cards become flatter so stacked relationships don't feel like
   cards-inside-cards-inside-cards. */
.gp-marriage-card {
    box-shadow: none !important;
    border-color: #dde4dd;
}

.gp-marriage-spouse {
    background: #f7f9f6 !important;
}

.gp-marriage-children {
    background: #fff;
}

/* ---------------------------------------------------------
   LIFE & RECORDS: STRONGER HIERARCHY, LESS CHROME
   --------------------------------------------------------- */

.gp-details-history-inner {
    box-shadow: 0 4px 14px rgba(30,55,38,.03);
}

.gp-life-records-stream > .gp-personal-record,
.gp-life-records-stream > .gp-family-milestone,
.gp-life-records-stream > .gp-history-context-event,
.gp-life-records-stream > .gp-photo-record,
.gp-life-records-stream > .gp-life-event {
    box-shadow: none !important;
}

/* Personal records stay strongest; contextual history recedes. */
.gp-life-records-stream > .gp-history-context-event {
    opacity: .88;
}

.gp-life-records-stream > .gp-photo-record {
    background: #fbfaf6 !important;
}

/* Seasonal/promotional cards inside the event stream recede further. */
.gp-life-records-stream > .flex-item-no-border-centered {
    opacity: .62;
    filter: saturate(.8);
}

/* ---------------------------------------------------------
   SOURCE LINK DUPLICATION
   --------------------------------------------------------- */

/* When several source buttons appear together, keep them compact and inline. */
#colMain a[href*="familysearch.org"],
#colMain a[href*="findagrave.com"],
#colMain a[href*="newspapers.com"],
#colMain a[href*="archive.org"],
#colMain a[href*="numerique.banq.qc.ca"] {
    vertical-align: middle;
}

/* Avoid oversized source-icon images inherited from legacy rules. */
#colMain a[href*="familysearch.org"] img,
#colMain a[href*="findagrave.com"] img,
#colMain a[href*="newspapers.com"] img,
#colMain a[href*="archive.org"] img,
#colMain a[href*="numerique.banq.qc.ca"] img {
    max-width: 26px !important;
    max-height: 26px !important;
    width: auto !important;
    height: auto !important;
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   BURIAL / RESEARCH / PLACE FLOW
   --------------------------------------------------------- */

.gp-death-burial-section {
    margin-top: var(--gp-details-section-gap);
}

.gp-death-burial-section + .flex-container {
    margin-top: 8px !important;
}

/* Metadata following burial should no longer look like a full section. */
.gp-death-burial-section + .flex-container .flex-item-green-no-border {
    font-size: .8rem;
    line-height: 1.4;
}

/* Related place panels should not repeat generic centered-box styling. */
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]),
#colMain .flex-item-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) {
    box-shadow: none;
}

/* ---------------------------------------------------------
   GIFT / PRODUCT AREA: ONE QUIET END-CAP
   --------------------------------------------------------- */

#colMain h2.gp-details-gifts-heading {
    margin-top: 46px !important;
    padding-top: 24px !important;
    border-top: 1px solid #dfe4de !important;
}

#colMain h2.gp-details-gifts-heading ~ .flex-container:has(a[href*="amazon.com"]),
#colMain h2.gp-details-gifts-heading ~ .flex-container:has(a[href*="amzn.to"]),
#colMain h2.gp-details-gifts-heading ~ .flex-container:has(a[href*="greenerpasture.printify.me"]) {
    opacity: .78;
}

#colMain h2.gp-details-gifts-heading ~ .flex-container:has(a[href*="amazon.com"]) img,
#colMain h2.gp-details-gifts-heading ~ .flex-container:has(a[href*="amzn.to"]) img,
#colMain h2.gp-details-gifts-heading ~ .flex-container:has(a[href*="greenerpasture.printify.me"]) img {
    max-width: 92px !important;
    max-height: 92px !important;
}

/* ---------------------------------------------------------
   COMMENTS / FINAL SEARCH
   --------------------------------------------------------- */

.gp-details-comments {
    margin-top: 46px;
}

.gp-details-comments-inner {
    box-shadow: none !important;
}

/* The final search-again card becomes the clear last action before comments. */
#colMain .flex-item-centered[style*="background:#ffffff"]:has(form),
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) {
    margin-top: 36px !important;
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   MOBILE CLEANUP
   --------------------------------------------------------- */

@media (max-width: 760px) {
    #colMain {
        --gp-details-section-gap: 28px;
    }

    .gp-details-actionbar {
        margin-bottom: 24px;
    }

    .gp-details-family-summary,
    .gp-details-family-children,
    .gp-details-history-section,
    .gp-death-burial-section {
        margin-bottom: 26px;
    }

    #colMain h2.gp-details-gifts-heading {
        margin-top: 34px !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Life Records Grid Pass 20
   Fixes narrow historical cards and unused horizontal space.
   ZERO Details.aspx/VB changes in this pass.
   ========================================================= */

/*
   The old flex-item classes still carry legacy width/flex rules.
   The Life & Records area is now treated as a true responsive CSS grid.
   Cards fill the available row instead of retaining old narrow widths.
*/
.gp-life-records-stream {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: 18px !important;
    align-items: stretch !important;
    width: 100% !important;
}

/* Every direct child in the event stream must participate as a grid item,
   regardless of which legacy flex-item class generated it. */
.gp-life-records-stream > * {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: none !important;
    margin: 0 !important;
    align-self: stretch !important;
}

/* Explicitly neutralize the common legacy width classes that caused
   long items such as the Korean War record to become tall, narrow columns. */
.gp-life-records-stream > .flex-item-no-border,
.gp-life-records-stream > .flex-item-no-border-sm-font,
.gp-life-records-stream > .flex-item-gray-no-border-sm-font,
.gp-life-records-stream > .flex-item-no-border-centered,
.gp-life-records-stream > .flex-item-green-no-border,
.gp-life-records-stream > .gp-life-event,
.gp-life-records-stream > .gp-personal-record,
.gp-life-records-stream > .gp-family-milestone,
.gp-life-records-stream > .gp-history-context-event,
.gp-life-records-stream > .gp-photo-record {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    flex-basis: auto !important;
}

/* Long headlines and paragraphs should wrap naturally within wider cards. */
.gp-life-records-stream > * {
    overflow-wrap: anywhere;
    word-break: normal;
}

.gp-life-records-stream > * b,
.gp-life-records-stream > * strong,
.gp-life-records-stream > * a {
    word-break: normal;
    overflow-wrap: anywhere;
}

/* Keep cards comfortable on very wide monitors without producing giant
   unreadable columns. Four cards is a good maximum for this content. */
@media (min-width: 1500px) {
    .gp-life-records-stream {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

@media (min-width: 1050px) and (max-width: 1499px) {
    .gp-life-records-stream {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (min-width: 720px) and (max-width: 1049px) {
    .gp-life-records-stream {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 719px) {
    .gp-life-records-stream {
        grid-template-columns: 1fr !important;
        gap: 13px !important;
    }
}

/* Historical-context cards are allowed a little more breathing room because
   their copy is often longer than a census or family milestone. */
.gp-history-context-event {
    line-height: 1.58 !important;
}

/* Remove old minimum heights so cards size to content instead of stretching
   into empty vertical slabs. */
.gp-life-records-stream > .flex-item-gray-no-border-sm-font,
.gp-life-records-stream > .gp-history-context-event,
.gp-life-records-stream > .gp-personal-record,
.gp-life-records-stream > .gp-family-milestone {
    min-height: 0 !important;
}

/* Photos/documents can remain visually compact while still occupying
   the full grid column width. */
.gp-photo-record > a:first-of-type > img.mediumimage {
    max-width: min(230px, 100%) !important;
}


/* =========================================================
   Ancestor Details V2 - Profile Vitals Pass 21
   Structured birth/death profile facts.
   ========================================================= */

.gp-details-vitals {
    margin: 0 !important;
    padding: 0 30px 26px !important;
    border-top: 0 !important;
    background: #fff;
}

.gp-vitals-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid #dce3da;
    border-bottom: 1px solid #dce3da;
}

.gp-vital {
    min-width: 0;
    padding: 19px 22px 20px;
}

.gp-vital:first-child {
    border-right: 1px solid #dce3da;
}

.gp-vital-label {
    display: block;
    margin-bottom: 7px;
    color: #6d765f;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.gp-vital-value {
    color: #3d5043;
    font-size: .97rem;
    line-height: 1.62;
}

.gp-vital-value b {
    color: #234532;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.05rem;
}

.gp-vital-value a {
    color: #245f43 !important;
    font-weight: 700;
    text-decoration: none !important;
}

.gp-vital-value a:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.gp-vitals-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 28px;
    padding: 14px 22px 0;
    color: #5c6a61;
    font-size: .91rem;
    line-height: 1.6;
}

.gp-vitals-meta br {
    display: none;
}

@media (max-width: 700px) {
    .gp-details-vitals {
        padding: 0 20px 22px !important;
    }

    .gp-vitals-grid {
        grid-template-columns: 1fr;
    }

    .gp-vital:first-child {
        border-right: 0;
        border-bottom: 1px solid #dce3da;
    }

    .gp-vital {
        padding: 16px 0;
    }

    .gp-vitals-meta {
        padding: 13px 0 0;
        gap: 5px 18px;
    }
}


/* =========================================================
   Ancestor Details V2 - Life Grid HARD FIX Pass 22
   Overrides legacy flex sizing that can still squeeze event
   cards into narrow columns.
   ZERO Details.aspx/VB changes.
   ========================================================= */

/* Make absolutely certain the history section itself can use the full page. */
.gp-details-history-section,
.gp-details-history-inner,
#toggleText2,
.gp-life-records-stream {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/*
   IMPORTANT:
   Do not use auto-fit here. The old flex item widths and varying content
   can interact badly with auto-fit in this legacy page. Use explicit,
   predictable column counts instead.
*/
.gp-life-records-stream {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    gap: 18px !important;
    align-items: start !important;
    justify-items: stretch !important;
}

/* Kill every legacy flex sizing rule on event cards. */
.gp-life-records-stream > div,
.gp-life-records-stream > .flex-item-no-border,
.gp-life-records-stream > .flex-item-no-border-sm-font,
.gp-life-records-stream > .flex-item-gray-no-border-sm-font,
.gp-life-records-stream > .flex-item-no-border-centered,
.gp-life-records-stream > .flex-item-green-no-border,
.gp-life-records-stream > .gp-life-event,
.gp-life-records-stream > .gp-personal-record,
.gp-life-records-stream > .gp-family-milestone,
.gp-life-records-stream > .gp-history-context-event,
.gp-life-records-stream > .gp-photo-record {
    display: block !important;
    float: none !important;
    clear: none !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;

    flex: none !important;
    flex-grow: 0 !important;
    flex-shrink: 1 !important;
    flex-basis: auto !important;

    margin: 0 !important;
    box-sizing: border-box !important;
}

/* Long historical links must use the entire card width instead of behaving
   like narrow inline content. This is the key fix for the 1953 Korean War card. */
.gp-life-records-stream .gp-history-context-event > a,
.gp-life-records-stream .flex-item-gray-no-border-sm-font > a {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    line-height: 1.55 !important;
}

/* Icons sit above/alongside the text but are not allowed to establish
   an inline formatting width for the whole card. */
.gp-life-records-stream .gp-history-context-event > img:first-child,
.gp-life-records-stream .flex-item-gray-no-border-sm-font > img:first-child {
    float: none !important;
    display: inline-block !important;
    width: auto !important;
    max-width: 34px !important;
    height: 30px !important;
    margin: 0 8px 9px 0 !important;
    vertical-align: middle !important;
}

/* Prevent inherited min/max widths on nested content. */
.gp-life-records-stream > div > * {
    max-width: 100%;
    box-sizing: border-box;
}

/* Do not force equal heights. Long cards can grow naturally. */
.gp-life-records-stream > div {
    min-height: 0 !important;
    height: auto !important;
}

/* Wider screens: four comfortable columns only when there is genuinely
   enough room. */
@media (min-width: 1400px) {
    .gp-life-records-stream {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

/* Smaller desktop/tablet: two wide cards is preferable to three skinny cards. */
@media (max-width: 1050px) {
    .gp-life-records-stream {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 680px) {
    .gp-life-records-stream {
        grid-template-columns: 1fr !important;
        gap: 13px !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Life Grid PARENT FIX Pass 23
   Root-cause fix: legacy flex sizing on the PARENT history
   section was constraining the entire event grid.
   ZERO Details.aspx/VB changes.
   ========================================================= */

/*
   The history section itself is still built from legacy:
       .flex-container
           .flex-item-no-border

   Reset BOTH levels. Width:100% alone is not enough when an inherited
   flex-basis is controlling the child's used width.
*/
#colMain .gp-details-history-section {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

#colMain .gp-details-history-section > .gp-details-history-inner {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    flex: 0 0 100% !important;
    flex-basis: 100% !important;
    flex-grow: 0 !important;
    flex-shrink: 0 !important;

    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* The hide/show content and event stream must also inherit the full width. */
#colMain .gp-details-history-inner > #toggleText2,
#colMain #toggleText2 > .gp-life-records-stream {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

/* Restore grid after resetting the parent chain. */
#colMain #toggleText2 > .gp-life-records-stream {
    display: grid !important;

    /* Two columns is intentionally the default because historical copy is
       often long. It produces much better reading widths than 3 skinny cards. */
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;

    grid-auto-flow: row !important;
    align-items: start !important;
    justify-content: stretch !important;
    justify-items: stretch !important;
}

/* Every event card fills its grid track. */
#colMain #toggleText2 > .gp-life-records-stream > * {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    flex: none !important;
    flex-basis: auto !important;

    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

/* Longer historical entries get a comfortable line length and normal wrapping. */
#colMain #toggleText2 .gp-history-context-event,
#colMain #toggleText2 .flex-item-gray-no-border-sm-font {
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
}

#colMain #toggleText2 .gp-history-context-event > a,
#colMain #toggleText2 .flex-item-gray-no-border-sm-font > a {
    display: inline !important;
    width: auto !important;
    max-width: none !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}

/*
   Only use three columns when the actual content region is wide enough.
   This is deliberately later/larger than the previous breakpoint.
*/
@media (min-width: 1350px) {
    #colMain #toggleText2 > .gp-life-records-stream {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 760px) {
    #colMain #toggleText2 > .gp-life-records-stream {
        grid-template-columns: 1fr !important;
        gap: 13px !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Life Cards Polish Pass 24
   Improves readability and consistency now that the parent
   width/grid problem is fixed.
   ZERO Details.aspx/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   CARD TYPOGRAPHY
   --------------------------------------------------------- */

#colMain #toggleText2 > .gp-life-records-stream > * {
    font-size: .94rem;
    line-height: 1.58;
}

/* Long event titles should be prominent without becoming giant blocks. */
#colMain #toggleText2 > .gp-life-records-stream > * > b:first-of-type,
#colMain #toggleText2 > .gp-life-records-stream > * > strong:first-of-type,
#colMain #toggleText2 > .gp-life-records-stream > * > a:first-of-type {
    line-height: 1.35;
}

#colMain #toggleText2 .gp-history-context-event > a:first-of-type,
#colMain #toggleText2 .flex-item-gray-no-border-sm-font > a:first-of-type {
    color: #315a40 !important;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.06rem;
    font-weight: 700;
}

/* ---------------------------------------------------------
   CARD SPACING
   --------------------------------------------------------- */

#colMain #toggleText2 > .gp-life-records-stream > .gp-personal-record,
#colMain #toggleText2 > .gp-life-records-stream > .gp-family-milestone,
#colMain #toggleText2 > .gp-life-records-stream > .gp-history-context-event,
#colMain #toggleText2 > .gp-life-records-stream > .gp-photo-record,
#colMain #toggleText2 > .gp-life-records-stream > .gp-life-event,
#colMain #toggleText2 > .gp-life-records-stream > .flex-item-gray-no-border-sm-font {
    padding: 18px 20px !important;
}

/* Keep source/date metadata visually separated from main event copy. */
#colMain #toggleText2 > .gp-life-records-stream font[size="-1"] {
    display: block;
    margin-top: 10px;
    color: #6d786f;
    font-size: .8rem;
    line-height: 1.45;
}

/* ---------------------------------------------------------
   HISTORICAL CONTEXT
   --------------------------------------------------------- */

/* General-world-history cards stay quieter than records directly about
   the ancestor, but no longer look disabled. */
#colMain #toggleText2 .gp-history-context-event {
    opacity: 1 !important;
    background: #fafaf7 !important;
    border-color: #e0e3dd !important;
    border-left-color: #b59a5a !important;
}

#colMain #toggleText2 .gp-history-context-event:hover {
    background: #f7f8f4 !important;
    border-color: #d3d9d2 !important;
    border-left-color: #a88d4f !important;
}

/* The small context icon sits on its own line so it cannot squeeze text. */
#colMain #toggleText2 .gp-history-context-event > img:first-child {
    display: block !important;
    float: none !important;
    margin: 0 0 10px 0 !important;
}

/* ---------------------------------------------------------
   PERSONAL RECORDS
   --------------------------------------------------------- */

#colMain #toggleText2 .gp-personal-record {
    background: #ffffff !important;
    border-left-color: #315f3e !important;
}

#colMain #toggleText2 .gp-personal-record:hover {
    background: #fbfdfb !important;
    border-color: #c9d6cb !important;
    border-left-color: #315f3e !important;
}

/* ---------------------------------------------------------
   FAMILY MILESTONES
   --------------------------------------------------------- */

#colMain #toggleText2 .gp-family-milestone {
    background: #fbfaf6 !important;
}

#colMain #toggleText2 .gp-family-milestone:hover {
    background: #f8f6ef !important;
}

/* ---------------------------------------------------------
   PHOTOS / DOCUMENTS
   --------------------------------------------------------- */

#colMain #toggleText2 .gp-photo-record {
    background: #fbfaf8 !important;
}

#colMain #toggleText2 .gp-photo-record > a:first-of-type > img.mediumimage {
    width: auto !important;
    max-width: min(210px, 100%) !important;
    max-height: 190px !important;
    object-fit: contain;
}

/* ---------------------------------------------------------
   LINKS / SOURCES
   --------------------------------------------------------- */

#colMain #toggleText2 .gp-life-records-stream a[href*="familysearch.org"],
#colMain #toggleText2 .gp-life-records-stream a[href*="newspapers.com"],
#colMain #toggleText2 .gp-life-records-stream a[href*="archive.org"],
#colMain #toggleText2 .gp-life-records-stream a[href*="numerique.banq.qc.ca"] {
    display: inline-block !important;
    width: auto !important;
    margin-top: 8px;
    padding: 5px 8px;
    border-radius: 5px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: .78rem !important;
    line-height: 1.25 !important;
}

/* ---------------------------------------------------------
   GRID ROW BEHAVIOR
   Cards grow naturally. One long event should not force its neighbors
   to match its height.
   --------------------------------------------------------- */

#colMain #toggleText2 > .gp-life-records-stream {
    align-items: start !important;
}

#colMain #toggleText2 > .gp-life-records-stream > * {
    align-self: start !important;
    height: auto !important;
}

/* ---------------------------------------------------------
   SECTION INTRO
   --------------------------------------------------------- */

.gp-details-history-inner > .gp-details-section-heading {
    margin-bottom: 7px !important;
}

.gp-details-history-inner > .gp-details-section-heading::after {
    content: "Personal records and family milestones are emphasized; wider historical events provide context for the world around this ancestor.";
    display: block;
    max-width: 820px;
    margin-top: 8px;
    color: #748078;
    font-family: Arial, Helvetica, sans-serif;
    font-size: .8rem;
    font-weight: 400;
    line-height: 1.5;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 760px) {
    #colMain #toggleText2 > .gp-life-records-stream > * {
        font-size: .92rem;
    }

    #colMain #toggleText2 > .gp-life-records-stream > .gp-personal-record,
    #colMain #toggleText2 > .gp-life-records-stream > .gp-family-milestone,
    #colMain #toggleText2 > .gp-life-records-stream > .gp-history-context-event,
    #colMain #toggleText2 > .gp-life-records-stream > .gp-photo-record,
    #colMain #toggleText2 > .gp-life-records-stream > .gp-life-event,
    #colMain #toggleText2 > .gp-life-records-stream > .flex-item-gray-no-border-sm-font {
        padding: 16px 17px !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Profile & Action Bar Pass 25
   Refines the first-screen hierarchy and quick actions.
   ZERO Details.aspx/VB changes in this pass.
   ========================================================= */

/* ---------------------------------------------------------
   PROFILE CARD
   --------------------------------------------------------- */

#colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type {
    border-radius: 13px !important;
    background: linear-gradient(135deg, #fbfcfa 0%, #ffffff 74%) !important;
    box-shadow: 0 7px 22px rgba(30,55,38,.045) !important;
}

.gp-details-profile-title {
    min-height: 118px;
    padding-top: 26px !important;
    padding-bottom: 19px !important;
}

.gp-details-main-photo {
    align-self: start;
    margin-top: 1px;
}

.gp-details-main-photo img {
    border-radius: 9px !important;
    border: 1px solid #cfd8d0 !important;
    background: #f6f8f5;
}

/* The name should be the unmistakable visual anchor. */
.gp-details-name-block .Person {
    color: #173f2a !important;
    font-size: clamp(2.2rem, 4.1vw, 3.75rem) !important;
    font-weight: 700;
    letter-spacing: .002em;
}

/* ---------------------------------------------------------
   VITALS
   --------------------------------------------------------- */

.gp-vitals-grid {
    background: #fbfcfa;
}

.gp-vital {
    padding-top: 17px;
    padding-bottom: 18px;
}

.gp-vital-label {
    color: #7a6738;
}

.gp-vital-value {
    font-size: .95rem;
}

.gp-vital-value b {
    font-size: 1.03rem;
}

/* Age / cause row */
.gp-vitals-meta {
    padding-top: 13px;
    color: #5d6b62;
}

/* ---------------------------------------------------------
   ACTION BAR
   --------------------------------------------------------- */

.gp-details-actionbar {
    margin-top: -8px !important;
    margin-bottom: 32px !important;
    border-radius: 11px !important;
    background: #fff;
    box-shadow: 0 4px 16px rgba(30,55,38,.03) !important;
}

/* Six columns works well at full desktop width. */
.gp-details-action {
    display: grid;
    grid-template-rows: 40px auto;
    align-items: center;
    justify-items: center;
    gap: 7px;
    min-height: 94px;
    padding: 14px 9px 12px !important;
    color: #334a3b !important;
    background: #fff;
    transition: background-color .15s ease, color .15s ease;
}

.gp-details-action:hover {
    background: #f4f8f3 !important;
    color: #173f2a !important;
}

.gp-details-action img {
    max-width: 38px !important;
    height: 36px !important;
    margin-bottom: 0 !important;
    filter: saturate(.86);
}

.gp-details-action:hover img {
    filter: saturate(1);
}

.gp-details-action span {
    max-width: 130px;
    font-size: .82rem;
    line-height: 1.28;
}

/* Make the timeline/research action slightly more prominent because it
   leads into the richest section of the page. */
.gp-details-action[href="#toggleText2"] {
    background: #f6f9f5;
}

.gp-details-action[href="#toggleText2"] span {
    color: #234c34;
}

/* ---------------------------------------------------------
   FAMILY CONNECTIONS INTRO
   --------------------------------------------------------- */

.gp-details-family-summary {
    margin-top: 31px !important;
}

.gp-details-family-summary-inner {
    padding-top: 27px !important;
}

.gp-details-family-summary-inner::before {
    width: 3px !important;
}

.gp-details-family-intro {
    max-width: 840px;
    margin-bottom: 20px !important;
}

/* Relationship summary */
.gp-details-relationship-grid {
    margin-top: 18px;
    background: #fcfdfb;
}

.gp-details-relationship-card {
    min-height: 116px;
    padding: 19px 18px;
}

.gp-details-relationship-card > strong {
    color: #294433;
    font-size: 1.02rem;
}

.gp-details-relationship-links {
    font-size: .9rem;
}

/* ---------------------------------------------------------
   SECTION TRANSITIONS
   --------------------------------------------------------- */

/* Keep the first three major sections visually related without looking boxed
   into separate applications. */
.gp-details-family-summary-inner,
.gp-details-family-children-inner,
.gp-details-history-inner {
    border-color: #dce3dc !important;
}

.gp-details-section-heading {
    color: #173f2a !important;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 980px) {
    .gp-details-actionbar {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .gp-details-action:nth-child(3n) {
        border-right: 0;
    }
}

@media (max-width: 620px) {
    .gp-details-profile-title {
        min-height: 0;
        padding-top: 20px !important;
    }

    .gp-details-actionbar {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .gp-details-action {
        min-height: 84px;
    }

    .gp-details-action:nth-child(odd) {
        border-right: 1px solid #e0e5df;
    }

    .gp-details-action:nth-child(even) {
        border-right: 0;
    }

    .gp-details-relationship-card {
        padding: 17px 16px;
    }
}


/* =========================================================
   Ancestor Details V2 - Family Summary Pass 26
   Refines Family Connections and the Family & Children area.
   ZERO Details.aspx/VB changes in this pass.
   ========================================================= */

/* ---------------------------------------------------------
   FAMILY CONNECTIONS SUMMARY
   --------------------------------------------------------- */

.gp-details-family-summary {
    margin-bottom: 26px !important;
}

.gp-details-family-summary-inner {
    padding: 27px 30px 28px !important;
    background: #fff;
}

.gp-details-family-summary-inner > .gp-details-section-heading {
    margin-bottom: 7px !important;
}

.gp-details-family-intro {
    margin-top: 0 !important;
    margin-bottom: 18px !important;
    color: #66736a;
    font-size: .95rem;
}

/* Four overview cards become compact relationship summaries rather than
   equally loud dashboard tiles. */
.gp-details-relationship-grid {
    gap: 0;
    border: 1px solid #dce3dc;
    background: #fbfcfa;
}

.gp-details-relationship-card {
    min-height: 108px;
    padding: 18px 18px 17px;
    background: transparent;
}

.gp-details-relationship-card:hover {
    background: #f6f9f5;
}

.gp-details-relationship-card > strong {
    margin-bottom: 8px;
    color: #274532;
    font-size: 1rem;
}

.gp-details-relationship-links {
    gap: 5px;
    color: #657168;
    font-size: .88rem;
}

.gp-details-relationship-links a {
    color: #245f43 !important;
    font-weight: 700;
}

/* Parents card is the most directly useful relationship summary. */
.gp-details-relationship-card:first-child {
    background: #f8faf7;
}

/* ---------------------------------------------------------
   FAMILY NARRATIVE
   The long descriptive material after the summary should read like content,
   not another card nested inside the same card.
   --------------------------------------------------------- */

.gp-details-family-summary-inner > .gp-details-relationship-grid ~ h2,
.gp-details-family-summary-inner > .gp-details-relationship-grid ~ h3 {
    margin-top: 24px !important;
}

.gp-details-family-summary-inner > .gp-details-relationship-grid ~ p,
.gp-details-family-summary-inner > .gp-details-relationship-grid ~ div,
.gp-details-family-summary-inner > .gp-details-relationship-grid ~ span {
    line-height: 1.68;
}

/* Parent/grandparent names embedded in the narrative. */
.gp-details-family-summary-inner span[itemprop="parent"] a,
.gp-details-family-summary-inner span[itemprop="spouse"] a,
.gp-details-family-summary-inner span[itemprop="children"] a,
.gp-details-family-summary-inner a[href*="/Ancestors/Details/"] {
    color: #245f43 !important;
    font-weight: 700;
    text-underline-offset: 3px;
}

/* ---------------------------------------------------------
   FAMILY & CHILDREN
   --------------------------------------------------------- */

.gp-details-family-children {
    margin-top: 24px !important;
}

.gp-details-family-children-inner {
    padding: 26px 28px 28px !important;
    background: #fff;
    border-left-width: 3px !important;
}

.gp-details-family-children-inner > .gp-details-section-heading {
    margin-bottom: 18px !important;
}

/* "Find spouse" / family maintenance controls stay available but secondary. */
.gp-details-family-children-inner > a[href*="FindSpouse"],
.gp-details-family-children-inner > a[href*="AddSpouse"] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 16px;
    padding: 8px 11px;
    border: 1px solid #d6dfd7;
    border-radius: 6px;
    background: #f7faf6;
    color: #315a40 !important;
    font-size: .86rem;
    font-weight: 700;
    text-decoration: none !important;
}

.gp-details-family-children-inner > a[href*="FindSpouse"] img,
.gp-details-family-children-inner > a[href*="AddSpouse"] img {
    width: auto !important;
    max-width: 32px !important;
    height: 30px !important;
    margin: 0 !important;
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   MARRIAGE CARDS
   --------------------------------------------------------- */

.gp-marriage-card {
    margin-bottom: 18px !important;
    border-color: #dce3dc !important;
    border-radius: 9px !important;
}

.gp-marriage-spouse {
    padding: 19px 21px !important;
    background: #f7f9f6 !important;
}

.gp-marriage-spouse .Person a {
    font-size: 1.1rem !important;
}

.gp-marriage-spouse font[size="-1"] {
    margin-top: 8px;
    font-size: .84rem;
}

/* Source links stay attached to the marriage record without becoming buttons
   that dominate the spouse names. */
.gp-marriage-spouse a[href*="familysearch.org"],
.gp-marriage-spouse a[href*="numerique.banq.qc.ca"] {
    margin-top: 8px;
    padding: 5px 8px;
    font-size: .79rem;
}

/* ---------------------------------------------------------
   CHILDREN
   --------------------------------------------------------- */

.gp-marriage-children {
    padding: 18px 21px 20px !important;
}

.gp-marriage-children > h3 {
    margin-bottom: 12px !important;
    font-size: 1.08rem !important;
}

.gp-child-list {
    line-height: 1.58;
}

.gp-child-list > a[href*="/Ancestors/Details/"] {
    display: inline-block;
    margin-top: 2px;
    color: #245f43 !important;
    font-size: .98rem;
    font-weight: 750;
}

.gp-child-list font[size="-1"] {
    display: inline;
    color: #68756c;
    font-size: .82rem;
}

/* Separate successive children more clearly without requiring more markup. */
.gp-child-list br + br {
    display: block;
    content: "";
    margin: 10px 0 9px;
    border-bottom: 1px solid #e8ece8;
}

/* ---------------------------------------------------------
   MULTIPLE MARRIAGES
   --------------------------------------------------------- */

.gp-marriage-divider {
    margin: 22px 0;
    background: #dfe5df;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 980px) {
    .gp-details-relationship-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 620px) {
    .gp-details-family-summary-inner,
    .gp-details-family-children-inner {
        padding: 21px 18px 22px !important;
    }

    .gp-details-relationship-grid {
        grid-template-columns: 1fr !important;
    }

    .gp-details-relationship-card {
        min-height: 0;
        border-right: 0 !important;
        border-bottom: 1px solid #dce3dc;
    }

    .gp-details-relationship-card:last-child {
        border-bottom: 0;
    }

    .gp-marriage-spouse,
    .gp-marriage-children {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Research Flow Pass 27
   Polishes the lower half of the page after family/life data:
   burial, related places, research continuation, and comments.
   ZERO Details.aspx/VB changes in this pass.
   ========================================================= */

/* ---------------------------------------------------------
   BURIAL / OBITUARY
   --------------------------------------------------------- */

.gp-death-burial-section {
    margin-top: 34px !important;
    margin-bottom: 30px !important;
}

.gp-death-burial-grid {
    gap: 16px !important;
}

.gp-obituary-card,
.gp-burial-card {
    padding: 23px 25px !important;
    border-radius: 9px !important;
    box-shadow: none !important;
}

.gp-obituary-card {
    background: #fbfbf8 !important;
}

.gp-burial-card {
    background: #f8faf7 !important;
}

.gp-record-eyebrow {
    margin-bottom: 6px;
    font-size: .67rem;
}

.gp-obituary-card h2,
.gp-burial-card h2 {
    margin-bottom: 14px !important;
    font-size: 1.28rem !important;
}

.gp-obituary-text,
.gp-cemetery-details,
.gp-burial-notes {
    font-size: .92rem;
    line-height: 1.65;
}

/* Cemetery is the key actionable piece of burial information. */
.gp-cemetery-name {
    margin: 8px 0 9px;
    font-size: 1.12rem;
}

/* ---------------------------------------------------------
   ADDED / UPDATED METADATA
   --------------------------------------------------------- */

.gp-death-burial-section + .flex-container {
    margin: -13px 0 28px !important;
}

.gp-death-burial-section + .flex-container > .flex-item-green-no-border {
    padding: 8px 4px !important;
    border: 0 !important;
    background: transparent !important;
    color: #7b857e !important;
    font-size: .76rem !important;
}

/* ---------------------------------------------------------
   RELATED PLACE PANELS
   --------------------------------------------------------- */

#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]),
#colMain .flex-item-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) {
    margin-top: 24px !important;
    padding: 23px 25px 23px 29px !important;
    border-radius: 9px !important;
    box-shadow: none !important;
}

#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) h2,
#colMain .flex-item-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) h2 {
    font-size: 1.24rem !important;
}

/* The destination link behaves like the next research step, not a giant CTA. */
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) a[href*="/Places/Details/"],
#colMain .flex-item-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) a[href*="/Places/Details/"] {
    padding: 6px 9px;
    font-size: .86rem;
}

/* ---------------------------------------------------------
   CONTINUE RESEARCH / SEARCH AGAIN
   --------------------------------------------------------- */

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form),
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) {
    margin-top: 30px !important;
    padding: 24px 26px !important;
    border-radius: 9px !important;
    background: #f7f9f6 !important;
}

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) > b:first-of-type,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) > b:first-of-type {
    font-size: 1.2rem;
}

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) form,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) form {
    max-width: 760px;
}

/* Inputs should feel like one coherent V2 form even when generated by
   legacy helpers. */
#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) input[type="text"],
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) input[type="text"],
#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) input[type="number"],
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) input[type="number"],
#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) select,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) select {
    min-height: 38px;
    padding: 7px 9px;
    border: 1px solid #cbd5cd;
    border-radius: 5px;
    background: #fff;
    color: #34483a;
    box-sizing: border-box;
}

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) input[type="text"]:focus,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) input[type="text"]:focus,
#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) select:focus,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) select:focus {
    outline: 2px solid rgba(49,95,62,.16);
    outline-offset: 1px;
    border-color: #78947f;
}

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) input[type="submit"],
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) input[type="submit"] {
    min-height: 38px;
    padding: 8px 15px;
    border: 1px solid #315f3e;
    border-radius: 5px;
    background: #315f3e;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

#colMain .flex-item-centered[style*="background:#ffffff"]:has(form) input[type="submit"]:hover,
#colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) input[type="submit"]:hover {
    background: #254d32;
}

/* ---------------------------------------------------------
   GIFT / SHOP AREA
   Keep it clearly separate from genealogical research.
   --------------------------------------------------------- */

#colMain h2.gp-details-gifts-heading {
    margin-top: 42px !important;
    padding-top: 22px !important;
    color: #59675d !important;
    font-size: 1.16rem !important;
}

#colMain h2.gp-details-gifts-heading ~ .flex-container:has(a[href*="amazon.com"]),
#colMain h2.gp-details-gifts-heading ~ .flex-container:has(a[href*="amzn.to"]),
#colMain h2.gp-details-gifts-heading ~ .flex-container:has(a[href*="greenerpasture.printify.me"]) {
    opacity: .72;
    font-size: .86rem;
}

/* ---------------------------------------------------------
   COMMENTS / CONTRIBUTIONS
   --------------------------------------------------------- */

.gp-details-comments {
    margin-top: 40px !important;
    padding-top: 26px;
    border-top: 1px solid #dfe5df;
}

.gp-details-comments-inner {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.gp-details-comments-inner::before {
    margin-bottom: 5px !important;
    font-size: 1.26rem !important;
}

.gp-details-comments-inner::after {
    margin-top: 7px !important;
    max-width: 700px;
}

/* ---------------------------------------------------------
   LOWER-PAGE SPACING CLEANUP
   --------------------------------------------------------- */

#colMain .gp-death-burial-section ~ br + br,
#colMain .gp-details-comments ~ br + br {
    display: none;
}

#colMain img[src*="white_spacer"],
#colMain img[src*="spacer.gif"] {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 760px) {
    .gp-obituary-card,
    .gp-burial-card {
        padding: 19px 18px !important;
    }

    #colMain .flex-item-centered[style*="background:#ffffff"]:has(form),
    #colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form),
    #colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]),
    #colMain .flex-item-centered[style*="background:#ffffff"]:has(a[href*="/Places/Details/"]) {
        padding: 20px 18px !important;
    }

    .gp-details-comments {
        margin-top: 32px !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Section Navigation Pass 28
   Adds a compact in-page research navigator.
   ========================================================= */

.gp-details-section-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: -13px 0 30px;
    padding: 10px 12px;
    border: 1px solid #dbe2dc;
    border-radius: 9px;
    background: #f8faf7;
}

.gp-details-section-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 10px;
    border-radius: 5px;
    color: #35503e !important;
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
}

.gp-details-section-nav a:hover {
    background: #eaf1e9;
    color: #173f2a !important;
}

.gp-details-section-nav a:focus-visible {
    outline: 2px solid rgba(49,95,62,.28);
    outline-offset: 2px;
}

/* Give every destination enough top offset when navigating from the section bar. */
#family,
#marriages,
#toggleText2,
#burial,
#discussion {
    scroll-margin-top: 110px;
}

/* The navigation is useful, but it should not compete with the profile actions. */
.gp-details-actionbar + .gp-details-section-nav {
    box-shadow: none;
}

/* Hide links to sections that are structurally empty when modern browsers
   can determine that via :has(). The page remains fully usable without :has(). */
.gp-details-section-nav a[href="#burial"] {
    order: 4;
}

.gp-details-section-nav a[href="#discussion"] {
    order: 5;
}

/* ---------------------------------------------------------
   ACCESSIBILITY / READING COMFORT
   --------------------------------------------------------- */

#colMain :target {
    scroll-margin-top: 110px;
}

#colMain a {
    text-decoration-skip-ink: auto;
}

#colMain p,
#colMain li,
#colMain .gp-obituary-text,
#colMain .gp-burial-notes,
#colMain .gp-personal-record,
#colMain .gp-history-context-event {
    max-width: 78ch;
}

/* Do not constrain grid/card text containers that need to fill their cards. */
#colMain .gp-life-records-stream > *,
#colMain .gp-details-relationship-card,
#colMain .gp-marriage-card {
    max-width: none;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-details-section-nav {
        gap: 5px;
        margin-bottom: 24px;
        padding: 8px;
    }

    .gp-details-section-nav a {
        flex: 1 1 calc(50% - 5px);
        justify-content: center;
        min-width: 130px;
        text-align: center;
    }
}

@media (max-width: 430px) {
    .gp-details-section-nav a {
        flex-basis: 100%;
    }
}


/* =========================================================
   Ancestor Details V2 - Notes Formatting Pass 29
   Fixes legacy notes and surname-meaning text running together.
   ========================================================= */

.gp-details-notes {
    max-width: 90ch;
    margin: 22px 0 26px;
    padding: 22px 24px;
    border: 1px solid #dce3dc;
    border-left: 4px solid #78917d;
    border-radius: 9px;
    background: #fbfcfa;
    color: #46564c;
    font-size: .94rem;
    font-weight: 400;
    line-height: 1.7;
}

.gp-details-notes b,
.gp-details-notes strong {
    color: #344b3b;
    font-weight: 700;
}

.gp-details-notes br {
    display: block !important;
    content: "" !important;
    margin-top: .45em;
}

.gp-details-notes .gp-name-meaning-heading {
    margin: 24px 0 11px !important;
    padding-top: 18px;
    border-top: 1px solid #dfe5df;
    color: #234532 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.2rem !important;
    line-height: 1.25 !important;
}

.gp-details-notes .gp-name-meaning-heading:first-child {
    margin-top: 0 !important;
    padding-top: 0;
    border-top: 0;
}

.gp-details-notes .gp-note-label {
    display: inline-block;
    margin-top: 7px;
    color: #5b695f;
    font-weight: 700;
}

.gp-details-notes a {
    color: #245f43 !important;
    font-weight: 700;
    text-underline-offset: 3px;
}

@media (max-width: 700px) {
    .gp-details-notes {
        padding: 18px 17px;
        font-size: .92rem;
    }

    .gp-details-notes .gp-name-meaning-heading {
        font-size: 1.12rem !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Notes Marker Pass 30
   Preserve the meaningful "(s)" note marker.
   ========================================================= */

.gp-details-notes .gp-note-marker {
    display: inline-block;
    margin: 0 0 10px;
    padding: 3px 7px;
    border: 1px solid #d8dfd8;
    border-radius: 4px;
    background: #f4f7f3;
    color: #46564c;
    font-family: Arial, Helvetica, sans-serif;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.2;
}

.gp-details-notes .gp-note-marker + br {
    display: block !important;
    margin-top: .25em;
}


/* =========================================================
   Ancestor Details V2 - Print & Accessibility Pass 31
   Improves long-page usability, keyboard focus, and printing.
   ZERO Details.aspx/VB changes in this pass.
   ========================================================= */

/* ---------------------------------------------------------
   KEYBOARD / FOCUS
   --------------------------------------------------------- */

#colMain a:focus-visible,
#colMain button:focus-visible,
#colMain input:focus-visible,
#colMain select:focus-visible,
#colMain textarea:focus-visible {
    outline: 3px solid rgba(49,95,62,.28) !important;
    outline-offset: 2px !important;
    border-radius: 4px;
}

/* Avoid focus outlines being clipped inside cards. */
#colMain .gp-details-action,
#colMain .gp-details-section-nav a,
#colMain .gp-details-relationship-card,
#colMain .gp-marriage-card,
#colMain .gp-life-records-stream > * {
    overflow: visible;
}

/* ---------------------------------------------------------
   TEXT SELECTION / LEGIBILITY
   --------------------------------------------------------- */

#colMain ::selection {
    background: rgba(49,95,62,.18);
    color: #173f2a;
}

#colMain .gp-details-notes,
#colMain .gp-obituary-text,
#colMain .gp-burial-notes,
#colMain .gp-personal-record,
#colMain .gp-history-context-event,
#colMain .gp-marriage-spouse,
#colMain .gp-child-list {
    text-rendering: optimizeLegibility;
}

/* ---------------------------------------------------------
   LONG-PAGE NAVIGATION
   --------------------------------------------------------- */

/* Keep the section nav visually compact after the notes formatting work. */
.gp-details-section-nav {
    margin-bottom: 28px !important;
}

.gp-details-section-nav a {
    white-space: nowrap;
}

/* Avoid awkward jumps when section headings are targets. */
#family,
#marriages,
#toggleText2,
#burial,
#discussion {
    scroll-margin-top: 118px;
}

/* ---------------------------------------------------------
   REDUCED MOTION
   --------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    #colMain *,
    #colMain *::before,
    #colMain *::after {
        transition: none !important;
        animation: none !important;
        scroll-behavior: auto !important;
    }
}

/* ---------------------------------------------------------
   PRINT
   Genealogy detail pages are frequently saved/printed.
   Preserve the person, family, records, notes, obituary, burial,
   and sources while removing navigation, ads, store content,
   forms, admin controls, and comments.
   --------------------------------------------------------- */

@media print {
    @page {
        margin: 0.55in;
    }

    html,
    body {
        background: #fff !important;
    }

    body {
        color: #000 !important;
        font-family: Georgia, "Times New Roman", serif !important;
        font-size: 10.5pt !important;
        line-height: 1.45 !important;
    }

    #colMain {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #000 !important;
    }

    /* Navigation and interactive controls */
    .gp-details-actionbar,
    .gp-details-section-nav,
    .gp-add-life-event,
    .gp-details-more-cta,
    .gp-details-comments,
    #disqus_thread,
    form,
    input,
    select,
    textarea,
    button,
    .greenbutton,
    .yellowbutton,
    .graybutton {
        display: none !important;
    }

    /* Editing/admin icons and utility controls */
    #colMain img[src*="edit"],
    #colMain img[src*="delete"],
    #colMain img[src*="add_"],
    #colMain a[href*="UpdatePerson"],
    #colMain a[href*="Delete"],
    #colMain a[href*="AddLifeEvent"],
    #colMain a[href*="SendPhoto"] {
        display: none !important;
    }

    /* Commercial/store content should not consume printed pages. */
    #colMain h2.gp-details-gifts-heading,
    #colMain .flex-container:has(a[href*="amazon.com"]),
    #colMain .flex-container:has(a[href*="amzn.to"]),
    #colMain .flex-container:has(a[href*="greenerpasture.printify.me"]),
    #colMain a[href*="amazon.com"],
    #colMain a[href*="amzn.to"] {
        display: none !important;
    }

    /* Profile */
    #colMain > div[itemscope][itemtype="https://schema.org/Person"] > .flex-container:first-of-type {
        border: 0 !important;
        box-shadow: none !important;
        background: #fff !important;
        margin: 0 0 14pt !important;
    }

    .gp-details-profile-title {
        padding: 0 0 8pt !important;
        min-height: 0 !important;
    }

    .gp-details-main-photo img {
        width: 64px !important;
        max-width: 64px !important;
        box-shadow: none !important;
    }

    .gp-details-name-block .Person {
        color: #000 !important;
        font-size: 22pt !important;
    }

    .gp-details-vitals {
        padding: 0 0 10pt !important;
    }

    .gp-vitals-grid {
        background: #fff !important;
        border-color: #aaa !important;
    }

    .gp-vital {
        padding: 8pt 10pt !important;
    }

    /* Main sections */
    .gp-details-family-summary-inner,
    .gp-details-family-children-inner,
    .gp-details-history-inner,
    .gp-obituary-card,
    .gp-burial-card,
    .gp-details-notes {
        border: 0 !important;
        box-shadow: none !important;
        background: #fff !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .gp-details-section-heading,
    .gp-obituary-card h2,
    .gp-burial-card h2,
    .gp-details-notes .gp-name-meaning-heading {
        color: #000 !important;
        page-break-after: avoid;
        break-after: avoid-page;
    }

    /* Relationship summary */
    .gp-details-relationship-grid {
        border-color: #aaa !important;
        background: #fff !important;
    }

    .gp-details-relationship-card {
        background: #fff !important;
        border-color: #bbb !important;
    }

    /* Marriage / children */
    .gp-marriage-card {
        border: 1px solid #aaa !important;
        box-shadow: none !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .gp-marriage-spouse,
    .gp-marriage-children {
        background: #fff !important;
    }

    /* Life & Records: print one full-width card at a time for readability. */
    #colMain #toggleText2 > .gp-life-records-stream {
        display: block !important;
    }

    #colMain #toggleText2 > .gp-life-records-stream > * {
        display: block !important;
        width: 100% !important;
        margin: 0 0 9pt !important;
        padding: 9pt 10pt !important;
        border: 1px solid #bbb !important;
        background: #fff !important;
        color: #000 !important;
        box-shadow: none !important;
        opacity: 1 !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* Historical promo/product cards inside the timeline are not records. */
    #colMain #toggleText2 > .gp-life-records-stream > .flex-item-no-border-centered {
        display: none !important;
    }

    /* Notes / obituary / burial */
    .gp-details-notes {
        max-width: none !important;
        border-top: 1px solid #aaa !important;
        border-bottom: 1px solid #aaa !important;
        margin: 12pt 0 !important;
        padding-top: 10pt !important;
        padding-bottom: 10pt !important;
    }

    .gp-death-burial-grid {
        display: block !important;
    }

    .gp-obituary-card,
    .gp-burial-card {
        margin-bottom: 12pt !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* Links print as readable text without colored button chrome. */
    #colMain a,
    #colMain a:visited {
        color: #000 !important;
        background: transparent !important;
        border: 0 !important;
        text-decoration: underline !important;
    }

    /* Keep images reasonable. */
    #colMain img {
        max-width: 100% !important;
        box-shadow: none !important;
    }

    /* Avoid empty spacer remnants. */
    #colMain img[src*="white_spacer"],
    #colMain img[src*="spacer"] {
        display: none !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Mobile & Tablet Polish Pass 32
   Tightens the entire page on smaller screens.
   ZERO Details.aspx/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   TABLET
   --------------------------------------------------------- */

@media (max-width: 980px) {
    #colMain {
        width: min(100% - 24px, 1180px) !important;
        margin-top: 18px !important;
    }

    .gp-details-profile-title {
        grid-template-columns: 70px minmax(0, 1fr) !important;
        column-gap: 18px !important;
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    .gp-details-main-photo,
    .gp-details-main-photo img {
        width: 70px !important;
        max-width: 70px !important;
    }

    .gp-details-name-block .Person {
        font-size: clamp(2rem, 6vw, 3rem) !important;
    }

    .gp-details-vitals {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    .gp-details-actionbar {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .gp-details-section-nav {
        justify-content: flex-start;
    }

    .gp-details-family-summary-inner,
    .gp-details-family-children-inner,
    .gp-details-history-inner {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    .gp-death-burial-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ---------------------------------------------------------
   PHONE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    #colMain {
        width: min(100% - 16px, 1180px) !important;
        margin-top: 10px !important;
        margin-bottom: 38px !important;
    }

    /* Profile */
    .gp-details-profile-title {
        grid-template-columns: 58px minmax(0, 1fr) !important;
        column-gap: 14px !important;
        padding: 18px 16px 14px !important;
    }

    .gp-details-main-photo,
    .gp-details-main-photo img {
        width: 58px !important;
        max-width: 58px !important;
    }

    .gp-details-name-block .Person {
        font-size: clamp(1.72rem, 8.6vw, 2.45rem) !important;
        line-height: 1.05 !important;
    }

    /* Vitals */
    .gp-details-vitals {
        padding: 0 16px 18px !important;
    }

    .gp-vitals-grid {
        grid-template-columns: 1fr !important;
    }

    .gp-vital {
        padding: 14px 0 !important;
    }

    .gp-vital:first-child {
        border-right: 0 !important;
        border-bottom: 1px solid #dce3da !important;
    }

    .gp-vitals-meta {
        display: block !important;
        padding: 12px 0 0 !important;
        font-size: .88rem !important;
    }

    .gp-vitals-meta br {
        display: block !important;
    }

    /* Action bar */
    .gp-details-actionbar {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        margin-bottom: 18px !important;
    }

    .gp-details-action {
        min-height: 78px !important;
        padding: 11px 7px 10px !important;
    }

    .gp-details-action img {
        max-width: 33px !important;
        height: 32px !important;
    }

    .gp-details-action span {
        font-size: .78rem !important;
    }

    /* Section nav */
    .gp-details-section-nav {
        margin: -7px 0 22px !important;
        padding: 7px !important;
        gap: 5px !important;
    }

    .gp-details-section-nav a {
        flex: 1 1 calc(50% - 5px) !important;
        min-width: 0 !important;
        min-height: 32px !important;
        padding: 5px 7px !important;
        font-size: .77rem !important;
        text-align: center;
        justify-content: center;
        white-space: normal !important;
    }

    /* Section cards */
    .gp-details-family-summary-inner,
    .gp-details-family-children-inner,
    .gp-details-history-inner {
        padding: 19px 16px 20px !important;
        border-radius: 9px !important;
    }

    .gp-details-section-heading {
        font-size: 1.35rem !important;
        line-height: 1.22 !important;
    }

    .gp-details-family-intro {
        font-size: .9rem !important;
    }

    /* Relationship cards */
    .gp-details-relationship-grid {
        grid-template-columns: 1fr !important;
        border-radius: 8px !important;
    }

    .gp-details-relationship-card {
        min-height: 0 !important;
        padding: 15px !important;
        border-right: 0 !important;
        border-bottom: 1px solid #dce3dc !important;
    }

    .gp-details-relationship-card:last-child {
        border-bottom: 0 !important;
    }

    /* Marriage / children */
    .gp-marriage-spouse,
    .gp-marriage-children {
        padding: 15px !important;
    }

    .gp-marriage-spouse .Person a {
        font-size: 1.04rem !important;
    }

    .gp-marriage-spouse a[href*="familysearch.org"],
    .gp-marriage-spouse a[href*="numerique.banq.qc.ca"] {
        display: inline-block !important;
        max-width: 100%;
        margin-right: 4px;
    }

    /* Notes */
    .gp-details-notes {
        max-width: none !important;
        margin: 18px 0 22px !important;
        padding: 16px 15px !important;
        font-size: .9rem !important;
        line-height: 1.65 !important;
    }

    .gp-details-notes .gp-name-meaning-heading {
        margin-top: 20px !important;
        font-size: 1.08rem !important;
    }

    /* Life & records */
    #colMain #toggleText2 > .gp-life-records-stream {
        grid-template-columns: 1fr !important;
        gap: 11px !important;
    }

    #colMain #toggleText2 > .gp-life-records-stream > * {
        padding: 14px 15px !important;
        font-size: .9rem !important;
    }

    #colMain #toggleText2 .gp-history-context-event > a:first-of-type,
    #colMain #toggleText2 .flex-item-gray-no-border-sm-font > a:first-of-type {
        font-size: 1rem !important;
    }

    /* Burial / obituary */
    .gp-obituary-card,
    .gp-burial-card {
        padding: 17px 15px !important;
    }

    .gp-obituary-card h2,
    .gp-burial-card h2 {
        font-size: 1.18rem !important;
    }

    /* Forms */
    #colMain .flex-item-centered[style*="background:#ffffff"]:has(form),
    #colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) {
        padding: 18px 15px !important;
    }

    #colMain .flex-item-centered[style*="background:#ffffff"]:has(form) .row,
    #colMain .flex-item-no-border-centered[style*="background:#ffffff"]:has(form) .row {
        grid-template-columns: 1fr !important;
        gap: 4px !important;
    }

    /* Avoid horizontal overflow from old fixed-width content. */
    #colMain table,
    #colMain iframe,
    #colMain img,
    #colMain input,
    #colMain select,
    #colMain textarea {
        max-width: 100% !important;
    }
}

/* ---------------------------------------------------------
   VERY SMALL PHONES
   --------------------------------------------------------- */

@media (max-width: 430px) {
    .gp-details-profile-title {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .gp-details-main-photo {
        grid-column: 1 !important;
        grid-row: auto !important;
        margin: 0 !important;
    }

    .gp-details-name-block {
        grid-column: 1 !important;
        grid-row: auto !important;
    }

    .gp-details-main-photo,
    .gp-details-main-photo img {
        width: 64px !important;
        max-width: 64px !important;
    }

    .gp-details-name-block .Person {
        font-size: 1.8rem !important;
    }

    .gp-details-actionbar {
        grid-template-columns: 1fr 1fr !important;
    }

    .gp-details-section-nav a {
        flex-basis: 100% !important;
    }

    .gp-details-section-heading {
        font-size: 1.25rem !important;
    }
}


/* =========================================================
   Ancestor Details V2 - Final Visual Polish Pass 33
   Desktop rhythm, legacy cleanup, and consistency.
   ZERO Details.aspx/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   PAGE WIDTH / RHYTHM
   --------------------------------------------------------- */

#colMain {
    width: min(1160px, calc(100% - 32px)) !important;
}

#colMain > div[itemscope][itemtype="https://schema.org/Person"] {
    display: block;
    width: 100%;
}

/* Keep the main genealogy sections aligned to one visual column. */
.gp-details-family-summary,
.gp-details-family-children,
.gp-details-history-section,
.gp-death-burial-section,
.gp-details-comments {
    width: 100%;
    max-width: 100%;
}

/* ---------------------------------------------------------
   SECTION SPACING
   --------------------------------------------------------- */

.gp-details-family-summary,
.gp-details-family-children,
.gp-details-history-section,
.gp-death-burial-section {
    margin-top: 30px !important;
    margin-bottom: 30px !important;
}

.gp-details-family-summary + .gp-details-family-children {
    margin-top: 22px !important;
}

.gp-details-family-children + .gp-details-history-section {
    margin-top: 28px !important;
}

/* ---------------------------------------------------------
   SECTION HEADINGS
   --------------------------------------------------------- */

.gp-details-section-heading {
    letter-spacing: -.01em;
}

.gp-details-section-heading::first-letter {
    text-transform: none;
}

.gp-details-section-heading + p,
.gp-details-section-heading + .gp-details-family-intro {
    max-width: 78ch;
}

/* ---------------------------------------------------------
   PROFILE / ACTION BAR ALIGNMENT
   --------------------------------------------------------- */

.gp-details-actionbar {
    border-color: #d8e0d9 !important;
}

.gp-details-actionbar .gp-details-action {
    border-color: #e2e7e2 !important;
}

/* Prevent legacy images in the header area from acquiring card chrome. */
.gp-details-profile-title img,
.gp-details-actionbar img {
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   FAMILY + MARRIAGE CONSISTENCY
   --------------------------------------------------------- */

.gp-details-relationship-card,
.gp-marriage-card {
    transition: background-color .14s ease, border-color .14s ease;
}

.gp-details-relationship-card:hover,
.gp-marriage-card:hover {
    border-color: #cbd6cd !important;
}

.gp-marriage-spouse,
.gp-marriage-children {
    color: #415146;
}

/* ---------------------------------------------------------
   LIFE / RECORDS CONSISTENCY
   --------------------------------------------------------- */

#colMain #toggleText2 > .gp-life-records-stream {
    margin-top: 16px !important;
}

#colMain #toggleText2 > .gp-life-records-stream > * {
    border-radius: 9px !important;
}

#colMain #toggleText2 > .gp-life-records-stream > * p:last-child,
#colMain #toggleText2 > .gp-life-records-stream > * div:last-child {
    margin-bottom: 0;
}

/* Avoid tiny inline icons creating uneven card baselines. */
#colMain #toggleText2 > .gp-life-records-stream img {
    vertical-align: middle;
}

/* ---------------------------------------------------------
   NOTES / BURIAL / RESEARCH CONSISTENCY
   --------------------------------------------------------- */

.gp-details-notes,
.gp-obituary-card,
.gp-burial-card {
    border-color: #d9e0da !important;
}

.gp-details-notes {
    box-shadow: none !important;
}

.gp-obituary-card,
.gp-burial-card {
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   LEGACY CLEANUP
   --------------------------------------------------------- */

/* Old line/separator classes should not double up with V2 borders. */
#colMain .lineHorizontal {
    height: 1px !important;
    margin: 20px 0 !important;
    border: 0 !important;
    background: #dfe5df !important;
}

/* Eliminate obvious empty visual remnants from legacy layout helpers. */
#colMain .flex-container:empty,
#colMain .flex-item-no-border:empty,
#colMain .flex-item-no-border-centered:empty,
#colMain .flex-item-green-no-border:empty {
    display: none !important;
}

/* Old center tags still exist in places; keep their text readable and stop
   them from forcing giant visual gaps. */
#colMain center {
    margin-top: 0;
    margin-bottom: 0;
}

/* ---------------------------------------------------------
   LINK CONSISTENCY
   --------------------------------------------------------- */

#colMain a {
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

#colMain a:hover {
    text-decoration-thickness: 1px;
}

/* ---------------------------------------------------------
   DESKTOP LARGE SCREEN
   --------------------------------------------------------- */

@media (min-width: 1400px) {
    #colMain {
        width: min(1200px, calc(100% - 48px)) !important;
    }

    .gp-details-family-summary-inner,
    .gp-details-family-children-inner,
    .gp-details-history-inner {
        padding-left: 34px !important;
        padding-right: 34px !important;
    }
}

/* ---------------------------------------------------------
   TABLET / PHONE
   --------------------------------------------------------- */

@media (max-width: 980px) {
    #colMain {
        width: min(100% - 24px, 1160px) !important;
    }
}

@media (max-width: 700px) {
    #colMain {
        width: min(100% - 14px, 1160px) !important;
    }

    .gp-details-family-summary,
    .gp-details-family-children,
    .gp-details-history-section,
    .gp-death-burial-section {
        margin-top: 24px !important;
        margin-bottom: 24px !important;
    }
}

/* =========================================================
   GreenerPasture V2 - Places Details Pass 01
   First structural/visual pass for legacy ASP.NET MVC WebForms view.
   ========================================================= */

.gp-place-hero {
    width: 100% !important;
    max-width: 1160px;
    margin: 18px auto 0 !important;
    box-sizing: border-box;
}

.gp-place-hero-inner {
    width: 100% !important;
    max-width: none !important;
    padding: 28px 30px 24px !important;
    border: 1px solid #dbe3dc;
    border-radius: 12px;
    background: #fbfcfa;
    box-sizing: border-box;
}

.gp-place-title {
    margin: 0 0 10px !important;
    color: #173f2a !important;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.15rem, 4.5vw, 3.65rem) !important;
    line-height: 1.04 !important;
    letter-spacing: -.025em;
}

.gp-place-tagline {
    max-width: 820px;
    margin: 16px auto 10px !important;
    color: #53645a !important;
    font-size: 1.08rem !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
    text-align: center;
}

.gp-place-section-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
    max-width: 920px;
    margin: 12px auto 30px;
    padding: 9px;
    border: 1px solid #dbe2dc;
    border-radius: 9px;
    background: #f7faf6;
}

.gp-place-section-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 6px 11px;
    border-radius: 5px;
    color: #31563d !important;
    font-size: .82rem;
    font-weight: 700;
    text-decoration: none !important;
}

.gp-place-section-nav a:hover {
    background: #e9f0e8;
    color: #173f2a !important;
}

.gp-place-section {
    width: 100% !important;
    max-width: 1160px;
    margin: 30px auto !important;
    box-sizing: border-box;
}

.gp-place-section-inner {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 27px 30px 29px !important;
    border: 1px solid #dce3dc;
    border-left: 4px solid #78917d;
    border-radius: 10px;
    background: #fff;
    box-sizing: border-box;
}

.gp-place-section-inner > h2:first-child {
    margin: 0 0 18px !important;
    color: #173f2a !important;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.4rem, 2.4vw, 1.85rem) !important;
    line-height: 1.2 !important;
}

.gp-place-vintage .gp-place-section-inner {
    border-left-color: #a98b4d;
    background: #fcfbf7;
}

.gp-place-history .gp-place-section-inner {
    border-left-color: #52755c;
}

.gp-place-ancestry .gp-place-section-inner {
    border-left-color: #6f866f;
    background: #fafcf9;
}

.gp-place-search .gp-place-section-inner {
    border-left-color: #71838e;
    background: #f9fbfb;
}

/* Neutralize legacy fixed-width children inside V2 place sections. */
.gp-place-section .flex-container {
    max-width: 100% !important;
    box-sizing: border-box;
}

.gp-place-section .flex-item-no-border,
.gp-place-section .flex-item-gray-no-border,
.gp-place-section .flex-item-no-border-centered,
.gp-place-section .flex-item-centered {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

/* Images should never force horizontal overflow. */
.gp-place-section img {
    max-width: 100% !important;
    height: auto;
}

/* Give history/story prose a comfortable reading measure without
   recreating the narrow-card problem from Ancestor Details. */
.gp-place-history p,
.gp-place-history .flex-item-no-border,
.gp-place-history .flex-item-gray-no-border {
    line-height: 1.62;
}

/* Search form gets the same V2 language as ancestor Details. */
.gp-place-search input[type="text"],
.gp-place-search select {
    max-width: 100%;
    min-height: 38px;
    padding: 7px 9px;
    border: 1px solid #cbd5cd;
    border-radius: 5px;
    background: #fff;
    box-sizing: border-box;
}

.gp-place-search input[type="submit"] {
    min-height: 38px;
    padding: 8px 15px;
    border: 1px solid #315f3e;
    border-radius: 5px;
    background: #315f3e;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

#history, #vintage, #ancestry, #place-search {
    scroll-margin-top: 110px;
}

@media (max-width: 760px) {
    .gp-place-hero,
    .gp-place-section {
        width: calc(100% - 14px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .gp-place-hero-inner,
    .gp-place-section-inner {
        padding: 20px 17px 22px !important;
    }

    .gp-place-section-nav {
        margin-left: 7px;
        margin-right: 7px;
    }

    .gp-place-section-nav a {
        flex: 1 1 calc(50% - 7px);
        min-width: 130px;
        text-align: center;
    }
}

@media (max-width: 430px) {
    .gp-place-section-nav a {
        flex-basis: 100%;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 02
   History, ancestry, story callout, and search layout.
   ========================================================= */

.gp-place-story-callout {
    width: min(1160px, calc(100% - 32px)) !important;
    margin: 26px auto !important;
}

.gp-place-story-callout-inner {
    width: 100% !important;
    max-width: none !important;
    padding: 24px 28px !important;
    border: 1px solid #d8e0d8 !important;
    border-left: 4px solid #7a927e !important;
    border-radius: 10px !important;
    background: #f7faf6 !important;
    color: #46564c;
    line-height: 1.6;
    box-sizing: border-box;
}

.gp-place-story-callout-inner h2 {
    margin: 0 0 12px !important;
    color: #234532 !important;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem !important;
    line-height: 1.25 !important;
}

.gp-place-history,
.gp-place-ancestry {
    width: min(1160px, calc(100% - 32px)) !important;
}

.gp-place-history .gp-place-section-inner {
    overflow: visible;
}

.gp-place-history .flex-container {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
}

.gp-place-history .flex-item-no-border,
.gp-place-history .flex-item-gray-no-border,
.gp-place-history .flex-item-no-border-sm-font {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

.gp-place-history .flex-container > .flex-item-no-border:not(:only-child),
.gp-place-history .flex-container > .flex-item-gray-no-border,
.gp-place-history .flex-container > .flex-item-no-border-sm-font {
    padding: 17px 19px !important;
    border: 1px solid #dfe5df !important;
    border-left: 3px solid #91a092 !important;
    border-radius: 8px !important;
    background: #fbfcfa !important;
    line-height: 1.58;
}

.gp-place-history a[href*="AddLifeEventFor"] img {
    width: auto !important;
    max-width: 44px !important;
    height: 42px !important;
    margin: 0 0 12px !important;
    box-shadow: none !important;
}

.gp-place-ancestry .gp-place-section-inner {
    background: #fafcf9 !important;
}

.gp-place-ancestry .gp-place-section-inner > .flex-container {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    margin: 0 0 12px !important;
}

.gp-place-ancestry .gp-place-section-inner > .flex-container > .flex-item,
.gp-place-ancestry .gp-place-section-inner > .flex-container > .flex-item-gray-no-border {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 20px 22px !important;
    border: 1px solid #dce3dc !important;
    border-radius: 9px !important;
    background: #fff !important;
    box-sizing: border-box;
}

.gp-place-ancestry h3 {
    margin: 0 0 9px !important;
    color: #2b4a36 !important;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.12rem !important;
    line-height: 1.3 !important;
}

.gp-place-ancestry a {
    color: #245f43 !important;
    font-weight: 700;
    text-underline-offset: 3px;
}

.gp-place-search-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    width: min(1160px, calc(100% - 32px)) !important;
    margin: 30px auto !important;
    align-items: stretch;
}

.gp-place-search-grid > .gp-place-search-card {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 25px 27px !important;
    border: 1px solid #d8e0d8 !important;
    border-radius: 10px !important;
    background: #f9fbf9 !important;
    text-align: left !important;
    box-sizing: border-box;
}

.gp-place-search-card h2 {
    margin: 0 0 12px !important;
    color: #234532 !important;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.28rem !important;
    line-height: 1.25 !important;
    text-align: left !important;
}

.gp-place-search-card input[type="search"],
.gp-place-search-card input[type="text"],
.gp-place-search-card select {
    width: 100%;
    max-width: 430px;
    min-height: 40px;
    padding: 8px 10px;
    border: 1px solid #cbd5cd;
    border-radius: 5px;
    background: #fff;
    box-sizing: border-box;
}

.gp-place-search-card input[type="submit"] {
    min-height: 40px;
    margin-top: 9px;
    padding: 8px 16px;
    border: 1px solid #315f3e;
    border-radius: 5px;
    background: #315f3e;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

.gp-place-search-card input[type="submit"]:hover {
    background: #254d32;
}

.gp-place-search-card a[href="/Products"] img {
    max-height: 30px !important;
    width: auto !important;
    opacity: .8;
}

@media (max-width: 820px) {
    .gp-place-search-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .gp-place-story-callout,
    .gp-place-history,
    .gp-place-ancestry,
    .gp-place-search-grid {
        width: calc(100% - 14px) !important;
    }

    .gp-place-story-callout-inner,
    .gp-place-search-grid > .gp-place-search-card {
        padding: 20px 17px !important;
    }

    .gp-place-ancestry .gp-place-section-inner > .flex-container > .flex-item,
    .gp-place-ancestry .gp-place-section-inner > .flex-container > .flex-item-gray-no-border {
        padding: 17px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 03
   Vintage photos, ads, postcards, and media gallery.
   ========================================================= */

.gp-place-section-eyebrow {
    margin-bottom: 6px;
    color: #7b683b;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

/* ---------------------------------------------------------
   VINTAGE SECTION WRAPPER
   --------------------------------------------------------- */

.gp-place-vintage {
    width: min(1160px, calc(100% - 32px)) !important;
}

.gp-place-vintage .gp-place-section-inner {
    padding-top: 25px !important;
    background: linear-gradient(180deg, #fcfbf7 0%, #fff 100%) !important;
}

.gp-place-vintage .gp-place-section-inner > h2:first-of-type {
    margin-bottom: 8px !important;
}

.gp-place-vintage .gp-place-section-inner > h2:first-of-type + br {
    display: none;
}

/* ---------------------------------------------------------
   VINTAGE MEDIA ITEMS
   Legacy markup uses nested flex containers/items. Turn those
   into a responsive gallery without touching the image logic.
   --------------------------------------------------------- */

.gp-place-vintage .flex-container {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box;
}

/* Nested rows become a gallery where possible. */
.gp-place-vintage .gp-place-section-inner > .flex-container,
.gp-place-vintage .flex-container:has(.mediumimage),
.gp-place-vintage .flex-container:has(.smallimage) {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
}

/* Individual legacy items become archival cards. */
.gp-place-vintage .flex-item-no-border,
.gp-place-vintage .flex-item-no-border-sm-font,
.gp-place-vintage .flex-item-gray-no-border,
.gp-place-vintage .flex-item-gray-no-border-sm-font,
.gp-place-vintage .flex-item-centered,
.gp-place-vintage .flex-item-no-border-centered {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box;
}

/* Only give card chrome to items that actually contain media. */
.gp-place-vintage .flex-item-no-border:has(img),
.gp-place-vintage .flex-item-no-border-sm-font:has(img),
.gp-place-vintage .flex-item-gray-no-border:has(img),
.gp-place-vintage .flex-item-gray-no-border-sm-font:has(img),
.gp-place-vintage .flex-item-centered:has(img),
.gp-place-vintage .flex-item-no-border-centered:has(img) {
    padding: 14px !important;
    border: 1px solid #e0dfd8 !important;
    border-radius: 9px !important;
    background: #fff !important;
    box-shadow: 0 3px 12px rgba(30,55,38,.025);
    text-align: left !important;
}

/* Main vintage images */
.gp-place-vintage img.mediumimage,
.gp-place-vintage img.smallimage,
.gp-place-vintage a > img[src*="Content"] {
    display: block;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 300px;
    margin: 0 auto 10px !important;
    object-fit: contain;
    border-radius: 6px;
    box-shadow: none !important;
}

/* Preserve small utility/edit icons. */
.gp-place-vintage img[src*="edit"],
.gp-place-vintage img[src*="delete"],
.gp-place-vintage img[src*="pinterest"],
.gp-place-vintage img[src*="facebook"] {
    display: inline-block !important;
    width: auto !important;
    max-width: 30px !important;
    height: 28px !important;
    margin: 3px 6px 3px 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Captions / descriptions */
.gp-place-vintage .flex-item-no-border,
.gp-place-vintage .flex-item-no-border-sm-font,
.gp-place-vintage .flex-item-gray-no-border,
.gp-place-vintage .flex-item-gray-no-border-sm-font {
    color: #4b584f;
    font-size: .9rem;
    line-height: 1.55;
}

.gp-place-vintage b,
.gp-place-vintage strong {
    color: #35493c;
}

.gp-place-vintage a {
    color: #315a40 !important;
    font-weight: 700;
    text-underline-offset: 3px;
}

/* Source / metadata text beneath postcards and photos */
.gp-place-vintage font[size="-1"] {
    color: #707a72;
    font-size: .78rem;
    line-height: 1.45;
}

/* ---------------------------------------------------------
   WIDE / FEATURE MEDIA
   If a media item contains a larger embedded item or long copy,
   let it span two tracks instead of squeezing.
   --------------------------------------------------------- */

.gp-place-vintage .flex-item-no-border:has(iframe),
.gp-place-vintage .flex-item-no-border-sm-font:has(iframe),
.gp-place-vintage .flex-item-gray-no-border:has(iframe) {
    grid-column: span 2;
}

.gp-place-vintage iframe {
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 7px;
}

/* ---------------------------------------------------------
   EMPTY / LEGACY SPACERS
   --------------------------------------------------------- */

.gp-place-vintage img[src*="white_spacer"],
.gp-place-vintage img[src*="spacer"] {
    display: none !important;
}

.gp-place-vintage .flex-item-no-border:empty,
.gp-place-vintage .flex-item-no-border-centered:empty {
    display: none !important;
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 1000px) {
    .gp-place-vintage .gp-place-section-inner > .flex-container,
    .gp-place-vintage .flex-container:has(.mediumimage),
    .gp-place-vintage .flex-container:has(.smallimage) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .gp-place-vintage {
        width: calc(100% - 14px) !important;
    }

    .gp-place-vintage .gp-place-section-inner > .flex-container,
    .gp-place-vintage .flex-container:has(.mediumimage),
    .gp-place-vintage .flex-container:has(.smallimage) {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .gp-place-vintage .flex-item-no-border:has(iframe),
    .gp-place-vintage .flex-item-no-border-sm-font:has(iframe),
    .gp-place-vintage .flex-item-gray-no-border:has(iframe) {
        grid-column: auto;
    }

    .gp-place-vintage .flex-item-no-border:has(img),
    .gp-place-vintage .flex-item-no-border-sm-font:has(img),
    .gp-place-vintage .flex-item-gray-no-border:has(img),
    .gp-place-vintage .flex-item-gray-no-border-sm-font:has(img),
    .gp-place-vintage .flex-item-centered:has(img),
    .gp-place-vintage .flex-item-no-border-centered:has(img) {
        padding: 12px !important;
    }

    .gp-place-vintage img.mediumimage,
    .gp-place-vintage img.smallimage,
    .gp-place-vintage a > img[src*="Content"] {
        max-height: 260px;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 04
   Place profile / About section / map & video presentation.
   ========================================================= */

/* ---------------------------------------------------------
   PLACE PROFILE
   The legacy outer flex block also contains admin and seasonal links.
   This inner profile isolates the real title/intro visually.
   --------------------------------------------------------- */

.gp-place-profile {
    width: min(1160px, calc(100% - 32px));
    margin: 18px auto 26px;
    padding: 30px 32px 26px;
    border: 1px solid #d9e2da;
    border-left: 4px solid #52755c;
    border-radius: 12px;
    background: linear-gradient(135deg, #f8fbf7 0%, #ffffff 72%);
    box-sizing: border-box;
    text-align: left;
}

.gp-place-profile .gp-place-title {
    margin: 0 0 12px !important;
    padding: 0 !important;
    color: #173f2a !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(2.25rem, 4.5vw, 3.75rem) !important;
    line-height: 1.04 !important;
    letter-spacing: -.025em;
    text-align: left !important;
}

/* Flag is supporting identity, not the headline. */
.gp-place-profile .gp-place-title > img {
    width: auto !important;
    max-width: 48px !important;
    max-height: 34px !important;
    margin: 0 9px 4px 0 !important;
    vertical-align: middle;
    border: 1px solid #d8ded8;
    box-shadow: none !important;
}

.gp-place-profile .gp-place-tagline {
    max-width: 850px;
    margin: 0 0 9px !important;
    color: #53645a !important;
    font-size: 1.08rem !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
    text-align: left !important;
}

.gp-place-profile > h3 {
    margin: 8px 0 10px !important;
    color: #5f6e64 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: .95rem !important;
    font-weight: 600 !important;
}

.gp-place-intro {
    max-width: 82ch;
    margin: 10px 0 0 !important;
    color: #45564b;
    font-size: .98rem;
    line-height: 1.68;
}

/* The section nav belongs visually to the profile. */
.gp-place-profile .gp-place-section-nav {
    justify-content: flex-start;
    max-width: none;
    margin: 17px 0 8px;
    padding: 0;
    border: 0;
    background: transparent;
}

.gp-place-profile .gp-place-section-nav a {
    border: 1px solid #d5ded6;
    background: #f5f8f4;
}

.gp-place-profile .gp-place-section-nav a:hover {
    background: #e9f0e8;
}

/* ---------------------------------------------------------
   LEGACY TOP UTILITIES
   Admin controls and seasonal links remain available above profile,
   but should not compete with place identity.
   --------------------------------------------------------- */

.gp-place-profile ~ * {
    box-sizing: border-box;
}

/* Old white spacers near place admin controls should never appear as boxes. */
#colMain img[src*="white_spacer"] {
    display: none !important;
}

/* ---------------------------------------------------------
   ABOUT THE PLACE
   Existing two-column block: image/text + map/video.
   --------------------------------------------------------- */

.gp-place-story-callout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: 18px;
    align-items: stretch;
}

.gp-place-story-callout > .gp-place-story-callout-inner,
.gp-place-story-callout > .gp-place-about-media {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box;
}

.gp-place-story-callout-inner {
    padding: 25px 27px !important;
}

.gp-place-story-callout-inner > h2 {
    margin: 0 0 14px !important;
    color: #234532 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.45rem !important;
    line-height: 1.2 !important;
}

.gp-place-story-callout-inner > a:first-of-type > img.mediumimage {
    float: left;
    width: auto !important;
    max-width: 220px !important;
    max-height: 190px !important;
    margin: 2px 20px 12px 0 !important;
    border-radius: 7px;
    border: 1px solid #dce1dc;
    box-shadow: none !important;
}

.gp-place-story-callout-inner font[size="-1"] {
    color: #4e5d53;
    font-size: .89rem;
    line-height: 1.62;
}

.gp-place-family-cta {
    clear: both;
    margin-top: 18px;
    padding: 12px 14px;
    border-top: 1px solid #dfe5df;
    background: #f7faf6;
    color: #536258;
    font-size: .88rem;
}

.gp-place-family-cta strong {
    color: #2d4936;
}

.gp-place-family-cta a {
    color: #245f43 !important;
    font-weight: 700;
}

/* ---------------------------------------------------------
   MAP / VIDEO COLUMN
   --------------------------------------------------------- */

.gp-place-about-media {
    padding: 20px !important;
    border: 1px solid #dce3dc !important;
    border-radius: 10px !important;
    background: #fbfcfa !important;
    text-align: center;
}

.gp-place-about-media > br {
    display: none;
}

/* Override old 75% / 600px wrappers. */
.gp-place-about-media > .flex-container {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 auto 14px !important;
}

.gp-place-about-media iframe {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 250px;
    border: 0 !important;
    border-radius: 7px;
}

.gp-place-about-media iframe[width="250"] {
    height: 300px !important;
}

.gp-place-about-media img[src*="youtube_sub"] {
    width: auto !important;
    max-width: 100px !important;
    height: 36px !important;
    margin: 7px auto !important;
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 900px) {
    .gp-place-story-callout {
        grid-template-columns: 1fr !important;
    }

    .gp-place-about-media {
        max-width: none !important;
    }
}

@media (max-width: 700px) {
    .gp-place-profile {
        width: calc(100% - 14px);
        margin-top: 12px;
        padding: 22px 18px 20px;
    }

    .gp-place-profile .gp-place-title {
        font-size: clamp(1.9rem, 9vw, 2.7rem) !important;
    }

    .gp-place-profile .gp-place-section-nav a {
        flex: 1 1 calc(50% - 7px);
        justify-content: center;
        text-align: center;
    }

    .gp-place-story-callout-inner > a:first-of-type > img.mediumimage {
        float: none;
        display: block;
        max-width: min(240px, 100%) !important;
        max-height: 210px !important;
        margin: 0 auto 14px !important;
    }

    .gp-place-about-media {
        padding: 15px !important;
    }
}

@media (max-width: 430px) {
    .gp-place-profile .gp-place-section-nav a {
        flex-basis: 100%;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 05
   Larger Vintage Photos / Postcards
   ========================================================= */

/* On full-size screens, two columns gives the historical images enough
   room to actually be enjoyed rather than feeling like thumbnails. */
.gp-place-vintage .gp-place-section-inner > .flex-container,
.gp-place-vintage .flex-container:has(.mediumimage),
.gp-place-vintage .flex-container:has(.smallimage) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
}

/* Increase the usable display size while preserving the original aspect ratio.
   We do NOT upscale tiny source files to fill the card. */
.gp-place-vintage img.mediumimage,
.gp-place-vintage img.smallimage,
.gp-place-vintage a > img[src*="Content"] {
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 430px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Give image cards a little more breathing room at the larger size. */
.gp-place-vintage .flex-item-no-border:has(img),
.gp-place-vintage .flex-item-no-border-sm-font:has(img),
.gp-place-vintage .flex-item-gray-no-border:has(img),
.gp-place-vintage .flex-item-gray-no-border-sm-font:has(img),
.gp-place-vintage .flex-item-centered:has(img),
.gp-place-vintage .flex-item-no-border-centered:has(img) {
    padding: 17px !important;
}

/* Large desktops can accommodate especially generous archival images. */
@media (min-width: 1250px) {
    .gp-place-vintage img.mediumimage,
    .gp-place-vintage img.smallimage,
    .gp-place-vintage a > img[src*="Content"] {
        max-height: 480px !important;
    }
}

/* Tablet keeps two columns, but with a more conservative image ceiling. */
@media (max-width: 900px) and (min-width: 701px) {
    .gp-place-vintage .gp-place-section-inner > .flex-container,
    .gp-place-vintage .flex-container:has(.mediumimage),
    .gp-place-vintage .flex-container:has(.smallimage) {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 14px !important;
    }

    .gp-place-vintage img.mediumimage,
    .gp-place-vintage img.smallimage,
    .gp-place-vintage a > img[src*="Content"] {
        max-height: 350px !important;
    }
}

/* Mobile still uses one column, but the image can now use nearly the full
   phone width instead of being artificially thumbnail-sized. */
@media (max-width: 700px) {
    .gp-place-vintage .gp-place-section-inner > .flex-container,
    .gp-place-vintage .flex-container:has(.mediumimage),
    .gp-place-vintage .flex-container:has(.smallimage) {
        grid-template-columns: 1fr !important;
    }

    .gp-place-vintage img.mediumimage,
    .gp-place-vintage img.smallimage,
    .gp-place-vintage a > img[src*="Content"] {
        max-width: 100% !important;
        max-height: 360px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 06
   History / News / Stories stream
   ========================================================= */

.gp-place-history-intro {
    max-width: 78ch;
    margin: -3px 0 18px !important;
    color: #66736a;
    font-size: .94rem;
    line-height: 1.6;
}

/* Authorized contribution action */
.gp-place-add-history {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 18px;
    padding: 8px 11px;
    border: 1px solid #d7e0d8;
    border-radius: 6px;
    background: #f6f9f5;
    color: #4f6055;
    font-size: .84rem;
    font-weight: 700;
}

.gp-place-add-history a {
    display: block;
}

.gp-place-add-history img {
    display: block;
    width: auto !important;
    max-width: 34px !important;
    height: 32px !important;
    margin: 0 !important;
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   HISTORY STREAM
   Two wide columns by default. Place history entries frequently
   contain real paragraphs, so readability wins over card density.
   --------------------------------------------------------- */

.gp-place-history-stream {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
    width: 100%;
    min-width: 0;
}

.gp-place-history-stream > .gp-place-history-item {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

.gp-place-history-card {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 19px 21px !important;
    border: 1px solid #dce3dc !important;
    border-left: 4px solid #78917d !important;
    border-radius: 9px !important;
    background: #fff !important;
    color: #45564b;
    font-size: .92rem;
    line-height: 1.62;
    box-shadow: none !important;
    box-sizing: border-box;
}

/* Story title */
.gp-place-history-card > b:first-of-type,
.gp-place-history-card > strong:first-of-type {
    display: inline-block;
    margin-bottom: 6px;
    color: #264732;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.08rem;
    line-height: 1.35;
}

.gp-place-history-card a {
    color: #315a40 !important;
    font-weight: 700;
    text-underline-offset: 3px;
}

.gp-place-history-card font[size="-1"] {
    color: #6e7971;
    font-size: .8rem;
    line-height: 1.45;
}

/* Person connected to a story */
.gp-place-history-card img.smallimage {
    display: inline-block !important;
    width: auto !important;
    max-width: 75px !important;
    max-height: 75px !important;
    margin: 8px 0 0 7px !important;
    vertical-align: middle;
    border-radius: 6px;
    box-shadow: none !important;
}

/* Authorized edit/delete icons */
.gp-place-history-card img[src*="edit"],
.gp-place-history-card img[src*="delete"] {
    display: inline-block !important;
    width: auto !important;
    max-width: 28px !important;
    height: 28px !important;
    margin: 0 6px 8px 0 !important;
    opacity: .75;
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   VIDEO STORIES
   Video entries span the full section width.
   --------------------------------------------------------- */

.gp-place-history-stream > .gp-place-history-video {
    grid-column: 1 / -1;
}

.gp-place-history-video .gp-place-history-card {
    border-left-color: #a98b4d !important;
    background: #fbfaf6 !important;
}

.gp-place-history-video .gp-place-history-card > .flex-container {
    width: min(820px, 100%) !important;
    max-width: 820px !important;
    min-width: 0 !important;
    margin: 0 auto !important;
}

.gp-place-history-video iframe {
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 7px;
}

/* ---------------------------------------------------------
   ADS
   Ads remain in the stream but span both columns and do not
   masquerade as historical content.
   --------------------------------------------------------- */

.gp-place-history-stream > .gp-place-history-ad {
    grid-column: 1 / -1;
    width: 100% !important;
    margin: 5px 0 !important;
}

.gp-place-history-ad > .flex-item-no-border {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 8px 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* Spacer graphics used with edit/delete controls are not content. */
.gp-place-history img[src*="white_spacer"] {
    display: none !important;
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (min-width: 1400px) {
    /* Still keep two columns. Long local-history prose benefits from width. */
    .gp-place-history-stream {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .gp-place-history-stream {
        grid-template-columns: 1fr;
        gap: 13px;
    }

    .gp-place-history-stream > .gp-place-history-video,
    .gp-place-history-stream > .gp-place-history-ad {
        grid-column: auto;
    }
}

@media (max-width: 700px) {
    .gp-place-history-card {
        padding: 16px 16px !important;
        font-size: .9rem;
    }

    .gp-place-history-card > b:first-of-type,
    .gp-place-history-card > strong:first-of-type {
        font-size: 1.02rem;
    }

    .gp-place-add-history {
        display: flex;
        width: fit-content;
        max-width: 100%;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 07
   Full-size Vintage Images
   Root cause fix: Vintage markup was loading ancestorimagesmobile.
   ========================================================= */

/*
   The Vintage view now loads /Content/ancestorimages/ instead of the smaller
   /Content/ancestorimagesmobile/ derivative. CSS is responsible for responsive
   sizing, so desktop gets the real archival image while phones still scale it down.
*/
.gp-place-vintage .gp-place-vintage-image {
    display: block !important;
    width: 100% !important;
    max-width: 520px !important;
    height: auto !important;
    max-height: 520px !important;
    margin: 0 auto 12px !important;
    object-fit: contain !important;
    border-radius: 6px;
    box-shadow: none !important;
}

/* Two generous columns on desktop. */
.gp-place-vintage .gp-place-section-inner > .flex-container {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
}

/* Let each card provide enough horizontal room for the larger image. */
.gp-place-vintage .flex-item-no-border-sm-font:has(.gp-place-vintage-image) {
    width: 100% !important;
    max-width: none !important;
    padding: 18px !important;
}

/* Very wide screens can show archival images a bit larger without making
   captions unpleasantly wide. */
@media (min-width: 1300px) {
    .gp-place-vintage .gp-place-vintage-image {
        max-width: 560px !important;
        max-height: 560px !important;
    }
}

/* Tablet still gets the high-resolution source, simply scaled to its card. */
@media (max-width: 900px) and (min-width: 701px) {
    .gp-place-vintage .gp-place-section-inner > .flex-container {
        gap: 14px !important;
    }

    .gp-place-vintage .gp-place-vintage-image {
        max-width: 100% !important;
        max-height: 420px !important;
    }
}

/* Mobile: one column, full card width, high-res source scaled by browser. */
@media (max-width: 700px) {
    .gp-place-vintage .gp-place-section-inner > .flex-container {
        grid-template-columns: 1fr !important;
    }

    .gp-place-vintage .gp-place-vintage-image {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 440px !important;
    }

    .gp-place-vintage .flex-item-no-border-sm-font:has(.gp-place-vintage-image) {
        padding: 12px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 08
   About image + Local Ancestry refinement
   ========================================================= */

/* ---------------------------------------------------------
   ABOUT IMAGE
   The About section now uses the full-size ancestor image source.
   CSS scales it responsibly instead of relying on the old mobile derivative.
   --------------------------------------------------------- */

.gp-place-story-callout-inner .gp-place-about-image {
    float: left;
    display: block;
    width: auto !important;
    max-width: 300px !important;
    max-height: 260px !important;
    height: auto !important;
    margin: 2px 22px 14px 0 !important;
    object-fit: contain;
    border: 1px solid #d9e0da;
    border-radius: 7px;
    background: #fff;
    box-shadow: none !important;
}

/* Override the older generic mediumimage rule for this specific full-res image. */
.gp-place-story-callout-inner > a:first-of-type > .gp-place-about-image {
    max-width: 300px !important;
    max-height: 260px !important;
}

/* ---------------------------------------------------------
   LOCAL ANCESTRY INTRO
   --------------------------------------------------------- */

.gp-place-ancestry-intro {
    max-width: 78ch;
    margin: -3px 0 20px !important;
    color: #66736a;
    font-size: .94rem;
    line-height: 1.6;
}

.gp-place-ancestry-row {
    width: 100% !important;
    margin: 0 0 14px !important;
}

.gp-place-ancestry-card {
    position: relative;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 21px 23px 22px !important;
    border: 1px solid #dce3dc !important;
    border-left: 4px solid #78917d !important;
    border-radius: 9px !important;
    background: #fff !important;
    color: #46564c;
    line-height: 1.6;
    box-shadow: none !important;
    box-sizing: border-box;
}

.gp-place-ancestry-label {
    margin-bottom: 6px;
    color: #7a6738;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.gp-place-ancestry-card > h3 {
    margin: 0 0 10px !important;
    color: #254632 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.14rem !important;
    line-height: 1.28 !important;
}

.gp-place-ancestry-card a {
    color: #245f43 !important;
    font-weight: 700;
    text-underline-offset: 3px;
}

/* Treat the main "View Them Now" links like research actions without making them huge. */
.gp-place-ancestry-card > a[href*="DetailsBornDied"],
.gp-place-ancestry-card > a[href*="DetailsMarried"] {
    display: inline-block;
    margin-top: 8px;
    padding: 7px 10px;
    border: 1px solid #cfd9d1;
    border-radius: 5px;
    background: #f5f8f4;
    text-decoration: none !important;
}

.gp-place-ancestry-card > a[href*="DetailsBornDied"]:hover,
.gp-place-ancestry-card > a[href*="DetailsMarried"]:hover {
    background: #eaf1e9;
}

/* Individual cemetery links are useful discovery items. */
.gp-place-ancestry-cemeteries a[href*="/Cemeteries/"],
.gp-place-ancestry-cemeteries a[href*="Cemeteries"] {
    display: inline-block;
    margin: 3px 7px 3px 0;
    padding: 5px 8px;
    border: 1px solid #d7dfd8;
    border-radius: 5px;
    background: #f8faf7;
    font-size: .88rem;
    text-decoration: none !important;
}

.gp-place-ancestry-cemeteries a:hover {
    background: #eef3ed;
}

/* Give each research category a subtle identity. */
.gp-place-ancestry-vitals {
    border-left-color: #52755c !important;
}

.gp-place-ancestry-marriages {
    border-left-color: #a98b4d !important;
}

.gp-place-ancestry-cemeteries {
    border-left-color: #6f7d73 !important;
}

.gp-place-ancestry-resources {
    border-left-color: #71838e !important;
    background: #fafbfb !important;
}

/* Remove some of the legacy line-break inflation inside these new cards. */
.gp-place-ancestry-card br + br + br {
    display: none;
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 900px) {
    .gp-place-story-callout-inner .gp-place-about-image {
        max-width: 250px !important;
        max-height: 230px !important;
    }
}

@media (max-width: 700px) {
    .gp-place-story-callout-inner .gp-place-about-image,
    .gp-place-story-callout-inner > a:first-of-type > .gp-place-about-image {
        float: none;
        width: auto !important;
        max-width: min(100%, 320px) !important;
        max-height: 300px !important;
        margin: 0 auto 15px !important;
    }

    .gp-place-ancestry-card {
        padding: 18px 17px !important;
    }

    .gp-place-ancestry-card > h3 {
        font-size: 1.08rem !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 09
   Continue Research + Discussion + lower-page cleanup
   ========================================================= */

/* ---------------------------------------------------------
   CONTINUE YOUR RESEARCH
   --------------------------------------------------------- */

.gp-place-search-section {
    width: min(1160px, calc(100% - 32px));
    margin: 34px auto 38px;
    padding: 26px 28px 28px;
    border: 1px solid #d8e0d8;
    border-left: 4px solid #71838e;
    border-radius: 10px;
    background: #f8faf9;
    box-sizing: border-box;
}

.gp-place-search-section > h2 {
    margin: 0 0 8px !important;
    color: #234532 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.45rem !important;
    line-height: 1.2 !important;
}

.gp-place-search-section > p {
    max-width: 75ch;
    margin: 0 0 20px !important;
    color: #66736a;
    font-size: .93rem;
    line-height: 1.6;
}

.gp-place-search-section .gp-place-search-grid {
    width: 100% !important;
    margin: 0 !important;
}

.gp-place-search-section .gp-place-search-card {
    background: #fff !important;
    border-color: #dce3dc !important;
    box-shadow: none !important;
}

.gp-place-search-section .gp-place-search-card:hover {
    border-color: #c9d5cb !important;
}

/* The store link inside the place-search card is useful, but clearly secondary. */
.gp-place-search-section .gp-place-search-card h2:has(+ a[href="/Products"]),
.gp-place-search-section a[href="/Products"] {
    opacity: .72;
}

/* ---------------------------------------------------------
   UPDATED METADATA
   --------------------------------------------------------- */

.gp-place-updated {
    width: min(1160px, calc(100% - 32px));
    margin: -20px auto 24px;
    color: #7b857e;
    font-size: .76rem;
    font-style: italic;
    line-height: 1.4;
}

/* ---------------------------------------------------------
   DISCUSSION
   --------------------------------------------------------- */

.gp-place-discussion {
    width: min(1160px, calc(100% - 32px)) !important;
    margin: 36px auto 46px !important;
}

.gp-place-discussion-inner {
    width: 100% !important;
    max-width: none !important;
    padding: 26px 28px 28px !important;
    border-top: 1px solid #dce3dc;
    background: transparent !important;
    box-sizing: border-box;
}

.gp-place-discussion-inner > h2 {
    margin: 0 0 7px !important;
    color: #234532 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.35rem !important;
    line-height: 1.25 !important;
}

.gp-place-discussion-inner > p {
    max-width: 75ch;
    margin: 0 0 19px !important;
    color: #66736a;
    font-size: .9rem;
    line-height: 1.55;
}

/* ---------------------------------------------------------
   TOP LEGACY SEASONAL / UTILITY LINKS
   Without changing logic, keep them from outranking the place profile.
   --------------------------------------------------------- */

#colMain > .flex-container:first-of-type,
#colMain > .flex-container:nth-of-type(2),
#colMain > .flex-container:nth-of-type(3) {
    box-shadow: none;
}

/* Seasonal blog-link rows before .gp-place-profile stay compact. */
#colMain .flex-container:has(+ .gp-place-profile),
#colMain .flex-container:has(~ .gp-place-profile) {
    font-size: .84rem;
}

#colMain .flex-container:has(~ .gp-place-profile) > .flex-item-no-border {
    padding-top: 7px !important;
    padding-bottom: 7px !important;
}

/* ---------------------------------------------------------
   LONG-PAGE NAVIGATION
   --------------------------------------------------------- */

#place-search,
#discussion {
    scroll-margin-top: 110px;
}

.gp-place-section-nav a[href="#place-search"] {
    order: 4;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 820px) {
    .gp-place-search-section {
        padding: 22px 20px 23px;
    }
}

@media (max-width: 700px) {
    .gp-place-search-section,
    .gp-place-updated,
    .gp-place-discussion {
        width: calc(100% - 14px) !important;
    }

    .gp-place-search-section {
        margin-top: 28px;
        padding: 20px 17px 21px;
    }

    .gp-place-search-section > h2 {
        font-size: 1.3rem !important;
    }

    .gp-place-discussion-inner {
        padding: 22px 17px 24px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 10
   Page-wide polish and consistency
   ========================================================= */

/* ---------------------------------------------------------
   CONSISTENT SECTION RHYTHM
   --------------------------------------------------------- */

.gp-place-profile,
.gp-place-story-callout,
.gp-place-section,
.gp-place-search-section,
.gp-place-discussion {
    clear: both;
}

.gp-place-section {
    margin-top: 32px !important;
    margin-bottom: 32px !important;
}

.gp-place-section-inner {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
}

.gp-place-section-inner > h2 {
    color: #234532 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(1.4rem, 2.3vw, 1.8rem) !important;
    line-height: 1.22 !important;
    letter-spacing: -.01em;
}

/* Eyebrows now behave consistently everywhere. */
.gp-place-section-eyebrow {
    margin: 0 0 7px !important;
    color: #7b683b !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: .68rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .13em !important;
    text-transform: uppercase;
}

/* ---------------------------------------------------------
   SECTION NAVIGATION
   --------------------------------------------------------- */

.gp-place-section-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.gp-place-section-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 7px 11px;
    border-radius: 5px;
    color: #315a40 !important;
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
}

.gp-place-section-nav a:hover {
    text-decoration: none !important;
}

.gp-place-section-nav a:focus-visible {
    outline: 3px solid rgba(49,95,62,.22);
    outline-offset: 2px;
}

/* ---------------------------------------------------------
   LINKS / TYPOGRAPHY INSIDE MODERNIZED PLACE SECTIONS
   --------------------------------------------------------- */

.gp-place-profile a,
.gp-place-story-callout a,
.gp-place-section a,
.gp-place-search-section a,
.gp-place-discussion a {
    text-underline-offset: 3px;
}

.gp-place-profile p:last-child,
.gp-place-section-inner > p:last-child,
.gp-place-search-section > p:last-child,
.gp-place-discussion-inner > p:last-child {
    margin-bottom: 0 !important;
}

/* Keep very long historical URLs or names from breaking cards. */
.gp-place-section,
.gp-place-story-callout,
.gp-place-search-section {
    overflow-wrap: anywhere;
}

/* ---------------------------------------------------------
   IMAGES
   Generic safety net for Places content. Specific image classes
   defined in earlier passes still take precedence.
   --------------------------------------------------------- */

.gp-place-section img,
.gp-place-story-callout img {
    max-width: 100%;
    height: auto;
}

.gp-place-section img:not(.smallimage):not([src*="edit"]):not([src*="delete"]):not([src*="add_"]),
.gp-place-story-callout img:not(.smallimage):not([src*="edit"]):not([src*="delete"]):not([src*="add_"]) {
    object-fit: contain;
}

/* ---------------------------------------------------------
   PRINT
   Place pages are research pages, so make them useful on paper.
   --------------------------------------------------------- */

@media print {
    .gp-place-section-nav,
    .gp-place-add-history,
    .gp-place-search-section,
    .gp-place-discussion,
    .adsbygoogle,
    script,
    iframe {
        display: none !important;
    }

    .gp-place-profile,
    .gp-place-story-callout,
    .gp-place-section {
        width: 100% !important;
        margin: 16px 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: #fff !important;
        box-shadow: none !important;
    }

    .gp-place-history-stream {
        display: block !important;
    }

    .gp-place-history-item,
    .gp-place-ancestry-card,
    .gp-place-vintage .flex-item-no-border-sm-font {
        break-inside: avoid;
        page-break-inside: avoid;
        margin-bottom: 14px !important;
    }

    .gp-place-vintage .gp-place-section-inner > .flex-container {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .gp-place-vintage .gp-place-vintage-image {
        max-height: 360px !important;
    }

    a {
        text-decoration: none !important;
    }
}

/* ---------------------------------------------------------
   SMALL SCREEN FINAL POLISH
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-section {
        margin-top: 24px !important;
        margin-bottom: 24px !important;
    }

    .gp-place-section-inner > h2 {
        font-size: 1.35rem !important;
    }

    .gp-place-section-nav {
        gap: 6px;
    }

    .gp-place-section-nav a {
        min-height: 38px;
        padding: 8px 10px;
        font-size: .8rem;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 11
   Place title tools / bookmark / add-photo cleanup
   ========================================================= */

/* ---------------------------------------------------------
   TITLE + TOOLS
   Existing bookmark/admin/photo actions remain exactly the same,
   but no longer sit visually inside the place name.
   --------------------------------------------------------- */

.gp-place-profile .gp-place-title {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px 20px;
    align-items: center;
}

/* The raw place-name/flag text occupies the implicit first grid track.
   The tools sit in the second track. */
.gp-place-title-tools {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 7px;
    max-width: 220px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: .78rem;
    font-weight: 400;
    line-height: 1.2;
}

/* Spacer images are legacy layout artifacts, not controls. */
.gp-place-title-tools img[src*="white_spacer"] {
    display: none !important;
}

/* Admin / add-photo / next-place controls become compact utilities. */
.gp-place-title-tools a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 34px;
    padding: 4px;
    border: 1px solid #d6dfd7;
    border-radius: 6px;
    background: #f7faf6;
    color: #315a40 !important;
    text-decoration: none !important;
}

.gp-place-title-tools a:hover {
    background: #eaf1e9;
    border-color: #c4d0c6;
}

.gp-place-title-tools a:focus-visible {
    outline: 3px solid rgba(49,95,62,.22);
    outline-offset: 2px;
}

.gp-place-title-tools a img {
    display: block;
    width: auto !important;
    max-width: 30px !important;
    height: 28px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    object-fit: contain;
}

/* Bookmark markup may not use an image. Keep it compact if it renders text/link. */
.gp-place-title-tools > a,
.gp-place-title-tools > span,
.gp-place-title-tools > div {
    font-size: .78rem;
}

/* ---------------------------------------------------------
   PROFILE BALANCE
   --------------------------------------------------------- */

.gp-place-profile .gp-place-title + script + .gp-place-tagline,
.gp-place-profile .gp-place-title ~ .gp-place-tagline {
    margin-top: 2px !important;
}

/* The title card now has a little more breathing room because the controls
   no longer expand the headline line-height. */
.gp-place-profile {
    padding-top: 28px !important;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 760px) {
    .gp-place-profile .gp-place-title {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .gp-place-title-tools {
        justify-content: flex-start;
        max-width: none;
    }

    .gp-place-title-tools a {
        min-width: 36px;
        min-height: 36px;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 12
   Profile Header Fix
   Moves place tools OUT of the H1 and turns tiny icons into
   clear horizontal labeled actions.
   ========================================================= */

/* ---------------------------------------------------------
   TITLE ROW
   --------------------------------------------------------- */

.gp-place-heading-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px 24px;
    align-items: center;
    width: 100%;
}

.gp-place-profile .gp-place-title {
    display: block !important;
    margin: 0 !important;
    min-width: 0;
}

/* Flag remains part of the place identity. */
.gp-place-profile .gp-place-title > img {
    display: inline-block !important;
    width: auto !important;
    max-width: 52px !important;
    max-height: 36px !important;
    margin: 0 10px 5px 0 !important;
    vertical-align: middle;
}

/* ---------------------------------------------------------
   PLACE TOOLS
   --------------------------------------------------------- */

.gp-place-title-tools {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    max-width: 430px;
}

/* Kill old spacer graphics once and for all in this row. */
.gp-place-title-tools > img[src*="white_spacer"],
.gp-place-title-tools img[src*="white_spacer"] {
    display: none !important;
}

/* Admin/photo actions become readable compact buttons. */
.gp-place-title-tools .gp-place-tool {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 0 !important;
    min-height: 38px !important;
    padding: 7px 10px !important;
    border: 1px solid #d2dcd4 !important;
    border-radius: 6px !important;
    background: #f6f9f5 !important;
    color: #315a40 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: .8rem !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    text-decoration: none !important;
    white-space: nowrap;
}

.gp-place-title-tools .gp-place-tool:hover {
    background: #eaf1e9 !important;
    border-color: #bdcbbf !important;
    color: #173f2a !important;
}

.gp-place-title-tools .gp-place-tool img {
    display: block !important;
    width: auto !important;
    max-width: 24px !important;
    height: 23px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    object-fit: contain;
}

.gp-place-title-tools .gp-place-tool span {
    display: inline !important;
}

/* Bookmark markup comes from ViewData and may be text or an icon.
   Keep it horizontal and visually compatible with the tool row. */
.gp-place-title-tools > a:not(.gp-place-tool),
.gp-place-title-tools > span > a,
.gp-place-title-tools > div > a {
    display: inline-flex !important;
    align-items: center;
    min-height: 38px;
    padding: 7px 10px !important;
    border: 1px solid #d8dfd8;
    border-radius: 6px;
    background: #fff;
    color: #506158 !important;
    font-family: Arial, Helvetica, sans-serif;
    font-size: .78rem;
    font-weight: 700;
    text-decoration: none !important;
}

/* ---------------------------------------------------------
   PROFILE CARD BALANCE
   --------------------------------------------------------- */

.gp-place-profile {
    padding-top: 26px !important;
}

.gp-place-heading-row + script + .gp-place-tagline,
.gp-place-heading-row ~ .gp-place-tagline {
    margin-top: 18px !important;
}

/* ---------------------------------------------------------
   TABLET / MOBILE
   --------------------------------------------------------- */

@media (max-width: 900px) {
    .gp-place-heading-row {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .gp-place-title-tools {
        justify-content: flex-start;
        max-width: none;
    }
}

@media (max-width: 620px) {
    .gp-place-title-tools {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        gap: 7px;
    }

    .gp-place-title-tools .gp-place-tool,
    .gp-place-title-tools > a:not(.gp-place-tool),
    .gp-place-title-tools > span > a,
    .gp-place-title-tools > div > a {
        width: 100%;
        box-sizing: border-box;
        justify-content: center;
        white-space: normal;
        text-align: center;
    }
}

@media (max-width: 390px) {
    .gp-place-title-tools {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 13
   About section typography + source + media polish
   ========================================================= */

/* ---------------------------------------------------------
   ABOUT COPY
   --------------------------------------------------------- */

.gp-place-about-copy {
    color: #43544a;
    font-size: .95rem;
    line-height: 1.72;
}

.gp-place-about-copy p {
    margin: 0 0 12px;
}

.gp-place-about-copy br + br {
    display: block;
    content: "";
    margin-top: .45em;
}

/* Preserve any links embedded in the About text. */
.gp-place-about-copy a {
    color: #245f43 !important;
    font-weight: 700;
    text-underline-offset: 3px;
}

/* ---------------------------------------------------------
   ABOUT SOURCE
   --------------------------------------------------------- */

.gp-place-about-source {
    clear: both;
    margin-top: 16px;
    padding-top: 13px;
    border-top: 1px solid #dfe5df;
    color: #6d786f;
    font-size: .8rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.gp-place-about-source > span {
    display: inline-block;
    margin-right: 7px;
    color: #56665b;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.gp-place-about-more {
    margin-top: 11px;
    color: #657169;
    font-size: .84rem;
    line-height: 1.5;
}

/* ---------------------------------------------------------
   ABOUT MEDIA COLUMN
   --------------------------------------------------------- */

.gp-place-media-label {
    margin: 3px 0 9px;
    color: #7b683b;
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-align: left;
    text-transform: uppercase;
}

/* Separate video and map visually when both are present. */
.gp-place-about-media .gp-place-media-label:not(:first-child) {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #dfe5df;
}

.gp-place-about-media iframe {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto 8px;
    background: #fff;
}

/* The map should be a useful landscape panel rather than a tiny square. */
.gp-place-about-media iframe[src*="maps.googleapis.com"] {
    min-height: 320px !important;
    height: 320px !important;
}

/* YouTube embeds get a comfortable width and no legacy inner whitespace. */
.gp-place-about-media iframe[src*="youtube.com"] {
    min-height: 0 !important;
}

.gp-place-about-media p {
    margin: 0 0 9px;
}

.gp-place-about-media br + br {
    display: none;
}

/* ---------------------------------------------------------
   ABOUT IMAGE / COPY BALANCE
   --------------------------------------------------------- */

.gp-place-story-callout-inner::after {
    content: "";
    display: table;
    clear: both;
}

/* Slightly larger About image on roomy screens now that it uses full-res source. */
@media (min-width: 1100px) {
    .gp-place-story-callout-inner .gp-place-about-image,
    .gp-place-story-callout-inner > a:first-of-type > .gp-place-about-image {
        max-width: 330px !important;
        max-height: 285px !important;
    }
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-about-copy {
        font-size: .92rem;
        line-height: 1.68;
    }

    .gp-place-about-source {
        font-size: .78rem;
    }

    .gp-place-about-media iframe[src*="maps.googleapis.com"] {
        min-height: 260px !important;
        height: 260px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 14
   Gift / commerce de-emphasis and research-flow cleanup
   ========================================================= */

/* ---------------------------------------------------------
   SEASONAL GIFTS
   Keep the holiday block available when its existing date logic
   shows it, but make it clearly secondary to place research.
   --------------------------------------------------------- */

.gp-place-seasonal-gifts {
    width: min(1160px, calc(100% - 32px));
    margin: 26px auto;
    padding: 18px 20px;
    border: 1px solid #e2e3dc;
    border-radius: 9px;
    background: #fbfaf6;
    box-sizing: border-box;
    opacity: .84;
}

.gp-place-seasonal-gifts > h2 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px !important;
    color: #5c645e !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.08rem !important;
    line-height: 1.25 !important;
}

.gp-place-seasonal-gifts > h2 img {
    width: auto !important;
    max-width: 34px !important;
    height: 34px !important;
    margin: 0 !important;
    box-shadow: none !important;
}

.gp-place-seasonal-gifts .flex-container {
    gap: 12px;
}

.gp-place-seasonal-gifts .flex-item-green-no-border {
    padding: 12px !important;
    border: 1px solid #e3e3dd !important;
    border-radius: 7px !important;
    background: #fff !important;
    color: #606860;
    font-size: .83rem;
    box-shadow: none !important;
}

.gp-place-seasonal-gifts img:not([src*="buy_now"]) {
    max-width: 86px !important;
    max-height: 86px !important;
    width: auto !important;
    height: auto !important;
}

/* ---------------------------------------------------------
   GENERAL GIFT / PRODUCT AREA
   This stays on the page, but it no longer interrupts the path
   from Vintage material to Local History.
   --------------------------------------------------------- */

.gp-place-gifts {
    width: min(1160px, calc(100% - 32px)) !important;
    margin: 26px auto 30px !important;
}

.gp-place-gifts-inner {
    width: 100% !important;
    max-width: none !important;
    padding: 20px 22px !important;
    border-top: 1px solid #dfe4de;
    border-bottom: 1px solid #dfe4de;
    background: #fbfcfa !important;
    box-sizing: border-box;
}

.gp-place-gifts-inner > h2 {
    margin: 0 0 14px !important;
    color: #58675d !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.12rem !important;
    line-height: 1.3 !important;
}

.gp-place-gifts-inner .flex-item-green-no-border {
    border-color: #e0e5df !important;
    background: #fff !important;
    box-shadow: none !important;
    font-size: .84rem;
}

.gp-place-gifts-inner img {
    max-width: 110px !important;
    max-height: 110px !important;
    width: auto !important;
    height: auto !important;
}

/* Commerce links should read as optional extras, not primary research actions. */
.gp-place-gifts a,
.gp-place-seasonal-gifts a {
    color: #5e6b62 !important;
    font-weight: 650;
}

/* ---------------------------------------------------------
   SEARCH CARD STORE LINK
   --------------------------------------------------------- */

.gp-place-search-store {
    margin-top: 18px;
    padding-top: 13px;
    border-top: 1px solid #e0e5df;
    font-size: .8rem;
}

.gp-place-search-store a {
    color: #6c766f !important;
    font-weight: 650 !important;
    text-decoration: none !important;
}

.gp-place-search-store a:hover {
    color: #315a40 !important;
    text-decoration: underline !important;
}

/* ---------------------------------------------------------
   VISUAL FLOW
   Vintage -> optional extras -> history remains obvious.
   --------------------------------------------------------- */

.gp-place-vintage + .gp-place-seasonal-gifts,
.gp-place-vintage + .gp-place-gifts {
    margin-top: 24px !important;
}

.gp-place-gifts + .gp-place-history {
    margin-top: 34px !important;
}

/* ---------------------------------------------------------
   PRINT
   Shop material does not belong in genealogy printouts.
   --------------------------------------------------------- */

@media print {
    .gp-place-seasonal-gifts,
    .gp-place-gifts,
    .gp-place-search-store {
        display: none !important;
    }
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-seasonal-gifts,
    .gp-place-gifts {
        width: calc(100% - 14px) !important;
    }

    .gp-place-seasonal-gifts {
        padding: 15px;
    }

    .gp-place-gifts-inner {
        padding: 17px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 15
   Mobile, tablet, and whole-page consistency
   ZERO ASPX/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   PAGE WIDTH / ALIGNMENT
   Keep all major Places sections on one shared visual column.
   --------------------------------------------------------- */

.gp-place-profile,
.gp-place-story-callout,
.gp-place-section,
.gp-place-search-section,
.gp-place-discussion,
.gp-place-gifts,
.gp-place-seasonal-gifts,
.gp-place-updated {
    width: min(1160px, calc(100% - 32px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
}

/* ---------------------------------------------------------
   DESKTOP SECTION RHYTHM
   --------------------------------------------------------- */

.gp-place-profile {
    margin-bottom: 28px !important;
}

.gp-place-story-callout,
.gp-place-section,
.gp-place-search-section,
.gp-place-discussion {
    margin-top: 28px !important;
    margin-bottom: 28px !important;
}

.gp-place-history + .gp-place-ancestry,
.gp-place-ancestry + .gp-place-search-section {
    margin-top: 32px !important;
}

/* ---------------------------------------------------------
   CARD CONSISTENCY
   --------------------------------------------------------- */

.gp-place-story-callout-inner,
.gp-place-about-media,
.gp-place-section-inner,
.gp-place-search-card,
.gp-place-ancestry-card,
.gp-place-history-card,
.gp-place-vintage .flex-item-no-border:has(img),
.gp-place-vintage .flex-item-no-border-sm-font:has(img),
.gp-place-vintage .flex-item-gray-no-border:has(img),
.gp-place-vintage .flex-item-gray-no-border-sm-font:has(img) {
    border-radius: 9px !important;
    box-shadow: none !important;
}

.gp-place-story-callout-inner,
.gp-place-section-inner,
.gp-place-search-card,
.gp-place-ancestry-card,
.gp-place-history-card {
    border-color: #d9e1da !important;
}

/* ---------------------------------------------------------
   TITLE / NAV / TOOL BALANCE
   --------------------------------------------------------- */

.gp-place-heading-row {
    align-items: start !important;
}

.gp-place-title-tools {
    padding-top: 2px;
}

.gp-place-profile .gp-place-section-nav {
    margin-top: 18px !important;
    margin-bottom: 4px !important;
}

.gp-place-profile .gp-place-section-nav a {
    min-height: 36px;
}

/* ---------------------------------------------------------
   HISTORY / ANCESTRY / VINTAGE TYPOGRAPHY
   --------------------------------------------------------- */

.gp-place-history-card,
.gp-place-ancestry-card,
.gp-place-vintage .flex-item-no-border-sm-font,
.gp-place-vintage .flex-item-gray-no-border-sm-font {
    font-size: .91rem;
    line-height: 1.6;
}

.gp-place-history-card > b:first-of-type,
.gp-place-history-card > strong:first-of-type,
.gp-place-ancestry-card > h3,
.gp-place-vintage b:first-of-type,
.gp-place-vintage strong:first-of-type {
    line-height: 1.3;
}

/* Avoid tiny source text becoming unreadable. */
.gp-place-history-card font[size="-1"],
.gp-place-vintage font[size="-1"],
.gp-place-ancestry-card font[size="-1"] {
    font-size: .8rem !important;
}

/* ---------------------------------------------------------
   MOBILE / TABLET
   --------------------------------------------------------- */

@media (max-width: 980px) {
    .gp-place-profile,
    .gp-place-story-callout,
    .gp-place-section,
    .gp-place-search-section,
    .gp-place-discussion,
    .gp-place-gifts,
    .gp-place-seasonal-gifts,
    .gp-place-updated {
        width: calc(100% - 24px) !important;
    }

    .gp-place-profile {
        padding: 24px 22px 22px !important;
    }

    .gp-place-section-inner,
    .gp-place-story-callout-inner {
        padding-left: 22px !important;
        padding-right: 22px !important;
    }

    .gp-place-search-section {
        padding-left: 22px !important;
        padding-right: 22px !important;
    }
}

@media (max-width: 760px) {
    .gp-place-profile,
    .gp-place-story-callout,
    .gp-place-section,
    .gp-place-search-section,
    .gp-place-discussion,
    .gp-place-gifts,
    .gp-place-seasonal-gifts,
    .gp-place-updated {
        width: calc(100% - 14px) !important;
    }

    /* Title and tools */
    .gp-place-profile {
        padding: 20px 17px 19px !important;
        margin-top: 10px !important;
    }

    .gp-place-profile .gp-place-title {
        font-size: clamp(1.8rem, 8.8vw, 2.6rem) !important;
        line-height: 1.05 !important;
    }

    .gp-place-profile .gp-place-title > img {
        max-width: 44px !important;
        max-height: 30px !important;
        margin-right: 8px !important;
    }

    .gp-place-title-tools {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        gap: 7px;
    }

    .gp-place-title-tools .gp-place-tool,
    .gp-place-title-tools > a:not(.gp-place-tool),
    .gp-place-title-tools > span > a,
    .gp-place-title-tools > div > a {
        width: 100%;
        min-height: 40px !important;
        justify-content: center !important;
        box-sizing: border-box;
    }

    /* Jump nav */
    .gp-place-profile .gp-place-section-nav {
        gap: 6px !important;
    }

    .gp-place-profile .gp-place-section-nav a {
        flex: 1 1 calc(50% - 6px);
        min-width: 0 !important;
        min-height: 40px;
        padding: 7px 8px !important;
        text-align: center;
        justify-content: center;
        white-space: normal;
    }

    /* About */
    .gp-place-story-callout {
        grid-template-columns: 1fr !important;
        gap: 13px !important;
    }

    .gp-place-story-callout-inner,
    .gp-place-about-media,
    .gp-place-section-inner,
    .gp-place-search-section {
        padding: 18px 16px !important;
    }

    .gp-place-story-callout-inner .gp-place-about-image {
        float: none !important;
        display: block !important;
        width: auto !important;
        max-width: min(100%, 340px) !important;
        max-height: 300px !important;
        margin: 0 auto 14px !important;
    }

    /* Vintage */
    .gp-place-vintage .gp-place-section-inner > .flex-container,
    .gp-place-vintage .flex-container:has(.mediumimage),
    .gp-place-vintage .flex-container:has(.smallimage) {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .gp-place-vintage .gp-place-vintage-image {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 440px !important;
    }

    /* History */
    .gp-place-history-stream {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .gp-place-history-card {
        padding: 15px 16px !important;
        font-size: .9rem;
    }

    /* Ancestry */
    .gp-place-ancestry-card {
        padding: 17px 16px !important;
    }

    /* Search */
    .gp-place-search-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .gp-place-search-grid > .gp-place-search-card {
        padding: 18px 16px !important;
    }

    .gp-place-search-card input[type="search"],
    .gp-place-search-card input[type="text"],
    .gp-place-search-card select,
    .gp-place-search-card input[type="submit"] {
        width: 100% !important;
        max-width: none !important;
        box-sizing: border-box;
    }

    /* Discussion */
    .gp-place-discussion-inner {
        padding: 20px 16px 22px !important;
    }

    /* Prevent old fixed-width embedded content from creating horizontal scroll. */
    .gp-place-profile iframe,
    .gp-place-section iframe,
    .gp-place-story-callout iframe,
    .gp-place-section table,
    .gp-place-story-callout table,
    .gp-place-section img,
    .gp-place-story-callout img {
        max-width: 100% !important;
    }
}

@media (max-width: 420px) {
    .gp-place-title-tools {
        grid-template-columns: 1fr !important;
    }

    .gp-place-profile .gp-place-section-nav a {
        flex-basis: 100%;
    }

    .gp-place-section-inner > h2,
    .gp-place-search-section > h2,
    .gp-place-discussion-inner > h2 {
        font-size: 1.25rem !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 16
   Accessibility, focus states, reduced motion, and print
   ZERO ASPX/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   KEYBOARD FOCUS
   --------------------------------------------------------- */

.gp-place-profile a:focus-visible,
.gp-place-story-callout a:focus-visible,
.gp-place-section a:focus-visible,
.gp-place-search-section a:focus-visible,
.gp-place-discussion a:focus-visible,
.gp-place-search-section input:focus-visible,
.gp-place-search-section select:focus-visible,
.gp-place-search-section textarea:focus-visible {
    outline: 3px solid rgba(49,95,62,.28) !important;
    outline-offset: 2px !important;
    border-radius: 4px;
}

/* Avoid focus rings getting clipped by legacy overflow rules. */
.gp-place-profile,
.gp-place-story-callout,
.gp-place-section,
.gp-place-search-section,
.gp-place-discussion,
.gp-place-history-card,
.gp-place-ancestry-card,
.gp-place-search-card {
    overflow: visible;
}

/* ---------------------------------------------------------
   READING COMFORT
   --------------------------------------------------------- */

.gp-place-profile ::selection,
.gp-place-story-callout ::selection,
.gp-place-section ::selection {
    background: rgba(49,95,62,.18);
    color: #173f2a;
}

.gp-place-about-copy,
.gp-place-history-card,
.gp-place-ancestry-card,
.gp-place-vintage .flex-item-no-border-sm-font,
.gp-place-vintage .flex-item-gray-no-border-sm-font {
    text-rendering: optimizeLegibility;
}

/* ---------------------------------------------------------
   REDUCED MOTION
   --------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    .gp-place-profile *,
    .gp-place-story-callout *,
    .gp-place-section *,
    .gp-place-search-section *,
    .gp-place-discussion * {
        transition: none !important;
        animation: none !important;
        scroll-behavior: auto !important;
    }
}

/* ---------------------------------------------------------
   PRINT
   Places pages are research pages. Preserve useful place history,
   ancestry, vintage images, About content and sources; remove UI,
   commerce, ads, discussion, and interactive search controls.
   --------------------------------------------------------- */

@media print {
    @page {
        margin: 0.55in;
    }

    body {
        background: #fff !important;
        color: #000 !important;
        font-family: Georgia, "Times New Roman", serif !important;
        font-size: 10.5pt !important;
        line-height: 1.45 !important;
    }

    #colMain {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Remove non-research / interactive material. */
    .gp-place-title-tools,
    .gp-place-section-nav,
    .gp-place-add-history,
    .gp-place-search-section,
    .gp-place-discussion,
    .gp-place-gifts,
    .gp-place-seasonal-gifts,
    .gp-place-search-store,
    .adsbygoogle,
    form,
    input,
    select,
    textarea,
    button,
    script {
        display: none !important;
    }

    /* Profile */
    .gp-place-profile {
        width: 100% !important;
        margin: 0 0 12pt !important;
        padding: 0 0 10pt !important;
        border: 0 !important;
        border-bottom: 1px solid #999 !important;
        background: #fff !important;
        box-shadow: none !important;
    }

    .gp-place-heading-row {
        display: block !important;
    }

    .gp-place-profile .gp-place-title {
        color: #000 !important;
        font-size: 22pt !important;
        margin-bottom: 6pt !important;
    }

    .gp-place-profile .gp-place-title > img {
        max-width: 42px !important;
        max-height: 28px !important;
    }

    .gp-place-profile .gp-place-tagline,
    .gp-place-intro {
        color: #000 !important;
        max-width: none !important;
    }

    /* Major sections */
    .gp-place-story-callout,
    .gp-place-section,
    .gp-place-updated {
        width: 100% !important;
        margin: 14pt 0 !important;
    }

    .gp-place-story-callout-inner,
    .gp-place-about-media,
    .gp-place-section-inner,
    .gp-place-history-card,
    .gp-place-ancestry-card {
        border: 0 !important;
        background: #fff !important;
        box-shadow: none !important;
    }

    .gp-place-section-inner {
        padding: 0 !important;
    }

    .gp-place-section-eyebrow {
        color: #555 !important;
    }

    .gp-place-section-inner > h2,
    .gp-place-story-callout-inner > h2,
    .gp-place-history-card > b:first-of-type,
    .gp-place-history-card > strong:first-of-type,
    .gp-place-ancestry-card > h3 {
        color: #000 !important;
        break-after: avoid-page;
        page-break-after: avoid;
    }

    /* About */
    .gp-place-story-callout {
        display: block !important;
    }

    .gp-place-about-media {
        display: none !important;
    }

    .gp-place-story-callout-inner .gp-place-about-image {
        max-width: 240px !important;
        max-height: 210px !important;
        margin-right: 14pt !important;
    }

    /* Vintage gallery */
    .gp-place-vintage .gp-place-section-inner > .flex-container {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12pt !important;
    }

    .gp-place-vintage .flex-item-no-border-sm-font:has(.gp-place-vintage-image),
    .gp-place-vintage .flex-item-no-border:has(.gp-place-vintage-image) {
        break-inside: avoid;
        page-break-inside: avoid;
        padding: 8pt !important;
        border: 1px solid #bbb !important;
        background: #fff !important;
    }

    .gp-place-vintage .gp-place-vintage-image {
        max-height: 320px !important;
        width: auto !important;
        max-width: 100% !important;
    }

    /* History */
    .gp-place-history-stream {
        display: block !important;
    }

    .gp-place-history-item {
        margin-bottom: 10pt !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .gp-place-history-video,
    .gp-place-history-ad {
        display: none !important;
    }

    .gp-place-history-card {
        padding: 8pt 9pt !important;
        border: 1px solid #bbb !important;
    }

    /* Ancestry */
    .gp-place-ancestry-card {
        margin-bottom: 10pt !important;
        padding: 8pt 9pt !important;
        border: 1px solid #bbb !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* Links */
    #colMain a,
    #colMain a:visited {
        color: #000 !important;
        background: transparent !important;
        border: 0 !important;
        text-decoration: underline !important;
    }

    /* Images */
    #colMain img {
        max-width: 100% !important;
        box-shadow: none !important;
    }

    #colMain img[src*="white_spacer"],
    #colMain img[src*="spacer"] {
        display: none !important;
    }

    .gp-place-updated {
        color: #666 !important;
        font-size: 8.5pt !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 17
   Final visual polish, legacy cleanup, and section cohesion
   ZERO ASPX/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   GLOBAL PLACES DETAILS RHYTHM
   --------------------------------------------------------- */

.gp-place-profile,
.gp-place-story-callout,
.gp-place-section,
.gp-place-search-section,
.gp-place-discussion,
.gp-place-gifts,
.gp-place-seasonal-gifts {
    border-color: #d9e1da !important;
}

/* Keep the page feeling editorial rather than dashboard-heavy. */
.gp-place-story-callout-inner,
.gp-place-section-inner,
.gp-place-search-card,
.gp-place-ancestry-card,
.gp-place-history-card,
.gp-place-about-media {
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   PROFILE CARD FINAL CLEANUP
   --------------------------------------------------------- */

.gp-place-profile {
    background: linear-gradient(135deg, #f8fbf7 0%, #ffffff 78%) !important;
}

.gp-place-profile .gp-place-tagline {
    color: #59685f !important;
}

.gp-place-profile > h3 {
    color: #6c776f !important;
}

/* ---------------------------------------------------------
   ABOUT SECTION COHESION
   --------------------------------------------------------- */

.gp-place-story-callout-inner {
    background: #fff !important;
}

.gp-place-about-media {
    background: #fafbf9 !important;
}

.gp-place-about-source {
    color: #737e76;
}

/* ---------------------------------------------------------
   VINTAGE GALLERY FINAL POLISH
   --------------------------------------------------------- */

.gp-place-vintage .flex-item-no-border:has(img),
.gp-place-vintage .flex-item-no-border-sm-font:has(img),
.gp-place-vintage .flex-item-gray-no-border:has(img),
.gp-place-vintage .flex-item-gray-no-border-sm-font:has(img),
.gp-place-vintage .flex-item-centered:has(img),
.gp-place-vintage .flex-item-no-border-centered:has(img) {
    transition: border-color .15s ease, background-color .15s ease;
}

.gp-place-vintage .flex-item-no-border:has(img):hover,
.gp-place-vintage .flex-item-no-border-sm-font:has(img):hover,
.gp-place-vintage .flex-item-gray-no-border:has(img):hover,
.gp-place-vintage .flex-item-gray-no-border-sm-font:has(img):hover,
.gp-place-vintage .flex-item-centered:has(img):hover,
.gp-place-vintage .flex-item-no-border-centered:has(img):hover {
    border-color: #cfd7d0 !important;
    background: #fdfcf9 !important;
}

/* Keep captions from feeling glued to the image. */
.gp-place-vintage .gp-place-vintage-image + br,
.gp-place-vintage .gp-place-vintage-image + br + br {
    display: none;
}

/* ---------------------------------------------------------
   HISTORY FINAL POLISH
   --------------------------------------------------------- */

.gp-place-history-card {
    transition: border-color .15s ease, background-color .15s ease;
}

.gp-place-history-card:hover {
    border-color: #ccd6ce !important;
    background: #fbfdfb !important;
}

.gp-place-history-video .gp-place-history-card:hover {
    background: #faf8f2 !important;
}

/* Avoid stacked manual <br> spacing inside cards becoming giant gaps. */
.gp-place-history-card br + br + br {
    display: none;
}

/* ---------------------------------------------------------
   ANCESTRY FINAL POLISH
   --------------------------------------------------------- */

.gp-place-ancestry-card {
    transition: border-color .15s ease, background-color .15s ease;
}

.gp-place-ancestry-card:hover {
    border-color: #cbd5cd !important;
    background: #fcfdfb !important;
}

/* Research resources remain quieter than direct ancestor links. */
.gp-place-ancestry-resources {
    color: #56645b;
}

/* ---------------------------------------------------------
   SEARCH / DISCUSSION FINAL POLISH
   --------------------------------------------------------- */

.gp-place-search-section {
    background: #f8faf9 !important;
}

.gp-place-search-card {
    transition: border-color .15s ease, background-color .15s ease;
}

.gp-place-search-card:hover {
    background: #fcfdfc !important;
}

.gp-place-discussion-inner {
    border-top-color: #d8e0d9 !important;
}

/* ---------------------------------------------------------
   LEGACY CLEANUP
   --------------------------------------------------------- */

/* Legacy separator class */
#colMain .lineHorizontal {
    height: 1px !important;
    margin: 20px 0 !important;
    border: 0 !important;
    background: #dfe5df !important;
}

/* Empty legacy layout items shouldn't create mystery whitespace. */
#colMain .gp-place-section .flex-item-no-border:empty,
#colMain .gp-place-section .flex-item-gray-no-border:empty,
#colMain .gp-place-story-callout .flex-item-no-border:empty,
#colMain .gp-place-story-callout .flex-item-gray-no-border:empty {
    display: none !important;
}

/* Center tags are still present in old markup; neutralize their layout effect. */
.gp-place-profile center,
.gp-place-section center,
.gp-place-story-callout center {
    margin: 0;
}

/* ---------------------------------------------------------
   LINK CONSISTENCY
   --------------------------------------------------------- */

.gp-place-profile a,
.gp-place-story-callout a,
.gp-place-section a,
.gp-place-search-section a,
.gp-place-discussion a {
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

/* ---------------------------------------------------------
   LARGE DESKTOP
   --------------------------------------------------------- */

@media (min-width: 1400px) {
    .gp-place-profile,
    .gp-place-story-callout,
    .gp-place-section,
    .gp-place-search-section,
    .gp-place-discussion,
    .gp-place-gifts,
    .gp-place-seasonal-gifts,
    .gp-place-updated {
        width: min(1200px, calc(100% - 48px)) !important;
    }

    .gp-place-section-inner,
    .gp-place-story-callout-inner {
        padding-left: 34px !important;
        padding-right: 34px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 18
   Collapsible Vintage Archive
   Show six images initially; keep the complete archive on-page.
   ========================================================= */

/* The first six vintage cards remain in the existing two-column gallery.
   Everything after item six lives inside this native <details> archive. */
.gp-place-vintage-more {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 4px;
}

/* Style the browser-native disclosure as a GreenerPasture research action. */
.gp-place-vintage-more > summary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 44px;
    margin: 4px 0 2px;
    padding: 10px 16px;
    border: 1px solid #cdd8cf;
    border-radius: 7px;
    background: #f5f8f4;
    color: #315a40;
    font-size: .88rem;
    font-weight: 750;
    line-height: 1.3;
    text-align: center;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.gp-place-vintage-more > summary::-webkit-details-marker {
    display: none;
}

.gp-place-vintage-more > summary::before {
    content: "+";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border: 1px solid #bac9bd;
    border-radius: 50%;
    background: #fff;
    color: #315a40;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
}

.gp-place-vintage-more[open] > summary {
    margin-bottom: 18px;
    background: #edf3ec;
}

.gp-place-vintage-more[open] > summary::before {
    content: "\2212";
}

/* The hidden/revealed archive uses the same generous two-column layout
   as the visible six items. */
.gp-place-vintage-more-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    width: 100%;
}

/* Ensure legacy flex widths do not reappear inside <details>. */
.gp-place-vintage-more-grid > .flex-item-no-border,
.gp-place-vintage-more-grid > .flex-item-no-border-sm-font,
.gp-place-vintage-more-grid > .flex-item-gray-no-border,
.gp-place-vintage-more-grid > .flex-item-gray-no-border-sm-font,
.gp-place-vintage-more-grid > .flex-item-centered,
.gp-place-vintage-more-grid > .flex-item-no-border-centered {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

/* Give the open archive a quiet visual transition into the additional material. */
.gp-place-vintage-more-grid {
    padding-top: 1px;
}

/* Keyboard accessibility */
.gp-place-vintage-more > summary:focus-visible {
    outline: 3px solid rgba(49,95,62,.27);
    outline-offset: 3px;
}

/* Print the complete archive. The disclosure control itself is unnecessary. */
@media print {
    .gp-place-vintage-more {
        display: block !important;
    }

    .gp-place-vintage-more > summary {
        display: none !important;
    }

    .gp-place-vintage-more-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 900px) and (min-width: 701px) {
    .gp-place-vintage-more-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }
}

@media (max-width: 700px) {
    /* Four or six visible items can still be tall on a phone, but the archive
       itself remains one comfortable card per row when expanded. */
    .gp-place-vintage-more-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .gp-place-vintage-more > summary {
        min-height: 46px;
        padding: 10px 12px;
        font-size: .84rem;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 19
   Collapsible Local History Archive
   Shows 8 public history entries initially.
   ========================================================= */

/*
   The first eight public local-history entries remain in the normal
   two-column stream. Event #9 and later live in this native disclosure.
   No JavaScript is required.
*/
.gp-place-history-more {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 2px;
}

.gp-place-history-more > summary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 44px;
    margin: 4px 0 2px;
    padding: 10px 16px;
    border: 1px solid #cdd8cf;
    border-radius: 7px;
    background: #f5f8f4;
    color: #315a40;
    font-size: .88rem;
    font-weight: 750;
    line-height: 1.3;
    text-align: center;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.gp-place-history-more > summary::-webkit-details-marker {
    display: none;
}

.gp-place-history-more > summary::before {
    content: "+";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border: 1px solid #bac9bd;
    border-radius: 50%;
    background: #fff;
    color: #315a40;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
}

.gp-place-history-more[open] > summary {
    margin-bottom: 17px;
    background: #edf3ec;
}

.gp-place-history-more[open] > summary::before {
    content: "\2212";
}

/* Additional history keeps the same two-column reading layout. */
.gp-place-history-more-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
    width: 100%;
    min-width: 0;
}

/* Neutralize legacy flex dimensions inside the disclosure. */
.gp-place-history-more-grid > .gp-place-history-item,
.gp-place-history-more-grid > .gp-place-history-ad {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

/* Videos and advertisements continue to span the full archive width. */
.gp-place-history-more-grid > .gp-place-history-video,
.gp-place-history-more-grid > .gp-place-history-ad {
    grid-column: 1 / -1;
}

/* Keyboard visibility */
.gp-place-history-more > summary:focus-visible {
    outline: 3px solid rgba(49,95,62,.27);
    outline-offset: 3px;
}

/* Printing should include all historical material, not just the first eight. */
@media print {
    .gp-place-history-more {
        display: block !important;
    }

    .gp-place-history-more > summary {
        display: none !important;
    }

    .gp-place-history-more-grid {
        display: block !important;
    }

    .gp-place-history-more-grid > .gp-place-history-item {
        display: block !important;
        margin-bottom: 10pt !important;
    }

    .gp-place-history-more-grid > .gp-place-history-ad,
    .gp-place-history-more-grid > .gp-place-history-video {
        display: none !important;
    }
}

@media (max-width: 820px) {
    .gp-place-history-more-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .gp-place-history-more-grid > .gp-place-history-video,
    .gp-place-history-more-grid > .gp-place-history-ad {
        grid-column: auto;
    }
}

@media (max-width: 700px) {
    .gp-place-history-more > summary {
        min-height: 46px;
        padding: 10px 12px;
        font-size: .84rem;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 20
   Compact Local Ancestry Grid
   ZERO ASPX/VB changes.
   ========================================================= */

/*
   The Local Ancestry section usually contains four useful research cards:
   Births & Deaths, Marriages, Cemeteries, and Research Resources.

   They were stacked full-width, which added a lot of scrolling.
   On desktop/tablet, arrange them as a two-column research grid.
*/
.gp-place-ancestry .gp-place-section-inner {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
}

/* Heading material spans the full section width. */
.gp-place-ancestry .gp-place-section-eyebrow,
.gp-place-ancestry .gp-place-section-inner > h2,
.gp-place-ancestry .gp-place-ancestry-intro {
    grid-column: 1 / -1;
}

/* Remove the old full-width row behavior. Each row becomes one grid cell. */
.gp-place-ancestry .gp-place-ancestry-row {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

/* Cards fill their grid cell and size naturally to content. */
.gp-place-ancestry .gp-place-ancestry-card {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 100%;
    margin: 0 !important;
    box-sizing: border-box;
}

/* Keep direct-research cards visually strongest. */
.gp-place-ancestry-vitals,
.gp-place-ancestry-marriages {
    background: #fff !important;
}

/* Cemetery/resources cards can be a touch quieter. */
.gp-place-ancestry-cemeteries,
.gp-place-ancestry-resources {
    background: #fafcf9 !important;
}

/* Remove legacy manual vertical padding created by repeated <br> tags. */
.gp-place-ancestry-card > br:last-child,
.gp-place-ancestry-card > br:nth-last-child(2),
.gp-place-ancestry-card > br:nth-last-child(3) {
    display: none;
}

/* Make the primary research actions easy to find in compact cards. */
.gp-place-ancestry-card > a[href*="DetailsBornDied"],
.gp-place-ancestry-card > a[href*="DetailsMarried"] {
    margin-top: 10px;
}

/* Long cemetery/resource lists should wrap cleanly rather than widening a card. */
.gp-place-ancestry-cemeteries,
.gp-place-ancestry-resources {
    overflow-wrap: anywhere;
}

/* On very large screens, keep cards readable instead of stretching endlessly. */
@media (min-width: 1450px) {
    .gp-place-ancestry .gp-place-section-inner {
        gap: 18px;
    }

    .gp-place-ancestry .gp-place-ancestry-card {
        padding: 22px 24px !important;
    }
}

/* Phone layout returns to a simple vertical stack. */
@media (max-width: 760px) {
    .gp-place-ancestry .gp-place-section-inner {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .gp-place-ancestry .gp-place-section-eyebrow,
    .gp-place-ancestry .gp-place-section-inner > h2,
    .gp-place-ancestry .gp-place-ancestry-intro {
        grid-column: auto;
    }

    .gp-place-ancestry .gp-place-ancestry-card {
        min-height: 0;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 21
   Collapsible Optional Extras
   Keeps gifts/resources available without adding initial scroll.
   ========================================================= */

/* Shared disclosure treatment for non-core shopping/resource material. */
.gp-place-extras-disclosure {
    width: min(1160px, calc(100% - 32px)) !important;
    margin: 18px auto !important;
    border: 1px solid #dfe4de !important;
    border-radius: 8px !important;
    background: #fafbf9 !important;
    opacity: .9;
    box-sizing: border-box;
}

/* Native summary styled as a restrained tertiary action. */
.gp-place-extras-disclosure > summary {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    padding: 10px 14px;
    color: #5f6c63;
    font-size: .84rem;
    font-weight: 700;
    line-height: 1.3;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.gp-place-extras-disclosure > summary::-webkit-details-marker {
    display: none;
}

.gp-place-extras-disclosure > summary::after {
    content: "+";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 21px;
    height: 21px;
    margin-left: auto;
    border: 1px solid #c8d1ca;
    border-radius: 50%;
    background: #fff;
    color: #607067;
    font-size: .95rem;
    line-height: 1;
}

.gp-place-extras-disclosure[open] > summary {
    border-bottom: 1px solid #e1e6e1;
    background: #f7f9f6;
}

.gp-place-extras-disclosure[open] > summary::after {
    content: "\2212";
}

/* Seasonal summary icon remains tiny and decorative. */
.gp-place-seasonal-gifts > summary img {
    width: auto !important;
    max-width: 28px !important;
    height: 28px !important;
    margin: 0 !important;
    box-shadow: none !important;
}

/* Content area when expanded. */
.gp-place-extras-disclosure > .flex-container {
    width: 100% !important;
    margin: 0 !important;
    padding: 14px !important;
    box-sizing: border-box;
}

/* General gifts inner wrapper remains quiet inside details. */
.gp-place-gifts .gp-place-gifts-inner {
    border: 0 !important;
    background: transparent !important;
    padding: 14px 16px 16px !important;
}

/* The old big heading is redundant after the disclosure summary. */
.gp-place-gifts .gp-place-gifts-inner > .gp-place-section-eyebrow,
.gp-place-gifts .gp-place-gifts-inner > h2 {
    margin-left: 0;
}

/* Keyboard accessibility. */
.gp-place-extras-disclosure > summary:focus-visible {
    outline: 3px solid rgba(49,95,62,.24);
    outline-offset: 3px;
}

/* Optional extras should not appear in research printouts. */
@media print {
    .gp-place-extras-disclosure {
        display: none !important;
    }
}

@media (max-width: 700px) {
    .gp-place-extras-disclosure {
        width: calc(100% - 14px) !important;
        margin-top: 14px !important;
        margin-bottom: 14px !important;
    }

    .gp-place-extras-disclosure > summary {
        min-height: 44px;
        padding: 10px 12px;
        font-size: .82rem;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 22
   Search Forms Polish
   ========================================================= */

.gp-place-search-card-label {
    margin-bottom: 6px;
    color: #7b683b;
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1.2;
    text-transform: uppercase;
}

.gp-place-search-card h2 {
    margin: 0 0 8px !important;
}

.gp-place-search-help {
    max-width: 58ch;
    margin: 0 0 16px !important;
    color: #66736a;
    font-size: .86rem;
    line-height: 1.55;
}

.gp-place-search-label,
.gp-place-search-row-label {
    color: #405147;
    font-size: .84rem;
    font-weight: 700;
}

.gp-place-search-label {
    display: block;
    margin: 0 0 6px;
}

.gp-place-search-label > span,
.gp-place-search-row-label > span {
    color: #8a4b3d;
}

/* Name-search form rows now behave as a clean form grid. */
.gp-place-search-card .gp-place-search-row {
    display: grid !important;
    grid-template-columns: minmax(145px, 185px) minmax(0, 1fr);
    gap: 11px;
    align-items: center;
    margin-bottom: 10px;
}

.gp-place-search-card .gp-place-search-row > .label,
.gp-place-search-card .gp-place-search-row > .formw {
    width: auto !important;
    padding: 0 !important;
    text-align: left;
}

.gp-place-search-card .gp-place-search-row input[type="text"],
.gp-place-search-card .gp-place-search-row input[type="number"],
.gp-place-search-card .gp-place-search-row select {
    width: 100% !important;
    max-width: 300px !important;
    min-height: 39px;
    box-sizing: border-box;
}

.gp-place-search-card .gp-place-search-exact {
    align-items: center;
}

.gp-place-search-card .gp-place-search-exact .gp-place-search-row-label {
    grid-column: 1 / -1;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.gp-place-search-card .gp-place-search-exact input[type="checkbox"] {
    width: auto !important;
    min-height: 0 !important;
    margin: 0;
}

.gp-place-search-card .gp-place-search-submit {
    margin-top: 13px;
}

.gp-place-search-card .gp-place-search-submit .formw {
    grid-column: 2;
}

/* Place autocomplete gets a full, comfortable input width. */
.gp-place-search-card #autocomplete {
    width: 100% !important;
    max-width: 430px !important;
    margin-bottom: 8px;
}

/* Clearer form focus without loud chrome. */
.gp-place-search-card input:focus,
.gp-place-search-card select:focus {
    border-color: #78947f !important;
    outline: 2px solid rgba(49,95,62,.14) !important;
    outline-offset: 1px;
}

/* Search buttons align with the site-wide V2 language. */
.gp-place-search-card input[type="submit"] {
    min-width: 100px;
}

/* Mobile: labels stack above controls. */
@media (max-width: 700px) {
    .gp-place-search-card .gp-place-search-row {
        grid-template-columns: 1fr !important;
        gap: 5px !important;
        margin-bottom: 12px;
    }

    .gp-place-search-card .gp-place-search-submit .formw {
        grid-column: auto;
    }

    .gp-place-search-card .gp-place-search-row input[type="text"],
    .gp-place-search-card .gp-place-search-row input[type="number"],
    .gp-place-search-card .gp-place-search-row select {
        max-width: none !important;
    }

    .gp-place-search-card input[type="submit"] {
        width: 100% !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 23
   Seasonal Reading Cleanup
   Collapses legacy month/location promotional links above the profile.
   ========================================================= */

/*
   The legacy page contains a large set of month- and location-specific
   historical/holiday links BEFORE the actual place profile. Keep them,
   but collapse them into one small disclosure so "History of <Place>"
   remains the obvious beginning of the page.
*/
.gp-place-seasonal-reading {
    width: min(1160px, calc(100% - 32px));
    margin: 10px auto 12px;
    border: 1px solid #e0e4df;
    border-radius: 7px;
    background: #fafbf9;
    box-sizing: border-box;
    opacity: .88;
}

/* If none of the existing date/place conditions generated a link,
   do not show an empty disclosure. */
.gp-place-seasonal-reading:not(:has(a)) {
    display: none !important;
}

.gp-place-seasonal-reading > summary {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 8px 12px;
    color: #68746c;
    font-size: .79rem;
    font-weight: 700;
    line-height: 1.3;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.gp-place-seasonal-reading > summary::-webkit-details-marker {
    display: none;
}

.gp-place-seasonal-reading > summary::after {
    content: "+";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-left: auto;
    border: 1px solid #ccd4ce;
    border-radius: 50%;
    background: #fff;
    color: #637068;
    font-size: .9rem;
    line-height: 1;
}

.gp-place-seasonal-reading[open] > summary {
    border-bottom: 1px solid #e2e6e2;
    background: #f7f9f6;
}

.gp-place-seasonal-reading[open] > summary::after {
    content: "\2212";
}

.gp-place-seasonal-reading-inner {
    padding: 11px 14px 13px;
}

/* Flatten the many legacy flex rows into one compact reading list. */
.gp-place-seasonal-reading-inner > .flex-container {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
}

.gp-place-seasonal-reading-inner .flex-item-no-border {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 5px 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #5e6a62;
    font-size: .82rem;
    line-height: 1.5;
}

.gp-place-seasonal-reading-inner a {
    color: #50655a !important;
    font-weight: 650;
    text-underline-offset: 3px;
}

/* Amazon/book links in the legacy seasonal list are visibly tertiary. */
.gp-place-seasonal-reading-inner a[href*="amzn.to"],
.gp-place-seasonal-reading-inner a[href*="amazon.com"] {
    color: #7b817d !important;
    font-weight: 500;
}

/* This content should not precede core place research in print. */
@media print {
    .gp-place-seasonal-reading {
        display: none !important;
    }
}

@media (max-width: 700px) {
    .gp-place-seasonal-reading {
        width: calc(100% - 14px);
        margin-top: 7px;
        margin-bottom: 9px;
    }

    .gp-place-seasonal-reading > summary {
        min-height: 40px;
        padding: 8px 10px;
        font-size: .78rem;
    }

    .gp-place-seasonal-reading-inner {
        padding: 9px 11px 11px;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 24
   Long-page navigation & section flow
   ========================================================= */

.gp-place-profile .gp-place-section-nav {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 7px !important;
    width: 100%;
    margin-top: 18px !important;
}

.gp-place-profile .gp-place-section-nav a {
    width: 100%;
    min-width: 0 !important;
    min-height: 38px;
    padding: 7px 8px !important;
    border: 1px solid #d5ded6 !important;
    border-radius: 5px;
    background: #f5f8f4 !important;
    box-sizing: border-box;
    text-align: center;
    justify-content: center;
    white-space: normal;
}

.gp-place-profile .gp-place-section-nav a:hover {
    background: #e9f0e8 !important;
    border-color: #c1cec3 !important;
}

#about,
#vintage,
#history,
#ancestry,
#place-search,
#discussion {
    scroll-margin-top: 110px;
}

/* Subtle separators reinforce the page's research sequence without
   adding another layer of boxes. */
#vintage,
#history,
#ancestry,
#place-search {
    position: relative;
}

#vintage::before,
#history::before,
#ancestry::before,
#place-search::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -17px;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        #e0e5df 16%,
        #e0e5df 84%,
        transparent 100%
    );
    pointer-events: none;
}

/* Disclosure controls now share one interaction language. */
.gp-place-vintage-more > summary,
.gp-place-history-more > summary,
.gp-place-extras-disclosure > summary,
.gp-place-seasonal-reading > summary {
    transition: background-color .14s ease, border-color .14s ease;
}

.gp-place-vintage-more > summary:hover,
.gp-place-history-more > summary:hover,
.gp-place-extras-disclosure > summary:hover,
.gp-place-seasonal-reading > summary:hover {
    background: #eef3ed;
}

@media (max-width: 980px) {
    .gp-place-profile .gp-place-section-nav {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 620px) {
    .gp-place-profile .gp-place-section-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .gp-place-profile .gp-place-section-nav a {
        min-height: 42px;
        font-size: .79rem !important;
    }
}

@media (max-width: 360px) {
    .gp-place-profile .gp-place-section-nav {
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 25
   Profile summary + About next steps
   ========================================================= */

/* ---------------------------------------------------------
   ALTERNATE PLACE NAME
   --------------------------------------------------------- */

.gp-place-alternate-name {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 7px;
    max-width: 820px;
    margin: 9px 0 0;
    color: #59685f;
    font-size: .92rem;
    line-height: 1.45;
}

.gp-place-alternate-name > span {
    color: #7a817c;
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

/* ---------------------------------------------------------
   PROFILE INTRO
   --------------------------------------------------------- */

.gp-place-intro {
    margin-top: 13px !important;
    max-width: 76ch !important;
    color: #46584c !important;
}

.gp-place-intro strong {
    color: #274532;
    font-weight: 700;
}

/* ---------------------------------------------------------
   ABOUT NEXT STEPS
   Replaces the old "Keep reading!" line with useful local navigation.
   --------------------------------------------------------- */

.gp-place-about-more {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin-top: 17px !important;
    padding-top: 13px;
    border-top: 1px solid #dfe5df;
    color: #6a766e;
    font-size: .8rem;
}

.gp-place-about-more > span {
    margin-right: 2px;
    color: #5a675f;
    font-weight: 700;
}

.gp-place-about-more > a {
    display: inline-flex;
    align-items: center;
    min-height: 29px;
    padding: 4px 8px;
    border: 1px solid #d7dfd8;
    border-radius: 5px;
    background: #f7faf6;
    color: #315a40 !important;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
}

.gp-place-about-more > a:hover {
    border-color: #c3d0c5;
    background: #eaf1e9;
}

/* ---------------------------------------------------------
   FAMILY ROOTS CTA
   --------------------------------------------------------- */

.gp-place-family-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    margin-top: 13px !important;
    padding: 11px 13px !important;
    border-top: 0 !important;
    border: 1px solid #dce3dc;
    border-radius: 6px;
    background: #f8faf7 !important;
}

.gp-place-family-cta strong {
    color: #43564a;
    font-size: .83rem;
}

.gp-place-family-cta a {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    padding: 5px 9px;
    border-radius: 5px;
    background: #315f3e;
    color: #fff !important;
    font-size: .79rem;
    font-weight: 700;
    text-decoration: none !important;
}

.gp-place-family-cta a:hover {
    background: #254d32;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 620px) {
    .gp-place-alternate-name {
        margin-top: 8px;
        font-size: .88rem;
    }

    .gp-place-about-more {
        align-items: stretch;
    }

    .gp-place-about-more > span {
        flex-basis: 100%;
    }

    .gp-place-about-more > a {
        flex: 1 1 auto;
        justify-content: center;
    }

    .gp-place-family-cta {
        align-items: stretch;
    }

    .gp-place-family-cta strong {
        flex-basis: 100%;
    }

    .gp-place-family-cta a {
        justify-content: center;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 26
   Discussion + page-end finish
   ========================================================= */

.gp-place-discussion {
    margin-top: 34px !important;
    margin-bottom: 18px !important;
}

.gp-place-discussion-inner {
    padding-top: 24px !important;
}

.gp-place-discussion-inner > h2 {
    margin-bottom: 6px !important;
}

.gp-place-discussion-inner > p {
    margin-bottom: 16px !important;
}

.gp-place-discussion #disqus_thread {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
}

.gp-place-page-end {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: min(1160px, calc(100% - 32px));
    margin: 0 auto 34px;
    padding: 13px 0 0;
    border-top: 1px solid #e1e6e1;
    color: #7a837d;
    font-size: .8rem;
}

.gp-place-page-end a {
    color: #59695f !important;
    font-weight: 700;
    text-decoration: none !important;
}

.gp-place-page-end a:hover {
    color: #315a40 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

#top {
    position: relative;
    height: 0;
    scroll-margin-top: 0;
}

@media print {
    .gp-place-page-end {
        display: none !important;
    }
}

@media (max-width: 700px) {
    .gp-place-page-end {
        width: calc(100% - 14px);
        margin-bottom: 26px;
        font-size: .78rem;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 27
   About text line-break preservation
   ========================================================= */

/*
   Details.aspx now converts CR/LF characters in the About field to <br />.
   These rules make single line breaks readable and double breaks behave
   like paragraph spacing.
*/
.gp-place-about-copy br {
    display: block;
    content: "";
    margin-top: .18em;
}

.gp-place-about-copy br + br {
    margin-top: .72em;
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 28
   Sources, captions, and archival metadata polish
   ZERO ASPX/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   ABOUT SOURCE
   --------------------------------------------------------- */

.gp-place-about-source {
    max-width: 76ch;
    margin-top: 17px !important;
    padding-top: 12px !important;
    border-top: 1px solid #dfe5df;
    color: #707b73 !important;
    font-size: .79rem !important;
    line-height: 1.55 !important;
}

.gp-place-about-source > span {
    margin-right: 6px;
    color: #526158 !important;
}

/* Long URLs and old source strings should wrap instead of widening the card. */
.gp-place-about-source,
.gp-place-about-source a {
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* ---------------------------------------------------------
   VINTAGE CAPTIONS / SOURCES
   --------------------------------------------------------- */

/* Archival cards should read image first, caption second, metadata third. */
.gp-place-vintage .flex-item-no-border,
.gp-place-vintage .flex-item-no-border-sm-font,
.gp-place-vintage .flex-item-gray-no-border,
.gp-place-vintage .flex-item-gray-no-border-sm-font,
.gp-place-vintage .flex-item-centered,
.gp-place-vintage .flex-item-no-border-centered {
    line-height: 1.48;
}

/* Text immediately following vintage images gets breathing room even when
   the legacy markup uses BR tags instead of semantic caption elements. */
.gp-place-vintage .gp-place-vintage-image {
    margin-bottom: 10px !important;
}

/* De-emphasize tiny legacy source/copyright metadata without making it unreadable. */
.gp-place-vintage font[size="-1"],
.gp-place-vintage small {
    color: #707a73 !important;
    font-size: .78rem !important;
    line-height: 1.45 !important;
}

/* Source links should not visually compete with the caption itself. */
.gp-place-vintage font[size="-1"] a,
.gp-place-vintage small a {
    color: #5e6f64 !important;
    font-weight: 600 !important;
}

/* ---------------------------------------------------------
   HISTORY SOURCES
   --------------------------------------------------------- */

/* History cards often contain a final source line in legacy small/font markup. */
.gp-place-history-card font[size="-1"],
.gp-place-history-card small {
    color: #717b74 !important;
    font-size: .78rem !important;
    line-height: 1.48 !important;
}

.gp-place-history-card font[size="-1"] a,
.gp-place-history-card small a {
    color: #5d6e63 !important;
    font-weight: 600 !important;
}

/* Prevent very long newspaper/source URLs from breaking the two-column stream. */
.gp-place-history-card,
.gp-place-history-card a,
.gp-place-vintage a {
    overflow-wrap: anywhere;
}

/* ---------------------------------------------------------
   EXTERNAL LINKS
   Keep external research links recognizable but restrained.
   --------------------------------------------------------- */

.gp-place-about-source a[target="_blank"],
.gp-place-history-card a[target="_blank"],
.gp-place-vintage a[target="_blank"] {
    text-decoration-style: dotted;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-about-source,
    .gp-place-vintage font[size="-1"],
    .gp-place-vintage small,
    .gp-place-history-card font[size="-1"],
    .gp-place-history-card small {
        font-size: .76rem !important;
    }

    .gp-place-vintage .gp-place-vintage-image {
        margin-bottom: 8px !important;
    }
}

/* ---------------------------------------------------------
   PRINT
   Sources are especially important in printed genealogy research.
   --------------------------------------------------------- */

@media print {
    .gp-place-about-source,
    .gp-place-vintage font[size="-1"],
    .gp-place-vintage small,
    .gp-place-history-card font[size="-1"],
    .gp-place-history-card small {
        color: #333 !important;
        font-size: 8.5pt !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 29
   Responsive Image Delivery
   Uses srcset/sizes while keeping the same visual layout.
   ========================================================= */

/*
   Details.aspx now supplies both:
       /Content/ancestorimagesmobile/  (small candidate)
       /Content/ancestorimages/        (large candidate)

   The browser chooses the most appropriate file for the actual rendered
   size and device pixel density. CSS still controls the displayed size.
*/

.gp-place-about-image,
.gp-place-vintage-image {
    height: auto !important;
}

/* Prevent intrinsic source dimensions from overriding responsive card sizing. */
.gp-place-vintage-image {
    width: 100% !important;
    object-fit: contain;
}

.gp-place-about-image {
    object-fit: contain;
}

/* On very narrow phones, never request/display wider than the card. */
@media (max-width: 700px) {
    .gp-place-about-image,
    .gp-place-vintage-image {
        max-width: 100% !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 30
   About paragraph breaks + larger desktop Vintage images
   ========================================================= */

/* ---------------------------------------------------------
   ABOUT PARAGRAPHS
   Details.aspx now converts Model.About CR/LF to <br /> BEFORE
   Utils.FormatOutput, because FormatOutput was consuming/collapsing
   the raw newline characters.
   --------------------------------------------------------- */

.gp-place-about-copy br {
    display: block !important;
    content: "" !important;
    margin-top: .22em;
}

/* Two source line breaks should visibly separate paragraphs. */
.gp-place-about-copy br + br {
    margin-top: .9em !important;
}

/* ---------------------------------------------------------
   VINTAGE DESKTOP IMAGES
   The <picture> element guarantees:
   - <=700px: ancestorimagesmobile
   - >700px:  full ancestorimages source
   --------------------------------------------------------- */

.gp-place-vintage-picture {
    display: block;
    width: 100%;
}

/* Desktop gallery remains TWO columns, but cards/images use more of each column. */
.gp-place-vintage .gp-place-section-inner > .flex-container,
.gp-place-vintage .gp-place-vintage-more-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
}

.gp-place-vintage .gp-place-vintage-image {
    display: block !important;
    width: 100% !important;
    max-width: 620px !important;
    height: auto !important;
    max-height: 620px !important;
    margin: 0 auto 12px !important;
    object-fit: contain !important;
}

/* Cards containing the Vintage image should not impose a smaller inherited width. */
.gp-place-vintage .flex-item-no-border-sm-font:has(.gp-place-vintage-picture),
.gp-place-vintage .flex-item-no-border:has(.gp-place-vintage-picture),
.gp-place-vintage .flex-item-gray-no-border-sm-font:has(.gp-place-vintage-picture),
.gp-place-vintage .flex-item-gray-no-border:has(.gp-place-vintage-picture) {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 16px !important;
}

/* On roomy desktops, let the gallery itself breathe a little more. */
@media (min-width: 1250px) {
    .gp-place-vintage .gp-place-section-inner > .flex-container,
    .gp-place-vintage .gp-place-vintage-more-grid {
        gap: 26px !important;
    }

    .gp-place-vintage .gp-place-vintage-image {
        max-width: 660px !important;
        max-height: 660px !important;
    }
}

/* Tablet keeps two columns with full source images but sensible height. */
@media (max-width: 900px) and (min-width: 701px) {
    .gp-place-vintage .gp-place-section-inner > .flex-container,
    .gp-place-vintage .gp-place-vintage-more-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 14px !important;
    }

    .gp-place-vintage .gp-place-vintage-image {
        max-height: 430px !important;
    }
}

/* Phones use the mobile file and one card per row. */
@media (max-width: 700px) {
    .gp-place-vintage .gp-place-section-inner > .flex-container,
    .gp-place-vintage .gp-place-vintage-more-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .gp-place-vintage .gp-place-vintage-image {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 440px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 31
   Ad / Utility Flow + Legacy Spacing Cleanup
   ZERO ASPX/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   ADS
   Keep monetization intact, but visually separate ads from
   historical cards so they do not masquerade as research content.
   --------------------------------------------------------- */

.gp-place-history-ad {
    position: relative;
    grid-column: 1 / -1 !important;
    width: 100% !important;
    margin: 10px 0 12px !important;
    padding: 16px 0 10px !important;
    border-top: 1px solid #e5e9e5;
    border-bottom: 1px solid #e5e9e5;
    background: transparent !important;
}

.gp-place-history-ad::before {
    content: "ADVERTISEMENT";
    display: block;
    margin: 0 0 6px;
    color: #9a9f9b;
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-align: center;
}

.gp-place-history-ad > .flex-item-no-border,
.gp-place-history-ad > .flex-item-gray-no-border {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.gp-place-history-ad .adsbygoogle {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
}

/* Generic ads elsewhere on the Places page should not inherit card chrome. */
.gp-place-profile .adsbygoogle,
.gp-place-story-callout .adsbygoogle,
.gp-place-section .adsbygoogle,
.gp-place-search-section .adsbygoogle {
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   ADMIN / EDITING UTILITIES
   Keep useful owner/admin controls available but quieter.
   --------------------------------------------------------- */

.gp-place-section a[href*="AddLifeEventFor"],
.gp-place-section a[href*="AddImageFor"],
.gp-place-section a[href*="Update"],
.gp-place-section a[href*="Delete"] {
    text-decoration: none;
}

.gp-place-section img[src*="edit"],
.gp-place-section img[src*="delete"],
.gp-place-section img[src*="add_"],
.gp-place-story-callout img[src*="edit"],
.gp-place-story-callout img[src*="delete"] {
    opacity: .72;
    transition: opacity .12s ease;
}

.gp-place-section a:hover img[src*="edit"],
.gp-place-section a:hover img[src*="delete"],
.gp-place-section a:hover img[src*="add_"],
.gp-place-story-callout a:hover img[src*="edit"],
.gp-place-story-callout a:hover img[src*="delete"] {
    opacity: 1;
}

/* ---------------------------------------------------------
   LEGACY SPACING
   A number of old BR-heavy blocks survive because they contain
   real content. Reduce only the most excessive spacing patterns.
   --------------------------------------------------------- */

.gp-place-profile br + br + br,
.gp-place-story-callout br + br + br,
.gp-place-section-inner br + br + br,
.gp-place-search-section br + br + br {
    display: none;
}

/* Prevent old spacer GIF/JPG assets from reserving mysterious whitespace. */
#colMain img[src*="white_spacer"],
#colMain img[src*="spacer.gif"],
#colMain img[src*="spacer.jpg"] {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
}

/* Empty legacy flex rows should collapse completely. */
#colMain .flex-container:empty,
#colMain .flex-item:empty,
#colMain .flex-item-no-border:empty,
#colMain .flex-item-gray-no-border:empty,
#colMain .flex-item-no-border-centered:empty {
    display: none !important;
}

/* ---------------------------------------------------------
   SECTION END RHYTHM
   --------------------------------------------------------- */

.gp-place-vintage,
.gp-place-history,
.gp-place-ancestry {
    padding-bottom: 0 !important;
}

.gp-place-vintage .gp-place-section-inner > :last-child,
.gp-place-history .gp-place-section-inner > :last-child,
.gp-place-ancestry .gp-place-section-inner > :last-child {
    margin-bottom: 0 !important;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-history-ad {
        margin: 8px 0 10px !important;
        padding-top: 13px !important;
    }

    .gp-place-history-ad::before {
        font-size: .56rem;
    }
}

/* ---------------------------------------------------------
   PRINT
   Ads/admin utilities are not part of a research printout.
   --------------------------------------------------------- */

@media print {
    .gp-place-history-ad,
    .adsbygoogle,
    .gp-place-section img[src*="edit"],
    .gp-place-section img[src*="delete"],
    .gp-place-section img[src*="add_"] {
        display: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 32
   History + Vintage metadata cleanup
   ========================================================= */

/* ---------------------------------------------------------
   VINTAGE SOURCE
   --------------------------------------------------------- */

.gp-place-vintage-source {
    margin-top: 9px;
    padding-top: 8px;
    border-top: 1px solid #e6e9e5;
    color: #707a73;
    font-size: .77rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.gp-place-vintage-source::before {
    content: "Source ";
    color: #56645b;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

/* ---------------------------------------------------------
   HISTORY "READ MORE"
   --------------------------------------------------------- */

.gp-place-history-more-link {
    display: inline-flex;
    align-items: center;
    min-height: 29px;
    margin-top: 8px;
    padding: 4px 8px;
    border: 1px solid #d6dfd8;
    border-radius: 5px;
    background: #f7faf6;
    color: #315a40 !important;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
}

.gp-place-history-more-link:hover {
    background: #eaf1e9;
    border-color: #c2cec4;
}

/* ---------------------------------------------------------
   HISTORY METADATA
   Replaces italicized FONT-size legacy source/date blocks.
   --------------------------------------------------------- */

.gp-place-history-meta {
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid #e4e8e4;
    color: #707a73;
    font-size: .77rem;
    font-style: normal;
    line-height: 1.5;
}

.gp-place-history-meta a {
    color: #5c6c62 !important;
    font-weight: 600 !important;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-vintage-source,
    .gp-place-history-meta {
        font-size: .75rem;
    }

    .gp-place-history-more-link {
        min-height: 31px;
        font-size: .77rem;
    }
}

/* ---------------------------------------------------------
   PRINT
   Metadata matters in research output.
   --------------------------------------------------------- */

@media print {
    .gp-place-vintage-source,
    .gp-place-history-meta {
        color: #333 !important;
        font-size: 8.5pt !important;
    }

    .gp-place-history-more-link {
        display: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 33
   Map / Video action polish
   ========================================================= */

.gp-place-media-action {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 36px;
    margin-top: 8px;
    padding: 6px 10px;
    border: 1px solid #d6dfd8;
    border-radius: 6px;
    background: #f7faf6;
    color: #315a40 !important;
    font-size: .8rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
}

.gp-place-media-action:hover {
    background: #eaf1e9;
    border-color: #c2cec4;
}

.gp-place-media-action img {
    display: block !important;
    width: auto !important;
    max-width: 26px !important;
    height: 24px !important;
    margin: 0 !important;
    box-shadow: none !important;
}

.gp-place-media-action span {
    display: inline !important;
}

.gp-place-media-note {
    margin-top: 8px;
    color: #707b73;
    font-size: .77rem;
    line-height: 1.45;
    text-align: left;
}

.gp-place-about-media {
    align-self: start;
}

@media (max-width: 700px) {
    .gp-place-media-action {
        width: 100%;
        box-sizing: border-box;
    }
}

@media print {
    .gp-place-media-action,
    .gp-place-media-note {
        display: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 34
   Disclosure + section polish
   ZERO ASPX/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   DISCLOSURE CONSISTENCY
   Vintage, History, Seasonal Reading and Optional Extras now
   behave like one family of controls.
   --------------------------------------------------------- */

.gp-place-vintage-more,
.gp-place-history-more,
.gp-place-extras-disclosure,
.gp-place-seasonal-reading {
    border-radius: 8px;
}

.gp-place-vintage-more > summary,
.gp-place-history-more > summary,
.gp-place-extras-disclosure > summary,
.gp-place-seasonal-reading > summary {
    min-height: 42px;
    box-sizing: border-box;
    text-decoration: none;
}

.gp-place-vintage-more > summary:hover,
.gp-place-history-more > summary:hover,
.gp-place-extras-disclosure > summary:hover,
.gp-place-seasonal-reading > summary:hover {
    color: #244e34;
}

/* The two research archives are more important than commerce/seasonal extras. */
.gp-place-vintage-more > summary,
.gp-place-history-more > summary {
    border-color: #c9d5cb;
    background: #f5f8f4;
    color: #315a40;
}

.gp-place-extras-disclosure > summary,
.gp-place-seasonal-reading > summary {
    color: #66736a;
}

/* Open archives get a subtle top-to-content transition. */
.gp-place-vintage-more[open],
.gp-place-history-more[open] {
    padding-bottom: 2px;
}

.gp-place-vintage-more[open] > summary,
.gp-place-history-more[open] > summary {
    border-color: #c1cec3;
}

/* ---------------------------------------------------------
   SECTION HEADING RHYTHM
   --------------------------------------------------------- */

.gp-place-section-inner > .gp-place-section-eyebrow + h2,
.gp-place-search-section > .gp-place-section-eyebrow + h2,
.gp-place-discussion-inner > .gp-place-section-eyebrow + h2 {
    margin-top: 0 !important;
}

.gp-place-section-inner > h2,
.gp-place-search-section > h2,
.gp-place-discussion-inner > h2 {
    max-width: 32ch;
}

.gp-place-history-intro,
.gp-place-ancestry-intro,
.gp-place-search-section > p,
.gp-place-discussion-inner > p {
    max-width: 72ch;
}

/* ---------------------------------------------------------
   CARD HEIGHT / ALIGNMENT
   Avoid accidental equal-height stretching from older flex rules.
   --------------------------------------------------------- */

.gp-place-history-stream,
.gp-place-history-more-grid,
.gp-place-vintage .gp-place-section-inner > .flex-container,
.gp-place-vintage-more-grid,
.gp-place-ancestry .gp-place-section-inner,
.gp-place-search-grid {
    align-items: start !important;
}

.gp-place-history-card,
.gp-place-ancestry-card,
.gp-place-search-card,
.gp-place-vintage .flex-item-no-border:has(.gp-place-vintage-picture),
.gp-place-vintage .flex-item-no-border-sm-font:has(.gp-place-vintage-picture),
.gp-place-vintage .flex-item-gray-no-border:has(.gp-place-vintage-picture),
.gp-place-vintage .flex-item-gray-no-border-sm-font:has(.gp-place-vintage-picture) {
    height: auto !important;
    align-self: start !important;
}

/* ---------------------------------------------------------
   SOURCE / METADATA SEPARATION
   --------------------------------------------------------- */

.gp-place-vintage-source,
.gp-place-history-meta,
.gp-place-about-source {
    background: transparent !important;
}

.gp-place-vintage-source:last-child,
.gp-place-history-meta:last-child,
.gp-place-about-source:last-child {
    margin-bottom: 0 !important;
}

/* ---------------------------------------------------------
   TOUCH TARGETS
   --------------------------------------------------------- */

@media (pointer: coarse) {
    .gp-place-profile .gp-place-section-nav a,
    .gp-place-title-tools .gp-place-tool,
    .gp-place-history-more-link,
    .gp-place-media-action,
    .gp-place-about-more > a,
    .gp-place-family-cta a {
        min-height: 44px !important;
    }

    .gp-place-vintage-more > summary,
    .gp-place-history-more > summary,
    .gp-place-extras-disclosure > summary,
    .gp-place-seasonal-reading > summary {
        min-height: 46px !important;
    }
}

/* ---------------------------------------------------------
   VERY WIDE DESKTOP
   Keep card text readable even when the page is wide.
   --------------------------------------------------------- */

@media (min-width: 1500px) {
    .gp-place-history-card,
    .gp-place-ancestry-card,
    .gp-place-search-card {
        font-size: .93rem;
    }

    .gp-place-vintage .gp-place-vintage-image {
        max-height: 680px !important;
    }
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-history-intro,
    .gp-place-ancestry-intro,
    .gp-place-search-section > p,
    .gp-place-discussion-inner > p {
        font-size: .9rem;
        line-height: 1.55;
    }

    .gp-place-vintage-more,
    .gp-place-history-more {
        margin-top: 2px;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 35
   Media performance / long-page rendering
   ========================================================= */

/*
   Details.aspx now lazy-loads the map and YouTube embeds, and primary
   place images use decoding="async". These CSS rules add safe rendering
   containment to lower page sections so browsers can skip off-screen
   layout/paint work on very long Places pages.
*/

@supports (content-visibility: auto) {
    .gp-place-vintage,
    .gp-place-history,
    .gp-place-ancestry,
    .gp-place-search-section,
    .gp-place-discussion {
        content-visibility: auto;
        contain-intrinsic-size: 1px 900px;
    }
}

/* Anchor jumps should still land with the section comfortably visible. */
#vintage,
#history,
#ancestry,
#place-search,
#discussion {
    scroll-margin-top: 110px;
}

/* Prevent embedded media from causing layout shift while loading. */
.gp-place-about-media iframe {
    background: #f3f5f2;
}

/* The About and Vintage images already have responsive sizing;
   keep their layout boxes stable while the browser decodes them. */
.gp-place-about-image,
.gp-place-vintage-image {
    background: #f7f8f6;
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 36
   Layout stability + embedded content safety
   ZERO ASPX/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   VIDEO / MAP STABILITY
   --------------------------------------------------------- */

/* YouTube embeds should preserve a predictable 16:9 box while loading. */
.gp-place-about-media iframe[src*="youtube.com"],
.gp-place-history-video iframe[src*="youtube.com"] {
    display: block;
    width: 100% !important;
    aspect-ratio: 16 / 9;
    height: auto !important;
    min-height: 0 !important;
    border: 0 !important;
    background: #f3f5f2;
}

/* Maps remain landscape and stable. */
.gp-place-about-media iframe[src*="maps.googleapis.com"] {
    display: block;
    width: 100% !important;
    min-height: 320px !important;
    height: 320px !important;
    border: 0 !important;
    background: #f3f5f2;
}

/* ---------------------------------------------------------
   LEGACY TABLE SAFETY
   Some old place content can still contain fixed-width tables.
   Keep them usable instead of letting them blow out the page.
   --------------------------------------------------------- */

.gp-place-profile table,
.gp-place-story-callout table,
.gp-place-section table,
.gp-place-search-section table,
.gp-place-discussion table {
    max-width: 100% !important;
    border-collapse: collapse;
}

.gp-place-profile td,
.gp-place-story-callout td,
.gp-place-section td,
.gp-place-search-section td,
.gp-place-discussion td {
    overflow-wrap: anywhere;
}

/* Wrap legacy tables in their own natural horizontal scrolling area when needed. */
.gp-place-profile,
.gp-place-story-callout-inner,
.gp-place-section-inner,
.gp-place-search-card,
.gp-place-discussion-inner {
    min-width: 0 !important;
}

/* ---------------------------------------------------------
   LONG WORD / URL SAFETY
   --------------------------------------------------------- */

.gp-place-profile,
.gp-place-about-copy,
.gp-place-history-card,
.gp-place-ancestry-card,
.gp-place-vintage-source,
.gp-place-history-meta,
.gp-place-about-source,
.gp-place-search-card {
    overflow-wrap: anywhere;
    word-break: normal;
}

/* ---------------------------------------------------------
   IMAGE LAYOUT STABILITY
   --------------------------------------------------------- */

.gp-place-about-image,
.gp-place-vintage-image {
    display: block;
    max-width: 100% !important;
    height: auto !important;
}

/* Keep portrait/landscape image cards from growing strangely because of
   inherited flex alignment. */
.gp-place-vintage-picture {
    display: grid;
    place-items: center;
    width: 100%;
}

/* ---------------------------------------------------------
   SMALL-SCREEN FORM SAFETY
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-search-card input,
    .gp-place-search-card select,
    .gp-place-search-card textarea,
    .gp-place-search-card button {
        max-width: 100% !important;
        box-sizing: border-box;
    }

    .gp-place-about-media iframe[src*="maps.googleapis.com"] {
        min-height: 260px !important;
        height: 260px !important;
    }
}

/* ---------------------------------------------------------
   VERY SMALL PHONES
   --------------------------------------------------------- */

@media (max-width: 380px) {
    .gp-place-profile,
    .gp-place-story-callout,
    .gp-place-section,
    .gp-place-search-section,
    .gp-place-discussion,
    .gp-place-gifts,
    .gp-place-seasonal-gifts,
    .gp-place-seasonal-reading {
        width: calc(100% - 10px) !important;
    }

    .gp-place-profile,
    .gp-place-section-inner,
    .gp-place-story-callout-inner,
    .gp-place-search-section,
    .gp-place-discussion-inner {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    .gp-place-profile .gp-place-title {
        font-size: 1.72rem !important;
    }
}

/* ---------------------------------------------------------
   PRINT
   Keep stable media-free research output.
   --------------------------------------------------------- */

@media print {
    .gp-place-about-media iframe,
    .gp-place-history-video {
        display: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 37
   Top ad + section transition cleanup
   ========================================================= */

/* ---------------------------------------------------------
   TOP AD
   Replaces the final legacy CENTER tag on this view.
   The ad remains functional but clearly sits between research sections.
   --------------------------------------------------------- */

.gp-place-top-ad {
    width: min(1160px, calc(100% - 32px));
    margin: 24px auto 28px;
    padding: 13px 0 15px;
    border-top: 1px solid #e5e9e5;
    border-bottom: 1px solid #e5e9e5;
    background: transparent;
    text-align: center;
    box-sizing: border-box;
}

.gp-place-top-ad .gp-place-ad-label {
    margin-bottom: 6px;
    color: #9a9f9b;
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .12em;
    line-height: 1.2;
    text-transform: uppercase;
}

.gp-place-top-ad .adsbygoogle {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
}

/* Keep the ad from feeling welded to the Vintage heading. */
.gp-place-top-ad + .gp-place-vintage {
    margin-top: 30px !important;
}

/* ---------------------------------------------------------
   SECTION TRANSITIONS
   --------------------------------------------------------- */

/* The page now has compact sections, so give each major research mode
   a consistent visual landing zone without adding extra cards. */
.gp-place-story-callout,
.gp-place-vintage,
.gp-place-history,
.gp-place-ancestry,
.gp-place-search-section,
.gp-place-discussion {
    scroll-margin-top: 116px;
}

/* Remove stray legacy BR spacing immediately around the modern ad wrapper. */
.gp-place-about-media + br,
.gp-place-top-ad + br,
br + .gp-place-top-ad {
    display: none;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-top-ad {
        width: calc(100% - 14px);
        margin: 18px auto 22px;
        padding-top: 11px;
        padding-bottom: 12px;
    }
}

/* ---------------------------------------------------------
   PRINT
   --------------------------------------------------------- */

@media print {
    .gp-place-top-ad {
        display: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 38
   Pre-profile utility + related-reading cleanup
   ========================================================= */

/* ---------------------------------------------------------
   PRE-PROFILE TOOLS
   The old edit/delete/family controls no longer float as loose
   icons/text above the actual place profile.
   --------------------------------------------------------- */

.gp-place-preprofile-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    width: min(1160px, calc(100% - 32px));
    margin: 4px auto 8px;
    color: #707a73;
    font-size: .78rem;
}

/* Spacer JPGs are legacy layout artifacts. */
.gp-place-preprofile-tools img[src*="white_spacer"] {
    display: none !important;
}

/* Admin image links become compact neutral controls. */
.gp-place-preprofile-tools > a:not(.gp-place-preprofile-family) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 34px;
    padding: 4px;
    border: 1px solid #dde3dd;
    border-radius: 5px;
    background: #fafbf9;
    text-decoration: none !important;
}

.gp-place-preprofile-tools > a:not(.gp-place-preprofile-family):hover {
    border-color: #cbd5cd;
    background: #f2f6f1;
}

.gp-place-preprofile-tools > a img {
    display: block;
    width: auto !important;
    max-width: 27px !important;
    height: 26px !important;
    margin: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    object-fit: contain;
}

/* The family-tree action remains available, but the stronger contextual
   version still appears later in the About section. */
.gp-place-preprofile-family {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 5px 9px;
    border: 1px solid #dde3dd;
    border-radius: 5px;
    background: #fff;
    color: #657169 !important;
    font-size: .77rem;
    font-weight: 650;
    text-decoration: none !important;
}

.gp-place-preprofile-family:hover {
    color: #315a40 !important;
    background: #f6f9f5;
}

/* ---------------------------------------------------------
   RELATED PLACE READING
   Location-specific resource links no longer appear as loose
   rows above the profile.
   --------------------------------------------------------- */

.gp-place-related-reading {
    width: min(1160px, calc(100% - 32px));
    margin: 7px auto;
    border: 1px solid #e0e4df;
    border-radius: 7px;
    background: #fafbf9;
    box-sizing: border-box;
    opacity: .88;
}

/* If the current location produced no related links, remove the disclosure. */
.gp-place-related-reading:not(:has(a)) {
    display: none !important;
}

.gp-place-related-reading > summary {
    display: flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 12px;
    color: #68746c;
    font-size: .79rem;
    font-weight: 700;
    line-height: 1.3;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.gp-place-related-reading > summary::-webkit-details-marker {
    display: none;
}

.gp-place-related-reading > summary::after {
    content: "+";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-left: auto;
    border: 1px solid #ccd4ce;
    border-radius: 50%;
    background: #fff;
    color: #637068;
    font-size: .9rem;
}

.gp-place-related-reading[open] > summary::after {
    content: "\2212";
}

.gp-place-related-reading-inner {
    padding: 10px 13px 12px;
    border-top: 1px solid #e2e6e2;
}

.gp-place-related-reading-inner .flex-container {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
}

.gp-place-related-reading-inner .flex-item-no-border {
    width: 100% !important;
    max-width: none !important;
    padding: 3px 0 !important;
    border: 0 !important;
    background: transparent !important;
    font-size: .82rem;
    line-height: 1.5;
}

.gp-place-related-reading-inner a {
    color: #50655a !important;
    font-weight: 650;
}

/* ---------------------------------------------------------
   MOBILE / PRINT
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-preprofile-tools,
    .gp-place-related-reading {
        width: calc(100% - 14px);
    }

    .gp-place-preprofile-tools {
        justify-content: flex-start;
        margin-bottom: 7px;
    }

    .gp-place-preprofile-family {
        flex: 1 1 auto;
        justify-content: center;
    }
}

@media print {
    .gp-place-preprofile-tools,
    .gp-place-related-reading {
        display: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 39
   AUTHORITATIVE Vintage Gallery Layout
   2 columns desktop/tablet, 1 column mobile.
   ZERO ASPX/VB changes.
   ========================================================= */

/*
   This block intentionally comes last in the stylesheet so older
   legacy flex/grid rules cannot shrink the Vintage gallery again.
*/

/* Visible first six cards */
.gp-place-vintage .gp-place-section-inner > .flex-container {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px !important;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
}

/* Expanded archive */
.gp-place-vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px !important;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
}

/* Every media card owns its entire grid cell. */
.gp-place-vintage .gp-place-section-inner > .flex-container > *,
.gp-place-vintage .gp-place-vintage-more-grid > * {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box !important;
}

/* Give the archival image nearly the full width of its card. */
.gp-place-vintage .gp-place-vintage-picture {
    display: grid !important;
    place-items: center;
    width: 100% !important;
    max-width: none !important;
}

.gp-place-vintage .gp-place-vintage-image {
    display: block !important;
    width: 100% !important;
    max-width: 640px !important;
    height: auto !important;
    max-height: 640px !important;
    margin: 0 auto 12px !important;
    object-fit: contain !important;
}

/* Avoid legacy "mediumimage" dimensions shrinking the archive. */
.gp-place-vintage img.mediumimage.gp-place-vintage-image {
    width: 100% !important;
    max-width: 640px !important;
}

/* Roomy desktop gets just a little more image area. */
@media (min-width: 1350px) {
    .gp-place-vintage .gp-place-section-inner > .flex-container,
    .gp-place-vintage .gp-place-vintage-more-grid {
        gap: 28px !important;
    }

    .gp-place-vintage .gp-place-vintage-image,
    .gp-place-vintage img.mediumimage.gp-place-vintage-image {
        max-width: 680px !important;
        max-height: 680px !important;
    }
}

/* Tablet still stays at 2 columns. */
@media (max-width: 900px) and (min-width: 701px) {
    .gp-place-vintage .gp-place-section-inner > .flex-container,
    .gp-place-vintage .gp-place-vintage-more-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 16px !important;
    }

    .gp-place-vintage .gp-place-vintage-image,
    .gp-place-vintage img.mediumimage.gp-place-vintage-image {
        max-width: 100% !important;
        max-height: 440px !important;
    }
}

/* Phone: exactly one column. */
@media (max-width: 700px) {
    .gp-place-vintage .gp-place-section-inner > .flex-container,
    .gp-place-vintage .gp-place-vintage-more-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .gp-place-vintage .gp-place-vintage-image,
    .gp-place-vintage img.mediumimage.gp-place-vintage-image {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 460px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 40
   Remaining legacy typography cleanup
   ZERO ASPX/VB changes.
   ========================================================= */

/* Old FONT tags that remain inside modernized Places sections should
   inherit the V2 text color/line-height instead of looking like a separate site. */
.gp-place-profile font,
.gp-place-story-callout font,
.gp-place-section font,
.gp-place-search-section font,
.gp-place-discussion font {
    font-family: inherit !important;
    line-height: inherit !important;
}

/* Legacy green text should not override the calmer V2 research palette. */
.gp-place-profile font[color],
.gp-place-story-callout font[color],
.gp-place-section font[color],
.gp-place-search-section font[color],
.gp-place-discussion font[color] {
    color: inherit !important;
}

/* Preserve small metadata semantics without letting old size attributes
   become unreadably tiny. */
.gp-place-profile font[size="-1"],
.gp-place-story-callout font[size="-1"],
.gp-place-section font[size="-1"],
.gp-place-search-section font[size="-1"],
.gp-place-discussion font[size="-1"] {
    font-size: .8rem !important;
}

/* Old underline tags used for emphasis in headings should not create
   heavy browser-default underlines. */
.gp-place-profile h1 u,
.gp-place-profile h2 u,
.gp-place-section h2 u,
.gp-place-search-section h2 u {
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

/* Keep ordinary paragraph/bullet text at a comfortable measure. */
.gp-place-about-copy,
.gp-place-history-card,
.gp-place-ancestry-card,
.gp-place-search-card,
.gp-place-discussion-inner {
    color: #45564b;
}

/* Lists generated by legacy content should align cleanly with paragraphs. */
.gp-place-about-copy ul,
.gp-place-about-copy ol,
.gp-place-history-card ul,
.gp-place-history-card ol,
.gp-place-ancestry-card ul,
.gp-place-ancestry-card ol {
    margin: 10px 0 12px 1.35rem;
    padding: 0;
}

.gp-place-about-copy li,
.gp-place-history-card li,
.gp-place-ancestry-card li {
    margin-bottom: 5px;
}

/* Final guard against giant default margins from embedded legacy headings. */
.gp-place-about-copy h3,
.gp-place-history-card h3,
.gp-place-ancestry-card h4 {
    margin-top: 16px;
    margin-bottom: 8px;
}

/* Mobile text remains readable without ballooning the page. */
@media (max-width: 700px) {
    .gp-place-profile font[size="-1"],
    .gp-place-story-callout font[size="-1"],
    .gp-place-section font[size="-1"],
    .gp-place-search-section font[size="-1"],
    .gp-place-discussion font[size="-1"] {
        font-size: .78rem !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 41
   Keyboard focus + accessibility polish
   ZERO ASPX/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   VISIBLE KEYBOARD FOCUS
   Mouse users keep the clean V2 appearance; keyboard users get
   a clear, consistent focus indicator.
   --------------------------------------------------------- */

.gp-place-profile a:focus-visible,
.gp-place-story-callout a:focus-visible,
.gp-place-section a:focus-visible,
.gp-place-search-section a:focus-visible,
.gp-place-discussion a:focus-visible,
.gp-place-preprofile-tools a:focus-visible,
.gp-place-top-ad a:focus-visible,
.gp-place-page-end a:focus-visible,
.gp-place-seasonal-reading > summary:focus-visible,
.gp-place-related-reading > summary:focus-visible,
.gp-place-vintage-more > summary:focus-visible,
.gp-place-history-more > summary:focus-visible,
.gp-place-extras-disclosure > summary:focus-visible {
    outline: 3px solid #587d61 !important;
    outline-offset: 3px;
    border-radius: 5px;
}

/* Form controls need the same unmistakable focus state. */
.gp-place-search-card input:focus-visible,
.gp-place-search-card select:focus-visible,
.gp-place-search-card textarea:focus-visible,
.gp-place-search-card button:focus-visible {
    outline: 3px solid #587d61 !important;
    outline-offset: 2px;
    border-color: #587d61 !important;
}

/* ---------------------------------------------------------
   DISCLOSURE KEYBOARD STATES
   --------------------------------------------------------- */

.gp-place-seasonal-reading > summary,
.gp-place-related-reading > summary,
.gp-place-vintage-more > summary,
.gp-place-history-more > summary,
.gp-place-extras-disclosure > summary {
    -webkit-tap-highlight-color: rgba(49, 90, 64, .12);
}

/* Make the open state clearer without making it visually heavy. */
.gp-place-seasonal-reading[open] > summary,
.gp-place-related-reading[open] > summary,
.gp-place-vintage-more[open] > summary,
.gp-place-history-more[open] > summary,
.gp-place-extras-disclosure[open] > summary {
    color: #294f36;
}

/* ---------------------------------------------------------
   LINK READABILITY
   Body-copy links should not rely on color alone.
   --------------------------------------------------------- */

.gp-place-about-copy a,
.gp-place-history-card p a,
.gp-place-ancestry-card p a,
.gp-place-discussion-inner p a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

/* Button-like links remain button-like rather than underlined. */
.gp-place-section-nav a,
.gp-place-about-more > a,
.gp-place-family-cta a,
.gp-place-history-more-link,
.gp-place-media-action,
.gp-place-preprofile-family {
    text-decoration: none !important;
}

/* ---------------------------------------------------------
   REDUCED MOTION
   Respect visitors who prefer less animation.
   --------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    .gp-place-profile *,
    .gp-place-story-callout *,
    .gp-place-section *,
    .gp-place-search-section *,
    .gp-place-discussion * {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* ---------------------------------------------------------
   HIGH-CONTRAST / FORCED COLORS
   Let the operating system provide usable colors instead of
   fighting it with decorative backgrounds.
   --------------------------------------------------------- */

@media (forced-colors: active) {
    .gp-place-profile .gp-place-section-nav a,
    .gp-place-about-more > a,
    .gp-place-family-cta a,
    .gp-place-history-more-link,
    .gp-place-media-action,
    .gp-place-preprofile-family,
    .gp-place-vintage-more > summary,
    .gp-place-history-more > summary,
    .gp-place-seasonal-reading > summary,
    .gp-place-related-reading > summary {
        forced-color-adjust: auto;
        border: 1px solid ButtonText !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 42
   Inline Style Cleanup + Media Shells
   ========================================================= */

/* ---------------------------------------------------------
   VIDEO SHELLS
   Replaces old width/position/padding inline styles.
   --------------------------------------------------------- */

.gp-place-video-shell {
    width: min(100%, 760px) !important;
    min-width: 0 !important;
    max-width: 760px !important;
    margin: 0 auto !important;
}

.gp-place-video-ratio {
    position: relative;
    width: 100%;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border-radius: 7px;
    background: #f3f5f2;
}

.gp-place-video-frame {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    border: 0 !important;
}

.gp-place-video-copy {
    position: relative;
    width: 100%;
}

/* ---------------------------------------------------------
   MAP
   --------------------------------------------------------- */

.gp-place-map-frame {
    width: 100% !important;
    max-width: 100% !important;
    border: 0 !important;
    border-radius: 7px;
}

/* ---------------------------------------------------------
   VINTAGE
   --------------------------------------------------------- */

.gp-place-vintage {
    background: #fff !important;
}

.gp-place-vintage-grid {
    width: 100% !important;
    max-width: none !important;
    background: #fff !important;
}

/* Pass 39 remains authoritative: 2 desktop/tablet, 1 mobile. */
.gp-place-vintage .gp-place-vintage-grid,
.gp-place-vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px !important;
    align-items: start !important;
}

/* ---------------------------------------------------------
   SEARCH CARDS
   --------------------------------------------------------- */

.gp-place-search-by-place,
.gp-place-search-by-name {
    width: 100% !important;
    max-width: none !important;
    background: #fff !important;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-video-shell {
        width: 100% !important;
    }

    .gp-place-vintage .gp-place-vintage-grid,
    .gp-place-vintage .gp-place-vintage-more-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 43
   Desktop density + section balance
   ZERO ASPX/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   DESKTOP PAGE RHYTHM
   Keep the page rich, but avoid every section feeling equally tall.
   --------------------------------------------------------- */

@media (min-width: 901px) {
    .gp-place-profile {
        margin-bottom: 24px !important;
    }

    .gp-place-story-callout,
    .gp-place-section,
    .gp-place-search-section,
    .gp-place-discussion {
        margin-top: 24px !important;
        margin-bottom: 24px !important;
    }

    .gp-place-section-inner {
        padding-top: 24px !important;
        padding-bottom: 24px !important;
    }

    .gp-place-history-card,
    .gp-place-ancestry-card,
    .gp-place-search-card {
        padding-top: 17px !important;
        padding-bottom: 17px !important;
    }
}

/* ---------------------------------------------------------
   VINTAGE
   Pass 39/42 remains authoritative:
   2 columns desktop/tablet, 1 column mobile.
   --------------------------------------------------------- */

.gp-place-vintage .gp-place-vintage-grid,
.gp-place-vintage .gp-place-vintage-more-grid {
    grid-auto-flow: row !important;
}

/* Keep captions compact enough that the image remains the visual star. */
.gp-place-vintage .flex-item-no-border-sm-font,
.gp-place-vintage .flex-item-gray-no-border-sm-font {
    line-height: 1.45 !important;
}

.gp-place-vintage-source {
    margin-top: 8px !important;
    padding-top: 7px !important;
}

/* ---------------------------------------------------------
   HISTORY
   --------------------------------------------------------- */

.gp-place-history-stream,
.gp-place-history-more-grid {
    column-gap: 18px !important;
    row-gap: 14px !important;
}

.gp-place-history-card {
    line-height: 1.56 !important;
}

.gp-place-history-meta {
    margin-top: 8px !important;
    padding-top: 7px !important;
}

/* ---------------------------------------------------------
   ANCESTRY
   --------------------------------------------------------- */

.gp-place-ancestry .gp-place-section-inner {
    row-gap: 14px !important;
    column-gap: 16px !important;
}

.gp-place-ancestry-card {
    line-height: 1.55 !important;
}

.gp-place-ancestry-card > h3 {
    margin-bottom: 8px !important;
}

/* ---------------------------------------------------------
   SEARCH
   --------------------------------------------------------- */

.gp-place-search-section {
    padding-top: 23px !important;
    padding-bottom: 24px !important;
}

.gp-place-search-grid {
    gap: 16px !important;
}

.gp-place-search-help {
    margin-bottom: 14px !important;
}

/* ---------------------------------------------------------
   DISCUSSION / PAGE END
   --------------------------------------------------------- */

.gp-place-discussion {
    margin-top: 28px !important;
}

.gp-place-page-end {
    margin-bottom: 28px !important;
}

/* ---------------------------------------------------------
   VERY WIDE DESKTOP
   Keep the content centered and readable without wasting space.
   --------------------------------------------------------- */

@media (min-width: 1500px) {
    .gp-place-profile,
    .gp-place-story-callout,
    .gp-place-section,
    .gp-place-search-section,
    .gp-place-discussion,
    .gp-place-gifts,
    .gp-place-seasonal-gifts,
    .gp-place-updated,
    .gp-place-top-ad,
    .gp-place-preprofile-tools,
    .gp-place-related-reading,
    .gp-place-seasonal-reading {
        width: min(1240px, calc(100% - 56px)) !important;
    }

    .gp-place-vintage .gp-place-vintage-image {
        max-width: 700px !important;
        max-height: 700px !important;
    }
}

/* ---------------------------------------------------------
   MOBILE
   Keep the comfortable mobile spacing from previous passes.
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-story-callout,
    .gp-place-section,
    .gp-place-search-section,
    .gp-place-discussion {
        margin-top: 22px !important;
        margin-bottom: 22px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 44
   Profile + section cohesion
   ZERO ASPX/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   PROFILE HEADER
   Make the opening card feel like a single intentional unit.
   --------------------------------------------------------- */

.gp-place-profile {
    border-left-width: 4px !important;
    border-left-color: #52755c !important;
}

.gp-place-heading-row {
    padding-bottom: 4px;
}

.gp-place-profile .gp-place-title {
    max-width: 24ch;
}

.gp-place-profile .gp-place-tagline {
    max-width: 66ch !important;
    margin-top: 14px !important;
}

.gp-place-alternate-name {
    margin-top: 7px !important;
}

.gp-place-intro {
    margin-top: 12px !important;
    max-width: 70ch !important;
}

/* Keep the tool row visually secondary to the place name. */
.gp-place-title-tools {
    opacity: .88;
}

.gp-place-title-tools:hover,
.gp-place-title-tools:focus-within {
    opacity: 1;
}

/* ---------------------------------------------------------
   SECTION NAVIGATION
   --------------------------------------------------------- */

.gp-place-profile .gp-place-section-nav {
    margin-top: 16px !important;
    padding-top: 13px;
    border-top: 1px solid #e1e6e1;
}

.gp-place-profile .gp-place-section-nav a {
    min-height: 38px !important;
    font-size: .8rem !important;
}

/* ---------------------------------------------------------
   ABOUT / VINTAGE / HISTORY / ANCESTRY
   Give every research section the same heading rhythm.
   --------------------------------------------------------- */

.gp-place-story-callout-inner > .gp-place-section-eyebrow,
.gp-place-section-inner > .gp-place-section-eyebrow,
.gp-place-search-section > .gp-place-section-eyebrow,
.gp-place-discussion-inner > .gp-place-section-eyebrow {
    margin-bottom: 6px !important;
}

.gp-place-story-callout-inner > h2,
.gp-place-section-inner > h2,
.gp-place-search-section > h2,
.gp-place-discussion-inner > h2 {
    margin-bottom: 10px !important;
}

/* Intro copy should feel related, but clearly separate from the content cards. */
.gp-place-history-intro,
.gp-place-ancestry-intro,
.gp-place-search-section > p,
.gp-place-discussion-inner > p {
    margin-bottom: 16px !important;
    color: #68756d !important;
}

/* ---------------------------------------------------------
   VINTAGE AUTHORITATIVE LAYOUT
   Explicitly repeat the rule at the end of the stylesheet so
   nothing later can accidentally collapse desktop back to one column.
   --------------------------------------------------------- */

.gp-place-vintage .gp-place-vintage-grid,
.gp-place-vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px !important;
    align-items: start !important;
}

.gp-place-vintage .gp-place-vintage-image {
    width: 100% !important;
    max-width: 680px !important;
    height: auto !important;
    max-height: 680px !important;
    object-fit: contain !important;
}

/* ---------------------------------------------------------
   CARD BORDER LANGUAGE
   --------------------------------------------------------- */

.gp-place-history-card,
.gp-place-ancestry-card,
.gp-place-search-card,
.gp-place-about-media,
.gp-place-vintage .flex-item-no-border:has(.gp-place-vintage-picture),
.gp-place-vintage .flex-item-no-border-sm-font:has(.gp-place-vintage-picture),
.gp-place-vintage .flex-item-gray-no-border:has(.gp-place-vintage-picture),
.gp-place-vintage .flex-item-gray-no-border-sm-font:has(.gp-place-vintage-picture) {
    border-color: #d9e1da !important;
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 980px) {
    .gp-place-profile .gp-place-title {
        max-width: none;
    }
}

@media (max-width: 700px) {
    .gp-place-profile .gp-place-section-nav {
        margin-top: 14px !important;
        padding-top: 12px;
    }

    .gp-place-vintage .gp-place-vintage-grid,
    .gp-place-vintage .gp-place-vintage-more-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .gp-place-vintage .gp-place-vintage-image {
        max-width: 100% !important;
        max-height: 460px !important;
    }

    .gp-place-title-tools {
        opacity: 1;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 45
   Final section balance + long-page readability
   ZERO ASPX/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   CONSISTENT SECTION WIDTHS
   --------------------------------------------------------- */

.gp-place-profile,
.gp-place-story-callout,
.gp-place-section,
.gp-place-search-section,
.gp-place-discussion,
.gp-place-top-ad,
.gp-place-page-end {
    max-width: 1240px;
}

/* ---------------------------------------------------------
   ABOUT
   Keep About readable without making the text feel like a narrow article.
   --------------------------------------------------------- */

.gp-place-about-copy {
    max-width: 78ch;
}

.gp-place-story-callout-inner {
    line-height: 1.68;
}

.gp-place-about-more {
    margin-top: 15px !important;
}

/* ---------------------------------------------------------
   VINTAGE
   Keep images large and captions compact.
   --------------------------------------------------------- */

.gp-place-vintage .gp-place-vintage-grid,
.gp-place-vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 26px !important;
}

.gp-place-vintage .gp-place-vintage-image {
    width: 100% !important;
    max-width: 700px !important;
    max-height: 700px !important;
}

.gp-place-vintage-source {
    margin-top: 7px !important;
}

/* ---------------------------------------------------------
   HISTORY
   --------------------------------------------------------- */

.gp-place-history-card {
    max-width: none;
}

.gp-place-history-card p {
    margin-top: 8px;
    margin-bottom: 9px;
}

.gp-place-history-more-link {
    margin-top: 6px !important;
}

/* ---------------------------------------------------------
   ANCESTRY
   --------------------------------------------------------- */

.gp-place-ancestry-card {
    display: flex;
    flex-direction: column;
}

.gp-place-ancestry-card > h3 {
    margin-bottom: 7px !important;
}

.gp-place-ancestry-card > a[href*="DetailsBornDied"],
.gp-place-ancestry-card > a[href*="DetailsMarried"] {
    align-self: flex-start;
}

/* ---------------------------------------------------------
   SEARCH
   --------------------------------------------------------- */

.gp-place-search-card {
    min-height: 100%;
}

.gp-place-search-card h2 {
    max-width: 24ch;
}

.gp-place-search-help {
    max-width: 52ch;
}

/* ---------------------------------------------------------
   DISCUSSION / PAGE END
   --------------------------------------------------------- */

.gp-place-discussion-inner {
    padding-bottom: 22px !important;
}

.gp-place-page-end {
    padding-top: 11px !important;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-about-copy {
        max-width: none;
    }

    .gp-place-vintage .gp-place-vintage-grid,
    .gp-place-vintage .gp-place-vintage-more-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .gp-place-vintage .gp-place-vintage-image {
        max-width: 100% !important;
        max-height: 460px !important;
    }

    .gp-place-search-card {
        min-height: 0;
    }
}

/* ---------------------------------------------------------
   PRINT
   --------------------------------------------------------- */

@media print {
    .gp-place-about-copy,
    .gp-place-history-card,
    .gp-place-ancestry-card {
        max-width: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 46
   Sticky section navigation for long Place pages
   ZERO ASPX/VB changes.
   ========================================================= */

/*
   Places pages are still intentionally rich, even after collapsing
   Vintage and History archives. On desktop/tablet, keep the section
   jump navigation available while scrolling.
*/

@media (min-width: 761px) {
    .gp-place-profile .gp-place-section-nav {
        position: sticky;
        top: 8px;
        z-index: 20;
        margin-left: -10px !important;
        margin-right: -10px !important;
        padding: 9px 10px !important;
        border: 1px solid #d9e1da !important;
        border-radius: 8px;
        background: rgba(248, 251, 247, .96) !important;
        box-shadow: 0 4px 14px rgba(35, 69, 50, .055);
        backdrop-filter: blur(6px);
    }

    .gp-place-profile .gp-place-section-nav a {
        background: #fff !important;
    }
}

/* If backdrop-filter is unavailable, the opaque background still works. */
@supports not (backdrop-filter: blur(6px)) {
    @media (min-width: 761px) {
        .gp-place-profile .gp-place-section-nav {
            background: #f8fbf7 !important;
        }
    }
}

/* Mobile keeps the current non-sticky grid to preserve vertical space. */
@media (max-width: 760px) {
    .gp-place-profile .gp-place-section-nav {
        position: static !important;
        top: auto !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
    }
}

/* Print should never inherit sticky behavior. */
@media print {
    .gp-place-profile .gp-place-section-nav {
        position: static !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 47
   Section landmarks + heading targets
   ========================================================= */

/*
   Major research areas now expose accessible region names through
   aria-labelledby. This is intentionally visual-neutral.
*/

#gp-place-about-heading,
#gp-place-vintage-heading,
#gp-place-history-heading,
#gp-place-ancestry-heading,
#gp-place-search-heading,
#gp-place-discussion-heading {
    scroll-margin-top: 116px;
}

/* Preserve current print/page-break behavior for labeled section headings. */
@media print {
    #gp-place-about-heading,
    #gp-place-vintage-heading,
    #gp-place-history-heading,
    #gp-place-ancestry-heading,
    #gp-place-search-heading,
    #gp-place-discussion-heading {
        page-break-after: avoid;
        break-after: avoid-page;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 48
   VINTAGE GRID ROOT FIX
   Removes the legacy .flex-container conflict entirely.
   ========================================================= */

/*
   IMPORTANT:
   gp-place-vintage-grid is no longer also a .flex-container in Details.aspx.
   This prevents legacy site flex rules from overriding the gallery.
*/

/* First six visible archive items */
#vintage .gp-place-vintage-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    grid-auto-columns: auto !important;
    gap: 26px !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: start !important;
}

/* Expanded archive uses exactly the same two-column geometry. */
#vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    gap: 26px !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
}

/* Each generated image item must occupy ONE grid cell, never a full row. */
#vintage .gp-place-vintage-card {
    display: block !important;
    grid-column: auto !important;
    grid-row: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 16px !important;
    box-sizing: border-box !important;
}

/* The Show More disclosure itself intentionally spans both columns. */
#vintage .gp-place-vintage-grid > .gp-place-vintage-more {
    grid-column: 1 / -1 !important;
    width: 100% !important;
}

/* Large archival images fill their individual half-width cards. */
#vintage .gp-place-vintage-card .gp-place-vintage-picture {
    display: block !important;
    width: 100% !important;
}

#vintage .gp-place-vintage-card .gp-place-vintage-image {
    display: block !important;
    width: 100% !important;
    max-width: 700px !important;
    height: auto !important;
    max-height: 700px !important;
    margin: 0 auto 12px !important;
    object-fit: contain !important;
}

/* Tablet stays two columns. */
@media (max-width: 900px) and (min-width: 701px) {
    #vintage .gp-place-vintage-grid,
    #vintage .gp-place-vintage-more-grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        gap: 16px !important;
    }

    #vintage .gp-place-vintage-card .gp-place-vintage-image {
        max-height: 440px !important;
    }
}

/* Mobile is exactly one column. */
@media (max-width: 700px) {
    #vintage .gp-place-vintage-grid,
    #vintage .gp-place-vintage-more-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 14px !important;
    }

    #vintage .gp-place-vintage-card .gp-place-vintage-image {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 460px !important;
    }

    #vintage .gp-place-vintage-grid > .gp-place-vintage-more {
        grid-column: auto !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 49
   Research Grid ROOT Cleanup
   Removes legacy .flex-container conflicts from History,
   Ancestry, and Search, just as Pass 48 did for Vintage.
   ========================================================= */

/* ---------------------------------------------------------
   HISTORY STREAM
   --------------------------------------------------------- */

#history .gp-place-history-stream,
#history .gp-place-history-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px 18px !important;
    align-items: start !important;
    width: 100% !important;
}

#history .gp-place-history-item {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    grid-column: auto !important;
}

#history .gp-place-history-video,
#history .gp-place-history-ad {
    grid-column: 1 / -1 !important;
}

/* ---------------------------------------------------------
   ANCESTRY GRID
   --------------------------------------------------------- */

#ancestry .gp-place-section-inner {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px 16px !important;
    align-items: start !important;
}

#ancestry .gp-place-section-eyebrow,
#ancestry .gp-place-section-inner > h2,
#ancestry .gp-place-ancestry-intro {
    grid-column: 1 / -1 !important;
}

#ancestry .gp-place-ancestry-row {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

#ancestry .gp-place-ancestry-card {
    width: 100% !important;
    height: auto !important;
    min-height: 100%;
}

/* ---------------------------------------------------------
   SEARCH GRID
   --------------------------------------------------------- */

#place-search .gp-place-search-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

#place-search .gp-place-search-card {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 760px) {
    #history .gp-place-history-stream,
    #history .gp-place-history-more-grid,
    #ancestry .gp-place-section-inner,
    #place-search .gp-place-search-grid {
        grid-template-columns: 1fr !important;
    }

    #history .gp-place-history-video,
    #history .gp-place-history-ad,
    #ancestry .gp-place-section-eyebrow,
    #ancestry .gp-place-section-inner > h2,
    #ancestry .gp-place-ancestry-intro {
        grid-column: auto !important;
    }

    #ancestry .gp-place-ancestry-card {
        min-height: 0;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 50
   Card ROOT Cleanup
   Removes legacy flex-item classes from V2 grid cards.
   ========================================================= */

/*
   Pass 48 removed the root flex conflict from Vintage.
   Pass 49 removed it from the History/Ancestry/Search grid wrappers.
   This pass removes the remaining legacy flex-item classes from the
   actual V2 cards inside those grids.
*/

/* Search cards */
#place-search .gp-place-search-card {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

/* Ancestry cards */
#ancestry .gp-place-ancestry-card {
    display: flex !important;
    flex-direction: column;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

/* History cards */
#history .gp-place-history-card {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

/* The History ad's inner legacy item remains intentionally untouched because
   Adsense scripts can be sensitive to unexpected wrapper changes. */

/* ---------------------------------------------------------
   DESKTOP GRID AUTHORITY
   --------------------------------------------------------- */

@media (min-width: 761px) {
    #history .gp-place-history-stream,
    #history .gp-place-history-more-grid,
    #ancestry .gp-place-section-inner,
    #place-search .gp-place-search-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 760px) {
    #history .gp-place-history-stream,
    #history .gp-place-history-more-grid,
    #ancestry .gp-place-section-inner,
    #place-search .gp-place-search-grid {
        grid-template-columns: 1fr !important;
    }

    #ancestry .gp-place-ancestry-card {
        min-height: 0 !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 51
   V2 Wrapper ROOT Cleanup
   Removes remaining legacy flex-container / flex-item classes
   from the modernized About, Vintage, History, Ancestry,
   Discussion, and video shells.
   ========================================================= */

/* ---------------------------------------------------------
   V2 OUTER WRAPPERS
   --------------------------------------------------------- */

#about.gp-place-story-callout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: 18px;
    align-items: start;
}

#vintage.gp-place-section,
#history.gp-place-section,
#ancestry.gp-place-section {
    display: block !important;
    width: min(1240px, calc(100% - 32px)) !important;
}

#discussion.gp-place-discussion {
    display: block !important;
}

/* ---------------------------------------------------------
   V2 SECTION INNERS
   --------------------------------------------------------- */

.gp-place-section-inner,
.gp-place-story-callout-inner,
.gp-place-about-media,
.gp-place-discussion-inner {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

/* ---------------------------------------------------------
   VIDEO SHELLS
   --------------------------------------------------------- */

.gp-place-video-shell {
    display: block !important;
    width: min(100%, 760px) !important;
    min-width: 0 !important;
    max-width: 760px !important;
    margin: 0 auto !important;
}

/* ---------------------------------------------------------
   VINTAGE CARD
   Keep Pass 48 authoritative after removing the final legacy
   flex-item class from the generated card template.
   --------------------------------------------------------- */

#vintage .gp-place-vintage-card {
    display: block !important;
    grid-column: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 16px !important;
    box-sizing: border-box !important;
    border: 1px solid #d9e1da !important;
    border-radius: 9px !important;
    background: #fff !important;
}

/* Reassert the now-conflict-free Vintage geometry. */
#vintage .gp-place-vintage-grid,
#vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 26px !important;
    align-items: start !important;
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 900px) {
    #about.gp-place-story-callout {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 700px) {
    #vintage .gp-place-vintage-grid,
    #vintage .gp-place-vintage-more-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    #vintage.gp-place-section,
    #history.gp-place-section,
    #ancestry.gp-place-section {
        width: calc(100% - 14px) !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 52
   Control + Surface Consistency
   ZERO ASPX/VB changes.
   ========================================================= */

/* ---------------------------------------------------------
   SHARED ACTION LANGUAGE
   Make the small action controls across Places feel related.
   --------------------------------------------------------- */

.gp-place-title-tools .gp-place-tool,
.gp-place-preprofile-family,
.gp-place-about-more > a,
.gp-place-history-more-link,
.gp-place-media-action,
.gp-place-search-card input[type="submit"] {
    border-radius: 6px !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
}

.gp-place-title-tools .gp-place-tool,
.gp-place-preprofile-family,
.gp-place-about-more > a,
.gp-place-history-more-link,
.gp-place-media-action {
    border-color: #d3ddd5 !important;
    background: #f7faf6 !important;
    color: #315a40 !important;
}

.gp-place-title-tools .gp-place-tool:hover,
.gp-place-preprofile-family:hover,
.gp-place-about-more > a:hover,
.gp-place-history-more-link:hover,
.gp-place-media-action:hover {
    border-color: #bdcbbf !important;
    background: #eaf1e9 !important;
    color: #234b31 !important;
}

/* Primary family CTA remains intentionally stronger. */
.gp-place-family-cta a,
.gp-place-search-card input[type="submit"] {
    border-color: #315f3e !important;
    background: #315f3e !important;
    color: #fff !important;
}

.gp-place-family-cta a:hover,
.gp-place-search-card input[type="submit"]:hover {
    border-color: #254d32 !important;
    background: #254d32 !important;
}

/* ---------------------------------------------------------
   CARD SURFACES
   --------------------------------------------------------- */

.gp-place-story-callout-inner,
.gp-place-about-media,
#vintage .gp-place-vintage-card,
#history .gp-place-history-card,
#ancestry .gp-place-ancestry-card,
#place-search .gp-place-search-card {
    border-width: 1px !important;
    border-style: solid !important;
    border-color: #d9e1da !important;
    border-radius: 9px !important;
    box-shadow: none !important;
}

/* Keep section cards airy without looking like dashboard widgets. */
.gp-place-story-callout-inner,
#history .gp-place-history-card,
#ancestry .gp-place-ancestry-card,
#place-search .gp-place-search-card {
    background: #fff !important;
}

.gp-place-about-media,
#ancestry .gp-place-ancestry-resources {
    background: #fafbf9 !important;
}

/* ---------------------------------------------------------
   SECTION HEADING CONSISTENCY
   --------------------------------------------------------- */

.gp-place-story-callout-inner > h2,
.gp-place-section-inner > h2,
.gp-place-search-section > h2,
.gp-place-discussion-inner > h2 {
    color: #234532 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-weight: 700 !important;
    letter-spacing: -.01em !important;
}

.gp-place-section-eyebrow,
.gp-place-search-card-label,
.gp-place-ancestry-label,
.gp-place-media-label {
    color: #7b683b !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-weight: 800 !important;
    letter-spacing: .11em !important;
    text-transform: uppercase !important;
}

/* ---------------------------------------------------------
   DISCLOSURE BUTTONS
   --------------------------------------------------------- */

.gp-place-vintage-more > summary,
.gp-place-history-more > summary {
    border-color: #cbd6cd !important;
    background: #f5f8f4 !important;
    color: #315a40 !important;
}

.gp-place-extras-disclosure > summary,
.gp-place-seasonal-reading > summary,
.gp-place-related-reading > summary {
    border-color: #dce2dd !important;
    background: #fafbf9 !important;
    color: #66736a !important;
}

/* ---------------------------------------------------------
   SPACING BETWEEN MODERNIZED SECTIONS
   --------------------------------------------------------- */

#about,
#vintage,
#history,
#ancestry,
#place-search,
#discussion {
    margin-top: 24px !important;
    margin-bottom: 24px !important;
}

#about:first-of-type {
    margin-top: 20px !important;
}

/* ---------------------------------------------------------
   VINTAGE FINAL AUTHORITY
   Preserve the fixed root-level solution from Pass 48/51.
   --------------------------------------------------------- */

#vintage .gp-place-vintage-grid,
#vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 26px !important;
    align-items: start !important;
}

#vintage .gp-place-vintage-card {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
}

#vintage .gp-place-vintage-image {
    width: 100% !important;
    max-width: 700px !important;
    height: auto !important;
    max-height: 700px !important;
    object-fit: contain !important;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 760px) {
    #about,
    #vintage,
    #history,
    #ancestry,
    #place-search,
    #discussion {
        margin-top: 20px !important;
        margin-bottom: 20px !important;
    }

    #vintage .gp-place-vintage-grid,
    #vintage .gp-place-vintage-more-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    #vintage .gp-place-vintage-image {
        max-width: 100% !important;
        max-height: 460px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 53
   Mobile hardening after grid/card root cleanup
   ZERO ASPX/VB changes.
   ========================================================= */

/*
   Passes 48-51 removed legacy flex behavior from the V2 grids/cards.
   This pass makes the small-screen behavior completely explicit so
   those root fixes remain comfortable on phones and narrow tablets.
*/

/* ---------------------------------------------------------
   TABLET
   --------------------------------------------------------- */

@media (max-width: 900px) and (min-width: 701px) {
    #about.gp-place-story-callout {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    #history .gp-place-history-stream,
    #history .gp-place-history-more-grid,
    #ancestry .gp-place-section-inner,
    #place-search .gp-place-search-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    /* Vintage intentionally remains 2 columns on tablet. */
    #vintage .gp-place-vintage-grid,
    #vintage .gp-place-vintage-more-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 16px !important;
    }
}

/* ---------------------------------------------------------
   PHONE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    #about,
    #vintage,
    #history,
    #ancestry,
    #place-search,
    #discussion {
        width: calc(100% - 14px) !important;
        max-width: none !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    /* Every modern research grid becomes exactly one column. */
    #vintage .gp-place-vintage-grid,
    #vintage .gp-place-vintage-more-grid,
    #history .gp-place-history-stream,
    #history .gp-place-history-more-grid,
    #ancestry .gp-place-section-inner,
    #place-search .gp-place-search-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 13px !important;
    }

    /* About columns stack cleanly. */
    #about.gp-place-story-callout {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    /* Cards should never preserve desktop minimum widths. */
    #vintage .gp-place-vintage-card,
    #history .gp-place-history-item,
    #history .gp-place-history-card,
    #ancestry .gp-place-ancestry-row,
    #ancestry .gp-place-ancestry-card,
    #place-search .gp-place-search-card,
    .gp-place-story-callout-inner,
    .gp-place-about-media {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        box-sizing: border-box !important;
    }

    /* Keep padding useful without stealing too much phone width. */
    #vintage .gp-place-vintage-card,
    #history .gp-place-history-card,
    #ancestry .gp-place-ancestry-card,
    #place-search .gp-place-search-card,
    .gp-place-story-callout-inner,
    .gp-place-about-media {
        padding: 15px !important;
    }

    /* Vintage remains one large image per row. */
    #vintage .gp-place-vintage-image {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: 460px !important;
    }

    /* Videos/maps never exceed their card. */
    .gp-place-video-shell,
    .gp-place-video-ratio,
    .gp-place-video-frame,
    .gp-place-map-frame,
    .gp-place-about-media iframe {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Inputs/buttons are finger-friendly and cannot overflow. */
    #place-search input[type="text"],
    #place-search input[type="search"],
    #place-search input[type="number"],
    #place-search select,
    #place-search textarea,
    #place-search input[type="submit"],
    #place-search button {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 42px;
        box-sizing: border-box !important;
    }

    /* Expanded archive controls should not become cramped. */
    .gp-place-vintage-more > summary,
    .gp-place-history-more > summary,
    .gp-place-extras-disclosure > summary,
    .gp-place-seasonal-reading > summary,
    .gp-place-related-reading > summary {
        width: 100%;
        box-sizing: border-box;
    }
}

/* ---------------------------------------------------------
   VERY SMALL PHONES
   --------------------------------------------------------- */

@media (max-width: 390px) {
    #about,
    #vintage,
    #history,
    #ancestry,
    #place-search,
    #discussion {
        width: calc(100% - 10px) !important;
    }

    #vintage .gp-place-vintage-card,
    #history .gp-place-history-card,
    #ancestry .gp-place-ancestry-card,
    #place-search .gp-place-search-card,
    .gp-place-story-callout-inner,
    .gp-place-about-media {
        padding: 13px !important;
    }

    .gp-place-profile .gp-place-title {
        font-size: 1.7rem !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 54
   Optional Extras ROOT Cleanup
   Removes the last V2/legacy flex collision in the gift/resource area.
   ========================================================= */

/* ---------------------------------------------------------
   OPTIONAL GIFTS / RESOURCES
   --------------------------------------------------------- */

.gp-place-gifts-grid {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.gp-place-gifts .gp-place-gifts-inner {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 14px 16px 16px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

/*
   Product links are still generated by legacy server-side strings using
   flex-item-green-no-border. Since the entire block is optional/collapsed,
   keep the generated markup intact and neutralize its old layout in CSS.
*/
.gp-place-gifts-inner .flex-item-green-no-border {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 0 9px !important;
    padding: 11px 12px !important;
    border: 1px solid #e0e5df !important;
    border-radius: 6px !important;
    background: #fff !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    font-size: .83rem;
    line-height: 1.5;
}

.gp-place-gifts-inner .flex-item-green-no-border:last-child {
    margin-bottom: 0 !important;
}

/* Keep optional shopping links visually subordinate to research links. */
.gp-place-gifts-inner .flex-item-green-no-border a {
    color: #5f6e64 !important;
    font-weight: 650 !important;
}

/* ---------------------------------------------------------
   SEASONAL PRODUCT ROWS
   These retain their original server-side markup, but the legacy
   flex sizing is neutralized inside the collapsed seasonal disclosure.
   --------------------------------------------------------- */

.gp-place-seasonal-gifts .flex-container {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px !important;
    width: 100% !important;
    max-width: none !important;
}

.gp-place-seasonal-gifts .flex-item-green-no-border {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-seasonal-gifts .flex-container {
        grid-template-columns: 1fr !important;
    }

    .gp-place-gifts .gp-place-gifts-inner {
        padding: 12px !important;
    }
}

/* ---------------------------------------------------------
   PRINT
   Optional commerce remains absent from research printouts.
   --------------------------------------------------------- */

@media print {
    .gp-place-gifts-grid,
    .gp-place-seasonal-gifts {
        display: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 55
   Vintage caption + share-control cleanup
   ========================================================= */

/* ---------------------------------------------------------
   VINTAGE PLACE / SOURCE
   --------------------------------------------------------- */

#vintage .gp-place-vintage-place {
    margin-top: 2px;
    color: #344d3c;
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.4;
}

#vintage .gp-place-vintage-source {
    margin-top: 7px !important;
    padding-top: 7px !important;
}

/* ---------------------------------------------------------
   VINTAGE SHARE ROW
   Keep social controls available without letting them dominate
   the archival card.
   --------------------------------------------------------- */

#vintage .gp-place-vintage-share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    min-height: 26px;
    margin: 10px 0 9px;
    padding-top: 8px;
    border-top: 1px solid #e7eae7;
}

#vintage .gp-place-pinterest-share {
    display: inline-flex;
    align-items: center;
    width: auto !important;
    text-decoration: none !important;
}

#vintage .gp-place-pinterest-share img {
    display: block !important;
    width: auto !important;
    max-width: 40px !important;
    height: 20px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

#vintage .gp-place-facebook-share {
    display: block;
    width: 77px !important;
    min-width: 77px !important;
    max-width: 77px !important;
    height: 20px !important;
    min-height: 20px !important;
    margin: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
}

/* The description begins cleanly below sharing controls. */
#vintage .gp-place-vintage-share + br {
    display: none !important;
}

/* ---------------------------------------------------------
   AUTHORITATIVE VINTAGE LAYOUT
   --------------------------------------------------------- */

#vintage .gp-place-vintage-grid,
#vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 26px !important;
    align-items: start !important;
}

@media (max-width: 700px) {
    #vintage .gp-place-vintage-grid,
    #vintage .gp-place-vintage-more-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    #vintage .gp-place-vintage-share {
        margin-top: 9px;
        margin-bottom: 8px;
    }
}

@media print {
    #vintage .gp-place-vintage-share {
        display: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 56
   Ancestry content cleanup
   ========================================================= */

/* ---------------------------------------------------------
   ANCESTRY SUMMARY COPY
   --------------------------------------------------------- */

#ancestry .gp-place-ancestry-summary {
    margin: 0 0 12px !important;
    color: #4c5d52;
    font-size: .9rem;
    line-height: 1.55;
}

#ancestry .gp-place-ancestry-summary strong {
    color: #294b35;
}

/* ---------------------------------------------------------
   PRIMARY ANCESTRY ACTIONS
   --------------------------------------------------------- */

#ancestry .gp-place-ancestry-action {
    display: inline-flex !important;
    align-items: center;
    align-self: flex-start;
    min-height: 34px;
    margin-top: auto;
    padding: 6px 10px;
    border: 1px solid #cfd9d1;
    border-radius: 6px;
    background: #f5f8f4;
    color: #315a40 !important;
    font-size: .8rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
}

#ancestry .gp-place-ancestry-action:hover {
    border-color: #bccabd;
    background: #eaf1e9;
    color: #234b31 !important;
}

/* ---------------------------------------------------------
   CEMETERIES
   --------------------------------------------------------- */

#ancestry .gp-place-ancestry-cemeteries {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
}

#ancestry .gp-place-cemetery-link {
    display: inline-flex !important;
    align-items: center;
    margin: 3px 0 !important;
    padding: 5px 8px;
    border: 1px solid #d7dfd8;
    border-radius: 5px;
    background: #f8faf7;
    color: #315a40 !important;
    font-size: .84rem;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none !important;
}

#ancestry .gp-place-cemetery-link:hover {
    background: #eef3ed;
    border-color: #c7d2c9;
}

/* ---------------------------------------------------------
   RESEARCH RESOURCES
   --------------------------------------------------------- */

#ancestry .gp-place-resource-item {
    padding: 7px 0;
    border-bottom: 1px solid #e6eae6;
    color: #526158;
    font-size: .86rem;
    line-height: 1.5;
}

#ancestry .gp-place-resource-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    #ancestry .gp-place-ancestry-action {
        width: 100%;
        min-height: 40px;
        justify-content: center;
        box-sizing: border-box;
    }

    #ancestry .gp-place-cemetery-link {
        width: 100%;
        box-sizing: border-box;
    }
}

/* ---------------------------------------------------------
   PRINT
   --------------------------------------------------------- */

@media print {
    #ancestry .gp-place-ancestry-action {
        display: none !important;
    }

    #ancestry .gp-place-cemetery-link {
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        text-decoration: underline !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 57
   History content cleanup
   ========================================================= */

#history .gp-place-history-title {
    margin: 0 0 9px;
    color: #294b35;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.04rem;
    font-weight: 700;
    line-height: 1.35;
}

#history .gp-place-history-description {
    margin: 0 0 10px;
    color: #46574c;
    font-size: .9rem;
    line-height: 1.58;
}

#history .gp-place-history-description p {
    margin: 0 0 9px;
}

#history .gp-place-history-description p:last-child {
    margin-bottom: 0;
}

#history .gp-place-history-person {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin-top: 11px;
    padding-top: 9px;
    border-top: 1px solid #e4e8e4;
    color: #66736a;
    font-size: .8rem;
    line-height: 1.4;
}

#history .gp-place-history-person a {
    color: #315a40 !important;
    font-weight: 700 !important;
}

#history .gp-place-history-person .smallimage {
    width: auto !important;
    max-width: 75px !important;
    max-height: 75px !important;
    margin: 0 0 0 auto !important;
    border-radius: 6px;
}

#history .gp-place-history-card {
    padding: 17px 18px !important;
}

#history .gp-place-history-card > :last-child {
    margin-bottom: 0 !important;
}

@media (max-width: 700px) {
    #history .gp-place-history-title {
        font-size: 1rem;
    }

    #history .gp-place-history-description {
        font-size: .88rem;
        line-height: 1.55;
    }

    #history .gp-place-history-person {
        align-items: flex-start;
    }

    #history .gp-place-history-person .smallimage {
        margin-left: 0 !important;
    }
}

@media print {
    #history .gp-place-history-title {
        color: #000 !important;
        font-size: 11pt !important;
    }

    #history .gp-place-history-description {
        color: #000 !important;
        font-size: 9.5pt !important;
    }

    #history .gp-place-history-person {
        color: #333 !important;
        font-size: 8.5pt !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 58
   Search Form Finish
   ========================================================= */

/* ---------------------------------------------------------
   PLACE SEARCH ACTION
   --------------------------------------------------------- */

#place-search .gp-place-search-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 11px;
}

/* ---------------------------------------------------------
   BOTH SEARCH FORMS
   --------------------------------------------------------- */

#place-search input[type="text"],
#place-search input[type="search"],
#place-search input[type="number"],
#place-search select {
    min-height: 39px;
    padding: 7px 9px;
    border: 1px solid #cfd8d1;
    border-radius: 5px;
    background: #fff;
    color: #34493a;
    font: inherit;
    box-sizing: border-box;
}

#place-search input::placeholder {
    color: #89928c;
    opacity: 1;
}

#place-search select {
    cursor: pointer;
}

/* Submit buttons share one clear primary action treatment. */
#place-search input[type="submit"] {
    min-height: 38px;
    padding: 7px 14px;
    border: 1px solid #315f3e !important;
    border-radius: 6px;
    background: #315f3e !important;
    color: #fff !important;
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer;
}

#place-search input[type="submit"]:hover {
    border-color: #254d32 !important;
    background: #254d32 !important;
}

/* ---------------------------------------------------------
   CARD BALANCE
   --------------------------------------------------------- */

#place-search .gp-place-search-card {
    align-self: stretch !important;
}

#place-search .gp-place-search-by-place form,
#place-search .gp-place-search-by-name form {
    margin: 0;
}

#place-search .gp-place-search-store {
    margin-top: 16px;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    #place-search .gp-place-search-actions {
        display: block;
    }

    #place-search .gp-place-search-actions input[type="submit"],
    #place-search .gp-place-search-submit input[type="submit"] {
        width: 100% !important;
        min-height: 42px;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 59
   Upper Page Shell ROOT Cleanup
   Removes a legacy flex wrapper from the entire pre-profile/profile area.
   ========================================================= */

/*
   The old structure wrapped the upper Places page in:
       .flex-container
           .flex-item-no-border-centered

   Those classes could still inject flex widths/alignment around the profile
   and the related/seasonal disclosures. Details.aspx now uses dedicated V2
   shell classes instead, while retaining the exact same opening/closing divs.
*/

.gp-place-page-shell {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.gp-place-page-shell-inner {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-align: left !important;
}

/* Keep upper-page extras and profile aligned to the same V2 canvas. */
.gp-place-page-shell-inner > .gp-place-preprofile-tools,
.gp-place-page-shell-inner > .gp-place-related-reading,
.gp-place-page-shell-inner > .gp-place-seasonal-reading,
.gp-place-page-shell-inner > .gp-place-profile {
    margin-left: auto !important;
    margin-right: auto !important;
}

/* The About image no longer relies on trailing BR tags for separation. */
.gp-place-story-callout-inner a:has(> .gp-place-about-image) {
    display: inline-block;
    margin-bottom: 10px;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-page-shell,
    .gp-place-page-shell-inner {
        width: 100% !important;
    }

    .gp-place-story-callout-inner a:has(> .gp-place-about-image) {
        display: block;
        margin-bottom: 12px;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 60
   Reading Blocks ROOT Cleanup
   Removes legacy flex classes from Related + Seasonal Reading.
   ========================================================= */

/* ---------------------------------------------------------
   SHARED READING ROWS
   --------------------------------------------------------- */

.gp-place-related-reading-inner .gp-place-reading-row,
.gp-place-seasonal-reading-inner .gp-place-reading-row {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.gp-place-related-reading-inner .gp-place-reading-item,
.gp-place-seasonal-reading-inner .gp-place-reading-item {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 7px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #e7ebe7 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #5d6961;
    font-size: .82rem;
    line-height: 1.5;
    box-sizing: border-box !important;
}

.gp-place-related-reading-inner .gp-place-reading-item:last-child,
.gp-place-seasonal-reading-inner .gp-place-reading-item:last-child {
    border-bottom: 0 !important;
}

/* Links are now naturally separated by line height rather than old flex sizing. */
.gp-place-related-reading-inner .gp-place-reading-item a,
.gp-place-seasonal-reading-inner .gp-place-reading-item a {
    color: #50655a !important;
    font-weight: 650;
    text-underline-offset: 3px;
}

/* Reduce legacy BR inflation inside the compact disclosure list. */
.gp-place-related-reading-inner .gp-place-reading-item br + br,
.gp-place-seasonal-reading-inner .gp-place-reading-item br + br {
    display: block;
    content: "";
    margin-top: 4px;
}

/* Amazon/product-support links remain tertiary. */
.gp-place-related-reading-inner .gp-place-reading-item a[href*="amazon"],
.gp-place-related-reading-inner .gp-place-reading-item a[href*="amzn.to"],
.gp-place-seasonal-reading-inner .gp-place-reading-item a[href*="amazon"],
.gp-place-seasonal-reading-inner .gp-place-reading-item a[href*="amzn.to"] {
    color: #747e77 !important;
    font-weight: 550;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-related-reading-inner .gp-place-reading-item,
    .gp-place-seasonal-reading-inner .gp-place-reading-item {
        padding-top: 8px !important;
        padding-bottom: 8px !important;
        font-size: .8rem;
    }
}

/* ---------------------------------------------------------
   PRINT
   These optional reading blocks remain excluded from research printouts.
   --------------------------------------------------------- */

@media print {
    .gp-place-related-reading,
    .gp-place-seasonal-reading {
        display: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 61
   Seasonal / Optional Gift ROOT Cleanup
   Removes the last legacy flex classes from commerce cards.
   ========================================================= */

/* ---------------------------------------------------------
   SEASONAL GIFT GRID
   --------------------------------------------------------- */

.gp-place-seasonal-gift-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: 14px;
    box-sizing: border-box;
}

.gp-place-seasonal-gift-card {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 11px 12px !important;
    border: 1px solid #e0e5df !important;
    border-radius: 7px;
    background: #fff !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    color: #606b63;
    font-size: .82rem;
    line-height: 1.45;
    text-align: center;
}

.gp-place-seasonal-gift-card a {
    color: #5d6b62 !important;
    font-weight: 650;
    text-decoration: none !important;
}

.gp-place-seasonal-gift-card a:hover {
    color: #315a40 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.gp-place-seasonal-gift-card img {
    display: block;
    width: auto !important;
    max-width: 110px !important;
    height: auto !important;
    max-height: 110px !important;
    margin: 0 auto 7px !important;
    box-shadow: none !important;
}

.gp-place-seasonal-gift-card img[src*="buy_now"] {
    max-width: 75px !important;
    max-height: 30px !important;
    margin-top: 7px !important;
}

/* Store card can span the full optional-gift row. */
.gp-place-seasonal-gift-store {
    grid-column: 1 / -1;
}

/* ---------------------------------------------------------
   GENERAL OPTIONAL GIFT CARDS
   These are produced from server-side strings.
   --------------------------------------------------------- */

.gp-place-gifts-inner .gp-place-gift-card {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 0 9px !important;
    padding: 11px 12px !important;
    border: 1px solid #e0e5df !important;
    border-radius: 6px;
    background: #fff !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    color: #606b63;
    font-size: .83rem;
    line-height: 1.5;
}

.gp-place-gifts-inner .gp-place-gift-card:last-child {
    margin-bottom: 0 !important;
}

.gp-place-gifts-inner .gp-place-gift-card a {
    color: #5f6e64 !important;
    font-weight: 650 !important;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-place-seasonal-gift-grid {
        grid-template-columns: 1fr !important;
        padding: 12px;
    }

    .gp-place-seasonal-gift-store {
        grid-column: auto;
    }
}

/* ---------------------------------------------------------
   PRINT
   --------------------------------------------------------- */

@media print {
    .gp-place-seasonal-gift-grid,
    .gp-place-gifts-inner .gp-place-gift-card {
        display: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 62
   Dead spacer markup cleanup
   ========================================================= */

/*
   Details.aspx no longer emits white_spacer.jpg elements for layout.
   The old CSS hide rules remain harmless as a safety net for any
   spacer markup that might come from elsewhere on the site.
*/

.gp-place-store-image {
    display: block;
    width: auto !important;
    max-width: 100% !important;
    height: 36px !important;
    margin: 0 auto 7px !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* With spacer images gone, keep utility rows naturally compact. */
.gp-place-preprofile-tools,
.gp-place-title-tools {
    column-gap: 7px !important;
    row-gap: 7px !important;
}

/* ---------------------------------------------------------
   VINTAGE / RESEARCH LAYOUT SAFETY
   --------------------------------------------------------- */

#vintage .gp-place-vintage-grid,
#vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 63
   Presentational markup cleanup
   ========================================================= */

/* ---------------------------------------------------------
   FLAG
   Spacing is CSS-owned now; no &nbsp; needed after the image.
   --------------------------------------------------------- */

.gp-place-profile .gp-place-title > img {
    border: 0 !important;
    margin-right: 10px !important;
}

/* ---------------------------------------------------------
   HISTORY ACTION
   --------------------------------------------------------- */

#history .gp-place-history-more-link {
    margin-bottom: 0 !important;
}

/* ---------------------------------------------------------
   OPTIONAL GIFT LINKS
   --------------------------------------------------------- */

.gp-place-gift-links {
    display: grid;
    gap: 8px;
}

.gp-place-gift-links > a {
    display: block;
    padding: 4px 0;
}

.gp-place-gift-links > a + a {
    padding-top: 8px;
    border-top: 1px solid #e7ebe7;
}

/* ---------------------------------------------------------
   IFRAMES
   Borders are fully CSS-owned now.
   --------------------------------------------------------- */

.gp-place-map-frame,
.gp-place-facebook-share {
    border: 0 !important;
}

/* ---------------------------------------------------------
   VINTAGE AUTHORITATIVE LAYOUT
   --------------------------------------------------------- */

#vintage .gp-place-vintage-grid,
#vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 64
   Admin edit-action cleanup
   ========================================================= */

/*
   Admin-only edit icons no longer rely on leading <br> tags for placement.
   The icon remains familiar, but its footprint is intentionally compact so
   editing controls do not distort the public-facing card layout.
*/
.gp-place-admin-action {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-height: 28px;
    margin: 7px 0 3px;
}

.gp-place-admin-action > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 3px;
    border: 1px solid #d9e1da;
    border-radius: 6px;
    background: #f8faf7;
    box-sizing: border-box;
}

.gp-place-admin-action > a:hover {
    border-color: #bdcbbf;
    background: #eaf1e9;
}

.gp-place-admin-action img {
    display: block !important;
    width: auto !important;
    max-width: 24px !important;
    height: auto !important;
    max-height: 24px !important;
    margin: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}

@media (max-width: 700px) {
    .gp-place-admin-action {
        margin-top: 6px;
    }

    .gp-place-admin-action > a {
        width: 38px;
        height: 38px;
    }
}

@media print {
    .gp-place-admin-action {
        display: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 65
   Related / seasonal reading link polish
   ========================================================= */

/*
   The reading disclosures still contain some legacy <br> separators between
   links. Make the links themselves own the vertical rhythm so those breaks
   no longer create inconsistent spacing.
*/

.gp-place-related-reading-inner .gp-place-reading-item,
.gp-place-seasonal-reading-inner .gp-place-reading-item {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
}

.gp-place-related-reading-inner .gp-place-reading-item > a,
.gp-place-seasonal-reading-inner .gp-place-reading-item > a {
    display: block;
    padding: 5px 0;
    line-height: 1.45;
}

/* BRs now act only as harmless source separators; CSS controls spacing. */
.gp-place-related-reading-inner .gp-place-reading-item > br,
.gp-place-seasonal-reading-inner .gp-place-reading-item > br {
    display: none !important;
}

.gp-place-related-reading-inner .gp-place-reading-item > a + a,
.gp-place-seasonal-reading-inner .gp-place-reading-item > a + a {
    border-top: 1px solid #edf0ed;
}

.gp-place-related-reading-inner .gp-place-reading-item > a:hover,
.gp-place-seasonal-reading-inner .gp-place-reading-item > a:hover {
    color: #315a40 !important;
}

/* External reading links stay readable on phones without oversized tap blocks. */
@media (max-width: 700px) {
    .gp-place-related-reading-inner .gp-place-reading-item > a,
    .gp-place-seasonal-reading-inner .gp-place-reading-item > a {
        padding-top: 7px;
        padding-bottom: 7px;
    }
}

/* Keep the fixed Vintage layout untouched. */
#vintage .gp-place-vintage-grid,
#vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 66
   External link safety / focus consistency
   ========================================================= */

/* External links retain the same visual language as ordinary research links. */
#colMain a[target="_blank"]:focus-visible {
    outline: 3px solid #587d61 !important;
    outline-offset: 3px;
    border-radius: 4px;
}

/* Do not add visual external-link glyphs; many Places pages already contain
   dense archival/source link lists, and extra icons would add unnecessary noise. */


/* =========================================================
   GreenerPasture V2 - Places Details Pass 67
   Image loading polish
   ========================================================= */

/* Keep the contextual flag compact and aligned with the place title. */
.gp-place-profile .gp-place-title > img {
    flex: 0 0 auto;
}

/* Product/support imagery is optional and below the primary research content. */
.gp-place-seasonal-gift-card img[loading="lazy"],
.gp-place-gift-card img[loading="lazy"] {
    max-width: 100%;
    height: auto;
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 68
   Admin action consistency + form attribute cleanup
   ========================================================= */

.gp-place-admin-icon-link {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 34px;
    padding: 4px;
    border: 1px solid #d9e1da;
    border-radius: 6px;
    background: #f8faf7;
    box-sizing: border-box;
    text-decoration: none !important;
}

.gp-place-admin-icon-link:hover {
    border-color: #bdcbbf;
    background: #eaf1e9;
}

.gp-place-admin-icon-link:focus-visible {
    outline: 3px solid #587d61 !important;
    outline-offset: 3px;
}

.gp-place-admin-icon-link img {
    display: block !important;
    width: auto !important;
    max-width: 26px !important;
    height: auto !important;
    max-height: 26px !important;
    margin: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}

.gp-place-add-history .gp-place-admin-icon-link {
    flex: 0 0 auto;
}

/* CSS owns responsive search-control widths; old HTML size attributes are unnecessary. */
#place-search #autocomplete,
#place-search input[type="number"] {
    width: 100% !important;
    box-sizing: border-box;
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 69
   About media / YouTube cleanup
   ========================================================= */

.gp-place-video-ratio {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
}

.gp-place-video-ratio > .gp-place-video-frame {
    position: absolute;
    inset: 0;
    display: block;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    border: 0 !important;
}

.gp-place-video-caption {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px 12px;
    padding-top: 10px;
    color: #45564b;
    font-size: .86rem;
    line-height: 1.45;
}

.gp-place-video-caption > span:first-child {
    flex: 1 1 240px;
    font-weight: 700;
}

.gp-place-video-caption .gp-place-media-action {
    flex: 0 0 auto;
    margin-top: 0 !important;
}

.gp-place-about-media > .gp-place-media-label:not(:first-child) {
    margin-top: 18px;
}

@media (max-width: 700px) {
    .gp-place-video-caption {
        align-items: stretch;
    }

    .gp-place-video-caption > span:first-child {
        flex-basis: 100%;
    }

    .gp-place-video-caption .gp-place-media-action {
        width: 100%;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 70
   Vintage card markup cleanup
   ========================================================= */

#vintage .gp-place-vintage-picture {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
}

#vintage .gp-place-vintage-person {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
    padding-top: 9px;
    border-top: 1px solid #e5e9e5;
    color: #68746c;
    font-size: .8rem;
    line-height: 1.4;
}

#vintage .gp-place-vintage-person a {
    color: #315a40 !important;
    font-weight: 700 !important;
}

#vintage .gp-place-vintage-person .smallimage {
    width: auto !important;
    max-width: 72px !important;
    max-height: 72px !important;
    margin: 0 0 0 auto !important;
    border-radius: 6px;
}

@media (max-width: 700px) {
    #vintage .gp-place-vintage-person {
        align-items: flex-start;
    }

    #vintage .gp-place-vintage-person .smallimage {
        margin-left: 0 !important;
    }
}

/* Reassert established Vintage geometry. */
#vintage .gp-place-vintage-grid,
#vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 71
   History video + metadata cleanup
   ========================================================= */

/* ---------------------------------------------------------
   HISTORY VIDEO
   Ratio box now contains only the iframe.
   --------------------------------------------------------- */

#history .gp-place-history-video .gp-place-video-shell {
    width: min(100%, 760px) !important;
    margin: 0 auto !important;
}

#history .gp-place-history-video .gp-place-video-ratio {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
}

#history .gp-place-history-video .gp-place-video-frame {
    position: absolute;
    inset: 0;
    display: block;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    border: 0 !important;
}

#history .gp-place-history-video-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 9px;
}

#history .gp-place-history-video-actions .gp-place-media-action {
    margin-top: 0 !important;
}

/* ---------------------------------------------------------
   HISTORY METADATA
   --------------------------------------------------------- */

#history .gp-place-history-meta-line {
    display: block;
    padding: 2px 0;
}

#history .gp-place-history-meta-line + .gp-place-history-meta-line {
    border-top: 1px dotted #e3e7e3;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    #history .gp-place-history-video-actions {
        display: block;
    }

    #history .gp-place-history-video-actions .gp-place-media-action {
        width: 100%;
        box-sizing: border-box;
    }
}

/* ---------------------------------------------------------
   PRINT
   --------------------------------------------------------- */

@media print {
    #history .gp-place-history-video-actions {
        display: none !important;
    }
}

/* Preserve the established Vintage geometry. */
#vintage .gp-place-vintage-grid,
#vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 72
   Vintage description + seasonal gift markup cleanup
   ========================================================= */

/* ---------------------------------------------------------
   VINTAGE DESCRIPTION
   --------------------------------------------------------- */

#vintage .gp-place-vintage-description {
    margin-top: 9px;
    color: #46574c;
    font-size: .88rem;
    line-height: 1.56;
}

#vintage .gp-place-vintage-description:empty {
    display: none;
}

#vintage .gp-place-vintage-description-more {
    display: inline;
    margin-left: 3px;
    color: #315a40 !important;
    font-weight: 700;
    white-space: nowrap;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ---------------------------------------------------------
   SEASONAL GIFT CARDS
   BR-based title/CTA layout has been removed from Details.aspx.
   --------------------------------------------------------- */

.gp-place-seasonal-gift-card > a {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
}

.gp-place-seasonal-gift-title {
    display: block;
    color: #55635a;
    font-size: .82rem;
    font-weight: 650;
    line-height: 1.42;
    text-align: center;
}

.gp-place-seasonal-gift-card .gp-place-buy-now-image {
    display: block !important;
    width: 75px !important;
    max-width: 75px !important;
    height: 30px !important;
    max-height: 30px !important;
    margin: auto auto 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}

.gp-place-seasonal-gift-store .gp-place-store-image {
    margin-bottom: 0 !important;
}

/* ---------------------------------------------------------
   VINTAGE LAYOUT AUTHORITY
   --------------------------------------------------------- */

#vintage .gp-place-vintage-grid,
#vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 73
   Reading disclosure markup cleanup
   ========================================================= */

/*
   Related and seasonal reading lists are now BR-free.
   Links themselves define the row rhythm.
*/
.gp-place-related-reading-inner .gp-place-reading-item,
.gp-place-seasonal-reading-inner .gp-place-reading-item {
    display: grid;
    gap: 0;
    padding: 4px 0 !important;
}

.gp-place-related-reading-inner .gp-place-reading-item > a,
.gp-place-seasonal-reading-inner .gp-place-reading-item > a {
    display: block;
    padding: 8px 4px;
    border-radius: 5px;
    line-height: 1.45;
}

.gp-place-related-reading-inner .gp-place-reading-item > a + a,
.gp-place-seasonal-reading-inner .gp-place-reading-item > a + a {
    border-top: 1px solid #edf0ed;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.gp-place-related-reading-inner .gp-place-reading-item > a:hover,
.gp-place-seasonal-reading-inner .gp-place-reading-item > a:hover {
    background: #f5f8f4;
}

.gp-place-related-reading-inner .gp-place-reading-item > a:focus-visible,
.gp-place-seasonal-reading-inner .gp-place-reading-item > a:focus-visible {
    outline: 3px solid #587d61 !important;
    outline-offset: 2px;
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 74
   History ad-wrapper ROOT cleanup
   ========================================================= */

/*
   The two History Adsense wrapper DIVs no longer carry the final legacy
   flex-item-no-border class. Ad scripts and <ins class="adsbygoogle">
   markup are untouched.
*/
.gp-place-history-ad > .gp-place-history-ad-inner {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

.gp-place-history-ad > .gp-place-history-ad-inner .adsbygoogle {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
}

@media print {
    .gp-place-history-ad {
        display: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Places Details Pass 76
   Search semantics + stale-comment cleanup
   ========================================================= */

/* Real LABEL elements now replace the old visual-only label spans. */
#place-search label.gp-place-search-row-label {
    display: block;
    color: #4c5c51;
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.35;
    cursor: pointer;
}

/* Submit row no longer carries an empty label cell. */
#place-search .gp-place-search-submit {
    align-items: end;
}

#place-search .gp-place-search-submit > .formw {
    grid-column: 2;
}

@media (max-width: 700px) {
    #place-search .gp-place-search-submit > .formw {
        grid-column: auto;
    }
}

/* Preserve established Vintage geometry. */
#vintage .gp-place-vintage-grid,
#vintage .gp-place-vintage-more-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

@media (max-width: 700px) {
    #vintage .gp-place-vintage-grid,
    #vintage .gp-place-vintage-more-grid {
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors FamilyTree Pass 01
   Responsive pedigree redesign
   Scoped to .gp-family-tree so legacy family-tree layout
   cannot collide with the rest of the site.
   ========================================================= */

.gp-family-tree {
    width: min(1240px, calc(100% - 32px));
    margin: 24px auto 42px;
    color: #263c2e;
    font-family: Arial, Helvetica, sans-serif;
}

.gp-family-tree *,
.gp-family-tree *::before,
.gp-family-tree *::after {
    box-sizing: border-box;
}

/* ---------------------------------------------------------
   TOP NAV / HERO
   --------------------------------------------------------- */

.gp-family-tree-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin-bottom: 14px;
    font-size: .82rem;
}

.gp-family-tree-home-link,
.gp-family-tree-help {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 7px 10px;
    border: 1px solid #d5ddd6;
    border-radius: 7px;
    background: #f8faf7;
    color: #315a40 !important;
    font-weight: 700;
    text-decoration: none !important;
}

.gp-family-tree-home-link:hover,
.gp-family-tree-help:hover {
    background: #edf3ec;
    border-color: #c4d0c6;
}

.gp-family-tree-hero {
    margin-bottom: 22px;
    padding: 22px 24px;
    border: 1px solid #d6dfd7;
    border-left: 5px solid #315f3e;
    border-radius: 12px;
    background: linear-gradient(180deg, #fbfcfa 0%, #f5f8f4 100%);
}

.gp-family-tree-eyebrow,
.gp-family-tree-generation-kicker,
.gp-family-tree-branch-kicker {
    color: #806b38;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.gp-family-tree-hero h1 {
    margin: 5px 0 7px;
    color: #183e28;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.85rem, 3vw, 2.65rem);
    line-height: 1.12;
}

.gp-family-tree-hero p {
    max-width: 68ch;
    margin: 9px 0 0;
    color: #627066;
    font-size: .92rem;
    line-height: 1.55;
}

.gp-family-tree-subject-link {
    margin-top: 5px;
    font-size: .88rem;
}

.gp-family-tree-subject-link a {
    color: #315a40 !important;
    font-weight: 700;
}

.gp-family-tree-welcome {
    margin: 0 0 20px;
    padding: 14px 16px;
    border: 1px solid #e1d19a;
    border-left: 4px solid #a17c20;
    border-radius: 8px;
    background: #fff9e7;
    color: #5d4c20;
    font-size: .88rem;
    line-height: 1.55;
}

/* ---------------------------------------------------------
   GENERATION HEADINGS
   --------------------------------------------------------- */

.gp-family-tree-generation {
    min-width: 0;
}

.gp-family-tree-generation-heading {
    margin-bottom: 12px;
}

.gp-family-tree-generation-heading h2,
.gp-family-tree-generation-heading h3,
.gp-family-tree-branch-heading h2 {
    margin: 4px 0 0;
    color: #234532;
    font-family: Georgia, "Times New Roman", serif;
    line-height: 1.2;
}

.gp-family-tree-generation-heading h2 {
    font-size: 1.45rem;
}

.gp-family-tree-generation-heading h3 {
    font-size: 1.12rem;
}

.gp-family-tree-generation-heading-small {
    padding-bottom: 8px;
    border-bottom: 1px solid #e1e6e1;
}

/* ---------------------------------------------------------
   PARENTS
   --------------------------------------------------------- */

.gp-family-tree-parents {
    margin-bottom: 24px;
    padding: 19px;
    border: 1px solid #d7dfd8;
    border-radius: 11px;
    background: #fafbf9;
}

.gp-family-tree-parent-grid,
.gp-family-tree-couple {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr);
    align-items: stretch;
    gap: 8px;
}

/* ---------------------------------------------------------
   TWO MAIN FAMILY BRANCHES
   --------------------------------------------------------- */

.gp-family-tree-branches {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    align-items: start;
}

.gp-family-tree-branch {
    min-width: 0;
    padding: 20px;
    border: 1px solid #d3ded4;
    border-top: 4px solid #315f3e;
    border-radius: 12px;
    background: #f7faf6;
}

.gp-family-tree-maternal {
    border-top-color: #667c70;
}

.gp-family-tree-branch-heading {
    margin-bottom: 20px;
}

.gp-family-tree-branch-heading h2 {
    margin-top: 5px;
    font-size: 1.5rem;
}

.gp-family-tree-branch-heading p {
    margin: 7px 0 0;
    color: #6a766e;
    font-size: .84rem;
    line-height: 1.45;
}

.gp-family-tree-branch > .gp-family-tree-generation + .gp-family-tree-generation {
    margin-top: 24px;
}

/* ---------------------------------------------------------
   PERSON CARDS
   --------------------------------------------------------- */

.gp-family-tree-person {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 188px;
    padding: 13px;
    border: 1px solid #d9e1da;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(30, 64, 43, .035);
    text-align: left;
}

.gp-family-tree-role {
    margin-bottom: 8px;
    color: #7b683b;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.gp-family-tree-person-media:empty {
    display: none;
}

.gp-family-tree-person-media {
    margin-bottom: 5px;
}

.gp-family-tree-person-media img,
.gp-family-tree-person-body img {
    max-width: 100%;
    height: auto;
}

.gp-family-tree-person-body {
    min-width: 0;
    color: #44544a;
    font-size: .82rem;
    line-height: 1.48;
    overflow-wrap: anywhere;
}

.gp-family-tree-person-body > a,
.gp-family-tree-person-body a {
    color: #075b42 !important;
    font-weight: 700;
    text-decoration: none;
}

.gp-family-tree-person-body a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Existing legacy strings use font[size=-1] for dates. Normalize them here. */
.gp-family-tree-person-body font[size="-1"] {
    display: inline-block;
    margin-top: 4px;
    color: #657168 !important;
    font-size: .76rem !important;
    line-height: 1.4;
}

/* Existing helper output includes BR separators. Keep them compact inside cards. */
.gp-family-tree-person-body br {
    line-height: .6;
}

.gp-family-tree-person-body img {
    object-fit: contain;
}

/* Existing ADD ancestor strings still use <font color=blue>. Make them card-like. */
.gp-family-tree-person-body font[color="blue"] {
    display: inline-block;
    padding: 7px 9px;
    border: 1px dashed #9fb5a5;
    border-radius: 6px;
    background: #f3f7f2;
    color: #315a40 !important;
    font-size: .78rem !important;
    font-weight: 800;
    line-height: 1.35;
    text-transform: uppercase;
}

.gp-family-tree-unknown {
    display: inline-block;
    margin-top: 8px;
    color: #7a857d;
    font-size: .82rem;
    font-style: italic;
}

/* ---------------------------------------------------------
   MARRIAGE CONNECTORS
   --------------------------------------------------------- */

.gp-family-tree-marriage {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    color: #7c866f;
}

.gp-family-tree-marriage:empty {
    visibility: hidden;
}

.gp-family-tree-marriage br {
    display: none !important;
}

.gp-family-tree-marriage img {
    display: block;
    width: auto !important;
    max-width: 30px !important;
    height: auto !important;
    max-height: 24px !important;
    margin: 0 auto !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   GREAT-GRANDPARENT COUPLES
   --------------------------------------------------------- */

.gp-family-tree-great-couples {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

.gp-family-tree-couple-block {
    min-width: 0;
}

.gp-family-tree-couple-label {
    margin-bottom: 7px;
    color: #657168;
    font-size: .72rem;
    font-weight: 700;
}

.gp-family-tree-continue {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    align-self: flex-start;
    margin-top: auto;
    padding-top: 10px;
    color: #315a40 !important;
    font-size: .74rem;
    font-weight: 800;
    text-decoration: none !important;
}

.gp-family-tree-continue:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.gp-family-tree-note {
    margin-top: 22px;
    padding: 13px 15px;
    border: 1px solid #dfe5df;
    border-radius: 8px;
    background: #fafbf9;
    color: #657168;
    font-size: .82rem;
    line-height: 1.5;
}

/* ---------------------------------------------------------
   TABLET
   Keep paternal/maternal split until space gets genuinely tight.
   --------------------------------------------------------- */

@media (max-width: 1050px) {
    .gp-family-tree {
        width: min(100% - 22px, 1040px);
    }

    .gp-family-tree-branches {
        gap: 15px;
    }

    .gp-family-tree-branch {
        padding: 16px;
    }

    .gp-family-tree-parent-grid,
    .gp-family-tree-couple {
        grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1fr);
        gap: 6px;
    }

    .gp-family-tree-person {
        padding: 11px;
    }
}

/* ---------------------------------------------------------
   MOBILE
   Stack family branches. Within a branch, couples stay side by
   side on ordinary phones and stack on very narrow screens.
   --------------------------------------------------------- */

@media (max-width: 760px) {
    .gp-family-tree {
        width: calc(100% - 14px);
        margin-top: 14px;
        margin-bottom: 28px;
    }

    .gp-family-tree-toolbar {
        align-items: stretch;
    }

    .gp-family-tree-home-link,
    .gp-family-tree-help {
        width: 100%;
        justify-content: center;
    }

    .gp-family-tree-hero {
        padding: 18px 16px;
        margin-bottom: 16px;
    }

    .gp-family-tree-hero h1 {
        font-size: 1.8rem;
    }

    .gp-family-tree-parents,
    .gp-family-tree-branch {
        padding: 14px;
    }

    .gp-family-tree-branches {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .gp-family-tree-parent-grid,
    .gp-family-tree-couple {
        grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr);
        gap: 5px;
    }

    .gp-family-tree-person {
        min-height: 160px;
        padding: 10px;
    }

    .gp-family-tree-role {
        font-size: .62rem;
        letter-spacing: .055em;
    }

    .gp-family-tree-person-body {
        font-size: .78rem;
    }

    .gp-family-tree-branch-heading h2 {
        font-size: 1.35rem;
    }
}

@media (max-width: 500px) {
    .gp-family-tree-parent-grid,
    .gp-family-tree-couple {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .gp-family-tree-marriage {
        min-height: 26px;
    }

    .gp-family-tree-marriage:not(:empty)::before {
        content: "";
        width: 1px;
        height: 18px;
        background: #d3ddd4;
        margin-right: 7px;
    }

    .gp-family-tree-person {
        min-height: 0;
    }

    .gp-family-tree-person-body font[size="-1"] {
        display: block;
    }
}

/* ---------------------------------------------------------
   KEYBOARD / PRINT
   --------------------------------------------------------- */

.gp-family-tree a:focus-visible {
    outline: 3px solid #587d61 !important;
    outline-offset: 3px;
    border-radius: 4px;
}

@media print {
    .gp-family-tree-toolbar,
    .gp-family-tree-help,
    .gp-family-tree-continue,
    .gp-family-tree-note {
        display: none !important;
    }

    .gp-family-tree {
        width: 100%;
        margin: 0;
    }

    .gp-family-tree-branches {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .gp-family-tree-branch,
    .gp-family-tree-parents,
    .gp-family-tree-person {
        box-shadow: none !important;
        break-inside: avoid;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors FamilyTree Pass 02
   Visual refinement from live desktop screenshots
   ========================================================= */

/* ---------------------------------------------------------
   HERO
   Remove the feeling of a duplicated subject name.
   --------------------------------------------------------- */

.gp-family-tree-subject-link {
    margin-top: 8px !important;
}

.gp-family-tree-subject-link > a {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #315a40 !important;
    font-size: .82rem;
    font-weight: 800;
    text-decoration: none !important;
}

.gp-family-tree-subject-link > a:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

/* ---------------------------------------------------------
   LIGHTER PATERNAL / MATERNAL BRANCHES
   Let the genealogy cards carry the visual structure rather
   than placing each whole half inside a large green panel.
   --------------------------------------------------------- */

.gp-family-tree-branch {
    padding: 18px 0 0 !important;
    border: 0 !important;
    border-top: 4px solid #315f3e !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.gp-family-tree-maternal {
    border-top-color: #667c70 !important;
}

.gp-family-tree-branch-heading {
    padding: 0 2px 2px;
    margin-bottom: 17px !important;
}

.gp-family-tree-branch > .gp-family-tree-generation {
    padding: 0 2px;
}

/* ---------------------------------------------------------
   SOFTER GENERATION LABELS
   --------------------------------------------------------- */

.gp-family-tree-generation-kicker,
.gp-family-tree-branch-kicker {
    color: #8a7951 !important;
    font-size: .66rem !important;
    letter-spacing: .105em !important;
}

.gp-family-tree-generation-heading-small {
    margin-bottom: 10px !important;
    padding-bottom: 7px !important;
}

/* ---------------------------------------------------------
   COMPACT PERSON CARDS
   Remove forced vertical acreage while retaining clean pairs.
   --------------------------------------------------------- */

.gp-family-tree-person {
    min-height: 0 !important;
    padding: 12px !important;
}

.gp-family-tree-parents .gp-family-tree-person {
    min-height: 0 !important;
}

.gp-family-tree-parent-grid,
.gp-family-tree-couple {
    align-items: start !important;
    grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr) !important;
    gap: 4px !important;
}

.gp-family-tree-person-media {
    margin-bottom: 4px !important;
}

.gp-family-tree-person-body {
    line-height: 1.42 !important;
}

/* ---------------------------------------------------------
   TIGHTER MARRIAGE CONNECTIONS
   --------------------------------------------------------- */

.gp-family-tree-marriage {
    min-width: 28px !important;
    align-self: center;
}

.gp-family-tree-marriage img {
    max-width: 24px !important;
    max-height: 22px !important;
}

/* ---------------------------------------------------------
   MISSING ANCESTORS
   Make the existing Add Father / Add Mother links feel like
   intentional pedigree slots rather than floating blue text.
   --------------------------------------------------------- */

.gp-family-tree-person-body font[color="blue"] {
    display: block !important;
    width: 100%;
    padding: 9px 10px !important;
    border: 1px dashed #91aa98 !important;
    border-radius: 7px !important;
    background: #f7faf6 !important;
    text-align: center;
}

.gp-family-tree-person-body font[color="blue"] a,
.gp-family-tree-person-body a font[color="blue"] {
    display: block;
    width: 100%;
}

/* ---------------------------------------------------------
   PARENTS
   Slightly tighter first-generation block.
   --------------------------------------------------------- */

.gp-family-tree-parents {
    padding: 16px !important;
    margin-bottom: 22px !important;
}

.gp-family-tree-parents .gp-family-tree-generation-heading {
    margin-bottom: 10px !important;
}

/* ---------------------------------------------------------
   GREAT-GRANDPARENT RHYTHM
   --------------------------------------------------------- */

.gp-family-tree-great-couples {
    gap: 14px !important;
}

.gp-family-tree-couple-label {
    margin-bottom: 6px !important;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 760px) {
    .gp-family-tree-branch {
        padding-top: 15px !important;
    }

    .gp-family-tree-parent-grid,
    .gp-family-tree-couple {
        grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr) !important;
        gap: 3px !important;
    }

    .gp-family-tree-marriage {
        min-width: 24px !important;
    }

    .gp-family-tree-person {
        padding: 10px !important;
    }
}

@media (max-width: 500px) {
    .gp-family-tree-parent-grid,
    .gp-family-tree-couple {
        grid-template-columns: 1fr !important;
        gap: 7px !important;
    }

    .gp-family-tree-marriage {
        min-width: 0 !important;
        min-height: 22px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors FamilyTree Pass 03
   Mobile refinement from live ~390px viewport screenshot
   Desktop/tablet presentation is intentionally unchanged.
   ========================================================= */

@media (max-width: 500px) {

    /* Use the phone viewport rather than leaving a large right gutter. */
    .gp-family-tree {
        width: auto !important;
        max-width: none !important;
        margin: 10px 8px 24px !important;
    }

    /* The first-generation wrapper no longer needs to look like a second
       card surrounding the individual parent cards. */
    .gp-family-tree-parents {
        margin-bottom: 18px !important;
        padding: 12px 0 0 !important;
        border: 0 !important;
        border-top: 3px solid #315f3e !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .gp-family-tree-parents > .gp-family-tree-generation-heading {
        padding: 0 4px !important;
    }

    /* Branches and generations should consume the available mobile width. */
    .gp-family-tree-branches,
    .gp-family-tree-branch,
    .gp-family-tree-branch > .gp-family-tree-generation,
    .gp-family-tree-great-couples,
    .gp-family-tree-couple-block {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
    }

    .gp-family-tree-branch {
        padding-top: 13px !important;
    }

    .gp-family-tree-branch-heading,
    .gp-family-tree-branch > .gp-family-tree-generation {
        padding-left: 4px !important;
        padding-right: 4px !important;
    }

    /* One ancestor per row on phones. */
    .gp-family-tree-parent-grid,
    .gp-family-tree-couple {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        gap: 7px !important;
    }

    .gp-family-tree-person {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        min-height: 0 !important;
        padding: 12px !important;
    }

    /* Center the marriage marker as a small connector, without a broad
       empty strip between stacked spouses. */
    .gp-family-tree-marriage {
        display: flex !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 22px !important;
        height: 22px !important;
        margin: 0 !important;
        padding: 0 !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .gp-family-tree-marriage:not(:empty)::before {
        display: none !important;
        content: none !important;
    }

    .gp-family-tree-marriage img {
        max-width: 24px !important;
        max-height: 20px !important;
        margin: 0 auto !important;
    }

    /* Slightly improve small-screen legibility. */
    .gp-family-tree-role {
        font-size: .66rem !important;
        letter-spacing: .065em !important;
    }

    .gp-family-tree-generation-kicker,
    .gp-family-tree-branch-kicker {
        font-size: .68rem !important;
        letter-spacing: .09em !important;
    }

    .gp-family-tree-person-body {
        font-size: .81rem !important;
        line-height: 1.45 !important;
    }

    .gp-family-tree-person-body font[size="-1"] {
        font-size: .76rem !important;
        line-height: 1.4 !important;
    }

    .gp-family-tree-generation-heading h2 {
        font-size: 1.35rem !important;
    }

    .gp-family-tree-generation-heading h3 {
        font-size: 1.08rem !important;
    }

    .gp-family-tree-branch-heading h2 {
        font-size: 1.32rem !important;
    }

    /* Missing ancestor controls should also span the card naturally. */
    .gp-family-tree-person-body font[color="blue"] {
        width: 100% !important;
        margin: 0 !important;
    }

    /* Keep the explanatory footer compact on a phone. */
    .gp-family-tree-note {
        margin-top: 16px !important;
        padding: 11px 12px !important;
        font-size: .78rem !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors SearchByName Pass 01
   Responsive ancestor search results
   ========================================================= */

.gp-ancestor-search-page {
    width: min(1180px, calc(100% - 32px));
    margin: 24px auto 42px;
    color: #2b4031;
}

.gp-ancestor-search-eyebrow {
    color: #806b38;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.gp-ancestor-search-title {
    margin: 5px 0 14px;
    color: #1f432e;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 3vw, 2.45rem);
    line-height: 1.15;
}

.gp-ancestor-search-ad,
.gp-ancestor-search-ad-inner {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.gp-ancestor-search-results-shell,
.gp-ancestor-search-results-inner {
    width: 100%;
    min-width: 0;
}

.gp-ancestor-search-summary {
    margin: 0 0 18px;
    padding: 14px 16px;
    border: 1px solid #dbe3dc;
    border-left: 4px solid #315f3e;
    border-radius: 8px;
    background: #f8faf7;
}

.gp-ancestor-search-summary strong {
    color: #234532;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.05rem;
}

.gp-ancestor-search-summary p {
    margin: 5px 0 0;
    color: #647067;
    font-size: .86rem;
    line-height: 1.5;
}

.gp-ancestor-search-surname-group {
    margin: 0 0 24px;
}

.gp-ancestor-search-surname {
    margin: 0 0 10px;
    padding-bottom: 7px;
    border-bottom: 1px solid #dfe5df;
    color: #234532;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
}

.gp-ancestor-search-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 14px;
}

.gp-ancestor-search-result {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 10px;
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid #d9e1da;
    border-radius: 9px;
    background: #fff;
    box-shadow: none;
}

.gp-ancestor-search-result-icons {
    min-width: 0;
}

.gp-ancestor-search-result-icons img {
    display: inline-block;
    width: auto !important;
    max-width: 40px !important;
    height: auto !important;
    max-height: 40px !important;
    margin: 0 3px 3px 0 !important;
    vertical-align: middle;
}

.gp-ancestor-search-result-body {
    min-width: 0;
    color: #46574c;
    font-size: .84rem;
    line-height: 1.48;
    overflow-wrap: anywhere;
}

.gp-ancestor-search-result-body > a,
.gp-ancestor-search-result-body a {
    color: #075b42 !important;
    font-weight: 800;
    text-decoration: none;
}

.gp-ancestor-search-result-body a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.gp-ancestor-search-result-body font[size="-1"] {
    color: #68746c !important;
    font-size: .78rem !important;
    line-height: 1.45;
}

.gp-ancestor-search-result-body i {
    color: #778279;
    font-size: .76rem;
}

.gp-ancestor-search-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 20px 0 24px;
    padding: 10px 12px;
    border: 1px solid #dfe5df;
    border-radius: 8px;
    background: #fafbf9;
}

.gp-ancestor-search-pagination-label {
    margin-right: 3px;
    color: #657168;
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.gp-ancestor-search-pagination a,
.gp-ancestor-search-current-page a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    min-height: 32px;
    padding: 5px 8px;
    border: 1px solid #d3ddd5;
    border-radius: 6px;
    background: #fff;
    color: #315a40 !important;
    font-size: .8rem;
    font-weight: 800;
    text-decoration: none !important;
}

.gp-ancestor-search-current-page a {
    border-color: #315f3e;
    background: #315f3e;
    color: #fff !important;
}

.gp-ancestor-search-refine {
    margin-top: 24px;
    padding: 18px;
    border: 1px solid #d7dfd8;
    border-radius: 10px;
    background: #f8faf7;
}

.gp-ancestor-search-refine h2 {
    margin: 5px 0 7px;
    color: #234532;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.4rem;
}

.gp-ancestor-search-refine > p {
    margin: 0 0 16px;
    color: #647067;
    font-size: .86rem;
    line-height: 1.5;
}

.gp-ancestor-search-refine .row {
    display: grid;
    grid-template-columns: minmax(160px, .75fr) minmax(0, 1.25fr);
    gap: 7px 14px;
    align-items: center;
    margin: 0 0 10px !important;
}

.gp-ancestor-search-refine .label {
    color: #4d5e52;
    font-size: .82rem;
    font-weight: 700;
}

.gp-ancestor-search-refine .formw {
    width: 100%;
}

.gp-ancestor-search-refine input[type="text"],
.gp-ancestor-search-refine input[type="number"],
.gp-ancestor-search-refine select {
    width: 100% !important;
    min-height: 40px;
    padding: 7px 9px;
    border: 1px solid #cfd8d1;
    border-radius: 5px;
    background: #fff;
    color: #34493a;
    font: inherit;
    box-sizing: border-box;
}

.gp-ancestor-search-refine input[type="submit"] {
    min-height: 40px;
    padding: 8px 14px;
    border: 1px solid #315f3e;
    border-radius: 6px;
    background: #315f3e;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

.gp-ancestor-search-submit > .formw {
    grid-column: 2;
}

.gp-required {
    color: #8a4b3d;
    font-weight: 900;
}

.gp-ancestor-search-add {
    margin: 16px 0 0 !important;
    padding-top: 13px;
    border-top: 1px solid #e1e6e1;
}

.gp-ancestor-search-page a:focus-visible,
.gp-ancestor-search-page input:focus-visible,
.gp-ancestor-search-page select:focus-visible {
    outline: 3px solid #587d61 !important;
    outline-offset: 3px;
}

@media (max-width: 850px) {
    .gp-ancestor-search-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .gp-ancestor-search-page {
        width: auto;
        margin: 14px 8px 28px;
    }

    .gp-ancestor-search-result {
        grid-template-columns: 42px minmax(0, 1fr);
        padding: 12px;
    }

    .gp-ancestor-search-result-icons img {
        max-width: 36px !important;
        max-height: 36px !important;
    }

    .gp-ancestor-search-refine {
        padding: 14px;
    }

    .gp-ancestor-search-refine .row {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .gp-ancestor-search-submit > .formw {
        grid-column: auto;
    }

    .gp-ancestor-search-refine input[type="submit"] {
        width: 100% !important;
        min-height: 42px;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors SearchByName Pass 02
   Result loop structural fix
   ========================================================= */

/*
   One stable grid now owns all rendered result cards.
   Surname headings are children of that grid and span both columns.
*/
.gp-ancestor-search-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px 14px !important;
    width: 100% !important;
    min-width: 0 !important;
}

.gp-ancestor-search-surname {
    grid-column: 1 / -1;
    margin: 8px 0 0 !important;
    padding: 10px 0 7px !important;
    border-bottom: 1px solid #dfe5df !important;
    color: #234532 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.35rem !important;
}

/* Cards must be independent grid items, not remnants of the legacy flex flow. */
.gp-ancestor-search-result {
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr) !important;
    gap: 11px !important;
    align-items: start !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 13px 14px !important;
    border: 1px solid #d9e1da !important;
    border-radius: 9px !important;
    background: #fff !important;
    box-shadow: 0 2px 7px rgba(30, 64, 43, .035) !important;
    box-sizing: border-box !important;
}

.gp-ancestor-search-result-icons {
    min-width: 0 !important;
}

.gp-ancestor-search-result-icons img {
    display: inline-block !important;
    width: auto !important;
    max-width: 48px !important;
    height: auto !important;
    max-height: 62px !important;
    margin: 0 3px 4px 0 !important;
    vertical-align: top !important;
}

.gp-ancestor-search-result-body {
    min-width: 0 !important;
    align-self: start;
}

.gp-ancestor-search-summary {
    margin-top: 20px !important;
}

/* Give the actual genealogy content a deliberate break after the ad. */
.gp-ancestor-search-ad + .gp-ancestor-search-results-shell {
    margin-top: 20px !important;
}

@media (max-width: 850px) {
    .gp-ancestor-search-grid {
        grid-template-columns: 1fr !important;
    }

    .gp-ancestor-search-surname {
        grid-column: 1;
    }
}

@media (max-width: 700px) {
    .gp-ancestor-search-result {
        grid-template-columns: 48px minmax(0, 1fr) !important;
        gap: 9px !important;
        padding: 12px !important;
    }

    .gp-ancestor-search-result-icons img {
        max-width: 42px !important;
        max-height: 56px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors SearchByName Pass 03
   Card information hierarchy
   ========================================================= */

/* ---------------------------------------------------------
   RESULTS INTRO
   Make this read as page guidance rather than another card.
   --------------------------------------------------------- */

.gp-ancestor-search-summary {
    width: 100% !important;
    max-width: none !important;
    margin: 22px 0 18px !important;
    padding: 0 0 12px !important;
    border: 0 !important;
    border-bottom: 1px solid #dfe5df !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.gp-ancestor-search-summary h2 {
    margin: 0 0 5px;
    color: #234532;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.08rem;
    line-height: 1.25;
}

.gp-ancestor-search-summary p {
    max-width: 76ch;
    margin: 0 !important;
    color: #647067;
    font-size: .86rem;
    line-height: 1.5;
}

/* ---------------------------------------------------------
   RESULT CARD CONTENT
   --------------------------------------------------------- */

.gp-ancestor-search-result {
    grid-template-columns: 58px minmax(0, 1fr) !important;
    gap: 12px !important;
}

.gp-ancestor-search-result-icons img {
    max-width: 52px !important;
    max-height: 66px !important;
}

.gp-ancestor-search-name {
    margin-bottom: 5px;
    line-height: 1.25;
}

.gp-ancestor-search-name a {
    color: #075b42 !important;
    font-size: .93rem;
    font-weight: 800;
    text-decoration: none !important;
}

.gp-ancestor-search-name a:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.gp-ancestor-search-life {
    display: grid;
    gap: 2px;
    color: #657168;
    font-size: .77rem;
    line-height: 1.45;
}

.gp-ancestor-search-life-dates {
    color: #4f5f54;
    font-weight: 700;
}

.gp-ancestor-search-life-places {
    color: #717c74;
}

.gp-ancestor-search-parents {
    margin-top: 7px;
    padding-top: 6px;
    border-top: 1px solid #edf0ed;
    color: #6d786f;
    font-size: .76rem;
    font-style: italic;
    line-height: 1.4;
}

.gp-ancestor-search-parents > span {
    color: #59665d;
    font-style: normal;
    font-weight: 700;
}

/* Keep card heights compact rather than forcing equal acreage. */
.gp-ancestor-search-result {
    align-content: start !important;
    min-height: 0 !important;
}

/* Stronger visual re-entry after large third-party ads. */
.gp-ancestor-search-ad {
    margin-bottom: 26px !important;
}

@media (max-width: 700px) {
    .gp-ancestor-search-result {
        grid-template-columns: 50px minmax(0, 1fr) !important;
        gap: 10px !important;
    }

    .gp-ancestor-search-result-icons img {
        max-width: 44px !important;
        max-height: 58px !important;
    }

    .gp-ancestor-search-name a {
        font-size: .9rem;
    }

    .gp-ancestor-search-life {
        font-size: .75rem;
    }

    .gp-ancestor-search-parents {
        font-size: .74rem;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors SearchByName Pass 04
   Final mobile polish
   Desktop/tablet behavior intentionally unchanged.
   ========================================================= */

@media (max-width: 700px) {

    /* Give the genealogy content a slightly cleaner re-entry after the ad. */
    .gp-ancestor-search-ad {
        margin-bottom: 30px !important;
    }

    .gp-ancestor-search-summary {
        margin-top: 0 !important;
        margin-bottom: 22px !important;
    }

    .gp-ancestor-search-surname {
        margin-top: 2px !important;
        margin-bottom: 12px !important;
        padding-bottom: 8px !important;
    }

    /* Keep the one-column result cards comfortable on phones. */
    .gp-ancestor-search-grid {
        gap: 11px !important;
    }

    .gp-ancestor-search-result {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        grid-template-columns: 48px minmax(0, 1fr) !important;
        gap: 10px !important;
        padding: 12px !important;
        overflow: hidden;
    }

    .gp-ancestor-search-result-icons,
    .gp-ancestor-search-result-body,
    .gp-ancestor-search-life,
    .gp-ancestor-search-life-places,
    .gp-ancestor-search-parents {
        min-width: 0 !important;
        max-width: 100% !important;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    .gp-ancestor-search-result-icons img {
        max-width: 44px !important;
        max-height: 58px !important;
    }

    .gp-ancestor-search-name {
        margin-bottom: 4px !important;
    }

    .gp-ancestor-search-name a {
        font-size: .9rem !important;
        line-height: 1.25 !important;
    }

    .gp-ancestor-search-life {
        gap: 3px !important;
    }

    .gp-ancestor-search-life-dates {
        font-size: .76rem !important;
    }

    .gp-ancestor-search-life-places {
        font-size: .74rem !important;
        line-height: 1.45 !important;
    }

    .gp-ancestor-search-parents {
        margin-top: 6px !important;
        padding-top: 6px !important;
        font-size: .73rem !important;
    }

    /* Pagination should stay compact and avoid accidental horizontal growth. */
    .gp-ancestor-search-pagination {
        gap: 5px !important;
        padding: 9px 10px !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .gp-ancestor-search-pagination a,
    .gp-ancestor-search-current-page a {
        flex: 0 0 auto;
    }

    /* Refine-search section is already good; just guard against narrow screens. */
    .gp-ancestor-search-refine,
    .gp-ancestor-search-refine .row,
    .gp-ancestor-search-refine .formw,
    .gp-ancestor-search-refine input,
    .gp-ancestor-search-refine select {
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}

@media (max-width: 360px) {

    /* Extra-narrow phones: slightly reduce the media column and gutters. */
    .gp-ancestor-search-page {
        margin-left: 6px !important;
        margin-right: 6px !important;
    }

    .gp-ancestor-search-result {
        grid-template-columns: 42px minmax(0, 1fr) !important;
        gap: 8px !important;
        padding: 10px !important;
    }

    .gp-ancestor-search-result-icons img {
        max-width: 38px !important;
        max-height: 52px !important;
    }

    .gp-ancestor-search-refine {
        padding: 12px !important;
    }

    .gp-ancestor-search-refine h2 {
        font-size: 1.28rem !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors AncestorListByType Pass 01
   Responsive category article + ancestor directory
   ========================================================= */

.gp-ancestor-type-page {
    width: min(1180px, calc(100% - 32px));
    margin: 22px auto 42px;
    color: #2d4233;
}

.gp-ancestor-type-page *,
.gp-ancestor-type-page *::before,
.gp-ancestor-type-page *::after {
    box-sizing: border-box;
}

/* ---------------------------------------------------------
   SMALL SUPPORT TOOLBAR
   --------------------------------------------------------- */

.gp-ancestor-type-toolbar,
.gp-ancestor-type-toolbar-inner {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 9px 14px;
    width: 100% !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.gp-ancestor-type-toolbar-inner a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
}

.gp-ancestor-type-toolbar-inner img {
    width: auto !important;
    max-width: 100px !important;
    height: auto !important;
    max-height: 40px !important;
    margin: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* ---------------------------------------------------------
   EDITORIAL INTRODUCTION
   Existing category-specific historical copy is preserved.
   --------------------------------------------------------- */

.gp-ancestor-type-intro {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 0 30px !important;
    padding: 0 !important;
}

.gp-ancestor-type-intro > .flex-item,
.gp-ancestor-type-intro > .flex-item-no-border,
.gp-ancestor-type-intro > .flex-item-no-border-centered {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 22px clamp(16px, 3vw, 32px) !important;
    border: 1px solid #d9e1da !important;
    border-left: 4px solid #315f3e !important;
    border-radius: 10px !important;
    background: #fbfcfa !important;
    box-shadow: none !important;
    text-align: left !important;
    color: #44544a;
    font-size: .93rem;
    line-height: 1.72;
}

.gp-ancestor-type-intro h1 {
    margin: 0 0 14px;
    color: #173f28;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.12;
}

.gp-ancestor-type-intro h2 {
    margin: 28px 0 8px;
    color: #234532;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.5rem;
    line-height: 1.25;
}

.gp-ancestor-type-intro h3 {
    margin: 22px 0 7px;
    color: #365541;
    font-size: 1.08rem;
    line-height: 1.3;
}

.gp-ancestor-type-intro a {
    color: #075b42 !important;
    font-weight: 700;
    text-underline-offset: 3px;
}

.gp-ancestor-type-intro img {
    max-width: 100%;
    height: auto;
}

/* ---------------------------------------------------------
   DIRECTORY HEADING
   --------------------------------------------------------- */

.gp-ancestor-type-directory {
    margin-top: 28px;
}

.gp-ancestor-type-directory-heading {
    margin-bottom: 14px;
}

.gp-ancestor-type-eyebrow {
    color: #806b38;
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .115em;
    text-transform: uppercase;
}

.gp-ancestor-type-directory-heading h2 {
    margin: 4px 0 5px;
    color: #1f432e;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
    line-height: 1.2;
}

.gp-ancestor-type-directory-heading p {
    max-width: 74ch;
    margin: 0;
    color: #68746c;
    font-size: .85rem;
    line-height: 1.5;
}

/* ---------------------------------------------------------
   ALPHABETICAL DIRECTORY
   --------------------------------------------------------- */

.gp-ancestor-type-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 14px;
    width: 100%;
    min-width: 0;
}

.gp-ancestor-type-letter {
    grid-column: 1 / -1;
    margin: 10px 0 0;
    padding: 9px 0 7px;
    border-bottom: 1px solid #dce3dd;
    color: #234532;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.4rem;
    line-height: 1;
}

.gp-ancestor-type-person {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 11px;
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid #d9e1da;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 2px 7px rgba(30, 64, 43, .035);
}

.gp-ancestor-type-person-icons {
    min-width: 0;
}

.gp-ancestor-type-person-icons img {
    display: inline-block !important;
    width: auto !important;
    max-width: 50px !important;
    height: auto !important;
    max-height: 64px !important;
    margin: 0 3px 4px 0 !important;
    vertical-align: top;
}

.gp-ancestor-type-person-body {
    min-width: 0;
    overflow-wrap: anywhere;
}

.gp-ancestor-type-person-name {
    margin-bottom: 5px;
    line-height: 1.25;
}

.gp-ancestor-type-person-name a {
    color: #075b42 !important;
    font-size: .92rem;
    font-weight: 800;
    text-decoration: none !important;
}

.gp-ancestor-type-person-name a:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.gp-ancestor-type-person-life {
    display: grid;
    gap: 2px;
    color: #66736a;
    font-size: .77rem;
    line-height: 1.45;
}

.gp-ancestor-type-person-dates {
    color: #4f5f54;
    font-weight: 700;
}

.gp-ancestor-type-person-places {
    color: #717c74;
}

.gp-ancestor-type-person-parents {
    margin-top: 7px;
    padding-top: 6px;
    border-top: 1px solid #edf0ed;
    color: #6d786f;
    font-size: .75rem;
    font-style: italic;
    line-height: 1.4;
}

.gp-ancestor-type-person-parents > span {
    color: #59665d;
    font-style: normal;
    font-weight: 700;
}

/* ---------------------------------------------------------
   PAGINATION
   --------------------------------------------------------- */

.gp-ancestor-type-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 20px 0 28px;
    padding: 10px 12px;
    border: 1px solid #dfe5df;
    border-radius: 8px;
    background: #fafbf9;
}

.gp-ancestor-type-pagination-label {
    margin-right: 3px;
    color: #657168;
    font-size: .76rem;
    font-weight: 800;
    text-transform: uppercase;
}

.gp-ancestor-type-pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    min-height: 32px;
    padding: 5px 8px;
    border: 1px solid #d3ddd5;
    border-radius: 6px;
    background: #fff;
    color: #315a40 !important;
    font-size: .8rem;
    font-weight: 800;
    text-decoration: none !important;
}

/* ---------------------------------------------------------
   CATEGORY GIFTS
   --------------------------------------------------------- */

.gp-ancestor-type-gifts {
    display: block !important;
    width: 100% !important;
    margin: 0 0 28px !important;
}

.gp-ancestor-type-gift-inner,
.gp-ancestor-type-gifts > .flex-item-no-border {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 17px !important;
    border: 1px solid #dfe5df !important;
    border-radius: 9px;
    background: #fafbf9 !important;
}

.gp-ancestor-type-gifts h2 {
    margin: 0 0 12px;
    color: #234532;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.3rem;
}

/* ---------------------------------------------------------
   BROWSE OTHER LISTS
   --------------------------------------------------------- */

.gp-ancestor-type-browse {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid #dce3dd;
}

.gp-ancestor-type-browse-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.gp-ancestor-type-browse-card {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 10px 11px !important;
    border: 1px solid #d9e1da !important;
    border-radius: 7px;
    background: #f8faf7 !important;
}

.gp-ancestor-type-browse-card a {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #315a40 !important;
    font-size: .8rem;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none !important;
}

.gp-ancestor-type-browse-card a:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.gp-ancestor-type-browse-card img {
    flex: 0 0 auto;
    width: auto !important;
    max-width: 34px !important;
    height: auto !important;
    max-height: 34px !important;
    margin: 0 !important;
    border: 0 !important;
}

/* ---------------------------------------------------------
   MOBILE / TABLET
   --------------------------------------------------------- */

@media (max-width: 850px) {
    .gp-ancestor-type-grid {
        grid-template-columns: 1fr;
    }

    .gp-ancestor-type-letter {
        grid-column: 1;
    }

    .gp-ancestor-type-browse-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .gp-ancestor-type-page {
        width: auto;
        margin: 14px 8px 28px;
    }

    .gp-ancestor-type-toolbar {
        margin-bottom: 12px !important;
    }

    .gp-ancestor-type-intro > .flex-item,
    .gp-ancestor-type-intro > .flex-item-no-border,
    .gp-ancestor-type-intro > .flex-item-no-border-centered {
        padding: 16px 14px !important;
        font-size: .88rem;
        line-height: 1.65;
    }

    .gp-ancestor-type-intro h1 {
        font-size: 1.85rem;
    }

    .gp-ancestor-type-person {
        grid-template-columns: 48px minmax(0, 1fr);
        gap: 9px;
        padding: 12px;
    }

    .gp-ancestor-type-person-icons img {
        max-width: 42px !important;
        max-height: 56px !important;
    }

    .gp-ancestor-type-pagination {
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
    }

    .gp-ancestor-type-pagination a {
        flex: 0 0 auto;
    }

    .gp-ancestor-type-browse-grid {
        grid-template-columns: 1fr;
    }
}

.gp-ancestor-type-page a:focus-visible {
    outline: 3px solid #587d61 !important;
    outline-offset: 3px;
    border-radius: 4px;
}


/* =========================================================
   GreenerPasture V2 - Ancestors AncestorListByType Pass 03
   Live directory polish
   ========================================================= */

.gp-ancestor-type-directory {
    padding-top: 6px;
}

.gp-ancestor-type-letter {
    min-height: 38px;
    display: flex;
    align-items: end;
}

.gp-ancestor-type-person {
    align-content: start;
}

.gp-ancestor-type-directory-heading p {
    color: #6c786f;
}

@media (max-width: 700px) {
    .gp-ancestor-type-letter {
        min-height: 34px;
        margin-top: 8px;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors AncestorListByType Pass 04
   Lower-page polish: gifts + browse-other-lists
   ========================================================= */

/* ---------------------------------------------------------
   CATEGORY GIFT / READING AREA
   The legacy markup varies by ListType, so keep this CSS-only.
   --------------------------------------------------------- */

.gp-ancestor-type-gifts {
    margin-top: 4px !important;
}

.gp-ancestor-type-gifts > .gp-ancestor-type-gift-inner,
.gp-ancestor-type-gifts > .flex-item-no-border {
    padding: 16px !important;
}

.gp-ancestor-type-gifts h2 {
    margin: 0 0 12px !important;
    font-size: 1.35rem !important;
}

/* Compact consecutive text-link rows so they read as recommendations,
   rather than large form controls. */
.gp-ancestor-type-gifts a {
    color: #315a40 !important;
    text-underline-offset: 3px;
}

.gp-ancestor-type-gifts a:hover {
    text-decoration: underline !important;
}

/* Existing nested flex rows used by some gift categories. */
.gp-ancestor-type-gifts .flex-container {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    gap: 0 !important;
    background: transparent !important;
}

.gp-ancestor-type-gifts .flex-item,
.gp-ancestor-type-gifts .flex-item-no-border,
.gp-ancestor-type-gifts .flex-item-green-no-border {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    border-color: #e1e6e1 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* First/last recommendation rows get a quiet grouped-list edge. */
.gp-ancestor-type-gifts .flex-container:first-of-type .flex-item,
.gp-ancestor-type-gifts .flex-container:first-of-type .flex-item-no-border {
    border-top-left-radius: 7px !important;
    border-top-right-radius: 7px !important;
}

/* Product imagery should remain useful without creating a huge empty card. */
.gp-ancestor-type-gifts img {
    max-width: 150px;
    height: auto;
}

.gp-ancestor-type-gifts p {
    max-width: 90ch;
    line-height: 1.55;
}

/* ---------------------------------------------------------
   BROWSE OTHER ANCESTOR LISTS
   The live screenshot is already strong. Refine rather than redesign.
   --------------------------------------------------------- */

.gp-ancestor-type-browse {
    margin-top: 24px !important;
    padding-top: 22px !important;
}

.gp-ancestor-type-browse-grid {
    gap: 9px 10px !important;
}

.gp-ancestor-type-browse-card {
    min-height: 56px;
    padding: 9px 11px !important;
    transition: border-color .15s ease, background-color .15s ease,
                transform .15s ease;
}

.gp-ancestor-type-browse-card:hover {
    border-color: #b9cbbd !important;
    background: #fff !important;
    transform: translateY(-1px);
}

.gp-ancestor-type-browse-card a {
    min-height: 36px;
}

.gp-ancestor-type-browse-card img {
    max-width: 36px !important;
    max-height: 36px !important;
    object-fit: contain;
}

/* The current category can still be clicked, but give all category
   destinations a consistent card treatment. */
.gp-ancestor-type-browse-card a:focus-visible {
    outline: 3px solid #587d61 !important;
    outline-offset: 2px;
}

@media (max-width: 700px) {
    .gp-ancestor-type-gifts > .gp-ancestor-type-gift-inner,
    .gp-ancestor-type-gifts > .flex-item-no-border {
        padding: 13px !important;
    }

    .gp-ancestor-type-gifts .flex-item,
    .gp-ancestor-type-gifts .flex-item-no-border,
    .gp-ancestor-type-gifts .flex-item-green-no-border {
        padding: 9px 8px !important;
    }

    .gp-ancestor-type-gifts img {
        max-width: 125px;
    }

    .gp-ancestor-type-browse {
        margin-top: 20px !important;
        padding-top: 18px !important;
    }

    .gp-ancestor-type-browse-card {
        min-height: 52px;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors AncestorListByType Pass 05
   Mobile hardening + final QA polish
   ========================================================= */

@media (max-width: 700px) {

    /* Long historical introductions need a comfortable reading column. */
    .gp-ancestor-type-intro {
        margin-bottom: 24px !important;
    }

    .gp-ancestor-type-intro > .flex-item,
    .gp-ancestor-type-intro > .flex-item-no-border,
    .gp-ancestor-type-intro > .flex-item-no-border-centered {
        padding: 15px 13px !important;
        border-left-width: 3px !important;
        border-radius: 8px !important;
        font-size: .88rem !important;
        line-height: 1.64 !important;
        overflow-wrap: anywhere;
    }

    .gp-ancestor-type-intro h1 {
        margin-bottom: 12px !important;
        font-size: 1.78rem !important;
        line-height: 1.12 !important;
    }

    .gp-ancestor-type-intro h2 {
        margin-top: 23px !important;
        font-size: 1.28rem !important;
        line-height: 1.22 !important;
    }

    .gp-ancestor-type-intro h3 {
        margin-top: 19px !important;
        font-size: 1.02rem !important;
    }

    /* Compact the social/store strip so it doesn't dominate mobile. */
    .gp-ancestor-type-toolbar,
    .gp-ancestor-type-toolbar-inner {
        gap: 7px 10px !important;
        margin-bottom: 12px !important;
    }

    .gp-ancestor-type-toolbar-inner a {
        min-height: 34px !important;
    }

    .gp-ancestor-type-toolbar-inner img {
        max-height: 34px !important;
        max-width: 90px !important;
    }

    /* Make the directory transition visually obvious after a long article. */
    .gp-ancestor-type-directory {
        margin-top: 22px !important;
        padding-top: 18px !important;
        border-top: 1px solid #dce3dd;
    }

    .gp-ancestor-type-directory-heading {
        margin-bottom: 12px !important;
    }

    .gp-ancestor-type-directory-heading h2 {
        font-size: 1.38rem !important;
    }

    .gp-ancestor-type-directory-heading p {
        font-size: .8rem !important;
        line-height: 1.45 !important;
    }

    /* Mobile ancestor cards: guard long names and locations. */
    .gp-ancestor-type-person {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        grid-template-columns: 46px minmax(0, 1fr) !important;
        gap: 9px !important;
        padding: 11px !important;
        overflow: hidden;
    }

    .gp-ancestor-type-person-icons,
    .gp-ancestor-type-person-body,
    .gp-ancestor-type-person-life,
    .gp-ancestor-type-person-places,
    .gp-ancestor-type-person-parents {
        min-width: 0 !important;
        max-width: 100% !important;
        overflow-wrap: anywhere;
    }

    .gp-ancestor-type-person-name a {
        font-size: .88rem !important;
        line-height: 1.24 !important;
    }

    .gp-ancestor-type-person-dates {
        font-size: .75rem !important;
    }

    .gp-ancestor-type-person-places,
    .gp-ancestor-type-person-parents {
        font-size: .73rem !important;
    }

    /* Browse cards should be easy thumb targets but not oversized. */
    .gp-ancestor-type-browse-card {
        min-height: 50px !important;
        padding: 8px 10px !important;
    }

    .gp-ancestor-type-browse-card a {
        min-height: 34px !important;
        font-size: .79rem !important;
    }

    .gp-ancestor-type-browse-card img {
        max-width: 32px !important;
        max-height: 32px !important;
    }
}

@media (max-width: 360px) {
    .gp-ancestor-type-page {
        margin-left: 6px !important;
        margin-right: 6px !important;
    }

    .gp-ancestor-type-person {
        grid-template-columns: 40px minmax(0, 1fr) !important;
        gap: 8px !important;
        padding: 10px !important;
    }

    .gp-ancestor-type-person-icons img {
        max-width: 36px !important;
        max-height: 50px !important;
    }

    .gp-ancestor-type-intro > .flex-item,
    .gp-ancestor-type-intro > .flex-item-no-border,
    .gp-ancestor-type-intro > .flex-item-no-border-centered {
        padding: 13px 11px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors AncestorListByType Pass 06
   Preserve authored intro line breaks + Civil War gallery sizing
   ========================================================= */

/* Some category introductions contain meaningful CR/LF formatting in the
   ASPX source. Normal HTML collapses those newlines. pre-line preserves
   authored line breaks while still wrapping long prose normally. */
.gp-ancestor-type-intro p,
.gp-ancestor-type-intro .gp-preserve-lines {
    white-space: pre-line;
}

/* Civil War / Fort Clinch image gallery.
   Prevent source photos from expanding to their natural full width. */
.gp-civil-war-gallery {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    gap: 12px !important;
    margin-top: 14px !important;
}

.gp-civil-war-gallery img {
    width: auto !important;
    height: auto !important;
    max-width: 260px !important;
    max-height: 190px !important;
    object-fit: contain !important;
}

/* If an image is wrapped in a link/div, don't let that wrapper claim
   an entire desktop row. */
.gp-civil-war-gallery > * {
    flex: 0 1 auto !important;
    max-width: 280px !important;
}

@media (max-width: 700px) {
    .gp-civil-war-gallery {
        gap: 9px !important;
    }

    .gp-civil-war-gallery img {
        max-width: min(100%, 210px) !important;
        max-height: 160px !important;
    }

    .gp-civil-war-gallery > * {
        max-width: 100% !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors AncestorListByType Pass 07
   Civil War intro + Fort Clinch correction
   ========================================================= */

/*
   Pass 06 targeted paragraphs, but these legacy category articles mostly
   contain bare text nodes directly inside their old content DIVs.
   Apply pre-line to the actual article container so CR/LF characters in
   the ASPX source are respected.
*/
.gp-ancestor-type-intro > .flex-item,
.gp-ancestor-type-intro > .flex-item-no-border,
.gp-ancestor-type-intro > .flex-item-no-border-centered {
    white-space: pre-line !important;
}

/*
   Explicit BR elements remain valid too. Avoid giant gaps caused by
   pre-line plus legacy BR spacing.
*/
.gp-ancestor-type-intro br {
    line-height: .72;
}

/* ---------------------------------------------------------
   FORT CLINCH GALLERY
   Both mobile AND desktop wrappers now carry this class.
   --------------------------------------------------------- */

.gp-ancestor-type-intro .gp-civil-war-gallery {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(180px, 220px)) !important;
    justify-content: start !important;
    align-items: start !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 12px 0 4px !important;
    padding: 0 !important;
    white-space: normal !important;
}

/* Override the old shared flex-item sizing that was making each image huge. */
.gp-ancestor-type-intro .gp-civil-war-gallery > .flex-item-no-border-centered,
.gp-ancestor-type-intro .gp-civil-war-gallery > .flex-item-no-border,
.gp-ancestor-type-intro .gp-civil-war-gallery > .flex-item {
    display: block !important;
    width: 220px !important;
    min-width: 0 !important;
    max-width: 220px !important;
    margin: 0 !important;
    padding: 8px !important;
    border: 1px solid #dfe5df !important;
    border-radius: 7px !important;
    background: #fafbf9 !important;
    box-shadow: none !important;
    text-align: left !important;
    white-space: normal !important;
    font-size: .74rem !important;
    line-height: 1.35 !important;
}

/* Stronger than the legacy .mediumimage rule. */
.gp-ancestor-type-intro .gp-civil-war-gallery img.mediumimage,
.gp-ancestor-type-intro .gp-civil-war-gallery img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 204px !important;
    max-height: 150px !important;
    margin: 0 auto 6px !important;
    object-fit: contain !important;
    border: 0 !important;
    box-shadow: none !important;
}

.gp-ancestor-type-intro .gp-civil-war-gallery br {
    display: none !important;
}

@media (max-width: 700px) {
    .gp-ancestor-type-intro .gp-civil-war-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    .gp-ancestor-type-intro .gp-civil-war-gallery > .flex-item-no-border-centered,
    .gp-ancestor-type-intro .gp-civil-war-gallery > .flex-item-no-border,
    .gp-ancestor-type-intro .gp-civil-war-gallery > .flex-item {
        width: 100% !important;
        max-width: none !important;
        padding: 6px !important;
    }

    .gp-ancestor-type-intro .gp-civil-war-gallery img.mediumimage,
    .gp-ancestor-type-intro .gp-civil-war-gallery img {
        max-width: 100% !important;
        max-height: 130px !important;
    }
}

@media (max-width: 420px) {
    .gp-ancestor-type-intro .gp-civil-war-gallery {
        grid-template-columns: 1fr !important;
    }

    .gp-ancestor-type-intro .gp-civil-war-gallery img.mediumimage,
    .gp-ancestor-type-intro .gp-civil-war-gallery img {
        max-width: min(100%, 220px) !important;
        max-height: 150px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors AncestorListByType Pass 08
   Intro article spacing refinement
   ========================================================= */

/*
   Pass 07 correctly preserved authored CR/LF characters, but the legacy
   article also contains explicit <br /><br /> separators. Together they
   created too much vertical whitespace. Tighten the article rhythm while
   keeping both formatting systems intact.
*/

.gp-ancestor-type-intro > .flex-item,
.gp-ancestor-type-intro > .flex-item-no-border,
.gp-ancestor-type-intro > .flex-item-no-border-centered {
    line-height: 1.58 !important;
}

/* Headings should sit closer to the paragraph they introduce. */
.gp-ancestor-type-intro h1 {
    margin-bottom: 8px !important;
}

.gp-ancestor-type-intro h2 {
    margin-top: 20px !important;
    margin-bottom: 4px !important;
}

.gp-ancestor-type-intro h3 {
    margin-top: 17px !important;
    margin-bottom: 4px !important;
}

/* Legacy markup often has an extra BR immediately after a heading.
   The heading margins now provide that spacing, so suppress that BR. */
.gp-ancestor-type-intro h1 + br,
.gp-ancestor-type-intro h2 + br,
.gp-ancestor-type-intro h3 + br {
    display: none !important;
}

/* Two consecutive BRs are used as paragraph separators throughout the
   category copy. Keep the first one, suppress the second to avoid a
   double-gap on top of white-space: pre-line. */
.gp-ancestor-type-intro br + br {
    display: none !important;
}

/* Make the remaining separator modest rather than a full blank row. */
.gp-ancestor-type-intro br {
    line-height: .35 !important;
}

@media (max-width: 700px) {
    .gp-ancestor-type-intro > .flex-item,
    .gp-ancestor-type-intro > .flex-item-no-border,
    .gp-ancestor-type-intro > .flex-item-no-border-centered {
        line-height: 1.56 !important;
    }

    .gp-ancestor-type-intro h2 {
        margin-top: 18px !important;
        margin-bottom: 3px !important;
    }

    .gp-ancestor-type-intro h3 {
        margin-top: 15px !important;
        margin-bottom: 3px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors AncestorListByType Pass 09
   Article rhythm + long-content polish
   ========================================================= */

/* Slightly tighter than Pass 08 after reviewing the live Civil War page. */
.gp-ancestor-type-intro > .flex-item,
.gp-ancestor-type-intro > .flex-item-no-border,
.gp-ancestor-type-intro > .flex-item-no-border-centered {
    line-height: 1.50 !important;
}

.gp-ancestor-type-intro h1 {
    margin-top: 0 !important;
    margin-bottom: 5px !important;
}

.gp-ancestor-type-intro h2 {
    margin-top: 14px !important;
    margin-bottom: 2px !important;
}

.gp-ancestor-type-intro h3 {
    margin-top: 12px !important;
    margin-bottom: 2px !important;
}

/*
   With white-space: pre-line active, source newlines already provide the
   paragraph separation. Legacy BRs only need a tiny contribution.
*/
.gp-ancestor-type-intro br {
    line-height: .12 !important;
}

/* Keep article media from disrupting the reading column. */
.gp-ancestor-type-intro figure {
    margin: 12px 0 !important;
}

.gp-ancestor-type-intro figcaption {
    margin-top: 5px !important;
    font-size: .75rem !important;
    line-height: 1.35 !important;
    color: #657168;
}

/* Long links and historic place names should never force horizontal scroll. */
.gp-ancestor-type-intro a,
.gp-ancestor-type-directory a,
.gp-ancestor-type-gifts a,
.gp-ancestor-type-browse a {
    overflow-wrap: anywhere;
}

/* Give the end of a long article a modest landing zone before the directory,
   rather than a second large vertical break. */
.gp-ancestor-type-intro {
    margin-bottom: 18px !important;
}

@media (max-width: 700px) {
    .gp-ancestor-type-intro > .flex-item,
    .gp-ancestor-type-intro > .flex-item-no-border,
    .gp-ancestor-type-intro > .flex-item-no-border-centered {
        line-height: 1.48 !important;
    }

    .gp-ancestor-type-intro h1 {
        margin-bottom: 4px !important;
    }

    .gp-ancestor-type-intro h2 {
        margin-top: 13px !important;
        margin-bottom: 2px !important;
    }

    .gp-ancestor-type-intro h3 {
        margin-top: 11px !important;
        margin-bottom: 2px !important;
    }

    .gp-ancestor-type-intro {
        margin-bottom: 16px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors AncestorListByType Pass 11
   Final visual polish
   ========================================================= */

/* ---------------------------------------------------------
   ARTICLE
   --------------------------------------------------------- */

.gp-ancestor-type-intro a {
    text-decoration-thickness: 1px;
    text-decoration-color: rgba(7, 91, 66, .32);
}

.gp-ancestor-type-intro a:hover {
    text-decoration-color: currentColor;
}

/* Keep long-form headings readable without overpowering the directory below. */
.gp-ancestor-type-intro h2,
.gp-ancestor-type-intro h3 {
    text-wrap: balance;
}

/* ---------------------------------------------------------
   DIRECTORY
   --------------------------------------------------------- */

.gp-ancestor-type-directory-heading {
    padding-bottom: 2px;
}

.gp-ancestor-type-letter {
    scroll-margin-top: 16px;
}

.gp-ancestor-type-person {
    transition: border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}

.gp-ancestor-type-person:hover {
    border-color: #c3d2c6;
    box-shadow: 0 4px 11px rgba(30, 64, 43, .06);
    transform: translateY(-1px);
}

.gp-ancestor-type-person-name a {
    text-underline-offset: 3px;
}

.gp-ancestor-type-person-life {
    margin-top: 1px;
}

.gp-ancestor-type-person-parents {
    margin-bottom: 1px;
}

/* ---------------------------------------------------------
   PAGINATION
   --------------------------------------------------------- */

.gp-ancestor-type-pagination {
    min-height: 52px;
}

.gp-ancestor-type-pagination a {
    transition: background-color .14s ease, border-color .14s ease;
}

.gp-ancestor-type-pagination a:hover {
    border-color: #b9cbbd;
    background: #eef4ed;
}

/* ---------------------------------------------------------
   GIFTS / SUPPORTING CONTENT
   --------------------------------------------------------- */

.gp-ancestor-type-gifts {
    border-top: 1px solid #e1e6e1;
    padding-top: 18px;
}

.gp-ancestor-type-gifts h2 {
    text-wrap: balance;
}

.gp-ancestor-type-gifts a {
    font-weight: 700;
}

.gp-ancestor-type-gifts img {
    border-radius: 6px;
}

/* ---------------------------------------------------------
   OTHER LISTS
   --------------------------------------------------------- */

.gp-ancestor-type-browse-card a {
    width: 100%;
}

.gp-ancestor-type-browse-card img {
    flex: 0 0 36px;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-ancestor-type-person:hover,
    .gp-ancestor-type-browse-card:hover {
        transform: none;
    }

    .gp-ancestor-type-pagination {
        min-height: 48px;
    }

    .gp-ancestor-type-gifts {
        padding-top: 15px;
    }

    .gp-ancestor-type-browse-card img {
        flex-basis: 32px;
    }
}

/* ---------------------------------------------------------
   ACCESSIBILITY / MOTION
   --------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    .gp-ancestor-type-person,
    .gp-ancestor-type-browse-card,
    .gp-ancestor-type-pagination a {
        transition: none !important;
    }
}

/* ---------------------------------------------------------
   PRINT
   Keep genealogy and article content; remove navigation/support chrome.
   --------------------------------------------------------- */

@media print {
    .gp-ancestor-type-toolbar,
    .gp-ancestor-type-gifts,
    .gp-ancestor-type-browse,
    .gp-ancestor-type-pagination {
        display: none !important;
    }

    .gp-ancestor-type-page {
        width: 100% !important;
        margin: 0 !important;
    }

    .gp-ancestor-type-intro > .flex-item,
    .gp-ancestor-type-intro > .flex-item-no-border,
    .gp-ancestor-type-intro > .flex-item-no-border-centered,
    .gp-ancestor-type-person {
        border-color: #bbb !important;
        box-shadow: none !important;
    }

    .gp-ancestor-type-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .gp-ancestor-type-person,
    .gp-civil-war-gallery > * {
        break-inside: avoid;
    }
}


/* =========================================================
   GreenerPasture V2 - ShowPresidents Pass 01
   Presidential timeline redesign
   ========================================================= */

.gp-presidents-page {
    width: min(1100px, calc(100% - 32px));
    margin: 34px auto 56px;
}

.gp-presidents-hero {
    background: #fbfcf9;
    border: 1px solid #d8e1d8;
    border-left: 5px solid #2f6848;
    border-radius: 12px;
    padding: 28px 30px 26px;
}

.gp-presidents-eyebrow {
    margin-bottom: 7px;
    color: #87651d;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .14em;
    line-height: 1.2;
}

.gp-presidents-hero h1 {
    margin: 0;
    color: #073f35;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.25rem, 5vw, 3.5rem);
    line-height: 1.03;
    text-wrap: balance;
}

.gp-presidents-years {
    white-space: nowrap;
}

.gp-presidents-deck {
    max-width: 760px;
    margin: 13px 0 0;
    color: #4f6258;
    font-size: 1rem;
    line-height: 1.55;
}

.gp-presidents-resources {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #e1e7e1;
}

.gp-presidents-resources-label {
    margin-right: 2px;
    color: #5f6d64;
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.gp-presidents-resources a {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 11px;
    border: 1px solid #d4dfd5;
    border-radius: 8px;
    background: #fff;
    color: #075b42;
    font-size: .88rem;
    line-height: 1.25;
    text-decoration: none;
}

.gp-presidents-resources a:hover {
    border-color: #b7cab9;
    background: #f1f6f0;
}

.gp-presidents-results {
    margin-top: 28px;
}

.gp-presidents-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 13px;
    padding: 0 2px 10px;
    border-bottom: 1px solid #dce3dc;
}

.gp-presidents-section-heading h2 {
    margin: 0;
    color: #073f35;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.65rem, 3vw, 2.1rem);
    line-height: 1.1;
}

.gp-presidents-list {
    position: relative;
    display: grid;
    gap: 16px;
}

.gp-presidents-list::before {
    content: "";
    position: absolute;
    top: 22px;
    bottom: 22px;
    left: 20px;
    width: 2px;
    background: #d8e3d9;
}

.gp-president-card {
    position: relative;
    margin-left: 43px;
    padding: 18px 20px 17px;
    border: 1px solid #d7e0d8;
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(28, 58, 39, .035);
}

.gp-president-card::before {
    content: "";
    position: absolute;
    top: 25px;
    left: -31px;
    width: 11px;
    height: 11px;
    border: 3px solid #f7f5ee;
    border-radius: 50%;
    background: #2f6848;
    box-shadow: 0 0 0 1px #bfcfc1;
}

.gp-president-person {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 15px;
    padding-bottom: 13px;
    border-bottom: 1px solid #e5e9e5;
}

.gp-president-person-media {
    min-width: 0;
}

.gp-president-person-media img {
    max-width: 86px;
    max-height: 96px;
    width: auto;
    height: auto;
    object-fit: cover;
}

.gp-president-person-copy {
    min-width: 0;
}

.gp-president-name {
    margin-bottom: 4px;
    color: #075b42;
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.25;
}

.gp-president-name a {
    color: inherit;
    text-decoration: none;
}

.gp-president-name a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.gp-president-vitals {
    color: #52645a;
    font-size: .84rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.gp-president-event {
    padding-top: 13px;
}

.gp-president-event h3 {
    margin: 0 0 7px;
    color: #174e3a;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.4;
}

.gp-president-event h3 a {
    color: inherit;
    text-decoration: none;
}

.gp-president-event h3 a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.gp-president-description {
    color: #243a30;
    font-size: .94rem;
    line-height: 1.58;
}

.gp-president-read-more {
    display: inline-block;
    margin-left: 4px;
    color: #075b42;
    font-weight: 800;
    white-space: nowrap;
    text-decoration: none;
}

.gp-president-read-more:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.gp-president-source {
    margin-top: 10px;
    color: #69776f;
    font-size: .72rem;
    line-height: 1.35;
}

.gp-president-source span {
    margin-right: 4px;
    color: #59675f;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

@media (max-width: 700px) {
    .gp-presidents-page {
        width: calc(100% - 24px);
        margin-top: 20px;
        margin-bottom: 38px;
    }

    .gp-presidents-hero {
        padding: 21px 19px 20px;
        border-left-width: 4px;
    }

    .gp-presidents-hero h1 {
        font-size: clamp(2rem, 10vw, 2.75rem);
    }

    .gp-presidents-deck {
        font-size: .94rem;
    }

    .gp-presidents-resources {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
        margin-top: 18px;
        padding-top: 15px;
    }

    .gp-presidents-resources-label {
        margin-bottom: 1px;
    }

    .gp-presidents-resources a {
        width: 100%;
        padding: 10px 11px;
    }

    .gp-presidents-results {
        margin-top: 23px;
    }

    .gp-presidents-list {
        gap: 13px;
    }

    .gp-presidents-list::before {
        left: 8px;
    }

    .gp-president-card {
        margin-left: 24px;
        padding: 15px 14px 14px;
    }

    .gp-president-card::before {
        top: 22px;
        left: -23px;
        width: 9px;
        height: 9px;
    }

    .gp-president-person {
        grid-template-columns: auto minmax(0, 1fr);
        align-items: start;
        gap: 11px;
        padding-bottom: 11px;
    }

    .gp-president-person-media img {
        max-width: 68px;
        max-height: 78px;
    }

    .gp-president-name {
        font-size: .98rem;
    }

    .gp-president-vitals {
        font-size: .78rem;
    }

    .gp-president-event {
        padding-top: 11px;
    }

    .gp-president-event h3 {
        font-size: .94rem;
    }

    .gp-president-description {
        font-size: .89rem;
        line-height: 1.52;
    }
}

@media (max-width: 420px) {
    .gp-presidents-page {
        width: calc(100% - 18px);
    }

    .gp-president-person {
        grid-template-columns: 1fr;
    }

    .gp-president-person-media img {
        max-width: 82px;
        max-height: 90px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gp-presidents-resources a {
        transition: none !important;
    }
}

@media print {
    .gp-presidents-page {
        width: 100% !important;
        margin: 0 !important;
    }

    .gp-presidents-resources {
        display: none !important;
    }

    .gp-president-card {
        break-inside: avoid;
        box-shadow: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - ShowPresidents Pass 02
   Live-browser polish
   ========================================================= */

/* The live page reads best with a slightly tighter hero and timeline. */
.gp-presidents-page {
    margin-top: 26px;
}

.gp-presidents-hero {
    padding: 24px 30px 22px;
}

.gp-presidents-deck {
    margin-top: 10px;
}

.gp-presidents-resources {
    margin-top: 17px;
    padding-top: 15px;
}

.gp-presidents-results {
    margin-top: 23px;
}

.gp-presidents-section-heading {
    margin-bottom: 12px;
    padding-bottom: 9px;
}

/* Reduce the left-hand runway while preserving the timeline cue. */
.gp-presidents-list::before {
    left: 16px;
}

.gp-president-card {
    margin-left: 36px;
    padding: 16px 19px 15px;
}

.gp-president-card::before {
    top: 23px;
    left: -27px;
}

/* Give presidents with portraits a compact identity strip. */
.gp-president-person {
    gap: 13px;
    padding-bottom: 11px;
}

.gp-president-person-media {
    display: flex;
    align-items: center;
    gap: 5px;
}

.gp-president-person-media img {
    max-width: 78px;
    max-height: 88px;
}

.gp-president-event {
    padding-top: 11px;
}

.gp-president-event h3 {
    margin-bottom: 5px;
}

.gp-president-description {
    line-height: 1.52;
}

.gp-president-source {
    margin-top: 8px;
}

/* Modern entries without a PersonId should not look strangely empty.
   Their event content becomes the visual anchor of the card. */
.gp-president-card > .gp-president-event:first-child {
    padding-top: 0;
}

.gp-president-card > .gp-president-event:first-child h3 {
    margin-bottom: 7px;
    font-size: 1.02rem;
}

/* A very subtle interaction cue, useful because many cards contain links. */
.gp-president-card {
    transition: border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}

.gp-president-card:hover {
    border-color: #c4d2c6;
    box-shadow: 0 4px 12px rgba(28, 58, 39, .055);
    transform: translateY(-1px);
}

@media (max-width: 700px) {
    .gp-presidents-page {
        margin-top: 16px;
    }

    .gp-presidents-hero {
        padding: 19px 17px 18px;
    }

    .gp-presidents-results {
        margin-top: 20px;
    }

    .gp-presidents-list::before {
        left: 7px;
    }

    .gp-president-card {
        margin-left: 22px;
        padding: 14px 13px 13px;
    }

    .gp-president-card::before {
        left: -21px;
        top: 20px;
    }

    .gp-president-person {
        gap: 10px;
        padding-bottom: 10px;
    }

    .gp-president-person-media img {
        max-width: 64px;
        max-height: 74px;
    }

    .gp-president-event {
        padding-top: 10px;
    }

    .gp-president-description {
        line-height: 1.48;
    }

    .gp-president-card:hover {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gp-president-card {
        transition: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - SiteMaster/Search Pass 01
   Brand visibility + compact mobile Brick Wall
   ========================================================= */

/* ---------------------------------------------------------
   HEADER BRAND
   The logo icon had become too visually small beside the wordmark.
   --------------------------------------------------------- */

.gp-brand {
    min-width: 285px;
    gap: 10px;
}

.gp-brand-logo {
    width: 72px !important;
    max-width: 72px !important;
    max-height: 66px !important;
    flex: 0 0 72px;
    object-fit: contain;
}

.gp-brand-name {
    font-size: 23px;
}

@media (max-width: 980px) {
    .gp-brand {
        min-width: 245px;
    }

    .gp-brand-logo {
        width: 62px !important;
        max-width: 62px !important;
        max-height: 58px !important;
        flex-basis: 62px;
    }
}

@media (max-width: 620px) {
    .gp-brand {
        min-width: 0;
        gap: 7px;
    }

    .gp-brand-logo {
        width: 54px !important;
        max-width: 54px !important;
        max-height: 52px !important;
        flex-basis: 54px;
    }

    .gp-brand-name {
        font-size: 18px;
        letter-spacing: .04em;
    }
}

@media (max-width: 390px) {
    .gp-brand-logo {
        width: 48px !important;
        max-width: 48px !important;
        max-height: 48px !important;
        flex-basis: 48px;
    }

    .gp-brand-name {
        font-size: 17px;
    }
}

/* ---------------------------------------------------------
   SEARCH PAGE - HIT A BRICK WALL
   When the content split stacks, the green help panel should size to
   its content rather than inheriting the tall desktop/stretch treatment.
   --------------------------------------------------------- */

@media (max-width: 980px) {
    .gp-content-split {
        align-items: start !important;
    }

    .gp-brick-wall {
        min-height: 0 !important;
        height: auto !important;
        align-self: start !important;
        justify-content: flex-start !important;
        padding: 26px 28px !important;
    }

    .gp-brick-wall h2 {
        margin-top: 3px !important;
        margin-bottom: 7px !important;
    }

    .gp-brick-wall p {
        margin-bottom: 0 !important;
        line-height: 1.5 !important;
    }

    .gp-brick-wall-rule {
        margin: 16px 0 !important;
    }

    .gp-brick-wall::after {
        width: 130px !important;
        height: 130px !important;
        right: -54px !important;
        bottom: -54px !important;
    }
}

@media (max-width: 700px) {
    .gp-brick-wall {
        padding: 22px !important;
        border-radius: 9px !important;
    }

    .gp-brick-wall h2 {
        max-width: none !important;
        font-size: 28px !important;
        line-height: 1.1 !important;
    }

    .gp-brick-wall p {
        max-width: none !important;
        font-size: 14px !important;
        line-height: 1.48 !important;
    }

    .gp-brick-wall-rule {
        width: 38px !important;
        margin: 13px 0 !important;
    }

    .gp-brick-wall .gp-button {
        width: auto !important;
        min-height: 40px !important;
    }
}

@media (max-width: 480px) {
    .gp-brick-wall {
        padding: 19px !important;
    }

    .gp-brick-wall h2 {
        font-size: 26px !important;
    }

    .gp-brick-wall::after {
        width: 105px !important;
        height: 105px !important;
        right: -46px !important;
        bottom: -46px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - SiteMaster/Search Pass 02
   Correct favicon + text-only header brand + mobile gap fix
   ========================================================= */

/* ---------------------------------------------------------
   HEADER BRAND
   The detailed script logo does not remain legible at navigation size.
   Use the wordmark + tagline as the header identity instead.
   --------------------------------------------------------- */

.gp-brand {
    min-width: 250px !important;
    gap: 0 !important;
}

.gp-brand-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.gp-brand-name {
    font-size: 25px !important;
    line-height: 1.05 !important;
    letter-spacing: .055em !important;
}

.gp-brand-tagline {
    margin-top: 4px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
}

/* The image was removed from Site.Master; guard against old cached markup. */
.gp-brand-logo {
    display: none !important;
}

@media (max-width: 980px) {
    .gp-brand {
        min-width: 225px !important;
    }

    .gp-brand-name {
        font-size: 22px !important;
    }
}

@media (max-width: 620px) {
    .gp-brand {
        min-width: 0 !important;
    }

    .gp-brand-name {
        font-size: 20px !important;
        letter-spacing: .045em !important;
    }

    .gp-brand-tagline {
        margin-top: 3px !important;
        font-size: 10px !important;
    }
}

@media (max-width: 390px) {
    .gp-brand-name {
        font-size: 18px !important;
    }

    .gp-brand-tagline {
        font-size: 9px !important;
    }
}

/* ---------------------------------------------------------
   SEARCH PAGE - MOBILE BRICK WALL FOLLOW-ON GAP
   The green panel is now compact, but the old two-column CSS-grid can still
   preserve a tall first grid row based on the Stories & History column.
   On stacked layouts, switch this section to normal block flow so the next
   section begins immediately after the Brick Wall card.
   --------------------------------------------------------- */

@media (max-width: 980px) {
    .gp-content-split {
        display: block !important;
        height: auto !important;
        min-height: 0 !important;
        margin-top: 40px !important;
    }

    .gp-content-split > .gp-brick-wall,
    .gp-content-split > .gp-archive {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .gp-content-split > .gp-archive {
        margin-top: 18px !important;
    }
}

@media (max-width: 700px) {
    .gp-content-split {
        margin-top: 32px !important;
    }

    .gp-content-split > .gp-archive {
        margin-top: 14px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - SiteMaster/Search Pass 03
   Restore readable header logo + featured gift mobile fix
   ========================================================= */

/* ---------------------------------------------------------
   HEADER LOGO
   Restore the graphic, but display it at a width that respects its
   wide aspect ratio. The earlier 48-72px treatment made it only a few
   pixels tall and therefore unreadable.
   --------------------------------------------------------- */

.gp-brand {
    min-width: 345px !important;
    gap: 11px !important;
}

.gp-brand-logo {
    display: block !important;
    width: 106px !important;
    max-width: 106px !important;
    height: auto !important;
    max-height: none !important;
    flex: 0 0 106px !important;
    object-fit: contain !important;
}

.gp-brand-name {
    font-size: 23px !important;
}

.gp-brand-tagline {
    margin-top: 3px !important;
    font-size: 11px !important;
}

@media (max-width: 1020px) {
    .gp-brand {
        min-width: 300px !important;
    }

    .gp-brand-logo {
        width: 88px !important;
        max-width: 88px !important;
        flex-basis: 88px !important;
    }

    .gp-brand-name {
        font-size: 21px !important;
    }
}

@media (max-width: 620px) {
    .gp-brand {
        min-width: 0 !important;
        gap: 7px !important;
    }

    .gp-brand-logo {
        width: 72px !important;
        max-width: 72px !important;
        flex-basis: 72px !important;
    }

    .gp-brand-name {
        font-size: 18px !important;
        letter-spacing: .04em !important;
    }

    .gp-brand-tagline {
        font-size: 9px !important;
    }
}

@media (max-width: 390px) {
    .gp-brand-logo {
        width: 64px !important;
        max-width: 64px !important;
        flex-basis: 64px !important;
    }

    .gp-brand-name {
        font-size: 17px !important;
    }
}

/* ---------------------------------------------------------
   SEARCH PAGE - FEATURED GIFT AREA ON MOBILE
   ViewData("featured") contains legacy nested flex markup. On a narrow
   phone those old flex widths collapse the product copy into a pencil-thin
   column. Flatten the legacy layout only inside this modern section.
   --------------------------------------------------------- */

@media (max-width: 700px) {
    .gp-featured-products {
        display: block !important;
        width: 100% !important;
        padding: 20px !important;
    }

    .gp-featured-products-content {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        margin-top: 14px !important;
        font-size: 13px !important;
        line-height: 1.5 !important;
        overflow-wrap: anywhere;
    }

    .gp-featured-products-content .flex-container,
    .gp-featured-products-content [class*="flex-container"] {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 0 12px !important;
        padding: 0 !important;
    }

    .gp-featured-products-content .flex-item,
    .gp-featured-products-content .flex-item-no-border,
    .gp-featured-products-content .flex-item-no-border-centered,
    .gp-featured-products-content .flex-item-centered,
    .gp-featured-products-content [class*="flex-item"] {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 0 10px !important;
        padding: 0 !important;
        text-align: left !important;
        flex: none !important;
    }

    .gp-featured-products-content p,
    .gp-featured-products-content div,
    .gp-featured-products-content span,
    .gp-featured-products-content a {
        max-width: 100% !important;
        min-width: 0 !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
    }

    .gp-featured-products-content img {
        display: block !important;
        width: auto !important;
        max-width: min(160px, 100%) !important;
        height: auto !important;
        margin: 0 0 10px !important;
        object-fit: contain !important;
    }

    .gp-featured-products .gp-more-link {
        display: inline-block !important;
        margin-top: 8px !important;
        white-space: normal !important;
    }
}

@media (max-width: 420px) {
    .gp-featured-products {
        padding: 17px !important;
    }

    .gp-featured-products-content {
        font-size: 12.5px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - About Us Pass 01
   ========================================================= */

.gp-about-page {
    width: min(var(--gp-max), calc(100% - 40px));
    margin: 38px auto 0;
    color: var(--gp-ink);
}

.gp-about-hero {
    padding: 44px 48px;
    background: #fbfcf9;
    border: 1px solid #d8e1d7;
    border-left: 5px solid var(--gp-green);
    border-radius: 12px;
}

.gp-about-hero h1 {
    margin: 7px 0 10px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(42px, 5vw, 64px);
    line-height: 1.02;
}

.gp-about-lead {
    max-width: 820px;
    margin: 0;
    color: #405747;
    font-size: 18px;
    line-height: 1.65;
}

.gp-about-since {
    display: flex;
    align-items: baseline;
    gap: 16px;
    margin-top: 25px;
    padding-top: 20px;
    border-top: 1px solid #dce3da;
    color: #506257;
    font-size: 14px;
}

.gp-about-since strong {
    color: var(--gp-green-deep);
    white-space: nowrap;
}

.gp-about-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 32px;
    align-items: start;
    margin-top: 32px;
}

.gp-about-main {
    min-width: 0;
}

.gp-about-section {
    margin-bottom: 24px;
    padding: 34px 38px;
    background: #fff;
    border: 1px solid #dbe2d9;
    border-radius: 11px;
}

.gp-about-section h2,
.gp-about-welcome h2,
.gp-about-aside h2 {
    margin: 5px 0 18px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
}

.gp-about-section h2 {
    font-size: 30px;
}

.gp-about-section h3 {
    margin: 25px 0 8px;
    color: #234d33;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
}

.gp-about-section p {
    margin: 0 0 14px;
    line-height: 1.72;
}

.gp-about-section p:last-child {
    margin-bottom: 0;
}

.gp-about-section a {
    font-weight: 650;
}

.gp-about-callout {
    margin: 20px 0 !important;
    padding: 17px 20px;
    background: #f3f7f1;
    border-left: 4px solid var(--gp-gold);
    border-radius: 0 7px 7px 0;
    color: #294831;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
}

.gp-about-feature-grid,
.gp-about-team-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.gp-about-feature,
.gp-about-team-grid article {
    padding: 21px;
    background: #f8faf7;
    border: 1px solid #dce4da;
    border-radius: 9px;
}

.gp-about-feature h3,
.gp-about-team-grid article h3 {
    margin-top: 0;
}

.gp-about-team-you {
    background: #eef5ed !important;
    border-color: #c7d9c5 !important;
}

.gp-about-trust {
    border-left: 4px solid var(--gp-green);
}

.gp-about-moments {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gp-about-moments li {
    position: relative;
    padding: 14px 16px 14px 42px;
    background: #f8faf7;
    border: 1px solid #e0e5de;
    border-radius: 8px;
    line-height: 1.55;
}

.gp-about-moments li::before {
    content: "✓";
    position: absolute;
    left: 16px;
    top: 14px;
    color: var(--gp-green);
    font-weight: 800;
}

.gp-about-aside {
    position: sticky;
    top: 102px;
    display: grid;
    gap: 18px;
}

.gp-about-aside-card {
    padding: 25px;
    background: #f4f7f1;
    border: 1px solid #d6e0d4;
    border-radius: 10px;
}

.gp-about-aside-card h2 {
    margin-bottom: 12px;
    font-size: 22px;
}

.gp-about-aside-card blockquote {
    margin: 14px 0;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.25;
}

.gp-about-aside-card p,
.gp-about-aside-card li {
    color: #4c6051;
    font-size: 14px;
    line-height: 1.6;
}

.gp-about-aside-card ul {
    margin: 0;
    padding-left: 19px;
}

.gp-about-welcome {
    padding: 34px 38px;
    background: var(--gp-green-deep);
    border-radius: 11px;
    color: #f2f6f1;
}

.gp-about-welcome .gp-eyebrow {
    color: #d5bd76;
}

.gp-about-welcome h2 {
    color: #fff;
    font-size: 31px;
}

.gp-about-welcome p {
    max-width: 720px;
    line-height: 1.65;
}

.gp-about-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 20px;
}

.gp-about-welcome .gp-button {
    background: #fff;
    color: var(--gp-green-deep);
}

.gp-about-secondary {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid rgba(255,255,255,.5);
    border-radius: 6px;
    color: #fff !important;
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 900px) {
    .gp-about-layout {
        grid-template-columns: 1fr;
    }

    .gp-about-aside {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .gp-about-page {
        width: calc(100% - 28px);
        margin-top: 18px;
    }

    .gp-about-hero {
        padding: 28px 22px;
    }

    .gp-about-hero h1 {
        font-size: 40px;
    }

    .gp-about-lead {
        font-size: 16px;
    }

    .gp-about-since {
        display: block;
    }

    .gp-about-since span {
        display: block;
        margin-top: 5px;
    }

    .gp-about-layout {
        gap: 18px;
        margin-top: 18px;
    }

    .gp-about-section,
    .gp-about-welcome {
        margin-bottom: 16px;
        padding: 25px 21px;
    }

    .gp-about-section h2,
    .gp-about-welcome h2 {
        font-size: 27px;
    }

    .gp-about-feature-grid,
    .gp-about-team-grid,
    .gp-about-aside {
        grid-template-columns: 1fr;
    }

    .gp-about-section p {
        line-height: 1.65;
    }

    .gp-about-callout {
        font-size: 17px;
    }

    .gp-about-aside-card {
        padding: 22px;
    }
}

@media (max-width: 420px) {
    .gp-about-page {
        width: calc(100% - 20px);
    }

    .gp-about-hero {
        padding: 24px 18px;
    }

    .gp-about-hero h1 {
        font-size: 36px;
    }

    .gp-about-section,
    .gp-about-welcome {
        padding: 22px 18px;
    }

    .gp-about-feature,
    .gp-about-team-grid article {
        padding: 18px;
    }
}


/* =========================================================
   GreenerPasture V2 - Brick Wall Pass 01
   ========================================================= */

.gp-brickwall-page {
    width: min(var(--gp-max), calc(100% - 40px));
    margin: 38px auto 0;
}

.gp-brickwall-hero {
    padding: 42px 46px;
    background: var(--gp-green-deep);
    border-radius: 12px;
    color: #eff5ee;
    overflow: hidden;
}

.gp-brickwall-hero .gp-eyebrow {
    color: #d4bc76;
}

.gp-brickwall-hero h1 {
    max-width: 860px;
    margin: 6px 0 13px;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(40px, 5vw, 62px);
    line-height: 1.03;
    text-wrap: balance;
}

.gp-brickwall-lead {
    max-width: 820px;
    margin: 0;
    color: #d5e2d6;
    font-size: 17px;
    line-height: 1.65;
}

.gp-brickwall-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 23px;
}

.gp-brickwall-hero .gp-button {
    background: #fff;
    color: var(--gp-green-deep);
}

.gp-brickwall-secondary {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 6px;
    color: #fff !important;
    font-weight: 700;
    text-decoration: none;
}

.gp-brickwall-guide {
    margin-top: 26px;
    padding: 32px;
    background: #fff;
    border: 1px solid var(--gp-border);
    border-radius: 11px;
}

.gp-brickwall-guide-heading h2,
.gp-brickwall-section-heading h2 {
    margin: 5px 0 7px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 30px;
}

.gp-brickwall-guide-heading p,
.gp-brickwall-section-heading p {
    max-width: 760px;
    margin: 0;
    color: var(--gp-muted);
    line-height: 1.55;
}

.gp-brickwall-guide-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: 22px;
}

.gp-brickwall-guide-grid article {
    padding: 20px;
    background: #f8faf7;
    border: 1px solid #dce4da;
    border-radius: 8px;
}

.gp-brickwall-step {
    display: block;
    margin-bottom: 11px;
    color: #99761d;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
}

.gp-brickwall-guide-grid h3 {
    margin: 0 0 7px;
    color: #294831;
    font-size: 18px;
}

.gp-brickwall-guide-grid p {
    margin: 0;
    color: #53655a;
    font-size: 14px;
    line-height: 1.55;
}

.gp-brickwall-section {
    margin-top: 28px;
    padding: 32px;
    background: #fff;
    border: 1px solid var(--gp-border);
    border-radius: 11px;
}

.gp-brickwall-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 22px;
}

.gp-brickwall-case {
    padding: 20px 21px;
    background: #fbfcfa;
    border: 1px solid #dbe3da;
    border-left: 4px solid var(--gp-green);
    border-radius: 8px;
}

.gp-brickwall-case-title {
    color: var(--gp-green-deep);
    font-size: 17px;
    font-weight: 800;
    letter-spacing: .02em;
}

.gp-brickwall-case-meta {
    margin-top: 3px;
    color: #7b6a35;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.gp-brickwall-case p {
    margin: 12px 0 0;
    line-height: 1.55;
}

.gp-brickwall-case ul {
    margin: 11px 0 0;
    padding-left: 20px;
}

.gp-brickwall-case li {
    margin: 4px 0;
    line-height: 1.45;
}

.gp-brickwall-contact {
    padding-top: 10px;
    border-top: 1px solid #e2e7e1;
    color: #5d6d63;
    font-size: 13px;
}

.gp-brickwall-photos {
    background: #f8faf7;
}

.gp-brickwall-photo-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 22px;
}

.gp-brickwall-photo-card {
    padding: 20px;
    background: #fff;
    border: 1px solid #dbe3da;
    border-radius: 8px;
}

.gp-brickwall-photo-card h3 {
    margin: 0 0 7px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 19px;
}

.gp-brickwall-photo-card p {
    margin: 0;
    color: #4f6257;
    line-height: 1.58;
}

.gp-brickwall-photo-help {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    margin-top: 20px;
    padding: 18px 20px;
    background: #eef4ec;
    border: 1px solid #d3dfd1;
    border-radius: 8px;
}

.gp-brickwall-photo-help strong {
    color: var(--gp-green-deep);
}

.gp-brickwall-photo-help span {
    color: #526458;
    line-height: 1.5;
}

@media (max-width: 900px) {
    .gp-brickwall-guide-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gp-brickwall-list,
    .gp-brickwall-photo-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .gp-brickwall-page {
        width: calc(100% - 28px);
        margin-top: 18px;
    }

    .gp-brickwall-hero {
        padding: 28px 22px;
    }

    .gp-brickwall-hero h1 {
        font-size: 40px;
    }

    .gp-brickwall-lead {
        font-size: 15px;
    }

    .gp-brickwall-guide,
    .gp-brickwall-section {
        margin-top: 18px;
        padding: 24px 21px;
    }

    .gp-brickwall-guide-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .gp-brickwall-case,
    .gp-brickwall-photo-card {
        padding: 18px;
    }

    .gp-brickwall-photo-help {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .gp-brickwall-photo-help .gp-button {
        width: fit-content;
    }
}

@media (max-width: 420px) {
    .gp-brickwall-page {
        width: calc(100% - 20px);
    }

    .gp-brickwall-hero {
        padding: 24px 18px;
    }

    .gp-brickwall-hero h1 {
        font-size: 35px;
    }

    .gp-brickwall-guide,
    .gp-brickwall-section {
        padding: 21px 18px;
    }
}


/* =========================================================
   GreenerPasture V2 - Brick Wall Pass 02
   Mystery photos restored + strategy-number cleanup
   ========================================================= */

/* The numbered 01/02/03/04 labels were decorative and looked like stray data.
   They have been removed from the view; keep headings as the visual anchor. */
.gp-brickwall-guide-grid article {
    padding-top: 21px;
}

/* Mystery-photo cards should actually show the evidence. */
.gp-brickwall-photo-link {
    display: block;
    margin: 0 0 13px;
    padding: 8px;
    background: #f3f6f1;
    border: 1px solid #dce4da;
    border-radius: 7px;
    text-align: center;
}

.gp-brickwall-photo-link:hover {
    border-color: #bdcdbf;
    background: #eef3ec;
}

.gp-brickwall-photo-link img {
    display: block;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 280px !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    border-radius: 4px;
}

.gp-brickwall-photo-card h3 {
    margin-bottom: 11px;
}

@media (max-width: 700px) {
    .gp-brickwall-photo-link {
        padding: 6px;
        margin-bottom: 11px;
    }

    .gp-brickwall-photo-link img {
        max-height: 240px !important;
    }
}

/* =========================================================
   GreenerPasture V2 - Contact Us
   ========================================================= */
.gp-contact-page {
    width: calc(100% - 64px);
    max-width: 1120px;
    margin: 26px auto 54px;
}

.gp-contact-hero,
.gp-contact-shortcuts,
.gp-contact-form-panel {
    box-sizing: border-box;
}

.gp-contact-hero {
    padding: 34px 34px 32px;
    background: #fbfcfa;
    border: 1px solid #d8e1d8;
    border-left: 5px solid #2f6b46;
    border-radius: 12px;
}

.gp-contact-page .gp-eyebrow {
    display: block;
    margin-bottom: 7px;
    color: #846217;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .11em;
}

.gp-contact-hero h1 {
    margin: 0 0 9px;
    color: #003f34;
    font-size: clamp(38px, 5vw, 54px);
    line-height: 1.05;
}

.gp-contact-hero p {
    max-width: 760px;
    margin: 0;
    font-size: 16px;
    line-height: 1.65;
}

.gp-contact-shortcuts,
.gp-contact-form-panel {
    margin-top: 24px;
    padding: 28px 30px 30px;
    background: #fbfcfa;
    border: 1px solid #d8e1d8;
    border-radius: 12px;
}

.gp-contact-section-heading h2 {
    margin: 0;
    color: #003f34;
    font-size: 29px;
    line-height: 1.15;
}

.gp-contact-section-heading > p {
    margin: 8px 0 0;
    max-width: 720px;
    line-height: 1.55;
}

.gp-contact-shortcut-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 21px;
}

.gp-contact-shortcut {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 20px;
    background: #fff;
    border: 1px solid #d8e1d8;
    border-radius: 9px;
}

.gp-contact-shortcut h3 {
    margin: 0 0 8px;
    color: #003f34;
    font-size: 19px;
    line-height: 1.25;
}

.gp-contact-shortcut p {
    margin: 0 0 14px;
    line-height: 1.5;
}

.gp-contact-link {
    margin-top: auto;
    color: #005a42;
    font-weight: 700;
    text-decoration: none;
}

.gp-contact-link:hover,
.gp-contact-link:focus {
    text-decoration: underline;
}

.gp-contact-form-panel form {
    max-width: 850px;
    margin-top: 22px;
}

.gp-contact-field-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.gp-contact-field {
    margin-bottom: 17px;
}

.gp-contact-field label {
    display: block;
    margin-bottom: 6px;
    color: #173b31;
    font-weight: 700;
}

.gp-required {
    color: #8b351f;
}

.gp-contact-input,
.gp-contact-textarea {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    padding: 11px 12px;
    color: #172b25;
    background: #fff;
    border: 1px solid #c9d6cd;
    border-radius: 7px;
    font: inherit;
    line-height: 1.45;
}

.gp-contact-textarea {
    min-height: 190px;
    resize: vertical;
}

.gp-contact-input:focus,
.gp-contact-textarea:focus {
    outline: 2px solid rgba(47,107,70,.18);
    outline-offset: 1px;
    border-color: #2f6b46;
}

.gp-contact-field .field-validation-error,
.gp-contact-field .validation-summary-errors {
    display: block;
    margin-top: 6px;
    color: #8b351f;
    font-size: 13px;
    font-weight: 600;
}

.gp-contact-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 3px;
}

.gp-contact-submit,
.gp-contact-cancel {
    box-sizing: border-box;
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;
    border-radius: 7px;
    font: inherit;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.gp-contact-submit {
    color: #fff;
    background: #2f6b46;
    border: 1px solid #2f6b46;
}

.gp-contact-submit:hover,
.gp-contact-submit:focus {
    background: #25583a;
    border-color: #25583a;
}

.gp-contact-cancel {
    color: #214b3d;
    background: #fff;
    border: 1px solid #c9d6cd;
}

.gp-contact-cancel:hover,
.gp-contact-cancel:focus {
    background: #f3f6f1;
}

@media (max-width: 800px) {
    .gp-contact-shortcut-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .gp-contact-page {
        width: calc(100% - 28px);
        margin-top: 12px;
        margin-bottom: 34px;
    }

    .gp-contact-hero {
        padding: 25px 20px;
    }

    .gp-contact-hero h1 {
        font-size: 38px;
    }

    .gp-contact-shortcuts,
    .gp-contact-form-panel {
        margin-top: 17px;
        padding: 22px 20px;
    }

    .gp-contact-section-heading h2 {
        font-size: 25px;
    }

    .gp-contact-field-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .gp-contact-textarea {
        min-height: 170px;
    }

    .gp-contact-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .gp-contact-submit,
    .gp-contact-cancel {
        width: 100%;
    }
}

@media (max-width: 420px) {
    .gp-contact-page {
        width: calc(100% - 20px);
    }

    .gp-contact-hero,
    .gp-contact-shortcuts,
    .gp-contact-form-panel {
        border-radius: 9px;
    }
}


/* =========================================================
   GreenerPasture V2 - Contact Us Success Pass 01
   ========================================================= */

.gp-contact-success-page {
    width: min(760px, calc(100% - 40px));
    margin: 64px auto 24px;
}

.gp-contact-success-card {
    padding: 46px 48px;
    text-align: center;
    background: #fbfcf9;
    border: 1px solid #d8e1d7;
    border-top: 5px solid var(--gp-green);
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(27, 47, 32, .045);
}

.gp-contact-success-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 18px;
    border-radius: 50%;
    background: #eaf3e8;
    color: var(--gp-green-deep);
    font-size: 30px;
    font-weight: 800;
}

.gp-contact-success-card h1 {
    margin: 5px 0 10px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(36px, 5vw, 50px);
    line-height: 1.05;
}

.gp-contact-success-card p {
    max-width: 560px;
    margin: 0 auto;
    color: #506257;
    font-size: 16px;
    line-height: 1.65;
}

.gp-contact-success-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 11px;
    margin-top: 26px;
}

.gp-contact-success-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid #bdcbbd;
    border-radius: 6px;
    color: var(--gp-green-deep) !important;
    font-weight: 700;
    text-decoration: none !important;
    background: #fff;
}

.gp-contact-success-secondary:hover {
    background: #f1f6ef;
    border-color: #9db29e;
}

@media (max-width: 700px) {
    .gp-contact-success-page {
        width: calc(100% - 28px);
        margin-top: 28px;
    }

    .gp-contact-success-card {
        padding: 34px 23px;
    }

    .gp-contact-success-icon {
        width: 52px;
        height: 52px;
        margin-bottom: 15px;
        font-size: 27px;
    }

    .gp-contact-success-card h1 {
        font-size: 38px;
    }

    .gp-contact-success-card p {
        font-size: 15px;
    }

    .gp-contact-success-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 9px;
        margin-top: 22px;
    }

    .gp-contact-success-actions .gp-button,
    .gp-contact-success-secondary {
        width: 100%;
    }
}


/* =========================================================
   GreenerPasture V2 - Disclaimer Pass 01
   ========================================================= */

.gp-legal-page {
    width: min(var(--gp-max), calc(100% - 40px));
    margin: 38px auto 0;
}

.gp-legal-hero {
    padding: 38px 42px;
    background: #fbfcf9;
    border: 1px solid #d8e1d7;
    border-left: 5px solid var(--gp-green);
    border-radius: 12px;
}

.gp-legal-hero h1 {
    margin: 6px 0 10px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 4.2vw, 52px);
    line-height: 1.06;
    text-wrap: balance;
}

.gp-legal-hero p {
    max-width: 820px;
    margin: 0;
    color: #506257;
    font-size: 16px;
    line-height: 1.6;
}

.gp-legal-layout {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    margin-top: 28px;
}

.gp-legal-nav {
    position: sticky;
    top: 102px;
    display: grid;
    gap: 5px;
    padding: 20px;
    background: #f5f8f3;
    border: 1px solid #d9e2d7;
    border-radius: 9px;
}

.gp-legal-nav .gp-eyebrow {
    margin-bottom: 7px;
}

.gp-legal-nav a {
    display: block;
    padding: 8px 9px;
    color: var(--gp-green-deep);
    border-radius: 6px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
}

.gp-legal-nav a:hover {
    background: #eaf2e8;
}

.gp-legal-content {
    min-width: 0;
}

.gp-legal-section {
    margin-bottom: 18px;
    padding: 30px 34px;
    background: #fff;
    border: 1px solid #dbe2d9;
    border-radius: 10px;
    scroll-margin-top: 100px;
}

.gp-legal-section h2 {
    margin: 5px 0 15px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 27px;
    line-height: 1.2;
}

.gp-legal-section p {
    margin: 0 0 13px;
    color: #34483c;
    line-height: 1.68;
}

.gp-legal-section p:last-child {
    margin-bottom: 0;
}

.gp-legal-section strong {
    color: var(--gp-green-deep);
}

@media (max-width: 900px) {
    .gp-legal-layout {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .gp-legal-nav {
        position: static;
        display: flex;
        flex-wrap: wrap;
        gap: 7px;
    }

    .gp-legal-nav .gp-eyebrow {
        width: 100%;
    }
}

@media (max-width: 700px) {
    .gp-legal-page {
        width: calc(100% - 28px);
        margin-top: 18px;
    }

    .gp-legal-hero {
        padding: 27px 22px;
    }

    .gp-legal-hero h1 {
        font-size: 36px;
    }

    .gp-legal-hero p {
        font-size: 15px;
    }

    .gp-legal-nav {
        padding: 15px;
    }

    .gp-legal-section {
        padding: 23px 20px;
    }

    .gp-legal-section h2 {
        font-size: 24px;
    }

    .gp-legal-section p {
        line-height: 1.62;
    }
}

@media (max-width: 420px) {
    .gp-legal-page {
        width: calc(100% - 20px);
    }

    .gp-legal-hero {
        padding: 23px 18px;
    }

    .gp-legal-hero h1 {
        font-size: 32px;
    }

    .gp-legal-section {
        padding: 20px 17px;
    }
}


/* =========================================================
   GreenerPasture V2 - Cemeteries Index Pass 01
   ========================================================= */

.gp-cemetery-page {
    width: min(var(--gp-max), calc(100% - 40px));
    margin: 38px auto 0;
}

.gp-cemetery-hero {
    padding: 42px 46px;
    background: var(--gp-green-deep);
    border-radius: 12px;
    color: #eef5ed;
}

.gp-cemetery-hero .gp-eyebrow { color: #d5bd76; }

.gp-cemetery-hero h1 {
    max-width: 850px;
    margin: 6px 0 12px;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(40px, 5vw, 60px);
    line-height: 1.03;
}

.gp-cemetery-lead {
    max-width: 820px;
    margin: 0;
    color: #d8e3d8;
    font-size: 17px;
    line-height: 1.65;
}

.gp-cemetery-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 23px;
}

.gp-cemetery-hero .gp-button {
    background: #fff;
    color: var(--gp-green-deep);
}

.gp-cemetery-secondary {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid rgba(255,255,255,.48);
    border-radius: 6px;
    color: #fff !important;
    font-weight: 700;
    text-decoration: none;
}

.gp-cemetery-top-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, .75fr);
    gap: 24px;
    align-items: start;
    margin-top: 26px;
}

.gp-cemetery-guide,
.gp-cemetery-search,
.gp-cemetery-directory {
    padding: 30px 32px;
    background: #fff;
    border: 1px solid #dbe2d9;
    border-radius: 11px;
}

.gp-cemetery-guide h2,
.gp-cemetery-search h2,
.gp-cemetery-directory h2 {
    margin: 5px 0 8px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 29px;
}

.gp-cemetery-intro,
.gp-cemetery-search > p,
.gp-cemetery-directory-heading > p {
    margin: 0;
    color: #526358;
    line-height: 1.55;
}

.gp-cemetery-tips {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 20px;
}

.gp-cemetery-tips article {
    padding: 17px 18px;
    background: #f8faf7;
    border: 1px solid #dfe6dd;
    border-radius: 8px;
}

.gp-cemetery-tips h3 {
    margin: 0 0 6px;
    color: #294a32;
    font-size: 16px;
}

.gp-cemetery-tips p {
    margin: 0;
    color: #56675c;
    font-size: 13.5px;
    line-height: 1.52;
}

.gp-cemetery-search {
    position: sticky;
    top: 102px;
    background: #f6f9f4;
}

.gp-cemetery-form {
    display: grid;
    gap: 13px;
    margin-top: 20px;
}

.gp-cemetery-field {
    display: grid;
    gap: 5px;
}

.gp-cemetery-field label,
.gp-cemetery-check {
    color: #304a38;
    font-size: 13px;
    font-weight: 750;
}

.gp-cemetery-field label span { color: #a23d2f; }
.gp-cemetery-field small { font-weight: 500; color: #69776e; }

.gp-cemetery-field input,
.gp-cemetery-field select {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding: 9px 10px;
    border: 1px solid #bdc9be;
    border-radius: 6px;
    background: #fff;
    color: #273d2e;
    font: inherit;
}

.gp-cemetery-field input:focus,
.gp-cemetery-field select:focus {
    outline: 3px solid rgba(62, 111, 70, .14);
    border-color: var(--gp-green);
}

.gp-cemetery-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.gp-cemetery-check {
    display: flex;
    align-items: center;
    gap: 8px;
}

.gp-cemetery-check input {
    width: 17px;
    height: 17px;
}

.gp-cemetery-submit { width: 100%; }

.gp-cemetery-directory {
    margin-top: 24px;
}

.gp-cemetery-groups {
    display: grid;
    gap: 17px;
    margin-top: 22px;
}

.gp-cemetery-group {
    overflow: hidden;
    border: 1px solid #d9e2d7;
    border-radius: 9px;
    background: #fbfcfa;
}

.gp-cemetery-group > h3 {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 12px;
    align-items: baseline;
    margin: 0;
    padding: 14px 18px;
    background: #edf4eb;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
}

.gp-cemetery-group > h3 span {
    color: #68796d;
    font-family: inherit;
    font-size: 15px;
    font-weight: 500;
}

.gp-cemetery-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    background: #e1e7df;
}

.gp-cemetery-card {
    min-width: 0;
    padding: 15px 17px;
    background: #fff;
}

.gp-cemetery-place {
    margin-bottom: 4px;
    color: #69796e;
    font-size: 12px;
    line-height: 1.35;
}

.gp-cemetery-name {
    line-height: 1.4;
}

.gp-cemetery-name a {
    color: var(--gp-green-deep);
    font-weight: 750;
}

@media (max-width: 980px) {
    .gp-cemetery-top-grid {
        grid-template-columns: 1fr;
    }

    .gp-cemetery-search {
        position: static;
    }

    .gp-cemetery-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .gp-cemetery-page {
        width: calc(100% - 28px);
        margin-top: 18px;
    }

    .gp-cemetery-hero {
        padding: 28px 22px;
    }

    .gp-cemetery-hero h1 {
        font-size: 39px;
    }

    .gp-cemetery-lead {
        font-size: 15px;
    }

    .gp-cemetery-guide,
    .gp-cemetery-search,
    .gp-cemetery-directory {
        padding: 23px 20px;
    }

    .gp-cemetery-tips,
    .gp-cemetery-cards {
        grid-template-columns: 1fr;
    }

    .gp-cemetery-directory {
        margin-top: 18px;
    }
}

@media (max-width: 420px) {
    .gp-cemetery-page {
        width: calc(100% - 20px);
    }

    .gp-cemetery-hero {
        padding: 24px 18px;
    }

    .gp-cemetery-hero h1 {
        font-size: 34px;
    }

    .gp-cemetery-guide,
    .gp-cemetery-search,
    .gp-cemetery-directory {
        padding: 20px 17px;
    }

    .gp-cemetery-form-row {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   GreenerPasture V2 - Cemeteries Index Pass 02
   Collapsible country/state groups
   ========================================================= */

.gp-cemetery-groups {
    gap: 10px !important;
}

.gp-cemetery-group {
    overflow: hidden;
    border: 1px solid #d9e2d7;
    border-radius: 9px;
    background: #fff;
}

.gp-cemetery-group > summary {
    position: relative;
    display: flex;
    align-items: baseline;
    gap: 8px;
    min-height: 52px;
    padding: 14px 46px 14px 18px;
    background: #edf4eb;
    color: var(--gp-green-deep);
    cursor: pointer;
    list-style: none;
    font-family: Georgia, "Times New Roman", serif;
    line-height: 1.25;
    user-select: none;
}

.gp-cemetery-group > summary::-webkit-details-marker {
    display: none;
}

.gp-cemetery-group > summary::after {
    content: "+";
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-52%);
    color: #58735e;
    font-family: Arial, sans-serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
}

.gp-cemetery-group[open] > summary::after {
    content: "−";
}

.gp-cemetery-group > summary:hover {
    background: #e7f0e5;
}

.gp-cemetery-group > summary:focus-visible {
    outline: 3px solid rgba(62, 111, 70, .20);
    outline-offset: -3px;
}

.gp-cemetery-country {
    font-size: 20px;
    font-weight: 700;
}

.gp-cemetery-separator {
    color: #9a8244;
    font-family: Arial, sans-serif;
    font-size: 12px;
}

.gp-cemetery-state {
    color: #5f7365;
    font-size: 16px;
    font-weight: 500;
}

.gp-cemetery-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1px;
    border-top: 1px solid #d9e2d7;
}

.gp-cemetery-card {
    padding: 13px 15px !important;
}

.gp-cemetery-place {
    margin-bottom: 3px !important;
    font-size: 11.5px !important;
}

.gp-cemetery-name {
    font-size: 14px;
}

@media (max-width: 980px) {
    .gp-cemetery-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 700px) {
    .gp-cemetery-group > summary {
        min-height: 48px;
        padding: 12px 42px 12px 14px;
        gap: 6px;
    }

    .gp-cemetery-country {
        font-size: 18px;
    }

    .gp-cemetery-state {
        font-size: 14px;
    }

    .gp-cemetery-group > summary::after {
        right: 14px;
        font-size: 22px;
    }

    .gp-cemetery-cards {
        grid-template-columns: 1fr !important;
    }

    .gp-cemetery-card {
        padding: 12px 14px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Products / Storefront Pass 01
   ========================================================= */

.gp-products-page {
    width: min(var(--gp-max), calc(100% - 40px));
    margin: 38px auto 0;
}

.gp-products-hero {
    padding: 38px 42px;
    background:
        radial-gradient(circle at 90% 15%, rgba(196, 165, 84, .13), transparent 28%),
        #f7faf5;
    border: 1px solid #d7e1d5;
    border-left: 5px solid var(--gp-green);
    border-radius: 12px;
}

.gp-products-hero h1 {
    max-width: 800px;
    margin: 6px 0 14px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px, 5vw, 56px);
    line-height: 1.04;
}

.gp-products-hero-copy {
    max-width: 900px;
    color: #4e6155;
    line-height: 1.62;
}

.gp-products-hero-copy p {
    margin: 0 0 10px;
}

.gp-products-search {
    margin: 24px 0 14px;
    padding: 25px 28px;
    background: #fff;
    border: 1px solid #dbe2d9;
    border-radius: 10px;
}

.gp-products-search h2 {
    margin: 4px 0 14px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 27px;
}

.gp-products-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 9px;
    max-width: 760px;
}

.gp-products-search-row input {
    min-width: 0;
    min-height: 46px;
    padding: 10px 13px;
    border: 1px solid #bcc9bd;
    border-radius: 7px;
    font: inherit;
}

.gp-products-search-row button {
    min-height: 46px;
    padding: 9px 22px;
    border: 1px solid var(--gp-green);
    border-radius: 7px;
    background: var(--gp-green);
    color: #fff;
    font: inherit;
    font-weight: 750;
    cursor: pointer;
}

.gp-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Existing server-side category markup is retained, but presented as a compact
   browse bar rather than a field of oversized flex boxes. */
.gp-products-categories {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: flex-start !important;
    gap: 7px !important;
    margin: 10px 0 18px;
}

.gp-products-categories > .flex-item-no-border-centered {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}

.gp-products-categories > .flex-item-no-border-centered a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid #cfdacf;
    border-radius: 999px;
    background: #fff;
    color: var(--gp-green-deep);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
}

.gp-products-categories > .flex-item-no-border-centered[style*="ff6"] a {
    background: #e8f1e5;
    border-color: #9db69f;
    box-shadow: inset 0 0 0 1px rgba(49, 99, 57, .08);
}

.gp-products-categories > .flex-item-no-border-centered a:hover {
    background: #f1f6ef;
}

.gp-products-section-heading {
    margin: 26px 0 12px;
}

.gp-products-section-heading h2,
.gp-products-results-title {
    margin: 4px 0 12px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 30px;
    line-height: 1.15;
}

.gp-products-results-subtitle {
    margin: -4px 0 15px;
    color: #65756b;
    font-size: 17px;
    font-weight: 600;
}

.gp-products-featured {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px !important;
    align-items: stretch;
    margin-bottom: 25px;
}

/* Featured markup comes from ViewData, so normalize its legacy flex children. */
.gp-products-featured > * {
    min-width: 0;
}

.gp-products-featured .flex-item-no-border-centered,
.gp-products-featured .flex-item {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 14px !important;
    border: 1px solid #dbe2d9 !important;
    border-radius: 9px;
    background: #fff !important;
}

.gp-products-featured img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.gp-products-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
    margin-top: 10px;
}

.gp-product-card {
    min-width: 0;
    padding: 16px;
    background: #fff;
    border: 1px solid #d9e1d8;
    border-radius: 10px;
    box-shadow: 0 2px 7px rgba(32, 56, 38, .04);
    text-align: left;
}

.gp-product-card > a:first-of-type {
    text-decoration: none;
}

.gp-product-image {
    display: block;
    width: 100% !important;
    max-width: 240px;
    height: 220px !important;
    margin: 0 auto 12px;
    object-fit: contain;
}

.gp-product-title {
    display: block;
    min-height: 2.7em;
    margin-bottom: 9px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
}

.gp-product-description {
    display: -webkit-box;
    overflow: hidden;
    margin: 11px 0 12px;
    color: #596a60;
    font-size: 13px;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.gp-product-card img[alt^="Buy"] {
    vertical-align: middle;
}

.gp-products-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    margin: 24px 0 8px;
    padding: 14px 16px;
    background: #f8faf7;
    border: 1px solid #dbe2d9;
    border-radius: 8px;
}

.gp-products-pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 34px;
    padding: 5px 9px;
    border: 1px solid #ced9cf;
    border-radius: 6px;
    background: #fff;
    color: var(--gp-green-deep);
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 1050px) {
    .gp-products-featured {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gp-products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .gp-products-page {
        width: calc(100% - 28px);
        margin-top: 18px;
    }

    .gp-products-hero {
        padding: 28px 22px;
    }

    .gp-products-hero h1 {
        font-size: 38px;
    }

    .gp-products-search {
        padding: 21px 18px;
    }

    .gp-products-search-row {
        grid-template-columns: 1fr;
    }

    .gp-products-search-row button {
        width: 100%;
    }

    .gp-products-categories {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding: 2px 0 8px;
        scrollbar-width: thin;
    }

    .gp-products-categories > .flex-item-no-border-centered {
        flex: 0 0 auto !important;
    }

    .gp-products-featured,
    .gp-products-grid {
        grid-template-columns: 1fr;
    }

    .gp-product-card {
        padding: 15px;
    }

    .gp-product-image {
        height: 235px !important;
    }

    .gp-product-title {
        min-height: 0;
    }
}

@media (max-width: 420px) {
    .gp-products-page {
        width: calc(100% - 20px);
    }

    .gp-products-hero {
        padding: 24px 18px;
    }

    .gp-products-hero h1 {
        font-size: 33px;
    }
}


/* =========================================================
   GreenerPasture V2 - Cemeteries Details Pass 01
   ========================================================= */

.gp-cemetery-detail-page {
    width: min(var(--gp-max), calc(100% - 40px));
    margin: 30px auto 0;
}

.gp-cemetery-detail-back {
    margin-bottom: 12px;
}

.gp-cemetery-detail-back a {
    color: #4f6657;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.gp-cemetery-detail-back a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.gp-cemetery-detail-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 30px;
    align-items: center;
    padding: 34px 38px;
    background: #fbfcf9;
    border: 1px solid #d9e2d7;
    border-left: 5px solid var(--gp-green);
    border-radius: 11px;
}

.gp-cemetery-detail-hero h1 {
    margin: 5px 0 14px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 4.5vw, 50px);
    line-height: 1.08;
}

.gp-cemetery-detail-location {
    display: grid;
    gap: 5px;
    color: #53645a;
    line-height: 1.45;
}

.gp-cemetery-detail-place a {
    color: var(--gp-green-deep);
    font-weight: 750;
}

.gp-cemetery-detail-website {
    overflow-wrap: anywhere;
}

.gp-cemetery-detail-hero-mark {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 112px;
    height: 112px;
    background: #edf4ea;
    border-radius: 50%;
}

.gp-cemetery-detail-hero-mark img {
    max-width: 74px;
    max-height: 74px;
    width: auto;
    height: auto;
}

.gp-cemetery-admin {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.gp-cemetery-admin a {
    padding: 7px 10px;
    border: 1px solid #ccd8cc;
    border-radius: 6px;
    background: #fff;
    color: #45604d;
    font-size: 12px;
    font-weight: 700;
}

.gp-cemetery-detail-ad {
    margin: 18px 0;
    min-height: 0;
}

.gp-cemetery-video {
    display: grid;
    grid-template-columns: minmax(180px, .55fr) minmax(0, 1.45fr);
    gap: 20px;
    align-items: start;
    margin: 20px 0;
    padding: 24px;
    background: #f7faf5;
    border: 1px solid #dae3d8;
    border-radius: 10px;
}

.gp-cemetery-video h2 {
    margin: 4px 0 6px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
}

.gp-cemetery-video-frame {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 8px;
    background: #1b261d;
}

.gp-cemetery-video-frame iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.gp-cemetery-video-subscribe {
    grid-column: 2;
    color: var(--gp-green-deep);
    font-weight: 700;
}

.gp-cemetery-burials {
    margin-top: 24px;
    padding: 30px 32px;
    background: #fff;
    border: 1px solid #dbe2d9;
    border-radius: 11px;
}

.gp-cemetery-burials-heading h2 {
    margin: 4px 0 7px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 30px;
}

.gp-cemetery-burials-heading p {
    max-width: 760px;
    margin: 0;
    color: #596a60;
    line-height: 1.55;
}

.gp-cemetery-person-groups {
    display: grid;
    gap: 18px;
    margin-top: 22px;
}

.gp-cemetery-person-group {
    overflow: hidden;
    border: 1px solid #dce4db;
    border-radius: 9px;
}

.gp-cemetery-person-group > h3 {
    margin: 0;
    padding: 11px 15px;
    background: #edf4eb;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 19px;
}

.gp-cemetery-person-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: #e2e8e1;
}

.gp-cemetery-person-card {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 12px;
    min-width: 0;
    padding: 14px;
    background: #fff;
}

.gp-cemetery-person-photo {
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.gp-cemetery-person-photo img {
    display: block;
    width: 72px !important;
    height: 72px !important;
    object-fit: contain;
    border-radius: 4px;
}

.gp-cemetery-person-copy {
    min-width: 0;
}

.gp-cemetery-person-name {
    margin-bottom: 6px;
    line-height: 1.25;
}

.gp-cemetery-person-name a {
    color: var(--gp-green-deep);
    font-size: 15px;
    font-weight: 800;
}

.gp-cemetery-person-life {
    display: grid;
    gap: 4px;
    color: #5a6a61;
    font-size: 12.5px;
    line-height: 1.45;
}

.gp-cemetery-person-life strong {
    color: #3f5546;
}

.gp-cemetery-person-place {
    margin-left: 3px;
}

.gp-cemetery-person-place a {
    color: #4c6a55;
}

.gp-cemetery-burial-count {
    margin-top: 18px;
    color: #68786e;
    font-size: 12px;
    font-weight: 700;
    text-align: right;
}

.gp-cemetery-empty {
    margin-top: 22px;
    padding: 22px;
    background: #f8faf7;
    border: 1px dashed #cdd8ce;
    border-radius: 8px;
}

.gp-cemetery-empty h3 {
    margin: 0 0 5px;
    color: var(--gp-green-deep);
}

.gp-cemetery-empty p {
    margin: 0;
    color: #596a60;
}

.gp-cemetery-store-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 130px;
    gap: 22px;
    align-items: center;
    margin-top: 22px;
    padding: 22px 24px;
    background: #f6f8f3;
    border: 1px solid #dce3d9;
    border-radius: 9px;
}

.gp-cemetery-store-card h2 {
    margin: 4px 0 7px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 23px;
}

.gp-cemetery-store-card p {
    margin: 0 0 8px;
    color: #5a6b61;
    line-height: 1.5;
}

.gp-cemetery-store-card a {
    color: var(--gp-green-deep);
    font-weight: 700;
}

.gp-cemetery-store-image img {
    display: block;
    width: 120px;
    height: 120px;
    object-fit: contain;
    border-radius: 7px;
}

@media (max-width: 850px) {
    .gp-cemetery-person-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .gp-cemetery-detail-page {
        width: calc(100% - 28px);
        margin-top: 18px;
    }

    .gp-cemetery-detail-hero {
        grid-template-columns: 1fr;
        gap: 18px;
        padding: 26px 21px;
    }

    .gp-cemetery-detail-hero h1 {
        font-size: 36px;
    }

    .gp-cemetery-detail-hero-mark {
        width: 82px;
        height: 82px;
    }

    .gp-cemetery-detail-hero-mark img {
        max-width: 56px;
        max-height: 56px;
    }

    .gp-cemetery-video {
        grid-template-columns: 1fr;
        padding: 20px;
    }

    .gp-cemetery-video-subscribe {
        grid-column: 1;
    }

    .gp-cemetery-burials {
        padding: 23px 19px;
    }

    .gp-cemetery-person-card {
        grid-template-columns: 64px minmax(0, 1fr);
        gap: 10px;
        padding: 12px;
    }

    .gp-cemetery-person-photo img {
        width: 58px !important;
        height: 58px !important;
    }

    .gp-cemetery-store-card {
        grid-template-columns: 1fr;
        padding: 20px;
    }

    .gp-cemetery-store-image img {
        width: 110px;
        height: 110px;
    }
}

@media (max-width: 420px) {
    .gp-cemetery-detail-page {
        width: calc(100% - 20px);
    }

    .gp-cemetery-detail-hero {
        padding: 23px 18px;
    }

    .gp-cemetery-detail-hero h1 {
        font-size: 32px;
    }

    .gp-cemetery-burials {
        padding: 20px 16px;
    }

    .gp-cemetery-person-card {
        grid-template-columns: 1fr;
    }

    .gp-cemetery-person-photo {
        justify-content: flex-start;
    }

    .gp-cemetery-person-photo img {
        width: 72px !important;
        height: 72px !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Account Register / Sign In Pass 01
   ========================================================= */

.gp-account-entry-page {
    width: min(1080px, calc(100% - 40px));
    margin: 38px auto 0;
}

.gp-account-entry-hero {
    padding: 34px 38px;
    background: #fbfcf9;
    border: 1px solid #d9e2d8;
    border-left: 5px solid var(--gp-green);
    border-radius: 11px;
}

.gp-account-entry-hero h1,
.gp-account-already h1 {
    margin: 5px 0 10px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(36px, 4.5vw, 52px);
    line-height: 1.05;
    text-wrap: balance;
}

.gp-account-entry-hero p,
.gp-account-already p {
    max-width: 800px;
    margin: 0;
    color: #526358;
    font-size: 16px;
    line-height: 1.6;
}

.gp-account-alert {
    display: grid;
    gap: 3px;
    margin-top: 16px;
    padding: 13px 15px;
    border: 1px solid #e3c6a0;
    border-radius: 8px;
    background: #fff8ed;
    color: #6b4b1c;
    font-size: 13px;
}

.gp-account-entry-grid {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: 22px;
    align-items: start;
    margin-top: 22px;
}

.gp-account-panel {
    padding: 30px 32px;
    background: #fff;
    border: 1px solid #d9e1d8;
    border-radius: 11px;
    box-shadow: 0 3px 12px rgba(31, 53, 37, .035);
}

.gp-account-signup {
    border-top: 4px solid var(--gp-green);
}

.gp-account-panel-heading h2 {
    margin: 4px 0 6px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 29px;
}

.gp-account-panel-heading p {
    margin: 0;
    color: #637168;
    font-size: 14px;
    line-height: 1.5;
}

.gp-account-benefits {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-top: 17px;
}

.gp-account-benefits > div {
    padding: 12px 13px;
    background: #f5f8f3;
    border: 1px solid #dce4da;
    border-radius: 7px;
}

.gp-account-benefits strong,
.gp-account-benefits span {
    display: block;
}

.gp-account-benefits strong {
    color: #36523e;
    font-size: 13px;
}

.gp-account-benefits span {
    margin-top: 3px;
    color: #68766d;
    font-size: 11.5px;
    line-height: 1.4;
}

.gp-account-note {
    margin: 15px 0 0;
    padding: 11px 13px;
    background: #fcfaf3;
    border-left: 3px solid #b29342;
    color: #625a43;
    font-size: 12px;
    line-height: 1.5;
}

.gp-account-form {
    display: grid;
    gap: 14px;
    margin-top: 20px;
}

.gp-account-field {
    display: grid;
    gap: 5px;
}

.gp-account-field label {
    color: #324a38;
    font-size: 13px;
    font-weight: 750;
}

.gp-account-field input {
    width: 100%;
    min-height: 44px;
    padding: 10px 11px;
    border: 1px solid #bbc8bc;
    border-radius: 7px;
    background: #fff;
    color: #263a2c;
    font: inherit;
}

.gp-account-field input:focus {
    outline: 3px solid rgba(62, 111, 70, .14);
    border-color: var(--gp-green);
}

.gp-account-panel .validation-summary-errors {
    margin-top: 16px;
    padding: 12px 14px;
    border: 1px solid #e2c1bb;
    border-radius: 7px;
    background: #fff7f5;
    color: #8e3025;
    font-size: 12px;
}

.gp-account-panel .validation-summary-errors ul {
    margin: 0;
    padding-left: 18px;
}

.gp-account-panel .field-validation-error {
    color: #8e3025;
    font-size: 12px;
}

.gp-account-temp-password {
    padding: 13px 14px;
    background: #fff8ed;
    border: 1px solid #e7d5b4;
    border-radius: 7px;
    color: #5f5135;
    font-size: 12px;
}

.gp-account-temp-password p {
    margin: 4px 0 8px;
    line-height: 1.45;
}

.gp-account-temp-password code {
    display: block;
    padding: 8px 10px;
    background: #fff;
    border: 1px solid #dfd1b5;
    border-radius: 5px;
    color: #8c2e23;
    font-size: 14px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.gp-account-submit {
    width: 100%;
    min-height: 46px;
}

.gp-account-forgot {
    justify-self: center;
    font-size: 13px;
    font-weight: 700;
}

.gp-account-terms {
    margin: 0;
    color: #68766d;
    font-size: 11.5px;
    line-height: 1.5;
}

.gp-account-terms a {
    font-weight: 700;
}

.gp-account-already {
    max-width: 740px;
    margin: 56px auto 0;
    padding: 38px 40px;
    background: #fbfcf9;
    border: 1px solid #d9e2d8;
    border-top: 5px solid var(--gp-green);
    border-radius: 11px;
    text-align: center;
}

.gp-account-already-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 23px;
}

.gp-account-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid #bcc9bd;
    border-radius: 6px;
    background: #fff;
    color: var(--gp-green-deep) !important;
    font-weight: 700;
    text-decoration: none !important;
}

@media (max-width: 850px) {
    .gp-account-entry-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .gp-account-entry-page {
        width: calc(100% - 28px);
        margin-top: 18px;
    }

    .gp-account-entry-hero {
        padding: 26px 21px;
    }

    .gp-account-entry-hero h1 {
        font-size: 38px;
    }

    .gp-account-panel {
        padding: 25px 21px;
    }

    .gp-account-benefits {
        grid-template-columns: 1fr;
    }

    .gp-account-already {
        margin-top: 26px;
        padding: 30px 22px;
    }
}

@media (max-width: 420px) {
    .gp-account-entry-page {
        width: calc(100% - 20px);
    }

    .gp-account-entry-hero {
        padding: 23px 18px;
    }

    .gp-account-entry-hero h1 {
        font-size: 33px;
    }

    .gp-account-panel {
        padding: 22px 18px;
    }

    .gp-account-panel-heading h2 {
        font-size: 26px;
    }

    .gp-account-already-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .gp-account-already-actions .gp-button,
    .gp-account-secondary {
        width: 100%;
    }
}


/* =========================================================
   GreenerPasture V2 - Account Reset Password Pass 01
   ========================================================= */

.gp-reset-page {
    width: min(900px, calc(100% - 40px));
    margin: 42px auto 0;
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(340px, .75fr);
    gap: 24px;
    align-items: start;
}

.gp-reset-intro,
.gp-reset-card {
    border-radius: 11px;
}

.gp-reset-intro {
    padding: 36px 38px;
    background: #f7faf5;
    border: 1px solid #d9e2d7;
    border-left: 5px solid var(--gp-green);
}

.gp-reset-intro h1 {
    margin: 5px 0 11px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px, 5vw, 50px);
    line-height: 1.05;
}

.gp-reset-intro > p {
    margin: 0;
    color: #53645a;
    font-size: 15px;
    line-height: 1.62;
}

.gp-reset-help {
    display: grid;
    gap: 4px;
    margin-top: 22px;
    padding: 14px 15px;
    background: #eef4ec;
    border: 1px solid #d5dfd3;
    border-radius: 7px;
}

.gp-reset-help strong {
    color: var(--gp-green-deep);
    font-size: 13px;
}

.gp-reset-help span {
    color: #627168;
    font-size: 12px;
    line-height: 1.45;
}

.gp-reset-card {
    padding: 30px 32px;
    background: #fff;
    border: 1px solid #d9e1d8;
    box-shadow: 0 3px 12px rgba(31, 53, 37, .035);
}

.gp-reset-card-heading h2 {
    margin: 4px 0 6px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 28px;
}

.gp-reset-card-heading p {
    margin: 0;
    color: #657269;
    font-size: 13px;
    line-height: 1.5;
}

.gp-reset-form {
    display: grid;
    gap: 14px;
    margin-top: 20px;
}

.gp-reset-field {
    display: grid;
    gap: 5px;
}

.gp-reset-field label {
    color: #334b3a;
    font-size: 13px;
    font-weight: 750;
}

.gp-reset-field input {
    width: 100%;
    min-height: 44px;
    padding: 10px 11px;
    border: 1px solid #bcc9bd;
    border-radius: 7px;
    background: #fff;
    color: #263a2c;
    font: inherit;
}

.gp-reset-field input:focus {
    outline: 3px solid rgba(62, 111, 70, .14);
    border-color: var(--gp-green);
}

.gp-reset-card .validation-summary-errors {
    margin-top: 14px;
    padding: 12px 14px;
    border: 1px solid #e3c0bb;
    border-radius: 7px;
    background: #fff7f5;
    color: #8d2f24;
    font-size: 12px;
}

.gp-reset-card .validation-summary-errors ul {
    margin: 0;
    padding-left: 18px;
}

.gp-reset-card .field-validation-error {
    color: #8d2f24;
    font-size: 12px;
}

.gp-reset-submit {
    width: 100%;
    min-height: 46px;
}

.gp-reset-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 16px;
    padding-top: 2px;
}

.gp-reset-links a {
    color: var(--gp-green-deep);
    font-size: 12.5px;
    font-weight: 700;
}

@media (max-width: 800px) {
    .gp-reset-page {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .gp-reset-page {
        width: calc(100% - 28px);
        margin-top: 18px;
        gap: 17px;
    }

    .gp-reset-intro {
        padding: 27px 22px;
    }

    .gp-reset-intro h1 {
        font-size: 37px;
    }

    .gp-reset-card {
        padding: 25px 21px;
    }
}

@media (max-width: 420px) {
    .gp-reset-page {
        width: calc(100% - 20px);
    }

    .gp-reset-intro {
        padding: 23px 18px;
    }

    .gp-reset-intro h1 {
        font-size: 33px;
    }

    .gp-reset-card {
        padding: 22px 18px;
    }

    .gp-reset-links {
        display: grid;
        grid-template-columns: 1fr;
        text-align: center;
    }
}


/* =========================================================
   GreenerPasture V2 - Change Password Success Pass 01
   ========================================================= */

.gp-account-success-page {
    width: min(720px, calc(100% - 40px));
    margin: 54px auto 0;
}

.gp-account-success-card {
    padding: 42px 44px;
    background: #fbfcf9;
    border: 1px solid #d9e2d8;
    border-top: 5px solid var(--gp-green);
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 16px rgba(31, 53, 37, .035);
}

.gp-account-success-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin: 0 auto 18px;
    border-radius: 50%;
    background: #e5f0e3;
    color: var(--gp-green-deep);
    font-family: Arial, sans-serif;
    font-size: 28px;
    font-weight: 700;
}

.gp-account-success-card h1 {
    margin: 6px 0 10px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 5vw, 46px);
    line-height: 1.08;
}

.gp-account-success-card > p {
    max-width: 520px;
    margin: 0 auto;
    color: #596a60;
    font-size: 15px;
    line-height: 1.6;
}

.gp-account-success-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 25px;
}

@media (max-width: 700px) {
    .gp-account-success-page {
        width: calc(100% - 28px);
        margin-top: 25px;
    }

    .gp-account-success-card {
        padding: 32px 22px;
    }

    .gp-account-success-card h1 {
        font-size: 36px;
    }
}

@media (max-width: 420px) {
    .gp-account-success-page {
        width: calc(100% - 20px);
    }

    .gp-account-success-card {
        padding: 28px 18px;
    }

    .gp-account-success-card h1 {
        font-size: 32px;
    }

    .gp-account-success-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .gp-account-success-actions .gp-button,
    .gp-account-success-actions .gp-account-secondary {
        width: 100%;
    }
}


/* =========================================================
   GreenerPasture V2 - Reset Password Success Pass 01
   ========================================================= */

.gp-account-success-note {
    display: grid;
    gap: 4px;
    max-width: 540px;
    margin: 22px auto 0;
    padding: 14px 16px;
    background: #f2f6ef;
    border: 1px solid #d8e2d6;
    border-radius: 8px;
    text-align: left;
}

.gp-account-success-note strong {
    color: var(--gp-green-deep);
    font-size: 13px;
}

.gp-account-success-note span {
    color: #627168;
    font-size: 12.5px;
    line-height: 1.5;
}

@media (max-width: 420px) {
    .gp-account-success-note {
        padding: 13px 14px;
    }
}


/* =========================================================
   GreenerPasture V2 - Account Bookmarks Pass 01
   ========================================================= */

.gp-bookmarks-page {
    width: min(var(--gp-max), calc(100% - 40px));
    margin: 34px auto 0;
}

.gp-bookmarks-hero {
    padding: 30px 34px;
    background: #f7faf5;
    border: 1px solid #d9e2d7;
    border-left: 5px solid var(--gp-green);
    border-radius: 10px;
}

.gp-bookmarks-hero h1 {
    margin: 5px 0 8px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(36px, 4.5vw, 48px);
    line-height: 1.06;
}

.gp-bookmarks-hero p {
    max-width: 760px;
    margin: 0;
    color: #58685e;
    font-size: 14.5px;
    line-height: 1.58;
}

.gp-bookmarks-content {
    margin-top: 20px;
}

/* Normalize legacy bookmark containers without disturbing their server logic. */
.gp-bookmarks-content .flex-container {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px !important;
    align-items: stretch;
}

.gp-bookmarks-content .flex-item,
.gp-bookmarks-content .flex-item-no-border,
.gp-bookmarks-content .flex-item-no-border-centered {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 16px 17px !important;
    background: #fff !important;
    border: 1px solid #dbe2d9 !important;
    border-radius: 8px;
    text-align: left !important;
}

.gp-bookmarks-content h2,
.gp-bookmarks-content h3 {
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
}

.gp-bookmarks-content h2 {
    margin: 24px 0 11px;
    font-size: 25px;
}

.gp-bookmarks-content h3 {
    margin: 0 0 7px;
    font-size: 18px;
}

.gp-bookmarks-content p {
    color: #5b6b61;
    line-height: 1.5;
}

.gp-bookmarks-content a {
    overflow-wrap: anywhere;
}

.gp-bookmarks-content input[type="submit"],
.gp-bookmarks-content input[type="button"],
.gp-bookmarks-content button {
    min-height: 38px;
    padding: 7px 12px;
    border: 1px solid var(--gp-green);
    border-radius: 6px;
    background: var(--gp-green);
    color: #fff;
    font: inherit;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
}

/* If the legacy view outputs a plain list rather than flex cards, make it readable too. */
.gp-bookmarks-content ul {
    margin: 10px 0 18px;
    padding-left: 20px;
}

.gp-bookmarks-content li {
    margin: 7px 0;
    line-height: 1.5;
}

.gp-bookmarks-content table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid #dbe2d9;
}

.gp-bookmarks-content th,
.gp-bookmarks-content td {
    padding: 11px 12px;
    border-bottom: 1px solid #e3e8e2;
    text-align: left;
    vertical-align: top;
}

.gp-bookmarks-content th {
    background: #edf4eb;
    color: var(--gp-green-deep);
    font-size: 12px;
}

@media (max-width: 760px) {
    .gp-bookmarks-content .flex-container {
        grid-template-columns: 1fr;
    }

    .gp-bookmarks-content table,
    .gp-bookmarks-content tbody,
    .gp-bookmarks-content tr,
    .gp-bookmarks-content td {
        display: block;
        width: 100%;
    }

    .gp-bookmarks-content th {
        display: none;
    }

    .gp-bookmarks-content tr {
        padding: 10px 0;
        border-bottom: 1px solid #dfe6de;
    }

    .gp-bookmarks-content td {
        padding: 5px 12px;
        border: 0;
    }
}

@media (max-width: 700px) {
    .gp-bookmarks-page {
        width: calc(100% - 28px);
        margin-top: 18px;
    }

    .gp-bookmarks-hero {
        padding: 25px 21px;
    }

    .gp-bookmarks-hero h1 {
        font-size: 37px;
    }
}

@media (max-width: 420px) {
    .gp-bookmarks-page {
        width: calc(100% - 20px);
    }

    .gp-bookmarks-hero {
        padding: 22px 18px;
    }

    .gp-bookmarks-hero h1 {
        font-size: 33px;
    }
}


/* =========================================================
   GreenerPasture V2 - Account Update Bookmark Pass 01
   ========================================================= */

.gp-update-bookmark-page {
    width: min(820px, calc(100% - 40px));
    margin: 36px auto 0;
}

.gp-update-bookmark-hero {
    padding: 30px 34px;
    background: #f7faf5;
    border: 1px solid #d9e2d7;
    border-left: 5px solid var(--gp-green);
    border-radius: 10px;
}

.gp-update-bookmark-hero h1 {
    margin: 5px 0 8px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(36px, 4.5vw, 48px);
    line-height: 1.06;
}

.gp-update-bookmark-hero p {
    margin: 0;
    color: #58685e;
    font-size: 14.5px;
    line-height: 1.55;
}

.gp-update-bookmark-card {
    margin-top: 18px;
    padding: 28px 30px;
    background: #fff;
    border: 1px solid #d9e1d8;
    border-radius: 10px;
    box-shadow: 0 3px 12px rgba(31,53,37,.035);
}

.gp-update-bookmark-form,
.gp-update-bookmark-field {
    display: grid;
}

.gp-update-bookmark-form {
    gap: 22px;
}

.gp-update-bookmark-field {
    gap: 7px;
}

.gp-update-bookmark-field label {
    color: #324a38;
    font-size: 14px;
    font-weight: 750;
}

.gp-update-bookmark-hint {
    margin: 0 0 3px;
    color: #66756b;
    font-size: 12.5px;
    line-height: 1.5;
}

.gp-update-bookmark-textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 180px;
    padding: 12px 13px;
    resize: vertical;
    border: 1px solid #bcc9bd;
    border-radius: 7px;
    background: #fff;
    color: #263a2c;
    font: inherit;
    line-height: 1.55;
}

.gp-update-bookmark-textarea:focus {
    outline: 3px solid rgba(62,111,70,.14);
    border-color: var(--gp-green);
}

.gp-update-bookmark-card .field-validation-error {
    color: #8d2f24;
    font-size: 12px;
}

.gp-update-bookmark-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    padding-top: 2px;
}

.gp-update-bookmark-actions .gp-button,
.gp-update-bookmark-actions .gp-account-secondary {
    min-width: 120px;
}

@media (max-width: 700px) {
    .gp-update-bookmark-page {
        width: calc(100% - 28px);
        margin-top: 18px;
    }

    .gp-update-bookmark-hero {
        padding: 25px 21px;
    }

    .gp-update-bookmark-hero h1 {
        font-size: 37px;
    }

    .gp-update-bookmark-card {
        padding: 23px 21px;
    }
}

@media (max-width: 420px) {
    .gp-update-bookmark-page {
        width: calc(100% - 20px);
    }

    .gp-update-bookmark-hero {
        padding: 22px 18px;
    }

    .gp-update-bookmark-hero h1 {
        font-size: 33px;
    }

    .gp-update-bookmark-card {
        padding: 20px 18px;
    }

    .gp-update-bookmark-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .gp-update-bookmark-actions .gp-button,
    .gp-update-bookmark-actions .gp-account-secondary {
        width: 100%;
    }
}


/* =========================================================
   GreenerPasture V2 - Help / Family Tree Guide / Privacy
   ========================================================= */
.gp-help-page,.gp-familytree-guide-page,.gp-privacy-page{width:min(1000px,calc(100% - 40px));margin:34px auto 0}
.gp-help-page .gp-help-content,.gp-familytree-guide-page .gp-familytree-guide-content,.gp-privacy-page .gp-privacy-content{display:block!important}
.gp-help-card,.gp-familytree-guide-content>.flex-item-no-border,.gp-privacy-article{width:auto!important;max-width:none!important;margin:0!important;padding:30px 34px!important;background:#fff!important;border:1px solid #dbe2d9!important;border-radius:10px;text-align:left!important}
.gp-help-card h1,.gp-help-card h2,.gp-help-card h3,.gp-familytree-guide-page h2,.gp-familytree-guide-page h3,.gp-privacy-article h2,.gp-privacy-article h3{color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif}
.gp-help-card p,.gp-familytree-guide-page p,.gp-familytree-guide-page li,.gp-privacy-article p,.gp-privacy-article li{color:#53645a;line-height:1.62}
.gp-help-card img{max-width:52px!important;height:auto!important;vertical-align:middle}
.gp-help-card a,.gp-familytree-guide-page a,.gp-privacy-page a{overflow-wrap:anywhere}
.gp-familytree-guide-hero,.gp-privacy-hero{margin-bottom:18px;padding:31px 35px;background:#f7faf5;border:1px solid #d9e2d7;border-left:5px solid var(--gp-green);border-radius:10px}
.gp-familytree-guide-hero h1,.gp-privacy-hero h1{margin:5px 0 8px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:clamp(36px,4.5vw,49px);line-height:1.06}
.gp-familytree-guide-hero p,.gp-privacy-hero p{max-width:780px;margin:0;color:#58685e;font-size:14.5px;line-height:1.58}
.gp-familytree-guide-page center{display:block;margin:0 0 18px;padding:13px 10px;background:#fbfcf9;border:1px solid #e0e6df;border-radius:8px}
.gp-familytree-guide-page ol{padding-left:24px}
.gp-familytree-guide-page li{margin:0 0 13px;padding-left:3px}
.gp-familytree-guide-page h2{margin:28px 0 12px;font-size:27px}
.gp-familytree-guide-page .flex-item-centered{height:auto!important;min-height:0!important;padding:15px!important}
.gp-privacy-article h2{margin:28px 0 8px;font-size:25px}
.gp-privacy-article h2:first-child{margin-top:0}
.gp-privacy-article p{margin:0 0 14px}
.gp-privacy-article hr{margin:28px auto;border:0;border-top:1px solid #dce3da}
@media(max-width:700px){
.gp-help-page,.gp-familytree-guide-page,.gp-privacy-page{width:calc(100% - 28px);margin-top:18px}
.gp-help-card,.gp-familytree-guide-content>.flex-item-no-border,.gp-privacy-article{padding:23px 21px!important}
.gp-familytree-guide-hero,.gp-privacy-hero{padding:25px 21px}
.gp-familytree-guide-hero h1,.gp-privacy-hero h1{font-size:37px}
}
@media(max-width:420px){
.gp-help-page,.gp-familytree-guide-page,.gp-privacy-page{width:calc(100% - 20px)}
.gp-help-card,.gp-familytree-guide-content>.flex-item-no-border,.gp-privacy-article{padding:20px 18px!important}
.gp-familytree-guide-hero,.gp-privacy-hero{padding:22px 18px}
.gp-familytree-guide-hero h1,.gp-privacy-hero h1{font-size:33px}
}


/* =========================================================
   GreenerPasture V2 - Generic Help Fallback Pass 01
   ========================================================= */
.gp-generic-help-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 20px 0;
}

.gp-generic-help-card {
    display: grid;
    gap: 5px;
    padding: 17px 18px;
    background: #f7faf5;
    border: 1px solid #d9e2d7;
    border-radius: 8px;
    color: inherit !important;
    text-decoration: none !important;
    transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}

.gp-generic-help-card:hover,
.gp-generic-help-card:focus {
    transform: translateY(-1px);
    border-color: #b9cbb8;
    box-shadow: 0 4px 12px rgba(31,53,37,.06);
}

.gp-generic-help-card strong {
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
}

.gp-generic-help-card span {
    color: #5d6d63;
    font-size: 12.5px;
    line-height: 1.48;
}

.gp-generic-help-tip {
    display: grid;
    gap: 4px;
    margin-top: 22px;
    padding: 14px 16px;
    background: #eef4ec;
    border-left: 3px solid var(--gp-green);
    border-radius: 6px;
}

.gp-generic-help-tip strong {
    color: var(--gp-green-deep);
    font-size: 13px;
}

.gp-generic-help-tip span {
    color: #607066;
    font-size: 12.5px;
    line-height: 1.5;
}

@media (max-width: 650px) {
    .gp-generic-help-grid {
        grid-template-columns: 1fr;
        gap: 9px;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors Family Group Pass 01
   ========================================================= */

.gp-family-group-page {
    width: min(1080px, calc(100% - 40px));
    margin: 32px auto 0;
}

.gp-family-group-hero {
    padding: 34px 38px;
    background: #f7faf5;
    border: 1px solid #d9e2d7;
    border-left: 5px solid var(--gp-green);
    border-radius: 11px;
}

.gp-family-group-hero h1 {
    margin: 5px 0 9px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(36px, 4.7vw, 51px);
    line-height: 1.06;
}

.gp-family-group-hero h1 a {
    color: var(--gp-green-deep);
}

.gp-family-group-hero p {
    max-width: 780px;
    margin: 0;
    color: #57685e;
    font-size: 15px;
    line-height: 1.58;
}

.gp-family-group-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 20px;
}

.gp-family-group-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 15px;
    border: 1px solid #bdcabc;
    border-radius: 6px;
    background: #fff;
    color: var(--gp-green-deep) !important;
    font-weight: 700;
    text-decoration: none !important;
}

.gp-family-group-about {
    margin-top: 15px;
    border: 1px solid #dbe3d9;
    border-radius: 9px;
    background: #fff;
}

.gp-family-group-about summary {
    position: relative;
    padding: 15px 44px 15px 18px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

.gp-family-group-about summary::-webkit-details-marker { display: none; }
.gp-family-group-about summary::after {
    content: "+";
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    color: #647767;
    font-family: Arial, sans-serif;
    font-size: 22px;
}
.gp-family-group-about[open] summary::after { content: "−"; }

.gp-family-group-about-body {
    padding: 0 20px 18px;
    border-top: 1px solid #e3e8e1;
}

.gp-family-group-about-body p {
    margin: 14px 0 0;
    color: #56675d;
    line-height: 1.62;
}

.gp-family-group-ad {
    margin: 16px 0;
    min-height: 0;
}

.gp-family-group-marriage {
    margin: 22px 0;
    padding: 24px;
    background: #fff;
    border: 1px solid #d7e0d6;
    border-radius: 11px;
    box-shadow: 0 3px 10px rgba(30,53,36,.035);
}

.gp-family-group-marriage-heading {
    padding-bottom: 14px;
    border-bottom: 1px solid #e1e7df;
}

.gp-family-group-marriage-number {
    display: block;
    margin-bottom: 4px;
    color: #8a6b20;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.gp-family-group-marriage-heading h2 {
    display: inline;
    margin: 0 8px 0 0;
    color: #5b6a60;
    font-size: 13px;
    font-weight: 700;
}

.gp-family-group-primary-person,
.gp-family-group-spouse-heading strong {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
    line-height: 1.3;
}

.gp-family-group-primary-person img,
.gp-family-group-spouse-heading img,
.gp-family-group-marriage .flex-item img {
    max-width: 44px !important;
    max-height: 52px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain;
}

.gp-family-group-marriage > .flex-container,
.gp-family-group-marriage .gp-family-group-facts {
    width: 100% !important;
    max-width: none !important;
}

.gp-family-group-facts {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px !important;
    margin: 12px 0 17px !important;
    background: #e2e8e1;
    border: 1px solid #dde5dc;
    border-radius: 8px;
    overflow: hidden;
}

.gp-family-group-facts > .flex-item-no-border {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 12px 14px !important;
    background: #f9fbf8 !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #5a6a60;
    font-size: 13px;
    line-height: 1.5;
}

.gp-family-group-spouse-heading {
    margin: 20px 0 10px;
    padding: 13px 15px;
    background: #edf4eb;
    border-radius: 7px;
}

.gp-family-group-spouse-heading > span {
    display: block;
    margin-bottom: 3px;
    color: #6a786e;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.gp-family-group-marriage .flex-container {
    gap: 8px;
}

.gp-family-group-marriage .flex-item,
.gp-family-group-marriage .flex-item-no-border {
    min-width: 0 !important;
    overflow-wrap: anywhere;
}

.gp-family-group-marriage .flex-item {
    border-color: #dce4db !important;
    background: #fbfcfa !important;
}

.gp-family-group-children-heading {
    margin: 24px 0 10px;
    padding-top: 17px;
    border-top: 1px solid #dfe6de;
}

.gp-family-group-children-heading h3 {
    margin: 0 0 3px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 23px;
}

.gp-family-group-children-heading p {
    margin: 0;
    color: #68776d;
    font-size: 12.5px;
    line-height: 1.45;
}

.gp-family-group-child-row {
    display: grid !important;
    grid-template-columns: minmax(180px, 1.25fr) repeat(3, minmax(0, 1fr));
    gap: 1px !important;
    margin: 0 0 8px !important;
    background: #e1e7e0;
    border: 1px solid #dbe3da;
    border-radius: 7px;
    overflow: hidden;
}

.gp-family-group-child-row > .flex-item {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 12px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    font-size: 12.5px;
    line-height: 1.45;
}

.gp-family-group-child-name {
    font-weight: 700;
}

.gp-family-group-child-name a {
    color: var(--gp-green-deep);
}

.gp-family-group-child-row font {
    font-size: 12px !important;
}

@media (max-width: 850px) {
    .gp-family-group-child-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .gp-family-group-page {
        width: calc(100% - 28px);
        margin-top: 18px;
    }

    .gp-family-group-hero {
        padding: 26px 21px;
    }

    .gp-family-group-hero h1 {
        font-size: 37px;
    }

    .gp-family-group-marriage {
        padding: 18px;
    }

    .gp-family-group-facts {
        grid-template-columns: 1fr !important;
    }

    .gp-family-group-marriage .flex-container {
        flex-direction: column !important;
    }

    .gp-family-group-marriage .flex-item,
    .gp-family-group-marriage .flex-item-no-border {
        width: 100% !important;
        max-width: none !important;
    }

    .gp-family-group-child-row {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 420px) {
    .gp-family-group-page {
        width: calc(100% - 20px);
    }

    .gp-family-group-hero {
        padding: 23px 18px;
    }

    .gp-family-group-hero h1 {
        font-size: 32px;
    }

    .gp-family-group-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .gp-family-group-actions .gp-button,
    .gp-family-group-secondary {
        width: 100%;
    }

    .gp-family-group-marriage {
        padding: 15px;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors Family Group Pass 02
   Classic genealogy Family Group Sheet treatment
   ========================================================= */

.gp-family-group-page {
    width: min(1180px, calc(100% - 34px)) !important;
}

/* The page itself should feel like a printable genealogy worksheet. */
.gp-family-group-marriage {
    padding: 0 !important;
    overflow: hidden;
    border: 1px solid #bfc8bd !important;
    border-radius: 5px !important;
    box-shadow: none !important;
    background:
        linear-gradient(#fff, #fff) padding-box,
        #fff !important;
}

.gp-family-group-marriage-heading {
    display: grid;
    grid-template-columns: 108px minmax(0, 1fr);
    gap: 0;
    align-items: stretch;
    padding: 0 !important;
    border-bottom: 1px solid #bfc8bd !important;
    background: #f4f6f1;
}

.gp-family-group-marriage-number {
    display: flex !important;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 13px 10px;
    border-right: 1px solid #bfc8bd;
    background: #e8eee5;
    color: #516255 !important;
    font-family: Arial, sans-serif;
    font-size: 11px !important;
    letter-spacing: .08em !important;
}

.gp-family-group-marriage-heading h2 {
    display: none !important;
}

.gp-family-group-primary-person {
    display: flex !important;
    align-items: center;
    min-height: 58px;
    padding: 10px 14px;
    color: #183e2d !important;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 21px !important;
    font-weight: 700;
}

.gp-family-group-primary-person::before {
    content: "Husband / Partner";
    flex: 0 0 130px;
    margin-right: 12px;
    color: #667469;
    font-family: Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.gp-family-group-facts {
    margin: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #bfc8bd !important;
    border-radius: 0 !important;
    background: #cfd7cd !important;
}

.gp-family-group-facts > .flex-item-no-border {
    min-height: 66px;
    padding: 10px 12px !important;
    background: #fff !important;
    font-size: 12.5px !important;
    line-height: 1.45 !important;
}

/* Parent blocks should read as rows on a worksheet. */
.gp-family-group-marriage > .flex-container:not(.gp-family-group-facts):not(.gp-family-group-child-row):not(.gp-family-group-husband-legacy) {
    margin: 0 !important;
    gap: 0 !important;
    border-bottom: 1px solid #d0d7cf;
    background: #d0d7cf;
}

.gp-family-group-marriage > .flex-container:not(.gp-family-group-facts):not(.gp-family-group-child-row):not(.gp-family-group-husband-legacy) > .flex-item,
.gp-family-group-marriage > .flex-container:not(.gp-family-group-facts):not(.gp-family-group-child-row):not(.gp-family-group-husband-legacy) > .flex-item-no-border {
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
}

/* Most legacy relationship heading cells become the left label column. */
.gp-family-group-marriage > .flex-container:not(.gp-family-group-facts):not(.gp-family-group-child-row):not(.gp-family-group-husband-legacy) > .flex-item:first-child {
    flex: 0 0 190px !important;
    width: 190px !important;
    padding: 11px 12px !important;
    border-right: 1px solid #d0d7cf !important;
    background: #f5f7f3 !important;
    color: #304a38;
    font-size: 12.5px;
}

/* The nested vital-date rows become the right portion of the same sheet row. */
.gp-family-group-marriage .flex-container .flex-container {
    flex: 1 1 auto;
    margin: 0 !important;
    gap: 0 !important;
    background: #d0d7cf;
}

.gp-family-group-marriage .flex-container .flex-container > .flex-item-no-border {
    flex: 1 1 0 !important;
    width: auto !important;
    min-height: 64px;
    padding: 10px 12px !important;
    border: 0 !important;
    border-right: 1px solid #d0d7cf !important;
    border-radius: 0 !important;
    background: #fff !important;
    font-size: 12px;
    line-height: 1.45;
}

/* Wife / partner row mirrors the husband row. */
.gp-family-group-spouse-heading {
    display: grid !important;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid #bfc8bd;
    border-radius: 0 !important;
    background: #fff !important;
}

.gp-family-group-spouse-heading > span {
    display: flex !important;
    align-items: center;
    margin: 0 !important;
    padding: 11px 12px;
    border-right: 1px solid #bfc8bd;
    background: #eef3eb;
    color: #4e6254;
    font-size: 11px !important;
}

.gp-family-group-spouse-heading strong {
    min-height: 58px;
    padding: 10px 14px;
    font-size: 20px !important;
}

/* Children become the familiar ruled family-group-sheet table. */
.gp-family-group-children-heading {
    margin: 0 !important;
    padding: 13px 14px !important;
    border-top: 2px solid #9eaa9d !important;
    border-bottom: 1px solid #bfc8bd !important;
    background: #e7ede4;
}

.gp-family-group-children-heading h3 {
    font-size: 19px !important;
}

.gp-family-group-children-heading p {
    margin-top: 2px !important;
}

.gp-family-group-child-row {
    grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(150px, 1fr)) !important;
    margin: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #cbd4ca !important;
    border-radius: 0 !important;
    gap: 1px !important;
}

.gp-family-group-child-row > .flex-item {
    min-height: 78px;
    padding: 10px 11px !important;
}

.gp-family-group-child-name {
    background: #f8faf7 !important;
}

.gp-family-group-child-name::before {
    content: "Child";
    display: block;
    margin-bottom: 3px;
    color: #738177;
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.gp-family-group-child-row > .flex-item:nth-child(2)::before {
    content: "Birth";
}
.gp-family-group-child-row > .flex-item:nth-child(3)::before {
    content: "Marriage / Joined";
}
.gp-family-group-child-row > .flex-item:nth-child(4)::before {
    content: "Death";
}

.gp-family-group-child-row > .flex-item:nth-child(n+2)::before {
    display: block;
    margin-bottom: 4px;
    color: #738177;
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.gp-family-group-print {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 15px;
    border: 1px solid #bdcabc;
    border-radius: 6px;
    background: #fff;
    color: var(--gp-green-deep);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

/* Tone down the explanatory elements so the sheet itself dominates. */
.gp-family-group-about {
    margin-bottom: 18px !important;
}

@media (max-width: 850px) {
    .gp-family-group-marriage-heading {
        grid-template-columns: 88px minmax(0, 1fr);
    }

    .gp-family-group-primary-person::before {
        flex-basis: 105px;
    }

    .gp-family-group-spouse-heading {
        grid-template-columns: 150px minmax(0, 1fr);
    }

    .gp-family-group-marriage > .flex-container:not(.gp-family-group-facts):not(.gp-family-group-child-row):not(.gp-family-group-husband-legacy) > .flex-item:first-child {
        flex-basis: 150px !important;
        width: 150px !important;
    }
}

@media (max-width: 700px) {
    .gp-family-group-marriage {
        border-radius: 4px !important;
    }

    .gp-family-group-marriage-heading {
        grid-template-columns: 1fr;
    }

    .gp-family-group-marriage-number {
        justify-content: flex-start;
        border-right: 0;
        border-bottom: 1px solid #bfc8bd;
    }

    .gp-family-group-primary-person {
        display: block !important;
        padding: 11px 13px;
    }

    .gp-family-group-primary-person::before {
        display: block;
        margin: 0 0 4px;
    }

    .gp-family-group-facts {
        grid-template-columns: 1fr !important;
    }

    .gp-family-group-spouse-heading {
        grid-template-columns: 1fr;
    }

    .gp-family-group-spouse-heading > span {
        border-right: 0;
        border-bottom: 1px solid #cbd4ca;
    }

    .gp-family-group-spouse-heading strong {
        padding: 11px 13px;
    }

    .gp-family-group-marriage > .flex-container:not(.gp-family-group-facts):not(.gp-family-group-child-row):not(.gp-family-group-husband-legacy) {
        display: block !important;
    }

    .gp-family-group-marriage > .flex-container:not(.gp-family-group-facts):not(.gp-family-group-child-row):not(.gp-family-group-husband-legacy) > .flex-item:first-child {
        width: 100% !important;
        padding: 9px 11px !important;
        border-right: 0 !important;
        border-bottom: 1px solid #d0d7cf !important;
    }

    .gp-family-group-marriage .flex-container .flex-container {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
    }

    .gp-family-group-child-row {
        grid-template-columns: 1fr !important;
    }

    .gp-family-group-child-row > .flex-item {
        min-height: 0;
        border-bottom: 1px solid #e0e6df !important;
    }
}

@media print {
    .gp-site-header,
    .gp-site-footer,
    .gp-family-group-back,
    .gp-family-group-actions,
    .gp-family-group-about,
    .gp-family-group-ad,
    .gp-footer,
    .gp-cookie-banner {
        display: none !important;
    }

    .gp-family-group-page {
        width: 100% !important;
        margin: 0 !important;
    }

    .gp-family-group-hero {
        padding: 0 0 14px !important;
        border: 0 !important;
        background: #fff !important;
    }

    .gp-family-group-hero .gp-eyebrow,
    .gp-family-group-hero p {
        display: none !important;
    }

    .gp-family-group-hero h1 {
        margin: 0 !important;
        font-size: 22pt !important;
        text-align: center;
    }

    .gp-family-group-marriage {
        break-inside: avoid;
        margin: 14px 0 !important;
        border-color: #777 !important;
    }

    .gp-family-group-child-row,
    .gp-family-group-marriage > .flex-container {
        break-inside: avoid;
    }

    a {
        color: #000 !important;
        text-decoration: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Family Group Pass 03
   Parent row repair
   ========================================================= */

/*
   Pass 02's generic legacy-flex rules were too broad. The parent rows could
   fall back into the old vertical flex layout, which created large blank gaps.
   These explicit parent-row classes make each parent a compact ruled row.
*/
.gp-family-group-parent-row {
    display: grid !important;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    border-bottom: 1px solid #cbd4ca;
    background: #fff !important;
}

.gp-family-group-parent-row > .flex-item {
    display: flex !important;
    align-items: center;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    border: 0 !important;
    border-right: 1px solid #cbd4ca !important;
    border-radius: 0 !important;
    background: #f4f7f2 !important;
    color: #314a39;
    font-size: 12.5px;
    line-height: 1.35;
}

.gp-family-group-parent-row > .flex-item b {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    width: 100%;
}

.gp-family-group-parent-row > .flex-item img {
    width: auto !important;
    height: auto !important;
    max-width: 48px !important;
    max-height: 56px !important;
    margin: 0 3px !important;
    object-fit: contain !important;
}

.gp-family-group-parent-row > .flex-container {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    background: #d8dfd7 !important;
}

.gp-family-group-parent-row > .flex-container > .flex-item-no-border {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 64px;
    margin: 0 !important;
    padding: 10px 12px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: #53645a;
    font-size: 12px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

/* The wife's vital information is a simple two-cell row beneath her name. */
.gp-family-group-spouse-facts {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px !important;
    width: 100% !important;
    margin: 0 !important;
    border-bottom: 1px solid #cbd4ca;
    background: #d8dfd7 !important;
}

.gp-family-group-spouse-facts > .flex-item-no-border {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: #53645a;
    font-size: 12.5px;
    line-height: 1.45;
}

/* Override the broad Pass 02 relationship rules for these explicitly marked rows. */
.gp-family-group-marriage > .gp-family-group-parent-row {
    display: grid !important;
}

.gp-family-group-marriage > .gp-family-group-parent-row > .flex-item:first-child {
    flex: unset !important;
    width: auto !important;
    padding: 10px 12px !important;
}

.gp-family-group-marriage > .gp-family-group-parent-row > .flex-container {
    flex: unset !important;
}

@media (max-width: 700px) {
    .gp-family-group-parent-row {
        grid-template-columns: 1fr;
    }

    .gp-family-group-parent-row > .flex-item {
        border-right: 0 !important;
        border-bottom: 1px solid #cbd4ca !important;
    }

    .gp-family-group-parent-row > .flex-container,
    .gp-family-group-spouse-facts {
        grid-template-columns: 1fr;
    }

    .gp-family-group-parent-row > .flex-container > .flex-item-no-border,
    .gp-family-group-spouse-facts > .flex-item-no-border {
        min-height: 0;
        border-bottom: 1px solid #e0e6df !important;
    }
}

@media print {
    .gp-family-group-parent-row {
        grid-template-columns: 1.55in minmax(0, 1fr) !important;
        break-inside: avoid;
    }

    .gp-family-group-parent-row > .flex-container {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .gp-family-group-parent-row > .flex-item img {
        max-width: 34px !important;
        max-height: 40px !important;
    }
}

/* =========================================================
   GreenerPasture V2 - Family Group Pass 04
   Structural parent-row fix
   ========================================================= */
.gp-family-group-parents-block{width:100%;margin:0;background:#fff}
.gp-family-group-parent-sheet-row{display:grid;grid-template-columns:190px minmax(0,1fr) minmax(0,1fr);width:100%;margin:0;border-bottom:1px solid #c7d0c6;background:#fff}
.gp-family-group-parent-identity,.gp-family-group-parent-vital{min-width:0;padding:10px 12px;box-sizing:border-box}
.gp-family-group-parent-identity{border-right:1px solid #c7d0c6;background:#f3f6f1}
.gp-family-group-parent-vital{border-right:1px solid #d7ded6;color:#53645a;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.gp-family-group-parent-vital:last-child{border-right:0}
.gp-family-group-parent-label{display:block;margin-bottom:6px;color:#344d3b;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.gp-family-group-parent-person{display:flex;align-items:center;flex-wrap:wrap;gap:7px;color:var(--gp-green-deep);font-weight:700;line-height:1.3}
.gp-family-group-parent-person img{width:auto!important;height:auto!important;max-width:48px!important;max-height:58px!important;margin:0!important;object-fit:contain!important}
.gp-family-group-parent-empty{color:#738177}
.gp-family-group-parent-vital strong{color:#3d5544;font-weight:700}
/* Wife facts must remain inside the sheet immediately above her parents. */
.gp-family-group-spouse-facts{margin:0!important;border-bottom:1px solid #c7d0c6!important}
.gp-family-group-children-heading{margin-top:0!important}
@media(max-width:700px){
 .gp-family-group-parent-sheet-row{grid-template-columns:1fr}
 .gp-family-group-parent-identity{border-right:0;border-bottom:1px solid #c7d0c6}
 .gp-family-group-parent-vital{border-right:0;border-bottom:1px solid #e0e6df}
 .gp-family-group-parent-vital:last-child{border-bottom:0}
}
@media print{
 .gp-family-group-parent-sheet-row{grid-template-columns:1.55in minmax(0,1fr) minmax(0,1fr)!important;break-inside:avoid}
 .gp-family-group-parent-person img{max-width:34px!important;max-height:40px!important}
}


/* =========================================================
   GreenerPasture V2 - Ancestors Pedigree Chart Pass 01
   Classic genealogy pedigree treatment
   ========================================================= */

.gp-pedigree-page {
    width: min(1220px, calc(100% - 34px));
    margin: 30px auto 0;
}

.gp-pedigree-hero {
    padding: 32px 36px;
    background: #f7faf5;
    border: 1px solid #d9e2d7;
    border-left: 5px solid var(--gp-green);
    border-radius: 11px;
}

.gp-pedigree-hero h1 {
    margin: 5px 0 9px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(36px, 4.7vw, 51px);
    line-height: 1.06;
}

.gp-pedigree-hero h1 a {
    color: var(--gp-green-deep);
}

.gp-pedigree-hero p {
    max-width: 800px;
    margin: 0;
    color: #57685e;
    font-size: 15px;
    line-height: 1.58;
}

.gp-pedigree-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 20px;
}

.gp-pedigree-secondary,
.gp-pedigree-print {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 15px;
    border: 1px solid #bdcabc;
    border-radius: 6px;
    background: #fff;
    color: var(--gp-green-deep) !important;
    font: inherit;
    font-weight: 700;
    text-decoration: none !important;
    cursor: pointer;
}

.gp-pedigree-about {
    margin-top: 14px;
    border: 1px solid #dbe3d9;
    border-radius: 9px;
    background: #fff;
}

.gp-pedigree-about summary {
    position: relative;
    padding: 15px 44px 15px 18px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

.gp-pedigree-about summary::-webkit-details-marker { display: none; }

.gp-pedigree-about summary::after {
    content: "+";
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    color: #647767;
    font-family: Arial, sans-serif;
    font-size: 22px;
}

.gp-pedigree-about[open] summary::after { content: "−"; }

.gp-pedigree-about-body {
    padding: 0 20px 18px;
    border-top: 1px solid #e3e8e1;
}

.gp-pedigree-about-body p {
    margin: 14px 0 0;
    color: #56675d;
    line-height: 1.62;
}

.gp-pedigree-ad {
    margin: 16px 0;
    min-height: 0;
}

.gp-pedigree-sheet {
    margin: 22px 0 30px;
    padding: 18px;
    background: #fbfaf5;
    border: 1px solid #bfc8bd;
    border-radius: 7px;
}

.gp-pedigree-sheet-title {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 0 2px 12px;
}

.gp-pedigree-sheet-title span {
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 25px;
    font-weight: 700;
}

.gp-pedigree-sheet-title small {
    color: #6b786e;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.gp-pedigree-generation-headings {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin-bottom: 1px;
    background: #bcc6bb;
    border: 1px solid #bcc6bb;
}

.gp-pedigree-generation-headings > div {
    padding: 9px 10px;
    background: #e8eee5;
    color: #4d6253;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .07em;
    text-align: center;
    text-transform: uppercase;
}

.gp-pedigree-table-scroll {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

.gp-pedigree-table {
    width: 100%;
    min-width: 930px;
    table-layout: fixed;
    border-collapse: collapse;
    background: #fff;
}

.gp-pedigree-table td {
    position: relative;
    width: 25%;
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid #bfc8bd;
    vertical-align: middle;
    color: #55655b;
    font-size: 11.5px;
    line-height: 1.42;
    overflow-wrap: anywhere;
}

.gp-pedigree-table td a {
    display: inline-block;
    margin-bottom: 4px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
}

.gp-pedigree-table td:empty,
.gp-pedigree-table td:not(:has(a)) {
    background: #fafbf8;
}

/* Generation shading gives a subtle traditional chart rhythm. */
.gp-pedigree-gen1 { background: #edf3ea !important; }
.gp-pedigree-gen2 { background: #f5f8f3 !important; }
.gp-pedigree-gen3 { background: #fafbf8 !important; }
.gp-pedigree-gen4 { background: #fff !important; }

.gp-pedigree-gen1::before,
.gp-pedigree-gen2::before,
.gp-pedigree-gen3::before,
.gp-pedigree-gen4::before {
    display: block;
    margin-bottom: 5px;
    color: #7a857d;
    font-family: Arial, sans-serif;
    font-size: 8.5px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.gp-pedigree-gen1::before { content: "Person"; }
.gp-pedigree-gen2::before { content: "Parent"; }
.gp-pedigree-gen3::before { content: "Grandparent"; }
.gp-pedigree-gen4::before { content: "Great-grandparent"; }

/*
   The inherited rowspan structure is exactly what a classic four-generation
   pedigree needs. The strong vertical borders visually form the branching
   generations without adding decorative clutter.
*/
.gp-pedigree-table .gp-pedigree-gen1 {
    border-right-width: 2px;
    border-right-color: #889789;
}

.gp-pedigree-table .gp-pedigree-gen2 {
    border-right-width: 2px;
    border-right-color: #9ba89b;
}

.gp-pedigree-table .gp-pedigree-gen3 {
    border-right-width: 2px;
    border-right-color: #aeb9ad;
}

@media (max-width: 700px) {
    .gp-pedigree-page {
        width: calc(100% - 20px);
        margin-top: 18px;
    }

    .gp-pedigree-hero {
        padding: 25px 20px;
    }

    .gp-pedigree-hero h1 {
        font-size: 36px;
    }

    .gp-pedigree-sheet {
        padding: 12px;
    }

    .gp-pedigree-sheet-title {
        display: block;
    }

    .gp-pedigree-sheet-title small {
        display: block;
        margin-top: 3px;
    }

    .gp-pedigree-generation-headings {
        display: none;
    }

    .gp-pedigree-table-scroll {
        padding-bottom: 6px;
    }

    .gp-pedigree-table {
        min-width: 860px;
    }

    .gp-pedigree-table td {
        padding: 9px 10px;
        font-size: 10.5px;
    }

    .gp-pedigree-table td a {
        font-size: 14px;
    }

    .gp-pedigree-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .gp-pedigree-actions .gp-button,
    .gp-pedigree-secondary,
    .gp-pedigree-print {
        width: 100%;
    }
}

@media print {
    .gp-site-header,
    .gp-site-footer,
    .gp-pedigree-actions,
    .gp-pedigree-about,
    .gp-pedigree-ad,
    .gp-footer,
    .gp-cookie-banner {
        display: none !important;
    }

    .gp-pedigree-page {
        width: 100% !important;
        margin: 0 !important;
    }

    .gp-pedigree-hero {
        padding: 0 0 10px !important;
        border: 0 !important;
        background: #fff !important;
    }

    .gp-pedigree-hero .gp-eyebrow,
    .gp-pedigree-hero p {
        display: none !important;
    }

    .gp-pedigree-hero h1 {
        margin: 0 !important;
        text-align: center;
        font-size: 20pt !important;
    }

    .gp-pedigree-sheet {
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: #fff !important;
    }

    .gp-pedigree-sheet-title {
        padding: 5px 0 10px;
    }

    .gp-pedigree-table-scroll {
        overflow: visible !important;
    }

    .gp-pedigree-table {
        min-width: 0 !important;
        width: 100% !important;
    }

    .gp-pedigree-table td {
        padding: 7px 8px !important;
        font-size: 8.5pt !important;
        border-color: #777 !important;
    }

    .gp-pedigree-table td a {
        color: #000 !important;
        font-size: 10pt !important;
        text-decoration: none !important;
    }

    .gp-pedigree-generation-headings {
        display: grid !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Pedigree Chart Pass 02
   Mobile generation view
   ========================================================= */

.gp-pedigree-mobile {
    display: none;
}

@media (max-width: 700px) {
    /* The desktop pedigree keeps its classic four-column shape on larger screens.
       Phones get a purpose-built generation layout instead of a clipped table. */
    .gp-pedigree-sheet {
        display: none !important;
    }

    .gp-pedigree-mobile {
        display: grid;
        gap: 14px;
        margin: 20px 0 28px;
    }

    .gp-pedigree-mobile-generation {
        overflow: hidden;
        border: 1px solid #c8d2c7;
        border-radius: 8px;
        background: #fff;
    }

    .gp-pedigree-mobile-generation > h2 {
        margin: 0;
        padding: 10px 13px;
        border-bottom: 1px solid #c8d2c7;
        background: #e8eee5;
        color: var(--gp-green-deep);
        font-family: Georgia, "Times New Roman", serif;
        font-size: 18px;
    }

    .gp-pedigree-mobile-grid {
        display: grid;
        grid-template-columns: 1fr;
    }

    .gp-pedigree-mobile article {
        display: grid;
        gap: 3px;
        min-width: 0;
        padding: 13px 14px;
        border-bottom: 1px solid #e0e6df;
        background: #fff;
    }

    .gp-pedigree-mobile article:last-child {
        border-bottom: 0;
    }

    .gp-pedigree-mobile article strong {
        display: block;
        margin-bottom: 3px;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 17px;
        line-height: 1.25;
    }

    .gp-pedigree-mobile article strong a {
        color: var(--gp-green-deep);
    }

    .gp-pedigree-mobile article > span:not(.gp-pedigree-mobile-relation) {
        color: #58685e;
        font-size: 12px;
        line-height: 1.4;
        overflow-wrap: anywhere;
    }

    .gp-pedigree-mobile-relation {
        color: #7a6b3d;
        font-size: 9.5px;
        font-weight: 800;
        letter-spacing: .07em;
        text-transform: uppercase;
    }

    .gp-pedigree-mobile-gen1 article {
        background: #f1f6ef;
    }

    .gp-pedigree-mobile-gen2 article {
        background: #f7f9f5;
    }

    .gp-pedigree-mobile-gen3 article {
        background: #fbfcfa;
    }

    .gp-pedigree-mobile-unknown {
        min-height: 56px;
        align-content: center;
        color: #7a867d;
        font-style: italic;
    }
}

@media print {
    .gp-pedigree-mobile {
        display: none !important;
    }

    .gp-pedigree-sheet {
        display: block !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Pedigree Chart Pass 03
   Mobile structure repair
   ========================================================= */
@media (max-width: 700px) {
    .gp-pedigree-page > .gp-pedigree-mobile {
        display: grid !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors ShowPics Pass 01
   Historical photograph / document viewer
   ========================================================= */

.gp-showpic-page {
    width: min(1120px, calc(100% - 34px));
    margin: 30px auto 0;
}

.gp-showpic-record {
    margin: 0 0 22px;
    overflow: hidden;
    border: 1px solid #d2dcd0;
    border-radius: 10px;
    background: #fff;
}

.gp-showpic-main {
    padding: 30px 34px 26px;
}

.gp-showpic-subject {
    padding-bottom: 18px;
    border-bottom: 1px solid #dce3da;
}

.gp-showpic-subject h1 {
    margin: 5px 0 0;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(30px, 4.3vw, 45px);
    line-height: 1.08;
}

.gp-showpic-subject h1 a {
    color: inherit;
}

.gp-showpic-description {
    max-width: 880px;
    margin: 18px auto;
    color: #34483b;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
    line-height: 1.5;
    text-align: center;
}

.gp-showpic-figure {
    display: flex;
    justify-content: center;
    margin: 20px 0 15px;
    padding: 20px;
    border: 1px solid #d5ddd3;
    background: #f4f2eb;
}

.gp-showpic-image,
.gp-showpic-page .windowimage {
    display: block;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 78vh !important;
    margin: 0 auto;
    object-fit: contain;
    box-shadow: 0 2px 9px rgba(31, 49, 37, .12);
}

.gp-showpic-meta {
    display: flex;
    gap: 13px;
    align-items: baseline;
    max-width: 880px;
    margin: 14px auto 8px;
    padding: 12px 14px;
    border-top: 1px solid #dce3da;
    border-bottom: 1px solid #dce3da;
    color: #58685e;
    font-size: 13px;
}

.gp-showpic-meta-label {
    flex: 0 0 auto;
    color: #6e6137;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.gp-showpic-main > a[data-pin-do="buttonPin"] {
    display: block;
    width: fit-content;
    margin: 14px auto 0;
}

.gp-showpic-genealogy {
    margin: 22px 0 28px;
    padding: 24px 28px;
    border: 1px solid #d2dcd0;
    border-left: 5px solid var(--gp-green);
    border-radius: 9px;
    background: #f7faf5;
}

.gp-showpic-genealogy h2 {
    margin: 5px 0 7px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 27px;
}

.gp-showpic-genealogy p {
    max-width: 760px;
    margin: 0 0 16px;
    color: #58685e;
    line-height: 1.55;
}

/* Existing related-place images are restrained so one image cannot take over the page. */
.gp-showpic-page .mediumimage {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 280px !important;
    object-fit: contain;
}

@media (max-width: 700px) {
    .gp-showpic-page {
        width: calc(100% - 20px);
        margin-top: 16px;
    }

    .gp-showpic-main {
        padding: 22px 16px 18px;
    }

    .gp-showpic-subject h1 {
        font-size: 31px;
    }

    .gp-showpic-description {
        margin: 14px 0;
        font-size: 17px;
        text-align: left;
    }

    .gp-showpic-figure {
        margin: 14px -4px 12px;
        padding: 10px;
    }

    .gp-showpic-image,
    .gp-showpic-page .windowimage {
        max-height: 68vh !important;
    }

    .gp-showpic-meta {
        display: block;
        margin-top: 11px;
    }

    .gp-showpic-meta-label {
        display: block;
        margin-bottom: 4px;
    }

    .gp-showpic-genealogy {
        padding: 21px 18px;
    }

    .gp-showpic-genealogy h2 {
        font-size: 24px;
    }
}

@media print {
    .gp-site-header,
    .gp-site-footer,
    .gp-showpic-genealogy,
    .gp-footer,
    .gp-cookie-banner,
    .gp-showpic-main > a[data-pin-do="buttonPin"] {
        display: none !important;
    }

    .gp-showpic-page {
        width: 100% !important;
        margin: 0 !important;
    }

    .gp-showpic-record {
        border: 0 !important;
    }

    .gp-showpic-main {
        padding: 0 !important;
    }

    .gp-showpic-figure {
        border: 0 !important;
        background: #fff !important;
    }

    .gp-showpic-image,
    .gp-showpic-page .windowimage {
        max-height: 8in !important;
        box-shadow: none !important;
    }
}


/* =========================================================
   GreenerPasture V2 - Ancestors Add Father Pass 01
   ========================================================= */

.gp-add-parent-page {
    width: min(1080px, calc(100% - 40px));
    margin: 32px auto 0;
}

.gp-add-parent-hero {
    padding: 31px 35px;
    background: #f7faf5;
    border: 1px solid #d9e2d7;
    border-left: 5px solid var(--gp-green);
    border-radius: 11px;
}

.gp-add-parent-hero h1 {
    margin: 5px 0 8px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(36px, 4.6vw, 49px);
    line-height: 1.06;
}

.gp-add-parent-hero p {
    max-width: 760px;
    margin: 0;
    color: #58685e;
    font-size: 14.5px;
    line-height: 1.58;
}

.gp-add-parent-layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    margin-top: 20px;
}

.gp-add-parent-guide {
    display: grid;
    gap: 12px;
    position: sticky;
    top: 95px;
}

.gp-add-parent-guide-card,
.gp-add-parent-privacy {
    padding: 18px;
    border: 1px solid #d9e2d7;
    border-radius: 9px;
    background: #fff;
}

.gp-add-parent-guide-card h2 {
    margin: 4px 0 7px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
}

.gp-add-parent-guide-card p,
.gp-add-parent-privacy p {
    margin: 0 0 13px;
    color: #5d6c62;
    font-size: 12.5px;
    line-height: 1.5;
}

.gp-add-parent-guide-small p {
    margin-bottom: 0;
}

.gp-add-parent-privacy {
    border-left: 4px solid #a78535;
    background: #fffaf0;
}

.gp-add-parent-privacy strong {
    display: block;
    margin-bottom: 5px;
    color: #67531d;
}

.gp-add-parent-privacy p {
    margin: 0;
    color: #665f4d;
}

.gp-add-parent-form-card {
    padding: 28px 31px;
    border: 1px solid #d9e1d8;
    border-radius: 10px;
    background: #fff;
}

.gp-add-parent-form-heading h2 {
    margin: 4px 0 5px;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 28px;
}

.gp-add-parent-form-heading p {
    margin: 0;
    color: #68766d;
    font-size: 12.5px;
}

.gp-required {
    color: #9b3428;
    font-weight: 800;
}

.gp-add-parent-form {
    display: grid;
    gap: 15px;
    margin-top: 22px;
}

.gp-add-parent-field {
    display: grid;
    gap: 5px;
}

.gp-add-parent-field label,
.gp-add-parent-label {
    color: #324a38;
    font-size: 13px;
    font-weight: 750;
}

.gp-add-parent-field input[type="text"],
.gp-add-parent-field input[type="number"],
.gp-add-parent-field input[type="email"],
.gp-add-parent-field textarea {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 43px;
    padding: 9px 11px;
    border: 1px solid #bbc8bc;
    border-radius: 7px;
    background: #fff;
    color: #263a2c;
    font: inherit;
}

.gp-add-parent-field textarea {
    min-height: 175px;
    resize: vertical;
    line-height: 1.5;
}

.gp-add-parent-field input:focus,
.gp-add-parent-field textarea:focus {
    outline: 3px solid rgba(62,111,70,.14);
    border-color: var(--gp-green);
}

.gp-add-parent-field small {
    color: #708076;
    font-size: 11.5px;
    line-height: 1.4;
}

.gp-add-parent-field .field-validation-error {
    color: #8d2f24;
    font-size: 11.5px;
}

.gp-add-parent-readonly {
    padding: 11px 13px;
    border: 1px solid #dce4db;
    border-radius: 7px;
    background: #f7f9f5;
}

.gp-add-parent-readonly strong {
    color: #435947;
    font-size: 14px;
}

.gp-add-parent-section-heading {
    margin-top: 7px;
    padding: 16px 0 2px;
    border-top: 1px solid #dfe6de;
}

.gp-add-parent-section-heading h3 {
    margin: 3px 0 0;
    color: var(--gp-green-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 21px;
}

.gp-add-parent-grid-2 {
    display: grid;
    grid-template-columns: minmax(140px,.45fr) minmax(0,1fr);
    gap: 12px;
}

.gp-add-parent-check {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 12px 13px;
    border: 1px solid #dce4db;
    border-radius: 7px;
    background: #fafbf9;
    cursor: pointer;
}

.gp-add-parent-check input {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin-top: 1px;
}

.gp-add-parent-check span {
    display: grid;
    gap: 2px;
}

.gp-add-parent-check strong {
    color: #3a503f;
    font-size: 13px;
}

.gp-add-parent-check small {
    color: #6c7a71;
    font-size: 11.5px;
    line-height: 1.4;
}

.gp-add-parent-admin {
    background: #fbfaf4;
}

.gp-add-parent-actions {
    display: flex;
    justify-content: flex-end;
    gap: 9px;
    margin-top: 8px;
    padding-top: 18px;
    border-top: 1px solid #dfe6de;
}

.gp-add-parent-actions .gp-button,
.gp-add-parent-actions .gp-account-secondary {
    min-width: 120px;
}

/* Keep jQuery UI autocomplete above the form cards. */
.ui-autocomplete {
    z-index: 10000 !important;
    max-height: 260px;
    overflow-y: auto;
    overflow-x: hidden;
}

@media (max-width: 850px) {
    .gp-add-parent-layout {
        grid-template-columns: 1fr;
    }

    .gp-add-parent-guide {
        position: static;
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .gp-add-parent-privacy {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .gp-add-parent-page {
        width: calc(100% - 28px);
        margin-top: 18px;
    }

    .gp-add-parent-hero {
        padding: 25px 21px;
    }

    .gp-add-parent-hero h1 {
        font-size: 37px;
    }

    .gp-add-parent-guide {
        grid-template-columns: 1fr;
    }

    .gp-add-parent-privacy {
        grid-column: auto;
    }

    .gp-add-parent-form-card {
        padding: 23px 20px;
    }

    .gp-add-parent-grid-2 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 420px) {
    .gp-add-parent-page {
        width: calc(100% - 20px);
    }

    .gp-add-parent-hero {
        padding: 22px 18px;
    }

    .gp-add-parent-hero h1 {
        font-size: 33px;
    }

    .gp-add-parent-form-card {
        padding: 20px 17px;
    }

    .gp-add-parent-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .gp-add-parent-actions .gp-button,
    .gp-add-parent-actions .gp-account-secondary {
        width: 100%;
    }
}


/* GreenerPasture V2 - Ancestors Add Child Pass 01 */
.gp-add-child-parents dl { margin: 10px 0 0; }
.gp-add-child-parents dl > div { padding: 9px 0; border-top: 1px solid #e1e6df; }
.gp-add-child-parents dt { color:#718078; font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.gp-add-child-parents dd { margin:2px 0 0; color:#344b3a; font-family:Georgia,"Times New Roman",serif; font-size:15px; font-weight:700; overflow-wrap:anywhere; }
.gp-add-child-sex { display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; border:0; }
.gp-add-child-sex legend { width:100%; margin-bottom:2px; color:#324a38; font-size:13px; font-weight:750; }
.gp-add-child-sex label { display:flex; align-items:center; gap:7px; min-width:110px; padding:10px 13px; border:1px solid #d3ddd2; border-radius:7px; background:#fafbf9; cursor:pointer; }
.gp-add-child-sex input { width:17px; height:17px; margin:0; }
.gp-add-child-sex .field-validation-error { width:100%; color:#8d2f24; font-size:11.5px; }


/* =========================================================
   GreenerPasture V2 - Ancestors Add Image Pass 01
   ========================================================= */
.gp-add-image-page {
    width:min(1000px,calc(100% - 40px));
    margin:32px auto 0;
}
.gp-add-image-layout {
    display:grid;
    grid-template-columns:260px minmax(0,1fr);
    gap:22px;
    align-items:start;
    margin-top:20px;
}
.gp-add-image-context {
    display:grid;
    gap:12px;
    position:sticky;
    top:95px;
}
.gp-add-image-context h2 {
    overflow-wrap:anywhere;
}
.gp-add-image-help {
    background:#fbfaf4;
}
.gp-add-image-form-card {
    min-width:0;
}
.gp-optional {
    color:#78857d;
    font-size:11px;
    font-weight:500;
}
.gp-add-image-source-note {
    padding:13px 15px;
    border:1px solid #d9e2d7;
    border-left:4px solid #a78535;
    border-radius:7px;
    background:#fffaf0;
}
.gp-add-image-source-note strong {
    display:block;
    margin-bottom:3px;
    color:#66531f;
    font-size:12.5px;
}
.gp-add-image-source-note p {
    margin:0;
    color:#6a6351;
    font-size:11.5px;
    line-height:1.45;
}
@media(max-width:800px) {
    .gp-add-image-layout { grid-template-columns:1fr; }
    .gp-add-image-context {
        position:static;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:700px) {
    .gp-add-image-page {
        width:calc(100% - 28px);
        margin-top:18px;
    }
    .gp-add-image-context { grid-template-columns:1fr; }
}
@media(max-width:420px) {
    .gp-add-image-page { width:calc(100% - 20px); }
}


/* =========================================================
   GreenerPasture V2 - Ancestors Add Life Event Pass 01
   ========================================================= */
.gp-add-lifeevent-page {
    width:min(1040px,calc(100% - 40px));
    margin:32px auto 0;
}
.gp-add-lifeevent-layout {
    display:grid;
    grid-template-columns:270px minmax(0,1fr);
    gap:22px;
    align-items:start;
    margin-top:20px;
}
.gp-add-lifeevent-context {
    display:grid;
    gap:12px;
    position:sticky;
    top:95px;
}
.gp-add-lifeevent-context h2 { overflow-wrap:anywhere; }
.gp-add-lifeevent-examples { background:#fbfaf4; }
.gp-add-lifeevent-examples p {
    margin:8px 0 0;
    padding-top:8px;
    border-top:1px solid #e5e3d8;
    color:#56665b;
}
.gp-add-lifeevent-examples p:first-of-type {
    margin-top:10px;
}
.gp-add-lifeevent-date-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    padding:12px;
    border:1px solid #e2e5dc;
    border-radius:8px;
}
@media(max-width:820px) {
    .gp-add-lifeevent-layout { grid-template-columns:1fr; }
    .gp-add-lifeevent-context {
        position:static;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .gp-add-lifeevent-context .gp-add-image-source-note { grid-column:1/-1; }
}
@media(max-width:700px) {
    .gp-add-lifeevent-page {
        width:calc(100% - 28px);
        margin-top:18px;
    }
    .gp-add-lifeevent-context { grid-template-columns:1fr; }
    .gp-add-lifeevent-context .gp-add-image-source-note { grid-column:auto; }
}
@media(max-width:480px) {
    .gp-add-lifeevent-page { width:calc(100% - 20px); }
    .gp-add-lifeevent-date-grid { grid-template-columns:1fr; }
}

/* GreenerPasture V2 - Ancestors Add Marriage Pass 01 */
.gp-add-marriage-page{width:min(1000px,calc(100% - 40px));margin:32px auto 0}
.gp-add-marriage-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:22px;align-items:start;margin-top:20px}
.gp-add-marriage-context{display:grid;gap:12px;position:sticky;top:95px}
.gp-add-marriage-couple{margin:10px 0 0}
.gp-add-marriage-couple>div{padding:10px 0;border-top:1px solid #e1e6df}
.gp-add-marriage-couple dt{color:#718078;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.gp-add-marriage-couple dd{margin:3px 0 0;color:#344b3a;font-family:Georgia,"Times New Roman",serif;font-size:15px;font-weight:700;overflow-wrap:anywhere}
.gp-add-marriage-couple dd span{color:#78857d;font-family:inherit;font-weight:400;font-style:italic}
.gp-add-marriage-help{background:#fbfaf4}
@media(max-width:800px){.gp-add-marriage-layout{grid-template-columns:1fr}.gp-add-marriage-context{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.gp-add-marriage-page{width:calc(100% - 28px);margin-top:18px}.gp-add-marriage-context{grid-template-columns:1fr}}
@media(max-width:420px){.gp-add-marriage-page{width:calc(100% - 20px)}}

/* GreenerPasture V2 - Ancestors Add Person Pass 01 */
.gp-add-person-tree-warning{padding:18px;border:1px solid #d8cda9;border-left:4px solid #a78535;border-radius:9px;background:#fffaf0}
.gp-add-person-tree-warning h2{margin:4px 0 7px;color:#67531d;font-family:Georgia,"Times New Roman",serif;font-size:20px}
.gp-add-person-tree-warning p{margin:0 0 13px;color:#665f4d;font-size:12.5px;line-height:1.5}

/* GreenerPasture V2 - Androscoggin Pass 01 */
.gp-androscoggin-page{width:min(1080px,calc(100% - 40px));margin:32px auto 0;color:#34473a}
.gp-androscoggin-hero{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:42px;align-items:center;padding:38px 42px;border:1px solid #d9e2d7;border-left:5px solid var(--gp-green);border-radius:11px;background:#f7faf5}
.gp-androscoggin-hero h1{margin:5px 0 5px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:clamp(42px,6vw,65px);line-height:1}
.gp-androscoggin-subtitle{max-width:650px;margin:10px 0;color:#53655a;font-family:Georgia,"Times New Roman",serif;font-size:21px;line-height:1.35}
.gp-androscoggin-byline{margin:8px 0 22px;color:#6b776f;font-size:13px;font-weight:700}
.gp-androscoggin-actions{display:flex;flex-wrap:wrap;gap:9px}
.gp-androscoggin-cover{text-align:center}.gp-androscoggin-cover img{display:block;width:100%;max-width:210px;margin:auto;border-radius:4px;box-shadow:0 9px 24px rgba(31,52,36,.18)}
.gp-androscoggin-bookbar{display:grid;grid-template-columns:repeat(4,1fr);margin:18px 0 0;border:1px solid #dce4da;border-radius:9px;background:#fff}
.gp-androscoggin-bookbar div{padding:15px 18px;border-right:1px solid #e3e8e1}.gp-androscoggin-bookbar div:last-child{border:0}.gp-androscoggin-bookbar span{display:block;color:#7a877f;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.gp-androscoggin-bookbar strong{display:block;margin-top:3px;color:#38503e;font-size:13px}
.gp-androscoggin-intro{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(240px,.75fr);gap:22px;margin-top:22px}.gp-androscoggin-intro>div,.gp-androscoggin-case{padding:27px 29px;border:1px solid #dce4da;border-radius:9px;background:#fff}.gp-androscoggin-intro h2,.gp-androscoggin-section h2,.gp-androscoggin-contact h2{margin:4px 0 13px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:27px}.gp-androscoggin-intro p{color:#526158;line-height:1.68}
.gp-androscoggin-case{background:#fbfaf4}.gp-androscoggin-case-date{display:grid;gap:1px;margin-top:18px;padding-top:15px;border-top:1px solid #e2e1d7}.gp-androscoggin-case-date strong{color:#765f28;font-family:Georgia,"Times New Roman",serif;font-size:30px}.gp-androscoggin-case-date span{font-size:12px;color:#6c6a5d}
.gp-androscoggin-section{margin-top:22px;padding:29px;border:1px solid #dce4da;border-radius:9px;background:#fff}.gp-androscoggin-heading{max-width:720px;margin-bottom:18px}.gp-androscoggin-heading p{margin:-5px 0 0;color:#68776e;font-size:13px}
.gp-androscoggin-people{columns:2;column-gap:34px;margin:0;padding-left:20px}.gp-androscoggin-people li{break-inside:avoid;margin:0 0 9px;padding-left:3px;color:#53635a;font-size:12.5px;line-height:1.5}
.gp-androscoggin-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.gp-androscoggin-gallery figure{display:flex;align-items:center;justify-content:center;margin:0;min-height:150px;padding:7px;border:1px solid #e0e6df;border-radius:7px;background:#f8faf7}.gp-androscoggin-gallery img{display:block;max-width:100%;max-height:210px;width:auto;height:auto;border-radius:3px}
.gp-androscoggin-toc{columns:2;column-gap:42px;margin:0;padding-left:28px}.gp-androscoggin-toc li{break-inside:avoid;padding:6px 8px;color:#4d5f53;border-bottom:1px dotted #dde3dc;font-size:13px}.gp-androscoggin-appendix{margin-top:12px;padding:10px 14px;border-radius:6px;background:#f5f8f3;color:#47604c;font-weight:700}
.gp-androscoggin-contact{display:flex;justify-content:space-between;gap:25px;align-items:center;margin:22px 0 0;padding:27px 30px;border-radius:9px;background:#edf4eb}.gp-androscoggin-contact h2{margin-bottom:5px}.gp-androscoggin-contact p{margin:0;color:#627066;font-size:13px}
@media(max-width:800px){.gp-androscoggin-hero{grid-template-columns:1fr 180px;gap:25px;padding:30px}.gp-androscoggin-intro{grid-template-columns:1fr}.gp-androscoggin-gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.gp-androscoggin-page{width:calc(100% - 28px);margin-top:18px}.gp-androscoggin-hero{grid-template-columns:1fr;padding:26px 21px}.gp-androscoggin-cover{order:-1}.gp-androscoggin-cover img{max-width:150px}.gp-androscoggin-hero h1{font-size:42px}.gp-androscoggin-subtitle{font-size:18px}.gp-androscoggin-bookbar{grid-template-columns:repeat(2,1fr)}.gp-androscoggin-bookbar div:nth-child(2){border-right:0}.gp-androscoggin-bookbar div:nth-child(-n+2){border-bottom:1px solid #e3e8e1}.gp-androscoggin-section,.gp-androscoggin-intro>div,.gp-androscoggin-case{padding:22px 19px}.gp-androscoggin-people,.gp-androscoggin-toc{columns:1}.gp-androscoggin-gallery{grid-template-columns:repeat(2,1fr)}.gp-androscoggin-contact{align-items:flex-start;flex-direction:column;padding:23px 20px}}
@media(max-width:420px){.gp-androscoggin-page{width:calc(100% - 20px)}.gp-androscoggin-gallery{grid-template-columns:1fr}.gp-androscoggin-gallery figure{min-height:0}.gp-androscoggin-gallery img{max-height:none}.gp-androscoggin-actions{display:grid}.gp-androscoggin-actions a{width:100%;box-sizing:border-box;text-align:center}}

/* GreenerPasture V2 - Ancestors Delete Image Pass 01 */
.gp-delete-record-page{width:min(820px,calc(100% - 40px));margin:32px auto 0}
.gp-delete-record-hero{padding:29px 32px;border:1px solid #d9e2d7;border-left:5px solid var(--gp-green);border-radius:10px;background:#f7faf5}
.gp-delete-record-hero h1{margin:4px 0 7px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:clamp(35px,5vw,46px);line-height:1.05}
.gp-delete-record-hero p{margin:0;color:#5e6d63;font-size:13.5px}
.gp-delete-record-warning{display:flex;gap:14px;align-items:flex-start;margin-top:17px;padding:17px 19px;border:1px solid #dfb6ad;border-left:5px solid #a33b2e;border-radius:9px;background:#fff5f2}
.gp-delete-record-warning-icon{display:flex;flex:0 0 28px;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#a33b2e;color:#fff;font-size:18px;font-weight:900}
.gp-delete-record-warning strong{display:block;color:#7e2d23;font-size:14px}.gp-delete-record-warning p{margin:4px 0 0;color:#715b56;font-size:12.5px;line-height:1.5}
.gp-delete-record-card{margin-top:17px;padding:27px 29px;border:1px solid #dce4da;border-radius:10px;background:#fff}
.gp-delete-record-heading h2{margin:4px 0 5px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:26px}.gp-delete-record-heading p{margin:0;color:#6c7970;font-size:12px}
.gp-delete-record-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:20px 0 0;border:1px solid #dfe5de;border-radius:8px;overflow:hidden}
.gp-delete-record-details>div{min-width:0;padding:14px 16px;border-bottom:1px solid #e4e8e2}.gp-delete-record-details>div:nth-child(odd):not(.gp-delete-record-wide){border-right:1px solid #e4e8e2}.gp-delete-record-details>div:last-child{border-bottom:0}.gp-delete-record-details dt{margin:0 0 4px;color:#78847c;font-size:9.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.gp-delete-record-details dd{margin:0;color:#344b3a;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.gp-delete-record-wide{grid-column:1/-1}.gp-delete-record-code dd,.gp-delete-record-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.gp-delete-record-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:21px;padding-top:19px;border-top:1px solid #e0e5df}
.gp-delete-record-button{min-height:42px;padding:9px 17px;border:1px solid #8d3026;border-radius:6px;background:#9d382c;color:#fff;font:inherit;font-size:12.5px;font-weight:800;cursor:pointer}.gp-delete-record-button:hover{background:#842d23}
@media(max-width:600px){.gp-delete-record-page{width:calc(100% - 28px);margin-top:18px}.gp-delete-record-hero{padding:24px 20px}.gp-delete-record-card{padding:22px 18px}.gp-delete-record-details{grid-template-columns:1fr}.gp-delete-record-details>div,.gp-delete-record-details>div:nth-child(odd):not(.gp-delete-record-wide){grid-column:auto;border-right:0;border-bottom:1px solid #e4e8e2}.gp-delete-record-actions{display:grid}.gp-delete-record-actions a,.gp-delete-record-actions button{box-sizing:border-box;width:100%;text-align:center}}
@media(max-width:420px){.gp-delete-record-page{width:calc(100% - 20px)}}

/* GreenerPasture V2 - Ancestors Delete Life Event Pass 01 */
.gp-delete-record-blocked{display:flex;gap:14px;align-items:flex-start;margin-top:17px;padding:17px 19px;border:1px solid #d8cda9;border-left:5px solid #9a7b2f;border-radius:9px;background:#fffaf0}
.gp-delete-record-blocked-icon{display:flex;flex:0 0 28px;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#8c712d;color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:17px;font-weight:800}
.gp-delete-record-blocked strong{display:block;color:#69551f;font-size:14px}.gp-delete-record-blocked p{margin:4px 0 0;color:#6d644c;font-size:12.5px;line-height:1.5}.gp-delete-record-blocked p br:first-child{display:none}

/* GreenerPasture V2 - Ancestors Delete Marriage Pass 01 */
.gp-delete-marriage-details>div:nth-child(3){border-right:1px solid #e4e8e2}
@media(max-width:600px){.gp-delete-marriage-details>div:nth-child(3){border-right:0}}

/* GreenerPasture V2 - Ancestors Delete Person Pass 01 */
.gp-delete-person-page{width:min(860px,calc(100% - 40px))}
.gp-delete-person-details .gp-delete-person-separator{display:inline-block;margin:0 5px;color:#9aa49d}
.gp-delete-person-details dd:empty:after{content:"Not recorded";color:#8a948e;font-style:italic}

/* GreenerPasture V2 - Ancestors Find Child Pass 01 */
.gp-find-child-page{width:min(980px,calc(100% - 40px));margin:32px auto 0}
.gp-find-child-search-card,.gp-find-child-results{margin-top:18px;padding:26px 29px;border:1px solid #dce4da;border-radius:10px;background:#fff}
.gp-find-child-search-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:15px;margin-top:19px}
.gp-find-child-exact{grid-column:1/-1}
.gp-find-child-search-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:19px;padding-top:18px;border-top:1px solid #e1e6df}
.gp-find-child-empty{padding:10px 3px}.gp-find-child-empty h2{margin:4px 0 8px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:25px}.gp-find-child-empty p{max-width:720px;color:#617067;font-size:13px;line-height:1.55}
.gp-find-child-list{display:grid;gap:16px}.gp-find-child-surname-group{border:1px solid #dfe6de;border-radius:9px;overflow:hidden;background:#fff}.gp-find-child-surname-group>h3{margin:0;padding:10px 15px;background:#f1f6ef;color:#3d5843;font-family:Georgia,"Times New Roman",serif;font-size:18px}
.gp-find-child-person{padding:15px 17px;border-top:1px solid #e6eae5}.gp-find-child-surname-group>h3+.gp-find-child-person{border-top:0}.gp-find-child-person-name{color:#2f5b38;font-size:15px;font-weight:800;line-height:1.4}.gp-find-child-person-name img{vertical-align:middle}.gp-find-child-vitals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin-top:8px;color:#59685f;font-size:12px}.gp-find-child-vitals strong{color:#76837a;font-size:9px;letter-spacing:.06em;text-transform:uppercase}.gp-find-child-parents{margin-top:7px;color:#68766d;font-size:11.5px;font-style:italic}
.gp-find-child-pagination{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:18px;padding-top:17px;border-top:1px solid #e1e6df}.gp-find-child-pagination span{margin-right:3px;color:#758179;font-size:11px;font-weight:800;text-transform:uppercase}.gp-find-child-pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:31px;height:31px;padding:0 7px;border:1px solid #d4ded3;border-radius:5px;background:#f8faf7;color:#35563d;text-decoration:none;font-size:12px;font-weight:700}.gp-find-child-pagination a:hover{background:#edf4eb}
@media(max-width:650px){.gp-find-child-page{width:calc(100% - 28px);margin-top:18px}.gp-find-child-search-card,.gp-find-child-results{padding:22px 18px}.gp-find-child-search-grid{grid-template-columns:1fr}.gp-find-child-exact{grid-column:auto}.gp-find-child-vitals{grid-template-columns:1fr}.gp-find-child-search-actions{display:grid}.gp-find-child-search-actions a,.gp-find-child-search-actions button{box-sizing:border-box;width:100%;text-align:center}}
@media(max-width:420px){.gp-find-child-page{width:calc(100% - 20px)}}

/* GreenerPasture V2 - Ancestors Find Spouse Pass 01 */
.gp-find-spouse-search-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:19px}
.gp-find-spouse-search-grid .gp-find-child-exact{grid-column:1/-1}
@media(max-width:650px){.gp-find-spouse-search-grid{grid-template-columns:1fr}.gp-find-spouse-search-grid .gp-find-child-exact{grid-column:auto}}

/* GreenerPasture V2 - Forever Cousins Pass 01 */
.gp-forever-page{width:min(1080px,calc(100% - 40px));margin:32px auto 0;color:#34473a}
.gp-forever-hero{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:42px;align-items:center;padding:38px 42px;border:1px solid #d9e2d7;border-left:5px solid var(--gp-green);border-radius:11px;background:#f7faf5}
.gp-forever-hero h1{margin:5px 0;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:clamp(44px,6vw,66px);line-height:1}
.gp-forever-subtitle{margin:7px 0;color:#53655a;font-family:Georgia,"Times New Roman",serif;font-size:22px}.gp-forever-byline{margin:7px 0 16px;color:#6d7971;font-size:13px;font-weight:700}.gp-forever-lede{max-width:660px;color:#56675c;line-height:1.6}
.gp-forever-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.gp-forever-cover img{display:block;width:100%;max-width:215px;margin:auto;border-radius:4px;box-shadow:0 9px 24px rgba(31,52,36,.18)}
.gp-forever-bookbar{display:grid;grid-template-columns:repeat(4,1fr);margin-top:18px;border:1px solid #dce4da;border-radius:9px;background:#fff}.gp-forever-bookbar div{padding:15px 18px;border-right:1px solid #e3e8e1}.gp-forever-bookbar div:last-child{border:0}.gp-forever-bookbar span{display:block;color:#7a877f;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.gp-forever-bookbar strong{display:block;margin-top:3px;color:#38503e;font-size:13px}
.gp-forever-intro{display:grid;grid-template-columns:1.35fr 1fr;gap:22px;margin-top:22px}.gp-forever-story,.gp-forever-about,.gp-forever-section,.gp-forever-where{padding:28px 30px;border:1px solid #dce4da;border-radius:9px;background:#fff}.gp-forever-about{background:#fbfaf4}.gp-forever-page h2{margin:4px 0 13px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:27px}.gp-forever-story p,.gp-forever-about p,.gp-forever-section-inner{color:#53635a;line-height:1.65}
.gp-forever-section{margin-top:22px}.gp-forever-surnames p{margin:0;font-size:12.5px;line-height:1.8}
.gp-forever-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:22px;padding:25px;border:1px solid #dce4da;border-radius:9px;background:#fff}.gp-forever-gallery-item{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:7px;border:1px solid #e1e6df;border-radius:7px;background:#f8faf7}.gp-forever-gallery-item img{display:block;max-width:100%;height:auto;max-height:310px;object-fit:contain}
.gp-forever-toc ul{margin-top:5px}.gp-forever-toc h3{margin:20px 0 6px;color:#45604b;font-family:Georgia,"Times New Roman",serif}.gp-forever-toc li{margin:5px 0}
.gp-forever-descendants .gp-forever-section-inner{font-size:12.5px;line-height:1.65}.gp-forever-descendants h2{font-size:25px}
.gp-forever-contact{display:flex;justify-content:space-between;gap:25px;align-items:center;margin-top:22px;padding:27px 30px;border-radius:9px;background:#edf4eb}.gp-forever-contact h2{margin-bottom:5px}.gp-forever-contact p{margin:0;color:#627066;font-size:13px}.gp-forever-where{margin-top:22px}.gp-forever-where p{margin:0;line-height:1.7}
@media(max-width:800px){.gp-forever-hero{grid-template-columns:1fr 180px;gap:25px;padding:30px}.gp-forever-intro{grid-template-columns:1fr}.gp-forever-gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.gp-forever-page{width:calc(100% - 28px);margin-top:18px}.gp-forever-hero{grid-template-columns:1fr;padding:26px 21px}.gp-forever-cover{order:-1}.gp-forever-cover img{max-width:155px}.gp-forever-hero h1{font-size:43px}.gp-forever-bookbar{grid-template-columns:repeat(2,1fr)}.gp-forever-bookbar div:nth-child(2){border-right:0}.gp-forever-bookbar div:nth-child(-n+2){border-bottom:1px solid #e3e8e1}.gp-forever-story,.gp-forever-about,.gp-forever-section,.gp-forever-where{padding:22px 19px}.gp-forever-gallery{grid-template-columns:repeat(2,1fr);padding:18px}.gp-forever-contact{align-items:flex-start;flex-direction:column;padding:23px 20px}}
@media(max-width:420px){.gp-forever-page{width:calc(100% - 20px)}.gp-forever-gallery{grid-template-columns:1fr}.gp-forever-actions{display:grid}.gp-forever-actions a{width:100%;box-sizing:border-box;text-align:center}}

/* GreenerPasture V2 - My Direct Line Pass 01 */
.gp-direct-page{width:min(1000px,calc(100% - 40px));margin:32px auto 0}.gp-direct-hero,.gp-direct-person-card,.gp-direct-section{border:1px solid #dce4da;border-radius:10px;background:#fff}.gp-direct-hero{padding:31px 34px;border-left:5px solid var(--gp-green);background:#f7faf5}.gp-direct-hero h1{margin:4px 0 7px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:clamp(36px,5vw,50px)}.gp-direct-hero p{margin:0;color:#607067}.gp-direct-person-card,.gp-direct-section{margin-top:18px;padding:27px 29px}.gp-direct-person-head h2,.gp-direct-section-heading h2{margin:4px 0 5px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:27px}.gp-direct-person-head p{margin:0;color:#64736a}.gp-direct-vitals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:19px}.gp-direct-vitals>div{padding:13px 15px;border-radius:7px;background:#f5f8f3}.gp-direct-vitals span{display:block;color:#7b877f;font-size:9px;font-weight:800;text-transform:uppercase}.gp-direct-vitals strong,.gp-direct-vitals small{display:block;margin-top:3px;color:#405446}.gp-direct-notes{margin-top:15px;color:#59695f;line-height:1.6}.gp-direct-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.gp-direct-marriage{margin-top:14px;padding:20px;border:1px solid #dfe6de;border-radius:9px}.gp-direct-marriage-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.gp-direct-marriage h3{margin:3px 0;color:#3d5843;font-family:Georgia,"Times New Roman",serif;font-size:20px}.gp-direct-marriage h3 img{width:20px;vertical-align:middle}.gp-direct-marriage-meta{display:flex;flex-wrap:wrap;gap:10px 25px;margin-top:11px;color:#5d6c63;font-size:12.5px}.gp-direct-source{margin-top:8px;color:#78837c;font-size:11px;font-style:italic}.gp-direct-children{margin-top:18px;padding-top:15px;border-top:1px solid #e4e9e3}.gp-direct-children h4{margin:0 0 8px;color:#52675a}.gp-direct-child{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:11px 12px;border-top:1px solid #edf0ec}.gp-direct-child small{display:block;margin-top:3px;color:#77847b}.gp-direct-child-highlight{margin-top:5px;border:1px solid #cdddc9;border-radius:7px;background:#f3f8f1}.gp-direct-follow{display:flex;align-items:center;gap:10px;color:#47644d}.gp-direct-event{padding:15px 0;border-top:1px solid #e5e9e4}.gp-direct-event h3{margin:0;color:#405846;font-family:Georgia,"Times New Roman",serif;font-size:18px}.gp-direct-event small{display:block;margin:3px 0 8px;color:#7a867e;font-style:italic}.gp-direct-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:15px}.gp-direct-images figure{margin:0;padding:9px;border:1px solid #e0e6df;border-radius:7px;background:#f8faf7}.gp-direct-images img{display:block;max-width:100%;height:auto;margin:auto}.gp-direct-images figcaption{margin-top:7px;color:#68766d;font-size:12px}.gp-direct-obituary,.gp-direct-burial{margin-top:18px;padding-top:17px;border-top:1px solid #e3e8e2;line-height:1.6}.gp-direct-burial h3{color:#405846;font-family:Georgia,"Times New Roman",serif}.gp-direct-choice{margin-top:18px;padding:16px 18px;border:1px solid #d8cda9;border-left:5px solid #9a7b2f;border-radius:8px;background:#fffaf0;color:#695b34;font-weight:700}.gp-direct-bottom{text-align:center;margin-top:18px}
@media(max-width:650px){.gp-direct-page{width:calc(100% - 28px);margin-top:18px}.gp-direct-hero,.gp-direct-person-card,.gp-direct-section{padding:22px 18px}.gp-direct-vitals{grid-template-columns:1fr}.gp-direct-section-heading,.gp-direct-marriage-head,.gp-direct-child{align-items:flex-start;flex-direction:column}.gp-direct-images{grid-template-columns:1fr}.gp-direct-follow{width:100%;align-items:flex-start;flex-direction:column}.gp-direct-follow a{width:100%;box-sizing:border-box;text-align:center}}

/* GreenerPasture V2 - Ancestors My People Pass 01 */
.gp-my-people-page{width:min(980px,calc(100% - 40px));margin:32px auto 0}
.gp-my-people-note{display:flex;gap:14px;align-items:flex-start;margin-top:17px;padding:17px 19px;border:1px solid #d8e1d6;border-left:5px solid #758f76;border-radius:9px;background:#f8faf6}.gp-my-people-note-icon{display:flex;flex:0 0 28px;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#657f68;color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:17px;font-weight:800}.gp-my-people-note strong{display:block;color:#405846;font-size:14px}.gp-my-people-note p{margin:4px 0 0;color:#657269;font-size:12.5px;line-height:1.5}
.gp-my-people-card{margin-top:17px;padding:27px 29px;border:1px solid #dce4da;border-radius:10px;background:#fff}.gp-my-people-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:19px}.gp-my-people-heading h2,.gp-my-people-empty h2{margin:4px 0 0;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:27px}.gp-my-people-total{flex:0 0 auto;min-width:74px;padding:9px 13px;border:1px solid #dce4da;border-radius:7px;background:#f7faf5;text-align:center}.gp-my-people-total span{display:block;color:#78847c;font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.gp-my-people-total strong{display:block;margin-top:1px;color:#36513d;font-family:Georgia,"Times New Roman",serif;font-size:23px}
.gp-my-people-surname-group{margin-top:15px;border:1px solid #dfe6de;border-radius:9px;overflow:hidden;background:#fff}.gp-my-people-surname-group>h3{margin:0;padding:10px 15px;background:#f1f6ef;color:#3d5843;font-family:Georgia,"Times New Roman",serif;font-size:19px}.gp-my-people-person{padding:15px 17px;border-top:1px solid #e6eae5}.gp-my-people-surname-group>h3+.gp-my-people-person{border-top:0}.gp-my-people-person-name{color:#2f5b38;font-size:15px;font-weight:800;line-height:1.4}.gp-my-people-vitals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin-top:8px;color:#59685f;font-size:12px;line-height:1.45}.gp-my-people-vitals strong{color:#76837a;font-size:9px;letter-spacing:.06em;text-transform:uppercase}.gp-my-people-empty{padding:24px 4px 12px}.gp-my-people-empty p{max-width:650px;color:#647269;font-size:13px;line-height:1.55}.gp-my-people-pagination{margin-top:21px}
@media(max-width:650px){.gp-my-people-page{width:calc(100% - 28px);margin-top:18px}.gp-my-people-card{padding:22px 18px}.gp-my-people-heading{align-items:flex-start}.gp-my-people-vitals{grid-template-columns:1fr}.gp-my-people-total{min-width:62px}.gp-my-people-person{padding:14px}}
@media(max-width:420px){.gp-my-people-page{width:calc(100% - 20px)}.gp-my-people-heading{display:block}.gp-my-people-total{display:inline-block;margin-top:12px}}

/* GreenerPasture V2 - Ancestors Remove Parent Pass 01 */
.gp-remove-parent-warning{display:flex;gap:14px;align-items:flex-start;margin-top:17px;padding:17px 19px;border:1px solid #cddbc9;border-left:5px solid #55785c;border-radius:9px;background:#f5faf3}.gp-remove-parent-warning-icon{display:flex;flex:0 0 30px;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#55785c;color:#fff;font-size:17px;font-weight:900}.gp-remove-parent-warning strong{display:block;color:#35523c;font-size:14px}.gp-remove-parent-warning p{margin:4px 0 0;color:#5f6e63;font-size:12.5px;line-height:1.5}.gp-remove-parent-target{background:#fafcf9}.gp-remove-parent-missing{color:#8a948e;font-style:italic}.gp-remove-parent-button{min-height:42px;padding:9px 17px;border:1px solid #8a5b28;border-radius:6px;background:#9a6830;color:#fff;font:inherit;font-size:12.5px;font-weight:800;cursor:pointer}.gp-remove-parent-button:hover{background:#805426}
@media(max-width:600px){.gp-remove-parent-button{box-sizing:border-box;width:100%}}

/* GreenerPasture V2 - Ancestors Send Photo Pass 01 */
.gp-send-photo-page{width:min(980px,calc(100% - 40px));margin:32px auto 0}
.gp-send-photo-layout{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(0,1.55fr);gap:20px;margin-top:18px}
.gp-send-photo-guide{display:grid;align-content:start;gap:14px}.gp-send-photo-guide .gp-add-parent-guide-card{margin:0}
.gp-send-photo-rules{margin:13px 0 0;padding-left:19px;color:#59695f;font-size:12.5px;line-height:1.65}.gp-send-photo-rules li{margin:7px 0}
.gp-send-photo-note{padding:17px 18px;border:1px solid #d9e3d6;border-left:4px solid #779a73;border-radius:8px;background:#f5f9f3}.gp-send-photo-note strong{color:#3e5d43;font-size:13px}.gp-send-photo-note p{margin:5px 0 0;color:#637168;font-size:12px;line-height:1.55}
.gp-send-photo-card{margin:0}.gp-send-photo-field input[type=file]{box-sizing:border-box;width:100%;padding:10px;border:1px dashed #b9c9b7;border-radius:7px;background:#f8faf7;color:#405248;font-size:13px}.gp-send-photo-field input[type=file]::file-selector-button{margin-right:12px;padding:8px 12px;border:1px solid #bdcbbb;border-radius:5px;background:#edf4eb;color:#35553c;font-weight:700;cursor:pointer}
.gp-send-photo-error{margin-top:3px;padding:13px 15px;border:1px solid #dfb6ad;border-left:4px solid #a33b2e;border-radius:7px;background:#fff5f2;color:#72534d;font-size:12px}.gp-send-photo-error strong{display:block;margin-bottom:3px;color:#7e2d23}
@media(max-width:720px){.gp-send-photo-layout{grid-template-columns:1fr}.gp-send-photo-guide{order:2}.gp-send-photo-card{order:1}}
@media(max-width:650px){.gp-send-photo-page{width:calc(100% - 28px);margin-top:18px}}
@media(max-width:420px){.gp-send-photo-page{width:calc(100% - 20px)}}

/* GreenerPasture V2 - Ancestors Send Photo Success Pass 01 */
.gp-photo-success-page{width:min(720px,calc(100% - 40px));margin:44px auto 0}
.gp-photo-success-card{padding:38px 42px;text-align:center;border:1px solid #d9e2d7;border-top:5px solid var(--gp-green);border-radius:11px;background:#fff;box-shadow:0 8px 25px rgba(38,61,43,.05)}
.gp-photo-success-mark{display:flex;align-items:center;justify-content:center;width:54px;height:54px;margin:0 auto 15px;border-radius:50%;background:#edf5ea;color:#47734c;font-size:28px;font-weight:900}
.gp-photo-success-card h1{margin:5px 0 9px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:clamp(34px,6vw,46px);line-height:1.08}
.gp-photo-success-lede{margin:0;color:#53645a;font-size:16px}
.gp-photo-success-next{margin:25px 0 17px;padding:19px 22px;text-align:left;border:1px solid #dce5da;border-radius:8px;background:#f7faf5}.gp-photo-success-next h2{margin:0 0 6px;color:#3d5943;font-family:Georgia,"Times New Roman",serif;font-size:20px}.gp-photo-success-next p{margin:0;color:#5d6c62;font-size:13px;line-height:1.6}
.gp-photo-success-thanks{max-width:540px;margin:0 auto;color:#718078;font-size:12.5px;line-height:1.55}.gp-photo-success-actions{margin-top:24px;padding-top:20px;border-top:1px solid #e2e7e1}
@media(max-width:600px){.gp-photo-success-page{width:calc(100% - 28px);margin-top:22px}.gp-photo-success-card{padding:29px 20px}.gp-photo-success-actions .gp-button{display:block;box-sizing:border-box;width:100%;text-align:center}}
@media(max-width:420px){.gp-photo-success-page{width:calc(100% - 20px)}}

/* GreenerPasture V2 - Ancestors Show Inventions Pass 01 */
.gp-inventions-page{width:min(1080px,calc(100% - 40px));margin:32px auto 0;color:#34473a}
.gp-inventions-hero{display:flex;justify-content:space-between;gap:32px;align-items:center;padding:34px 38px;border:1px solid #d9e2d7;border-left:5px solid var(--gp-green);border-radius:11px;background:#f7faf5}
.gp-inventions-hero>div:first-child{max-width:760px}.gp-inventions-hero h1{margin:5px 0 9px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:clamp(38px,5vw,55px);line-height:1.04}.gp-inventions-hero p{margin:0;color:#5a6a60;font-size:14px;line-height:1.6}
.gp-inventions-era{flex:0 0 165px;padding:18px 16px;text-align:center;border:1px solid #d7e1d5;border-radius:8px;background:#fff}.gp-inventions-era span{display:block;color:#7a877f;font-size:9px;font-weight:800;letter-spacing:.09em}.gp-inventions-era strong{display:block;margin-top:5px;color:#45604b;font-family:Georgia,"Times New Roman",serif;font-size:20px}
.gp-inventions-feature{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:18px;padding:22px 26px;border:1px solid #dddccf;border-radius:9px;background:#fbfaf4}.gp-inventions-feature h2{margin:4px 0 5px;color:#665a31;font-family:Georgia,"Times New Roman",serif;font-size:23px}.gp-inventions-feature p{margin:0;color:#706b58;font-size:12.5px}
.gp-inventions-section{margin-top:18px;padding:28px 29px;border:1px solid #dce4da;border-radius:10px;background:#fff}.gp-inventions-heading{max-width:720px;margin-bottom:20px}.gp-inventions-heading h2{margin:4px 0 6px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:28px}.gp-inventions-heading p{margin:0;color:#68776e;font-size:13px}
.gp-inventions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gp-invention-card{display:flex;flex-direction:column;min-width:0;padding:20px;border:1px solid #dfe6de;border-radius:9px;background:#fbfcfa}.gp-invention-card-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.gp-invention-label{color:#748279;font-size:9px;font-weight:800;letter-spacing:.09em}.gp-invention-date{color:#7b6a3c;font-size:10px;font-weight:800}.gp-invention-card h3{margin:8px 0 10px;color:#3d5943;font-family:Georgia,"Times New Roman",serif;font-size:20px;line-height:1.25}.gp-invention-card h3 a{color:inherit;text-decoration:none}.gp-invention-card h3 a:hover{text-decoration:underline}.gp-invention-description{color:#56665c;font-size:12.5px;line-height:1.62}.gp-invention-more{display:inline-block;margin-top:11px;color:#35613d;font-size:11.5px;font-weight:800;text-decoration:none}.gp-invention-more:hover{text-decoration:underline}.gp-invention-meta{margin-top:auto;padding-top:14px;color:#7a857e;font-size:10.5px;line-height:1.45;border-top:1px solid #e4e9e3}
.gp-inventions-empty{padding:27px;text-align:center;border:1px dashed #ccd8ca;border-radius:8px;background:#f8faf7}.gp-inventions-empty h3{margin:0 0 5px;color:#45604b;font-family:Georgia,"Times New Roman",serif}.gp-inventions-empty p{margin:0;color:#6d7971;font-size:12.5px}
@media(max-width:760px){.gp-inventions-hero{align-items:flex-start;flex-direction:column}.gp-inventions-era{box-sizing:border-box;width:100%;flex:auto;text-align:left}.gp-inventions-grid{grid-template-columns:1fr}}
@media(max-width:650px){.gp-inventions-page{width:calc(100% - 28px);margin-top:18px}.gp-inventions-hero{padding:26px 21px}.gp-inventions-section{padding:22px 18px}.gp-inventions-feature{align-items:flex-start;flex-direction:column;padding:20px}.gp-inventions-feature a{box-sizing:border-box;width:100%;text-align:center}}
@media(max-width:420px){.gp-inventions-page{width:calc(100% - 20px)}}

/* GreenerPasture V2 - Ancestors Update Image Pass 01 */
.gp-update-image-page{width:min(900px,calc(100% - 40px));margin:32px auto 0}
.gp-update-image-person{display:flex;align-items:baseline;gap:10px;margin-top:17px;padding:14px 18px;border:1px solid #dce4da;border-radius:8px;background:#f7faf5}.gp-update-image-person span{color:#7a877f;font-size:9px;font-weight:800;letter-spacing:.09em}.gp-update-image-person strong{color:#3e5944;font-family:Georgia,"Times New Roman",serif;font-size:17px}
.gp-update-image-card{margin-top:17px}.gp-update-image-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.gp-update-image-wide,.gp-update-image-actions{grid-column:1/-1}.gp-update-image-form input[type=text],.gp-update-image-form textarea{box-sizing:border-box;width:100%}.gp-update-image-form textarea{min-height:135px;resize:vertical}.gp-field-optional{display:inline-block;margin-left:6px;padding:2px 5px;border-radius:4px;background:#edf2ec;color:#6f7d73;font-size:8px;letter-spacing:.05em;text-transform:uppercase}
@media(max-width:650px){.gp-update-image-page{width:calc(100% - 28px);margin-top:18px}.gp-update-image-form{grid-template-columns:1fr}.gp-update-image-wide,.gp-update-image-actions{grid-column:auto}.gp-update-image-person{align-items:flex-start;flex-direction:column;gap:3px}}
@media(max-width:420px){.gp-update-image-page{width:calc(100% - 20px)}}

/* GreenerPasture V2 - Ancestors Update Life Event Pass 01 */
.gp-update-life-page{width:min(940px,calc(100% - 40px));margin:32px auto 0}.gp-update-life-card{margin-top:17px}.gp-update-life-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.gp-update-life-wide,.gp-update-life-actions,.gp-update-life-admin-heading,.gp-update-life-public{grid-column:1/-1}.gp-update-life-form input[type=text],.gp-update-life-form textarea{box-sizing:border-box;width:100%}.gp-update-life-form textarea{min-height:240px;resize:vertical}.gp-update-life-admin-heading{margin-top:2px;padding:12px 14px;border-left:4px solid #9a7b2f;background:#fffaf0}.gp-update-life-admin-heading span{color:#765f27;font-size:9px;font-weight:800;letter-spacing:.09em}.gp-update-life-admin-heading p{margin:3px 0 0;color:#746b52;font-size:11px}.gp-update-life-blocked{margin-top:17px}.gp-update-life-back{margin-top:15px}.gp-update-life-form code{font-size:11px}
@media(max-width:650px){.gp-update-life-page{width:calc(100% - 28px);margin-top:18px}.gp-update-life-form{grid-template-columns:1fr}.gp-update-life-wide,.gp-update-life-actions,.gp-update-life-admin-heading,.gp-update-life-public{grid-column:auto}}
@media(max-width:420px){.gp-update-life-page{width:calc(100% - 20px)}}

/* GreenerPasture V2 - Ancestors Update Marriage Pass 01 */
.gp-update-marriage-page{width:min(900px,calc(100% - 40px));margin:32px auto 0}.gp-update-marriage-couple{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;margin-top:17px;padding:19px 22px;border:1px solid #dce4da;border-radius:9px;background:#f7faf5}.gp-update-marriage-couple>div:not(.gp-update-marriage-link){display:flex;flex-direction:column;gap:3px}.gp-update-marriage-couple span{color:#7a877f;font-size:9px;font-weight:800;letter-spacing:.08em}.gp-update-marriage-couple strong{font-family:Georgia,"Times New Roman",serif;font-size:17px}.gp-update-marriage-couple small{color:#718078;font-size:11px}.gp-update-marriage-link{color:#8a998f;font-family:Georgia,"Times New Roman",serif;font-size:24px}.gp-update-marriage-card{margin-top:17px}.gp-update-marriage-form{display:grid;grid-template-columns:1fr;gap:16px}.gp-update-marriage-form input[type=text],.gp-update-marriage-form textarea{box-sizing:border-box;width:100%}.gp-update-marriage-form textarea{min-height:150px;resize:vertical}.gp-update-marriage-wide,.gp-update-marriage-actions{grid-column:1/-1}
@media(max-width:650px){.gp-update-marriage-page{width:calc(100% - 28px);margin-top:18px}.gp-update-marriage-couple{grid-template-columns:1fr;gap:11px}.gp-update-marriage-link{font-size:18px}}
@media(max-width:420px){.gp-update-marriage-page{width:calc(100% - 20px)}}

/* GreenerPasture V2 - Ancestors Update Marriage Tree Pass 01 */
.gp-update-marriage-tree-page .gp-update-marriage-couple strong{color:#3e5944}

/* GreenerPasture V2 - Ancestors Update Person Pass 01 */
.gp-update-person-page{width:min(980px,calc(100% - 40px));margin:32px auto 0}.gp-update-person-limited{margin-top:17px;padding:15px 18px;border:1px solid #dfd7b8;border-left:4px solid #9a7b2f;border-radius:8px;background:#fffaf0}.gp-update-person-limited strong{color:#705a25;font-size:13px}.gp-update-person-limited p{margin:4px 0 0;color:#746b52;font-size:12px}.gp-update-person-card{margin-top:17px;overflow:hidden}.gp-update-person-table{width:100%;border-collapse:separate;border-spacing:0}.gp-update-person-table tr>td{padding:11px 12px;vertical-align:top;border-bottom:1px solid #e6ebe5;color:#56665c;font-size:12.5px;line-height:1.5}.gp-update-person-table tr>td:first-child{width:35%;color:#405448;font-weight:700}.gp-update-person-table tr:last-child>td{border-bottom:0}.gp-update-person-table input[type=text],.gp-update-person-table input[type=number],.gp-update-person-table textarea{box-sizing:border-box;max-width:100%;padding:9px 10px;border:1px solid #cbd6c9;border-radius:6px;background:#fff;font:inherit}.gp-update-person-table input[type=text]{width:min(100%,520px)}.gp-update-person-table textarea{width:min(100%,520px);min-height:120px;resize:vertical}.gp-update-person-table input[type=radio],.gp-update-person-table input[type=checkbox]{margin-right:5px}.gp-update-person-table label{margin-right:13px}.gp-update-person-table font[color=red]{color:#9c342a!important}.gp-update-person-table tr td[colspan="2"]{width:auto}.gp-update-person-table tr:last-of-type td>div[align=right]{display:flex;justify-content:flex-end;gap:9px;align-items:center}.gp-update-person-table a[target=_new]{font-weight:700}
@media(max-width:700px){.gp-update-person-page{width:calc(100% - 28px);margin-top:18px}.gp-update-person-table,.gp-update-person-table tbody,.gp-update-person-table tr,.gp-update-person-table td{display:block;width:100%!important;box-sizing:border-box}.gp-update-person-table tr{padding:10px 0;border-bottom:1px solid #e2e8e1}.gp-update-person-table tr>td{padding:5px 12px;border:0}.gp-update-person-table tr>td:first-child{padding-bottom:2px}.gp-update-person-table input[type=text],.gp-update-person-table input[type=number],.gp-update-person-table textarea{width:100%;max-width:none}.gp-update-person-table tr:last-of-type td>div[align=right]{flex-direction:column-reverse;align-items:stretch}.gp-update-person-table tr:last-of-type .gp-button,.gp-update-person-table tr:last-of-type .gp-account-secondary{box-sizing:border-box;width:100%;text-align:center}}
@media(max-width:420px){.gp-update-person-page{width:calc(100% - 20px)}}


/* GreenerPasture V2 - Ancestor Details: restored authorized Delete Person action */
.gp-details-actionbar .gp-details-action-danger{
    border-color:#dfc2bc;
    background:#fff8f6;
    color:#7f342b;
}
.gp-details-actionbar .gp-details-action-danger:hover,
.gp-details-actionbar .gp-details-action-danger:focus{
    border-color:#c99b92;
    background:#fff1ed;
    color:#6f281f;
}
.gp-details-actionbar .gp-details-action-danger img{opacity:.82}


/* GreenerPasture V2 - Ancestor Details: restore signed-in bookmark control */
.gp-details-bookmark-action{
    display:flex;
    align-items:stretch;
}
.gp-details-bookmark-action > a,
.gp-details-bookmark-action > form,
.gp-details-bookmark-action > span{
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    min-height:100%;
}
.gp-details-bookmark-action a{
    padding:9px 12px;
    border:1px solid #d7e1d5;
    border-radius:7px;
    background:#fbfcfa;
    color:#3f5b45;
    font-size:11px;
    font-weight:700;
    line-height:1.25;
    text-decoration:none;
}
.gp-details-bookmark-action a:hover,
.gp-details-bookmark-action a:focus{
    border-color:#b8cbb5;
    background:#f1f6ef;
    color:#2f5137;
}
.gp-details-bookmark-action img{
    max-width:32px;
    max-height:32px;
    margin-right:7px;
    object-fit:contain;
}
@media(max-width:650px){
    .gp-details-bookmark-action,
    .gp-details-bookmark-action > a,
    .gp-details-bookmark-action > form,
    .gp-details-bookmark-action > span{
        width:100%;
    }
}


/* GreenerPasture V2 - Ancestor Details: View My Bookmarks */
.gp-details-actionbar .gp-details-view-bookmarks{
    border-color:#ddd8bd;
    background:#fffdf5;
    color:#665a2f;
}
.gp-details-actionbar .gp-details-view-bookmarks:hover,
.gp-details-actionbar .gp-details-view-bookmarks:focus{
    border-color:#c8bb82;
    background:#fff9df;
    color:#54471f;
}
.gp-details-bookmark-symbol{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    margin-right:7px;
    border-radius:50%;
    background:#f3ecd0;
    color:#8a742f;
    font-size:15px;
    line-height:1;
}


/* GreenerPasture V2 - Ancestor Details: full-size Bookmark this Ancestor action */
.gp-details-bookmark-action{
    position:relative;
    display:flex;
    align-items:center;
    min-height:48px;
    padding:7px 12px;
    border:1px solid #ddd8bd;
    border-radius:7px;
    background:#fffdf5;
    color:#665a2f;
}
.gp-details-bookmark-own-icon{
    display:inline-flex;
    flex:0 0 28px;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    margin-right:7px;
    border-radius:50%;
    background:#f3ecd0;
}
.gp-details-bookmark-own-icon svg{
    width:15px;
    height:18px;
    fill:none;
    stroke:#8a742f;
    stroke-width:1.8;
    stroke-linejoin:round;
}
.gp-details-bookmark-label{
    font-size:11px;
    font-weight:700;
    line-height:1.25;
}
.gp-details-bookmark-control{
    position:absolute;
    inset:0;
    z-index:2;
    overflow:hidden;
    opacity:0;
}
.gp-details-bookmark-control a,
.gp-details-bookmark-control form,
.gp-details-bookmark-control input,
.gp-details-bookmark-control button{
    display:block;
    width:100%;
    height:100%;
    margin:0;
    padding:0;
    cursor:pointer;
}
.gp-details-bookmark-action:hover,
.gp-details-bookmark-action:focus-within{
    border-color:#c8bb82;
    background:#fff9df;
    color:#54471f;
}
@media(max-width:650px){
    .gp-details-bookmark-action{width:100%;box-sizing:border-box}
}


/* GreenerPasture V2 - exact duplicate prevention notice */
.gp-duplicate-notice{
    display:flex;
    gap:13px;
    align-items:flex-start;
    margin:16px 0 0;
    padding:16px 18px;
    border:1px solid #d7c98d;
    border-left:5px solid #9a7b2f;
    border-radius:8px;
    background:#fffaf0;
}
.gp-duplicate-notice-icon{
    display:flex;
    flex:0 0 28px;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    border-radius:50%;
    background:#8c712d;
    color:#fff;
    font-size:17px;
    font-weight:900;
}
.gp-duplicate-notice strong{display:block;color:#68541f;font-size:14px}
.gp-duplicate-notice p{margin:4px 0 0;color:#655e49;font-size:12.5px;line-height:1.5}
.gp-duplicate-notice-existing a{font-weight:800}
.gp-duplicate-notice-help{color:#7a725c!important;font-size:11.5px!important}
@media(max-width:600px){
    .gp-duplicate-notice{padding:14px 15px}
}


/* GreenerPasture V2 - Ancestors Details family/history actions Pass 01 */
.gp-family-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
    margin:8px 0 12px;
}
.gp-family-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    min-height:44px;
    padding:8px 13px;
    border:1px solid #cbd8c9;
    border-radius:7px;
    background:#f7faf6;
    color:#315a3c;
    font-size:12px;
    font-weight:800;
    line-height:1.2;
    text-decoration:none;
}
.gp-family-action:hover,
.gp-family-action:focus{
    border-color:#aebfaa;
    background:#edf5eb;
    color:#21492d;
    text-decoration:none;
}
.gp-family-action-icon{
    display:inline-flex;
    flex:0 0 30px;
    align-items:center;
    justify-content:center;
    width:30px;
    height:30px;
    margin-right:8px;
    border-radius:50%;
    background:#e4eee2;
    color:#42684a;
}
.gp-family-action-icon svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.gp-family-action-danger{
    border-color:#dfc2bc;
    background:#fff8f6;
    color:#7d342b;
}
.gp-family-action-danger .gp-family-action-icon{
    background:#f7e4e0;
    color:#963d32;
}
.gp-family-action-danger:hover,
.gp-family-action-danger:focus{
    border-color:#c99b92;
    background:#fff1ed;
    color:#6f281f;
}
.gp-child-actions{
    margin:8px 0 14px;
}
.gp-add-life-event{
    display:flex;
    gap:14px;
    align-items:center;
}
.gp-add-life-event .gp-life-event-action{
    flex:0 0 auto;
}
@media(max-width:600px){
    .gp-family-actions{
        display:grid;
        grid-template-columns:1fr;
    }
    .gp-family-action{
        width:100%;
    }
    .gp-add-life-event{
        align-items:flex-start;
        flex-direction:column;
    }
    .gp-add-life-event .gp-life-event-action{
        width:100%;
    }
}


/* GreenerPasture V2 - Places Details content-card actions Pass 01 */
.gp-place-card-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:0 0 10px}
.gp-place-card-action{display:inline-flex;align-items:center;box-sizing:border-box;min-height:40px;padding:7px 10px;border:1px solid #d5dfd3;border-radius:6px;background:#f8faf7;color:#3d5943;font-size:10.5px;font-weight:700;line-height:1.2;text-decoration:none}
.gp-place-card-action:hover,.gp-place-card-action:focus{border-color:#b7c9b5;background:#eef5ec;color:#2e5035}
.gp-place-card-action-icon{display:inline-flex;flex:0 0 25px;align-items:center;justify-content:center;width:25px;height:25px;margin-right:6px;border-radius:50%;background:#e8f1e6;color:#547159}
.gp-place-card-action-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.gp-place-card-action-danger{border-color:#dfc2bc;background:#fff8f6;color:#7d342b}
.gp-place-card-action-danger .gp-place-card-action-icon{background:#f7e4e0;color:#963d32}
.gp-place-card-action-danger:hover,.gp-place-card-action-danger:focus{border-color:#c99b92;background:#fff1ed;color:#6f281f}
.gp-place-vintage-card .gp-place-card-actions{margin-bottom:8px}
.gp-place-history-card .gp-place-history-actions{margin-bottom:12px}
.gp-place-add-history{margin:0 0 16px}
.gp-place-add-history .gp-place-add-history-action{background:#f4f8f2}
@media(max-width:650px){.gp-place-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.gp-place-card-action{width:100%;justify-content:center;text-align:center}}
@media(max-width:430px){.gp-place-card-actions{grid-template-columns:1fr}}


/* GreenerPasture V2 - Places Details primary tools Pass 01 */
.gp-place-title-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;margin-top:12px}
.gp-place-title-tools .gp-place-tool,.gp-place-bookmark-action{position:relative;display:flex;align-items:center;box-sizing:border-box;min-height:48px;padding:8px 12px;border:1px solid #d7e1d5;border-radius:7px;background:#fbfcfa;color:#3f5b45;font-size:11px;font-weight:700;line-height:1.25;text-decoration:none}
.gp-place-title-tools .gp-place-tool:hover,.gp-place-title-tools .gp-place-tool:focus,.gp-place-bookmark-action:hover,.gp-place-bookmark-action:focus-within{border-color:#b8cbb5;background:#f1f6ef;color:#2f5137}
.gp-place-tool-icon{display:inline-flex;flex:0 0 30px;align-items:center;justify-content:center;width:30px;height:30px;margin-right:7px;border-radius:50%;background:#eaf2e8;color:#55755a;font-size:15px}.gp-place-tool-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.gp-place-bookmark-action,.gp-place-tool-bookmarks{border-color:#ddd8bd;background:#fffdf5;color:#665a2f}.gp-place-bookmark-action .gp-place-tool-icon,.gp-place-tool-star{background:#f3ecd0;color:#8a742f}.gp-place-bookmark-control{position:absolute;inset:0;z-index:2;overflow:hidden;opacity:0}.gp-place-bookmark-control a,.gp-place-bookmark-control form,.gp-place-bookmark-control input,.gp-place-bookmark-control button{display:block;width:100%;height:100%;margin:0;padding:0;cursor:pointer}
.gp-place-title-tools .gp-place-tool-danger{border-color:#dfc2bc;background:#fff8f6;color:#7f342b}.gp-place-title-tools .gp-place-tool-danger .gp-place-tool-icon{background:#f8e5e1;color:#963d32}
@media(max-width:650px){.gp-place-title-tools{display:grid;grid-template-columns:1fr}.gp-place-title-tools .gp-place-tool,.gp-place-bookmark-action{width:100%}}


/* GreenerPasture V2 - Places Details toolbar hardening Pass 02 */
.gp-place-title-tools .gp-place-tool-icon{
    width:30px !important;
    height:30px !important;
    flex:0 0 30px !important;
}
.gp-place-title-tools .gp-place-tool-icon svg{
    display:block !important;
    width:18px !important;
    height:18px !important;
    max-width:18px !important;
    max-height:18px !important;
}
.gp-place-title-tools .gp-place-bookmark-control{
    position:absolute !important;
    inset:0 !important;
    z-index:2 !important;
    overflow:hidden !important;
    opacity:0 !important;
}
.gp-place-title-tools .gp-place-bookmark-control img{
    width:1px !important;
    height:1px !important;
    opacity:0 !important;
}


/* GreenerPasture V2 - Places DetailsBornDied Pass 01 */
.gp-born-died-page{
    width:min(1080px,calc(100% - 40px));
    margin:32px auto 0;
}
.gp-born-died-hero{
    display:flex;
    justify-content:space-between;
    gap:28px;
    align-items:center;
    padding:30px 34px;
    border:1px solid #d9e2d7;
    border-left:5px solid var(--gp-green);
    border-radius:11px;
    background:#f7faf5;
}
.gp-born-died-hero-copy{max-width:760px}
.gp-born-died-hero h1{
    margin:5px 0 8px;
    color:var(--gp-green-deep);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(34px,5vw,50px);
    line-height:1.05;
}
.gp-born-died-hero h1 a{color:inherit;text-decoration:none}
.gp-born-died-hero p{
    margin:0;
    color:#5c6b61;
    font-size:14px;
    line-height:1.6;
}
.gp-born-died-count{
    flex:0 0 145px;
    padding:17px 16px;
    text-align:center;
    border:1px solid #d7e1d5;
    border-radius:8px;
    background:#fff;
}
.gp-born-died-count span{
    display:block;
    color:#7b887f;
    font-size:9px;
    font-weight:800;
    letter-spacing:.09em;
}
.gp-born-died-count strong{
    display:block;
    margin-top:4px;
    color:#45604b;
    font-family:Georgia,"Times New Roman",serif;
    font-size:24px;
}
.gp-born-died-intro{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    margin-top:18px;
    padding:22px 26px;
    border:1px solid #dce4da;
    border-radius:9px;
    background:#fff;
}
.gp-born-died-intro>div{max-width:720px}
.gp-born-died-intro h2{
    margin:4px 0 5px;
    color:#3e5944;
    font-family:Georgia,"Times New Roman",serif;
    font-size:24px;
}
.gp-born-died-intro p{
    margin:0;
    color:#68766d;
    font-size:12.5px;
    line-height:1.55;
}
.gp-born-died-add{flex:0 0 auto}
.gp-born-died-groups{margin-top:18px}
.gp-born-died-year-group{
    margin-bottom:17px;
    border:1px solid #dce4da;
    border-radius:10px;
    background:#fff;
    overflow:hidden;
}
.gp-born-died-year-heading{
    display:flex;
    align-items:baseline;
    gap:12px;
    padding:14px 18px;
    border-bottom:1px solid #dce4da;
    background:#eef4eb;
}
.gp-born-died-year-heading span{
    color:#6d7b72;
    font-size:9px;
    font-weight:800;
    letter-spacing:.08em;
}
.gp-born-died-year-heading h2{
    margin:0;
    color:#35543c;
    font-family:Georgia,"Times New Roman",serif;
    font-size:25px;
}
.gp-born-died-records{display:grid}
.gp-born-died-record{
    display:grid;
    grid-template-columns:minmax(230px,.8fr) minmax(0,1.45fr);
    gap:18px 24px;
    padding:18px;
    border-bottom:1px solid #e4e9e3;
}
.gp-born-died-record:last-child{border-bottom:0}
.gp-born-died-person{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:10px;
    align-items:start;
}
.gp-born-died-icons img{
    max-width:42px;
    max-height:42px;
    width:auto;
    height:auto;
}
.gp-born-died-person h3{
    margin:2px 0 0;
    font-family:Georgia,"Times New Roman",serif;
    font-size:19px;
    line-height:1.25;
}
.gp-born-died-person h3 a{color:#165b3d}
.gp-born-died-vitals{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.gp-born-died-vital{
    padding:11px 13px;
    border-left:3px solid #d8e3d5;
    background:#fafcf9;
    color:#57665d;
    font-size:12px;
    line-height:1.45;
}
.gp-born-died-vital span,
.gp-born-died-parents>span{
    display:block;
    margin-bottom:3px;
    color:#79867e;
    font-size:8.5px;
    font-weight:800;
    letter-spacing:.08em;
}
.gp-born-died-vital strong{
    display:block;
    color:#364c3c;
    font-size:12.5px;
}
.gp-born-died-parents{
    grid-column:1/-1;
    margin-left:52px;
    color:#5f6d64;
    font-size:11.5px;
}
.gp-born-died-parent-sep{
    margin:0 5px;
    color:#8a968e;
}
.gp-born-died-empty{
    margin-top:18px;
    padding:34px;
    text-align:center;
    border:1px dashed #ccd8ca;
    border-radius:9px;
    background:#f8faf7;
}
.gp-born-died-empty h2{
    margin:0 0 6px;
    color:#45604b;
    font-family:Georgia,"Times New Roman",serif;
}
.gp-born-died-empty p{margin:0 0 18px;color:#6d7971}
.gp-born-died-pagination{
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:center;
    margin:20px 0;
    padding:15px 17px;
    border:1px solid #dce4da;
    border-radius:8px;
    background:#fff;
}
.gp-born-died-pagination-label{
    color:#68766d;
    font-size:11px;
    font-weight:700;
}
.gp-born-died-pagination-links{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}
.gp-born-died-page-link,
.gp-born-died-page-current{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:34px;
    height:34px;
    box-sizing:border-box;
    padding:0 8px;
    border:1px solid #cfdace;
    border-radius:6px;
    font-size:11px;
    font-weight:800;
    text-decoration:none;
}
.gp-born-died-page-link{background:#fff;color:#3e5944}
.gp-born-died-page-link:hover{background:#eef5ec}
.gp-born-died-page-current{
    border-color:#799b76;
    background:#e5f0e2;
    color:#315338;
}
.gp-born-died-footer-actions{
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin:20px 0 12px;
    padding-top:18px;
    border-top:1px solid #dfe5de;
}
@media(max-width:760px){
    .gp-born-died-hero{align-items:flex-start;flex-direction:column}
    .gp-born-died-count{box-sizing:border-box;width:100%;flex:auto;text-align:left}
    .gp-born-died-intro{align-items:flex-start;flex-direction:column}
    .gp-born-died-add{width:100%;box-sizing:border-box;text-align:center}
    .gp-born-died-record{grid-template-columns:1fr}
    .gp-born-died-parents{margin-left:0}
}
@media(max-width:600px){
    .gp-born-died-page{width:calc(100% - 28px);margin-top:18px}
    .gp-born-died-hero{padding:25px 20px}
    .gp-born-died-intro{padding:20px}
    .gp-born-died-vitals{grid-template-columns:1fr}
    .gp-born-died-pagination{align-items:flex-start;flex-direction:column}
    .gp-born-died-footer-actions{flex-direction:column-reverse}
    .gp-born-died-footer-actions .gp-button,
    .gp-born-died-footer-actions .gp-account-secondary{
        box-sizing:border-box;
        width:100%;
        text-align:center;
    }
}
@media(max-width:420px){
    .gp-born-died-page{width:calc(100% - 20px)}
}


/* GreenerPasture V2 - Places DetailsMarried Pass 01 */
.gp-married-page{width:min(1080px,calc(100% - 40px));margin:32px auto 0}
.gp-married-hero{display:flex;justify-content:space-between;gap:28px;align-items:center;padding:30px 34px;border:1px solid #d9e2d7;border-left:5px solid var(--gp-green);border-radius:11px;background:#f7faf5}
.gp-married-hero-copy{max-width:760px}
.gp-married-hero h1{margin:5px 0 8px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:clamp(34px,5vw,50px);line-height:1.05}
.gp-married-hero h1 a{color:inherit;text-decoration:none}
.gp-married-hero p{margin:0;color:#5c6b61;font-size:14px;line-height:1.6}
.gp-married-count{flex:0 0 155px;padding:17px 16px;text-align:center;border:1px solid #d7e1d5;border-radius:8px;background:#fff}
.gp-married-count span{display:block;color:#7b887f;font-size:9px;font-weight:800;letter-spacing:.09em}
.gp-married-count strong{display:block;margin-top:4px;color:#45604b;font-family:Georgia,"Times New Roman",serif;font-size:24px}
.gp-married-intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:18px;padding:22px 26px;border:1px solid #dce4da;border-radius:9px;background:#fff}
.gp-married-intro>div{max-width:720px}
.gp-married-intro h2{margin:4px 0 5px;color:#3e5944;font-family:Georgia,"Times New Roman",serif;font-size:24px}
.gp-married-intro p{margin:0;color:#68766d;font-size:12.5px;line-height:1.55}
.gp-married-add{flex:0 0 auto}
.gp-married-groups{margin-top:18px}
.gp-married-year-group{margin-bottom:17px;border:1px solid #dce4da;border-radius:10px;background:#fff;overflow:hidden}
.gp-married-year-heading{display:flex;align-items:baseline;gap:12px;padding:14px 18px;border-bottom:1px solid #dce4da;background:#eef4eb}
.gp-married-year-heading span{color:#6d7b72;font-size:9px;font-weight:800;letter-spacing:.08em}
.gp-married-year-heading h2{margin:0;color:#35543c;font-family:Georgia,"Times New Roman",serif;font-size:25px}
.gp-married-record{padding:18px;border-bottom:1px solid #e4e9e3}
.gp-married-record:last-child{border-bottom:0}
.gp-married-couple{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:18px;align-items:center}
.gp-married-spouse{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;align-items:center}
.gp-married-photo,.gp-married-photo-placeholder{width:58px;height:58px;border-radius:7px;object-fit:cover}
.gp-married-photo{border:1px solid #d8e0d6}
.gp-married-photo-placeholder{display:flex;align-items:center;justify-content:center;background:#eef3ec;color:#839087;font-family:Georgia,"Times New Roman",serif;font-weight:700}
.gp-married-spouse span,.gp-married-date span{display:block;color:#7a877f;font-size:8.5px;font-weight:800;letter-spacing:.08em}
.gp-married-spouse h3{margin:3px 0 2px;font-family:Georgia,"Times New Roman",serif;font-size:18px;line-height:1.2}
.gp-married-spouse h3 a{color:#165b3d}
.gp-married-spouse p{margin:0;color:#69776e;font-size:11.5px}
.gp-married-and{color:#8a978e;font-family:Georgia,"Times New Roman",serif;font-size:27px}
.gp-married-date{margin-top:14px;padding:10px 13px;border-left:3px solid #d8e3d5;background:#fafcf9;color:#4e6254}
.gp-married-date strong{display:block;margin-top:2px;font-size:13px}
.gp-married-empty{margin-top:18px;padding:34px;text-align:center;border:1px dashed #ccd8ca;border-radius:9px;background:#f8faf7}
.gp-married-empty h2{margin:0 0 6px;color:#45604b;font-family:Georgia,"Times New Roman",serif}
.gp-married-empty p{margin:0 0 18px;color:#6d7971}
.gp-married-pagination{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:20px 0;padding:15px 17px;border:1px solid #dce4da;border-radius:8px;background:#fff}
.gp-married-pagination-label{color:#68766d;font-size:11px;font-weight:700}
.gp-married-pagination-links{display:flex;flex-wrap:wrap;gap:6px}
.gp-married-page-link,.gp-married-page-current{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;box-sizing:border-box;padding:0 8px;border:1px solid #cfdace;border-radius:6px;font-size:11px;font-weight:800;text-decoration:none}
.gp-married-page-link{background:#fff;color:#3e5944}
.gp-married-page-link:hover{background:#eef5ec}
.gp-married-page-current{border-color:#799b76;background:#e5f0e2;color:#315338}
.gp-married-footer-actions{display:flex;justify-content:space-between;gap:10px;margin:20px 0 12px;padding-top:18px;border-top:1px solid #dfe5de}
@media(max-width:760px){.gp-married-hero{align-items:flex-start;flex-direction:column}.gp-married-count{box-sizing:border-box;width:100%;flex:auto;text-align:left}.gp-married-intro{align-items:flex-start;flex-direction:column}.gp-married-add{box-sizing:border-box;width:100%;text-align:center}.gp-married-couple{grid-template-columns:1fr}.gp-married-and{font-size:20px}}
@media(max-width:600px){.gp-married-page{width:calc(100% - 28px);margin-top:18px}.gp-married-hero{padding:25px 20px}.gp-married-intro{padding:20px}.gp-married-pagination{align-items:flex-start;flex-direction:column}.gp-married-footer-actions{flex-direction:column-reverse}.gp-married-footer-actions .gp-button,.gp-married-footer-actions .gp-account-secondary{box-sizing:border-box;width:100%;text-align:center}}
@media(max-width:420px){.gp-married-page{width:calc(100% - 20px)}}


/* GreenerPasture V2 - DetailsMarried Pass 02: no fake H/W photo placeholders */
.gp-married-spouse-no-photo{
    grid-template-columns:minmax(0,1fr);
}

/* GreenerPasture V2 - Ancestors Details external research Pass 01 */
.gp-external-research{margin:24px 0;padding:25px 27px;border:1px solid #dce4da;border-radius:10px;background:#fff}
.gp-external-research-heading{max-width:760px;margin-bottom:18px}
.gp-external-research-heading h2{margin:4px 0 6px;color:#244c32;font-family:Georgia,"Times New Roman",serif;font-size:27px;line-height:1.2}
.gp-external-research-heading p{margin:0;color:#68766d;font-size:12.5px;line-height:1.55}
.gp-external-research-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gp-external-research-action{display:flex;align-items:center;gap:10px;box-sizing:border-box;min-height:62px;padding:11px 13px;border:1px solid #d3ded1;border-radius:8px;background:#f8faf7;color:#36583e;text-decoration:none}
.gp-external-research-action:hover,.gp-external-research-action:focus{border-color:#aec3ac;background:#eef5ec;color:#274c31}
.gp-external-research-action>span:last-child{display:flex;min-width:0;flex-direction:column}
.gp-external-research-action strong{font-size:12.5px;line-height:1.25}
.gp-external-research-action small{margin-top:3px;color:#738077;font-size:10.5px;line-height:1.3}
.gp-external-research-icon{display:inline-flex;flex:0 0 34px;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#e5efe3;color:#416849;font-family:Georgia,"Times New Roman",serif;font-size:12px;font-weight:800}
.gp-external-research-more{margin-top:17px;padding-top:16px;border-top:1px solid #e1e7df}
.gp-external-research-more h3{margin:0 0 10px;color:#465d4b;font-family:Georgia,"Times New Roman",serif;font-size:18px}
.gp-external-research-links{display:grid;gap:7px;color:#5f6f64;font-size:11.5px;line-height:1.45}
.gp-external-research-links>a{display:block;padding:9px 11px;border-left:3px solid #d4e0d1;background:#fafcf9}
.gp-external-research-resource{display:flex!important;flex-direction:column;text-decoration:none}
.gp-external-research-resource span{margin-top:2px;color:#748078;font-size:10.5px}
.gp-external-research-signin{padding:20px;text-align:center;border:1px dashed #cdd8cb;border-radius:8px;background:#f8faf7}
.gp-external-research-signin strong{color:#405a45;font-family:Georgia,"Times New Roman",serif;font-size:18px}
.gp-external-research-signin p{max-width:590px;margin:7px auto 15px;color:#68766d;font-size:12px;line-height:1.5}
@media(max-width:700px){.gp-external-research-actions{grid-template-columns:1fr}}
@media(max-width:520px){.gp-external-research{padding:20px 17px}}


/* GreenerPasture V2 - Ancestors Details Manage This Ancestor Pass 01 */
.gp-manage-ancestor{
    margin:18px 0 22px;
    padding:24px 26px;
    border:2px solid #bfd0bc;
    border-radius:11px;
    background:#f5f9f3;
    box-shadow:0 2px 8px rgba(45,76,51,.07);
}
.gp-manage-ancestor-heading h2{
    margin:4px 0 5px;
    color:#274e31;
    font-family:Georgia,"Times New Roman",serif;
    font-size:28px;
}
.gp-manage-ancestor-heading p{
    max-width:820px;
    margin:0 0 17px;
    color:#5f6e64;
    font-size:13px;
    line-height:1.55;
}
.gp-manage-ancestor-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.gp-manage-ancestor-action{
    display:flex;
    align-items:center;
    gap:12px;
    min-height:70px;
    box-sizing:border-box;
    padding:12px 14px;
    border:1px solid #cddacb;
    border-radius:8px;
    background:#fff;
    color:#31583a;
    text-decoration:none;
}
.gp-manage-ancestor-action:hover,
.gp-manage-ancestor-action:focus{
    border-color:#88a984;
    background:#edf5ea;
    color:#23492c;
}
.gp-manage-ancestor-action>span:last-child{
    display:flex;
    min-width:0;
    flex-direction:column;
}
.gp-manage-ancestor-action strong{
    font-size:14px;
    line-height:1.25;
}
.gp-manage-ancestor-action small{
    margin-top:3px;
    color:#6c796f;
    font-size:11px;
    line-height:1.35;
}
.gp-manage-ancestor-icon{
    display:inline-flex;
    flex:0 0 42px;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:8px;
    background:#e5efe2;
    color:#426b49;
}
.gp-manage-ancestor-icon svg{
    width:23px;
    height:23px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.gp-manage-ancestor-tip{
    margin:14px 0 0;
    padding-top:12px;
    border-top:1px solid #d6e0d4;
    color:#66746a;
    font-size:11.5px;
    line-height:1.45;
}
.gp-parent-maintenance{
    margin:17px 0 8px;
    padding:17px 18px;
    border:1px solid #d5dfd3;
    border-left:4px solid #789b76;
    border-radius:7px;
    background:#fafcf9;
}
.gp-parent-maintenance-heading{
    margin-bottom:11px;
}
.gp-parent-maintenance-heading h3{
    margin:3px 0 3px;
    color:#36553d;
    font-family:Georgia,"Times New Roman",serif;
    font-size:20px;
}
.gp-parent-maintenance-heading p{
    margin:0;
    color:#6b786f;
    font-size:11.5px;
}
.gp-parent-action{
    display:inline-flex;
    align-items:center;
    min-height:36px;
    box-sizing:border-box;
    margin:5px 4px;
    padding:7px 11px;
    border:1px solid #9db79a;
    border-radius:6px;
    background:#eef5ec;
    color:#31573a;
    font-size:11.5px;
    font-weight:700;
    text-decoration:none;
}
.gp-parent-action:hover,.gp-parent-action:focus{
    background:#e1eedf;
    border-color:#789b76;
}
.gp-parent-action-danger{
    border-color:#d5b6b0;
    background:#fbf4f2;
    color:#84493f;
}
.gp-add-spouse-row{
    display:flex;
    align-items:center;
    gap:12px;
    margin:18px 0 6px;
    padding:13px 15px;
    border:1px solid #d5dfd3;
    border-radius:8px;
    background:#f8faf7;
    color:#68766d;
    font-size:11.5px;
}
.gp-add-spouse-row>span{
    line-height:1.4;
}
@media(max-width:720px){
    .gp-manage-ancestor-grid{grid-template-columns:1fr}
    .gp-manage-ancestor{padding:20px 17px}
    .gp-add-spouse-row{align-items:flex-start;flex-direction:column}
}
@media(max-width:440px){
    .gp-manage-ancestor-action{min-height:76px}
    .gp-manage-ancestor-action strong{font-size:14.5px}
    .gp-parent-action{width:100%;justify-content:center;margin:5px 0}
}


/* GreenerPasture V2 - Places ShowNews Pass 01 */
.gp-shownews-page{
    width:min(980px,calc(100% - 40px));
    margin:32px auto 0;
}
.gp-shownews-hero{
    display:flex;
    justify-content:space-between;
    gap:24px;
    align-items:flex-start;
    padding:30px 32px;
    border:1px solid #d9e2d7;
    border-left:5px solid var(--gp-green);
    border-radius:11px;
    background:#f7faf5;
}
.gp-shownews-hero-copy{max-width:760px}
.gp-shownews-context{
    display:inline-block;
    margin:4px 0 6px;
    color:#4a684f;
    font-size:12px;
    font-weight:800;
    text-decoration:none;
}
.gp-shownews-hero h1{
    margin:3px 0 12px;
    color:var(--gp-green-deep);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(30px,5vw,46px);
    line-height:1.08;
}
.gp-shownews-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.gp-shownews-meta span{
    display:flex;
    gap:5px;
    align-items:baseline;
    padding:6px 9px;
    border:1px solid #dde5db;
    border-radius:6px;
    background:#fff;
    color:#617067;
    font-size:10.5px;
}
.gp-shownews-meta strong{color:#405448}
.gp-shownews-admin{flex:0 0 auto}
.gp-shownews-related-top{
    margin:14px 0 0;
    padding:11px 14px;
    border:1px solid #dce4da;
    border-radius:7px;
    background:#fff;
}
.gp-shownews-article{
    margin-top:18px;
    padding:28px 30px;
    border:1px solid #dce4da;
    border-radius:10px;
    background:#fff;
}
.gp-shownews-type{
    display:flex;
    gap:8px;
    align-items:center;
    margin-bottom:16px;
    color:#6c786f;
    font-size:9px;
    font-weight:800;
    letter-spacing:.08em;
}
.gp-shownews-body{
    color:#3f4d43;
    font-family:Georgia,"Times New Roman",serif;
    font-size:16px;
    line-height:1.72;
}
.gp-shownews-body p{margin:0 0 1.05em}
.gp-shownews-body img{max-width:100%;height:auto}
.gp-shownews-empty-copy{color:#79857d;font-style:italic}
.gp-shownews-source-card{
    margin-top:24px;
    padding:16px 18px;
    border-left:4px solid #c9d9c6;
    background:#f8faf7;
}
.gp-shownews-source-card dl{margin:8px 0 0}
.gp-shownews-source-card dl>div{
    display:grid;
    grid-template-columns:105px minmax(0,1fr);
    gap:12px;
    padding:5px 0;
    border-bottom:1px solid #e5eae4;
}
.gp-shownews-source-card dl>div:last-child{border-bottom:0}
.gp-shownews-source-card dt{
    color:#65736a;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
}
.gp-shownews-source-card dd{
    margin:0;
    color:#4c5b51;
    font-size:11.5px;
    overflow-wrap:anywhere;
}
.gp-shownews-related,
.gp-shownews-comments{
    margin-top:18px;
    padding:24px 26px;
    border:1px solid #dce4da;
    border-radius:10px;
    background:#fff;
}
.gp-shownews-section-heading h2,
.gp-shownews-comments h2{
    margin:4px 0 5px;
    color:#36533d;
    font-family:Georgia,"Times New Roman",serif;
    font-size:24px;
}
.gp-shownews-section-heading p{
    margin:0;
    color:#69776e;
    font-size:12px;
    line-height:1.5;
}
.gp-shownews-related-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:14px;
}
.gp-shownews-image-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin-top:17px;
}
.gp-shownews-image-card{
    margin:0;
    padding:8px;
    border:1px solid #dfe6dd;
    border-radius:8px;
    background:#fafcf9;
}
.gp-shownews-image-card a{display:block}
.gp-shownews-image-card img{
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border-radius:5px;
}
.gp-shownews-image-card figcaption{
    padding:7px 2px 1px;
    color:#69776e;
    font-size:10.5px;
    line-height:1.4;
}
.gp-shownews-comments{margin-bottom:20px}
@media(max-width:760px){
    .gp-shownews-hero{flex-direction:column}
    .gp-shownews-admin{width:100%}
    .gp-shownews-admin .gp-family-action{width:100%}
    .gp-shownews-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
    .gp-shownews-page{width:calc(100% - 28px);margin-top:18px}
    .gp-shownews-hero{padding:24px 20px}
    .gp-shownews-article,
    .gp-shownews-related,
    .gp-shownews-comments{padding:21px 18px}
    .gp-shownews-source-card dl>div{grid-template-columns:1fr;gap:2px}
    .gp-shownews-image-grid{grid-template-columns:1fr}
    .gp-shownews-related-actions{flex-direction:column}
    .gp-shownews-related-actions .gp-account-secondary{width:100%;box-sizing:border-box;text-align:center}
}
@media(max-width:420px){
    .gp-shownews-page{width:calc(100% - 20px)}
}


/* GreenerPasture V2 - Sitewide Follow & Explore Pass 01 */
.gp-footer-follow{
    margin-top:26px;
    padding:24px 0 4px;
    border-top:1px solid rgba(255,255,255,.16);
}
.gp-footer-follow-heading{
    max-width:760px;
    margin-bottom:15px;
}
.gp-footer-follow-heading h2{
    margin:4px 0 5px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:24px;
    line-height:1.2;
}
.gp-footer-follow-heading p{
    margin:0;
    opacity:.84;
    font-size:12px;
    line-height:1.5;
}
.gp-footer-follow-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.gp-footer-follow-card{
    display:flex;
    align-items:center;
    gap:12px;
    min-height:74px;
    box-sizing:border-box;
    padding:13px 15px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:8px;
    background:rgba(255,255,255,.06);
    color:inherit;
    text-decoration:none;
}
.gp-footer-follow-card:hover,
.gp-footer-follow-card:focus{
    background:rgba(255,255,255,.11);
    border-color:rgba(255,255,255,.30);
}
.gp-footer-follow-card>span:last-child{
    display:flex;
    min-width:0;
    flex-direction:column;
}
.gp-footer-follow-card strong{
    font-size:13px;
    line-height:1.3;
}
.gp-footer-follow-card small{
    margin-top:3px;
    opacity:.78;
    font-size:10.5px;
    line-height:1.35;
}
.gp-footer-follow-icon{
    display:inline-flex;
    flex:0 0 42px;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:9px;
    background:rgba(255,255,255,.12);
}
.gp-footer-follow-icon svg{
    width:23px;
    height:23px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.gp-footer-social-compact{
    flex-wrap:wrap;
}
@media(max-width:720px){
    .gp-footer-follow-grid{
        grid-template-columns:1fr;
    }
}
@media(max-width:520px){
    .gp-footer-follow-card{
        min-height:82px;
        padding:14px;
    }
    .gp-footer-follow-card strong{
        font-size:13.5px;
    }
}


/* GreenerPasture V2 - expanded sitewide Explore menu Pass 01 */
.gp-nav-explore-menu{
    min-width:315px;
    max-height:min(76vh,640px);
    overflow-y:auto;
    overscroll-behavior:contain;
}
.gp-nav-menu-heading{
    display:block;
    padding:10px 14px 5px;
    color:#7b897f;
    font-size:9px;
    font-weight:900;
    letter-spacing:.10em;
    line-height:1.2;
    text-transform:uppercase;
    pointer-events:none;
}
.gp-nav-menu-heading:not(:first-child){
    margin-top:5px;
    border-top:1px solid #e3e8e2;
    padding-top:11px;
}
.gp-nav-explore-menu a{
    white-space:normal;
    line-height:1.3;
}
@media(max-width:760px){
    .gp-nav-explore-menu{
        min-width:0;
        max-height:none;
        overflow:visible;
    }
    .gp-nav-menu-heading{
        padding-left:16px;
    }
}


/* GreenerPasture V2 - How To Create A Family Tree Pass 01 */
.gp-familytree-guide-page{width:min(1040px,calc(100% - 40px));margin:30px auto 0}
.gp-familytree-guide-hero{padding:31px 32px;border:1px solid #d9e2d7;border-left:5px solid var(--gp-green);border-radius:11px;background:#f7faf5}
.gp-familytree-guide-hero h1{margin:4px 0 8px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:clamp(31px,5vw,46px);line-height:1.08}
.gp-familytree-guide-hero p{max-width:760px;margin:0;color:#617067;font-size:13px;line-height:1.55}
.gp-familytree-hero-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.gp-familytree-guide-page section{margin-top:17px;padding:25px 27px;border:1px solid #dce4da;border-radius:10px;background:#fff}
.gp-familytree-section-heading h2{margin:4px 0 5px;color:#36533d;font-family:Georgia,"Times New Roman",serif;font-size:26px}
.gp-familytree-section-heading p{max-width:820px;margin:0;color:#69776e;font-size:12px;line-height:1.55}
.gp-familytree-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}
.gp-familytree-step{position:relative;padding:19px 17px 17px;border:1px solid #d7e0d5;border-radius:9px;background:#f9fbf8}
.gp-familytree-step-number{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#e2eee0;color:#355a3c;font-family:Georgia,"Times New Roman",serif;font-size:19px;font-weight:700}
.gp-familytree-step h3{margin:10px 0 5px;color:#36553d;font-family:Georgia,"Times New Roman",serif;font-size:18px}
.gp-familytree-step p{min-height:65px;margin:0 0 10px;color:#66746b;font-size:11.5px;line-height:1.5}
.gp-familytree-step a{font-size:11.5px;font-weight:800}
.gp-familytree-signin-note{margin:14px 0 0;padding-top:13px;border-top:1px solid #e2e8e0;color:#66746b;font-size:11.5px}
.gp-familytree-about-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:17px}
.gp-familytree-about-grid>div{padding:17px;border-left:4px solid #a9c2a6;background:#f8faf7}
.gp-familytree-about-grid h3{margin:0 0 6px;color:#3e5b44;font-family:Georgia,"Times New Roman",serif;font-size:18px}
.gp-familytree-about-grid p{margin:0;color:#65736a;font-size:11.5px;line-height:1.55}
.gp-familytree-tip-list{display:grid;gap:8px;margin-top:17px}
.gp-familytree-tip{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;padding:13px 15px;border:1px solid #e0e6de;border-radius:8px;background:#fbfcfa}
.gp-familytree-tip>span{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:7px;background:#e7f0e4;color:#3f6245;font-weight:900}
.gp-familytree-tip h3{margin:1px 0 3px;color:#405a45;font-size:13px}
.gp-familytree-tip p{margin:0;color:#66746b;font-size:11.5px;line-height:1.55}
.gp-familytree-featured-guide{margin-top:13px;padding:14px 16px;border-left:4px solid #b6c9b2;background:#f4f8f2;color:#5f6e64;font-size:11.5px}
.gp-familytree-featured-guide strong{display:block;margin-bottom:4px;color:#405a45}
.gp-familytree-resource-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:17px}
.gp-familytree-resource-card{padding:18px;border:1px solid #dce4da;border-radius:8px;background:#fafcf9}
.gp-familytree-resource-card h3{margin:0 0 10px;color:#3c5942;font-family:Georgia,"Times New Roman",serif;font-size:19px}
.gp-familytree-resource-card ul{margin:0;padding-left:19px;color:#5f6e64;font-size:11.5px;line-height:1.65}
.gp-familytree-resource-card p{margin:11px 0 0;color:#68766d;font-size:11px;line-height:1.5}
.gp-familytree-important{margin-top:13px;padding:15px 17px;border:1px solid #cfddcc;border-radius:8px;background:#f3f8f1;color:#596a5f;font-size:11.5px;line-height:1.55}
.gp-familytree-important strong{color:#36563d}
.gp-familytree-article-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:17px}
.gp-familytree-article-grid>a{display:flex;flex-direction:column;min-height:62px;box-sizing:border-box;padding:12px 14px;border:1px solid #dce4da;border-radius:7px;background:#fafcf9;text-decoration:none}
.gp-familytree-article-grid>a:hover,.gp-familytree-article-grid>a:focus{border-color:#9db79a;background:#f1f7ef}
.gp-familytree-article-grid strong{color:#36583d;font-size:12px;line-height:1.35}
.gp-familytree-article-grid small{margin-top:3px;color:#718077;font-size:10.5px;line-height:1.4}
@media(max-width:800px){.gp-familytree-steps,.gp-familytree-about-grid{grid-template-columns:1fr}.gp-familytree-step p{min-height:0}.gp-familytree-resource-grid{grid-template-columns:1fr}}
@media(max-width:650px){.gp-familytree-article-grid{grid-template-columns:1fr}}
@media(max-width:600px){.gp-familytree-guide-page{width:calc(100% - 28px);margin-top:18px}.gp-familytree-guide-hero,.gp-familytree-guide-page section{padding:21px 18px}.gp-familytree-hero-actions{flex-direction:column}.gp-familytree-hero-actions .gp-button,.gp-familytree-hero-actions .gp-account-secondary{box-sizing:border-box;width:100%;text-align:center}}


/* GreenerPasture V2 - Account My Account Pass 01 */
.gp-myaccount-page{width:min(1040px,calc(100% - 40px));margin:30px auto 0}
.gp-myaccount-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:29px 31px;border:1px solid #d9e2d7;border-left:5px solid var(--gp-green);border-radius:11px;background:#f7faf5}
.gp-myaccount-hero h1{margin:4px 0 7px;color:var(--gp-green-deep);font-family:Georgia,"Times New Roman",serif;font-size:clamp(31px,5vw,44px);line-height:1.08}
.gp-myaccount-hero p{max-width:720px;margin:0;color:#617067;font-size:13px;line-height:1.55}
.gp-myaccount-signout{flex:0 0 auto}
.gp-myaccount-page>section{margin-top:17px;padding:24px 26px;border:1px solid #dce4da;border-radius:10px;background:#fff}
.gp-myaccount-section-heading h2{margin:4px 0 5px;color:#36533d;font-family:Georgia,"Times New Roman",serif;font-size:25px}
.gp-myaccount-section-heading p{margin:0;color:#69776e;font-size:12px;line-height:1.5}
.gp-myaccount-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:17px}
.gp-myaccount-action{display:flex;align-items:center;gap:12px;min-height:86px;box-sizing:border-box;padding:15px;border:1px solid #d8e1d6;border-radius:8px;background:#fafcf9;text-decoration:none}
.gp-myaccount-action:hover,.gp-myaccount-action:focus{border-color:#9eb99a;background:#f1f7ef}
.gp-myaccount-action-featured{border-color:#b9ceb5;background:#f3f8f1}
.gp-myaccount-action-icon{display:flex;flex:0 0 44px;align-items:center;justify-content:center;width:44px;height:44px;border-radius:9px;background:#e5efe2;color:#426b49}
.gp-myaccount-action-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.gp-myaccount-action>span:last-child{display:flex;min-width:0;flex-direction:column}
.gp-myaccount-action strong{color:#36583d;font-size:13px;line-height:1.35}
.gp-myaccount-action small{margin-top:3px;color:#718077;font-size:10.5px;line-height:1.4}
.gp-myaccount-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:15px}
.gp-myaccount-settings-grid>a{display:flex;flex-direction:column;padding:14px 16px;border:1px solid #dce4da;border-radius:7px;background:#fafcf9;text-decoration:none}
.gp-myaccount-settings-grid strong{color:#3c5942;font-size:12.5px}
.gp-myaccount-settings-grid small{margin-top:3px;color:#728078;font-size:10.5px;line-height:1.4}
.gp-myaccount-login-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:17px}
.gp-myaccount-admin{border-color:#d8dfd6!important;background:#fafbf9!important}
.gp-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:17px}
.gp-admin-card{padding:17px 18px;border:1px solid #dce3da;border-radius:8px;background:#fff}
.gp-admin-card h3{margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid #e5eae4;color:#405b46;font-family:Georgia,"Times New Roman",serif;font-size:18px}
.gp-admin-links{display:flex;flex-direction:column;gap:0}
.gp-admin-links a{display:block;padding:8px 3px;border-bottom:1px solid #edf0ec;font-size:11.5px;line-height:1.4}
.gp-admin-links a:last-child{border-bottom:0}
@media(max-width:780px){.gp-myaccount-action-grid{grid-template-columns:1fr}.gp-admin-grid{grid-template-columns:1fr}}
@media(max-width:600px){.gp-myaccount-page{width:calc(100% - 28px);margin-top:18px}.gp-myaccount-hero{flex-direction:column;padding:22px 19px}.gp-myaccount-signout{width:100%;box-sizing:border-box;text-align:center}.gp-myaccount-page>section{padding:21px 18px}.gp-myaccount-settings-grid{grid-template-columns:1fr}.gp-myaccount-login-actions{flex-direction:column}.gp-myaccount-login-actions .gp-button,.gp-myaccount-login-actions .gp-account-secondary{box-sizing:border-box;width:100%;text-align:center}}


/* GreenerPasture V2 - Places Index Pass 02
   Deliberately avoids inline SVG artwork in the search cards. */
.gp-place-search-card{
    display:flex;
    flex-direction:column;
    min-height:0;
}
.gp-place-search-card h3{
    margin-top:0;
}
.gp-place-search-card-icon{
    display:none !important;
}
.gp-place-search-tip{
    margin-top:13px;
    padding:11px 13px;
    border:1px solid #dce5d8;
    border-radius:7px;
    background:#f4f8f1;
    color:#617067;
    font-size:11px;
    line-height:1.45;
}
.gp-place-search-tip strong{
    color:#3d5b43;
}
.gp-place-index-why{
    grid-template-columns:minmax(0,1.45fr) minmax(250px,.55fr);
    align-items:stretch;
    background:#f8faf6;
}
.gp-place-index-help{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    padding:17px 18px;
    border:1px solid #d7e2d4;
    border-radius:8px;
    background:#fff;
    color:#68766d;
    font-size:11.5px;
    line-height:1.45;
}
.gp-place-index-help strong{
    color:#36563d;
    font-family:Georgia,"Times New Roman",serif;
    font-size:17px;
}
.gp-place-index-help a{
    margin-top:3px;
    font-weight:800;
}
@media(max-width:760px){
    .gp-place-index-why{
        grid-template-columns:1fr;
    }
}


/* GreenerPasture V2 - Places Index Pass 03 - faithful Search or Browse layout */
.gp-place-breadcrumb{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0 0 14px 2px;
    color:#728078;
    font-size:12px;
}
.gp-place-breadcrumb a{font-weight:700}
.gp-place-index-hero-clean{
    display:block;
    padding:26px 30px 29px;
    background:#fbfcfa;
}
.gp-place-index-hero-clean h1{
    font-size:clamp(34px,5vw,48px);
}
.gp-place-index-hero-copy p{
    max-width:840px;
}
.gp-place-search-tools-clean{
    padding:0;
    border:0;
    background:transparent;
}
.gp-place-search-grid-clean{
    gap:16px;
    margin-top:16px;
}
.gp-place-search-card-clean{
    min-height:500px;
    padding:28px 26px;
    justify-content:flex-start;
    border:1px solid #d9e1d7;
    border-radius:10px;
    background:#fff;
    box-shadow:0 5px 16px rgba(27,47,32,.04);
}
.gp-place-card-symbol{
    display:flex;
    align-items:center;
    justify-content:center;
    width:78px;
    height:78px;
    margin:0 auto 18px;
    border-radius:50%;
    background:#edf4e9;
    color:#315c3a;
    font-family:Georgia,"Times New Roman",serif;
    font-size:38px;
    font-weight:700;
    line-height:1;
}
.gp-place-card-symbol-browse{
    font-size:43px;
}
.gp-place-search-card-clean h2{
    margin:0 0 8px;
    text-align:center;
    color:#31563a;
    font-family:Georgia,"Times New Roman",serif;
    font-size:23px;
}
.gp-place-search-card-clean>p{
    min-height:54px;
    margin:0 0 24px;
    text-align:center;
    color:#66746b;
    font-size:12px;
    line-height:1.55;
}
.gp-place-search-card-clean label{
    display:block;
    margin:0 0 6px;
    color:#36463b;
    font-size:12px;
    font-weight:800;
}
.gp-place-search-card-clean input[type=search],
.gp-place-search-card-clean select{
    width:100%;
    min-height:46px;
    box-sizing:border-box;
    padding:9px 11px;
    border:1px solid #bcc8ba;
    border-radius:6px;
    background:#fff;
    color:#39463d;
    font-size:13px;
}
.gp-place-full-button{
    width:100%;
    min-height:48px;
    margin-top:12px;
}
.gp-place-select-stack{
    display:grid;
    gap:12px;
}
.gp-place-search-tip{
    margin-top:28px;
    padding:14px 16px;
    text-align:center;
    font-size:11px;
}
.gp-place-browse-links{
    margin-top:22px;
    padding:27px 26px;
    border:1px solid #dce4da;
    border-radius:10px;
    background:#fff;
}
.gp-place-section-heading-centered{
    max-width:760px;
    margin:0 auto 18px;
    text-align:center;
}
.gp-place-section-heading-centered h2{
    margin:4px 0 5px;
    color:#36533d;
    font-family:Georgia,"Times New Roman",serif;
    font-size:27px;
}
.gp-place-section-heading-centered p{
    margin:0;
    color:#69776e;
    font-size:12px;
    line-height:1.5;
}
.gp-place-browse-link-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}
.gp-place-browse-link-card{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:178px;
    padding:18px 14px;
    border:1px solid #dde4db;
    border-radius:8px;
    background:#fbfcfa;
    text-align:center;
    text-decoration:none;
}
.gp-place-browse-link-card:hover,
.gp-place-browse-link-card:focus{
    background:#f2f7ef;
    border-color:#aac1a7;
    text-decoration:none;
}
.gp-place-browse-link-symbol{
    display:flex;
    align-items:center;
    justify-content:center;
    width:50px;
    height:50px;
    margin-bottom:10px;
    border-radius:50%;
    background:#edf4e9;
    color:#315c3a;
    font-size:15px;
    font-weight:900;
}
.gp-place-browse-link-card small{
    color:#68776d;
    font-size:10px;
}
.gp-place-browse-link-card strong{
    margin-top:1px;
    color:#36583d;
    font-family:Georgia,"Times New Roman",serif;
    font-size:17px;
    line-height:1.25;
}
.gp-place-browse-link-card>span:last-child{
    margin-top:10px;
    color:#315c3a;
    font-size:10.5px;
    font-weight:800;
}
.gp-place-index-why-wide{
    display:grid;
    grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);
    gap:22px;
    align-items:stretch;
    margin-top:22px;
    padding:22px 24px;
    border:1px solid #dce4da;
    border-radius:10px;
    background:#f7faf4;
}
.gp-place-index-why-wide h2{
    margin:4px 0 6px;
    color:#36533d;
    font-family:Georgia,"Times New Roman",serif;
    font-size:23px;
}
.gp-place-index-why-wide p{
    margin:0;
    color:#66746b;
    font-size:12px;
    line-height:1.55;
}
@media(max-width:900px){
    .gp-place-browse-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
    .gp-place-search-grid-clean{grid-template-columns:1fr}
    .gp-place-search-card-clean{min-height:0}
    .gp-place-index-why-wide{grid-template-columns:1fr}
}
@media(max-width:520px){
    .gp-place-browse-link-grid{grid-template-columns:1fr}
    .gp-place-index-hero-clean{padding:22px 19px}
    .gp-place-search-card-clean{padding:23px 18px}
}


/* GreenerPasture V2 - Places Index Pass 04 - browse result cleanup */
.gp-place-results{
    margin-top:22px;
    padding:25px 26px;
    border:1px solid #dce4da;
    border-radius:10px;
    background:#fff;
}
.gp-place-results-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    padding-bottom:18px;
    border-bottom:1px solid #e2e8e0;
}
.gp-place-results-heading h2{
    margin:4px 0 6px;
    color:#36533d;
    font-family:Georgia,"Times New Roman",serif;
    font-size:27px;
}
.gp-place-results-heading p{
    margin:0;
    color:#66746b;
    font-size:12px;
    line-height:1.5;
}
.gp-place-result-groups{
    display:grid;
    gap:10px;
    margin-top:17px;
}
.gp-place-result-group{
    margin:0;
    padding:16px 18px;
    border:1px solid #dce4da;
    border-radius:8px;
    background:#fbfcfa;
}
.gp-place-result-group h3{
    margin:0 0 12px;
    color:#3b5942;
    font-family:Georgia,"Times New Roman",serif;
    font-size:19px;
}
.gp-place-result-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px 14px;
}
.gp-place-result-item{
    min-width:0;
    padding:7px 8px;
    border-bottom:1px solid #e8ece6;
    font-size:11.5px;
    line-height:1.35;
}
.gp-place-result-group-collapsible{
    padding:0;
    overflow:hidden;
}
.gp-place-result-group-collapsible summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    padding:15px 18px;
    cursor:pointer;
    list-style:none;
    color:#3b5942;
    font-family:Georgia,"Times New Roman",serif;
    font-size:18px;
    font-weight:700;
}
.gp-place-result-group-collapsible summary::-webkit-details-marker{display:none}
.gp-place-result-group-collapsible summary:after{
    content:"+";
    flex:0 0 auto;
    color:#527159;
    font-family:Arial,sans-serif;
    font-size:22px;
    font-weight:400;
}
.gp-place-result-group-collapsible[open] summary:after{content:"−"}
.gp-place-result-group-collapsible summary small{
    margin-left:auto;
    color:#748178;
    font-family:Arial,sans-serif;
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.gp-place-result-group-collapsible .gp-place-result-list{
    margin:0 18px 16px;
    padding-top:12px;
    border-top:1px solid #e4e9e2;
}
@media(max-width:760px){
    .gp-place-results-heading{flex-direction:column}
    .gp-place-result-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:500px){
    .gp-place-result-list{grid-template-columns:1fr}
    .gp-place-result-group-collapsible summary small{display:none}
}


/* GreenerPasture V2 - Places Index Pass 05 */
.gp-place-browse-note{
    margin-top:12px;
    color:#6e7b72;
    font-size:10.75px;
    line-height:1.45;
    text-align:center;
}
.gp-place-browse-note strong{
    color:#426049;
}
/* Pass 05 removes the experimental Browse Places by Location shortcut cards.
   Browsing now goes exclusively through the proven country/state form. */


/* GreenerPasture V2 - Sitewide Footer Navigation Pass 01 */
.gp-footer-grid-expanded{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:28px;
}
.gp-footer-grid-expanded>div{
    min-width:0;
}
.gp-footer-grid-expanded h3{
    line-height:1.25;
}
.gp-footer-grid-expanded a{
    line-height:1.4;
}
@media(max-width:1050px){
    .gp-footer-grid-expanded{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:720px){
    .gp-footer-grid-expanded{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:460px){
    .gp-footer-grid-expanded{
        grid-template-columns:1fr;
    }
}




/* GreenerPasture V2 - Footer Navigation Pass 05 */
.gp-footer-follow-badge{
    display:inline-flex;
    flex:0 0 48px;
    align-items:center;
    justify-content:center;
    min-width:48px;
    height:42px;
    padding:0 7px;
    border-radius:8px;
    background:rgba(255,255,255,.12);
    color:#fff;
    font-size:9px;
    font-weight:900;
    letter-spacing:.05em;
    line-height:1;
}
.gp-footer-follow-card-store{
    border-color:rgba(181,154,90,.58);
    background:rgba(181,154,90,.12);
}
.gp-footer-follow-card-store:hover,
.gp-footer-follow-card-store:focus{
    border-color:rgba(181,154,90,.78);
    background:rgba(181,154,90,.18);
}
.gp-footer-follow-card-store .gp-footer-follow-badge{
    background:rgba(181,154,90,.28);
}


/* GreenerPasture V2 - Account Register Pass 01 */
.gp-account-entry-page{
    width:min(1040px,calc(100% - 40px));
    margin:30px auto 0;
}
.gp-account-entry-hero{
    padding:29px 31px;
    border:1px solid #d9e2d7;
    border-left:5px solid var(--gp-green);
    border-radius:11px;
    background:#f7faf5;
}
.gp-account-entry-hero h1{
    margin:4px 0 7px;
    color:var(--gp-green-deep);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(31px,5vw,45px);
    line-height:1.08;
}
.gp-account-entry-hero p{
    max-width:780px;
    margin:0;
    color:#617067;
    font-size:13px;
    line-height:1.55;
}
.gp-register-trust-row{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:16px;
}
.gp-register-trust-row span{
    padding:6px 9px;
    border:1px solid #d7e1d5;
    border-radius:999px;
    background:#fff;
    color:#637168;
    font-size:10.5px;
}
.gp-register-trust-row strong{color:#36563d}
.gp-account-alert{
    display:flex;
    flex-direction:column;
    gap:3px;
    margin-top:16px;
    padding:13px 15px;
    border:1px solid #e0c9aa;
    border-left:4px solid #b58d50;
    border-radius:7px;
    background:#fff9ef;
    color:#6d5c41;
    font-size:11.5px;
}
.gp-account-entry-grid{
    display:grid;
    grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
    gap:16px;
    margin-top:18px;
    align-items:start;
}
.gp-account-panel{
    padding:25px 26px;
    border:1px solid #dce4da;
    border-radius:10px;
    background:#fff;
}
.gp-account-signup{
    border-top:4px solid #88a987;
}
.gp-account-panel-heading h2{
    margin:4px 0 5px;
    color:#36533d;
    font-family:Georgia,"Times New Roman",serif;
    font-size:26px;
}
.gp-account-panel-heading p{
    margin:0;
    color:#69776e;
    font-size:12px;
    line-height:1.5;
}
.gp-account-form{
    display:grid;
    gap:14px;
    margin-top:18px;
}
.gp-account-field label{
    display:block;
    margin-bottom:5px;
    color:#3d4c42;
    font-size:12px;
    font-weight:800;
}
.gp-account-field input{
    width:100%;
    min-height:47px;
    box-sizing:border-box;
    padding:9px 11px;
    border:1px solid #b9c6b8;
    border-radius:6px;
    background:#fff;
    color:#344138;
    font-size:15px;
}
.gp-account-field input:focus{
    border-color:#789c78;
    outline:3px solid rgba(49,92,58,.12);
}
.gp-account-field-help{
    display:block;
    margin-top:5px;
    color:#7a857d;
    font-size:10.5px;
    line-height:1.4;
}
.gp-account-form .field-validation-error,
.gp-account-form .validation-summary-errors{
    font-size:11px;
    line-height:1.4;
}
.gp-account-submit{
    width:100%;
    min-height:49px;
    margin-top:2px;
    background:var(--gp-green);
    color:#fff !important;
}
.gp-account-submit:hover,
.gp-account-submit:focus{
    background:var(--gp-green-dark);
    text-decoration:none;
}
.gp-account-forgot{
    display:block;
    padding:4px 0;
    text-align:center;
    font-size:11.5px;
    font-weight:700;
}
.gp-register-benefits{
    display:grid;
    gap:7px;
    margin-top:16px;
}
.gp-register-benefits>div{
    padding:11px 13px;
    border-left:3px solid #b8ccb5;
    background:#f8faf7;
}
.gp-register-benefits strong{
    display:block;
    color:#405b46;
    font-size:11.5px;
}
.gp-register-benefits span{
    display:block;
    margin-top:2px;
    color:#6c7970;
    font-size:10.5px;
    line-height:1.4;
}
.gp-register-before-you-start{
    margin-top:14px;
    padding:13px 15px;
    border:1px solid #e0e5dc;
    border-radius:7px;
    background:#fbfcfa;
}
.gp-register-before-you-start>strong{
    display:block;
    color:#405a45;
    font-size:11.5px;
}
.gp-register-before-you-start ul{
    margin:6px 0 0;
    padding-left:18px;
    color:#6b786f;
    font-size:10.5px;
    line-height:1.5;
}
.gp-account-terms{
    margin:2px 0 0;
    color:#707d74;
    font-size:10.5px;
    line-height:1.45;
}
.gp-register-after-submit{
    margin:0;
    color:#728078;
    text-align:center;
    font-size:10.5px;
    line-height:1.45;
}
.gp-account-temp-password{
    padding:13px 14px;
    border:1px solid #dfd4b9;
    border-radius:7px;
    background:#fffaf0;
    color:#655a43;
    font-size:11px;
}
.gp-account-temp-password p{
    margin:4px 0 8px;
    line-height:1.45;
}
.gp-account-temp-password code{
    display:block;
    padding:8px;
    border-radius:5px;
    background:#fff;
    font-size:13px;
}
.gp-account-already{
    padding:28px 30px;
    border:1px solid #dce4da;
    border-radius:10px;
    background:#fff;
}
.gp-account-already h1{
    margin:4px 0 6px;
    color:#36533d;
    font-family:Georgia,"Times New Roman",serif;
}
.gp-account-already p{
    color:#68766d;
}
.gp-account-already-actions{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-top:15px;
}
@media(max-width:820px){
    .gp-account-entry-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
    .gp-account-entry-page{
        width:calc(100% - 28px);
        margin-top:18px;
    }
    .gp-account-entry-hero,
    .gp-account-panel,
    .gp-account-already{
        padding:22px 19px;
    }
    .gp-register-trust-row{
        flex-direction:column;
    }
    .gp-register-trust-row span{
        border-radius:6px;
    }
    .gp-account-already-actions{
        flex-direction:column;
    }
    .gp-account-already-actions .gp-button,
    .gp-account-already-actions .gp-account-secondary{
        width:100%;
        box-sizing:border-box;
        text-align:center;
    }
}


/* GreenerPasture V2 - Email Communications Pass 01 */
.gp-account-terms{
    padding:11px 12px;
    border:1px solid #dfe6dc;
    border-radius:6px;
    background:#f8faf7;
    color:#66746b;
    font-size:11px;
    line-height:1.5;
}

.gp-bing-map-link {
    width: 250px;
    height: 250px;
    border: 1px solid #ccd5d0;
    background: #eef4f0;
    overflow: hidden;
}

.gp-bing-map-link a {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 12px;
    padding: 20px;
    text-align: center;
    text-decoration: none;
    color: inherit;
}

.gp-bing-map-name {
    font-size: 18px;
    font-weight: bold;
}

.gp-bing-map-open {
    font-size: 14px;
    color: #0067b8;
}

/* =========================================================
   Places Details - Visible Genealogy Shop / Product Grid V2
   Product cards are now emitted explicitly by PlacesController.
   ========================================================= */

.gp-place-shop {
    margin-top: 30px !important;
    padding: 28px 30px !important;
    border: 1px solid #d8e1d8 !important;
    border-left: 4px solid var(--gp-gold) !important;
    border-radius: 10px !important;
    background: linear-gradient(180deg, #fbfaf6 0%, #f7f5ef 100%) !important;
}

.gp-place-shop-heading {
    max-width: 780px;
    margin-bottom: 24px;
}

.gp-place-shop-heading h2 {
    margin: 4px 0 8px !important;
    color: var(--gp-green-deep) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(1.65rem, 2.6vw, 2.15rem) !important;
    line-height: 1.15 !important;
    text-align: left !important;
}

.gp-place-shop-heading p {
    margin: 0 !important;
    color: var(--gp-muted);
    font-size: .95rem;
    line-height: 1.55;
}

.gp-place-shop-featured,
.gp-place-shop-resources {
    min-width: 0;
}

.gp-place-shop-featured > h2,
.gp-place-shop-resources > h2 {
    margin: 5px 0 16px !important;
    color: var(--gp-green-deep) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(1.4rem, 2.2vw, 1.8rem) !important;
    line-height: 1.2 !important;
    text-align: left !important;
}

/* Purpose-built merchandise grid emitted by PlacesController. */
.gp-place-product-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
    width: 100%;
    margin: 0;
}

.gp-place-product-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 16px;
    border: 1px solid #d9e1d8;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 2px 7px rgba(32, 56, 38, .04);
    color: #53635a;
    overflow: hidden;
}

.gp-place-gifts-inner .gp-place-product-card .gp-place-product-image-link {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 250px;
    max-width: 100%;
    height: 250px;
    margin: 4px auto 18px;
    overflow: hidden;
    border-radius: 6px;
    background: #fbfbf9;
    text-decoration: none !important;
}

.gp-place-gifts-inner .gp-place-product-card .gp-place-product-image {
    display: block !important;
    width: 250px !important;
    max-width: none !important;
    height: 250px !important;
    max-height: none !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    object-fit: contain !important;
    transform: scale(1.4);
    transform-origin: center center;
    box-shadow: none !important;
}

.gp-place-product-title {
    margin: 0 0 9px !important;
    padding: 0 !important;
    border: 0 !important;
    color: var(--gp-green-deep) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1rem !important;
    line-height: 1.35 !important;
    text-align: left !important;
}

.gp-place-product-title a {
    color: var(--gp-green-deep) !important;
    font-weight: 750 !important;
    text-decoration: none !important;
}

.gp-place-product-title a:hover {
    color: var(--gp-green) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.gp-place-product-description {
    display: -webkit-box;
    overflow: hidden;
    margin: 0 0 14px !important;
    color: #5f6d64;
    font-size: .8rem;
    line-height: 1.48;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.gp-place-product-action {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    min-height: 38px;
    margin-top: auto;
    padding: 8px 13px !important;
    border: 1px solid #c7d4c8;
    border-radius: 6px;
    background: #f2f6f1;
    color: var(--gp-green-deep) !important;
    font-size: .78rem;
    font-weight: 750 !important;
    line-height: 1.2;
    text-decoration: none !important;
}

.gp-place-product-action::after {
    content: "\2192";
    margin-left: 7px;
}

.gp-place-product-action:hover {
    background: #e7efe6;
    border-color: #b7c8ba;
    text-decoration: none !important;
}

/* Main store CTA stays outside the grid and spans naturally. */
.gp-place-shop-store-cta {
    margin: 20px 0 30px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    opacity: 1 !important;
}

.gp-place-shop-store-cta > a,
.gp-place-shop-store-cta > a:link,
.gp-place-shop-store-cta > a:visited {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 12px 20px !important;
    border: 1px solid #2f633e !important;
    border-radius: 7px;
    background-color: #2f633e !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
    filter: none !important;
    font-size: 0.9rem;
    font-weight: 700 !important;
    line-height: 1.3;
    text-decoration: none !important;
}

.gp-place-shop-store-cta > a::after {
    content: "\2192";
    margin-left: 8px;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
}

.gp-place-shop-store-cta > a:hover {
    border-color: #214b2e !important;
    background-color: #214b2e !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
    text-decoration: underline !important;
}

.gp-place-shop-store-cta > a:focus,
.gp-place-shop-store-cta > a:focus-visible {
    border-color: #214b2e !important;
    background-color: #214b2e !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    outline: 3px solid #d19b3d !important;
    outline-offset: 3px;
    opacity: 1 !important;
    text-decoration: underline !important;
}

/* Books/resources remain compact and editorial. */
.gp-place-shop-resources {
    padding-top: 24px;
    border-top: 1px solid #dedfd6;
}

.gp-place-shop-resources > .flex-container {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px !important;
    width: 100% !important;
    margin: 0 !important;
}

.gp-place-shop-resources > .flex-container > [class*="flex-item"] {
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    border: 1px solid #e0e5df !important;
    border-radius: 6px !important;
    background: #fff !important;
    box-shadow: none !important;
    font-size: .82rem !important;
    line-height: 1.45;
}

.gp-place-shop-resources a {
    color: #53645a !important;
    font-weight: 650 !important;
}

.gp-place-shop-resource-links {
    margin-top: 10px !important;
}

@media (max-width: 980px) {
    .gp-place-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .gp-place-shop {
        width: min(100% - 14px, 1160px) !important;
        padding: 22px 18px !important;
    }

    .gp-place-product-grid,
    .gp-place-shop-resources > .flex-container {
        grid-template-columns: 1fr;
    }

    .gp-place-gifts-inner .gp-place-product-card .gp-place-product-image-link {
        width: 280px;
        height: 280px;
    }

    .gp-place-gifts-inner .gp-place-product-card .gp-place-product-image {
        width: 280px !important;
        height: 280px !important;
        max-height: none !important;
    }

    .gp-place-shop-store-cta > a {
        width: 100%;
    }
}

@media print {
    .gp-place-shop {
        display: none !important;
    }
}
.gp-place-amazon-research {
    margin-top: 24px;
}

.gp-amazon-place-links {
    padding: 22px;
    border: 1px solid #d8d8ce;
    border-radius: 8px;
    background: #fff;
}

.gp-amazon-place-intro {
    margin: 0 0 16px;
    color: #303b36;
    font-size: 1rem;
    line-height: 1.5;
}

.gp-amazon-place-link-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.gp-amazon-place-link {
    position: relative;
    display: block;
    padding: 14px 42px 14px 16px;
    border: 1px solid #d9dfdb;
    border-radius: 6px;
    background: #f8faf8;
    color: #365950;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
}

.gp-amazon-place-link::after {
    position: absolute;
    top: 50%;
    right: 16px;
    content: "\2192";
    transform: translateY(-50%);
    color: #9a681c;
    font-size: 1.2rem;
}

.gp-amazon-place-link:hover,
.gp-amazon-place-link:focus {
    border-color: #9a681c;
    background: #fffaf0;
    color: #734c13;
    text-decoration: underline;
}

.gp-amazon-place-link:focus {
    outline: 3px solid rgba(154, 104, 28, 0.25);
    outline-offset: 2px;
}

.gp-amazon-disclosure {
    margin: 16px 0 0;
    color: #5d625f;
    font-size: 0.82rem;
    line-height: 1.4;
}

@media (min-width: 760px) {
    .gp-amazon-place-link-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
/* Keep footer cards readable in every link state. */
footer a,
footer a:link,
footer a:visited,
footer a:hover,
footer a:focus,
footer a:active {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
}

/* Prevent visited-link rules from darkening text inside cards. */
footer a *,
footer a:link *,
footer a:visited *,
footer a:hover *,
footer a:focus *,
footer a:active * {
    opacity: 1 !important;
}

/* Main card titles. */
footer a strong,
footer a h2,
footer a h3,
footer a h4 {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Secondary card descriptions. */
footer a p,
footer a small {
    color: #d6ded8 !important;
    -webkit-text-fill-color: #d6ded8 !important;
}

/* Interactive feedback. */
footer a:hover,
footer a:focus {
    background-color: rgba(255, 255, 255, 0.08) !important;
}

footer a:focus,
footer a:focus-visible {
    outline: 3px solid #d8a43c !important;
    outline-offset: 3px;
}
/* Larger responsive image in the About the Place section. */
.gp-place-story-callout .gp-place-about-image {
    display: block !important;
    width: 360px !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 14px 0 24px !important;
    object-fit: contain;
}

@media (max-width: 700px) {
    .gp-place-story-callout .gp-place-about-image {
        width: 100% !important;
        max-width: 420px !important;
    }
}
