/* R6B native blocks. Presets live in theme.json. These scoped exceptions cover
   responsive composition, equal-height media/cards, plugin forms and focus. */
.wb-r6, .wb-r6 *, .wb-r6 *::before, .wb-r6 *::after { box-sizing:border-box; }
.wb-r6 { overflow-wrap:break-word; }
.wb-r6 > * { min-width:0; }
.wb-r6 h1,.wb-r6 h2,.wb-r6 h3,.wb-r6 p { overflow-wrap:normal; }
.wb-r6 .wb-r6-eyebrow { font-weight:800; letter-spacing:.03em; }
.wb-r6 .wb-r6-hero, .wb-r6 .wb-r6-local { border-radius:12px; overflow:hidden; }
.wb-r6-hero-copy, .wb-r6-local-copy { display:flex; flex-direction:column; justify-content:center; }
.wb-r6-hero-copy > *, .wb-r6-local-copy > * { margin-block:0; }
.wb-r6-hero-copy { min-height:350px; gap:22px; }
.wb-r6-local-copy { min-height:300px; gap:20px; }
.wb-r6-hero-visual, .wb-r6-local-visual { position:relative; }
.wb-r6 .wb-r6-hero-photo, .wb-r6 .wb-r6-local-photo { margin:0; height:100%; }
.wb-r6 .wb-r6-hero-photo img, .wb-r6 .wb-r6-local-photo img { display:block; width:100%; height:100%; position:absolute; inset:0; object-fit:cover; border-radius:0; }
.wb-r6 .wb-r6-hero-photo img { object-position:50% 56%; }
/* Keep optional native copy below local media inside its own column. The
   absolute image must fill the figure, not cover the caption's parent. */
.wb-r6-local-visual { display:flex; flex-direction:column; }
.wb-r6 .wb-r6-local-photo { position:relative; flex:1; min-height:240px; height:auto; }
.wb-r6 .wp-block-button__link { display:flex; align-items:center; justify-content:center; min-height:46px; text-decoration:none; }
.wb-r6 .wp-block-button__link:hover { text-decoration:underline; text-underline-offset:3px; }
.wb-r6 a:focus-visible,.wb-r6 input:focus-visible,.wb-r6 button:focus-visible { outline:3px solid var(--wp--preset--color--wb-teal); outline-offset:4px; box-shadow:0 0 0 2px var(--wp--preset--color--card); }
.wb-r6-hero a:focus-visible,.wb-r6-local a:focus-visible { outline-color:var(--wp--preset--color--wb-gold); }
.wb-r6 #subscribe,.wb-r6[id=subscribe],.wb-r6 [id] { scroll-margin-top:115px; }
.wb-r6 .wb-r6-signup-main { padding-right:32px; }
.wb-r6 .wb-r6-signup-social { border-left:1px solid var(--wp--preset--color--wb-line); padding-left:32px; display:flex; flex-direction:column; justify-content:center; gap:16px; }
.wb-r6-signup-social > * { margin-block:0; }
.wb-r6-signup-social .wp-block-buttons { gap:12px; }
.wb-r6-signup-social .wp-block-button { flex:1; }
.wb-r6-signup-social .wp-block-button__link { padding-inline:12px !important; }
.wb-r6 .wb-r6-heading { margin-bottom:22px; }
.wb-r6-heading > * { margin-block:0; }
.wb-r6 .wb-r6-badges { gap:16px; }
.wb-r6 .wb-r6-badge { position:relative; min-height:183px; display:flex; flex-direction:column; justify-content:space-between; }
.wb-r6-badge-image { margin:0 auto !important; width:112px; height:112px; }
.wb-r6-badge-image a,.wb-r6-badge-image img { display:block; width:100%; height:100%; object-fit:contain; }
.wb-r6-badge-label a { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.wb-r6-badge-label a::after { content:""; position:absolute; inset:0; border-radius:10px; }
.wb-r6-badge-label span { color:var(--wp--preset--color--wb-teal); }
.wb-r6-badge:hover { box-shadow:var(--wp--preset--shadow--sm); }
.wb-r6 .wb-r6-story { overflow:hidden; height:100%; display:flex; flex-direction:column; }
.wb-r6-story .wp-block-post-featured-image { margin:0; }
.wb-r6-story .wp-block-post-featured-image img { border-radius:0; }
.wb-r6-story-copy { flex:1; display:flex; flex-direction:column; gap:14px; }
.wb-r6-story-copy > * { margin-block:0; }
.wb-r6-story-copy .wp-block-read-more { margin-top:auto; padding-top:12px; }
.wb-r6-story-copy .wp-block-post-date { font-weight:700; }
.wb-r6-story-copy .wp-block-post-excerpt p { margin:0; }
.wb-r6 .wb-r6-fine { margin-top:16px; }
/* Fluent Forms manages field requirements and submission. The native shortcode
   renders it unchanged. Reset plugin positioning so phone controls cannot overlap. */
.wb-r6 .fluentform { margin-block:16px 0; }
.wb-r6 .fluentform fieldset { border:0; margin:0; padding:0; min-width:0; }
.wb-r6 .fluentform .ff-el-group { margin-bottom:14px; }
.wb-r6 .fluentform .ff-el-input--label label { color:var(--wp--preset--color--wb-charcoal); font-size:13px; }
.wb-r6 .fluentform .ff-el-form-control { width:100%; max-width:100%; min-height:46px; padding:11px 13px; background:var(--wp--preset--color--wb-freshwhite); border:1px solid var(--wp--preset--color--wb-line); border-radius:6px; color:var(--wp--preset--color--wb-charcoal); font-family:var(--wp--preset--font-family--sans); font-size:16px; }
.wb-r6 .fluentform .ff-el-form-control::placeholder { color:var(--wp--preset--color--wb-muted); opacity:1; }
.wb-r6 .fluentform .ff_submit_btn_wrapper { position:static !important; inset:auto !important; width:auto; margin:0; }
.wb-r6 .fluentform .ff-btn-submit { display:block; min-height:46px; height:auto; padding:12px 24px; border:0; border-radius:6px; background:var(--wp--preset--color--wb-gold) !important; color:var(--wp--preset--color--on-accent) !important; font:700 14px/1.45 var(--wp--preset--font-family--sans); cursor:pointer; }
.wb-r6 .fluentform .ff-btn-submit:hover { filter:brightness(.96); }
/* Keep enabled signup text fully opaque on focus; plugin loading/disabled
   feedback remains untouched. Native semantic presets supply the focus ring. */
:root .wb-r6 .fluentform form.ff-form-loaded:not(.ff-form-loading):not(.ff_submitting) .ff-btn-submit:not(:disabled):not([aria-disabled="true"]):not(.disabled):not(.ff-working):focus { opacity:1; }
:root .wb-r6 .fluentform form.ff-form-loaded:not(.ff-form-loading):not(.ff_submitting) .ff-btn-submit:not(:disabled):not([aria-disabled="true"]):not(.disabled):not(.ff-working):focus-visible { outline:3px solid var(--wp--preset--color--ink); outline-offset:3px; box-shadow:0 0 0 3px var(--wp--preset--color--paper); }
.wb-r6 .fluentform .error,.wb-r6 .fluentform .text-danger { color:var(--wp--preset--color--clay-deep); }
/* Calendar cards are native blocks projected from existing dated calendar lists. */
.wb-r6-calendar-controls { margin-bottom:24px; }
.wb-r6-calendar-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.wb-r6-calendar-card { min-width:0; }
.wb-r6-calendar-card p { margin-block:0; }
.wb-r6-calendar-card h3 { margin-block:12px; }
@media(max-width:1050px){
 .wb-r6 .wb-r6-badges { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .wb-r6-hero-copy { padding:26px !important; }
 .wb-r6-hero-copy .wp-block-buttons { flex-direction:column; align-items:stretch; }
 .wb-r6 .wb-r6-signup-main { padding-right:24px; }
 .wb-r6 .wb-r6-signup-social { padding-left:24px; }
 .wb-r6-signup-social .wp-block-buttons { flex-direction:column; align-items:stretch; }
}
@media(max-width:781px){
 .wb-r6 { padding-top:var(--wp--preset--spacing--50) !important; padding-bottom:32px !important; }
 .wb-r6 .wb-r6-hero { display:flex; flex-direction:column; }
 .wb-r6-hero-visual { order:-1; min-height:230px; flex-basis:auto !important; width:100%; }
 .wb-r6-hero-copy { min-height:0; flex-basis:auto !important; width:100%; padding:26px !important; }
 .wb-r6-hero-copy .wp-block-buttons { flex-direction:row; }
 .wb-r6-hero-copy .wp-block-button { flex:1; }
 .wb-r6 .wb-r6-signup { padding:24px !important; }
 .wb-r6 .wb-r6-signup-main { padding:0; }
 .wb-r6 .wb-r6-signup-social { border-left:0; border-top:1px solid var(--wp--preset--color--wb-line); padding:24px 0 0; margin-top:24px; }
 .wb-r6-signup-social .wp-block-buttons { flex-direction:row; }
 .wb-r6 .wb-r6-latest-query .wp-block-post-template { grid-template-columns:1fr; }
 .wb-r6-local-visual { min-height:240px; }
 .wb-r6-local-copy { padding:26px !important; min-height:0; }
 .wb-r6-calendar-cards { grid-template-columns:1fr; }
 .wb-r6 .wb-r6-heading { align-items:flex-start; flex-direction:column; gap:12px; }
 .wb-r6 .wb-r6-footer-signup { padding:26px !important; }
}
@media(max-width:520px){
 .wb-r6 .wb-r6-badges { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .wb-r6 .wb-r6-badge { min-height:177px; padding:14px !important; }
 .wb-r6-badge-image { width:108px; height:108px; }
 .wb-r6 .fluentform .ff-t-container { display:block; }
 .wb-r6 .fluentform .ff-t-cell { display:block; padding:0 !important; width:100%; }
 .wb-r6 .fluentform .ff-btn-submit { width:100%; }
 .wb-r6-hero-copy .wp-block-buttons,.wb-r6-local-copy .wp-block-buttons { flex-direction:column; align-items:stretch; }
 .wb-r6-hero-visual { min-height:218px; }
}
@media(prefers-reduced-motion:reduce){.wb-r6 * { scroll-behavior:auto !important; transition:none !important; }}

.wb-r6 .wb-r6-calendar-card { height:100%; }
.wb-r6 .wb-r6-calendar-filters { padding:14px; border-radius:8px; background:var(--wp--preset--color--wb-tile); }
.wb-r6 .wb-r6-calendar-filters .wp-block-button { flex:1; }
.wb-r6 .wb-r6-calendar-filters .wp-block-button__link { white-space:nowrap; }
