/* Rhema Resource Hub: all public styles are namespaced and use validated design tokens. */
.rrh-library,.rrh-card,.rrh-form,.rrh-dialog,.rrh-button{box-sizing:border-box;font-family:var(--rrh-font,inherit);font-size:var(--rrh-body-size,1rem);line-height:var(--rrh-body-line,1.6)}
.rrh-library *,.rrh-card *,.rrh-form *,.rrh-dialog *{box-sizing:border-box}
.rrh-library{width:100%;color:var(--rrh-secondary,#12110c)}
.rrh-filter{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 30px}
.rrh-filter label{flex:1 1 200px}.rrh-filter input,.rrh-filter select{width:100%;min-height:var(--rrh-input-height,48px);padding:10px 16px;border:var(--rrh-input-border-width,1px) solid var(--rrh-border,#cbd7ce);border-radius:var(--rrh-input-radius,5px);background:var(--rrh-input-bg,#fff);font:inherit;color:var(--rrh-input-text,#12110c)}
/* Search controls use dedicated variables to resist theme/Elementor button states. */
.rrh-library .rrh-filter button{appearance:none;-webkit-appearance:none;padding:12px 25px;min-height:47px;color:var(--rrh-search-text,#fff)!important;background:var(--rrh-search-bg,#023020)!important;border:0!important;box-shadow:none!important;border-radius:var(--rrh-button-radius,5px);cursor:pointer;font:inherit;text-decoration:none!important;transition:background-color .2s ease,color .2s ease}
.rrh-library .rrh-filter button:hover,.rrh-library .rrh-filter button:focus,.rrh-library .rrh-filter button:active{background:var(--rrh-search-hover-bg,#12110c)!important;color:var(--rrh-search-hover-text,#fff)!important;border-color:transparent!important;box-shadow:none!important}
.rrh-library .rrh-filter button:focus-visible{outline:3px solid var(--rrh-input-focus,#023020);outline-offset:3px}
/* Keep native select accessible while drawing a consistent arrow with generous right inset. */
.rrh-library .rrh-filter .rrh-select-wrap{position:relative;display:block;width:100%}
.rrh-library .rrh-filter .rrh-select-wrap select{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;background-image:none!important;padding-inline-end:calc(var(--rrh-filter-arrow-inset,20px) + 24px)!important;cursor:pointer}
.rrh-library .rrh-filter .rrh-select-wrap::after{content:"";position:absolute;right:var(--rrh-filter-arrow-inset,20px);top:50%;width:8px;height:8px;border-right:1.8px solid var(--rrh-filter-arrow,#12110c);border-bottom:1.8px solid var(--rrh-filter-arrow,#12110c);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.rrh-library .rrh-filter .rrh-select-wrap select::-ms-expand{display:none}
.rrh-grid{display:grid;grid-template-columns:repeat(var(--rrh-columns,3),minmax(0,1fr));gap:var(--rrh-card-gap,26px)}
.rrh-card{overflow:hidden;display:flex;flex-direction:column;background:var(--rrh-card-bg,#fff);border:1px solid var(--rrh-card-border,#e1e6e1);border-radius:var(--rrh-card-radius,12px);box-shadow:var(--rrh-card-shadow,0 12px 32px rgba(2,48,32,.06));transition:transform .2s ease,box-shadow .2s ease;color:var(--rrh-secondary,#12110c)}
.rrh-lift-cards .rrh-card:hover{transform:translateY(-3px);box-shadow:0 20px 40px rgba(2,48,32,.12)}
.rrh-cover{aspect-ratio:1.42;background:#eaf0ea;overflow:hidden}.rrh-cover img{width:100%;height:100%;object-fit:cover;display:block}
.rrh-placeholder{height:100%;min-height:180px;display:grid;place-items:center;color:var(--rrh-primary,#023020);background:linear-gradient(135deg,#e8efe9,#cadccf)}.rrh-placeholder span{font-size:64px;font-weight:300}
.rrh-card-body{padding:var(--rrh-card-pad,26px);display:flex;flex-direction:column;flex:1}
.rrh-kicker{font-size:.6875rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--rrh-accent,var(--rrh-primary,#023020))}
.rrh-card h3{font-family:var(--rrh-heading-font,inherit);font-size:var(--rrh-card-title-size,1.5rem);line-height:1.3;font-weight:var(--rrh-heading-weight,700);margin:10px 0;color:var(--rrh-secondary,#12110c)}
.rrh-card p{font-size:var(--rrh-card-description-size,.875rem);line-height:var(--rrh-body-line,1.6);color:var(--rrh-muted,#576158);margin:0 0 22px}.rrh-card-cta{margin-top:auto}.rrh-card-cta>.rrh-button{width:100%}
.rrh-button,.rrh-form .rrh-button{--rrh-effective-bg:var(--rrh-button-bg,#023020);--rrh-effective-text:var(--rrh-button-text,#fff);--rrh-effective-border:var(--rrh-button-bg,#023020);display:inline-flex;gap:12px;align-items:center;justify-content:center;vertical-align:middle;cursor:pointer;text-decoration:none;box-shadow:none;min-height:44px;max-width:100%;padding:var(--rrh-button-pad-y,13px) var(--rrh-button-pad-x,24px);border:var(--rrh-button-border-width,1px) solid var(--rrh-effective-border);border-radius:var(--rrh-button-radius,5px);font:inherit;font-size:var(--rrh-button-font-size,.9375rem);font-weight:var(--rrh-button-weight,700);line-height:1.3;background:var(--rrh-effective-bg);color:var(--rrh-effective-text);transition:background-color .2s,border-color .2s,color .2s}
.rrh-button--full{width:100%}.rrh-button--auto{width:auto}.rrh-button--pill{border-radius:999px}
.rrh-button--outline{--rrh-effective-bg:transparent;--rrh-effective-text:var(--rrh-button-bg,#023020)}
.rrh-button--text{--rrh-effective-bg:transparent;--rrh-effective-text:var(--rrh-button-bg,#023020);--rrh-effective-border:transparent;padding-left:0;padding-right:0;text-decoration:underline;text-underline-offset:4px}
.rrh-button:hover,.rrh-button:focus-visible,.rrh-form .rrh-button:hover,.rrh-form .rrh-button:focus-visible{background:var(--rrh-button-hover-bg,#12110c);border-color:var(--rrh-button-hover-bg,#12110c);color:var(--rrh-button-hover-text,#fff);text-decoration:none}
.rrh-button:focus-visible,.rrh-close:focus-visible,.rrh-form a:focus-visible{outline:3px solid var(--rrh-input-focus,#023020);outline-offset:3px}
/* Elementor themes often give buttons a pink :focus or :active state. A returned-focus
   launch button always uses its configured normal colours, while retaining focus ring. */
button.rrh-button.rrh-launch:focus:not(:focus-visible),
button.rrh-button.rrh-just-closed,
button.rrh-button.rrh-just-closed:hover,
button.rrh-button.rrh-just-closed:focus,
button.rrh-button.rrh-just-closed:active{
 background:var(--rrh-effective-bg)!important;
 color:var(--rrh-effective-text)!important;
 border-color:var(--rrh-effective-border)!important;
 box-shadow:none!important;
 text-decoration:none!important;
}
button.rrh-button.rrh-launch:focus-visible{outline:3px solid var(--rrh-input-focus,#023020)!important;outline-offset:3px}
button.rrh-button.rrh-just-closed:focus-visible{outline:3px solid var(--rrh-input-focus,#023020)!important;outline-offset:3px}
.rrh-button[disabled]{opacity:.6;cursor:wait}.rrh-button-icon{font-size:1.15em;line-height:1}
.rrh-pages{display:flex;gap:14px;margin:30px 0}.rrh-pages .page-numbers{padding:8px 12px;border:1px solid var(--rrh-border);border-radius:5px;text-decoration:none}.rrh-pages .current{background:var(--rrh-primary,#023020);color:var(--rrh-light,#fff)}.rrh-empty{grid-column:1/-1;padding:25px;background:#f4f7f4;border-radius:8px}
.rrh-overlay[hidden]{display:none!important}.rrh-overlay{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.78);background:color-mix(in srgb,var(--rrh-popup-overlay,#000000) var(--rrh-overlay-percent,78%),transparent);overflow-y:auto}
.rrh-dialog{position:relative;width:min(100%,var(--rrh-popup-width,530px));max-height:calc(100vh - 40px);overflow:auto;background:var(--rrh-popup-bg,#fff);border-radius:var(--rrh-popup-radius,12px);padding:var(--rrh-popup-pad,40px);box-shadow:0 30px 70px rgba(0,0,0,.2);color:var(--rrh-popup-text,#12110c)}
.rrh-dialog--fade{animation:rrh-fade-in .2s ease-out}.rrh-dialog--slide{animation:rrh-slide-in .23s ease-out}@keyframes rrh-fade-in{from{opacity:0}to{opacity:1}}@keyframes rrh-slide-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
/* Explicitly isolate the close button from the website theme's generic button styles. */
.rrh-overlay .rrh-dialog button.rrh-close,.rrh-style-preview .rrh-dialog button.rrh-close{position:absolute;top:12px;right:14px;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;min-width:38px;min-height:38px;margin:0;padding:0;appearance:none;-webkit-appearance:none;border:0!important;border-radius:6px;background:var(--rrh-popup-close-bg,#ffffff)!important;color:var(--rrh-popup-close,#12110c)!important;box-shadow:none!important;text-decoration:none!important;font-family:Arial,Helvetica,sans-serif;font-size:28px;font-weight:400;line-height:1;cursor:pointer;z-index:1;transition:background-color .2s,color .2s}
.rrh-overlay .rrh-dialog button.rrh-close:hover,.rrh-overlay .rrh-dialog button.rrh-close:focus,.rrh-overlay .rrh-dialog button.rrh-close:active,.rrh-style-preview .rrh-dialog button.rrh-close:hover,.rrh-style-preview .rrh-dialog button.rrh-close:focus,.rrh-style-preview .rrh-dialog button.rrh-close:active{background:var(--rrh-popup-close-hover-bg,#12110c)!important;color:var(--rrh-popup-close-hover,#ffffff)!important;border:0!important;box-shadow:none!important}
.rrh-overlay .rrh-dialog button.rrh-close:focus-visible,.rrh-style-preview .rrh-dialog button.rrh-close:focus-visible{outline:3px solid var(--rrh-input-focus,#023020)!important;outline-offset:2px}.rrh-modal-eyebrow{font-size:.6875rem;letter-spacing:.19em;font-weight:750;color:var(--rrh-accent,#476b54);margin-bottom:14px}.rrh-modal-open{overflow:hidden}
.rrh-form{width:100%;color:var(--rrh-popup-text,var(--rrh-secondary,#12110c))}
.rrh-form-title{font-family:var(--rrh-heading-font,inherit);font-size:var(--rrh-heading-size,2rem);line-height:var(--rrh-heading-line,1.2);margin:0 0 8px;color:inherit;font-weight:var(--rrh-heading-weight,700)}
.rrh-form-intro{color:var(--rrh-muted,#576158);font-size:var(--rrh-body-size,1rem);line-height:var(--rrh-body-line,1.6);margin:0 0 24px}
.rrh-label{display:block;font-size:var(--rrh-label-size,.8125rem);font-weight:var(--rrh-label-weight,700);margin:0 0 var(--rrh-form-spacing,18px)}
.rrh-input{margin-top:7px;display:block;width:100%;max-width:100%;border:var(--rrh-input-border-width,1px) solid var(--rrh-border,#cbd7ce);border-radius:var(--rrh-input-radius,5px);background:var(--rrh-input-bg,#fff);color:var(--rrh-input-text,#12110c);min-height:var(--rrh-input-height,48px);padding:12px 14px;font:inherit;font-size:var(--rrh-body-size,1rem)}
.rrh-input:focus,.rrh-filter input:focus,.rrh-filter select:focus{outline:2px solid var(--rrh-input-focus,#023020);outline-offset:1px;border-color:var(--rrh-input-focus,#023020)}
.rrh-consent{display:flex;align-items:flex-start;gap:10px;font-size:.8125rem;line-height:1.6;margin:2px 0 10px;color:var(--rrh-muted,#576158);font-weight:400}
.rrh-consent input{width:16px;height:16px;accent-color:var(--rrh-primary,#023020);margin:2px 0 0;flex-shrink:0}.rrh-privacy{font-size:.75rem;line-height:1.5;color:var(--rrh-muted,#576158);margin:0 0 20px}.rrh-privacy a{color:var(--rrh-accent,#476b54);text-decoration:underline}
.rrh-form .rrh-submit{width:100%}.rrh-feedback{font-size:.875rem;margin-top:12px}.rrh-feedback.rrh-error{color:#a02320}.rrh-feedback.rrh-ok{color:var(--rrh-primary,#023020)}.rrh-download-link{display:inline-block;margin-top:10px;font-weight:700;color:var(--rrh-primary,#023020);text-decoration:underline}
.rrh-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:900px){.rrh-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rrh-form-title{font-size:var(--rrh-heading-size-tablet,1.75rem)}}
@media(max-width:620px){.rrh-grid{grid-template-columns:1fr}.rrh-dialog{padding:min(var(--rrh-popup-pad,40px),25px)}.rrh-card-body{padding:min(var(--rrh-card-pad,26px),24px)}.rrh-filter{flex-direction:column;align-items:stretch}.rrh-form-title{font-size:var(--rrh-heading-size-mobile,1.45rem)}}
@media(prefers-reduced-motion:reduce){.rrh-card,.rrh-button{transition:none}.rrh-dialog--fade,.rrh-dialog--slide{animation:none}}

/* 1.2: Native form templates, AJAX library controls and list view */
.rrh-form .rrh-input:is(select,textarea){width:100%;background:var(--rrh-input-bg,#fff);color:var(--rrh-input-text,#12110c)}
.rrh-form .rrh-input:is(textarea){min-height:110px;resize:vertical}
.rrh-radio-options{display:flex;flex-wrap:wrap;gap:14px;margin:9px 0 0;font-size:.9rem;font-weight:400}
.rrh-radio-options>span,.rrh-check-field{display:inline-flex;align-items:center;gap:7px}
.rrh-radio-options input,.rrh-check-field input{accent-color:var(--rrh-primary,#023020)}
.rrh-library-layout{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:-15px 0 18px;font-size:.82rem}
.rrh-library .rrh-library-layout button{appearance:none;background:transparent;border:1px solid var(--rrh-border,#cbd7ce);color:var(--rrh-secondary,#12110c);padding:5px 12px;border-radius:4px;cursor:pointer;font:inherit;box-shadow:none}
.rrh-library .rrh-library-layout button[aria-pressed="true"]{background:var(--rrh-secondary,#12110c);color:#fff;border-color:var(--rrh-secondary,#12110c)}
.rrh-library .rrh-library-layout button:focus-visible{outline:2px solid var(--rrh-input-focus,#023020);outline-offset:2px}
.rrh-grid--list{grid-template-columns:minmax(0,1fr)}
.rrh-grid--list .rrh-card{display:grid;grid-template-columns:minmax(160px,30%) 1fr;align-items:stretch}
.rrh-grid--list .rrh-cover{aspect-ratio:auto;min-height:205px}
.rrh-grid--list .rrh-cover img{height:100%;object-fit:cover}
.rrh-grid--list .rrh-card-body{min-width:0}
.rrh-library-results[aria-busy="true"]{opacity:.55;transition:opacity .2s}
.rrh-loading-message{padding:24px 0}
.rrh-library .rrh-sort-label{flex:0 1 175px}
.rrh-library .rrh-sort-label{min-width:0}
.rrh-library .rrh-sort-label .rrh-select-wrap{width:100%;min-width:0}
.rrh-library .rrh-sort-label select{width:100%;min-width:0}
.rrh-library .rrh-pages a[aria-current="page"]{font-weight:800;text-decoration:underline}
@media(max-width:620px){.rrh-grid--list .rrh-card{grid-template-columns:1fr}.rrh-library-layout{margin-top:0}.rrh-library .rrh-sort-label{flex:1 1 auto}}

.rrh-fieldset{border:0;padding:0;min-width:0}.rrh-fieldset legend{font:inherit;padding:0}.rrh-radio-options label{font-weight:400;cursor:pointer}
