/* ETAP15: minimum touch area and keyboard focus; existing page composition is retained. */
body.vibrant.rc8 :is(button,summary,select,input:not([type=hidden])){min-height:44px;min-width:44px}
body.vibrant.rc8 :is(.quiet-link,.quick-facts>a,.footer-bottom>a,.newsletter-help>a,.address-card p a,.contact-card a,.rc8-event-card h2 a){display:inline-flex;align-items:center;min-height:44px;min-width:44px;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}
body.vibrant.rc8 main :is(p,li,dd) a:not(.btn){display:inline-flex;align-items:center;min-height:44px;min-width:44px;max-width:100%;overflow-wrap:anywhere}
body.vibrant.rc8 .newsletter-consent input{flex:0 0 44px;width:44px;height:44px;margin:0}
body.vibrant.rc8 :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #173955;outline-offset:3px;box-shadow:0 0 0 6px #fffaf0}
body.vibrant.rc8 .price-calculator{scroll-margin-top:calc(var(--rc9-header-height,80px) + 20px)}
body.vibrant.rc8 .price-calculator select{height:auto;min-height:54px}
/* Keep the native reduced-motion path active for root-level smooth scrolling too. */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}body.vibrant.rc8 *,body.vibrant.rc8 *::before,body.vibrant.rc8 *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Override two inherited important declarations which made controls smaller. */
body.vibrant.rc8 .promo-card .quiet-link{min-height:44px!important}
body.vibrant.rc8 .newsletter .newsletter-help>a{display:inline-flex!important;align-items:center;min-height:44px;min-width:44px}

/* Retain the block breadcrumb: inline baseline changes must not move the hero. */
body.vibrant.rc8 .breadcrumb{min-height:44px;min-width:44px;box-sizing:border-box}
/* Match the existing 46dvh visible-banner cap before its ResizeObserver measures it. */
@media(max-width:760px){:root:has(#consent-banner:not([hidden])){--rc9-consent-space:46dvh}}
