.ib-services,.ib-membership { margin-block: 2rem; }
.ib-request,.ib-plan,.ib-request-form { border: 1px solid #cbd5e1; border-radius: 12px; padding: clamp(16px,3vw,28px); margin-block: 1rem; background: #fff; color: #172b4d; }
.ib-request-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.ib-request-list { list-style: none; padding: 0; margin-inline: 0; }
.ib-request-list li { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid #cbd5e1; overflow-wrap: anywhere; }
.ib-request-form summary { cursor: pointer; font-weight: 600; min-height: 44px; }
.ib-request-form label { display: block; margin-bottom: 8px; }
.ib-request-form input:not([type=hidden]),.ib-request-form textarea { display: block; width: 100%; max-width: 100%; }
.ib-membership-plans { max-width: 900px; margin-inline: auto; }
.ib-membership-plans .ib-currency-caption { display: none; }
.ib-plan-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.ib-plan { display: flex; flex-direction: column; margin: 0; overflow-wrap: anywhere; }
.ib-plan-pro { border-color: #175cd3; }
.ib-plan-price { font-size: clamp(1.75rem,3vw,2.5rem); font-weight: 700; line-height: 1.2; margin-bottom: 8px; }
.ib-plan-period { font-size: 1rem; font-weight: 400; white-space: nowrap; }
.ib-plan-panel { display: flex; flex: 1; flex-direction: column; }
.ib-plan-panel[hidden] { display: none; }
.ib-partner-services { border-top: 1px solid #dbe4ee; padding-top: 20px; margin-block: 8px 24px; }
.ib-partner-services > summary,.ib-partner-provider > summary { cursor: pointer; font-weight: 600; line-height: 1.4; padding-block: 10px; }
.ib-partner-services > summary { font-size: 1rem; }
.entry-content .ib-partner-preview > h3 { font-size: 1.125rem; line-height: 1.15; margin: 0 0 16px; }
.ib-partner-services > summary:focus-visible,.ib-partner-provider > summary:focus-visible { outline: 3px solid #175cd3; outline-offset: 3px; }
.ib-partner-services[open] > summary { margin-bottom: 12px; }
.ib-member-partners { margin-block: 24px; scroll-margin-top: 100px; }
.ib-partner-provider { padding: 12px 16px; border: 1px solid #dbe4ee; border-radius: 8px; margin-block: 12px; }
.ib-partner-provider[open] > summary { margin-bottom: 16px; }
.ib-partner-services p { font-size: .9375rem; }
.ib-partner-feature-list { list-style: none; margin: 0 0 16px; padding: 0; }
.ib-partner-feature-list li { display: grid; gap: 3px; margin-bottom: 14px; font-size: .9375rem; }
.ib-partner-feature-list span { color: #475569; }
.ib-partner-preview .ib-service-preview-intro { margin: 0 0 20px; color: #475569; }
.ib-partner-preview .ib-service-preview-list { list-style: none; margin: 0 0 20px; padding: 0; }
.ib-service-preview-list li { display: grid; gap: 4px; padding: 14px 0; border-bottom: 1px solid #e2e8f0; font-size: .9375rem; line-height: 1.6; }
.ib-service-preview-list li:first-child { padding-top: 0; }
.ib-service-preview-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.ib-service-preview-list strong { color: #172b4d; font-size: 1rem; }
.ib-service-preview-list span { color: #475569; }
.ib-partner-preview .ib-service-preview-next { margin: 0; font-size: .875rem; }
.ib-partner-services .ib-partner-terms,.ib-plan-panel .ib-partner-terms { font-size: .8125rem; line-height: 1.6; color: #475569; }
.ib-partner-actions { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin-bottom: 0; }
.ib-partner-actions a { padding-block: 8px; }
.ib-partner-actions .ib-partner-request { border: 1px solid #175cd3; border-radius: 6px; padding: 10px 14px; font-weight: 600; text-decoration: none; }
.ib-request-form { scroll-margin-top: 100px; }
.ib-plan-saving { color: #17643a; background: #edf9f0; border-radius: 6px; padding: 6px 10px; align-self: flex-start; font-size: .875rem; font-weight: 600; }
.ib-period-form { margin-bottom: 20px; }
.ib-period-switch { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border: 1px solid #cbd5e1; border-radius: 999px; padding: 4px; margin: 0; min-width: 0; background: #f1f5f9; }
.ib-period-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ib-period-switch label { padding: 8px 12px; border-radius: 999px; text-align: center; cursor: pointer; margin: 0; }
.ib-period-switch input:checked + label { background: #1d4ed8; color: #fff; }
.ib-period-switch input:focus-visible + label { outline: 3px solid #175cd3; outline-offset: 3px; }
.ib-membership-plans .ib-membership-policies { margin: 0; padding: 24px 16px 12px; text-align: end; font-size: .875rem; line-height: 1.6; }
.ib-plan a.button { margin-top: auto; text-align: center; }
.ib-membership a:focus-visible,.ib-services a:focus-visible,.ib-services summary:focus-visible { outline: 3px solid #175cd3; outline-offset: 4px; }
@media(max-width: 767px) { .ib-plan-grid { grid-template-columns: minmax(0,1fr); } }
.ib-pro-invitation { display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; padding: clamp(24px,4vw,48px); margin: 32px 24px 48px; border: 1px solid #dbe4ee; border-radius: 16px; background: #eff6ff; color: #172b4d; scroll-margin-top: 110px; }
.ib-pro-invitation > div { max-width: 640px; }
.ib-pro-invitation .ib-pro-eyebrow { color: #1d4ed8; font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 12px; }
.entry-content .ib-pro-invitation h2 { font-size: clamp(1.5rem,3vw,2rem); line-height: 1.2; margin: 0 0 16px; }
.entry-content .ib-pro-invitation p { margin: 0 0 12px; }
.ib-pro-invitation .ib-pro-disclosure { margin-bottom: 0; font-size: .8125rem; color: #475569; }
.ib-pro-invitation .ib-pro-cta { flex-shrink: 0; text-align: center; padding: 12px 20px; border-radius: 6px; background: #1d4ed8; color: #fff; text-decoration: none; font-weight: 600; }
.ib-pro-invitation .ib-pro-cta:hover { background: #173eac; }
.ib-pro-invitation a:focus-visible { outline: 3px solid #175cd3; outline-offset: 4px; }
.ib-pro-article { margin: 40px 0 16px; padding: 24px; }
.entry-content .ib-pro-article h2 { font-size: 1.5rem; }
.ib-membership-status { padding: 20px 24px; border-radius: 8px; background: #eff6ff; margin-bottom: 24px; }
.ib-membership-status p:last-child { margin-bottom: 0; }
.ib-plan-pro { scroll-margin-top: 110px; }
.ib-renewal-notice { border-left: 3px solid #1d4ed8; padding-left: 16px; }
@media(max-width: 767px) {
    .ib-pro-invitation { flex-direction: column; align-items: stretch; gap: 24px; margin-inline: 0; }
    .ib-pro-invitation .ib-pro-cta { align-self: flex-start; max-width: 100%; overflow-wrap: anywhere; }
}

/* Homepage invitation: keep the action beside the reading flow. */
#ib-pro-introduction { flex-direction: column; align-items: flex-start; gap: 24px; }
#ib-pro-introduction > div { max-width: 72ch; }
#ib-pro-introduction .ib-pro-cta { align-self: flex-start; max-width: 100%; overflow-wrap: anywhere; }

