/* Structural compatibility and accessibility. Visual patterns live in Elementor. */
.wayside-site { --ws-ink:#114a51; --ws-teal:#287c8a; --ws-tint:#dceaec; --ws-radius:12px; }
.wayside-site *, .wayside-site *::before, .wayside-site *::after { box-sizing:border-box; }
.wayside-site :focus-visible { outline:3px solid #bf5b13; outline-offset:4px; }
.wayside-site .elementor-widget-wayside-shared-pattern { width:100%; min-width:0; }
.wayside-site .elementor-widget-wayside-shared-pattern > .elementor-widget-container { height:100%; }
.wayside-site .ws-card-instance, .wayside-site .ws-card-instance > .elementor-widget-container > .elementor { height:100%; }
.wayside-site .ws-card-instance .ws-card { height:100%; }
.wayside-site .ws-card .ws-slot-action { margin-top:auto; }
.wayside-site .ws-card-instance .ws-card > .e-con-inner { height:100%; }
.wayside-site .elementor-heading-title { overflow-wrap:break-word; text-wrap:balance; }
.wayside-site .elementor-widget-text-editor { overflow-wrap:anywhere; }
.wayside-site .elementor-widget-text-editor p:last-child { margin-bottom:0; }
.wayside-site .elementor-widget-text-editor h2 { font-size:clamp(1.6rem,3vw,2.2rem); font-weight:600; line-height:1.2; margin-block:1rem; color:var(--ws-ink); }
.wayside-site .elementor-widget-text-editor h3 { font-size:1.35rem; font-weight:600; line-height:1.3; margin-block:1rem; color:var(--ws-ink); }
.wayside-site .elementor-widget-text-editor a { text-decoration:underline; text-underline-offset:.2em; }
.wayside-site blockquote { border-left:4px solid var(--ws-teal); padding:1rem 1.5rem; margin:0; font-size:1.2em; }
.wayside-site .ws-app-badges img { max-height:52px; object-fit:contain; }
.wayside-site .ws-hero-home .elementor-background-video-container { pointer-events:none; }
.wayside-site .ws-hero-home { isolation:isolate; }
.wayside-site .ws-header { position:relative; z-index:30; }
.wayside-nav { color:var(--ws-nav-color,var(--ws-ink)); }
.wayside-menu { list-style:none; display:flex; flex-wrap:wrap; align-items:center; gap:24px; padding:0; margin:0; }
.wayside-menu a { color:inherit; font-weight:600; font-size:14px; padding:12px 0; display:block; text-decoration:none; }
.wayside-menu a:hover, .wayside-menu .current-menu-item>a { text-decoration:underline; text-underline-offset:6px; }
.wayside-menu li { position:relative; }
.wayside-menu .sub-menu { display:none; position:absolute; background:white; list-style:none; padding:16px; min-width:200px; box-shadow:0 8px 24px #114a5120; z-index:35; }
.wayside-menu li:hover>.sub-menu,.wayside-menu li:focus-within>.sub-menu { display:block; }
.wayside-site .wayside-menu-toggle { display:none; }
body.wayside-site .cookieadmin_law_container { width:min(460px,calc(100% - 24px))!important; max-height:calc(100dvh - 24px); overflow:auto; }
body.wayside-site .cookieadmin_consent_inside { padding:16px; border-radius:12px; border:1px solid #dceaec; }
body.wayside-site .cookieadmin_notice_con { font-size:13px!important; line-height:1.5; padding:0; }
body.wayside-site #cookieadmin_notice_title { font-size:16px!important; padding:0; line-height:1.3; }
body.wayside-site .cookieadmin_consent_btns { gap:8px; justify-content:flex-start; }
body.wayside-site .cookieadmin_consent_btns button { min-height:44px; padding:9px 12px!important; margin:0!important; font-size:13px!important; line-height:1.2; }
@media(max-width:1024px) {
 .wayside-menu { gap:16px; }
}
@media(max-width:767px) {
 .wayside-site button.wayside-menu-toggle { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:48px; height:48px; min-width:48px; min-height:48px; margin-inline-start:auto; padding:0; color:var(--ws-nav-color,var(--ws-ink)); background:var(--ws-tint); border:1px solid var(--ws-tint); border-radius:12px; cursor:pointer; line-height:1; transition:background-color 200ms,color 200ms,border-color 200ms,transform 200ms; }
 .wayside-site button.wayside-menu-toggle:is(:hover,:focus-visible,[aria-expanded="true"]) { color:#fff; background:var(--ws-nav-color,var(--ws-ink)); border-color:var(--ws-nav-color,var(--ws-ink)); }
 .wayside-site button.wayside-menu-toggle:active { color:#fff; background:var(--ws-nav-color,var(--ws-ink)); border-color:var(--ws-nav-color,var(--ws-ink)); transform:scale(.96); }
 .wayside-menu-icon { display:block; width:24px; height:24px; flex-shrink:0; }
 .wayside-menu-icon-close,.wayside-menu-toggle[aria-expanded="true"] .wayside-menu-icon-bars { display:none; }
 .wayside-menu-toggle[aria-expanded="true"] .wayside-menu-icon-close { display:block; }
 .wayside-menu-panel { position:absolute; left:0; right:0; top:100%; padding:16px 24px; background:white; border-top:1px solid var(--ws-tint); box-shadow:0 12px 18px #114a5115; }
 .wayside-nav[data-enhanced] .wayside-menu-panel { display:none; }
 .wayside-nav[data-enhanced].is-open .wayside-menu-panel { display:block; }
 .wayside-menu { display:block; }
 .wayside-menu a { padding:12px 0; font-size:16px; }
 .wayside-menu .sub-menu { display:block; position:static; box-shadow:none; padding:0 16px; }
 body.wayside-site .cookieadmin_law_container { left:12px!important; right:12px!important; bottom:12px; }
 body.wayside-site .cookieadmin_consent_inside { padding:12px; }
 body.wayside-site .cookieadmin_notice_group { gap:8px; }
}
@media(prefers-reduced-motion:reduce) {
 .wayside-site .elementor-background-video-container { display:none!important; }
 .wayside-site *, .wayside-site *::before, .wayside-site *::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
}

body.wayside-site .cookieadmin_consent_btns button { width:auto!important; flex:1 1 0; }
body.wayside-site #cookieadmin_accept_button { background:#114a51!important; border-color:#114a51!important; color:#fff!important; }
body.wayside-site #cookieadmin_reject_button, body.wayside-site #cookieadmin_customize_button { color:#114a51!important; border-color:#114a51!important; background:#fff!important; }

/* Stretch every template wrapper so cards and their action edges align per row. */
.wayside-site .ws-card-instance { display:flex; flex-direction:column; align-self:stretch; height:auto; }
.wayside-site .ws-card-instance > .elementor-widget-container { display:flex; flex:1; width:100%; height:auto; }
.wayside-site .ws-card-instance > .elementor-widget-container > .elementor { display:flex; flex-direction:column; flex:1; width:100%; height:auto; }
.wayside-site .ws-card-instance .ws-card { flex:1; width:100%; height:auto; }

/* Interaction rules are shared; templates retain all visual design controls. */
.wayside-site :focus-visible { outline:3px solid var(--ws-teal); outline-offset:4px; box-shadow:0 0 0 2px #fff; }
.wayside-site .elementor-button { min-height:44px; display:inline-flex; align-items:center; justify-content:center; transition:background-color 200ms,color 200ms,border-color 200ms,transform 200ms,box-shadow 200ms; }
@media(hover:hover) { .wayside-site .elementor-button:hover { transform:translateY(-2px); } }
.wayside-site .elementor-button:active { transform:translateY(0); }
.wayside-site .elementor-button-text { line-height:1.45; }
.wayside-site .ws-eyebrow p { margin:0; }
.wayside-site .ws-reading { max-width:720px; }
.wayside-site .ws-card .ws-slot-image { width:100%; }
.wayside-site .ws-profile-details[hidden] { display:none!important; }
.wayside-site .ws-profile-toggle .elementor-button { width:100%; }
.wayside-site .ws-team-grid .ws-card-instance { align-self:stretch; }
.wayside-site .ws-profile .ws-slot-action { margin-top:0; }
.wayside-site .ws-carousel { min-width:0; max-width:100%; }
.wayside-site .ws-carousel[data-carousel-ready], .wayside-site .ws-carousel[data-carousel-ready] > .e-con-inner { display:block; }
.ws-carousel-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 48px)/3); gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:none; padding:4px 0 16px; position:relative; }
.ws-carousel-track::-webkit-scrollbar { display:none; }
.wayside-site .ws-carousel-track > .ws-card-instance { width:100%!important; scroll-snap-align:start; min-width:0; }
.ws-carousel-controls { display:flex; align-items:center; gap:12px; padding-top:16px; color:var(--ws-ink); }
.ws-carousel-controls span { margin-right:auto; font:500 14px Poppins,sans-serif; }
.wayside-site .ws-carousel-controls button { border:1px solid var(--ws-ink); border-radius:50%; width:48px; height:48px; padding:0; display:grid; place-items:center; background:transparent; color:var(--ws-ink); font-size:24px; transition:background-color 200ms,color 200ms; }
.wayside-site .ws-carousel-controls button:hover:not(:disabled) { background:var(--ws-ink); color:#fff; }
.wayside-site .ws-carousel-controls button:disabled { opacity:.35; cursor:default; }
/* Before enhancement and without JS, the native cards remain visible and usable. */
.wayside-site .ws-carousel:not([data-carousel-ready]) { flex-wrap:wrap; }
.wayside-site .ws-cta-card { position:relative; overflow:hidden; }
.wayside-site .ws-cta-card .e-con, .wayside-site .ws-cta-card .elementor-widget { z-index:1; }
.wayside-site .ws-give-quote blockquote { border:0; padding:0; font-size:inherit; }
.wayside-site .ws-give-quote cite { display:block; margin-top:24px; font-size:14px; font-style:normal; letter-spacing:.06em; }
.wayside-site .ws-story-step { scroll-margin-top:32px; }
.wayside-site .ws-section-copy h2 { margin-block:48px 20px; font-weight:800; }
.wayside-site .ws-section-copy h3 { margin-block:32px 16px; font-weight:700; }
.wayside-site .ws-footer .ws-ein { color:#dceaec; font-size:13px; }
.wayside-site .ws-ein { font:500 14px Poppins,sans-serif; }
@keyframes ws-fade-rise { from {opacity:0;transform:translateY(16px)} to {opacity:1;transform:translateY(0)} }
.ws-enter { animation:ws-fade-rise 450ms cubic-bezier(.2,.65,.3,1) both; }
@media(min-width:768px) { .ws-stagger > :nth-child(2).ws-enter {animation-delay:60ms} .ws-stagger > :nth-child(3).ws-enter {animation-delay:120ms} }
@media(max-width:1024px) { .ws-carousel-track { grid-auto-columns:calc((100% - 24px)/2); } }
@media(max-width:767px) {
 .ws-carousel-track { grid-auto-columns:88%; gap:16px; }
 .wayside-site .ws-carousel-controls button { width:44px; height:44px; }
 .wayside-site .ws-reading { max-width:100%; }
 .wayside-site .ws-story-step .elementor-heading-title { text-wrap:pretty; }
 .wayside-site .ws-section-copy h2 { margin-top:36px; }
}
@media(prefers-reduced-motion:reduce) { .ws-enter { animation:none!important; } .wayside-site .elementor-button:hover { transform:none; } }
body.elementor-editor-active .ws-reveal { opacity:1!important; transform:none!important; animation:none!important; }
.wayside-site .ws-carousel-track > .ws-card-instance { max-width:100%!important; }

.wayside-site .ws-card > .ws-card-content { flex:1; }
.wayside-site .ws-card-content > .ws-slot-action { margin-top:auto; }

/* Polish: behavioral geometry stays here; card design is stored in native templates. */
.wayside-site .ws-brand { flex-shrink:0; }
.wayside-site .ws-full-logo img { display:block; }
.wayside-site .ws-text-link .elementor-button { justify-content:flex-start; }
.wayside-site .ws-text-link .elementor-button-text { text-align:left; }
.wayside-site .ws-text-link .elementor-button:hover { transform:none; }
.wayside-site .ws-text-link .elementor-button:hover .elementor-button-text { text-decoration:underline; text-underline-offset:5px; }
.wayside-site .ws-text-link .elementor-button-icon { transition:transform 200ms; }
.wayside-site .ws-text-link .elementor-button:hover .elementor-button-icon { transform:translateX(3px); }
.wayside-site .ws-section-heading-copy { max-width:760px; }
.wayside-site .ws-section-heading-copy .elementor-heading-title { text-wrap:pretty; }
.wayside-site .ws-section-action .elementor-button { border-bottom:1px solid #114a5166; }
.wayside-site .ws-carousel-dock:empty { display:none; }
.wayside-site .ws-carousel-controls { display:flex; width:max-content; max-width:100%; padding:4px; gap:4px; border:1px solid #114a5133; border-radius:100px; background:white; }
.wayside-site .ws-carousel-controls span { margin:0; min-width:0; width:76px; text-align:center; font-size:12px; font-weight:600; }
.wayside-site .ws-carousel-controls button { width:44px; min-width:44px; flex-shrink:0; height:44px; border:0; border-radius:50%; background:white; }
.wayside-site .ws-carousel-controls button:disabled { opacity:.3; }
.wayside-site .ws-carousel-controls button:hover:not(:disabled) { background:var(--ws-ink); color:white; }
.wayside-site .ws-carousel-track { padding-top:0; }
.wayside-site .ws-ministry-card, .wayside-site .ws-event-card { transition:box-shadow 200ms,border-color 200ms; }
@media(hover:hover) { .wayside-site .ws-ministry-card:hover, .wayside-site .ws-event-card:hover { box-shadow:0 12px 26px #114a5110; border-color:#287c8a66; } }
.wayside-site .ws-ministry-card .ws-slot-title::before { content:''; display:block; width:32px; height:3px; background:var(--ws-teal); margin-bottom:18px; }
.wayside-site .ws-ministry-card .ws-slot-action, .wayside-site .ws-event-card .ws-slot-action { width:100%; padding-top:12px; border-top:1px solid var(--ws-tint); }
.wayside-site .ws-visit-item + .ws-visit-item { border-left:1px solid #dceaec44; }
.wayside-site .ws-visit-icon .elementor-icon { display:flex; }
.wayside-site .ws-visit-item .elementor-heading-title { text-wrap:wrap; }
.wayside-site .ws-profile-actions > .elementor-widget { width:auto; flex:1 1 0; min-width:0; }
.wayside-site .ws-profile-actions .elementor-button { width:100%; white-space:nowrap; }
.wayside-site .ws-profile-toggle .elementor-button-icon { transition:transform 200ms; }
.wayside-site .ws-profile-toggle [aria-expanded=true] .elementor-button-icon { transform:rotate(45deg); }


.wayside-site .ws-profile-copy .ws-profile-details { margin-top:4px; }
.wayside-site .ws-profile-details p { font-size:14px; line-height:1.7; }
@media(min-width:1025px) { .wayside-site .ws-visit-item:first-child { padding-left:24px; } }
@media(min-width:768px) and (max-width:1024px) {
 .wayside-site .ws-visit-item:nth-child(3) { border-left:0; }
 .wayside-site .ws-visit-item:nth-child(n+3) { margin-top:32px; }
}
@media(max-width:767px) {
 .wayside-site .ws-visit-item + .ws-visit-item { border-left:0; border-top:1px solid #dceaec44; }
 .wayside-site .ws-visit-item { flex-direction:row; gap:18px; align-items:flex-start; }
 .wayside-site .ws-visit-icon { flex:0 0 28px; padding-top:3px; }
 .wayside-site .ws-visit-item > .e-con { flex:1; min-width:0; }
 .wayside-site .ws-profile .ws-slot-title, .wayside-site .ws-profile .ws-slot-role { min-height:0; }
 .wayside-site .ws-carousel-dock { align-items:flex-start; }
 .wayside-site .ws-cta-card::before { background-position:bottom right; }
}
@media(prefers-reduced-motion:reduce) { .wayside-site .ws-text-link .elementor-button:hover .elementor-button-icon { transform:none; } }

/* Mobile section flow and profile enhancement; content remains in native widgets. */
@media(max-width:767px) {
 .wayside-site .ws-mobile-image-then-action-yes { align-items:stretch; }
 .wayside-site .ws-mobile-image-then-action-yes > .ws-image-text-copy { display:contents; }
 .wayside-site .ws-mobile-image-then-action-yes > .ws-image-text-photo { order:1; }
 .wayside-site .ws-mobile-image-then-action-yes .ws-image-text-copy > .ws-slot-action { order:2; width:100%; }
 .wayside-site .ws-carousel > .ws-carousel-controls,.wayside-site .ws-carousel > .e-con-inner > .ws-carousel-controls { width:100%; height:44px; padding:0; margin-top:4px; border:0; border-top:1px solid #114a5133; border-radius:0; background:transparent; justify-content:space-between; }
 .wayside-site .ws-carousel .ws-carousel-controls span { min-width:0; font-size:11px; }
 .wayside-site .ws-carousel .ws-carousel-controls button { width:44px; height:44px; border-radius:8px; background:transparent; }
 .wayside-site .ws-carousel .ws-carousel-controls button:hover:not(:disabled) { background:var(--ws-ink); }
 .wayside-site .ws-carousel .ws-carousel-controls svg { width:18px; height:18px; }
}
.wayside-site .ws-card.ws-profile > .ws-profile-copy { flex:1; }
.wayside-site .ws-profile .ws-profile-copy > .ws-profile-actions { margin-top:auto; padding-top:8px; }
.wayside-site .ws-profile-email { min-width:0; }
.wayside-site .ws-profile-email a { display:inline-block; overflow-wrap:anywhere; text-decoration:underline; text-underline-offset:3px; }
.wayside-site .ws-profile-email a:hover { color:var(--ws-teal); }
body.ws-profile-modal-open { overflow:hidden; }
.wayside-site dialog.ws-profile-dialog { position:fixed; inset:0; width:min(900px,calc(100% - 48px)); max-width:none; max-height:calc(100dvh - 48px); margin:auto; padding:56px 32px 32px; overflow:hidden; overscroll-behavior:contain; border:0; border-radius:20px; background:#fff; color:var(--ws-ink); box-shadow:0 24px 80px #08323955; }
.wayside-site .ws-profile-dialog::backdrop { background:#083239c7; }
.wayside-site .ws-profile-dialog-layout { max-height:calc(100dvh - 136px); overflow-y:auto; overscroll-behavior:contain; display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); gap:32px; align-items:start; }
.wayside-site .ws-profile-dialog-copy { display:flex; flex-direction:column; gap:16px; min-width:0; }
.wayside-site .ws-profile-dialog .ws-slot-image img { width:100%; height:auto; max-height:none; object-fit:contain; aspect-ratio:auto; }
.wayside-site dialog.ws-profile-dialog .ws-slot-title .elementor-heading-title { font-size:var(--ws-profile-dialog-heading-size,32px); line-height:1.2; }
.wayside-site dialog.ws-profile-dialog .ws-slot-role { font-size:16px; }
.wayside-site .ws-profile-dialog .ws-profile-details p { font-size:16px; line-height:1.7; }
.wayside-site button.ws-profile-dialog-close { position:absolute; top:8px; right:8px; display:grid; place-items:center; width:44px; height:44px; padding:0; background:var(--ws-tint); color:var(--ws-ink); border:0; border-radius:12px; cursor:pointer; }
.wayside-site button.ws-profile-dialog-close:is(:hover,:focus-visible,:active) { background:var(--ws-ink); color:#fff; }
@media(max-width:767px) {
 .wayside-site dialog.ws-profile-dialog { width:calc(100% - 24px); max-height:calc(100dvh - 24px); padding:56px 20px 24px; border-radius:16px; }
 .wayside-site .ws-profile-dialog-layout { max-height:calc(100dvh - 104px); grid-template-columns:minmax(0,1fr); gap:24px; }
 .wayside-site .ws-profile-dialog-photo { width:min(100%,320px); justify-self:center; }
 .wayside-site dialog.ws-profile-dialog .ws-slot-title .elementor-heading-title { font-size:var(--ws-profile-dialog-heading-size,28px); }
}
