/* ===========================================================
   GOLD BOND TEMPLATE
   Tier 3 Individual Bond Page

   Static styles only. The per-page theme variables
   (--tier-gradient / --tier-accent / --tier-soft /
   --tier-soft-2 / --tier-border / --tier-hover) are emitted
   inline by src/_includes/templates/bond-page.njk.
   =========================================================== */


/* ===========================================================
   BASE + DESIGN TOKENS
   =========================================================== */

.bp *,
.bp *::before,
.bp *::after{
    box-sizing:border-box;
}

.bp{
    font-family:inherit;
    color:var(--tier-ink);
    margin:0 calc(-50vw + 50%);
    width:100vw;
    padding:0;

/* -------- SEMANTIC TOKENS --------
   Derived from the six --tier-* values emitted per page by
   templates/bond-page.njk. The same derivation lives in
   _data/pseo/themes.js (deriveTokens); the mix percentages below
   must stay in sync with ACCENT_DARK_MIX there.

   Declaring these here rather than inline means a page only has to
   carry six variables, and a later phase can emit any of these
   directly to override the derived default. */

    /* Accent split by surface. Every palette accent is a light tint,
       so none of them are legible as text on paper: measured range
       was 1.44:1 to 3.96:1. --accent-strong darkens the accent until
       it clears AA (measured minimum 5.42:1 across the palettes in
       use); --accent lightens nothing and is only for near-black
       surfaces; --accent-on-hero lightens for the mid-tone gradient. */
    --tier-accent-dark:color-mix(in srgb,var(--tier-accent) 45%,#0b1220);
    --tier-accent-soft:var(--tier-soft);
    --tier-accent-on-dark:color-mix(in srgb,var(--tier-accent) 55%,#ffffff);

    --tier-paper:#ffffff;
    --tier-surface:#ffffff;
    --tier-surface-alt:var(--tier-soft-2);

    --tier-ink:#0f172a;
    --tier-ink-muted:#475569;

/* -------- ROLE ALIASES -------- */

    --accent:var(--tier-accent);              /* on near-black only */
    --accent-strong:var(--tier-accent-dark);  /* text + icons on paper */
    --accent-light:var(--tier-accent-soft);   /* tinted fills */
    --accent-on-hero:var(--tier-accent-on-dark);

    --hero-text:#ffffff;
    --hero-sub:rgba(255,255,255,.90);
    --hero-muted:rgba(255,255,255,.70);

    --surface:var(--tier-surface);
    --surface-soft:var(--tier-surface-alt);

    /* Neutral hairlines. Deliberately not --tier-border, which is the
       themed border and is reserved for .bp-panel. */
    --border:#e2e8f0;
    --border-soft:#f1f5f9;

    --text:var(--tier-ink);
    --text-light:var(--tier-ink-muted);
    /* Body secondary ink — keep readable on paper (was too light at #64748b). */
    --text-muted:#334155;

    /* Masked so the arrow still takes its color from --accent. A plain
       background-image could not be recolored per theme. */
    --icon-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E");

    --radius-sm:12px;
    --radius-md:16px;
    --radius-lg:20px;

    --shadow:
        0 12px 30px rgba(0,0,0,.08);

    --shadow-lg:
        0 20px 50px rgba(0,0,0,.20);
}

.bp .bp-inner{
    max-width:1040px;
    margin:0 auto;
    padding:0 24px;
}

/* ===========================================================
   HERO
   =========================================================== */

/* Shared hero shell (bond detail + hub pages). Bond detail uses
   .bp-hero-bond for the institutional treatment below. */
.bp .bp-hero{
    position:relative;
    overflow:hidden;

    display:flex;
    flex-direction:column;
    justify-content:center;

    min-height:600px;

    padding:clamp(76px,9vw,118px) 0 64px;
}

.bp .bp-hero:not(.bp-hero-bond){
    background:var(--tier-ink);
}

/* Bond detail hero — two-zone institutional layout.
   Category color comes from --tier-gradient / --tier-accent
   (set per page from CSV category via themes.js). */
.bp .bp-hero.bp-hero-bond{
    --hero-label-col:minmax(7.5rem,9rem);
    --hero-rule:color-mix(in srgb,var(--tier-accent) 70%,transparent);

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:stretch;

    min-height:clamp(480px,64vh,600px);

    padding:clamp(56px,8vh,84px) 0 clamp(12px,2vh,18px);

    isolation:isolate;

    background:var(--tier-gradient);
}

.bp .bp-hero-bond .bp-hero-inner{
    position:relative;

    z-index:1;

    display:grid;

    grid-template-columns:minmax(0,1.08fr) minmax(260px,.92fr);

    align-items:center;

    column-gap:clamp(40px,6vw,80px);

    flex:1;

    width:100%;
}

.bp .bp-hero-main{
    display:flex;

    flex-direction:column;

    justify-content:center;

    width:100%;
}

.bp .bp-hero-bond .bp-hero-lede{
    padding:0;
}

.bp .bp-hero-bond .bp-hero-eyebrow{
    margin:0 0 18px;

    color:var(--tier-accent);

    font-size:10px;
    font-weight:800;

    letter-spacing:.22em;
    line-height:1.4;
    text-transform:uppercase;
}

.bp .bp-hero-bond h1{
    max-width:16.5em;

    margin:0 0 14px!important;

    color:#fff!important;

    font-family:Georgia,"Times New Roman",Times,serif!important;
    font-size:clamp(1.625rem,2.35vw,2.25rem)!important;
    font-weight:600!important;

    line-height:1.2!important;

    letter-spacing:-.01em;
}

.bp .bp-hero.bp-hero-bond .bp-hero-lede .bp-hero-dek{
    max-width:42ch;

    margin:0 0 10px;

    color:var(--tier-accent);

    font-size:clamp(1rem,1.25vw,1.0625rem);
    font-weight:600;

    line-height:1.5;
}

.bp .bp-hero-bond .bp-hero-summary{
    max-width:48ch;

    margin:0;

    color:rgba(255,255,255,.58);

    font-size:.875rem;

    line-height:1.68;
}

.bp .bp-hero-bond .bp-hero-cta{
    display:flex;

    flex-direction:column;

    align-items:flex-start;

    gap:13px;

    margin-top:28px;

    padding-top:24px;

    border-top:1px solid var(--hero-rule);
}

.bp .bp-hero-bond .bp-hero-trust{
    max-width:44ch;

    margin:0;

    color:rgba(255,255,255,.55);

    font-size:.8125rem;
    font-weight:400;

    line-height:1.55;
}

.bp .bp-hero-bond .bp-hero-trust a{
    color:rgba(255,255,255,.82);
    font-weight:600;
    text-decoration:none;
    border-bottom:1px solid rgba(255,255,255,.28);
}

.bp .bp-hero-bond .bp-hero-trust a:hover{
    color:#fff;
    border-bottom-color:rgba(255,255,255,.55);
}

.bp .bp-hero-brief{
    display:flex;

    flex-direction:column;

    justify-content:center;

    width:100%;

    padding:0 0 2px 0;
}

.bp .bp-hero-brief-list{
    margin:0;

    flex:0 1 auto;
}

.bp .bp-hero-brief-title{
    margin:0 0 14px;

    padding-bottom:10px;

    border-bottom:1px solid var(--hero-rule);

    color:var(--tier-accent);

    font-size:10px;
    font-weight:600;

    letter-spacing:.14em;
    text-transform:uppercase;
}

.bp .bp-hero-bond .bp-hero-brief-end{
    flex-shrink:0;

    margin-top:12px;

    padding-top:12px;

    border-top:1px solid var(--hero-rule);
}

.bp .bp-hero-bond .bp-hero-brief-item{
    display:grid;

    grid-template-columns:var(--hero-label-col) minmax(0,1fr);

    align-items:start;

    gap:8px 14px;

    padding:16px 0;

    border-top:1px solid var(--hero-rule);
}

.bp .bp-hero-brief-item:first-child{
    padding-top:0;

    border-top:0;
}

.bp .bp-hero-brief-item dt{
    margin:0;

    color:color-mix(in srgb,var(--tier-accent) 75%,#ffffff);

    font-size:10px;
    font-weight:600;

    letter-spacing:.11em;
    line-height:1.4;
    text-transform:uppercase;
}

.bp .bp-hero-brief-item dd{
    margin:0;

    color:rgba(255,255,255,.82);

    font-size:.84375rem;

    line-height:1.42;
}

.bp .bp-hero-bond .bp-hero-brief-authority{
    display:flex;

    flex-direction:column;

    align-items:flex-start;

    gap:1px;

    grid-column:2;
}

.bp .bp-hero-bond .bp-hero-brief-authority-primary{
    display:block;

    color:rgba(255,255,255,.82);

    font-size:.84375rem;

    line-height:1.35;
}

.bp .bp-hero-bond .bp-hero-brief-authority .authority-meta{
    display:block;

    margin:0;
    padding:0;

    color:rgba(255,255,255,.4);

    font-size:.6875rem;
    font-weight:400;

    letter-spacing:0;
    line-height:1.3;
    text-transform:none;
}

/* Letterhead rule. */
.bp .bp-hero::after{

    content:"";

    position:absolute;
    inset:0 0 auto;

    height:3px;

    background:var(--tier-gradient);
}

/* Cool hairline — gold stays on type/CTA, not the hero field edge. */
.bp .bp-hero.bp-hero-bond::after{
    height:2px;

    background:rgba(255,255,255,.18);
}

/* One restrained accent wash for depth. */
.bp .bp-hero:not(.bp-hero-bond)::before{

    content:"";

    position:absolute;

    width:780px;
    height:780px;

    top:-330px;
    right:-230px;

    border-radius:50%;

    pointer-events:none;

    background:
    radial-gradient(
        circle,
        color-mix(in srgb,var(--tier-accent) 13%,transparent) 0%,
        transparent 68%
    );
}

/* No field wash — category accent stays on type/borders only. */
.bp .bp-hero.bp-hero-bond::before{
    content:none;
    display:none;
}

.bp .bp-hero-lede{

    position:relative;

    z-index:2;

    max-width:760px;
}

.bp .bp-pill{
    display:inline-flex;
    align-items:center;
    padding:7px 18px;
    border-radius:999px;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.35);
    color:#fff;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin-bottom:18px;
}

/* Squared off rather than pill-shaped: the rounded pill is the single
   strongest SaaS tell in the hero. */
.bp .bp-badge{

    display:inline-flex;
    align-items:center;
    gap:9px;

    padding:7px 15px;

    border-radius:2px;

    background:color-mix(in srgb,var(--tier-accent) 9%,transparent);

    border:1px solid color-mix(in srgb,var(--tier-accent) 32%,transparent);

    color:var(--accent-on-hero);

    font-size:11px;

    font-weight:700;

    letter-spacing:.14em;

    text-transform:uppercase;

    margin-bottom:32px;
}

.bp .bp-badge::before{

    content:"";

    width:5px;
    height:5px;

    flex-shrink:0;

    border-radius:50%;

    background:var(--accent);
}

.bp .bp-hero:not(.bp-hero-bond) h1{

    color:#fff!important;

    font-size:clamp(2.2rem,4.4vw,3.5rem)!important;

    font-weight:800!important;

    line-height:1.07!important;

    margin:0 0 20px!important;

    letter-spacing:-.028em;
}

.bp .bp-tag{

    max-width:58ch;

    color:var(--accent-on-hero);

    font-size:clamp(1rem,1.5vw,1.16rem);

    font-weight:600;

    line-height:1.5;

    margin-bottom:24px;
}

.bp .bp-hero:not(.bp-hero-bond) p{

    max-width:62ch;

    color:var(--hero-sub);

    line-height:1.8;

    font-size:1rem;

    margin:0 0 clamp(34px,4vw,44px);
}

.bp .bp-hero-actions{

    display:flex;

    flex-wrap:wrap;

    align-items:center;

    gap:22px 32px;
}

.bp .bp-hero:not(.bp-hero-bond) .bp-hero-actions{
    margin-bottom:clamp(56px,7vw,86px);
}

.bp .bp-btn{

    display:inline-flex;

    align-items:center;

    gap:11px;

    background:var(--tier-paper);

    color:var(--accent-strong)!important;

    text-decoration:none!important;

    padding:17px 32px;

    border-radius:3px;

    font-size:.95rem;

    font-weight:700;

    letter-spacing:.01em;

    box-shadow:
        0 14px 34px rgba(0,0,0,.34);

    transition:transform .18s ease,box-shadow .18s ease;
}

.bp .bp-btn:hover{

    transform:translateY(-2px);

    box-shadow:
        0 18px 42px rgba(0,0,0,.42);
}

/* Match footer CTA: white rounded pill, muted gold label. */
.bp .bp-hero-bond .bp-btn-hero{
    display:inline-flex;

    align-items:center;
    justify-content:center;

    min-height:56px;

    background:var(--tier-paper);

    color:var(--accent-strong)!important;

    padding:16px 40px;

    border:0;
    border-radius:12px;

    font-size:1.0625rem;
    font-weight:800;

    letter-spacing:.02em;
    line-height:1.2;

    box-shadow:0 10px 28px rgba(0,0,0,.28);

    transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}

.bp .bp-hero-bond .bp-btn-hero:hover{
    background:var(--tier-accent-soft);

    color:var(--accent-strong)!important;

    transform:translateY(-3px);

    box-shadow:0 14px 32px rgba(0,0,0,.32);
}

/* Secondary trust indicator. Carries hero_note, which states the real
   underwriting condition rather than a marketing claim. */
.bp .bp-note{

    display:flex;

    align-items:flex-start;

    gap:10px;

    max-width:46ch;

    color:rgba(255,255,255,.62);

    font-size:.8rem;

    line-height:1.6;
}

.bp .bp-note svg{

    width:16px;
    height:16px;

    flex-shrink:0;

    margin-top:1px;

    color:var(--accent);
}

/* Executive summary strip. Labels in this data run to 114 characters, so
   they are set as sentence-case prose on a real measure instead of tracked
   micro-caps, which would be unreadable at that length. */
.bp .bp-hero-stats{

    position:relative;

    z-index:2;

    display:grid;

    grid-template-columns:repeat(3,1fr);

    margin:0;

    padding:0;

    border-top:1px solid rgba(255,255,255,.14);
}

.bp .bp-hero-stat{

    display:flex;

    flex-direction:column-reverse;

    justify-content:flex-end;

    gap:10px;

    padding:32px 28px 4px;
}

.bp .bp-hero-stat:first-child{
    padding-left:0;
}

.bp .bp-hero-stat+.bp-hero-stat{
    border-left:1px solid rgba(255,255,255,.14);
}

.bp .bp-hero-stat-number{

    margin:0;

    color:var(--accent);

    font-size:clamp(1.35rem,2.2vw,1.85rem);

    font-weight:800;

    line-height:1.15;

    letter-spacing:-.015em;
}

.bp .bp-hero-stat-label{

    color:rgba(255,255,255,.58);

    font-size:.78rem;

    font-weight:500;

    line-height:1.6;
}

/* ===========================================================
   RELATED BONDS

   Post-FAQ sibling list. Ruled rows in one panel — not a card grid —
   so the module reads as a continuation of the institutional register.
   =========================================================== */

/* Wider measure to pull orphan title/summary words up, then a tighter
   vertical rhythm so the block does not grow taller. Color unchanged. */
.bp #related-bonds .bp-inner{
    max-width:1180px;
}

.bp .bp-related{

    display:grid;

    grid-template-columns:repeat(2,minmax(0,1fr));

    gap:0;

    margin:26px 0 4px;

    padding:0;

    list-style:none;

    background:var(--tier-surface);

    border:1px solid var(--border);

    border-radius:4px;

    overflow:hidden;
}

.bp .bp-related-item{

    padding:12px 28px;

    border-top:1px solid var(--border-soft);
}

.bp .bp-related-item:nth-child(1),
.bp .bp-related-item:nth-child(2){
    border-top:0;
}

.bp .bp-related-item:nth-child(even){
    border-left:1px solid var(--border-soft);
}

.bp .bp-related-link{

    display:block;

    color:var(--accent-strong);

    font-size:1rem;

    font-weight:700;

    line-height:1.3;

    text-decoration:none;

    text-wrap:balance;
}

.bp .bp-related-link:hover{
    text-decoration:underline;
}

.bp .bp-related-summary{

    margin:4px 0 0;

    max-width:none;

    color:var(--text-muted);

    font-size:.9rem;

    line-height:1.4;

    text-wrap:pretty;
}

/* Continue — full-width ruled panel (same register as related bonds). */
.bp .bp-related-hubs{
    margin:0;
    max-width:none;
    padding:0;
    border:0;
    text-align:left;
}

.bp .bp-related-hubs--after{
    margin-top:40px;
    padding-top:32px;
    border-top:1px solid var(--border);
}

.bp .bp-related-hubs-eyebrow{
    margin:0 0 8px;
    color:var(--accent-strong);
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.bp h2.bp-related-hubs-title{
    margin:0 0 18px!important;
    color:var(--text, #0f172a)!important;
    font-family:Georgia,"Times New Roman",Times,serif!important;
    font-size:clamp(1.25rem,2vw,1.5rem)!important;
    font-weight:600!important;
    line-height:1.25;
    letter-spacing:-.01em;
}

.bp .bp-related-hubs-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    margin:0;
    padding:0;
    list-style:none;
    background:var(--tier-surface);
    border:1px solid var(--border);
    border-radius:4px;
    overflow:hidden;
}

.bp .bp-related-hubs-list li{
    border-top:1px solid var(--border);
}

.bp .bp-related-hubs-list li:nth-child(1),
.bp .bp-related-hubs-list li:nth-child(2){
    border-top:0;
}

.bp .bp-related-hubs-list li:nth-child(even){
    border-left:1px solid var(--border);
}

.bp .bp-related-hubs-list a{
    display:block;
    padding:16px 24px;
    color:inherit;
    text-decoration:none;
}

.bp .bp-related-hubs-name{
    color:var(--accent-strong);
    font-size:1.015625rem;
    font-weight:700;
    line-height:1.35;
}

.bp .bp-related-hubs-list a:hover .bp-related-hubs-name{
    text-decoration:underline;
}

/* ===========================================================
   HUB / GUIDE LISTS

   Ruled directory panels shared by category hubs, state hubs,
   and guide indexes — not card grids.
   =========================================================== */

.bp .bp-hub-list{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    margin:26px 0 4px;
    padding:0;
    list-style:none;
    background:var(--tier-surface, var(--tier-paper, #fff));
    border:1px solid var(--border, var(--tier-border));
    border-radius:4px;
    overflow:hidden;
}

.bp .bp-hub-list-item{
    padding:16px 24px;
    border-top:1px solid var(--border-soft, var(--tier-border));
}

.bp .bp-hub-list-item:first-child{
    border-top:0;
}

.bp .bp-hub-list-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px 16px;
}

.bp .bp-hub-apply{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border:1px solid var(--tier-border, var(--border));
  color:var(--accent-strong, #1a2a8a);
  font-size:.875rem;
  font-weight:650;
  text-decoration:none;
  background:var(--tier-paper, #fff);
}

.bp .bp-hub-apply:hover{
  border-color:var(--tier-hover, var(--accent-strong));
  color:var(--tier-hover, var(--accent-strong));
}

.bp .bp-hub-list-link{
    display:block;
    color:var(--accent-strong);
    font-size:1.05rem;
    font-weight:700;
    line-height:1.35;
    text-decoration:none;
    text-wrap:balance;
}

.bp .bp-hub-list-link:hover{
    text-decoration:underline;
}

.bp .bp-hub-list-summary{
    margin:6px 0 0;
    max-width:68ch;
    color:var(--text-muted);
    font-size:.92rem;
    line-height:1.5;
}

.bp .bp-hub-link-list{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:10px 28px;
    margin:22px 0 28px;
    padding:0;
    list-style:none;
}

.bp .bp-hub-link-list a{
    color:var(--accent-strong);
    font-weight:600;
    text-decoration:none;
}

.bp .bp-hub-link-list a:hover{
    text-decoration:underline;
}

.bp .bp-hub-section-title{
    color:inherit;
    text-decoration:none;
}

.bp .bp-hub-section-title:hover{
    text-decoration:underline;
}

.bp .bp-hub-cta{
    text-align:center;
}

.bp .bp-hub-cta .bp-hero-actions{
    justify-content:center;
    margin-top:8px;
}

.bp .bp-guide-prose{
    max-width:720px;
}

.bp .bp-guide-prose p{
    max-width:62ch;
}

@media (max-width:720px){
    .bp .bp-hub-link-list{
        grid-template-columns:1fr;
    }
}

/* ===========================================================
   AUTHORITY RESOURCES — compact band under FAQ (no floater gap)
   =========================================================== */

.bp #faq{
    padding-bottom:20px;
}

.bp .bp-authority{

    padding:16px 0 20px;

    background:color-mix(in srgb,var(--tier-soft) 55%,var(--tier-paper));
    border-top:1px solid var(--border);
}

.bp .bp-authority .bp-inner{

    display:block;
}

.bp .bp-authority-panel{

    width:100%;

    max-width:none;

    padding:18px 24px;

    text-align:left;

    background:var(--tier-surface);

    border:1px solid var(--border);

    border-radius:4px;

    box-shadow:none;
}

.bp .bp-authority .bp-eyebrow{
    margin:0 0 8px;
}

.bp .bp-authority-label{

    margin:0 0 6px;

    color:var(--text);

    font-size:1rem;

    font-weight:700;

    line-height:1.45;
}

.bp .bp-authority-link{

    color:var(--accent-strong);

    font-size:.95rem;

    font-weight:600;

    line-height:1.4;

    text-decoration:none;

    word-break:break-all;
}

.bp .bp-authority-link:hover{
    text-decoration:underline;
}

/* ===========================================================
   BREADCRUMBS

   Sits below the TOC card (not under it) so the trail stays fully
   visible. Quiet links only — no cards.
   =========================================================== */

.bp .bp-breadcrumbs{

    position:relative;

    z-index:3;

    margin:0;

    padding:14px 0 10px;

    background:color-mix(in srgb,var(--tier-soft) 45%,var(--tier-paper));

    border-bottom:1px solid var(--border);
}

.bp .bp-breadcrumb-list{

    display:flex;

    flex-wrap:wrap;

    align-items:center;

    gap:8px 10px;

    margin:0;

    padding:0;

    list-style:none;

    color:var(--text-muted);

    font-size:.84rem;

    line-height:1.45;
}

.bp .bp-breadcrumb-item{

    display:inline-flex;

    align-items:center;

    gap:10px;

    min-width:0;
}

.bp .bp-breadcrumb-item:not(:last-child)::after{

    content:"";

    width:5px;

    height:5px;

    border-right:1px solid var(--text-muted);

    border-top:1px solid var(--text-muted);

    transform:rotate(45deg);

    opacity:.55;
}

.bp .bp-breadcrumb-item a{

    color:var(--accent-strong);

    text-decoration:none;

    font-weight:600;
}

.bp .bp-breadcrumb-item a:hover{

    text-decoration:underline;
}

.bp .bp-breadcrumb-item[aria-current="page"] span{

    color:var(--tier-ink);

    font-weight:600;

    overflow:hidden;

    text-overflow:ellipsis;

    white-space:nowrap;

    max-width:42ch;
}

/* ===========================================================
   PAGE ANCHORS — thin hub-style strip
   =========================================================== */

.bp .bp-anchors{
    border-bottom:1px solid var(--border-soft, rgba(15,23,42,.12));
    background:var(--tier-paper, #fff);
}

.bp .bp-anchors-list{
    display:flex;
    flex-wrap:wrap;
    gap:8px 28px;
    margin:0;
    padding:16px 0;
    list-style:none;
}

.bp .bp-anchors a{
    color:var(--text-muted, #475569);
    font-size:.8125rem;
    font-weight:600;
    letter-spacing:.03em;
    text-decoration:none;
}

.bp .bp-anchors a:hover{
    color:var(--accent-strong);
}

/* ===========================================================
   BASE SECTIONS
   =========================================================== */

.bp section{

    background:var(--tier-paper);

    padding:clamp(36px,5vh,48px) 0;
}

.bp section+section{

    border-top:1px solid var(--tier-border);
}

.bp .bp-soft{
    background:var(--tier-accent-soft);
}

.bp h2{

    margin:0 0 14px!important;

    color:var(--text)!important;

    font-family:Georgia,"Times New Roman",Times,serif!important;

    font-size:clamp(1.35rem,2.2vw,1.75rem)!important;

    font-weight:600!important;

    letter-spacing:-.01em;

    line-height:1.25!important;
}

.bp .bp-eyebrow{

    display:inline-block;

    margin-bottom:10px;

    color:var(--accent-strong);

    text-transform:uppercase;

    letter-spacing:.10em;

    font-size:11px;

    font-weight:800;
}

.bp p{

    color:var(--text-light);

    font-size:15px;

    line-height:1.8;

    margin:0 0 16px;
}

/* ===========================================================
   CHECKLIST
   =========================================================== */

/* ===========================================================
   DEFINITION BLOCK

   what_is_definition runs 334-520 characters as a single unsplittable
   value. A citation rule plus a held measure carries that length; the
   alternative, breaking on sentence boundaries, would alter legal wording
   and misfire on abbreviations and em-dash asides.
   =========================================================== */

.bp .bp-definition{

    margin:22px 0 34px;

    padding:4px 0 4px 26px;

    border-left:3px solid var(--tier-accent);
}

.bp .bp-definition p{

    margin:0;

    max-width:72ch;

    color:var(--text);

    font-size:1.06rem;

    line-height:1.85;
}

/* ===========================================================
   KEY PROVISIONS

   Ruled rather than boxed, so this section stays distinct from the
   eligibility panel and document schedule further down the page.
   =========================================================== */

.bp .bp-provisions{

    margin:0;

    padding-top:26px;

    border-top:1px solid var(--border);
}

.bp .bp-provisions-head{

    margin-bottom:18px;

    color:var(--accent-strong);

    font-size:11px;

    font-weight:700;

    letter-spacing:.13em;

    text-transform:uppercase;
}

.bp .bp-provisions-items{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:16px 40px;

    margin:0;

    padding:0;

    list-style:none;
}

.bp .bp-provisions-items li{

    color:var(--text);

    font-size:.95rem;

    font-weight:500;

    line-height:1.65;

    padding-left:14px;

    border-left:2px solid color-mix(in srgb,var(--tier-accent) 55%,var(--border));
}

/* ===========================================================
   STAT BAND
   =========================================================== */

/* ===========================================================
   EXECUTIVE BOND SUMMARY

   A label/value ledger rather than a row of cards. The values here are
   prose, not figures (bond_amount_display runs to 186 characters and
   premium_display to 179), which three centred stat cards could not
   hold. The previous .bp-stat-band set them at 32px/900.
   =========================================================== */

.bp .bp-summary{

    margin:34px 0 6px;

    background:var(--tier-surface);

    border:1px solid var(--border);

    border-radius:4px;

    overflow:hidden;

    box-shadow:var(--shadow);
}

.bp .bp-summary-head{

    display:flex;

    flex-wrap:wrap;

    align-items:baseline;

    justify-content:space-between;

    gap:6px 24px;

    padding:19px 28px;

    background:var(--tier-gradient);

    border-bottom:2px solid var(--tier-accent);
}

.bp .bp-summary-title{

    margin:0;

    color:#fff;

    font-size:12px;

    font-weight:700;

    letter-spacing:.16em;

    text-transform:uppercase;
}

.bp .bp-summary-ref{

    color:var(--accent-on-hero);

    font-size:12px;

    font-weight:600;
}

.bp .bp-summary-rows{

    margin:0;

    padding:0;
}

.bp .bp-summary-row{

    display:grid;

    grid-template-columns:200px 1fr;

    gap:6px 28px;

    padding:19px 28px;
}

/* Ledger banding, kept to the faintest themed tint. */
.bp .bp-summary-row:nth-child(even){
    background:var(--surface-soft);
}

.bp .bp-summary-row+.bp-summary-row{
    border-top:1px solid var(--border-soft);
}

.bp .bp-summary-row dt{

    padding-top:3px;

    color:var(--text-muted);

    font-size:11px;

    font-weight:700;

    letter-spacing:.11em;

    line-height:1.5;

    text-transform:uppercase;
}

.bp .bp-summary-row dd{

    margin:0;

    color:var(--text);

    font-size:.95rem;

    font-weight:500;

    line-height:1.65;
}

.bp .bp-summary-sub{

    display:block;

    margin-top:5px;

    color:var(--text-muted);

    font-size:.8rem;

    font-weight:500;
}

/* ===========================================================
   ELIGIBILITY PANEL

   who_needs_checklist, 4-6 entries of 19-66 characters, so two columns
   hold comfortably and the panel stays compact.
   =========================================================== */

.bp .bp-eligibility,
.bp .bp-obligations{

    margin:26px 0 4px;

    background:var(--tier-surface);

    border:1px solid var(--border);

    border-radius:4px;

    overflow:hidden;
}

.bp .bp-obligations{
    margin:28px 0 0;
}

.bp #bond-summary .bp-summary-lede{
    max-width:52ch;
    margin:0 0 22px;
    color:var(--text-muted);
    font-size:.95rem;
    font-weight:500;
    line-height:1.6;
}

.bp #bond-summary .bp-summary{
    margin:0;
}

.bp .bp-eligibility-head,
.bp .bp-obligations-head{

    padding:14px 24px;

    background:var(--surface-soft);

    border-bottom:1px solid var(--border);

    color:var(--accent-strong);

    font-size:11px;

    font-weight:700;

    letter-spacing:.13em;

    text-transform:uppercase;
}

.bp .bp-schedule-head{

    padding:14px 24px;

    background:var(--tier-gradient);

    border-bottom:2px solid var(--tier-accent);

    color:#fff;

    font-size:11px;

    font-weight:700;

    letter-spacing:.13em;

    text-transform:uppercase;
}

.bp .bp-eligibility-items,
.bp .bp-obligations-items{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:0;

    margin:0;

    padding:0;

    list-style:none;
}

.bp .bp-eligibility-items li,
.bp .bp-obligations-items li{

    padding:16px 24px;

    color:var(--text);

    font-size:.95rem;

    font-weight:500;

    line-height:1.6;
}

/* Hairlines drawn per cell so the two columns stay aligned regardless of
   how many entries a row supplies. */
.bp .bp-eligibility-items li:nth-child(n+3),
.bp .bp-obligations-items li:nth-child(n+3){
    border-top:1px solid var(--border-soft);
}

.bp .bp-eligibility-items li:nth-child(even),
.bp .bp-obligations-items li:nth-child(even){
    border-left:1px solid var(--border-soft);
}

/* ===========================================================
   DOCUMENT SCHEDULE

   requirements_checklist, 5 entries of up to 126 characters. Single
   column with a numeral rail, so long compliance wording wraps against a
   consistent left edge instead of being truncated.
   =========================================================== */

.bp .bp-schedule{

    margin:26px 0 4px;

    background:var(--tier-paper);

    border:1px solid var(--border);

    border-radius:4px;

    overflow:hidden;
}

.bp .bp-schedule-items{

    counter-reset:bp-schedule;

    margin:0;

    padding:0;

    list-style:none;
}

.bp .bp-schedule-items li{

    counter-increment:bp-schedule;

    display:grid;

    grid-template-columns:52px 1fr;

    align-items:center;

    gap:18px;

    padding:18px 24px;
}

.bp .bp-schedule-items li+li{
    border-top:1px solid var(--border-soft);
}

.bp .bp-schedule-index{

    display:flex;

    align-items:center;

    justify-content:center;

    width:36px;

    height:36px;

    border-radius:50%;

    background:var(--tier-gradient);

    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tier-accent) 35%,transparent);
}

.bp .bp-schedule-index::before{

    content:counter(bp-schedule,decimal-leading-zero);

    color:var(--tier-accent);

    font-size:.78rem;

    font-weight:700;

    letter-spacing:.06em;

    font-variant-numeric:tabular-nums;
}

.bp .bp-schedule-text{

    color:var(--text);

    font-size:.95rem;

    font-weight:500;

    line-height:1.65;
}

/* ===========================================================
   FILING WORKFLOW — numbered rail + readable body
   =========================================================== */

.bp .bp-filing-requirement{
    max-width:52ch;

    margin:0 0 28px;

    padding:16px 0 0;

    border-top:1px solid var(--border);
}

.bp .bp-filing-requirement-label{
    margin:0 0 6px;

    color:var(--accent-strong);

    font-size:10px;
    font-weight:700;

    letter-spacing:.11em;
    line-height:1.4;
    text-transform:uppercase;
}

.bp .bp-filing-requirement-value{
    margin:0;

    color:var(--text);

    font-size:.9375rem;

    font-weight:500;

    line-height:1.6;
}

.bp .bp-workflow{

    margin:30px 0 4px;

    padding:0;

    list-style:none;

    max-width:70ch;
}

.bp .bp-workflow-step{

    position:relative;

    display:grid;

    grid-template-columns:56px 1fr;

    gap:24px;

    padding:0 0 34px;
}

.bp .bp-workflow-step:last-child{
    padding-bottom:0;
}

/* Continuous rail between step markers. */
.bp .bp-workflow-step:not(:last-child) .bp-workflow-rail::after{

    content:"";

    position:absolute;

    top:46px;
    bottom:-6px;
    left:50%;

    width:2px;

    background:color-mix(in srgb,var(--tier-accent) 28%,var(--border));

    transform:translateX(-50%);
}

.bp .bp-workflow-rail{

    position:relative;

    display:flex;

    justify-content:center;
}

.bp .bp-workflow-index{

    display:flex;

    align-items:center;

    justify-content:center;

    width:44px;
    height:44px;

    border:1px solid color-mix(in srgb,var(--tier-accent) 45%,transparent);

    border-radius:50%;

    background:var(--tier-gradient);

    color:var(--tier-accent);

    font-size:.8rem;

    font-weight:700;

    letter-spacing:.04em;

    font-variant-numeric:tabular-nums;
}

.bp .bp-workflow-body{
    padding-top:9px;
}

.bp .bp-workflow-body h3{

    margin:0 0 8px!important;

    color:var(--text)!important;

    font-family:Georgia,"Times New Roman",Times,serif!important;

    font-size:1.12rem!important;

    font-weight:600!important;

    line-height:1.35!important;
}

.bp .bp-workflow-body p{

    margin:0;

    max-width:62ch;

    color:var(--text);

    font-size:.95rem;

    font-weight:500;

    line-height:1.75;
}

.bp .bp-panel{

    background:var(--tier-surface);

    border:1px solid var(--tier-border);

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(15,23,42,.10);
}

/* ===========================================================
   SURETY OBLIGATION OVERVIEW

   Replaces the three lifted feature cards that used to sit here. Those
   cards read as marketing tiles; a bond is a legal instrument between
   three named parties, so the presentation is a register rather than a
   grid of shadowed panels.
   =========================================================== */

/* Tripartite register — one instrument, hairline columns. */
.bp .bp-parties{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    margin:26px 0;

    background:var(--tier-surface);

    border:1px solid var(--border);

    border-radius:4px;

    overflow:hidden;
}

.bp .bp-party{

    padding:20px 24px;
}

.bp .bp-party+.bp-party{
    border-left:1px solid var(--border);
}

.bp .bp-party dt{

    margin:0 0 10px;

    padding-bottom:10px;

    border-bottom:2px solid var(--tier-accent);

    color:var(--accent-strong);

    font-size:11px;

    font-weight:700;

    letter-spacing:.13em;

    text-transform:uppercase;
}

.bp .bp-party dd{

    margin:0;

    color:var(--text);

    font-size:.92rem;

    font-weight:500;

    line-height:1.7;
}

/* Claim trigger / consequence — two halves of one statement. */
.bp .bp-claim{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    margin:26px 0;

    background:var(--surface-soft);

    border:1px solid var(--border);

    border-radius:4px;

    overflow:hidden;
}

.bp .bp-claim-item{

    padding:22px 24px;
}

.bp .bp-claim-item+.bp-claim-item{
    border-left:1px solid var(--border);
}

.bp .bp-claim-title{

    margin:0 0 8px!important;

    color:var(--accent-strong)!important;

    font-size:11px!important;

    font-weight:700!important;

    letter-spacing:.1em!important;

    text-transform:uppercase!important;

    line-height:1.4!important;
}

.bp .bp-claim-item p{

    margin:0;

    max-width:60ch;

    color:var(--text);

    font-size:.95rem;

    font-weight:500;

    line-height:1.7;
}

/* Indemnity is the principal's exposure, not a selling point. Flagged
   with a solid accent rail so it reads as a disclosure. */
.bp .bp-indemnity{

    margin:26px 0;

    padding:18px 24px;

    background:var(--tier-surface);

    border:1px solid var(--border);

    border-left:3px solid var(--tier-accent);

    border-radius:4px;
}

.bp .bp-indemnity-label{

    margin-bottom:8px;

    color:var(--accent-strong);

    font-size:11px;

    font-weight:700;

    letter-spacing:.13em;

    text-transform:uppercase;
}

.bp .bp-indemnity p{

    margin:0;

    max-width:78ch;

    color:var(--text);

    font-size:.94rem;

    line-height:1.75;
}

/* ===========================================================
   FAQ
   =========================================================== */

/* One bordered register with hairline rows, rather than five floating
   cards, so the FAQ reads in the same institutional language as the bond
   summary and document schedule. The accordion stays native <details>. */
.bp .bp-faq{

    margin:26px 0 4px;

    background:var(--tier-surface);

    border:1px solid var(--tier-border);

    border-radius:4px;

    overflow:hidden;
}

.bp .bp-faq details+details{
    border-top:1px solid color-mix(in srgb,var(--tier-accent) 28%,transparent);
}

.bp .bp-faq details[open]{
    background:transparent;

    box-shadow:none;
}

.bp .bp-faq summary{

    cursor:pointer;

    list-style:none;

    display:flex;

    justify-content:space-between;

    align-items:flex-start;

    gap:24px;

    padding:19px 24px;

    background:var(--tier-gradient);

    color:#fff;

    font-size:1rem;

    font-weight:600;

    line-height:1.5;

    transition:color .15s ease;
}

.bp .bp-faq summary:hover{
    color:var(--tier-accent);
}

.bp .bp-faq details[open] summary{
    color:#fff;
}

/* Keyboard users get the same affordance as the hover state. */
.bp .bp-faq summary:focus-visible{

    outline:2px solid var(--tier-accent);

    outline-offset:-2px;
}

.bp .bp-faq summary::-webkit-details-marker{
    display:none;
}

.bp .bp-faq summary::after{

    content:"+";

    flex-shrink:0;

    color:var(--tier-accent);

    font-size:20px;

    font-weight:400;

    line-height:1.3;

    transition:transform .2s ease;
}

.bp .bp-faq details[open] summary::after{
    transform:rotate(45deg);
}

.bp .bp-faq-body{

    padding:18px 24px 22px;

    background:var(--tier-paper);
}

/* Answers run 161-320 characters, so they get a held measure and open
   leading rather than the default paragraph treatment. */
.bp .bp-faq-body p{

    margin:0;

    max-width:78ch;

    color:var(--text-light);

    font-size:.94rem;

    line-height:1.78;
}

/* ===========================================================
   FINAL CTA — paper close, desk tone (matches hub close rhythm)
   =========================================================== */

.bp .bp-cta{

    padding:clamp(36px,5.5vh,56px) 0;

    text-align:left;

    border-top:3px solid var(--accent-strong);

    background:
      radial-gradient(ellipse 50% 80% at 0% 100%,color-mix(in srgb,var(--tier-soft) 55%,transparent) 0%,transparent 55%),
      var(--tier-paper, #fff);

    border-radius:0;

    color:var(--text);
}

.bp .bp-cta .bp-inner{
    max-width:720px;
}

.bp .bp-cta-eyebrow{
    margin:0 0 10px;
    color:var(--accent-strong);
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.bp .bp-cta h2{

    max-width:16em;

    margin:0 0 12px!important;

    color:var(--text)!important;

    font-family:Georgia,"Times New Roman",Times,serif!important;

    font-size:clamp(1.45rem,2.1vw,1.85rem)!important;

    font-weight:500!important;

    line-height:1.22!important;
}

.bp .bp-cta p{

    max-width:42ch;

    margin:0 0 24px;

    color:var(--text-muted, #475569);
}

.bp .bp-btn-cta{

    display:inline-block;

    padding:14px 28px;

    background:var(--text, #0f172a);

    color:#fff!important;

    border:1px solid var(--text, #0f172a);

    border-radius:2px;

    text-decoration:none!important;

    font-weight:700;

    font-size:.9375rem;

    transition:background .15s ease, border-color .15s ease;
}

.bp .bp-btn-cta:hover{

    background:var(--accent-strong);

    border-color:var(--accent-strong);

    color:#fff!important;
}

.bp .bp-cta-meta{
    margin:16px 0 0;
    color:var(--text-muted, #475569);
    font-size:.8125rem;
    line-height:1.55;
}

.bp .bp-cta-meta a{
    color:var(--text, #0f172a);
    font-weight:600;
    text-decoration:none;
    border-bottom:1px solid color-mix(in srgb,var(--accent-strong) 55%,transparent);
}

.bp .bp-cta-meta a:hover{
    color:var(--accent-strong);
}

/* ===========================================================
   RESPONSIVE
   =========================================================== */

/* The summary strip loses its columns before the rest of the page breaks,
   because three columns of 100-character labels collapse into slivers. */
@media (max-width:860px){

    .bp .bp-hero-stats{
        grid-template-columns:1fr;
    }

    .bp .bp-hero-stat{
        padding:24px 0;
    }

    .bp .bp-hero-stat+.bp-hero-stat{
        border-left:0;
        border-top:1px solid rgba(255,255,255,.14);
    }
}

@media (max-width:760px){

    .bp .bp-hero:not(.bp-hero-bond){
        min-height:0;
        padding:68px 0 52px;
    }

    .bp .bp-hero-bond{
        min-height:0;

        padding:44px 0 36px;
    }

    .bp .bp-hero-bond .bp-hero-inner{
        grid-template-columns:1fr;

        row-gap:36px;

        align-items:center;
    }

    .bp .bp-hero-main{
        justify-content:flex-start;
    }

    .bp .bp-hero-bond .bp-hero-lede{
        padding:0;
    }

    .bp .bp-hero-brief{
        justify-content:flex-start;

        padding:28px 0 0;
    }

    .bp .bp-hero-bond .bp-hero-brief-item{
        grid-template-columns:1fr;

        gap:4px;
    }

    .bp .bp-hero-bond .bp-hero-cta{
        margin-top:22px;
        padding-top:18px;
    }

    .bp .bp-hero:not(.bp-hero-bond) .bp-hero-actions{
        align-items:flex-start;
        flex-direction:column;
    }

    .bp .bp-breadcrumb-item[aria-current="page"] span{
        max-width:28ch;
    }

    .bp .bp-related{
        grid-template-columns:1fr;
    }

    .bp .bp-related-item{
        border-left:0 !important;
    }

    .bp .bp-related-item:nth-child(n+2){
        border-top:1px solid var(--border-soft);
    }

    .bp .bp-related-hubs-list{
        grid-template-columns:1fr;
    }

    .bp .bp-related-hubs-list li:nth-child(even){
        border-left:0;
    }

    .bp .bp-related-hubs-list li:nth-child(n+2){
        border-top:1px solid var(--border);
    }

    .bp .bp-parties,
    .bp .bp-claim{
        grid-template-columns:1fr;
    }

    .bp .bp-party+.bp-party,
    .bp .bp-claim-item+.bp-claim-item{
        border-left:0;
        border-top:1px solid var(--border);
    }

    .bp .bp-party,
    .bp .bp-claim-item{
        padding:18px 20px;
    }

    .bp .bp-indemnity{
        padding:16px 20px;
    }

    /* The label rail collapses above the value: a 200px rail leaves too
       little room for values that run to 186 characters. */
    .bp .bp-summary-head{
        padding:17px 20px;
    }

    .bp .bp-summary-row{
        grid-template-columns:1fr;
        gap:5px;
        padding:17px 20px;
    }

    .bp .bp-faq summary{
        gap:16px;
        padding:16px 18px;
        font-size:.95rem;
    }

    .bp .bp-faq-body{
        padding:0 18px 18px;
    }

    .bp .bp-definition{
        padding-left:18px;
    }

    .bp .bp-definition p{
        font-size:1rem;
        line-height:1.8;
    }

    .bp .bp-provisions-items{
        grid-template-columns:1fr;
        gap:14px;
    }

    /* One column, so the cell hairlines become a simple stack. */
    .bp .bp-eligibility-items,
    .bp .bp-obligations-items{
        grid-template-columns:1fr;
    }

    .bp .bp-eligibility-items li,
    .bp .bp-obligations-items li{
        padding:14px 20px;
    }

    .bp .bp-eligibility-items li:nth-child(even),
    .bp .bp-obligations-items li:nth-child(even){
        border-left:0;
    }

    .bp .bp-eligibility-items li+li,
    .bp .bp-obligations-items li+li{
        border-top:1px solid var(--border-soft);
    }

    .bp .bp-eligibility-head,
    .bp .bp-obligations-head,
    .bp .bp-schedule-head{
        padding:13px 20px;
    }

    .bp .bp-schedule-items li{
        grid-template-columns:38px 1fr;
        gap:12px;
        padding:16px 20px;
    }

    .bp .bp-workflow-step{
        grid-template-columns:40px 1fr;
        gap:16px;
        padding-bottom:28px;
    }

    .bp .bp-workflow-index{
        width:36px;
        height:36px;
        font-size:.72rem;
    }

    .bp .bp-workflow-step:not(:last-child) .bp-workflow-rail::after{
        top:40px;
    }

    .bp .bp-workflow-body{
        padding-top:5px;
    }

    .bp section{
        padding:28px 0;
    }

    .bp .bp-cta{
        padding:32px 0;
    }
}
