.elementor-kit-7{--e-global-color-primary:#285043;--e-global-color-secondary:#C15F3C;--e-global-color-text:#23281F;--e-global-color-accent:#A99A83;--e-global-color-kvdark:#223029;--e-global-color-kvdark2:#182119;--e-global-color-kvcream:#F2EFE7;--e-global-color-kvsurface:#FFFFFF;--e-global-color-kvsurface2:#EAE3D5;--e-global-color-kvmuted:#6D6A60;--e-global-color-kvline:#E4DDCE;--e-global-color-kvpine600:#1F4438;--e-global-color-kvpine050:#EDF2EF;--e-global-color-kvterra600:#A94E2F;--e-global-color-kvaccent050:#F7EBE3;--e-global-color-kvftxt:#8C948C;--e-global-color-kvflnk:#B6BCB5;--e-global-color-kvfdim:#7C837C;--e-global-color-kvficon:#C4C9C4;--e-global-color-kvlinestrong:#D6CDB9;--e-global-color-kvbodysoft:#4B463F;--e-global-color-kvpeach:#E7B9A4;--e-global-color-kvwhitesoft:rgba(255,255,255,0.88);--e-global-color-kvwhitetint:rgba(255,255,255,0.12);--e-global-color-kvborderlight:rgba(255,255,255,0.5);--e-global-color-kvborderdark:rgba(35,40,31,0.28);--e-global-color-kvyouth:#6E3FA3;--e-global-color-kvyouthsoft:#CDB4E6;--e-global-color-kvkids:#1F97A4;--e-global-color-kvkids050:#E2F5F7;--e-global-color-kvtweens:#2FB5C4;--e-global-color-kvgold:#E0A33C;--e-global-color-kvgoldsoft:#F0C46B;--e-global-color-kvgolddeep:#C1851F;--e-global-color-kvyouth050:#EFE4F8;--e-global-typography-primary-font-family:"Archivo";--e-global-typography-primary-font-size:clamp(2.05rem, 6.4vw, 5.4rem);--e-global-typography-primary-font-weight:300;--e-global-typography-primary-text-transform:uppercase;--e-global-typography-primary-line-height:0.98em;--e-global-typography-primary-letter-spacing:-0.015em;--e-global-typography-secondary-font-family:"Archivo";--e-global-typography-secondary-font-size:clamp(1.9rem, 4.3vw, 3.4rem);--e-global-typography-secondary-font-weight:300;--e-global-typography-secondary-text-transform:uppercase;--e-global-typography-secondary-line-height:1em;--e-global-typography-secondary-letter-spacing:-0.012em;--e-global-typography-text-font-family:"Plus Jakarta Sans";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.62em;--e-global-typography-accent-font-family:"Archivo";--e-global-typography-accent-font-size:0.76rem;--e-global-typography-accent-font-weight:700;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.5em;--e-global-typography-accent-letter-spacing:0.2em;--e-global-typography-kvh3-font-family:"Archivo";--e-global-typography-kvh3-font-size:1.5rem;--e-global-typography-kvh3-font-weight:700;--e-global-typography-kvh3-line-height:1.1em;--e-global-typography-kvbutton-font-family:"Archivo";--e-global-typography-kvbutton-font-size:0.8rem;--e-global-typography-kvbutton-font-weight:700;--e-global-typography-kvbutton-text-transform:uppercase;--e-global-typography-kvbutton-letter-spacing:0.1em;--e-global-typography-kvnav-font-family:"Archivo";--e-global-typography-kvnav-font-size:0.8rem;--e-global-typography-kvnav-font-weight:600;--e-global-typography-kvnav-text-transform:uppercase;--e-global-typography-kvnav-letter-spacing:0.08em;--e-global-typography-kvlead-font-family:"Plus Jakarta Sans";--e-global-typography-kvlead-font-size:clamp(1.1rem, 1.5vw, 1.32rem);--e-global-typography-kvlead-font-weight:400;--e-global-typography-kvlead-line-height:1.55em;--e-global-typography-kvfhead-font-family:"Archivo";--e-global-typography-kvfhead-font-size:0.76rem;--e-global-typography-kvfhead-font-weight:700;--e-global-typography-kvfhead-text-transform:uppercase;--e-global-typography-kvfhead-letter-spacing:0.14em;--e-global-typography-kvfmenu-font-family:"Plus Jakarta Sans";--e-global-typography-kvfmenu-font-size:0.95rem;--e-global-typography-kvfmenu-font-weight:500;--e-global-typography-198a657-font-family:"Archivo";--e-global-typography-198a657-font-size:clamp(2.1rem, 4.2vw, 3.1rem);--e-global-typography-198a657-font-weight:800;--e-global-typography-198a657-text-transform:uppercase;--e-global-typography-198a657-line-height:1.05em;--e-global-typography-kvcardbody-font-size:0.96rem;--e-global-typography-kvcardbody-line-height:1.62em;--e-global-typography-kvemoji-font-family:"Plus Jakarta Sans";--e-global-typography-kvemoji-font-size:1.55rem;--e-global-typography-kvemoji-line-height:1em;--e-global-typography-kvtextlink-font-size:0.78rem;--e-global-typography-kvtextlink-font-weight:700;--e-global-typography-kvcardtitle-font-family:"Archivo";--e-global-typography-kvcardtitle-font-size:27px;--e-global-typography-kvcardtitle-font-weight:800;--e-global-typography-kvcardtitle-text-transform:uppercase;--e-global-typography-kvcardtitle-line-height:1em;--e-global-typography-kvcardtitle-letter-spacing:-0.01em;--e-global-typography-kvstepnum-font-family:"Archivo";--e-global-typography-kvstepnum-font-size:2.8rem;--e-global-typography-kvstepnum-font-weight:800;--e-global-typography-kvstepnum-line-height:1em;--e-global-typography-kvnote-font-size:0.82rem;--e-global-typography-kvnote-line-height:1.62em;--e-global-typography-kvrole-font-family:"Archivo";--e-global-typography-kvrole-font-size:0.78rem;--e-global-typography-kvrole-font-weight:600;--e-global-typography-kvrole-text-transform:uppercase;--e-global-typography-kvrole-line-height:1.4em;--e-global-typography-kvrole-letter-spacing:0.06em;--e-global-typography-kvh4-font-family:"Archivo";--e-global-typography-kvh4-font-size:1rem;--e-global-typography-kvh4-font-weight:700;--e-global-typography-kvh4-line-height:1.35em;--e-global-typography-kvstatement-font-family:"Archivo";--e-global-typography-kvstatement-font-size:1.45rem;--e-global-typography-kvstatement-font-weight:300;--e-global-typography-kvstatement-text-transform:uppercase;--e-global-typography-kvstatement-line-height:1.4em;--e-global-typography-kvstatement-letter-spacing:0.01em;color:#25291F;font-family:"Plus Jakarta Sans", Sans-serif;font-size:17px;font-weight:400;line-height:1.62em;}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{background-color:#223029;font-family:"Archivo", Sans-serif;font-size:0.8rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:#FFFFFF;border-radius:12px 12px 12px 12px;padding:1.1rem 1.8rem 1.1rem 1.8rem;}.elementor-kit-7 button:hover,.elementor-kit-7 button:focus,.elementor-kit-7 input[type="button"]:hover,.elementor-kit-7 input[type="button"]:focus,.elementor-kit-7 input[type="submit"]:hover,.elementor-kit-7 input[type="submit"]:focus,.elementor-kit-7 .elementor-button:hover,.elementor-kit-7 .elementor-button:focus{background-color:#285043;color:#FFFFFF;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-kit-7 a{color:#285043;}.elementor-kit-7 a:hover{color:#1F4438;}.elementor-kit-7 h1{font-family:"Archivo", Sans-serif;font-size:clamp(2.05rem, 6.4vw, 5.4rem);font-weight:800;text-transform:uppercase;line-height:0.98em;letter-spacing:-0.015em;}.elementor-kit-7 h2{font-family:"Archivo", Sans-serif;font-size:clamp(1.9rem, 4.3vw, 3.4rem);font-weight:800;text-transform:uppercase;line-height:1em;letter-spacing:-0.012em;}.elementor-kit-7 h3{font-family:"Archivo", Sans-serif;font-size:1.5rem;font-weight:700;line-height:1.1em;}.elementor-kit-7 h4{font-family:"Archivo", Sans-serif;font-size:1.25rem;font-weight:700;}.elementor-kit-7 h5{font-family:"Archivo", Sans-serif;font-size:1.1rem;font-weight:700;}.elementor-kit-7 h6{font-family:"Archivo", Sans-serif;font-size:1rem;font-weight:700;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1220px;}.e-con{--container-max-width:1220px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-7{--e-global-typography-kvcardtitle-font-size:23px;--e-global-typography-kvstatement-font-size:1.3rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-7{--e-global-typography-kvcardtitle-font-size:21px;--e-global-typography-kvstatement-font-size:1.15rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* Kingsview GLOBAL custom CSS — lives in Kit 7 (Site Settings → Custom CSS), loads site-wide.
   Page-level custom_css is now EMPTY everywhere; only truly non-native things live here.
   All .elementor-kit-7s are class-scoped (kv-*) so header/footer templates are unaffected. */

/* wordmark keyword: light base comes from the global H1/H2 (weight 300);
   only the inline <strong>/<em> heavy keyword needs CSS (not natively stylable) */
.kv-wordmark .elementor-heading-title strong,
.kv-wordmark .elementor-heading-title b{font-weight:900;font-style:normal}
.kv-wordmark .elementor-heading-title em{font-weight:900;font-style:normal;color:var(--e-global-color-secondary)}

/* 2026-07-21 globals audit (Matt): kv-pill*, kv-ovbtn, kv-emoji font, card-image
   width, and kv-gr-ccnote rules all moved to NATIVE widget controls + globals
   (pill/chip = inline width + align-self + background/padding/radius on the
   widget; emoji family lives in the kvemoji global now). Classes left on
   widgets are inert markers. */

/* eyebrow leading rule (a heading can't carry a leading hairline natively) */
.kv-eyebrow .elementor-heading-title::before{content:"";display:inline-block;width:1.7rem;height:2px;margin-right:.6rem;vertical-align:middle;background:currentColor}

/* V3 has a global *{margin:0} reset; Elementor 4.x keeps the theme's <p> margins in text-editor widgets.
   Scoped to page documents so the header/footer templates keep their tuned spacing.
   :where() keeps this at (0,1,1) specificity so the widget's own Paragraph Spacing
   control (0,3,1) can override it - the earlier bare .elementor-kit-7 was (0,4,1) and
   silently swallowed the control (Matt 2026-07-21). Multi-paragraph widgets get a
   readable default gap; single-paragraph layouts (gap-driven rhythm) are untouched. */
:where(.elementor:not(.elementor-location-header):not(.elementor-location-footer)) .elementor-widget-text-editor p{margin-block:0}
:where(.elementor:not(.elementor-location-header):not(.elementor-location-footer)) .elementor-widget-text-editor p+p{margin-block-start:.9em}


/* photo aspect helpers (containers have no native aspect-ratio control; only where stretch can't work) */
.kv-media-16x9{aspect-ratio:16/9}
.kv-media-4x5{aspect-ratio:4/5}
.kv-hero-media{aspect-ratio:21/9}
@media (max-width:720px){.kv-hero-media{aspect-ratio:4/4.5}}

/* rule-eyebrow flex hairline + hero overlap card (Home) */
.kv-rule-line{flex:1 1 0;align-self:center;height:1px;min-width:2rem;}

@media (min-width:720px){
.kv-hero-card{width:auto;}
}
.kv-hero-card .elementor-button{white-space:nowrap}

/* text badges rendered on headings (native heading has no background) */

/* dashed placeholder block: tag badge + strong color (inline spans aren't natively stylable) */
.kv-placeholder-box strong{color:var(--e-global-color-text);display:inline-flex;align-items:center;gap:.45rem}
.kv-ph-tag{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:var(--e-global-color-secondary);color:#fff;padding:.18rem .5rem;border-radius:6px}

/* decorative mountain watermarks (offset/sized bg pseudo-elements) */
.kv-cta-band{position:relative;overflow:hidden}
.kv-cta-band::after{content:"";position:absolute;right:-50px;bottom:-60px;width:300px;height:300px;background:url("https://kingsviewchurch.com/wp-content/uploads/2026/07/kingsview-icon-white.webp") center/contain no-repeat;opacity:.08;pointer-events:none;z-index:0}
.kv-cta-band--accent::after{opacity:.14}
.kv-cta-band > *{position:relative;z-index:1}

/* staff initials placeholder — corner icon watermark */
.kv-portrait-ph{position:relative}
.kv-portrait-ph::after{content:"";position:absolute;right:10px;bottom:10px;width:44px;height:44px;background:url("https://kingsviewchurch.com/wp-content/uploads/2026/07/kingsview-icon-white.webp") center/contain no-repeat;opacity:.32;pointer-events:none}

/* icon-list checklists (single-widget check rows; chip look has no native control).
   Circle chip per Matt 2026-07-03 (V3 spec'd a 7px-radius square). Explicit svg/i size +
   margin:auto centering -- Elementor's em-fallback sizing and justify-content misplace the
   inline SVG across browsers. */
.elementor-widget-icon-list.kv-checklist .elementor-icon-list-icon{position:relative;background:var(--e-global-color-kvpine050);border-radius:50%;width:24px;height:24px;min-width:24px;flex:0 0 24px;margin-top:2px}
.elementor-widget-icon-list.kv-checklist .elementor-icon-list-icon svg,
.elementor-widget-icon-list.kv-checklist .elementor-icon-list-icon i{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:12px!important;height:12px!important;margin:0!important;font-size:12px;line-height:1}

/* CP Sermons (cp-library) — plugin CSS variables mapped to the kit (the plugin's official
   theming path); light component accents only, plugin structure/UX unchanged */
body{--cp-color-brand-primary:var(--e-global-color-primary);--cp-color-ui-primary:var(--e-global-color-kvdark);--cp-color-ui-secondary:var(--e-global-color-kvmuted);--cp-color-text-primary:var(--e-global-color-text);--cp-color-text-secondary:var(--e-global-color-kvmuted);--cp-color-text-tertiary:var(--e-global-color-kvmuted);--cp-color-text-link:var(--e-global-color-kvpine600);--cpl-color--primary:var(--e-global-color-primary);--cp-font-family--base:var(--e-global-typography-text-font-family),sans-serif;--cp-font-family--header:var(--e-global-typography-primary-font-family),sans-serif;--cp-border-radius-sm:14px;--cp-border-radius:24px;--cp-border-radius-lg:30px;--cp-button--bg:var(--e-global-color-kvdark);--cp-button--bg--hover:var(--e-global-color-primary);--cp-button--color:#fff;--cp-button--color--hover:#fff;--cp-button--border-color:var(--e-global-color-kvdark);--cp-button--border-color--hover:var(--e-global-color-primary);--cp-button--border-radius:12px;--cp-content-width:1220px}
.cpl-button{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}
.cpl-list-item{background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:24px;box-shadow:0 2px 12px rgba(30,40,34,.06);overflow:hidden}
/* the plugin rounds the thumb BOX but pads the img inside it — round the img itself */
.cpl-list-item--thumb img{border-radius:10px}
/* the "Read" (sermon notes) control added by the KV Sermon Notes snippet is an <a>,
   because it links to a PDF rather than driving the player like Watch/Listen. On desktop
   those siblings get their pill from the KIT's global `button` element rule (which
   out-ranks the plugin's own outlined variant — that is why Watch and Listen both render
   dark), and an anchor matches none of it. Mirror those declarations here; the phone
   block further down then restyles all three into round chips. */
.cpl-list-item .cpl-list-item--actions .cpl-list-item--actions--buttons a.cpl-button{padding:1.1rem 1.8rem;border-radius:12px;background:var(--e-global-color-kvdark);border:1px solid var(--e-global-color-kvmuted);color:var(--e-global-color-kvsurface);text-decoration:none}
.cpl-list-item .cpl-list-item--actions .cpl-list-item--actions--buttons a.cpl-button:hover{background:var(--e-global-color-primary);color:var(--e-global-color-kvsurface)}
/* between phone and desktop the plugin stacks the buttons full-width with no vertical
   padding — again `button`-only, so the Read anchor would tower over its siblings */
@media(max-width:879.98px){
.cpl-list-item .cpl-list-item--actions .cpl-list-item--actions--buttons a.cpl-button{width:100%;padding:0 calc(var(--cpl-list-item-gap)/2)}
}
.cpl-meta,.cpl-info{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--e-global-color-kvmuted)}
.cpl-single-type--back a,.cpl-single--back a,.cpl-single-item--back a{color:var(--e-global-color-kvterra600)}
/* embedded archive on /watch/ — the Elementor section supplies the heading */
.kv-cpl-embed .cpl-archive--header .page-title{display:none}

/* --- CP archives: designed pass (filter/search + standalone /series/ + /messages/) --- */
/* filter toggle = kv dark button; hidden when the context has no facets (disabled) */
.cpl-filter--toggle--button.cpl-button{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 22px;background:var(--e-global-color-kvdark);color:#fff!important;border-radius:12px}
.cpl-filter--toggle--button.cpl-button:hover{background:var(--e-global-color-primary)}
.cpl-filter--toggle--button.disabled{display:none!important}
.cpl-filter--toggle--button .material-icons-outlined{font-size:18px}
/* search: clean kv field (their default crams a dark square button into a pill) */
.cpl-filter--search--box{display:flex;align-items:center;flex-direction:row-reverse;background:var(--e-global-color-kvsurface);border:1.5px solid var(--e-global-color-kvline);border-radius:12px;height:48px;padding:0 10px;min-width:300px}
.cpl-filter--search--box .cpl-search-submit{background:transparent;border:0;padding:0 4px;display:flex;align-items:center;cursor:pointer}
.cpl-filter--search--box .cpl-search-submit .material-icons-outlined{color:var(--e-global-color-kvmuted);font-size:20px}
.cpl-filter--search--box input[type=text]{border:0;outline:0;background:transparent;height:100%;width:100%;font-family:var(--e-global-typography-text-font-family),sans-serif;font-size:.95rem;color:var(--e-global-color-text);padding:0 8px}
/* /watch/ embed: the Elementor section supplies the head — hide the app's own header entirely */
.kv-cpl-embed .cpl-archive--header{display:none}
/* standalone archives + singles: cream canvas (kills the white strips) + dark hero band */
body[class*="post-type-archive-cpl"],body[class*="tax-cpl_"],body.single-cpl_item_type,body.single-cpl_item{background:var(--e-global-color-kvcream)}
/* the dark bands sit flush under the site header, like the Elementor page heroes */
main.cp-pg-template{margin-top:0}
/* --kv-cp-gutter: viewport-left offset of the plugin's centered content column
   (width:min(--cp-content-width,90vw) desktop; 100vw - --cp-content-padding mobile),
   so full-bleed band text lines up with the list content below it */
main.cp-pg-template{--kv-cp-gutter:calc(50vw - min(var(--cp-content-width,1220px)/2,45vw))}
@media(max-width:879.98px){main.cp-pg-template{--kv-cp-gutter:calc(var(--cp-content-padding,2rem)/2)}}
body[class*="post-type-archive-cpl"] .cpl-archive--header,body[class*="tax-cpl_"] .cpl-archive--header{margin:0 calc(50% - 50vw) 3.5rem;padding:5.5rem var(--kv-cp-gutter,44px);display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;background:linear-gradient(rgba(34,48,41,.94),rgba(34,48,41,.94)),url("https://kingsviewchurch.com/wp-content/uploads/2026/07/Circle-Logo-White-Cropped-V1-1.webp") right -80px center/auto 160% no-repeat,var(--e-global-color-kvdark)}
@media(max-width:879.98px){body[class*="post-type-archive-cpl"] .cpl-archive--header,body[class*="tax-cpl_"] .cpl-archive--header{padding-top:3.5rem;padding-bottom:3.5rem;margin-bottom:2.5rem}}
body[class*="post-type-archive-cpl"] .cpl-archive--header .page-title,body[class*="tax-cpl_"] .cpl-archive--header .page-title{margin:0;color:var(--e-global-color-kvsurface);font-weight:800}
.cpl-archive--item-switcher{display:inline-flex;align-items:center;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--e-global-color-kvsurface)!important;text-decoration:none;border:1.5px solid rgba(255,255,255,.5);border-radius:12px;padding:.78rem 1.2rem;transition:background .18s}
.cpl-archive--item-switcher:hover{background:rgba(255,255,255,.12)}
/* series grid: V3 cards (3/2/1 columns) */
.cpl-archive--item-type .cpl-archive--list{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:1024px){.cpl-archive--item-type .cpl-archive--list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:767px){.cpl-archive--item-type .cpl-archive--list{grid-template-columns:1fr}}
.cpl-list-type{background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:24px;overflow:hidden;box-shadow:0 2px 12px rgba(30,40,34,.06);transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s;cursor:pointer;height:100%}
.cpl-list-type:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 28px 64px rgba(24,34,28,.22)}
.cpl-list-type--thumb--canvas img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.cpl-list-type--details{padding:20px 24px 24px}
.cpl-list-type--title{margin:0;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:1.15rem;letter-spacing:-.005em}
.cpl-list-type--title a{color:var(--e-global-color-kvdark);text-decoration:none}
/* the plugin caps its search wrapper at 12rem and clips — widen the wrapper itself */
.cpl-filter--search{max-width:340px!important;flex:0 0 auto!important;overflow:visible}
/* series cards: title area fills the card (kills the plugin's gray strip + stranded white gap) */
.cpl-list-type{display:flex;flex-direction:column}
.cpl-list-type--details{background:transparent;flex:1}

/* --- CP singles (series overview + message page): dark hero band treatment --- */
/* quiet text link (Matt 2026-07-04: must not read as another eyebrow) — soft white,
   sentence case, body font; arrow nudges left on hover */
.cpl-single-type--back,.cpl-single--back{display:block;background:var(--e-global-color-kvdark);margin:0 calc(50% - 50vw);padding:2.5rem var(--kv-cp-gutter,44px) 0;color:rgba(255,255,255,.68)!important;font-family:var(--e-global-typography-text-font-family),sans-serif;font-weight:600;font-size:.92rem;letter-spacing:0;text-transform:none;text-decoration:none!important;transition:color .18s}
.cpl-single-type--back:before,.cpl-single--back:before{display:inline-block;transition:transform .18s}
.cpl-single-type--back:hover,.cpl-single--back:hover{color:#fff!important}
.cpl-single-type--back:hover:before,.cpl-single--back:hover:before{transform:translateX(-3px)}
/* standalone message view (seriesless fallback): band flows into the footer, no dead gap */
body.single-cpl_item .cpl-single-item{margin-bottom:0}
body.single-cpl_item .cpl-pg-template{padding-bottom:0;margin-bottom:0}
.cpl-single-type--container,.cpl-single-item{margin:0 calc(50% - 50vw) 3.5rem;padding:2.25rem var(--kv-cp-gutter,44px) 5rem;background:linear-gradient(rgba(34,48,41,.94),rgba(34,48,41,.94)),url("https://kingsviewchurch.com/wp-content/uploads/2026/07/Circle-Logo-White-Cropped-V1-1.webp") right -80px center/auto 160% no-repeat,var(--e-global-color-kvdark)}
/* series overview band layout */
.cpl-single-type--container{display:flex;gap:48px;align-items:center;flex-wrap:wrap}
.cpl-single-type--media{flex:0 1 46%;min-width:300px}
.cpl-single-type--media img{display:block;width:100%;border-radius:24px;box-shadow:0 36px 80px rgba(24,34,28,.16)}
.cpl-single-type--content{flex:1 1 300px}
.cpl-single-type--title,.cpl-single-type--title h1{color:var(--e-global-color-kvsurface);margin:0}
.cpl-single-type--desc{color:var(--e-global-color-kvsurface2)}
.cpl-single-type--container .cpl-meta,.cpl-single-type--container .cpl-meta a{color:var(--e-global-color-kvpeach)}
/* message band layout */
.cpl-single-item .cpl-columns{display:flex;gap:48px;align-items:flex-start;flex-wrap:wrap}
.cpl-single-item--details{flex:1 1 360px;color:var(--e-global-color-kvsurface2)}
.cpl-single-item--media{flex:1 1 460px}
.cpl-single-item--media img,.cpl-single-item--media iframe,.cpl-single-item--media video{display:block;width:100%;border-radius:24px}
.cpl-single-item--details h1,.cpl-single-item--title,.cpl-single-item--title h1{color:var(--e-global-color-kvsurface);margin-top:0}
/* band declutter (Matt 2026-07-04): the title names the passage — drop the scripture
   chip from the band meta (stays in the list cards + info row), and size the title
   below full page-hero scale */
.cpl-single-item .cpl-meta--scripture{display:none}
.cpl-single-item--details h1{font-size:clamp(2.1rem,4.2vw,3.1rem);line-height:1.08;margin-bottom:.35em}
.cpl-single-item .cpl-meta,.cpl-single-item .cpl-info,.cpl-single-item .cpl-meta a,.cpl-single-item .cpl-info a{color:var(--e-global-color-kvpeach)}
.cpl-single-item .cpl-button{background:var(--e-global-color-kvsurface)!important;color:var(--e-global-color-kvdark)!important;border-color:var(--e-global-color-kvsurface)!important}
.cpl-single-item .cpl-button:hover{background:var(--e-global-color-secondary)!important;color:#fff!important}
/* the message list below both singles */
.cpl-single-type--items-title{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:800;font-size:1.5rem;letter-spacing:-.01em;text-transform:uppercase;color:var(--e-global-color-kvdark);margin:0 0 24px}
/* pagination chips (singles + archives); the plugin also sets a 32px flex gap on the
   row itself — tightened to 8px (chips carry no margin so the gap is the only spacing) */
.cp-pg-template .pagination,.cp-pg-template .nav-links,.cpl-pg-template .pagination{gap:8px}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 14px;margin:0;background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:10px;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.85rem;color:var(--e-global-color-kvdark);text-decoration:none;text-transform:uppercase}
.pagination .page-numbers.current{background:var(--e-global-color-kvdark);color:#fff;border-color:var(--e-global-color-kvdark)}
.pagination .page-numbers:hover:not(.current){border-color:var(--e-global-color-kvdark)}
.cpl-single-type--items--pagination{margin-top:32px}

/* tighter desktop list rhythm (Matt 2026-07-04): the plugin spaces list cards 32px apart */
@media(min-width:880px){.cpl-list-item{margin-top:18px}}

/* nested-accordion open item reads as ONE card (Matt 2026-07-05): the widget rounds and
   borders the title on its own, so the open state showed two stacked boxes; square the
   open title's bottom and continue the card border around the content instead */
.elementor-widget-n-accordion details[open] > .e-n-accordion-item-title{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:0}
.elementor-widget-n-accordion details[open] > .e-con{border:1px solid var(--e-global-color-kvline);border-top:0;border-radius:0 0 16px 16px;margin-top:-1px}

/* subscribe strip below the message band (printed by the kv-cp-subscribe ASE snippet;
   sits in the band's 3.5rem bottom-margin gap, above "Messages: N") */
.kv-subscribe-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-1.25rem 0 2.5rem}
.kv-subscribe-label{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--e-global-color-kvmuted);margin-right:4px}
.kv-sub-chip{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 15px;background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:12px;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--e-global-color-kvdark)!important;text-decoration:none!important;transition:border-color .18s,transform .18s}
.kv-sub-chip:hover{border-color:var(--e-global-color-kvdark);transform:translateY(-2px)}
.kv-sub-chip svg{width:15px;height:15px;fill:currentColor;flex:0 0 auto}
.kv-sub-chip--yt svg{fill:#FF0000}
.kv-sub-chip--sp svg{fill:#1DB954}
.kv-sub-chip--ap svg{fill:#8E4EC6}

/* --- CP media player (2026-07-04): the theme applies the kit's global button style to
   raw <button>s, ballooning the player's MUI icon buttons into dark 78x55 pills (and
   overflowing the phone PIP bar) — reset them inside player surfaces only */
.itemPlayer__video button,.itemPlayer__controlsWrapper button,.persistentPlayer__root button,.cpl-player-controls-base button{background:transparent;padding:4px;border:0;min-width:0;box-shadow:none}
/* PIP close: was a kvdark dot with a kvdark glyph floating OUTSIDE the frame (clipped on
   phones); now a white chip pinned inside the video's top-right corner */
.persistentPlayer__mode__video .time-controls-row .action-buttons{top:10px;right:10px;transform:none;z-index:40}
.persistentPlayer__controls .time-controls-row .action-buttons .close-button{background:#fff;width:32px;height:32px;padding:4px;border-radius:50%;box-shadow:0 6px 18px rgba(0,0,0,.35);transition:transform .15s}
.persistentPlayer__controls .time-controls-row .action-buttons .close-button:hover{background:#fff;transform:scale(1.08)}
.persistentPlayer__controls .time-controls-row .action-buttons .close-button svg{color:var(--e-global-color-kvdark);font-size:22px}

/* --- CP polish pass: play chip on artwork + mobile cleanup --- */
/* play overlay on the message artwork: white chip so it reads on dark art.
   Scoped to the PlayCircleOutline overlay icon ONLY — the video player mounts its
   controls (pause/seek/fullscreen/pip, all .MuiSvgIcon-root) inside the same
   featureImage box, and a broad .elementor-kit-7 blew them up to 64px chips */
.cpl-single-item--media .itemDetail__featureImage{border-radius:24px;overflow:hidden}
.cpl-single-item--media .itemDetail__featureImage svg[data-testid="PlayCircleOutlineIcon"]{width:64px;height:64px;color:var(--e-global-color-primary);background:#fff;border-radius:50%;box-shadow:0 18px 44px rgba(0,0,0,.4);filter:none!important;transition:transform .18s ease}
.cpl-single-item--media .itemDetail__featureImage .itemDetail__audio:hover svg[data-testid="PlayCircleOutlineIcon"]{transform:scale(1.08)}
/* message band on small screens: tighter rhythm, peach title bar, one-row actions */
@media(max-width:879.98px){
.cpl-single-type--back,.cpl-single--back{padding-top:2rem}
.cpl-single-type--container,.cpl-single-item{padding-top:1.75rem;padding-bottom:3rem;margin-bottom:2.5rem}
.cpl-single-item .cpl-columns,.cpl-single-type--container{gap:28px}
.cpl-single-item--title:after{background:var(--e-global-color-kvpeach)}
.cpl-single-item .itemDetail__actions{display:flex;align-items:stretch;gap:10px;margin:14px 0 0}
.cpl-single-item .itemDetail__actions>*{margin:0;flex:1 1 auto}
.cpl-single-item .itemDetail__actions .itemDetail__share{flex:0 0 auto}
.cpl-single-item .itemDetail__actions button{width:100%;height:100%}
}
/* list cards on phones: actions stay inside the card as round chips, date restored */
@media(max-width:767.98px){
.cpl-list-item{border-radius:18px}
/* the React actions root is display:block and stretches — flex it so the chips center vertically */
.cpl-list-item .cpl-item--actions{display:flex;align-items:center}
.cpl-list-item .cpl-list-item--actions{padding:8px 10px 8px 4px;height:auto}
/* the chips stack in a column here; wrap at two so a third one (Read) forms a second
   column instead of making those cards half again as tall as the rest of the list */
.cpl-list-item .cpl-list-item--actions .cpl-list-item--actions--buttons{gap:6px;flex-wrap:wrap;max-height:82px;align-content:flex-start}
/* :is(button,a) — Watch/Listen are <button>s, the injected Read link is an <a>;
   keeping the element in the .elementor-kit-7 preserves the specificity that beats the plugin */
.cpl-list-item .cpl-list-item--actions .cpl-list-item--actions--buttons :is(button,a).cpl-button{width:38px;height:38px;min-width:0;padding:0;border-radius:50%;justify-content:center}
.cpl-list-item .cpl-list-item--actions .cpl-list-item--actions--buttons :is(button,a).cpl-button svg{font-size:17px}
.cpl-list-item .cpl-list-item--actions .cpl-list-item--actions--buttons :is(button,a).cpl-button--outlined{background:transparent;border:1.5px solid var(--e-global-color-kvline);color:var(--e-global-color-kvdark)}
/* the round chips have no room for a label */
.cpl-list-item .cpl-list-item--actions .cpl-list-item--actions--buttons .kv-action-read span{display:none}
.cpl-list-item .cpl-list-item--actions .cpl-list-item--actions--buttons .kv-action-read svg{margin:0;float:none}
/* tight text block: centered column, no space-evenly spread, no pushed-down date */
.cpl-list-item--details,.cpl-list-item .cpl-list-item--details{justify-content:center;gap:3px}
.cpl-list-item h3.cpl-list-item--title{margin:0;line-height:1.15;font-size:17px}
.cpl-list-item .cpl-item--info{margin:0}
.cpl-list-item .cpl-meta{display:flex;margin:0;padding-top:0}
.cpl-list-item .cpl-meta>*{display:none}
.cpl-list-item .cpl-meta>*:first-child{display:flex}
.cpl-list-item .cpl-meta>*:nth-child(2){display:none}
.cpl-list-item .cpl-meta,.cpl-list-item .cpl-info{font-size:10.5px;line-height:1.2}
.cpl-list-item .cpl-meta>*,.cpl-list-item .cpl-info>*{min-height:0}
.cpl-list-item .cpl-meta .material-icons-outlined,.cpl-list-item .cpl-info .material-icons-outlined{font-size:11px;line-height:1;margin-right:5px;float:none}
/* filter bar: FILTER + search stack full-width (search otherwise wraps right-aligned) */
.cpl-filter--form{gap:12px}
.cpl-filter--toggle{width:100%}
.cpl-filter--toggle--button.cpl-button{width:100%;justify-content:center}
.cpl-filter--search{width:100%;max-width:100%!important;margin-left:0}
.cpl-filter--search--box{min-width:0;width:100%}
}

/* ==== PCO integrations (2026-07-06): The Events Calendar views + CP Groups ========
   Live PCO data surfaces: /events/ (TEC v2 list/month/day views), /event/<slug>/,
   /groups/ (CP Groups archive + modal + singles). Heroes/band markup comes from the
   "Kingsview PCO Sync Fixes" ASE snippet; everything degrades cleanly without it. */

/* shared dark hero for plugin-rendered pages (same language as the sermon bands) */
.kv-plugin-hero{margin:0 calc(50% - 50vw) 2.6rem;padding:4.6rem var(--kv-plugin-gutter,max(2rem,calc(50vw - 610px))) 4.2rem;background:linear-gradient(rgba(34,48,41,.94),rgba(34,48,41,.94)),url("https://kingsviewchurch.com/wp-content/uploads/2026/07/Circle-Logo-White-Cropped-V1-1.webp") right -80px center/auto 160% no-repeat,var(--e-global-color-kvdark)}
@media(max-width:879.98px){.kv-plugin-hero{padding-top:3.4rem;padding-bottom:3.2rem;margin-bottom:2rem}}
.kv-plugin-hero--inner{display:flex;flex-direction:column;gap:10px;max-width:1220px;margin:0 auto}
.kv-plugin-hero--eyebrow{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--e-global-color-kvpeach)}
.kv-plugin-hero--eyebrow::before{content:"";display:inline-block;width:1.7rem;height:2px;margin-right:.6rem;vertical-align:middle;background:currentColor}
.kv-plugin-hero h1{margin:0;font-family:var(--e-global-typography-secondary-font-family),sans-serif;font-weight:300;font-size:clamp(2.2rem,4.6vw,3.3rem);line-height:1.05;text-transform:uppercase;color:var(--e-global-color-kvsurface)}
.kv-plugin-hero h1 strong{font-weight:900}
.kv-plugin-hero--lead{margin:2px 0 0;max-width:640px;font-family:var(--e-global-typography-text-font-family),sans-serif;font-size:1rem;line-height:1.7;color:var(--e-global-color-kvsurface2)}
/* the snippet hero supersedes a plugin-rendered page title sitting right after it */
.kv-plugin-hero + .page-title{display:none}

/* mailing-list band under the events views (snippet markup) */
.kv-plugin-band{padding:0 max(2rem,calc(50vw - 610px));margin:64px 0 84px}
.kv-plugin-band--inner{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:1.6rem 2.4rem;flex-wrap:wrap;max-width:1220px;margin:0 auto;padding:clamp(2.2rem,4vw,3rem) clamp(1.6rem,3.4vw,2.8rem);border-radius:30px;background:var(--e-global-color-kvdark)}
.kv-plugin-band--inner::after{content:"";position:absolute;right:-50px;bottom:-60px;width:300px;height:300px;background:url("https://kingsviewchurch.com/wp-content/uploads/2026/07/kingsview-icon-white.webp") center/contain no-repeat;opacity:.08;pointer-events:none}
.kv-plugin-band--eyebrow{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--e-global-color-kvpeach)}
.kv-plugin-band h2{margin:.35rem 0 .4rem;font-family:var(--e-global-typography-secondary-font-family),sans-serif;font-weight:300;font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:1.1;text-transform:uppercase;color:var(--e-global-color-kvsurface)}
.kv-plugin-band h2 strong{font-weight:900}
.kv-plugin-band p{margin:0;color:#A4AAA2;font-size:.98rem}
.kv-plugin-band--actions{position:relative;z-index:1;display:flex;gap:12px;flex-wrap:wrap}
.kv-plugin-btn{display:inline-flex;align-items:center;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;padding:.95rem 1.5rem;border-radius:12px;text-decoration:none;transition:background .18s,color .18s,border-color .18s}
.kv-plugin-btn--light{background:#fff;color:var(--e-global-color-kvdark)}
.kv-plugin-btn--light:hover{background:var(--e-global-color-kvsurface2);color:var(--e-global-color-kvdark)}
.kv-plugin-btn--ghost{border:1.5px solid rgba(255,255,255,.4);color:#fff}
.kv-plugin-btn--ghost:hover{background:rgba(255,255,255,.12);color:#fff}

/* ---- The Events Calendar: kit variables + cream canvas -------------------------- */
body[class*="post-type-archive-tribe_events"],body.single-tribe_events,body[class*="tax-tribe_events"]{background:var(--e-global-color-kvcream)}
.tribe-common{--tec-font-family-sans-serif:var(--e-global-typography-text-font-family),sans-serif;--tec-color-accent-primary:var(--e-global-color-primary);--tec-color-text-primary:var(--e-global-color-kvdark);--tec-color-text-secondary:var(--e-global-color-kvmuted);--tec-color-border-default:var(--e-global-color-kvline);--tec-color-border-secondary:var(--e-global-color-kvline);--tec-color-button-primary:var(--e-global-color-kvdark);--tec-color-button-primary-hover:var(--e-global-color-primary);--tec-color-background:transparent}
.tribe-common .tribe-common-l-container{max-width:1220px}
.tribe-events .tribe-events-l-container{padding-top:24px!important;min-height:0}
/* events bar: white card row (search + find events + view switcher) */
.tribe-events-c-events-bar{background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:16px;box-shadow:0 2px 12px rgba(30,40,34,.06);padding:8px}
.tribe-events-c-events-bar .tribe-events-c-search__input{font-family:var(--e-global-typography-text-font-family),sans-serif;background:transparent}
.tribe-events-c-search__button,.tribe-events-c-search__button:focus{background:var(--e-global-color-kvdark);border-radius:12px;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}
.tribe-events-c-search__button:hover{background:var(--e-global-color-primary)}
.tribe-events-c-view-.elementor-kit-7__list-item-text,.tribe-events-c-top-bar__datepicker-button,.tribe-events-c-top-bar__today-button{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700}
.tribe-events-c-top-bar__datepicker-button{color:var(--e-global-color-kvdark)}
/* list rows -> V3 event cards: dark date chip + white card */
.tribe-events-calendar-list__event-row{margin-top:20px}
.tribe-events-calendar-list__event-date-tag{flex:0 0 96px}
.tribe-events-calendar-list__event-date-tag-datetime{display:flex;flex-direction:column;align-items:center;justify-content:center;width:84px;height:84px;border-radius:20px;background:var(--e-global-color-kvdark);line-height:1}
.tribe-events-calendar-list__event-date-tag-weekday{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--e-global-color-kvpeach)}
.tribe-events-calendar-list__event-date-tag-daynum{font-family:var(--e-global-typography-secondary-font-family),sans-serif;font-weight:800;font-size:1.9rem;margin-top:.25rem;color:#fff}
.tribe-events-calendar-list__event-wrapper{flex:1}
.tribe-events-calendar-list__event{background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:22px;box-shadow:0 2px 12px rgba(30,40,34,.06);padding:1.15rem 1.35rem;transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s}
.tribe-events-calendar-list__event:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(24,34,28,.14)}
.tribe-events-calendar-list__event-title{margin:0}
.tribe-events-calendar-list__event-title-link{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:800;font-size:1.12rem;color:var(--e-global-color-kvdark);text-decoration:none;border:0}
.tribe-events-calendar-list__event-title-link:hover,.tribe-events-calendar-list__event-title-link:focus{color:var(--e-global-color-primary);border:0}
.tribe-events-calendar-list__event-datetime-wrapper{margin-top:.45rem;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--e-global-color-kvmuted)}
.tribe-events-calendar-list__event-description{margin-top:.5rem;font-size:.92rem;line-height:1.6;color:var(--e-global-color-kvbodysoft)}
.tribe-events-calendar-list__event-description p{margin:0}
.tribe-events-calendar-list__event-featured-image-wrapper{border-radius:14px;overflow:hidden;margin-top:.2rem}
.tribe-events-calendar-list__month-separator{align-items:center}
.tribe-events-calendar-list__month-separator-text{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--e-global-color-primary)}
/* pagination + subscribe row */
.tribe-events-c-nav__list{align-items:center}
.tribe-events-c-nav__prev,.tribe-events-c-nav__next,.tribe-events-c-nav__today{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.8rem}
.tribe-events-c-subscribe-dropdown__button{border-radius:12px}
.tribe-events-c-subscribe-dropdown__button-text{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.78rem}
/* month view: light pass (fonts/accents come from the vars above) */
.tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date{color:var(--e-global-color-primary)}
.tribe-events-calendar-month__calendar-event-datetime{font-family:var(--e-global-typography-primary-font-family),sans-serif}
/* single event */
.tribe-events-single{max-width:1220px;margin:0 auto}
.tribe-events-back a{font-family:var(--e-global-typography-text-font-family),sans-serif;font-weight:600;font-size:.92rem;color:var(--e-global-color-kvterra600);text-decoration:none}
.tribe-events-back a:hover{color:var(--e-global-color-secondary)}
.tribe-events-single-event-title{font-family:var(--e-global-typography-secondary-font-family),sans-serif;font-weight:800;text-transform:uppercase;font-size:clamp(2rem,4vw,2.9rem);line-height:1.05;color:var(--e-global-color-kvdark)}
.tribe-events-schedule .tribe-events-schedule__datetime{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;letter-spacing:.05em;text-transform:uppercase;font-size:.85rem;color:var(--e-global-color-kvmuted)}
.tribe-events-single-section.tribe-events-event-meta{background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:22px;padding:1.4rem 1.6rem;font-family:var(--e-global-typography-text-font-family),sans-serif}
.tribe-events-event-meta .tribe-events-meta-group .tribe-events-single-section-title{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:800;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--e-global-color-primary)}
.tribe-events-c-subscribe-dropdown__container{margin-top:1rem}
.tribe-events-single .tribe-events-nav-pagination a{color:var(--e-global-color-kvmuted);text-decoration:none;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.85rem}
.tribe-events-single .tribe-events-nav-pagination a:hover{color:var(--e-global-color-primary)}
/* register button (enabled by the snippet; links the PCO registration page) */
.cp-sync--register-cont .tribe-common-c-btn,.cp-sync--register-cont .tribe-common-c-btn:focus{background:var(--e-global-color-secondary);border-radius:12px;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;padding:.95rem 1.5rem;width:auto}
.cp-sync--register-cont .tribe-common-c-btn:hover{background:var(--e-global-color-kvterra600)}

/* ---- CP Groups: archive + cards + modal + singles -------------------------------- */
body.post-type-archive-cp_group,body.single-cp_group,body[class*="tax-cp_group"]{background:var(--e-global-color-kvcream)}
.cp-groups-archive{max-width:1220px;margin:0 auto 84px;padding:0 2rem}
/* interim page-title band (until the snippet hero takes over, then it hides itself) */
.cp-groups-archive .page-title{margin:0 calc(50% - 50vw) 2.6rem;padding:4.6rem max(2rem,calc(50vw - 610px)) 4.2rem;background:linear-gradient(rgba(34,48,41,.94),rgba(34,48,41,.94)),url("https://kingsviewchurch.com/wp-content/uploads/2026/07/Circle-Logo-White-Cropped-V1-1.webp") right -80px center/auto 160% no-repeat,var(--e-global-color-kvdark);color:var(--e-global-color-kvsurface);font-weight:800}
/* filter sidebar -> top bar (V3 shows filters as a row above the list) */
.cp-groups-archive--container{display:block}
.cp-groups-archive--container--filters{margin-bottom:6px}
.cp-groups-filter--form{display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:16px;box-shadow:0 2px 12px rgba(30,40,34,.06);padding:16px 18px}
.cp-groups-filter legend{display:none}
.cp-groups-filter--toggle{display:none}
.cp-groups-filter--facet{margin:0}
.cp-groups-filter--search--box{display:flex;align-items:center;flex-direction:row-reverse;background:var(--e-global-color-kvsurface);border:1.5px solid var(--e-global-color-kvline);border-radius:12px;height:48px;padding:0 10px;min-width:280px}
.cp-groups-filter--search--box button[type=submit]{background:transparent;border:0;padding:0 4px;display:flex;align-items:center;cursor:pointer}
.cp-groups-filter--search--box button[type=submit] .material-icons-outlined{color:var(--e-global-color-kvmuted);font-size:20px}
.cp-groups-filter--search--box input[type=text]{border:0;outline:0;background:transparent;height:100%;width:100%;font-family:var(--e-global-typography-text-font-family),sans-serif;font-size:.95rem;color:var(--e-global-color-text);padding:0 8px}
.cp-groups-filter--has-dropdown{position:relative}
.cp-groups-filter--dropdown-button{display:inline-flex;align-items:center;height:48px;padding:0 18px;background:#fff;border:1.5px solid var(--e-global-color-kvline);border-radius:12px;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--e-global-color-kvdark);text-decoration:none}
.cp-groups-filter--dropdown-button:hover{border-color:var(--e-global-color-kvmuted);color:var(--e-global-color-kvdark)}
.cp-groups-filter--dropdown{background:#fff;border:1px solid var(--e-global-color-kvline);border-radius:14px;box-shadow:0 18px 44px rgba(24,34,28,.16);padding:14px 16px;min-width:230px;z-index:40}
.cp-groups-filter--dropdown label{display:flex;align-items:center;gap:8px;font-family:var(--e-global-typography-text-font-family),sans-serif;font-size:.93rem;color:var(--e-global-color-text);padding:4px 0}
.cp-groups-filter--form > label,.cp-groups-filter--facet > label{display:inline-flex;align-items:center;gap:8px;font-family:var(--e-global-typography-text-font-family),sans-serif;font-size:.9rem;color:var(--e-global-color-text)}
.cp-groups-filter input[type=checkbox]{accent-color:var(--e-global-color-primary)}
/* group cards */
.cp-groups-archive--list--item{margin-top:16px}
/* the plugin gives every card its own 32px bottom margin INSIDE the wrapper; the
   wrapper margin is the single source of rhythm */
.cp-group-item{margin-bottom:0!important}
.cp-group-item{display:flex;background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:22px;overflow:hidden;box-shadow:0 2px 12px rgba(30,40,34,.06);transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s}
.cp-group-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(24,34,28,.14)}
.cp-group-item--thumb{flex:0 0 280px;min-height:100%}
.cp-group-item--thumb--canvas{display:block;height:100%}
.cp-group-item--thumb img{display:block;width:100%;height:100%;object-fit:cover}
.cp-group-item--details{flex:1;padding:22px 26px;display:flex;flex-direction:column;gap:8px}
.cp-group-item--categories{display:flex;flex-wrap:wrap;gap:6px}
.cp-group-item--categories .cp-button{background:var(--e-global-color-kvpine050);color:var(--e-global-color-primary);border:0;border-radius:999px;padding:.32rem .7rem;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;min-height:0;line-height:1.2}
.cp-group-item--categories .cp-button.is-transparent{background:transparent;border:1px solid var(--e-global-color-kvline);color:var(--e-global-color-kvmuted)}
.cp-group-item--title{margin:0;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:800;font-size:1.28rem;letter-spacing:-.005em}
.cp-group-item--title a{color:var(--e-global-color-kvdark);text-decoration:none}
.cp-group-item--title a:hover{color:var(--e-global-color-primary)}
.cp-group-item--meta{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--e-global-color-kvmuted)}
.cp-group-item--meta > div{display:flex;align-items:center;gap:6px}
.cp-group-item--meta .material-icons-outlined,.cp-group-item--meta svg{font-size:15px;width:15px;height:15px;color:var(--e-global-color-primary);fill:var(--e-global-color-primary)}
.cp-group-item--content{font-size:.94rem;line-height:1.62;color:var(--e-global-color-kvbodysoft)}
.cp-group-item--attributes{display:flex;flex-wrap:wrap;gap:6px 14px;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--e-global-color-kvmuted)}
.cp-group-item--attributes span{display:inline-flex;align-items:center;gap:5px}
.cp-group-item--attributes .material-icons-outlined,.cp-group-item--attributes svg{font-size:15px;width:15px;height:15px}
.cp-group-item--attributes--is-full{color:var(--e-global-color-kvterra600)}
/* modal + single group */
.cp-group-modal{background:var(--e-global-color-kvcream);border-radius:24px;max-width:760px;margin:0 auto;overflow:hidden}
.cp-group-single--thumb img{display:block;width:100%;max-height:340px;object-fit:cover}
.cp-group-single--details{padding:26px 30px 30px;display:flex;flex-direction:column;gap:10px}
.cp-group-single--categories{display:flex;flex-wrap:wrap;gap:6px}
.cp-group-single--categories .cp-button{background:var(--e-global-color-kvpine050);color:var(--e-global-color-primary);border:0;border-radius:999px;padding:.32rem .7rem;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;min-height:0;line-height:1.2}
.cp-group-single--categories .cp-button.is-transparent{background:transparent;border:1px solid var(--e-global-color-kvline);color:var(--e-global-color-kvmuted)}
.cp-group-single--title{margin:0;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:800;font-size:1.7rem;color:var(--e-global-color-kvdark)}
.cp-group-single--leader{margin:0;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--e-global-color-kvmuted)}
.cp-group-single--meta{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--e-global-color-kvmuted)}
.cp-group-single--meta > div{display:flex;align-items:center;gap:6px}
.cp-group-single--meta .material-icons-outlined,.cp-group-single--meta svg{font-size:15px;width:15px;height:15px;color:var(--e-global-color-primary);fill:var(--e-global-color-primary)}
.cp-group-single--content{font-size:.97rem;line-height:1.66;color:var(--e-global-color-kvbodysoft)}
.cp-group-single--actions{margin-top:8px;display:flex;flex-wrap:wrap;gap:10px}
.cp-group-single--actions .cp-button{background:var(--e-global-color-secondary);color:#fff;border:0;border-radius:12px;padding:.95rem 1.5rem;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.cp-group-single--actions .cp-button:hover{background:var(--e-global-color-kvterra600);color:#fff}
body.single-cp_group .cp-group-single{max-width:860px;margin:44px auto 84px;background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:24px;overflow:hidden;box-shadow:0 2px 12px rgba(30,40,34,.06)}
body.single-cp_group main{padding:0 2rem}
/* mobile: cards stack, filter fills, date chips row */
@media(max-width:767.98px){
.cp-group-item{flex-direction:column}
.cp-group-item--thumb{flex:0 0 auto}
.cp-group-item--thumb img{aspect-ratio:16/9;height:auto}
.cp-group-item--details{padding:18px 20px 20px}
.cp-groups-filter--form{padding:10px}
.cp-groups-filter--facet,.cp-groups-filter--search--box{width:100%;min-width:0}
.cp-groups-filter--dropdown-button{width:100%;justify-content:center}
.tribe-events-calendar-list__event-date-tag-datetime{width:64px;height:64px;border-radius:16px}
.tribe-events-calendar-list__event-date-tag{flex-basis:72px}
.tribe-events-calendar-list__event-date-tag-daynum{font-size:1.4rem}
.tribe-events-calendar-list__event{padding:1rem 1.1rem}
.kv-plugin-band--inner{flex-direction:column;align-items:flex-start}
}

/* PCO integrations: specificity patches (TEC component classes + plugin inline styles) */
.tribe-common .tribe-events-c-search__button,.tribe-common .tribe-events-c-search__button:focus{background-color:var(--e-global-color-kvdark)!important}
.tribe-common .tribe-events-c-search__button:hover{background-color:var(--e-global-color-primary)!important}
.tribe-events .tribe-events-calendar-list__event-date-tag-weekday{color:var(--e-global-color-kvpeach)!important;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}
.tribe-events .tribe-events-calendar-list__event-date-tag-daynum{color:#fff!important;font-family:var(--e-global-typography-secondary-font-family),sans-serif!important;font-weight:800!important;font-size:1.9rem!important;margin-top:.25rem}
/* single event: card per meta group instead of one lopsided bordered section */
.tribe-events-single-section.tribe-events-event-meta{background:transparent;border:0;padding:0}
.tribe-events-event-meta .tribe-events-meta-group{background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:18px;padding:1.2rem 1.4rem}
/* groups filter: kill the plugin's grey shell, facets inline as chips */
.cp-groups-filter{background:transparent;border:0;padding:0}
.cp-groups-archive--container--filters{background:transparent;padding:0}
.cp-groups-filter--facet{width:auto;flex:0 0 auto}
.cp-groups-filter--search{flex:0 1 300px}
.cp-groups-filter--dropdown-button{width:auto}
.cp-groups-filter--form > .cp-groups-filter--facet > label{white-space:nowrap}
/* group card thumb: the canvas carries an inline background AND an <img> — keep the img */
.cp-group-item--thumb--canvas{background:none!important}
.cp-group-item--thumb img{aspect-ratio:auto}
/* groups archive: the plugin styles these by ID / with taller specificity */
#cp-group-filters{background:transparent;padding:0;border:0}
.cp-group-item{padding:0}
.cp-group-item .cp-group-item--thumb img{height:100%!important}
@media(max-width:767.98px){.cp-group-item .cp-group-item--thumb img{height:auto!important;aspect-ratio:16/9}}
@media(max-width:767.98px){
.cp-group-item--thumb{min-height:0}
.cp-group-item--thumb--canvas{height:auto}
}
.cp-group-item--thumb--canvas{padding:0!important}
.cp-group-item--details{min-width:0}
.cp-group-item--title{white-space:normal!important;overflow-wrap:anywhere}
.cp-group-item--meta,.cp-group-item--meta > div{min-width:0}
/* phones: the list card's datetime line already carries the date; drop the chip (it
   overlays the card at TEC's stacked mobile layout) */
@media(max-width:767.98px){.tribe-events .tribe-events-calendar-list__event-date-tag{display:none}}

/* ---- /events/ page: live V3 event cards from the [kv_events] shortcode ----------- */
/* until the ASE snippet registers the shortcode, hide the widget so the raw
   shortcode text never renders */
/* the :has() auto-hide guards are FRONTEND-ONLY: inside the Elementor editor the
   shortcodes have no post context and output nothing, which made these widgets
   (and the signup note) unselectable and invisible on the canvas (Matt 2026-07-08) */
body:not(.elementor-editor-active):not(.kv-elementor-editing) .kv-events-embed:not(:has(.kv-events-grid,.kv-events-empty)){display:none}
.kv-events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:1024px){.kv-events-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:767.98px){.kv-events-grid{grid-template-columns:1fr}}
.kv-event-card{display:flex;align-items:stretch;background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:24px;overflow:hidden;box-shadow:0 2px 12px rgba(30,40,34,.06);text-decoration:none;transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s}
.kv-event-card:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 22px 48px rgba(24,34,28,.18)}
.kv-event-date{flex:0 0 92px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;padding:1rem .5rem;line-height:1;background:var(--e-global-color-kvdark)}
.kv-event-month{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--e-global-color-kvpeach)}
.kv-event-day{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:800;font-size:2.1rem;color:#fff}
.kv-event-card--body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;padding:1.2rem 1.3rem}
.kv-event-card--body h3{margin:0;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:1.08rem;line-height:1.2;letter-spacing:-.005em;color:var(--e-global-color-kvdark)}
.kv-event-meta{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.73rem;letter-spacing:.05em;text-transform:uppercase;color:var(--e-global-color-kvmuted)}
/* uniform cards (Matt 2026-07-07): no per-event descriptions on the /events/ grid */
.kv-event-card--body p{display:none}
.kv-events-empty{font-size:1rem;color:var(--e-global-color-kvmuted)}
/* phones keep the desktop layout: chip stays a left column (Matt 2026-07-07),
   just slightly narrower and tighter now that cards carry no excerpt */
@media(max-width:767.98px){
.kv-events-grid{gap:14px}
.kv-event-date{flex:0 0 72px;padding:.8rem .4rem}
.kv-event-day{font-size:1.55rem}
.kv-event-card--body{padding:.95rem 1.05rem;gap:5px}
.kv-event-card--body h3{font-size:1rem}
.kv-event-meta{font-size:.68rem}
}

/* ---- single event: Elementor theme-builder template (KV Event Single, 2747) ------ */
/* shortcode widgets stay hidden until the ASE snippet provides their output */
body:not(.elementor-editor-active):not(.kv-elementor-editing) .kv-evs:not(:has(.kv-ev)){display:none}
.kv-ev-datetime{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;color:var(--e-global-color-kvmuted)}
.kv-ev-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.kv-ev-btn{display:inline-flex;align-items:center;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;padding:.9rem 1.4rem;border-radius:12px;text-decoration:none;transition:background .18s,color .18s,border-color .18s}
.kv-ev-btn--accent{background:var(--e-global-color-secondary);color:#fff}
.kv-ev-btn--accent:hover{background:var(--e-global-color-kvterra600);color:#fff}
.kv-ev-btn--outline{border:1.5px solid var(--e-global-color-kvline);color:var(--e-global-color-kvdark);background:transparent}
.kv-ev-btn--outline:hover{border-color:var(--e-global-color-kvmuted);color:var(--e-global-color-kvdark)}
.kv-ev-img img{width:100%;max-height:460px;object-fit:cover;border-radius:24px;box-shadow:0 18px 44px rgba(24,34,28,.12)}
.kv-ev-content{font-size:1.02rem;line-height:1.75;color:#3E3B34}
.kv-ev-content p{margin:0 0 1em}
.kv-ev-content p:last-child{margin-bottom:0}
.kv-ev-content a{color:var(--e-global-color-kvpine600)}
.kv-ev-venue{display:flex;flex-direction:column;gap:4px;background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:22px;box-shadow:0 2px 12px rgba(30,40,34,.06);padding:1.4rem 1.6rem;max-width:560px}
.kv-ev-venue--label{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--e-global-color-secondary)}
.kv-ev-venue strong{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:800;font-size:1.06rem;color:var(--e-global-color-kvdark)}
.kv-ev-venue--addr{font-size:.95rem;color:var(--e-global-color-kvbodysoft)}
.kv-ev-venue--dir{margin-top:8px;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--e-global-color-kvterra600);text-decoration:none}
.kv-ev-venue--dir:hover{color:var(--e-global-color-secondary)}
.kv-ev-back a{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--e-global-color-kvterra600);text-decoration:none;transition:color .18s}
.kv-ev-back a:hover{color:var(--e-global-color-secondary)}
/* the KV Event Single template supplies its own layout: neutralize TEC's constrained
   page wrapper (1048px + padding) so template bands run full-bleed */
body.single-tribe_events #tribe-events-pg-template{max-width:none;width:100%;margin:0;padding:0}
/* the kit's global link color (.elementor-kit-7 a) outranks the button class: force white */
a.kv-ev-btn--accent,a.kv-ev-btn--accent:hover,a.kv-ev-btn--accent:focus,a.kv-ev-btn--accent:visited{color:#fff!important}

/* ---- /calendar/ refinement (Matt 2026-07-07): month + day views, datepicker ------- */
/* month desktop: white cells on kvline grid, quiet past days, pine today */
.tribe-events-calendar-month__header-column-title{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--e-global-color-kvmuted)}
.tribe-events-calendar-month__body{background:var(--e-global-color-kvsurface);border-radius:18px;overflow:hidden;border:1px solid var(--e-global-color-kvline)}
.tribe-events-calendar-month__day{background:var(--e-global-color-kvsurface)}
.tribe-events-calendar-month__day--past,.tribe-events-calendar-month__day--other-month{background:var(--e-global-color-kvcream)}
.tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date,.tribe-events-calendar-month__day--other-month .tribe-events-calendar-month__day-date{color:var(--e-global-color-kvmuted)}
.tribe-events-calendar-month__day--current{background:var(--e-global-color-kvpine050)}
.tribe-events-calendar-month__day-date,.tribe-events-calendar-month__day-date-link{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;color:var(--e-global-color-kvdark)}
.tribe-events-calendar-month__calendar-event-datetime{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.66rem;letter-spacing:.05em;text-transform:uppercase;color:var(--e-global-color-kvmuted)}
.tribe-events-calendar-month__calendar-event-title{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.84rem}
.tribe-events-calendar-month__calendar-event-title-link{color:var(--e-global-color-kvpine600);border:0}
.tribe-events-calendar-month__calendar-event-title-link:hover,.tribe-events-calendar-month__calendar-event-title-link:focus{color:var(--e-global-color-secondary);border:0}
.tribe-events-calendar-month__more-events-link{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--e-global-color-primary)}
.tribe-events-calendar-month__multiday-event-bar{background:var(--e-global-color-kvpine050);border-radius:8px}
.tribe-events-calendar-month__multiday-event-bar-title{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;color:var(--e-global-color-kvdark)}
/* month hover tooltip */
.tribe-events-tooltip-theme{background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:14px;box-shadow:0 18px 44px rgba(24,34,28,.16);font-family:var(--e-global-typography-text-font-family),sans-serif}
/* month mobile: the kit button var painted day cells dark -- reset to quiet cells */
.tribe-events-calendar-month__day-cell--mobile{background:transparent;border-radius:12px}
.tribe-events-calendar-month__day-cell--mobile:hover,.tribe-events-calendar-month__day-cell--mobile:focus{background:var(--e-global-color-kvpine050)}
.tribe-events-calendar-month__day-cell--selected,.tribe-events-calendar-month__day-cell--selected:hover,.tribe-events-calendar-month__day-cell--selected:focus{background:var(--e-global-color-primary)}
.tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__day-date{color:#fff}
.tribe-events-calendar-month__mobile-events-icon--event{background-color:var(--e-global-color-secondary)}
.tribe-events-calendar-month-mobile-events__mobile-event{background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:14px;padding:.9rem 1rem;margin-top:10px}
.tribe-events-calendar-month-mobile-events__mobile-event-datetime{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--e-global-color-kvmuted)}
.tribe-events-calendar-month-mobile-events__mobile-event-title{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.98rem}
.tribe-events-calendar-month-mobile-events__mobile-event-title-link{color:var(--e-global-color-kvdark);border:0}
.tribe-events-calendar-month-mobile-events__day-marker{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--e-global-color-primary)}
/* day view: rows as white cards, pine time separators */
.tribe-events-calendar-day__event{background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:18px;box-shadow:0 2px 12px rgba(30,40,34,.06);padding:1.1rem 1.25rem;margin-top:16px}
.tribe-events-calendar-day__event--featured::before{display:none}
.tribe-events-calendar-day__event-title{margin:0}
.tribe-events-calendar-day__event-title-link{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:800;font-size:1.08rem;color:var(--e-global-color-kvdark);text-decoration:none;border:0}
.tribe-events-calendar-day__event-title-link:hover,.tribe-events-calendar-day__event-title-link:focus{color:var(--e-global-color-primary);border:0}
.tribe-events-calendar-day__event-datetime-wrapper{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--e-global-color-kvmuted)}
.tribe-events-calendar-day__time-separator-text,.tribe-events-calendar-day__type-separator-text{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--e-global-color-primary)}
/* datepicker popover (the "July 2026" dropdown on every view) */
.tribe-events .datepicker{border:1px solid var(--e-global-color-kvline);border-radius:14px;box-shadow:0 18px 44px rgba(24,34,28,.16);font-family:var(--e-global-typography-primary-font-family),sans-serif;padding:8px}
.tribe-events .datepicker .datepicker-switch,.tribe-events .datepicker th{font-weight:700;color:var(--e-global-color-kvdark)}
.tribe-events .datepicker td.day.active,.tribe-events .datepicker td.day.active:hover{background:var(--e-global-color-primary);border-radius:9px;color:#fff}
.tribe-events .datepicker td.day:hover,.tribe-events .datepicker td.month:hover,.tribe-events .datepicker td.year:hover{background:var(--e-global-color-kvpine050);border-radius:9px}
/* calendar polish round 2 */
/* weekday letters: kill the browser's dotted abbr underline */
.tribe-events abbr,.tribe-events abbr[title]{text-decoration:none!important;border-bottom:0!important;cursor:default}
/* day view: drop TEC's timeline indent so cards read flush */
.tribe-events .tribe-events-calendar-day__event-content{margin:0!important;padding:0!important;width:100%!important;max-width:none!important}
/* mobile month cells: TEC paints them with the button var at higher specificity */
.tribe-events .tribe-events-calendar-month__day-cell--mobile{background:transparent!important}
.tribe-events .tribe-events-calendar-month__day-cell--mobile:hover,.tribe-events .tribe-events-calendar-month__day-cell--mobile:focus{background:var(--e-global-color-kvpine050)!important}
.tribe-events .tribe-events-calendar-month__day-cell--selected,.tribe-events .tribe-events-calendar-month__day-cell--selected:hover,.tribe-events .tribe-events-calendar-month__day-cell--selected:focus{background:var(--e-global-color-primary)!important}
.tribe-events .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__day-date{color:#fff!important}
.tribe-events .tribe-events-calendar-day__event{padding:1.1rem 1.25rem!important}
.tribe-events .tribe-events-calendar-day__event-details,.tribe-events .tribe-events-calendar-day__event-header{margin:0!important;padding-left:0!important}
.tribe-events .tribe-events-calendar-day__event::before,.tribe-events .tribe-events-calendar-day__event::after{content:none!important;display:none!important}
/* calendar list rows: real padding, tighter text stack, inset rounded thumb */
.tribe-events .tribe-events-calendar-list__event{padding:1.35rem 1.5rem!important;align-items:center}
.tribe-events .tribe-events-calendar-list__event-title{margin-top:4px!important}
.tribe-events .tribe-events-calendar-list__event-datetime-wrapper{margin-top:0!important}
.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper{padding:0!important;margin-left:20px;border-radius:16px;overflow:hidden;align-self:center;max-width:340px}
.tribe-events .tribe-events-calendar-list__event-featured-image{margin:0}
.tribe-events .tribe-events-calendar-list__event-featured-image img{display:block;border-radius:16px;width:100%;height:auto}
@media(max-width:767.98px){.tribe-events .tribe-events-calendar-list__event{padding:1.05rem 1.1rem!important}
.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper{margin:12px 0 0;max-width:none}}
/* month mobile day-panel cards: TEC zeroes the horizontal padding at its mobile breakpoint */
.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event{padding:.9rem 1rem!important}
/* subscribe dropdown: dark fill with white text on hover (TEC leaves the text dark) */
.tribe-events .tribe-events-c-subscribe-dropdown__button:hover,.tribe-events .tribe-events-c-subscribe-dropdown__button:focus-within{background:var(--e-global-color-kvdark)!important;border-color:var(--e-global-color-kvdark)!important}
.tribe-events .tribe-events-c-subscribe-dropdown__button:hover *,.tribe-events .tribe-events-c-subscribe-dropdown__button:focus-within *{color:#fff!important;fill:#fff!important;stroke:#fff}
/* phones: TEC drops the container side padding AND the list article is a g-row with
   negative side margins -- both together ran the cards edge to edge */
@media(max-width:767.98px){.tribe-events .tribe-common-l-container{padding-left:20px!important;padding-right:20px!important}
.tribe-events .tribe-events-calendar-list__event{margin-left:0!important;margin-right:0!important}
.tribe-events .tribe-events-calendar-day__event{margin-left:0!important;margin-right:0!important}}

/* /calendar/ ministry filter chips (markup from the snippet, under the hero) */
.kv-cal-chips{padding:26px max(2rem,calc(50vw - 610px)) 4px}
.kv-cal-chips--inner{max-width:1220px;margin:0 auto;display:flex;flex-wrap:wrap;gap:10px}
.kv-cal-chip{display:inline-flex;align-items:center;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;padding:.72rem 1.25rem;border-radius:12px;text-decoration:none;background:#fff;border:1.5px solid var(--e-global-color-kvline);color:var(--e-global-color-kvdark);transition:background .18s,color .18s,border-color .18s}
.kv-cal-chip:hover{border-color:var(--e-global-color-kvmuted);color:var(--e-global-color-kvdark)}
.kv-cal-chip.is-active,.kv-cal-chip.is-active:hover{background:var(--e-global-color-kvdark);border-color:var(--e-global-color-kvdark);color:#fff}
@media(max-width:767.98px){.kv-cal-chips{padding:20px 20px 0}.kv-cal-chip{padding:.6rem 1rem;font-size:.72rem}}
/* category views: chips + hero carry the context; hide TEC's own title + breadcrumb */
.tribe-events .tribe-events-header__title,.tribe-events .tribe-events-c-breadcrumbs{display:none!important}

/* standalone message (seriesless, body.single-cpl_item ONLY -- the nested series view
   renders as single-cpl_item_type): the tucked strip straddled the full-height band
   with a cream-tuned label. Sit it fully on the cream below the band. */
body.single-cpl_item .kv-subscribe-strip{margin:26px 0 48px}
.kv-cpl-embed{scroll-margin-top:100px}

/* ============ Church Center modal (header script js.churchcenter.com/modal/v1) ============
   The script injects a full-viewport iframe (#ChurchCenterModalIframeExistsInDOM) with
   INLINE styles + a bare backdrop div appended immediately before it; both are display-
   toggled inline, so every override needs !important and must NOT touch display/opacity.
   Restyled as a centered site-style dialog; body scroll locks while the backdrop shows
   (the :has() attribute match keys on the inline "display: block"). Phones are sent to
   a new tab by the script itself, so this only ever renders desktop/tablet.
   WIDTH HUGS THE CONTENT (Matt 2026-07-21: the wide white frame around Church
   Center's ~430px form card looked strange): the iframe interior is cross-origin
   so we can't restyle it - at ~480px Church Center serves its compact layout and
   the modal reads as ONE white card on the blurred backdrop. Their page keeps a
   blank ~48px header space at the top; --kv-cc-crop shifts the iframe up and
   clips that strip away (tune the var if their layout changes). */
iframe#ChurchCenterModalIframeExistsInDOM{--kv-cc-crop:48px;width:min(480px,calc(100vw - 32px))!important;height:calc(100vh - 80px + var(--kv-cc-crop))!important;height:calc(100dvh - 80px + var(--kv-cc-crop))!important;top:calc(40px - var(--kv-cc-crop))!important;left:50%!important;transform:translateX(-50%)!important;border-radius:24px!important;background:#fff!important;box-shadow:none!important;clip-path:inset(var(--kv-cc-crop) 0 0 0 round 24px)}
/* clip-path also clips the iframe's own shadow, so the backdrop repaints it beneath */
body > div:has(+ iframe#ChurchCenterModalIframeExistsInDOM)::after{content:"";position:fixed;top:40px;left:50%;transform:translateX(-50%);width:min(480px,calc(100vw - 32px));height:calc(100vh - 80px);height:calc(100dvh - 80px);border-radius:24px;box-shadow:0 40px 90px rgba(24,33,25,.45);pointer-events:none}
body > div:has(+ iframe#ChurchCenterModalIframeExistsInDOM){background:rgba(24,33,25,.6)!important;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
body:has(> div[style*="display: block"] + iframe#ChurchCenterModalIframeExistsInDOM){overflow:hidden}

/* ============ group landing pages + [kv_groups] cards (KV Group Single template) ============
   The single reuses the .kv-ev-* event-single styles; only group-specific bits live here. */
.kv-gr-full{display:inline-block;margin-left:10px;padding:.3rem .7rem;border-radius:999px;background:var(--e-global-color-kvaccent050);color:var(--e-global-color-kvterra600);font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;vertical-align:middle}
body:not(.elementor-editor-active):not(.kv-elementor-editing) .kv-groups-embed:not(:has(.kv-groups-grid)){display:none}
.kv-groups-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:1024px){.kv-groups-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:767.98px){.kv-groups-grid{grid-template-columns:1fr;gap:14px}}
.kv-group-card{display:flex;flex-direction:column;background:var(--e-global-color-kvsurface);border:1px solid var(--e-global-color-kvline);border-radius:24px;overflow:hidden;text-decoration:none;box-shadow:0 2px 12px rgba(30,40,34,.06);transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s}
.kv-group-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(24,34,28,.14)}
.kv-group-card--media{display:block;aspect-ratio:16/9;background:var(--e-global-color-kvpine050) center/cover no-repeat}
.kv-group-card--body{display:flex;flex-direction:column;gap:6px;padding:18px 20px 20px}
.kv-group-card--body strong{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:800;font-size:1.05rem;line-height:1.2;letter-spacing:-.005em;color:var(--e-global-color-kvdark)}
.kv-group-card:hover .kv-group-card--body strong{color:var(--e-global-color-primary)}
.kv-group-card--meta{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:600;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--e-global-color-kvmuted)}
/* /adults/groups/ directory embed: every card carries the same "Kingsview Groups" type
   pill (single PCO type today) — pure noise, hide until the church adds real types */
.kv-cpg-embed .cp-group-item--categories{display:none}
/* ministry-page events bands: hide the whole section until [kv_ministry_events]
   renders cards (snippet inactive, or no upcoming events in that category) */
body:not(.elementor-editor-active):not(.kv-elementor-editing) .kv-min-events:not(:has(.kv-events-grid)){display:none}
/* icon-only add-to-calendar chips on event singles (Google / Apple logos) */
.kv-ev-btn--icon{padding:.9rem 1.05rem}
.kv-ev-btn--icon svg{display:block}
/* group landing extras: kind pill in the meta line, Church Center note under Sign up,
   spacing between stacked label rows in the info card */
.kv-gr-kind{display:inline-block;margin-right:10px;padding:.3rem .7rem;border-radius:999px;background:var(--e-global-color-accent);color:#fff;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;vertical-align:middle}
.kv-gr-info--sep{margin-top:10px}
/* the signup note is a text widget below the actions shortcode widget: when a group
   has no Church Center page (actions widget collapses), hide the note with it */

/* groups directory filter refinement (Matt 2026-07-08): search + dropdowns share the
   top row, attribute checkboxes sit inline on their own hairlined row, active-filter
   chips become site pills, tighter card rhythm */
.cp-groups-filter--search{flex:1 1 240px}
.cp-groups-filter--search--box{min-width:0;width:100%}
.cp-groups-filter--attributes{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding-top:14px;border-top:1px solid var(--e-global-color-kvline)}
.cp-groups-filter--attributes .cp-groups-filter--facet label{white-space:nowrap}
@media(max-width:767.98px){
.cp-groups-filter--has-dropdown{flex:1 1 40%}
.cp-groups-filter--dropdown-button{width:100%;justify-content:center}
.cp-groups-filter--attributes{gap:8px 18px}
}
.cp-groups-filter--filters{display:flex;flex-wrap:wrap;gap:8px;margin:14px 2px 4px}
a.cp-groups-filter--filters--filter{display:inline-flex;align-items:center;gap:7px;padding:.5rem .95rem;background:var(--e-global-color-kvsurface);border:1.5px solid var(--e-global-color-kvline);border-radius:999px;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;color:var(--e-global-color-kvdark);text-decoration:none;transition:border-color .18s,color .18s}
a.cp-groups-filter--filters--filter::after{content:none!important}
a.cp-groups-filter--filters--filter::before{content:"×"!important;font-size:1.05rem;line-height:1;color:var(--e-global-color-kvterra600)}
a.cp-groups-filter--filters--filter:hover{border-color:var(--e-global-color-kvterra600);color:var(--e-global-color-kvterra600)}
/* chips row renders (empty) whenever the URL has any query param: only occupy space
   when it actually holds chips, so the filter-to-first-card gap stays equal to the
   card rhythm */
body:not(.elementor-editor-active):not(.kv-elementor-editing) .cp-groups-filter--filters:not(:has(a)){display:none}
/* long facet lists scroll instead of towering */
.cp-groups-filter--dropdown{max-height:340px;overflow:auto}
/* mobile: dropdown panels anchor to the form, full width, instead of overflowing the
   viewport from under their button (Matt 2026-07-08) */
@media(max-width:767.98px){
.cp-groups-filter--has-dropdown{position:static}
.cp-groups-filter--form{position:relative}
.cp-groups-filter--dropdown{left:14px!important;right:14px!important;top:auto!important;min-width:0!important;width:auto!important;margin-top:6px}
}
/* floating CTA on group/event singles: full-width frosted bar on mobile, compact
   bottom-left pill on desktop; slides away while the real button or footer is on
   screen (the snippet's observer toggles is-on) */
.kv-float-cta{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;justify-content:center;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(242,239,231,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--e-global-color-kvline);transform:translateY(110%);transition:transform .28s ease}
.kv-float-cta.is-on{transform:none}
.kv-float-cta--btn{width:100%;max-width:520px;justify-content:center;text-align:center}
@media(min-width:768px){
.kv-float-cta{left:28px;right:auto;bottom:28px;padding:0;background:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;transform:translateY(180%)}
.kv-float-cta--btn{width:auto;box-shadow:0 14px 34px rgba(24,34,28,.28)}
}
/* CP Live countdown inside the /watch/ player box: the plugin's small pill becomes
   big white Archivo numerals with peach small-cap labels on the kvdark canvas */
.kv-media-16x9 .elementor-widget-shortcode,.kv-media-16x9 .elementor-shortcode,.cp-live-container,.cp-live-countdown-container{width:100%}
.cp-live-countdown{display:flex;justify-content:center;align-items:flex-start;gap:clamp(20px,4.5vw,52px);background:none!important;border:0!important;padding:0!important;box-shadow:none!important}
.cp-live-countdown--element{display:flex;flex-direction:column;align-items:center;gap:6px;position:static!important}
.cp-live-countdown--element::before,.cp-live-countdown--element::after{content:none!important}
.cp-live-countdown--element > span:first-child{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:800;font-size:clamp(2.1rem,5vw,3.6rem);line-height:1;color:#fff;font-variant-numeric:tabular-nums;min-width:1.4ch;text-align:center}
.cp-live-countdown--element--label{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--e-global-color-kvpeach)}
/* the live embed, when Sunday comes: fill the rounded box edge to edge */
.cp-live-container iframe{display:block;width:100%;height:100%;aspect-ratio:16/9;border:0}
/* "We're live" popup (Elementor popup "KV Live Popup"): layout + chrome are NATIVE
   popup settings (width incl. mobile, position, background, close button - edit in
   Templates -> Popups). Only content-level polish lives here.
   The YouTube oEmbed iframe carries 4:3 (800x600) attributes and Elementor wraps the
   shortcode in flex-item wrappers whose content-based height collapses to 0 on mobile
   (flex min-height:auto + percentage-padding descendant). Rather than fight height
   propagation up the chain, give the PLAYER box its own 16:9 aspect-ratio and let every
   wrapper + the iframe fill it absolutely, so nothing depends on content height. */
.kv-live-popup--player{position:relative;aspect-ratio:16/9}
.kv-live-popup--player > .elementor-element,
.kv-live-popup--player .elementor-widget-container,
.kv-live-popup--player .elementor-shortcode,
.kv-live-popup--player .cp-live-container{position:absolute;inset:0;width:100%;height:100%;padding:0;margin:0}
.kv-live-popup--player .cp-live-container,
.kv-live-popup--player .cp-live-container iframe{border-radius:16px;overflow:hidden}
.kv-live-popup--player .cp-live-container iframe{position:absolute;inset:0;width:100%;height:100%}
.kv-live-popup--player .cp-live-countdown--element > span:first-child{font-size:clamp(1.6rem,3vw,2.6rem)}
.kv-live-dot{display:inline-block;width:11px;height:11px;margin-right:9px;border-radius:50%;background:#E5484D;vertical-align:middle;animation:kv-live-pulse 1.7s ease-out infinite}
@keyframes kv-live-pulse{0%{box-shadow:0 0 0 0 rgba(229,72,77,.55)}70%{box-shadow:0 0 0 11px rgba(229,72,77,0)}100%{box-shadow:0 0 0 0 rgba(229,72,77,0)}}
/* Sitewide "We're live" chip (snippet section 13, wp_footer while cp_live()->is_live()):
   a small fixed bottom-left pill that links to the YouTube live tab. Excluded on single
   event/group pages (they carry the floating signup/register CTA) and on the Watch page
   (the stream is already embedded there). */
.kv-live-chip{position:fixed;left:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:998;
  display:inline-flex;align-items:center;gap:9px;padding:11px 17px 11px 15px;border-radius:999px;
  background:rgba(34,48,41,.94);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);
  color:#fff!important;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-weight:700;
  font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;line-height:1;
  box-shadow:0 10px 30px rgba(0,0,0,.24);transform:translateY(160%);opacity:0;
  animation:kv-chip-in .55s .45s cubic-bezier(.2,.8,.2,1) forwards;transition:transform .2s ease,box-shadow .2s ease}
/* the kit's global link color (.elementor-kit-7 a) outranks the class, so force white */
.kv-live-chip:hover,.kv-live-chip:focus{color:#fff!important;transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,0,0,.3)}
.kv-live-chip .kv-live-dot{margin-right:0}
@keyframes kv-chip-in{to{transform:translateY(0);opacity:1}}
/* the chip jumps here; clear the sticky header so the player lands fully in view */
#watch-live{scroll-margin-top:110px}
/* Plan Your Visit hero "What to expect" anchor clears the sticky header the same way */
#expect{scroll-margin-top:96px}
#chapters{scroll-margin-top:96px}
@media(max-width:767px){.kv-live-chip{left:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));font-size:.72rem;padding:10px 15px 10px 13px}}
/* Spotlight Instagram feeds (.kv-ig-feed wraps the [instagram] shortcode): tiles take
   the site card radius + a gentle hover lift; the pine hover overlay comes from the
   feed settings themselves (Spotlight bgColorHover).
   No height overrides here: the phone-only collapse (50px wrapper around a 390px feed)
   was Elementor's container mobile default flex-wrap:wrap fighting the JS-grown feed;
   fixed natively with flex_wrap_mobile:nowrap on the IG containers in pages 46/47.
   Hover uses the separate translate property so it composes with any template transform
   (wave/scatter offsets) instead of clobbering it. */
.kv-ig-feed .MediaTile__root{border-radius:14px;overflow:hidden;transition:translate .25s ease,box-shadow .25s ease}
.kv-ig-feed .MediaTile__root:hover{translate:0 -3px;box-shadow:0 14px 30px rgba(24,34,28,.16)}
.kv-ig-feed .MediaThumbnail__image{border-radius:14px}
/* Alpha Leader session cards (/alphaleader/ loop grid): a session without a
   handout renders its PDF button with an empty href - hide it instead of
   showing a dead link. Buttons get real hrefs the moment the church fills the
   Notes PDF field on the session. */
.kv-alpha-card a[href=""],.kv-alpha-card .elementor-widget-button a:not([href]){display:none}
/* session cards lift on hover like the site's other tiles (translate composes
   with any transform; the video overlay's own zoom cursor still applies) */
.kv-alpha-card{transition:translate .25s ease,box-shadow .25s ease}
.kv-alpha-card:hover{translate:0 -4px;box-shadow:0 14px 30px rgba(24,34,28,.16)}
/* guided-prayer day cards (/revision/): the on-page audio player fills the card
   and picks up the brand color in browsers that theme native controls */
.kv-gp-audio{width:100%;height:44px;accent-color:var(--e-global-color-primary)}
/* ── Missions page (mission_worker loop cards) ─────────────────────────────
   The story panel is Elementor's native Off-Canvas widget inside the loop
   template (Pro 4.2 namespaces loop element ids, so each card opens its own
   panel) - no panel CSS needed here anymore. */
/* mission cards: slides fill the card width, names stay titlecase in the
   and long "More about ..." labels wrap instead of widening the card.
   The e-loop-item rule is sitewide grid hygiene: 1fr tracks are minmax(auto,1fr)
   and percentage widths are IGNORED during intrinsic sizing, so a large natural
   image (the 1600px spotlight slides) silently widens its column - min-width:0
   breaks that auto-minimum chain for every loop grid. */
.elementor-widget-loop-grid .e-loop-item{min-width:0}
.kv-mw-card{min-width:0}/* End custom CSS */