/*
 Theme Name: Divi Child - Jolly
 Theme URI:
 Description: Divi Child Theme - Jolly
 Author: Joseph Soper
 Author URI: https://soper.dev
 Template: Divi
 Version: 4.11.1
*/

/* =Theme customization starts here
------------------------------------------------------- */

/* =================================================================
   PCOC REDESIGN — Global Styles
   Design: Framer-style modern | Teal-Blue palette | Inter font
   Phase 1 — April 2026
================================================================= */

/* ---- CSS Custom Properties (Palette) ---- */
:root {
    --pcoc-deep-teal:  #1a4f6e;
    --pcoc-lake-blue:  #28a0c8;
    --pcoc-lake-glass: #6fae9b;
    --pcoc-white:      #ffffff;
    --pcoc-off-white:  #f5f7fa;
    --pcoc-charcoal:   #1e1e2e;
    --pcoc-coral:      #e8622a; /* Aurora accent (non-CTA). CTAs use --pcoc-lake-glass. */
}

/* ---- Typography — Inter ---- */
body,
.et_pb_section,
.et_pb_row,
.et_pb_module {
    font-family: 'Inter', sans-serif !important;
}
h1, h2, h3, h4, h5, h6,
.et_pb_module h1, .et_pb_module h2, .et_pb_module h3,
.et_pb_module h4, .et_pb_module h5, .et_pb_module h6 {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
}

/* ---- Homepage: kill Vanta canvas (old dark theme) ---- */
body.home canvas {
    display: none !important;
}

/* ================================================================
   PCOC HEADER — Theme Builder header support layer
   Two variants:
     • SOLID  — Default template (inner pages): white, sticky
     • GLASS  — Homepage template: transparent over video, sticky→white
================================================================ */

/* ---- Shared: remove old Divi default header if it still appears ---- */
#main-header { display: none !important; }

/* ---- TB header base ---- */
/* Fixed positioning keeps the header on top as the hero and page content scroll */
.et-l--header {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 99999 !important;
    width: 100%;
    /* Only transition background and shadow — transitioning backdrop-filter breaks
       position:fixed in Chrome (creates intermediate compositing layer) */
    transition: background 0.4s ease-out, box-shadow 0.4s ease-out;
}
/* Offset for WordPress admin bar */
.admin-bar .et-l--header {
    top: 32px;
}
@media (max-width: 782px) {
    .admin-bar .et-l--header {
        top: 46px;
    }
}

/* Push page content below the fixed header on inner pages.
   Homepage has no offset — header floats transparent over the video hero. */
.admin-bar.et-tb-has-header:not(.home) #et-main-area {
    margin-top: 124px;
}
.et-tb-has-header:not(.home):not(.admin-bar) #et-main-area {
    margin-top: 92px;
}

/* ---- GLASS header (GLOBAL — homepage and every inner page) ----
   Single Divi Theme Builder header, identical behavior on every page:
   • Unscrolled: transparent with slight blur — page canvas shows through
   • Scrolled (>32px): deep-teal translucent glass with stronger blur
   The scroll-toggle JS (functions.php) adds `.pcoc-scrolled` to `.et-l--header`
   on ALL pages so navigating feels seamless.

   IMPORTANT: Divi TB paints the visible bar on the ROW
   (`.et_pb_row_0_tb_header`). Selectors intentionally omit `.et_pb_sticky`
   because inner pages don't get that class — only homepage does, but visually
   both pages need identical treatment on the row. */

/* Section transparent — the row above owns the glass. */
.et-l--header > .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_header {
    background-color: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
}

/* The row stays transparent always. The visible "scrolled glass" is now
   painted by a `::before` pseudo-element overlay that fades in via opacity
   — that gives us a smooth transition without fighting Chrome's bg-color
   transition quirks on filtered/blurred elements. */
.et-l--header .et_pb_row_0_tb_header {
    background-color: transparent !important;
    /* No blur when unscrolled — header is fully transparent, page canvas
       shows through cleanly, just nav + logo float over content. */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
    transition: backdrop-filter 0.85s cubic-bezier(0.4, 0, 0.2, 1),
                box-shadow 0.85s cubic-bezier(0.4, 0, 0.2, 1) !important;
    position: relative !important;
    z-index: 1;
}
.et-l--header .et_pb_row_0_tb_header::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    /* Lake-blue glass — saturated like Plan Your Visit's color presence */
    background:
        linear-gradient(180deg,
            rgba(20, 80, 120, 0.78) 0%,
            rgba(28, 98, 142, 0.74) 50%,
            rgba(20, 78, 116, 0.78) 100%) !important;
    opacity: 0 !important;
    transition: opacity 0.85s cubic-bezier(0.4, 0, 0.2, 1) !important;
    pointer-events: none !important;
    z-index: -1 !important;
}
.et-l--header.pcoc-scrolled .et_pb_row_0_tb_header::before {
    opacity: 1 !important;
}
/* Make sure the row's children (logo, nav) stack above the pseudo overlay */
.et-l--header .et_pb_row_0_tb_header > * {
    position: relative;
    z-index: 1;
}

/* No #et-main-area margin offset needed — the TB header section is now
   `position: absolute` on every page (set in Divi module config), so the
   header overlays content on every page exactly like the homepage. The
   first section on each page (Aurora page-title, hero, etc.) carries
   enough top padding to clear the ~92-124px header. */

/* GLOBAL: keep <body> in normal-flow scrolling so the document remains the
   single scrollport on every page. Divi otherwise sets
   `style="overflow-x: hidden;"` inline on <body>, which together with the
   default overflow-y makes <body> a scroll container — that breaks any
   IntersectionObserver-style scroll triggers (including Divi's native
   waypoint-driven module animations) on inner pages. The site has no
   horizontal overflow so the defensive overflow-x is unnecessary. */
body,
body #page-container {
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
}

/* Scrolled — keep the row transparent (overlay handles the glass color);
   bump the blur and add the shadow that signals "stuck" header state. */
.et-l--header.pcoc-scrolled .et_pb_row_0_tb_header {
    background-color: transparent !important;
    backdrop-filter: blur(22px) saturate(1.6) !important;
    -webkit-backdrop-filter: blur(22px) saturate(1.6) !important;
    box-shadow: 0 6px 28px rgba(20, 80, 120, 0.28) !important;
}

/* Scrolled deep-teal glass demands white nav text for contrast. */
.et-l--header.pcoc-scrolled .et_pb_menu .et_pb_menu__menu a,
.et-l--header.pcoc-scrolled .et_pb_menu .et-menu li a {
    color: #fff !important;
}
.et-l--header.pcoc-scrolled .et_pb_menu .et-menu li.current-menu-item > a,
.et-l--header.pcoc-scrolled .et_pb_menu .et-menu li.current_page_item > a,
.et-l--header.pcoc-scrolled .et_pb_menu .et-menu li.current-menu-ancestor > a {
    color: #fff !important;
}

/* ---- Nav: bump font size, drop "active page" color highlight ---- */
/* Bigger, more legible nav text across all header states */
.et-l--header .et_pb_menu .et-menu li a,
.et-l--header .et_pb_menu .et_pb_menu__menu a {
    font-size: 1.15rem !important;
    letter-spacing: 0.01em !important;
}
/* ===== Active-page indicator: a bright lake-blue DOT under the item =====
   The active link keeps the SAME text color as its neighbors per state — dark
   navy on light inner pages, white on the dark video hero + scrolled glass — so
   the text never fights the background. Only the dot marks "you are here". This
   replaces the old lake-blue text highlight, which didn't read on the dark hero.
   (Scrolled-state active text = white is handled by the .pcoc-scrolled rule
   above; the homepage-hero rule below covers the unscrolled white case.) */
.et-l--header .et_pb_menu .et-menu li.current-menu-item > a,
.et-l--header .et_pb_menu .et-menu li.current_page_item > a,
.et-l--header .et_pb_menu .et-menu li.current-menu-ancestor > a {
    color: #1e1e2e !important;       /* inner pages: match the dark nav neighbors */
    position: relative !important;
}
.home .et-l--header:not(.pcoc-scrolled) .et_pb_menu .et-menu li.current-menu-item > a,
.home .et-l--header:not(.pcoc-scrolled) .et_pb_menu .et-menu li.current_page_item > a,
.home .et-l--header:not(.pcoc-scrolled) .et_pb_menu .et-menu li.current-menu-ancestor > a {
    color: #fff !important;          /* homepage hero: match the white neighbors */
}
.et-l--header .et_pb_menu .et-menu li.current-menu-item > a::after,
.et-l--header .et_pb_menu .et-menu li.current_page_item > a::after,
.et-l--header .et_pb_menu .et-menu li.current-menu-ancestor > a::after {
    /* Anchor to the text (vertical-center + offset) — the <a> has 31px of
       padding, so bottom-relative positioning lands far below the text. */
    content:""; position:absolute; left:50%; top:50%; transform:translate(-50%, 15px);
    width:7px; height:7px; border-radius:50%; background:#6fd1ec;   /* bright lake-blue */
    pointer-events:none;
}
/* Give pill: scale up to stay visually balanced with the bigger nav links */
.et-l--header li.give-nav-item > a {
    font-size: 1.05rem !important;
    padding: 11px 26px !important;
}

/* Logo: src-swapped by the scroll script (functions.php) between the two
   new-design SVG lockups.
   Unscrolled → navy wordmark for contrast on light aurora (inner) / white on
                the dark homepage hero.
   Scrolled   → white wordmark for contrast on the deep-teal glass.
   Smooth opacity transition hides any brief loading gap during the swap. */
.et-l--header .et_pb_menu__logo img {
    /* Container-driven sizing — the ORIGINAL behavior, SAME logic at every
       viewport. The original logo had no fixed height: it used Divi's default
       max-width:100% and sized to its container, which read correctly on mobile
       (container ~267px -> ~96px tall) but blew up on desktop (container ~656px
       -> 234px, the "covers the page" bug) only because the new SVG has no
       intrinsic width cap. So: keep the container-driven max-width:100% sizing
       everywhere, but bound the height to the original ~96px so the wide desktop
       container can't overshoot. Result: ~96px at desktop AND mobile, scaling
       down on very narrow screens. Both header variants, all pages. */
    max-height: 96px;
    max-width: 100%;
    width: auto;
    height: auto;
    transition: opacity 0.25s ease;
}
.et-l--header .et_pb_menu__logo { width: auto; }

/* ---- Give pill — lake-glass green — applies on all header variants ---- */
/* The li stretches to full header height (flex); we constrain the a to a pill */
.et-l--header li.give-nav-item {
    align-self: center !important;
    display: flex !important;
    align-items: center !important;
    padding: 0 !important;
}
.et-l--header li.give-nav-item > a {
    background: var(--pcoc-coral) !important;   /* CTA coral (matches YouTube button) */
    color: #fff !important;
    border-radius: 999px !important;
    padding: 9px 22px !important;
    font-weight: 700 !important;
    font-size: 0.875rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    transition: background 0.2s ease, transform 0.15s ease !important;
    display: inline-block !important;
}
.et-l--header li.give-nav-item > a:hover {
    background: #cf531f !important;   /* darker coral */
    transform: translateY(-1px) !important;
}

/* On scrolled deep-teal glass header, Give pill text stays white. */
.et-l--header.pcoc-scrolled .give-nav-item a {
    color: #fff !important;
}

/* ===== Tablet/phone full-screen menu (≤980px) — "Teal Aurora" takeover =====
   Replaces Divi's default mobile dropdown. Overlay markup is built in JS
   (pcoc_mobile_menu in functions.php) by CLONING the WP menu items, so the
   pastor still edits the menu normally. Divi's own dropdown is hidden. */
@media (max-width: 980px){
    .et-l--header .et_mobile_menu{ display:none !important; }
}
@media (min-width: 981px){
    .pcoc-menu{ display:none !important; }   /* desktop keeps the horizontal nav */
}
body.pcoc-menu-open{ overflow:hidden; }

/* --spd scales the whole entrance timeline (Joseph-locked pace = 1.2). */
.pcoc-menu{
    --spd:1.2;
    position:fixed; inset:0; z-index:99999; display:flex; flex-direction:column;
    padding:40px clamp(24px,7vw,56px) 34px;
    background:var(--pcoc-deep-teal); color:#fff; overflow:hidden;
    opacity:0; visibility:hidden; transform:scale(.92); transform-origin:center;
    transition:opacity calc(.55s*var(--spd)) ease,
               transform calc(.7s*var(--spd)) cubic-bezier(.33,1,.68,1),
               visibility calc(.7s*var(--spd));
}
.pcoc-menu.open{ opacity:1; visibility:visible; transform:none; }   /* grows in from center */
.pcoc-menu__aurora{
    position:absolute; inset:-12%; z-index:0; filter:blur(38px);
    opacity:0; transform:scale(1.08);
    transition:opacity calc(1.2s*var(--spd)) ease, transform calc(1.6s*var(--spd)) ease;
    background-image:
        radial-gradient(ellipse 62% 45% at 10% 14%, rgba(40,160,200,.55), transparent 60%),
        radial-gradient(ellipse 56% 45% at 92% 18%, rgba(111,174,155,.42), transparent 62%),
        radial-gradient(ellipse 72% 55% at 72% 98%, rgba(232,98,42,.30), transparent 64%);
}
.pcoc-menu.open .pcoc-menu__aurora{ opacity:1; transform:scale(1); }
.pcoc-menu__grain{
    position:absolute; inset:0; z-index:1; opacity:.05; pointer-events:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.pcoc-menu__wave{ position:absolute; left:-6%; right:-6%; top:2%; height:80px; z-index:1; opacity:0; color:#fff;
    transition:opacity calc(1.2s*var(--spd)) ease calc(.3s*var(--spd)); }
.pcoc-menu.open .pcoc-menu__wave{ opacity:.4; }
.pcoc-menu__wave path{ fill:none; stroke:currentColor; stroke-width:2; opacity:.22; }
.pcoc-menu > .pcoc-menu__top,
.pcoc-menu > .pcoc-menu__nav,
.pcoc-menu > .pcoc-menu__foot{ position:relative; z-index:2; }

.pcoc-menu__top{ display:flex; align-items:center; justify-content:space-between; flex:0 0 auto;
    opacity:0; transition:opacity calc(.7s*var(--spd)) ease calc(.45s*var(--spd)); }
.pcoc-menu.open .pcoc-menu__top{ opacity:1; }
.pcoc-menu__logo{ height:82px; width:auto; display:block; }
.pcoc-menu__close{
    border:1px solid rgba(255,255,255,.18); background:transparent; color:#fff;
    width:50px; height:50px; border-radius:50%; display:grid; place-items:center; cursor:pointer;
    transition:transform .25s ease, background .25s ease;
}
.pcoc-menu__close:hover{ transform:rotate(90deg); background:rgba(255,255,255,.08); }
.pcoc-menu__close svg{ width:20px; height:20px; }

.pcoc-menu__nav{
    flex:1 1 auto; display:flex; flex-direction:column; justify-content:center;
    gap:clamp(12px,2.6vh,22px); padding:24px 0;
}
/* Sequential-but-tight float: each link drifts up while a blur clears. */
.pcoc-menu__link{
    position:relative; display:flex; align-items:center; gap:16px; text-decoration:none; color:#fff;
    font-weight:500; font-size:2.05rem; line-height:1.04; letter-spacing:-.01em; width:max-content;
    opacity:0; transform:translateY(26px); filter:blur(9px); transition:color .25s ease;
}
.pcoc-menu__link .i{ font-size:.6rem; font-weight:600; letter-spacing:.12em; color:rgba(255,255,255,.45); align-self:flex-start; margin-top:.45em; }
.pcoc-menu__link:hover{ color:var(--pcoc-coral); }
/* active = left bar + coral (locked) */
.pcoc-menu__link.current-menu-item,
.pcoc-menu__link.current_page_item{ color:#fff; padding-left:22px; }
.pcoc-menu__link.current-menu-item::before,
.pcoc-menu__link.current_page_item::before{
    content:""; position:absolute; left:0; top:10%; bottom:10%; width:5px;
    border-radius:3px; background:#6fd1ec;   /* bright lake-blue — matches desktop active dot */
}
.pcoc-menu__nav .pcoc-menu__link:nth-child(1){ --d:.50s; }
.pcoc-menu__nav .pcoc-menu__link:nth-child(2){ --d:.69s; }
.pcoc-menu__nav .pcoc-menu__link:nth-child(3){ --d:.88s; }
.pcoc-menu__nav .pcoc-menu__link:nth-child(4){ --d:1.07s; }
.pcoc-menu__nav .pcoc-menu__link:nth-child(5){ --d:1.26s; }
.pcoc-menu__nav .pcoc-menu__link:nth-child(6){ --d:1.45s; }
.pcoc-menu__nav .pcoc-menu__link:nth-child(7){ --d:1.64s; }
.pcoc-menu__nav .pcoc-menu__link:nth-child(8){ --d:1.83s; }
.pcoc-menu.open .pcoc-menu__link{
    animation:pcocFloat calc(.7s*var(--spd)) cubic-bezier(.33,1,.68,1) both;
    animation-delay:calc(var(--d,.5s) * var(--spd));
}
@keyframes pcocFloat{ to{ opacity:1; transform:none; filter:blur(0); } }

.pcoc-menu__foot{ flex:0 0 auto; display:flex; flex-direction:column; gap:18px; opacity:0; transform:translateY(22px);
    transition:opacity calc(.9s*var(--spd)) ease calc(1.9s*var(--spd)),
               transform calc(.9s*var(--spd)) cubic-bezier(.33,1,.68,1) calc(1.9s*var(--spd)); }
.pcoc-menu.open .pcoc-menu__foot{ opacity:1; transform:none; }
.pcoc-menu__verse{ font-family:Georgia,'Times New Roman',serif; font-style:italic; font-size:clamp(1.05rem,4.5vw,1.2rem); color:rgba(255,255,255,.6); max-width:24ch; line-height:1.4; }
.pcoc-menu__cta{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.pcoc-menu__give{ background:var(--pcoc-coral); color:#fff !important; text-decoration:none; font-weight:700; padding:15px 44px; border-radius:999px; font-size:.98rem; box-shadow:0 6px 20px rgba(232,98,42,.4); transition:transform .15s ease; }
.pcoc-menu__give:hover{ transform:translateY(-2px); }
.pcoc-menu__visit{ color:#fff; text-decoration:none; font-weight:600; font-size:.95rem; border-bottom:2px solid var(--pcoc-coral); padding-bottom:3px; }
.pcoc-menu__meta{ display:flex; gap:22px; flex-wrap:wrap; color:rgba(255,255,255,.6); font-size:.8rem; letter-spacing:.03em; border-top:1px solid rgba(255,255,255,.14); padding-top:18px; }
.pcoc-menu__meta b{ color:#fff; font-weight:600; }
@media (min-width:680px){
    .pcoc-menu__foot{ flex-direction:row; align-items:flex-end; justify-content:space-between; gap:30px; }
    .pcoc-menu__verse{ flex:1; }
}
/* Respect reduced-motion: show everything instantly. */
@media (prefers-reduced-motion: reduce){
    .pcoc-menu, .pcoc-menu *{ transition:none !important; animation:none !important; }
    .pcoc-menu{ transform:none; }
    .pcoc-menu__link, .pcoc-menu__foot, .pcoc-menu__top, .pcoc-menu__aurora, .pcoc-menu__wave{ opacity:1 !important; transform:none !important; filter:none !important; }
}

/* ---- Nav right-alignment on desktop ----
   The menu module is `et_pb_menu--with-logo` (logo + menu share one inner
   container). That container is content-width, so margin-left:auto alone only
   pushes the menu within the group. Make the inner container span the full
   width and space-between, so the logo stays left and the nav goes to the right
   edge. (Hidden ≤980 where the overlay menu takes over.) */
/* Logo + nav/hamburger share one inner container (et_pb_menu--with-logo). Span
   full width + space-between at ALL sizes so the logo stays left and the nav
   (desktop) or hamburger (tablet/mobile) sits at the right edge. */
.et-l--header .et_pb_menu_inner_container {
    width: 100% !important;
    justify-content: space-between !important;
}
.et-l--header .et_pb_menu .et_pb_menu__menu {
    margin-left: auto !important;
}

/* In-page anchor targets clear the fixed header when jumped to (e.g. the mobile
   menu's "Plan your visit" -> #plan-your-visit). JS scrolls from the hero CTAs
   already apply a header offset; this covers plain anchor navigation. */
#plan-your-visit,
.pcoc-welcome {
    scroll-margin-top: 120px;
}

/* Smooth (slow) scrolling for plain in-page anchor links — e.g. the Ministries
   section index that jumps to #word-of-god / #community-outreach /
   #sunday-celebrations / #recovery (each already carries scroll-margin-top).
   Honors reduced-motion preferences for accessibility. */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}

/* ---- Hamburger icon color on glass header ---- */
.home .et-l--header:not(.pcoc-scrolled) .et_pb_menu .mobile_menu_bar::before {
    color: #fff !important;
}

/* ---- BUTTONS (Global) ---- */
.et_pb_button,
a.et_pb_button,
.et_pb_promo_button {
    background-color: var(--pcoc-coral) !important;   /* CTA coral (matches YouTube button) */
    color: #fff !important;
    border: none !important;
    border-radius: 999px !important;
    padding: 14px 32px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.9rem !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease !important;
    box-shadow: 0 4px 14px rgba(232, 98, 42, 0.32) !important;
}
.et_pb_button:hover,
a.et_pb_button:hover {
    background-color: #cf531f !important;   /* darker coral */
    color: #fff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(232, 98, 42, 0.45) !important;
}
/* Beat Divi's per-button numbered CSS (.et_pb_button_1/_2 …), which sets its own
   colors at equal specificity and loads after this stylesheet. The `body` prefix
   raises specificity so every Divi button is the coral CTA — solid, white text.
   (e.g. "Get Directions" was green; "Watch More Sermons" was a transparent ghost.) */
html body .et_pb_button.et_pb_button,
html body a.et_pb_button.et_pb_button {
    background-color: var(--pcoc-coral) !important;
    background-image: none !important;   /* Divi sets a green gradient here; clear it */
    color: #fff !important;
    border-color: var(--pcoc-coral) !important;
}
html body .et_pb_button.et_pb_button:hover,
html body a.et_pb_button.et_pb_button:hover {
    background-color: #cf531f !important;
    background-image: none !important;
    border-color: #cf531f !important;
    color: #fff !important;
}

/* Sermon section (home) — left-align the intro copy; it was centered while the
   eyebrow + heading + button are left, so the column read inconsistently. */
.pcoc-sermon-right,
.pcoc-sermon-right .et_pb_text,
.pcoc-sermon-right .et_pb_text .et_pb_text_inner,
.pcoc-sermon-right .et_pb_text_inner p {
    text-align: left !important;
}

/* ---- FOOTER — Aurora polish ---- */
.et-l--footer {
    position: relative;
    isolation: isolate;
}
html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer,
html body .et_pb_section.ffooter_2 {
    background: var(--pcoc-deep-teal) !important;
    background-color: var(--pcoc-deep-teal) !important;
    position: relative !important;
    overflow: hidden !important;
    padding-top: clamp(40px, 5vh, 60px) !important;
    padding-bottom: 20px !important;
}
/* Aurora mesh — soft lake-blue + coral glows drifting over deep-teal.
   Selector must beat Divi TB's existing blob pseudos at
   et-core-unified-tb...min.css — which uses the single-class selector.
   The .ffooter_2 alternative makes this rule also apply inside the Divi 5
   visual builder canvas, where the section gets a UUID-based class instead
   of et_pb_section_0_tb_footer. */
html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer::before,
html body .et_pb_section.ffooter_2::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: auto !important;
    height: auto !important;
    opacity: 1 !important;
    border-radius: 0 !important;
    background-image:
        radial-gradient(ellipse 70% 55% at 12% 20%, rgba(40, 160, 200, 0.38), transparent 62%),
        radial-gradient(ellipse 55% 45% at 88% 15%, rgba(111, 174, 155, 0.32), transparent 60%),
        radial-gradient(ellipse 65% 50% at 70% 95%, rgba(232, 98, 42, 0.18), transparent 62%) !important;
    filter: blur(18px) !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
/* Top-edge soft fade so footer blends from page canvas */
html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer::after,
html body .et_pb_section.ffooter_2::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    width: auto !important;
    height: 120px !important;
    opacity: 1 !important;
    border-radius: 0 !important;
    background-image: linear-gradient(to bottom, rgba(26, 79, 110, 0) 0%, rgba(26, 79, 110, 0.45) 60%, rgba(26, 79, 110, 0) 100%) !important;
    filter: none !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
.et_pb_section_0_tb_footer > .et_pb_row,
.et_pb_section_0_tb_footer .et_pb_row {
    position: relative;
    z-index: 1;
}

/* Base text */
.et_pb_section_0_tb_footer p,
.et_pb_section_0_tb_footer li,
.et_pb_section_0_tb_footer span,
.et_pb_section_0_tb_footer .et_pb_text_inner {
    color: rgba(255, 255, 255, 0.88) !important;
}
.et_pb_section_0_tb_footer a {
    color: rgba(255, 255, 255, 0.88) !important;
    text-decoration: none !important;
    transition: color 0.22s ease, background-color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease !important;
}
.et_pb_section_0_tb_footer a:hover {
    color: #fff !important;
}

/* Column headings — "Contact", "Explore" — uppercase tracking with lake-glass underline */
.et_pb_section_0_tb_footer .et_pb_text_0_tb_footer,
.et_pb_section_0_tb_footer .et_pb_text_1_tb_footer {
    margin-bottom: 12px !important;
}
.et_pb_section_0_tb_footer .et_pb_text_0_tb_footer .et_pb_text_inner,
.et_pb_section_0_tb_footer .et_pb_text_1_tb_footer .et_pb_text_inner {
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    color: rgba(255, 255, 255, 0.55) !important;
    position: relative;
    padding-bottom: 8px !important;
}
.et_pb_section_0_tb_footer .et_pb_text_0_tb_footer .et_pb_text_inner::after,
.et_pb_section_0_tb_footer .et_pb_text_1_tb_footer .et_pb_text_inner::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 24px;
    height: 2px;
    background: var(--pcoc-lake-glass);
    border-radius: 2px;
}

/* Contact blurbs — compact pill rows with icon prefix */
.et_pb_section_0_tb_footer .et_pb_blurb_2_tb_footer,
.et_pb_section_0_tb_footer .et_pb_blurb_3_tb_footer,
.et_pb_section_0_tb_footer .et_pb_blurb_4_tb_footer {
    margin-bottom: 0 !important;
}
.et_pb_section_0_tb_footer .et_pb_blurb_2_tb_footer .et_pb_blurb_content,
.et_pb_section_0_tb_footer .et_pb_blurb_3_tb_footer .et_pb_blurb_content,
.et_pb_section_0_tb_footer .et_pb_blurb_4_tb_footer .et_pb_blurb_content {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 7px 12px !important;
    background: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 10px !important;
    margin-bottom: 6px !important;
    max-width: 100% !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}
.et_pb_section_0_tb_footer .et_pb_blurb_2_tb_footer:hover .et_pb_blurb_content,
.et_pb_section_0_tb_footer .et_pb_blurb_3_tb_footer:hover .et_pb_blurb_content,
.et_pb_section_0_tb_footer .et_pb_blurb_4_tb_footer:hover .et_pb_blurb_content {
    background: rgba(255, 255, 255, 0.1) !important;
    border-color: rgba(111, 174, 155, 0.5) !important;
    transform: translateX(3px);
}
/* Contact icon holders — reuse the empty .et_pb_main_blurb_image as icon slot */
.et_pb_section_0_tb_footer .et_pb_blurb_2_tb_footer .et_pb_main_blurb_image,
.et_pb_section_0_tb_footer .et_pb_blurb_3_tb_footer .et_pb_main_blurb_image,
.et_pb_section_0_tb_footer .et_pb_blurb_4_tb_footer .et_pb_main_blurb_image {
    width: 16px !important;
    height: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.et_pb_section_0_tb_footer .et_pb_blurb_2_tb_footer .et_pb_image_wrap,
.et_pb_section_0_tb_footer .et_pb_blurb_3_tb_footer .et_pb_image_wrap,
.et_pb_section_0_tb_footer .et_pb_blurb_4_tb_footer .et_pb_image_wrap {
    width: 16px !important;
    height: 16px !important;
    background: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.et_pb_section_0_tb_footer .et_pb_blurb_2_tb_footer .et-pb-icon,
.et_pb_section_0_tb_footer .et_pb_blurb_3_tb_footer .et-pb-icon,
.et_pb_section_0_tb_footer .et_pb_blurb_4_tb_footer .et-pb-icon {
    width: 16px !important;
    height: 16px !important;
    display: block !important;
    background-color: var(--pcoc-lake-glass) !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    mask-position: center !important;
    -webkit-mask-size: contain !important;
    mask-size: contain !important;
    color: transparent !important;
    font-size: 0 !important;
    text-indent: -9999px !important;
    overflow: hidden !important;
}
/* Phone (blurb 2 — first contact item after the heading) */
.et_pb_section_0_tb_footer .et_pb_blurb_2_tb_footer .et-pb-icon {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M20 15.5c-1.25 0-2.45-.2-3.57-.57a1 1 0 0 0-1.02.24l-2.2 2.2a15.074 15.074 0 0 1-6.59-6.59l2.2-2.21a.96.96 0 0 0 .25-1A11.36 11.36 0 0 1 8.5 4a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1c0 9.39 7.61 17 17 17a1 1 0 0 0 1-1v-3.5a1 1 0 0 0-1-1z'/></svg>") !important;
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M20 15.5c-1.25 0-2.45-.2-3.57-.57a1 1 0 0 0-1.02.24l-2.2 2.2a15.074 15.074 0 0 1-6.59-6.59l2.2-2.21a.96.96 0 0 0 .25-1A11.36 11.36 0 0 1 8.5 4a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1c0 9.39 7.61 17 17 17a1 1 0 0 0 1-1v-3.5a1 1 0 0 0-1-1z'/></svg>") !important;
}
/* Email (blurb 3) */
.et_pb_section_0_tb_footer .et_pb_blurb_3_tb_footer .et-pb-icon {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5z'/></svg>") !important;
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5z'/></svg>") !important;
}
/* Address pin (blurb 4) */
.et_pb_section_0_tb_footer .et_pb_blurb_4_tb_footer .et-pb-icon {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/></svg>") !important;
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/></svg>") !important;
}
/* Tighten the Contact column's vertical rhythm — the Divi-generated rule on
   .et_pb_column_1_tb_footer set row-gap:45px which was too airy once the address
   moved to the bottom. Force flex-column at every width so the heading + pills
   always stack (at narrow widths Divi otherwise lets children flow inline-block,
   so Phone wraps next to the CONTACT heading). */
#et-boc .et-l .et_pb_section_0_tb_footer .et_pb_column_1_tb_footer {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    row-gap: 8px !important;
}
#et-boc .et-l .et_pb_section_0_tb_footer .et_pb_column_1_tb_footer > .et_pb_module {
    width: 100%;
}
@media (max-width: 780px) {
    #et-boc .et-l .et_pb_section_0_tb_footer .et_pb_column_1_tb_footer {
        align-items: flex-start !important;
    }
    /* Pills auto-size to content; heading still full-width so the underline
       sits on its own row above the pills. */
    #et-boc .et-l .et_pb_section_0_tb_footer .et_pb_column_1_tb_footer > .et_pb_text_0_tb_footer {
        width: 100% !important;
    }
}
.et_pb_section_0_tb_footer .et_pb_blurb_2_tb_footer .et_pb_blurb_container,
.et_pb_section_0_tb_footer .et_pb_blurb_3_tb_footer .et_pb_blurb_container,
.et_pb_section_0_tb_footer .et_pb_blurb_4_tb_footer .et_pb_blurb_container {
    flex: 1;
    min-width: 0;
}
.et_pb_section_0_tb_footer .et_pb_blurb_2_tb_footer .et_pb_blurb_description,
.et_pb_section_0_tb_footer .et_pb_blurb_3_tb_footer .et_pb_blurb_description,
.et_pb_section_0_tb_footer .et_pb_blurb_4_tb_footer .et_pb_blurb_description {
    font-size: 0.85rem !important;
    line-height: 1.4 !important;
    color: rgba(255, 255, 255, 0.85) !important;
}
.et_pb_section_0_tb_footer .et_pb_blurb_2_tb_footer .et_pb_blurb_description p,
.et_pb_section_0_tb_footer .et_pb_blurb_3_tb_footer .et_pb_blurb_description p,
.et_pb_section_0_tb_footer .et_pb_blurb_4_tb_footer .et_pb_blurb_description p {
    padding: 0 !important;
    margin: 0 !important;
}

/* Social column — "Follow" heading + Facebook & YouTube pills */
.et_pb_section_0_tb_footer .et_pb_column_0_tb_footer {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    position: relative !important;
}
.et_pb_section_0_tb_footer .et_pb_column_0_tb_footer::before {
    content: "Follow";
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 12px;
    padding-bottom: 8px;
    position: relative;
    width: fit-content;
}
/* Short lake-glass accent rule under "Follow" — matches Contact/Explore style */
.et_pb_section_0_tb_footer .et_pb_column_0_tb_footer::after {
    content: "";
    position: absolute;
    left: 0;
    top: calc(0.72rem * 1.4 + 8px);
    width: 24px;
    height: 2px;
    background: var(--pcoc-lake-glass);
    border-radius: 2px;
}
.et_pb_section_0_tb_footer .et_pb_blurb_0_tb_footer,
.et_pb_section_0_tb_footer .et_pb_blurb_1_tb_footer {
    margin: 0 !important;
}
.et_pb_section_0_tb_footer .et_pb_blurb_0_tb_footer .et_pb_blurb_content,
.et_pb_section_0_tb_footer .et_pb_blurb_1_tb_footer .et_pb_blurb_content {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 7px 12px !important;
    background: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 10px !important;
    max-width: 100% !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.et_pb_section_0_tb_footer .et_pb_blurb_0_tb_footer:hover .et_pb_blurb_content,
.et_pb_section_0_tb_footer .et_pb_blurb_1_tb_footer:hover .et_pb_blurb_content {
    background: rgba(232, 98, 42, 0.14) !important;
    border-color: rgba(232, 98, 42, 0.5) !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(232, 98, 42, 0.25) !important;
}
.et_pb_section_0_tb_footer .et_pb_blurb_0_tb_footer .et_pb_main_blurb_image,
.et_pb_section_0_tb_footer .et_pb_blurb_1_tb_footer .et_pb_main_blurb_image {
    width: 16px !important;
    height: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.et_pb_section_0_tb_footer .et_pb_blurb_0_tb_footer .et_pb_image_wrap,
.et_pb_section_0_tb_footer .et_pb_blurb_1_tb_footer .et_pb_image_wrap {
    width: 16px !important;
    height: 16px !important;
    background: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.et_pb_section_0_tb_footer .et_pb_blurb_0_tb_footer .et-pb-icon,
.et_pb_section_0_tb_footer .et_pb_blurb_1_tb_footer .et-pb-icon {
    width: 16px !important;
    height: 16px !important;
    display: block !important;
    background-color: #fff !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    mask-position: center !important;
    -webkit-mask-size: contain !important;
    mask-size: contain !important;
    color: transparent !important;
    font-size: 0 !important;
    text-indent: -9999px !important;
    overflow: hidden !important;
    transition: background-color 0.35s ease;
}
/* Facebook mark */
.et_pb_section_0_tb_footer .et_pb_blurb_0_tb_footer .et-pb-icon {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309-.311.152-.542.364-.679.622-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647z'/></svg>") !important;
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309-.311.152-.542.364-.679.622-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647z'/></svg>") !important;
}
/* YouTube mark */
.et_pb_section_0_tb_footer .et_pb_blurb_1_tb_footer .et-pb-icon {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/></svg>") !important;
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/></svg>") !important;
}
.et_pb_section_0_tb_footer .et_pb_blurb_0_tb_footer .et_pb_module_header,
.et_pb_section_0_tb_footer .et_pb_blurb_1_tb_footer .et_pb_module_header {
    color: #fff !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
}

/* Row 0: grid layout so 3 columns always fit side-by-side without wrap */
html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer .et_pb_row.et_pb_row_0_tb_footer {
    display: grid !important;
    grid-template-columns: minmax(180px, 1fr) minmax(240px, 1.3fr) minmax(160px, 0.9fr) !important;
    gap: 40px !important;
    align-items: start !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    max-width: 1100px !important;
    width: 92% !important;
    margin: 0 auto !important;
}
html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer .et_pb_row.et_pb_row_0_tb_footer > .et_pb_column,
.et-db #et-boc .et-l .et_pb_section_0_tb_footer .et_pb_column_0_tb_footer,
.et-db #et-boc .et-l .et_pb_section_0_tb_footer .et_pb_column_1_tb_footer,
.et-db #et-boc .et-l .et_pb_section_0_tb_footer .et_pb_column_2_tb_footer {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    flex: none !important;
}
html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer .et_pb_row.et_pb_row_0_tb_footer > .et_pb_column:last-child {
    margin-bottom: 0 !important;
}
/* Kill Divi clearfix pseudos — they become phantom grid rows and cause a 40px row-gap */
html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer .et_pb_row.et_pb_row_0_tb_footer::before,
html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer .et_pb_row.et_pb_row_0_tb_footer::after {
    display: none !important;
    content: none !important;
}
html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer .et_pb_row.et_pb_row_0_tb_footer .et_pb_module:last-child {
    margin-bottom: 0 !important;
}
@media (max-width: 780px) {
    html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer .et_pb_row.et_pb_row_0_tb_footer {
        grid-template-columns: 1fr !important;
        gap: 28px !important;
    }
}

/* Explore — menu links as tidy vertical list */
.et_pb_section_0_tb_footer .et_pb_text_2_tb_footer .et_pb_text_inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
}
.et_pb_section_0_tb_footer .et_pb_text_2_tb_footer a {
    display: inline-block !important;
    padding: 2px 0 !important;
    position: relative;
    width: fit-content;
    color: rgba(255, 255, 255, 0.82) !important;
    font-size: 0.88rem !important;
    line-height: 1.5 !important;
}
.et_pb_section_0_tb_footer .et_pb_text_2_tb_footer a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 1px;
    width: 0;
    height: 2px;
    background: var(--pcoc-lake-glass);
    border-radius: 2px;
    transition: width 0.28s ease;
}
.et_pb_section_0_tb_footer .et_pb_text_2_tb_footer a:hover {
    color: #fff !important;
}
.et_pb_section_0_tb_footer .et_pb_text_2_tb_footer a:hover::after {
    width: 100%;
}

/* Column headings (h3/h4 if present) */
.et_pb_section_0_tb_footer h3,
.et_pb_section_0_tb_footer h4 {
    color: #fff !important;
    letter-spacing: -0.01em;
}

/* Copyright row — hairline top border, subtle small text */
html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer .et_pb_row.et_pb_row_1_tb_footer {
    margin-top: 18px !important;
    padding-top: 12px !important;
    padding-bottom: 0 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    max-width: 1100px !important;
    width: 92% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.et_pb_section_0_tb_footer .et_pb_row_1_tb_footer .et_pb_module {
    margin-bottom: 0 !important;
}
.et_pb_section_0_tb_footer .et_pb_text_3_tb_footer .et_pb_text_inner,
.et_pb_section_0_tb_footer .et_pb_text_4_tb_footer .et_pb_text_inner {
    font-size: 0.78rem !important;
    color: rgba(255, 255, 255, 0.5) !important;
    letter-spacing: 0.02em;
}
.et_pb_section_0_tb_footer .et_pb_text_3_tb_footer .et_pb_text_inner p,
.et_pb_section_0_tb_footer .et_pb_text_4_tb_footer .et_pb_text_inner p {
    margin: 0 !important;
    padding: 0 !important;
}

/* Mobile — stack cleanly, left-align so each column reads as a block. */
@media (max-width: 780px) {
    html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer {
        padding-top: 44px !important;
        padding-bottom: 20px !important;
    }
    html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer .et_pb_row.et_pb_row_0_tb_footer {
        gap: 32px !important;
    }
    /* Left-align each column's items */
    .et_pb_section_0_tb_footer .et_pb_row_0_tb_footer > .et_pb_column {
        align-items: flex-start !important;
        text-align: left !important;
    }
    /* FOLLOW column — anchor heading + accent rule to the left */
    .et_pb_section_0_tb_footer .et_pb_column_0_tb_footer {
        align-items: flex-start !important;
    }
    .et_pb_section_0_tb_footer .et_pb_column_0_tb_footer::before {
        margin-left: 0 !important;
        margin-right: auto !important;
    }
    .et_pb_section_0_tb_footer .et_pb_column_0_tb_footer::after {
        left: 0 !important;
        transform: none !important;
    }
    /* Social pills (Facebook / YouTube): auto-size to icon + label so the pill
       hugs the content. Forcing 100% width interacted badly with the blurb's
       built-in `flex-direction: row-reverse` (icon-on-right) and left a wide
       empty gap on the left of the pill. */
    .et_pb_section_0_tb_footer .et_pb_blurb_0_tb_footer,
    .et_pb_section_0_tb_footer .et_pb_blurb_1_tb_footer {
        width: auto !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: auto !important;
    }
    .et_pb_section_0_tb_footer .et_pb_blurb_0_tb_footer .et_pb_blurb_content,
    .et_pb_section_0_tb_footer .et_pb_blurb_1_tb_footer .et_pb_blurb_content {
        width: auto !important;
        max-width: none !important;
    }
    /* CONTACT / EXPLORE heading blocks — left-aligned */
    .et_pb_section_0_tb_footer .et_pb_text_0_tb_footer,
    .et_pb_section_0_tb_footer .et_pb_text_1_tb_footer {
        text-align: left !important;
    }
    .et_pb_section_0_tb_footer .et_pb_text_0_tb_footer .et_pb_text_inner,
    .et_pb_section_0_tb_footer .et_pb_text_1_tb_footer .et_pb_text_inner {
        display: block !important;
    }
    /* Contact pills (Phone / Address / Email): auto-size to icon + text,
       anchored to the left edge of the column. Same reason as the social
       pills above — forced full-width left a wide gap (here on the right,
       since these blurbs are forward-flex with icon on the left). */
    .et_pb_section_0_tb_footer .et_pb_blurb_2_tb_footer,
    .et_pb_section_0_tb_footer .et_pb_blurb_3_tb_footer,
    .et_pb_section_0_tb_footer .et_pb_blurb_4_tb_footer {
        width: auto !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: auto !important;
    }
    .et_pb_section_0_tb_footer .et_pb_blurb_2_tb_footer .et_pb_blurb_content,
    .et_pb_section_0_tb_footer .et_pb_blurb_3_tb_footer .et_pb_blurb_content,
    .et_pb_section_0_tb_footer .et_pb_blurb_4_tb_footer .et_pb_blurb_content {
        width: auto !important;
        max-width: none !important;
    }
    /* Explore — left-align the link column */
    .et_pb_section_0_tb_footer .et_pb_text_2_tb_footer .et_pb_text_inner {
        align-items: flex-start !important;
    }
    .et_pb_section_0_tb_footer .et_pb_text_2_tb_footer a {
        width: fit-content !important;
        text-align: left !important;
    }
    /* Copyright row — left-aligned with a little breathing room */
    html body .et-l--footer .et_builder_inner_content .et_pb_section.et_pb_section_0_tb_footer .et_pb_row.et_pb_row_1_tb_footer {
        margin-top: 24px !important;
        padding-top: 16px !important;
        text-align: left !important;
    }
}

/* Single Event Page — Divi Theme Builder overrides */

/* (Legacy single-event vanta-fog overrides removed — the new Aurora template
   handles backgrounds and text colors via per-class styling further down.) */

/* -------------------------------------------------------
   EVENT DATE — centered, larger, bold
------------------------------------------------------- */
.pcoc-event-date {
    display: block;
    font-size: 1.5rem;
    font-weight: 700;
    text-align: center;
    color: #fff !important;
    margin-bottom: 0.5em;
    letter-spacing: 0.02em;
}

/* -------------------------------------------------------
   EVENT DESCRIPTION — bolder, more readable
------------------------------------------------------- */
.single-event .et_pb_post_content p,
.single-event .post-content-inner p {
    font-size: 1.25rem !important;
    font-weight: 600 !important;
    line-height: 1.8 !important;
    color: #fff !important;
}

/* -------------------------------------------------------
   HIDE TAGS
------------------------------------------------------- */
.single-event .post-meta,
.single-event .tags-links,
.single-event a[rel="tag"],
.single-event .form_title,
.single-event .et_pb_text_inner p:has(a[rel="tag"]),
.single-event .et_pb_text_inner:has(a[rel="tag"]) {
    display: none !important;
}

/* -------------------------------------------------------
   OTHER EVENTS SECTION (tina_blog_3)
   Stack below main content, display as horizontal grid
------------------------------------------------------- */

/* Stack the two columns vertically */
.single-event .tina_blog_3 > .et_pb_row {
    flex-direction: column !important;
    align-items: center !important;
}
.single-event .tina_blog_3 > .et_pb_row > .et_pb_column {
    width: 100% !important;
    max-width: 960px !important;
    margin: 0 auto !important;
    float: none !important;
}

/* Put sidebar events (first column in DOM) below main content */
.single-event .tina_blog_3 > .et_pb_row > .et_pb_column:first-child {
    order: 2;
    margin-top: 60px !important;
    padding-top: 40px !important;
    border-top: 1px solid rgba(255,255,255,0.15);
}

/* =================================================================
   PCOC HOMEPAGE v2.0 — Class-based support layer
   Targets named CSS classes injected via Divi block htmlAttributes.
   Sections: .pcoc-hero · .pcoc-welcome · .pcoc-featured-event
             .pcoc-plan-visit · .pcoc-latest-sermon
================================================================= */

/* ---- Page background: unified aurora canvas ----
   One continuous aurora mesh sits on the page container. Light sections
   (Welcome, Featured, About) render transparent so the canvas shows through —
   no per-section backgrounds, no seams. Dark/solid sections (Hero video,
   Plan Your Visit, Sermon, Photos) cover the canvas where they render.
   Applied to homepage AND inner pages so every page shares the same canvas. */
/* ---- Aurora canvas ----
   Parallax (fixed-attachment) preserved. Squashed-pattern feel solved by:
     1. Fewer, larger color pools (4 not 6) at deliberate viewport positions
     2. A wide conic gradient sweep underneath for ambient lighting depth
     3. Warm cream base (slight peach) instead of pure off-white — anchors warmth
     4. A slow drift animation on a top color layer so the canvas feels alive
        even while pinned to the viewport
*/
.home #page-container,
body.page:not(.home) #page-container,
body.single-event #page-container,
body.single-bulletin #page-container,
body.single-post #page-container {
    background:
        /* Top-right warm coral pool (large, soft) */
        radial-gradient(ellipse 60vw 55vh at 88% 12%, rgba(232,98,42,0.42) 0%, rgba(232,98,42,0) 60%),
        /* Top-left lake-blue pool (large, atmospheric) */
        radial-gradient(ellipse 65vw 60vh at 8% 22%, rgba(40,160,200,0.44) 0%, rgba(40,160,200,0) 60%),
        /* Mid-right deep-teal anchor (gives depth + chapter contrast) */
        radial-gradient(ellipse 70vw 65vh at 92% 60%, rgba(26,79,110,0.36) 0%, rgba(26,79,110,0) 65%),
        /* Bottom-left sage cloud (warm, growing-things vibe) */
        radial-gradient(ellipse 65vw 60vh at 12% 88%, rgba(111,174,155,0.42) 0%, rgba(111,174,155,0) 63%),
        /* Subtle conic ambient sweep — cycles through brand */
        conic-gradient(from 35deg at 50% 50%,
            rgba(40,160,200,0.04) 0%,
            rgba(232,98,42,0.05) 25%,
            rgba(111,174,155,0.04) 50%,
            rgba(26,79,110,0.04) 75%,
            rgba(40,160,200,0.04) 100%),
        /* Near-white base with a whisper of warmth */
        #fdfcf8 !important;
    background-attachment: fixed, fixed, fixed, fixed, fixed, scroll !important;
    position: relative;
}
/* Paint html with the SAME Aurora canvas as #page-container so the 92px
   strip above body (reserved for the fixed header) shows the canvas
   continuing seamlessly through the transparent header — not white. */
html {
    background:
        radial-gradient(ellipse 60vw 55vh at 88% 12%, rgba(232,98,42,0.42) 0%, rgba(232,98,42,0) 60%),
        radial-gradient(ellipse 65vw 60vh at 8% 22%, rgba(40,160,200,0.44) 0%, rgba(40,160,200,0) 60%),
        radial-gradient(ellipse 70vw 65vh at 92% 60%, rgba(26,79,110,0.36) 0%, rgba(26,79,110,0) 65%),
        radial-gradient(ellipse 65vw 60vh at 12% 88%, rgba(111,174,155,0.42) 0%, rgba(111,174,155,0) 63%),
        conic-gradient(from 35deg at 50% 50%,
            rgba(40,160,200,0.04) 0%,
            rgba(232,98,42,0.05) 25%,
            rgba(111,174,155,0.04) 50%,
            rgba(26,79,110,0.04) 75%,
            rgba(40,160,200,0.04) 100%),
        #fdfcf8 !important;
    background-attachment: fixed, fixed, fixed, fixed, fixed, scroll !important;
}
body {
    background-color: transparent !important;
}

/* Drifting overlay — same canvas with offsets, animated very slowly so
   the page feels alive even though the base is pinned. Pinned itself
   (position: fixed) so the parallax effect is preserved. */
.home #page-container::after,
body.page:not(.home) #page-container::after,
body.single-event #page-container::after,
body.single-bulletin #page-container::after,
body.single-post #page-container::after {
    content: "";
    position: fixed;
    inset: 0;
    background:
        radial-gradient(ellipse 55vw 50vh at 70% 35%, rgba(232,98,42,0.10) 0%, rgba(232,98,42,0) 65%),
        radial-gradient(ellipse 60vw 55vh at 25% 70%, rgba(40,160,200,0.09) 0%, rgba(40,160,200,0) 65%);
    pointer-events: none;
    z-index: 0;
    animation: pcoc-aurora-drift 48s ease-in-out infinite alternate;
}
@keyframes pcoc-aurora-drift {
    0%   { transform: translate3d(0, 0, 0) scale(1); opacity: 1; }
    50%  { transform: translate3d(40px, -30px, 0) scale(1.06); opacity: 0.9; }
    100% { transform: translate3d(-30px, 30px, 0) scale(1.04); opacity: 0.95; }
}
@media (prefers-reduced-motion: reduce) {
    .home #page-container::after,
    body.page:not(.home) #page-container::after,
    body.single-event #page-container::after,
    body.single-bulletin #page-container::after,
    body.single-post #page-container::after {
        animation: none;
    }
}

/* Subtle SVG noise grain overlay — pinned to viewport, very low opacity.
   Removes the "flat gradient" feel and adds tactile warmth. */
.home #page-container::before,
body.page:not(.home) #page-container::before {
    content: "";
    position: fixed;
    inset: 0;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/></svg>");
    background-size: 200px 200px;
    opacity: 0.055;
    pointer-events: none;
    z-index: 0;
    mix-blend-mode: multiply;
}
.home #et-main-area,
.home #main-content,
body.page:not(.home) #et-main-area,
body.page:not(.home) #main-content,
body.single-event #et-main-area,
body.single-event #main-content,
body.single-bulletin #et-main-area,
body.single-bulletin #main-content,
body.single-post #et-main-area,
body.single-post #main-content {
    background: transparent !important;
}

/* ---- Plan Your Visit row: override Divi video-overlay position:absolute index collision ---- */
/* The hero video background generates a rule for .et_pb_row_4 {position:absolute; height:100%}
   which also matches the PYV row (same global index). Override here with high-specificity. */
.pcoc-plan-visit .et_pb_row {
    position: relative !important;
    height: auto !important;
    inset: auto !important;
}

/* ---- Shared section rhythm — padding on rows avoids Divi flex-section height collapse ---- */
/* Zero the section-level padding — Divi adds ~54-79px default on sections which
   compounds with row padding. Let row padding (below) be the single source. */
.pcoc-welcome,
.pcoc-featured-event,
.pcoc-plan-visit,
.pcoc-latest-sermon {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
/* Offset so the "Watch Welcome Video" CTA's scrollIntoView lands the section
   below the sticky header instead of behind it. */
.pcoc-welcome { scroll-margin-top: 100px; }

/* Unified vertical rhythm — clamp-based so spacing scales with viewport.
   Desktop: 64-84px. Tablet: 56px. Mobile: 40px. Prevents the 200px+ gaps
   that compounded when two adjacent sections each had 100px padding. */
.pcoc-welcome .et_pb_row,
.pcoc-featured-event .et_pb_row,
.pcoc-plan-visit .et_pb_row,
.pcoc-latest-sermon .et_pb_row {
    padding-top: clamp(56px, 7vh, 84px) !important;
    padding-bottom: clamp(56px, 7vh, 84px) !important;
}
/* Avoid double-padding when multiple rows stack in one section */
.pcoc-featured-event .et_pb_row + .et_pb_row {
    padding-top: 0 !important;
}
@media (max-width: 980px) {
    .pcoc-welcome .et_pb_row,
    .pcoc-featured-event .et_pb_row,
    .pcoc-plan-visit .et_pb_row,
    .pcoc-latest-sermon .et_pb_row {
        padding-top: 56px !important;
        padding-bottom: 56px !important;
    }
}
@media (max-width: 600px) {
    .pcoc-welcome .et_pb_row,
    .pcoc-featured-event .et_pb_row,
    .pcoc-plan-visit .et_pb_row,
    .pcoc-latest-sermon .et_pb_row {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
    }
}
/* PCOC-8 — on mobile the columns stack, so the "A Welcome from Pastor Lance"
   block (the text module right before the video) sits flush under the cards
   above it. Add breathing room above it. Matched structurally (text immediately
   followed by the video) so it's not tied to a module index. */
@media (max-width: 980px) {
    .pcoc-welcome .et_pb_text:has(+ .et_pb_video) {
        margin-top: 44px !important;
    }
}

/* ---- Section backgrounds ---- */
/* Divi generates .et-l--post > .et_builder_inner_content .et_pb_section.et_pb_section_N
   with !important at (0,4,0) specificity. We need (0,4,2) to beat it. */
html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-welcome {
    background: transparent !important;
    background-color: transparent !important;
    position: relative !important;
    overflow: visible !important;
}
/* Latest Sermon: transparent — sits on the unified aurora canvas. */
html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-latest-sermon {
    background: transparent !important;
    background-color: transparent !important;
}
/* Featured Event: transparent — sits on the unified aurora canvas (#page-container). */
html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-featured-event {
    background: transparent !important;
    background-color: transparent !important;
    position: relative !important;
    overflow: visible !important;
}
/* Plan Your Visit — deep-teal base with BOLD aurora blobs. Dark surfaces swallow
   low-opacity gradients, so these are deliberately hotter + one bright spotlight. */
html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-plan-visit {
    background:
        /* bright lake-blue spotlight, top-left quadrant */
        radial-gradient(ellipse 70vw 55vh at 5% 10%, rgba(60,190,230,0.55) 0%, rgba(40,160,200,0) 55%),
        /* lake-glass mid-right */
        radial-gradient(ellipse 55vw 50vh at 95% 35%, rgba(130,200,180,0.42) 0%, rgba(111,174,155,0) 58%),
        /* coral ember bottom-left */
        radial-gradient(ellipse 50vw 42vh at 10% 100%, rgba(255,130,70,0.32) 0%, rgba(232,98,42,0) 60%),
        /* secondary lake-blue bottom-right */
        radial-gradient(ellipse 60vw 48vh at 88% 95%, rgba(60,190,230,0.30) 0%, rgba(40,160,200,0) 60%),
        var(--pcoc-deep-teal) !important;
    background-color: var(--pcoc-deep-teal) !important;
    position: relative !important;
    overflow: hidden !important;
}
/* Decorative light ribbon across the section — adds depth + motion */
html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-plan-visit::before {
    content: "";
    position: absolute;
    top: -10%;
    left: -15%;
    right: -15%;
    height: 140%;
    background:
        radial-gradient(circle at 20% 30%, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0) 28%),
        radial-gradient(circle at 75% 70%, rgba(255,255,255,0.07) 0%, rgba(255,255,255,0) 28%);
    pointer-events: none;
    z-index: 0;
}
/* Keep row/column above the aurora layers */
.pcoc-plan-visit .et_pb_row,
.pcoc-plan-visit .et_pb_column {
    position: relative;
    z-index: 1;
}
/* Constrain row to proper container width + horizontal padding.
   Divi flex-row has no max-width by default on full-width sections. */
html body .et-l--post .et_builder_inner_content .pcoc-plan-visit .et_pb_row {
    max-width: 1200px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: clamp(24px, 4vw, 48px) !important;
    padding-right: clamp(24px, 4vw, 48px) !important;
}

/* ---- Centered section intros ---- */
.pcoc-section-intro {
    text-align: center !important;
}
.pcoc-section-intro h2 {
    font-size: clamp(2.3rem, 4.5vw, 3.4rem) !important;
    color: var(--pcoc-charcoal) !important;
    margin-bottom: 14px !important;
    letter-spacing: -0.035em !important;
    line-height: 1.1 !important;
}
.pcoc-section-sub {
    font-size: 1.15rem !important;
    color: rgba(30, 30, 46, 0.65) !important;
    line-height: 1.7 !important;
    max-width: 62ch;
    margin: 0 auto !important;
    text-align: center !important;
}

/* =================================================================
   HERO
================================================================= */
.pcoc-hero {
    position: relative !important;
    overflow: hidden !important;
    min-height: 100vh !important;
    padding: 0 !important;
}

/* Left-weighted overlay — darker left for text, lighter right for video life.
   Two-layer gradient: a vertical layer that lifts the TOP band (where the
   header/logo sits) so the dark logo stays legible, plus the horizontal
   left-weighted layer for hero text contrast lower down. */
.pcoc-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        /* Vertical: light at top (header area), darker as it descends */
        linear-gradient(180deg,
            rgba(8, 22, 34, 0.10) 0%,
            rgba(8, 22, 34, 0.10) 130px,
            rgba(8, 22, 34, 0.45) 280px,
            rgba(8, 22, 34, 0.55) 100%
        ),
        /* Horizontal: left-weighted for headline legibility */
        linear-gradient(105deg,
            rgba(8, 22, 34, 0.55) 0%,
            rgba(26, 79, 110, 0.45) 45%,
            rgba(8, 22, 34, 0.10) 100%
        );
    z-index: 1;
    pointer-events: none;
}

/* Hero: rows/columns above overlay */
.pcoc-hero .et_pb_row,
.pcoc-hero .et_pb_column {
    position: relative;
    z-index: 2;
}

/* Hero inner column: left-aligned, padded.
   TOP padding must always exceed the fixed header height (~107px desktop) so the
   hero content never slides under the nav on short viewports. The MIN of the top
   clamp is therefore 124px (header + breathing room); bottom can stay smaller. */
.pcoc-hero-col {
    padding: clamp(124px, 13vh, 150px) clamp(32px, 4vw, 80px) clamp(80px, 9vh, 110px) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    max-width: 920px !important;
}
/* Mobile hero: symmetric vertical padding so flex `justify-content: center`
   actually centers the content in the 100vh hero. Top-heavy padding was pushing
   content below visual center. Header overlay is transparent so ~72px clears it. */
@media (max-width: 980px) {
    .pcoc-hero-col {
        padding: 108px 24px 80px !important;   /* top clears the mobile header */
        max-width: 100% !important;
    }
}
@media (max-width: 600px) {
    .pcoc-hero-col {
        padding: 100px 20px 72px !important;
    }
}

/* Strip Divi default module chrome from hero modules */
.pcoc-hero .et_pb_module {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-bottom: 0 !important;
}

/* Eyebrow pill (default — used on inner pages over light Aurora) */
.pcoc-eyebrow {
    display: inline-flex !important;
    align-items: center !important;
    padding: 5px 16px !important;
    border: 1px solid rgba(255,255,255,0.25) !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,0.09) !important;
    color: rgba(255,255,255,0.88) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    margin-bottom: 1.2rem !important;
    backdrop-filter: blur(10px);
}

/* Hero-specific eyebrow — over the homepage hero video. Needs dark glass
   for legibility on any video frame, and a tighter gap to the headline. */
.pcoc-hero .pcoc-eyebrow {
    background: rgba(15, 30, 45, 0.45) !important;
    border-color: rgba(255, 255, 255, 0.30) !important;
    color: #ffffff !important;
    backdrop-filter: blur(14px) saturate(1.4) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.4) !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.20),
                inset 0 1px 0 rgba(255, 255, 255, 0.08);
    margin-bottom: 0.5rem !important;
}

/* Hero H1 */
.pcoc-hero h1 {
    color: var(--pcoc-white) !important;
    font-size: clamp(3.8rem, 8vw, 7.5rem) !important;
    line-height: 0.93 !important;
    letter-spacing: -0.035em !important;
    margin: 0 0 0.3rem !important;
    text-shadow: 0 8px 32px rgba(0,0,0,0.22);
    max-width: 14ch;
}
@media (max-width: 767px) {
    .pcoc-hero h1 {
        font-size: clamp(2.6rem, 10vw, 4rem) !important;
        max-width: 100% !important;
        overflow-wrap: break-word !important;
    }
}

/* Rotating value */
.pcoc-rotating-value {
    display: block !important;
    color: var(--pcoc-lake-blue) !important;
    min-height: 1em;
    text-shadow: 0 0 30px rgba(40,160,200,0.30);
}

/* Support sentence */
.pcoc-hero-support {
    color: rgba(255,255,255,0.88) !important;
    font-size: clamp(1rem, 1.5vw, 1.18rem) !important;
    line-height: 1.65 !important;
    max-width: 52ch;
    margin: 1.4rem 0 2rem !important;
}

/* CTA button row */
.pcoc-hero .et_pb_code,
.pcoc-hero .et_pb_code_inner {
    width: 100% !important;
    align-self: stretch !important;
    text-align: center !important;
}
.pcoc-hero-ctas {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
}
.pcoc-btn {
    display: inline-block;
    padding: 16px 36px;
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: 0.95rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none !important;
    transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
    white-space: nowrap;
    cursor: pointer;
}
.pcoc-btn-primary {
    background: #fff !important;
    color: var(--pcoc-deep-teal) !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.25);
}
.pcoc-btn-primary:hover {
    background: rgba(255,255,255,0.90) !important;
    color: var(--pcoc-deep-teal) !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(0,0,0,0.32);
}
.pcoc-btn-outline {
    background: transparent !important;
    color: #fff !important;
    border: 2px solid rgba(255,255,255,0.75) !important;
}
.pcoc-btn-outline:hover {
    background: rgba(255,255,255,0.12) !important;
    border-color: #fff !important;
    color: #fff !important;
    transform: translateY(-2px);
}

/* =================================================================
   WELCOME / IDENTITY
================================================================= */
.pcoc-welcome h2 {
    font-size: clamp(2.2rem, 4.2vw, 3.2rem) !important;
    color: var(--pcoc-charcoal) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.035em !important;
    margin-bottom: 1.1rem !important;
}
.pcoc-welcome p {
    color: rgba(30,30,46,0.80) !important;
    font-size: 1.05rem !important;
    line-height: 1.7 !important;
    margin-bottom: 0 !important;
}
.pcoc-welcome-left {
    padding-right: 52px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}
/* Force Welcome to single column at ≤980px.
   Uses html body .et-l--post prefix to beat Divi's column-width rules
   (0,4,x specificity). Divi sizes columns in px based on a flex-row layout;
   we have to override width AND flex-basis to prevent horizontal overflow.
   flex-wrap: wrap + isolation creates own stacking context so left/right
   cols can never visually overlap during resize reflow. */
@media (max-width: 980px) {
    html body .et-l--post .pcoc-welcome .et_pb_row {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: wrap !important;
        gap: 0 !important;
        align-items: stretch !important;
    }
    html body .et-l--post .pcoc-welcome .et_pb_row > .et_pb_column {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 auto !important;
        margin-right: 0 !important;
        margin-bottom: 0 !important;
        position: relative !important;
        isolation: isolate !important;
    }
    .pcoc-welcome-left {
        padding-right: 0 !important;
        margin-bottom: 36px !important;
    }
    /* Disable View Timeline animations on resize-prone columns to prevent
       mid-animation transform residue from appearing as overlap. */
    .pcoc-welcome .pcoc-welcome-left > .et_pb_module,
    .pcoc-welcome .pcoc-welcome-right > .et_pb_module,
    .pcoc-welcome .pcoc-proof-points li {
        animation: none !important;
        transform: none !important;
        opacity: 1 !important;
    }
}

/* Eyebrow — small-caps label above heading, with leading dash.
   Higher-specificity selector prevents .pcoc-welcome p from overriding color. */
.pcoc-welcome p.pcoc-eyebrow,
.pcoc-eyebrow {
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: var(--pcoc-lake-blue) !important;
    line-height: 1.2 !important;
    margin: 0 0 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 12px !important;
}
.pcoc-eyebrow::before {
    content: "";
    display: inline-block;
    width: 32px;
    height: 2px;
    background: linear-gradient(90deg, var(--pcoc-deep-teal), var(--pcoc-lake-blue));
    border-radius: 2px;
}

/* Gradient accent word inside h2 — teal→coral. Degrades if span removed. */
.pcoc-accent-word {
    background: linear-gradient(135deg,
        var(--pcoc-deep-teal) 0%,
        var(--pcoc-lake-blue) 45%,
        var(--pcoc-coral) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    font-weight: 800;
}

/* Proof points — glass pills with colored icon circles */
.pcoc-proof-points {
    list-style: none !important;
    padding: 0 !important;
    margin: 1.5rem 0 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}
.pcoc-proof-points li {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: var(--pcoc-charcoal) !important;
    margin-bottom: 0 !important;
    padding: 12px 18px !important;
    background: rgba(255,255,255,0.70) !important;
    backdrop-filter: blur(16px) saturate(160%);
    -webkit-backdrop-filter: blur(16px) saturate(160%);
    border: 1px solid rgba(255,255,255,0.85) !important;
    border-radius: 14px !important;
    box-shadow:
        0 6px 24px rgba(26,79,110,0.10),
        inset 0 1px 0 rgba(255,255,255,0.9);
    transition: transform 0.3s cubic-bezier(0.2,0.8,0.2,1),
                box-shadow 0.3s ease,
                border-color 0.3s ease !important;
}
.pcoc-proof-points li:hover {
    transform: translateX(4px) translateY(-2px);
    box-shadow:
        0 10px 32px rgba(26,79,110,0.15),
        inset 0 1px 0 rgba(255,255,255,0.95);
    border-color: rgba(40,160,200,0.5) !important;
}
.pcoc-proof-points li::before {
    content: "" !important;
    width: 38px;
    height: 38px;
    border-radius: 50% !important;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 54% 54%;
    flex-shrink: 0;
    color: transparent;
    font-size: 0;
    box-shadow: 0 4px 14px rgba(26,79,110,0.25);
}
/* Icon 1 — Cross on deep-teal circle */
.pcoc-proof-points li:nth-child(1)::before {
    background-color: var(--pcoc-deep-teal);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M10 9V5l-3 1V4l3-1h2v6h3v2h-3v9h-2v-9H7v-2z'/></svg>");
    box-shadow: 0 4px 14px rgba(26,79,110,0.40);
}
/* Icon 2 — Users on lake-glass circle */
.pcoc-proof-points li:nth-child(2)::before {
    background-color: var(--pcoc-lake-glass);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/><circle cx='9' cy='7' r='4'/><path d='M22 21v-2a4 4 0 0 0-3-3.87'/><path d='M16 3.13a4 4 0 0 1 0 7.75'/></svg>");
    box-shadow: 0 4px 14px rgba(111,174,155,0.45);
}
/* Icon 3 — Heart on coral circle */
.pcoc-proof-points li:nth-child(3)::before {
    background-color: var(--pcoc-coral);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.29 1.51 4.04 3 5.5l7 7Z'/></svg>");
    box-shadow: 0 4px 14px rgba(232,98,42,0.45);
}

/* Video label */
.pcoc-video-label {
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: var(--pcoc-lake-blue) !important;
    margin-bottom: 10px !important;
}

/* Right column — stacks above aurora section bg */
.pcoc-welcome-right {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    position: relative !important;
    z-index: 1;
}

/* Values chip under video — glass pill with coral-dot separators */
.pcoc-values-chip {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px 14px !important;
    margin: 22px auto 0 !important;
    padding: 12px 22px !important;
    background: rgba(255,255,255,0.75) !important;
    backdrop-filter: blur(16px) saturate(160%);
    -webkit-backdrop-filter: blur(16px) saturate(160%);
    border: 1px solid rgba(255,255,255,0.85) !important;
    border-radius: 999px !important;
    box-shadow:
        0 8px 28px rgba(26,79,110,0.12),
        inset 0 1px 0 rgba(255,255,255,0.9);
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    color: var(--pcoc-deep-teal) !important;
    width: fit-content !important;
    max-width: 100% !important;
}
.pcoc-values-chip span {
    display: inline-flex;
    align-items: center;
    line-height: 1.2;
}
.pcoc-values-chip span:not(:last-child)::after {
    content: "";
    display: inline-block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--pcoc-coral);
    margin-left: 14px;
    box-shadow: 0 0 8px rgba(232,98,42,0.6);
}

/* Welcome video card — clean iframe frame (rounded + shadow + hover lift).
   The Divi video module renders the real YouTube embed; we don't draw a
   facade poster or custom play button on top of it. */
.pcoc-welcome .et_pb_video {
    border-radius: 20px !important;
    overflow: hidden !important;
    box-shadow: 0 24px 64px rgba(26,79,110,0.22) !important;
    position: relative !important;
}
.pcoc-welcome .et_pb_video_box {
    border-radius: 20px !important;
    overflow: hidden !important;
    background: transparent !important;
}

/* Welcome animations are now configured natively per-module via the Divi 5
   builder's Animation tab. The attrs are stored under
   `module.decoration.animation.desktop.value` in the page's post_content. */

/* =================================================================
   FEATURED EVENT — split-panel glass card on aurora mesh
================================================================= */
/* Divi collision guard: global index-based width rules can set columns to 32% etc. */
.pcoc-featured-event .et_pb_column {
    width: 100% !important;
}
/* Kill Divi 5's default flex-section row gap (60px) — let the clamp-based
   row padding be the single source of spacing between intro and card. */
.pcoc-featured-event {
    row-gap: 0 !important;
}
/* Rows/columns stack above aurora mesh bg */
.pcoc-featured-event .et_pb_row,
.pcoc-featured-event .et_pb_column {
    position: relative;
    z-index: 1;
}
/* Center intro eyebrow + heading + subtext */
.pcoc-featured-event .pcoc-section-intro .pcoc-eyebrow {
    justify-content: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.pcoc-featured-event .et_pb_text h2 {
    text-align: center !important;
}
.pcoc-featured-event h2 {
    font-size: clamp(2.2rem, 4vw, 3.2rem) !important;
    color: var(--pcoc-charcoal) !important;
    letter-spacing: -0.035em !important;
    margin-bottom: 14px !important;
    line-height: 1.1 !important;
}

/* Reset Divi's code module chrome around the card */
.pcoc-featured-event .et_pb_code_inner {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 auto !important;
    max-width: 1240px;
}

/* ---- Split-panel card ---- */
.pcoc-fe-card {
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    align-items: stretch;
    gap: 0;
    background: rgba(255,255,255,0.72);
    backdrop-filter: blur(22px) saturate(170%);
    -webkit-backdrop-filter: blur(22px) saturate(170%);
    border: 1px solid rgba(255,255,255,0.88);
    border-radius: 28px;
    overflow: hidden;
    box-shadow:
        0 30px 80px rgba(26,79,110,0.18),
        0 6px 18px rgba(26,79,110,0.08),
        inset 0 1px 0 rgba(255,255,255,0.95);
    transition: transform 0.4s cubic-bezier(0.2,0.8,0.2,1),
                box-shadow 0.4s ease;
}
.pcoc-fe-card:hover {
    transform: translateY(-6px);
    box-shadow:
        0 40px 100px rgba(26,79,110,0.24),
        0 8px 24px rgba(26,79,110,0.10),
        inset 0 1px 0 rgba(255,255,255,1);
}

/* Left media panel */
.pcoc-fe-card__media {
    position: relative;
    display: block;
    min-height: 480px;
    background-size: cover !important;
    background-position: center !important;
    text-decoration: none !important;
    overflow: hidden;
    transition: transform 0.6s cubic-bezier(0.2,0.8,0.2,1);
}
.pcoc-fe-card:hover .pcoc-fe-card__media {
    transform: scale(1.03);
}
.pcoc-fe-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(8,22,34,0.05) 0%,
        rgba(8,22,34,0.15) 55%,
        rgba(8,22,34,0.38) 100%
    );
    pointer-events: none;
    transition: opacity 0.35s ease;
}

/* Featured / Coming up badge, top-left of media */
.pcoc-fe-card__badge {
    position: absolute;
    top: 22px;
    left: 22px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 16px 8px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,0.96);
    color: var(--pcoc-coral);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    box-shadow: 0 8px 22px rgba(26,79,110,0.22);
    backdrop-filter: blur(8px);
}
.pcoc-fe-card__badge::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--pcoc-coral);
    box-shadow: 0 0 0 3px rgba(232,98,42,0.22);
    animation: pcocPulse 2.2s ease-in-out infinite;
}
@keyframes pcocPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: 0.6; transform: scale(0.85); }
}
.pcoc-fe-card__badge--inline {
    position: static;
    margin-bottom: 16px;
    align-self: flex-start;
}

/* Right content panel */
.pcoc-fe-card__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 56px 60px;
    gap: 18px;
}

/* Date chip with coral dot — small pill */
.pcoc-fe-card__date {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    align-self: flex-start;
    padding: 8px 16px 8px 14px;
    border-radius: 999px;
    background: rgba(40,160,200,0.08);
    border: 1px solid rgba(40,160,200,0.18);
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--pcoc-deep-teal);
    margin: 0 !important;
    line-height: 1.3;
}
.pcoc-fe-card__date-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--pcoc-coral);
    box-shadow: 0 0 0 3px rgba(232,98,42,0.18);
    flex-shrink: 0;
}
.pcoc-fe-card__date-sep {
    color: rgba(26,79,110,0.35);
    font-weight: 500;
}
.pcoc-fe-card__date-time {
    color: rgba(26,79,110,0.75);
    font-weight: 600;
}

/* Title */
.pcoc-fe-card__title {
    font-size: clamp(1.75rem, 2.8vw, 2.35rem) !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.032em !important;
    color: var(--pcoc-charcoal) !important;
    margin: 0 !important;
}
.pcoc-fe-card__title a,
.pcoc-fe-card__title a:visited {
    color: var(--pcoc-charcoal) !important;
    text-decoration: none !important;
    background-image: linear-gradient(var(--pcoc-lake-blue), var(--pcoc-lake-blue));
    background-size: 0 2px;
    background-position: 0 100%;
    background-repeat: no-repeat;
    transition: background-size 0.35s ease, color 0.2s ease;
}
.pcoc-fe-card__title a:hover {
    color: var(--pcoc-deep-teal) !important;
    background-size: 100% 2px;
}

/* Excerpt */
.pcoc-fe-card__excerpt {
    font-size: 1.0625rem !important;
    line-height: 1.7 !important;
    color: rgba(30,30,46,0.72) !important;
    margin: 0 !important;
    max-width: 52ch;
}

/* Primary CTA on the card — lake-glass pill */
.pcoc-fe-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    align-self: flex-start;
    margin-top: 10px;
    padding: 14px 28px;
    border-radius: 999px;
    background: var(--pcoc-coral);
    color: #fff !important;
    font-family: 'Inter', sans-serif;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none !important;
    box-shadow: 0 12px 28px rgba(232,98,42,0.32);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.pcoc-fe-card__cta:hover {
    background: #cf531f;
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 16px 36px rgba(232,98,42,0.42);
}
.pcoc-fe-card__cta-arrow {
    transition: transform 0.25s ease;
}
.pcoc-fe-card__cta:hover .pcoc-fe-card__cta-arrow {
    transform: translateX(4px);
}

/* No-media variant — single column glass card */
.pcoc-fe-card--no-media {
    grid-template-columns: 1fr;
}
.pcoc-fe-card--no-media .pcoc-fe-card__body {
    padding: 40px 44px;
}

/* Empty state */
.pcoc-fe-empty {
    text-align: center;
    color: rgba(30,30,46,0.6) !important;
    font-style: italic;
    margin: 20px 0 !important;
}

/* "View All Events" secondary button below card */
.pcoc-featured-event a.pcoc-btn-secondary.et_pb_button,
.pcoc-featured-event .pcoc-btn-secondary.et_pb_button {
    display: inline-block !important;
    margin: 36px auto 0 !important;
    padding: 14px 32px !important;
    border: 2px solid var(--pcoc-deep-teal) !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: var(--pcoc-deep-teal) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease !important;
}
.pcoc-featured-event a.pcoc-btn-secondary.et_pb_button::after,
.pcoc-featured-event .pcoc-btn-secondary.et_pb_button::after {
    display: none !important;
}
.pcoc-featured-event a.pcoc-btn-secondary.et_pb_button:hover,
.pcoc-featured-event .pcoc-btn-secondary.et_pb_button:hover {
    background: var(--pcoc-deep-teal) !important;
    color: #fff !important;
    transform: translateY(-2px);
}
/* Center the secondary button in its row */
.pcoc-featured-event .et_pb_button_module_wrapper:has(.pcoc-btn-secondary) {
    text-align: center !important;
}

/* Featured Event card animation is configured natively in the Divi 5 builder's
   Animation tab on the Featured Event modules. */
@media (prefers-reduced-motion: reduce) {
    .pcoc-fe-card__media,
    .pcoc-fe-card__badge::before {
        animation: none !important;
        transition: none !important;
    }
}

/* ---- Mobile: stack card vertically ---- */
@media (max-width: 880px) {
    .pcoc-fe-card {
        grid-template-columns: 1fr;
        border-radius: 22px;
    }
    .pcoc-fe-card__media {
        min-height: 260px;
        aspect-ratio: 16 / 9;
    }
    .pcoc-fe-card__body {
        padding: 32px 26px;
        gap: 16px;
    }
    .pcoc-fe-card__title {
        font-size: 1.55rem !important;
    }
    .pcoc-featured-event .pcoc-section-intro h2 {
        text-align: center !important;
    }
}

/* =================================================================
   PLAN YOUR VISIT
================================================================= */
.pcoc-plan-visit h1,
.pcoc-plan-visit h2,
.pcoc-plan-visit h3,
.pcoc-plan-visit h4,
.pcoc-plan-visit p,
.pcoc-plan-visit li {
    color: var(--pcoc-white) !important;
}
.pcoc-plan-visit h2 {
    font-size: clamp(2.6rem, 5.2vw, 4.2rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.045em !important;
    margin-bottom: 1.2rem !important;
    font-weight: 800 !important;
}
.pcoc-plan-visit p {
    color: rgba(255,255,255,0.82) !important;
    font-size: 1.04rem !important;
    line-height: 1.75 !important;
}
.pcoc-pyv-left {
    padding-right: 52px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    position: relative;
}
/* Decorative aurora orb — a big blurred gradient bubble floating behind the left
   content for dimensional pop. Sits below content via z-index:0. */
.pcoc-pyv-left::before {
    content: "";
    position: absolute;
    top: -60px;
    left: -80px;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 40% 35%, rgba(120,220,255,0.55) 0%, rgba(60,190,230,0.30) 40%, rgba(40,160,200,0) 72%);
    filter: blur(8px);
    pointer-events: none;
    z-index: 0;
    animation: pcocOrbDrift 12s ease-in-out infinite;
}
.pcoc-pyv-left::after {
    content: "";
    position: absolute;
    bottom: -40px;
    left: 20%;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 50% 50%, rgba(255,150,90,0.40) 0%, rgba(232,98,42,0.22) 45%, rgba(232,98,42,0) 72%);
    filter: blur(10px);
    pointer-events: none;
    z-index: 0;
    animation: pcocOrbDrift 14s ease-in-out infinite reverse;
}
.pcoc-pyv-left > .et_pb_module {
    position: relative;
    z-index: 1;
}
@keyframes pcocOrbDrift {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(18px, -24px) scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
    .pcoc-pyv-left::before,
    .pcoc-pyv-left::after { animation: none; }
}
/* Eyebrow pill + accent rule — placed on the first text module's .et_pb_text_inner
   so they render inside the module's content flow (before h2, after h2). */
.pcoc-pyv-left > .et_pb_module:first-child {
    position: relative;
}
.pcoc-pyv-left > .et_pb_module:first-child .et_pb_text_inner::before {
    content: "START HERE";
    display: inline-flex;
    align-items: center;
    padding: 8px 18px 8px 32px;
    margin-bottom: 22px;
    border-radius: 999px;
    background: rgba(255,255,255,0.10);
    backdrop-filter: blur(10px) saturate(140%);
    -webkit-backdrop-filter: blur(10px) saturate(140%);
    border: 1px solid rgba(255,255,255,0.22);
    box-shadow: 0 6px 20px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.28);
    color: var(--pcoc-white);
    font-family: 'Inter', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.20em;
    text-transform: uppercase;
    white-space: nowrap;
    position: relative;
}
/* Coral pulsing dot positioned inside the eyebrow pill */
.pcoc-pyv-left > .et_pb_module:first-child::before {
    content: "";
    position: absolute;
    top: 14px;
    left: 16px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--pcoc-coral);
    box-shadow: 0 0 0 3px rgba(232,98,42,0.28), 0 0 14px rgba(232,98,42,0.7);
    animation: pcocPulse 2.2s ease-in-out infinite;
    z-index: 2;
    pointer-events: none;
}
/* Heading glow */
.pcoc-plan-visit h2 {
    text-shadow: 0 0 40px rgba(60,190,230,0.35);
}
/* Gradient accent rule below heading */
.pcoc-pyv-left > .et_pb_module:first-child .et_pb_text_inner::after {
    content: "";
    display: block;
    margin-top: 20px;
    width: 80px;
    height: 3px;
    border-radius: 3px;
    background: linear-gradient(90deg, var(--pcoc-lake-blue) 0%, var(--pcoc-lake-glass) 50%, var(--pcoc-coral) 100%);
    box-shadow: 0 0 18px rgba(60,190,230,0.45);
}
@media (max-width: 980px) {
    html body .et-l--post .pcoc-plan-visit .et_pb_row {
        display: flex !important;
        flex-direction: column !important;
        gap: 48px !important;
    }
    html body .et-l--post .pcoc-plan-visit .et_pb_row > .et_pb_column {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        margin-right: 0 !important;
        margin-bottom: 0 !important;
    }
    .pcoc-pyv-left {
        padding-right: 0 !important;
        margin-bottom: 36px !important;
    }
}

/* Glass info cards on aurora-dark — backdrop-blur, inner highlight, accent pip */
.pcoc-info-card {
    position: relative;
    background: linear-gradient(145deg, rgba(255,255,255,0.14), rgba(255,255,255,0.06)) !important;
    backdrop-filter: blur(14px) saturate(150%) !important;
    -webkit-backdrop-filter: blur(14px) saturate(150%) !important;
    border: 1px solid rgba(255,255,255,0.18) !important;
    border-radius: 16px !important;
    padding: 22px 26px 22px 30px !important;
    margin-bottom: 14px !important;
    box-shadow:
        0 12px 32px rgba(0,0,0,0.20),
        inset 0 1px 0 rgba(255,255,255,0.18) !important;
    transition: background 0.3s ease, transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease !important;
}
/* Left accent rail — colored per card for rhythm */
.pcoc-info-card::before {
    content: "";
    position: absolute;
    top: 14px;
    bottom: 14px;
    left: 12px;
    width: 3px;
    border-radius: 3px;
    background: linear-gradient(180deg, var(--pcoc-lake-blue), rgba(255,255,255,0));
    opacity: 0.7;
    transition: opacity 0.3s ease;
}
.pcoc-plan-visit .pcoc-pyv-right .et_pb_text:nth-of-type(2) .pcoc-info-card::before {
    background: linear-gradient(180deg, var(--pcoc-lake-glass), rgba(255,255,255,0));
}
.pcoc-plan-visit .pcoc-pyv-right .et_pb_text:nth-of-type(3) .pcoc-info-card::before {
    background: linear-gradient(180deg, var(--pcoc-coral), rgba(255,255,255,0));
}
.pcoc-plan-visit .pcoc-pyv-right .et_pb_text:nth-of-type(4) .pcoc-info-card::before {
    background: linear-gradient(180deg, #b8d8e6, rgba(255,255,255,0));
}
.pcoc-info-card:hover {
    background: linear-gradient(145deg, rgba(255,255,255,0.20), rgba(255,255,255,0.09)) !important;
    border-color: rgba(255,255,255,0.32) !important;
    transform: translateY(-3px) !important;
    box-shadow:
        0 18px 46px rgba(0,0,0,0.28),
        inset 0 1px 0 rgba(255,255,255,0.26) !important;
}
.pcoc-info-card:hover::before {
    opacity: 1;
}
/* Info card module itself — strip Divi chrome */
.pcoc-plan-visit .pcoc-pyv-right .et_pb_module {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-bottom: 0 !important;
}
.pcoc-info-card h4 {
    font-size: 0.98rem !important;
    font-weight: 700 !important;
    margin: 0 0 6px !important;
    color: var(--pcoc-white) !important;
}
.pcoc-info-card p {
    font-size: 0.90rem !important;
    line-height: 1.6 !important;
    margin: 0 !important;
    color: rgba(255,255,255,0.78) !important;
}

/* "Get Directions" — filled lake-glass CTA on dark (matches hero primary CTA).
   Uses #page-container ID to beat Divi's per-element `body #page-container
   .et_pb_section .et_pb_button_N` rule (1 ID + 4 classes + 2 elements). */
body #page-container .et_pb_section.pcoc-plan-visit a.pcoc-btn-outline-light.et_pb_button,
body #page-container .et_pb_section.pcoc-plan-visit .pcoc-btn-outline-light.et_pb_button {
    background: var(--pcoc-coral) !important;
    background-image: linear-gradient(135deg, #f07a45 0%, var(--pcoc-coral) 60%, #cf531f 100%) !important;
    border: 1px solid rgba(255,255,255,0.28) !important;
    color: #fff !important;
    padding: 14px 30px !important;
    border-radius: 999px !important;
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    box-shadow:
        0 14px 32px rgba(232,98,42,0.42),
        0 4px 12px rgba(0,0,0,0.28),
        inset 0 1px 0 rgba(255,255,255,0.32) !important;
    margin-top: 32px !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease !important;
}
body #page-container .et_pb_section.pcoc-plan-visit a.pcoc-btn-outline-light.et_pb_button:hover,
body #page-container .et_pb_section.pcoc-plan-visit .pcoc-btn-outline-light.et_pb_button:hover {
    background-image: linear-gradient(135deg, #f48a5c 0%, #df5e2a 60%, #b8481a 100%) !important;
    color: #fff !important;
    transform: translateY(-2px) !important;
    box-shadow:
        0 18px 44px rgba(232,98,42,0.52),
        0 6px 16px rgba(0,0,0,0.32),
        inset 0 1px 0 rgba(255,255,255,0.40) !important;
}
/* Override Divi's button-arrow color on dark */
body #page-container .et_pb_section.pcoc-plan-visit a.pcoc-btn-outline-light.et_pb_button::after,
body #page-container .et_pb_section.pcoc-plan-visit .pcoc-btn-outline-light.et_pb_button::after {
    color: #fff !important;
}

/* =================================================================
   LATEST SERMON — Aurora (video-left, text-right on light aurora canvas)
================================================================= */
/* Row gets a max-width cap — shared row-rhythm only controls top/bottom padding. */
.pcoc-latest-sermon .et_pb_row {
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding-left: clamp(24px, 4vw, 48px) !important;
    padding-right: clamp(24px, 4vw, 48px) !important;
    row-gap: 0 !important;
}
/* Kill Divi flex-section row-gap so rhythm comes only from row padding. */
.pcoc-latest-sermon {
    row-gap: 0 !important;
}

/* Section-scoped eyebrow color (inherits shared pill styling). */
.pcoc-latest-sermon .pcoc-eyebrow {
    color: var(--pcoc-lake-blue) !important;
    margin-bottom: 16px !important;
}

.pcoc-latest-sermon h2 {
    font-size: clamp(2.2rem, 4.4vw, 3.4rem) !important;
    color: var(--pcoc-charcoal) !important;
    letter-spacing: -0.035em !important;
    line-height: 1.08 !important;
    margin: 0 0 18px !important;
    font-weight: 800 !important;
}
/* Short gradient accent rule below h2 — matches PYV pattern. */
.pcoc-latest-sermon .pcoc-sermon-right .et_pb_text:first-of-type .et_pb_text_inner::after {
    content: "";
    display: block;
    width: 72px;
    height: 3px;
    margin: 2px 0 22px;
    background: linear-gradient(90deg,
        var(--pcoc-deep-teal) 0%,
        var(--pcoc-lake-blue) 55%,
        var(--pcoc-coral) 100%);
    border-radius: 3px;
}

.pcoc-latest-sermon .pcoc-section-sub {
    color: rgba(30,30,46,0.78) !important;
    font-size: 1.05rem !important;
    line-height: 1.7 !important;
    margin: 0 !important;
    max-width: 46ch !important;
}

/* Right column: text block — flex-center vertically. */
.pcoc-sermon-right {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    padding-left: 52px !important;
}

/* Left column: glass-framed video card, with drifting orb behind. */
.pcoc-sermon-left {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    position: relative !important;
    padding-right: 24px !important;
}
/* Decorative aurora orb behind video (reduced-motion aware). */
.pcoc-sermon-left::before {
    content: "";
    position: absolute;
    top: -40px;
    left: -60px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%,
        rgba(40,160,200,0.38) 0%,
        rgba(40,160,200,0.18) 45%,
        transparent 72%);
    filter: blur(8px);
    pointer-events: none;
    z-index: 0;
    animation: pcoc-sermon-orb-drift 13s ease-in-out infinite alternate;
}
.pcoc-sermon-left::after {
    content: "";
    position: absolute;
    bottom: -30px;
    right: -40px;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: radial-gradient(circle at 60% 60%,
        rgba(232,98,42,0.28) 0%,
        rgba(232,98,42,0.12) 45%,
        transparent 72%);
    filter: blur(6px);
    pointer-events: none;
    z-index: 0;
    animation: pcoc-sermon-orb-drift-2 16s ease-in-out infinite alternate;
}
@keyframes pcoc-sermon-orb-drift {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(20px, -14px) scale(1.08); }
}
@keyframes pcoc-sermon-orb-drift-2 {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(-16px, 12px) scale(1.1); }
}
@media (prefers-reduced-motion: reduce) {
    .pcoc-sermon-left::before,
    .pcoc-sermon-left::after {
        animation: none !important;
    }
}

/* Glass video frame. */
.pcoc-latest-sermon .et_pb_code_inner {
    position: relative !important;
    z-index: 1 !important;
    background: rgba(255,255,255,0.62) !important;
    backdrop-filter: blur(14px) saturate(160%);
    -webkit-backdrop-filter: blur(14px) saturate(160%);
    border: 1px solid rgba(255,255,255,0.85) !important;
    border-radius: 28px !important;
    padding: 14px !important;
    box-shadow:
        0 28px 64px rgba(26,79,110,0.22),
        0 10px 24px rgba(26,79,110,0.14),
        inset 0 1px 0 rgba(255,255,255,0.9) !important;
    transition: transform 0.4s cubic-bezier(0.2,0.8,0.2,1),
                box-shadow 0.4s ease !important;
}
.pcoc-latest-sermon .et_pb_code_inner:hover {
    transform: translateY(-4px);
    box-shadow:
        0 36px 80px rgba(26,79,110,0.28),
        0 14px 32px rgba(26,79,110,0.18),
        inset 0 1px 0 rgba(255,255,255,0.95) !important;
}

/* Sermon embed (shortcode output lives inside the glass frame). */
.pcoc-latest-sermon .pcoc-sermon-video {
    border-radius: 18px !important;
    overflow: hidden !important;
    box-shadow: 0 6px 18px rgba(26,79,110,0.14);
}
.pcoc-latest-sermon .pcoc-sermon-video iframe,
.pcoc-latest-sermon .et_pb_code_inner iframe {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    border-radius: 18px !important;
    max-width: 100% !important;
    border: none !important;
}
.pcoc-latest-sermon .pcoc-sermon-title {
    margin: 18px 4px 6px !important;
    font-size: clamp(1.05rem, 1.6vw, 1.2rem) !important;
    font-weight: 700 !important;
    color: var(--pcoc-charcoal) !important;
    line-height: 1.35 !important;
    letter-spacing: -0.01em !important;
}
.pcoc-latest-sermon .pcoc-sermon-description {
    padding: 0 4px !important;
}
.pcoc-latest-sermon .pcoc-sermon-description p {
    font-size: 0.92rem !important;
    line-height: 1.6 !important;
    color: rgba(30,30,46,0.70) !important;
    margin: 0 0 6px !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* Filled lake-glass CTA on the light aurora background.
   Must include #page-container to beat Divi's per-element button rule. */
body #page-container .et_pb_section.pcoc-latest-sermon a.pcoc-btn-primary.et_pb_button,
body #page-container .et_pb_section.pcoc-latest-sermon .pcoc-btn-primary.et_pb_button {
    background: linear-gradient(135deg,
        var(--pcoc-coral) 0%,
        #cf531f 100%) !important;
    color: #fff !important;
    border: none !important;
    padding: 15px 34px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    border-radius: 999px !important;
    margin-top: 8px !important;
    align-self: flex-start !important;
    box-shadow:
        0 14px 34px rgba(232,98,42,0.40),
        0 4px 12px rgba(0,0,0,0.18),
        inset 0 1px 0 rgba(255,255,255,0.35) !important;
    transition: transform 0.2s ease, box-shadow 0.25s ease, background 0.25s ease !important;
}
body #page-container .et_pb_section.pcoc-latest-sermon a.pcoc-btn-primary.et_pb_button:hover,
body #page-container .et_pb_section.pcoc-latest-sermon .pcoc-btn-primary.et_pb_button:hover {
    background: linear-gradient(135deg, #ef7847 0%, #cf531f 100%) !important;
    color: #fff !important;
    transform: translateY(-2px) !important;
    box-shadow:
        0 18px 44px rgba(111,174,155,0.55),
        0 6px 16px rgba(0,0,0,0.22),
        inset 0 1px 0 rgba(255,255,255,0.40) !important;
}
body #page-container .et_pb_section.pcoc-latest-sermon a.pcoc-btn-primary.et_pb_button::after,
body #page-container .et_pb_section.pcoc-latest-sermon .pcoc-btn-primary.et_pb_button::after {
    color: #fff !important;
}

/* Mobile — stack video on top, text below. */
@media (max-width: 980px) {
    html body .et-l--post .pcoc-latest-sermon .et_pb_row {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: wrap !important;
        gap: 0 !important;
    }
    html body .et-l--post .pcoc-latest-sermon .et_pb_row > .et_pb_column {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 auto !important;
        margin-right: 0 !important;
        margin-bottom: 0 !important;
        position: relative !important;
        isolation: isolate !important;
    }
    /* Specificity must tie the (0,4,2) column rule above — wins on source order. */
    html body .et-l--post .pcoc-latest-sermon .pcoc-sermon-left.et_pb_column {
        padding-right: 0 !important;
        margin-bottom: 36px !important;
    }
    html body .et-l--post .pcoc-latest-sermon .pcoc-sermon-right.et_pb_column {
        padding-left: 0 !important;
    }
    .pcoc-sermon-left::before {
        width: 200px; height: 200px; top: -20px; left: -30px;
    }
    .pcoc-sermon-left::after {
        width: 140px; height: 140px;
    }
    .pcoc-latest-sermon .et_pb_code_inner {
        padding: 10px !important;
        border-radius: 22px !important;
    }
}

.single-event .tina_blog_3 > .et_pb_row > .et_pb_column:last-child {
    order: 1;
}

/* Blog module: display event cards in a centered horizontal row */
.single-event .tina_blog_3 .et_pb_blog {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 24px !important;
}
.single-event .tina_blog_3 .et_pb_blog article.et_pb_post {
    flex: 0 1 260px !important;
    width: 260px !important;
    min-width: 200px;
}
.single-event .tina_blog_3 .et_pb_blog article.et_pb_post .et_pb_image_container img {
    border-radius: 12px;
    max-width: 100%;
    width: 100% !important;
    margin: 0 0 12px !important;
}

/* "More Events" heading */
.single-event .tina_blog_3 > .et_pb_row > .et_pb_column:first-child h2,
.single-event .tina_blog_3 > .et_pb_row > .et_pb_column:first-child h3 {
    text-align: center;
    color: #fff !important;
}

/* =================================================================
   ABOUT PAGE — Section 1: Page Header Aurora band + Video Well
   Pattern: eyebrow pill · H1 with coral gradient accent · scripture
   sub · glass-framed image with CSS play-icon overlay.
   Reusable across all inner pages (Worship, Connect, Events, Contact).
================================================================= */

/* Kill Divi default section padding + make section transparent over mesh. */
html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-about-header {
    background: transparent !important;
    background-color: transparent !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    position: relative !important;
    /* `overflow: clip` (not hidden) so this section is NOT a scroll container.
       `hidden` qualifies as a scroll container per spec, which can break the
       waypoint-style scroll triggers Divi's native animation engine relies on. */
    overflow: clip !important;
}

/* Row rhythm — clamp-based vertical padding scales to viewport. */
.pcoc-about-header .et_pb_row {
    padding: clamp(72px, 9vh, 120px) clamp(20px, 4vw, 40px) clamp(56px, 7vh, 88px) !important;
    max-width: 1200px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    position: relative;
    z-index: 1;
}
.pcoc-about-header .et_pb_column {
    position: relative;
    z-index: 1;
}

.pcoc-about-header__inner {
    position: relative;
}

/* Drifting aurora orb — top-right coral glow.
   Pseudo-element so the section stays editable as native Divi (no extra DOM
   node needed). Anchors to .pcoc-about-header__inner which has position: relative. */
.pcoc-about-header__inner::before {
    content: "";
    position: absolute;
    top: -120px;
    right: -140px;
    width: 560px;
    height: 560px;
    background: radial-gradient(circle at center,
        rgba(232, 98, 42, 0.22) 0%,
        rgba(232, 98, 42, 0.08) 40%,
        transparent 70%);
    filter: blur(70px);
    pointer-events: none;
    z-index: 0;
    animation: pcoc-about-orb-drift 24s ease-in-out infinite alternate;
}
@keyframes pcoc-about-orb-drift {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(-40px, 30px) scale(1.06); }
}

/* Content row — centered intro. Class lives on the Divi Row for the eyebrow /
   headline / subhead group, narrower than the section's 1200px row default. */
.pcoc-about-header .et_pb_row.pcoc-about-header__content {
    text-align: center;
    max-width: 820px !important;
    margin: 0 auto clamp(36px, 5vh, 56px) !important;
    padding-bottom: 0 !important;
    position: relative;
    z-index: 2;
}
.pcoc-about-header__content .et_pb_text_inner {
    text-align: center;
}

/* Eyebrow color */
.pcoc-about-header__content .pcoc-eyebrow {
    color: var(--pcoc-lake-blue) !important;
}

/* Headline — bold, tight, with coral gradient on the accent word */
.pcoc-about-header__headline {
    font-size: clamp(2.4rem, 5.5vw, 4.2rem) !important;
    line-height: 1.08 !important;
    font-weight: 800 !important;
    color: var(--pcoc-deep-teal) !important;
    letter-spacing: -0.015em !important;
    margin: 0 0 22px !important;
}

/* Scripture sub — italic verse + small-caps citation */
.pcoc-about-header__subhead {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    font-size: clamp(1.05rem, 1.6vw, 1.3rem) !important;
    line-height: 1.55 !important;
    color: var(--pcoc-charcoal) !important;
    opacity: 0.82;
    margin: 0 !important;
    font-style: italic;
}
.pcoc-about-header__verse {
    display: block;
    max-width: 640px;
}
.pcoc-about-header__citation {
    display: inline-block;
    font-style: normal;
    font-weight: 700;
    font-size: 0.78em;
    color: var(--pcoc-lake-blue);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin-top: 4px;
}

/* =================================================================
   Video Well — glass-framed placeholder image.
   Class lives on the Divi Row that wraps the image + caption modules.
   Frame styling lands on the et_pb_image module via `pcoc-video-well__frame`
   custom class on the Image module itself. Caption is a Text module with
   `pcoc-video-well__caption`. When the actual video lands, swap the Image
   module for a Divi Video module — frame class can move with it.
================================================================= */
.pcoc-about-header .et_pb_row.pcoc-video-well {
    max-width: 980px !important;
    margin: 0 auto !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    position: relative;
    z-index: 2;
}

/* Frame — soft border + shadow on the Divi Image module's wrapper.
   Intentionally NO `backdrop-filter`: nested backdrop-filter elements
   create isolated compositing layers that the fixed header's
   backdrop-filter cannot sample through, killing the header's glass effect.
   Solid translucent bg + border + shadow gives the visual feel without
   breaking the header. */
.pcoc-video-well__frame.et_pb_image,
.et_pb_image.pcoc-video-well__frame {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: 22px;
    overflow: hidden;
    background: rgba(255,255,255,0.55);
    border: 1px solid rgba(255,255,255,0.7);
    box-shadow:
        0 24px 60px rgba(26, 79, 110, 0.18),
        0 8px 24px rgba(26, 79, 110, 0.10),
        inset 0 1px 0 rgba(255,255,255,0.9);
    margin-bottom: 0 !important;
}
.pcoc-video-well__frame .et_pb_image_wrap,
.pcoc-video-well__frame img,
.pcoc-video-well__frame video,
.pcoc-video-well__frame iframe {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 35%;
    border: 0;
}

/* Video-module variant of the well frame: when a Divi Video module replaces
   the placeholder Image module, the frame box styling above is scoped to
   .et_pb_image, so re-apply it to the .et_pb_video inside the well row.
   Class lives on the well Row (.pcoc-video-well), so no class is needed on
   the video module itself (avoids the Divi 5 class-on-module drop bug). */
.pcoc-about-header .pcoc-video-well .et_pb_video {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: 22px;
    overflow: hidden;
    background: rgba(255,255,255,0.55);
    border: 1px solid rgba(255,255,255,0.7);
    box-shadow:
        0 24px 60px rgba(26, 79, 110, 0.18),
        0 8px 24px rgba(26, 79, 110, 0.10),
        inset 0 1px 0 rgba(255,255,255,0.9);
    margin-bottom: 0 !important;
}
.pcoc-about-header .pcoc-video-well .et_pb_video .et_pb_video_box,
.pcoc-about-header .pcoc-video-well .et_pb_video iframe,
.pcoc-about-header .pcoc-video-well .et_pb_video video {
    width: 100% !important;
    height: 100% !important;
    border: 0;
}
.pcoc-about-header .pcoc-video-well .et_pb_video .et_pb_video_overlay {
    height: 100%;
    background-size: cover;
    background-position: center 35%;
}

.pcoc-video-well__caption .et_pb_text_inner,
.pcoc-video-well__caption {
    text-align: center;
    margin-top: 18px;
    font-size: 0.92rem;
    color: var(--pcoc-charcoal);
    opacity: 0.65;
    font-style: italic;
    letter-spacing: 0.01em;
}

/* Mobile tuning */
@media (max-width: 767px) {
    .pcoc-about-header .et_pb_row {
        padding: 48px 18px 40px !important;
    }
    .pcoc-about-header__content {
        margin-bottom: 28px;
    }
    .pcoc-about-header__inner::before {
        width: 380px;
        height: 380px;
        top: -80px;
        right: -100px;
        filter: blur(60px);
    }
    .pcoc-video-well__frame,
    .pcoc-about-header .pcoc-video-well .et_pb_video {
        border-radius: 16px;
    }
    .pcoc-about-header__subhead {
        font-size: 1rem !important;
    }
}

/* =================================================================
   ABOUT PAGE — Section 2: Who We Are / Seat at Our Table
   Identity intro + 3 glass "welcome" cards + closing line.
   Transparent over the unified aurora canvas.
================================================================= */

html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-about-welcome {
    background: transparent !important;
    background-color: transparent !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    position: relative !important;
    /* `overflow: clip` (not hidden) — see note on .pcoc-about-header above. */
    overflow: clip !important;
}

.pcoc-about-welcome .et_pb_row {
    padding: clamp(56px, 7vh, 96px) clamp(20px, 4vw, 40px) !important;
    max-width: 1200px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    position: relative;
    z-index: 1;
}
.pcoc-about-welcome .et_pb_column {
    position: relative;
    z-index: 1;
}

.pcoc-about-welcome__inner {
    position: relative;
}

/* Drifting lake-glass orb behind the section. Pseudo-element so the section
   stays editable as native Divi (no extra DOM node needed). Anchors to
   .pcoc-about-welcome__inner which has position: relative. */
.pcoc-about-welcome__inner::before {
    content: "";
    position: absolute;
    top: 6%;
    left: -160px;
    width: 720px;
    height: 720px;
    background: radial-gradient(circle at center,
        rgba(232, 98, 42, 0.32) 0%,
        rgba(232, 98, 42, 0.10) 38%,
        rgba(232, 98, 42, 0.03) 60%,
        transparent 75%);
    filter: blur(95px);
    pointer-events: none;
    z-index: 0;
    animation: pcoc-about-welcome-orb-drift 28s ease-in-out infinite alternate;
}
/* Sage companion bottom-right keeps the original cool/warm balance */
.pcoc-about-welcome__inner::after {
    content: "";
    position: absolute;
    bottom: 6%;
    right: -120px;
    width: 540px;
    height: 540px;
    background: radial-gradient(circle at center,
        rgba(111, 174, 155, 0.28) 0%,
        rgba(111, 174, 155, 0.08) 42%,
        transparent 72%);
    filter: blur(85px);
    pointer-events: none;
    z-index: 0;
}
@keyframes pcoc-about-welcome-orb-drift {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(60px, -40px) scale(1.08); }
}

/* Centered intro row: eyebrow + H2 + lead. Class lives on the Divi Row. */
.pcoc-about-welcome .et_pb_row.pcoc-about-welcome__intro {
    text-align: center;
    max-width: 840px !important;
    margin: 0 auto clamp(40px, 5vh, 64px) !important;
    padding-bottom: 0 !important;
    position: relative;
    z-index: 2;
}
.pcoc-about-welcome__intro .et_pb_text_inner {
    text-align: center;
}
.pcoc-about-welcome__intro .pcoc-eyebrow {
    color: var(--pcoc-lake-blue) !important;
    justify-content: center;
}
.pcoc-about-welcome__headline {
    font-size: clamp(2.1rem, 4.6vw, 3.4rem) !important;
    line-height: 1.1 !important;
    font-weight: 800 !important;
    color: var(--pcoc-deep-teal) !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 22px !important;
}
.pcoc-about-welcome__intro p {
    font-size: clamp(1rem, 1.3vw, 1.18rem) !important;
    line-height: 1.7 !important;
    color: var(--pcoc-charcoal) !important;
    opacity: 0.86;
    margin: 0 0 14px !important;
}
.pcoc-about-welcome__intro p:last-child {
    margin-bottom: 0 !important;
}

/* 3 glass cards row. Class lives on the Divi Row; CSS forces a grid layout
   over Divi's default flex, so the 3 columns become equal-width grid items. */
.pcoc-about-welcome .et_pb_row.pcoc-welcome-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(20px, 2.5vw, 28px);
    max-width: 1200px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    position: relative;
    z-index: 2;
}
.pcoc-about-welcome .et_pb_row.pcoc-welcome-cards > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
}

/* Each card lives on a Divi column with class pcoc-welcome-card */
.pcoc-welcome-card.et_pb_column,
.et_pb_column.pcoc-welcome-card {
    position: relative;
    /* No backdrop-filter — nested backdrop filters break the header's
       backdrop-filter compositing on inner pages. Use solid translucent
       white instead so the cards still feel "glass" without isolating
       their layer from the header above. */
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: 18px;
    padding: 36px 28px 30px !important;
    box-shadow:
        0 12px 32px rgba(26, 79, 110, 0.10),
        inset 0 1px 0 rgba(255, 255, 255, 0.92);
    transition: transform 0.4s cubic-bezier(0.2,0.8,0.2,1),
                box-shadow 0.4s ease,
                border-color 0.4s ease;
}
.pcoc-welcome-card.et_pb_column:hover,
.et_pb_column.pcoc-welcome-card:hover {
    transform: translateY(-4px);
    box-shadow:
        0 20px 48px rgba(26, 79, 110, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    border-color: rgba(232, 98, 42, 0.40);
}
/* Coral accent rule along the top of each card */
.pcoc-welcome-card.et_pb_column::before,
.et_pb_column.pcoc-welcome-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 24px;
    right: 24px;
    height: 2px;
    background: linear-gradient(90deg,
        rgba(40, 160, 200, 0.55) 0%,
        rgba(232, 98, 42, 0.85) 50%,
        rgba(111, 174, 155, 0.55) 100%);
    border-radius: 2px;
}
.pcoc-welcome-card__title {
    font-size: 1.18rem !important;
    font-weight: 800 !important;
    font-style: italic;
    color: var(--pcoc-deep-teal) !important;
    margin: 0 0 14px !important;
    line-height: 1.3 !important;
    letter-spacing: -0.005em !important;
}
.pcoc-welcome-card p {
    font-size: 0.96rem !important;
    line-height: 1.65 !important;
    color: var(--pcoc-charcoal) !important;
    opacity: 0.88;
    margin: 0 !important;
}
/* PCOC-11: spacing below the centered No-Matter card icons. */
.pcoc-welcome-card .et_pb_icon {
    margin-bottom: 14px !important;
}

/* Closing standalone line below cards. The class lives on a Text module
   inside its own row; Divi's row default top padding handles the gap, so
   we only nudge the inner text's typography + alignment here. */
.pcoc-about-welcome .et_pb_row.pcoc-about-welcome__closing-row {
    padding-top: clamp(36px, 4vh, 56px) !important;
    padding-bottom: 0 !important;
    max-width: 1200px !important;
}
.pcoc-about-welcome__closing,
.pcoc-about-welcome__closing .et_pb_text_inner {
    text-align: center;
    margin: 0 auto !important;
    max-width: 720px;
    position: relative;
    z-index: 2;
    font-size: clamp(1.05rem, 1.4vw, 1.3rem) !important;
    line-height: 1.55 !important;
    color: var(--pcoc-deep-teal) !important;
    font-style: italic;
}

@media (max-width: 980px) {
    /* Match the (0,3,0) specificity of the base 3-col rule so the mobile
       single-column layout actually wins. The previous bare
       `.pcoc-welcome-cards` selector was at (0,1,0) and silently lost. */
    .pcoc-about-welcome .et_pb_row.pcoc-welcome-cards {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }
    .pcoc-about-welcome .et_pb_row {
        padding: 48px 18px !important;
    }
    .pcoc-about-welcome__intro {
        margin-bottom: 28px;
    }
    .pcoc-about-welcome__inner::before {
        width: 360px;
        height: 360px;
        filter: blur(60px);
    }
}

/* =================================================================
   ABOUT PAGE — Section 3: Our Beliefs
   Eight glass tiles over the unified Aurora canvas. Mirrors the
   Section 2 (Welcome) pattern: transparent section, drifting orb,
   eyebrow + accented headline, glass cards with coral top-accent
   and a lake-glass icon coin. Stays Divi 5 native — every value
   editable via the builder GUI; this file only adds the look.
================================================================= */

html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-about-beliefs {
    background: transparent !important;
    background-color: transparent !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    position: relative !important;
    overflow: clip !important;
    /* Divi's `.et_flex_section` defaults to `row-gap: 60px` between rows.
       That puts a phantom 60px between the two `.pcoc-belief-cards` rows
       and breaks the editorial list. Kill it; we control gaps via the
       individual rows' margins instead. */
    row-gap: 0 !important;
}

.pcoc-about-beliefs .et_pb_row {
    padding: clamp(40px, 5vh, 64px) clamp(20px, 4vw, 40px) !important;
    max-width: 1200px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    position: relative;
    z-index: 1;
}
.pcoc-about-beliefs .et_pb_column {
    position: relative;
    z-index: 1;
}

.pcoc-about-beliefs__inner {
    position: relative;
    /* Clip the decorative orb pseudos so they don't bleed past the section
       edge — when they extend below the section, the next section sees a
       faint blueish wash that reads as an unintended overlay/border. */
    overflow: hidden;
}

/* Beliefs is the "lake-blue chapter" — strong saturated cloud behind it
   so the section reads as a deep-water moment of the page. */
.pcoc-about-beliefs__inner::after {
    content: "";
    position: absolute;
    top: 8%;
    right: -160px;
    width: 720px;
    height: 720px;
    background: radial-gradient(circle at center,
        rgba(40, 160, 200, 0.42) 0%,
        rgba(40, 160, 200, 0.16) 38%,
        rgba(40, 160, 200, 0.04) 62%,
        transparent 78%);
    filter: blur(95px);
    pointer-events: none;
    z-index: 0;
    animation: pcoc-about-beliefs-orb-drift 32s ease-in-out infinite alternate;
}
/* Companion warm cloud bottom-left for a touch of warmth (chapter accent) */
.pcoc-about-beliefs__inner::before {
    content: "";
    position: absolute;
    bottom: 8%;
    left: -120px;
    width: 520px;
    height: 520px;
    background: radial-gradient(circle at center,
        rgba(232, 98, 42, 0.18) 0%,
        rgba(232, 98, 42, 0.05) 42%,
        transparent 70%);
    filter: blur(85px);
    pointer-events: none;
    z-index: 0;
}
@keyframes pcoc-about-beliefs-orb-drift {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(-70px, 50px) scale(1.1); }
}

/* Centered intro: eyebrow + H2 + lead. */
.pcoc-about-beliefs .et_pb_row.pcoc-about-beliefs__intro {
    text-align: center;
    max-width: 840px !important;
    margin: 0 auto clamp(24px, 3vh, 36px) !important;
    padding-bottom: 0 !important;
    position: relative;
    z-index: 2;
}
.pcoc-about-beliefs__intro .et_pb_text_inner {
    text-align: center;
}
.pcoc-about-beliefs__intro .pcoc-eyebrow {
    color: var(--pcoc-lake-blue) !important;
    justify-content: center;
}
.pcoc-about-beliefs__headline {
    font-size: clamp(2.1rem, 4.6vw, 3.4rem) !important;
    line-height: 1.1 !important;
    font-weight: 800 !important;
    color: var(--pcoc-deep-teal) !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 22px !important;
    text-align: center;
}
.pcoc-about-beliefs__lead {
    font-size: clamp(1rem, 1.3vw, 1.18rem) !important;
    line-height: 1.7 !important;
    color: var(--pcoc-charcoal) !important;
    opacity: 0.86;
    margin: 0 !important;
    text-align: center;
}

/* Editorial 2-column creed list. Tight, condensed, magazine-spread feel. */
.pcoc-about-beliefs .et_pb_row.pcoc-belief-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(28px, 3vw, 48px);
    row-gap: clamp(14px, 1.6vw, 20px);
    max-width: 960px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    position: relative;
    z-index: 2;
}
/* Vertical hairline down the column gap */
.pcoc-about-beliefs .et_pb_row.pcoc-belief-cards::before {
    content: "";
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 50%;
    width: 1px;
    background: linear-gradient(180deg,
        transparent 0%,
        rgba(26, 79, 110, 0.18) 15%,
        rgba(26, 79, 110, 0.18) 85%,
        transparent 100%);
    pointer-events: none;
    z-index: 0;
}
/* Pull the second Divi row up so the inter-row gap exactly matches the
   in-row row-gap (20px) — the two stacked Divi rows then read as a
   single uninterrupted 4-row, 2-column editorial list. */
.pcoc-about-beliefs .et_pb_row.pcoc-belief-cards + .et_pb_row.pcoc-belief-cards {
    margin-top: clamp(14px, 1.6vw, 20px) !important;
    padding-top: 0 !important;
}
.pcoc-about-beliefs .et_pb_row.pcoc-belief-cards > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
}
/* Mobile — stack the editorial belief list into a single column and hide
   the centerline hairline (the hairline is positioned at left: 50% which
   would slice through the stacked cards). */
@media (max-width: 700px) {
    .pcoc-about-beliefs .et_pb_row.pcoc-belief-cards {
        grid-template-columns: 1fr !important;
        row-gap: clamp(18px, 3vw, 24px) !important;
    }
    .pcoc-about-beliefs .et_pb_row.pcoc-belief-cards::before {
        display: none !important;
    }
    .pcoc-about-beliefs .et_pb_row.pcoc-belief-cards + .et_pb_row.pcoc-belief-cards {
        margin-top: clamp(18px, 3vw, 24px) !important;
    }
}

/* Each belief: icon on the left, title + body stacked on the right.
   No background, no border, no shadow — pure typographic editorial row. */
.pcoc-belief-card.et_pb_column,
.et_pb_column.pcoc-belief-card {
    position: relative;
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 2px 0 !important;
    text-align: left;
    box-shadow: none;
    display: grid !important;
    grid-template-columns: 40px 1fr;
    grid-template-rows: auto auto;
    column-gap: 14px;
    row-gap: 2px !important;
    align-items: start;
    transition: transform 0.4s cubic-bezier(0.2,0.8,0.2,1);
}
/* Force the title and body to sit immediately adjacent — the Divi text
   module ships with a bottom margin we must override. */
.pcoc-belief-card .et_pb_text,
.pcoc-belief-card .et_pb_heading {
    margin: 0 !important;
}
.pcoc-belief-card.et_pb_column:hover,
.et_pb_column.pcoc-belief-card:hover {
    transform: translateX(2px);
    box-shadow: none;
    border-color: transparent;
}
/* Kill the prior coral top-stripe pseudo */
.pcoc-belief-card.et_pb_column::before,
.et_pb_column.pcoc-belief-card::before {
    content: none;
}

/* Icon — no coin. Pure FA glyph, lake-blue base, coral + tiny scale on hover.
   Lives in column 1, spans both rows so title + body align next to it. */
.pcoc-belief-card .et_pb_icon {
    width: 40px !important;
    height: 40px !important;
    margin: 2px 0 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    display: inline-flex !important;
    align-items: flex-start;
    justify-content: flex-start;
    grid-column: 1;
    grid-row: 1 / span 2;
    transition: transform 0.4s ease;
}
.pcoc-belief-card .et_pb_icon .et-pb-icon {
    color: var(--pcoc-lake-blue) !important;
    font-size: 28px !important;
    line-height: 1 !important;
    transition: color 0.4s ease;
}
.pcoc-belief-card:hover .et_pb_icon {
    background: transparent !important;
    border: 0 !important;
    transform: scale(1.08);
}
.pcoc-belief-card:hover .et_pb_icon .et-pb-icon {
    color: var(--pcoc-coral) !important;
}

/* Title module — sits to the right of the icon, top row of the inner grid.
   Divi's auto-generated `.et_pb_heading_X .et_pb_heading_container hN` rule
   has specificity (0,3,1) and uses out-of-gamut white from a TB color
   variable. We need (0,4,1) or higher to win — section + card + heading
   wrapper + container + tag = (0,4,1). */
.pcoc-belief-card .et_pb_heading,
.pcoc-belief-card .et_pb_module:not(.et_pb_icon):not(.et_pb_text) {
    grid-column: 2;
}
.pcoc-about-beliefs .pcoc-belief-card .et_pb_heading_container h1,
.pcoc-about-beliefs .pcoc-belief-card .et_pb_heading_container h2,
.pcoc-about-beliefs .pcoc-belief-card .et_pb_heading_container h3,
.pcoc-about-beliefs .pcoc-belief-card .et_pb_heading_container h4,
.pcoc-about-beliefs .pcoc-belief-card .et_pb_heading_container h5,
.pcoc-about-beliefs .pcoc-belief-card .et_pb_heading_container h6,
.pcoc-belief-card .et_pb_module_header {
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    font-style: italic !important;
    color: #11354c !important; /* deeper than --pcoc-deep-teal for max contrast */
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
    text-align: left !important;
}
/* Body text module — sits to the right of the icon, bottom row of inner grid */
.pcoc-belief-card .et_pb_text {
    grid-column: 2;
}
.pcoc-belief-card .et_pb_text_inner,
.pcoc-belief-card .et_pb_text p,
.pcoc-belief-card p {
    font-size: 0.86rem !important;
    line-height: 1.45 !important;
    color: var(--pcoc-charcoal) !important;
    opacity: 0.82;
    margin: 0 !important;
    text-align: left !important;
}

@media (max-width: 720px) {
    .pcoc-about-beliefs .et_pb_row.pcoc-belief-cards {
        grid-template-columns: 1fr;
        column-gap: 0;
        row-gap: clamp(22px, 4vw, 30px);
    }
    .pcoc-about-beliefs .et_pb_row.pcoc-belief-cards::before {
        display: none;
    }
    .pcoc-about-beliefs .et_pb_row {
        padding: 48px 18px !important;
    }
    .pcoc-about-beliefs__inner::after {
        width: 360px;
        height: 360px;
        filter: blur(60px);
    }
    .pcoc-belief-card.et_pb_column,
    .et_pb_column.pcoc-belief-card {
        grid-template-columns: 42px 1fr;
        column-gap: 14px;
    }
    .pcoc-belief-card .et_pb_icon .et-pb-icon {
        font-size: 28px !important;
    }
}

/* =================================================================
   ABOUT PAGE — Section 5: Meet Our Team
   Editorial team feature over the Aurora canvas. Lance gets a
   magazine-style hero (image left, name + role right). Below, two
   labeled trios — Pastors & Elders / Ministry Leaders — each as a
   clean 3-up grid of portrait + name + role. No card chrome, no
   asymmetric photo corners, no orange gradient blob.
================================================================= */

html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-about-team {
    background: transparent !important;
    background-color: transparent !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    position: relative !important;
    overflow: clip !important;
    /* Kill the 60px default flex row-gap (see Section 3 note) */
    row-gap: 0 !important;
}
/* Subtle coral diagonal hairline running across the section as background
   texture — adds the Framer-style "designed composition" feel. */
.pcoc-about-team::before {
    content: "";
    position: absolute;
    inset: -10% -10%;
    background:
        repeating-linear-gradient(102deg,
            transparent 0,
            transparent 280px,
            rgba(232, 98, 42, 0.07) 280px,
            rgba(232, 98, 42, 0.07) 281px,
            transparent 281px,
            transparent 720px);
    pointer-events: none;
    z-index: 0;
}

.pcoc-about-team .et_pb_row {
    padding: clamp(28px, 3.5vh, 44px) clamp(20px, 4vw, 40px) !important;
    max-width: 1200px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    position: relative;
    z-index: 1;
}
.pcoc-about-team .et_pb_column {
    position: relative;
    z-index: 1;
}

.pcoc-about-team__inner {
    position: relative;
}

/* Two strong sage clouds — Team is the "sage" chapter of the page so the
   color weather here is distinctly green-leaning, not grey. */
.pcoc-about-team__inner::before {
    content: "";
    position: absolute;
    bottom: -6%;
    left: -180px;
    width: 760px;
    height: 760px;
    background: radial-gradient(circle at center,
        rgba(111, 174, 155, 0.45) 0%,
        rgba(111, 174, 155, 0.18) 38%,
        rgba(111, 174, 155, 0.04) 60%,
        transparent 75%);
    filter: blur(95px);
    pointer-events: none;
    z-index: 0;
    animation: pcoc-about-team-orb-drift 34s ease-in-out infinite alternate;
}
.pcoc-about-team__inner::after {
    content: "";
    position: absolute;
    top: 14%;
    right: -140px;
    width: 640px;
    height: 640px;
    background: radial-gradient(circle at center,
        rgba(40, 160, 200, 0.34) 0%,
        rgba(40, 160, 200, 0.10) 42%,
        transparent 70%);
    filter: blur(88px);
    pointer-events: none;
    z-index: 0;
    animation: pcoc-about-team-orb-drift-2 28s ease-in-out infinite alternate;
}
@keyframes pcoc-about-team-orb-drift {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(80px, -60px) scale(1.1); }
}
@keyframes pcoc-about-team-orb-drift-2 {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(-60px, 80px) scale(1.08); }
}

/* Centered intro */
.pcoc-about-team .et_pb_row.pcoc-about-team__intro {
    text-align: center;
    max-width: 840px !important;
    margin: 0 auto clamp(24px, 3vh, 36px) !important;
    padding-bottom: 0 !important;
    position: relative;
    z-index: 2;
}
.pcoc-about-team__intro .et_pb_text_inner {
    text-align: center;
}
.pcoc-about-team__intro .pcoc-eyebrow {
    color: var(--pcoc-lake-blue) !important;
    justify-content: center;
}
.pcoc-about-team__headline {
    font-size: clamp(2.1rem, 4.6vw, 3.4rem) !important;
    line-height: 1.1 !important;
    font-weight: 800 !important;
    color: var(--pcoc-deep-teal) !important;
    letter-spacing: -0.02em !important;
    margin: 0 !important;
    text-align: center;
}

/* === LANCE HERO ROW ============================================ */
.pcoc-about-team .et_pb_row.pcoc-team-hero-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    max-width: 1080px !important;
    padding-top: clamp(20px, 2.5vh, 32px) !important;
    padding-bottom: clamp(28px, 3.5vh, 44px) !important;
}
/* The hero column becomes a 2-col grid that the team-member's image +
   description + the standalone Reach-out CTA all flow into. We use
   display: contents on the team-member so its inner image/description
   become direct children of the column grid, allowing the CTA to slot
   alongside the description in column 2. */
.pcoc-about-team .et_pb_row.pcoc-team-hero-row > .pcoc-team-hero {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(280px, 0.85fr) 1fr !important;
    grid-template-rows: auto auto !important;
    column-gap: clamp(28px, 4vw, 64px) !important;
    row-gap: 0 !important;
    align-items: center !important;
}
.pcoc-team-hero .et_pb_team_member {
    display: contents !important;
}
/* Image takes col 1, spans both rows */
.pcoc-team-hero .et_pb_team_member_image {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
}
/* Description in col 2 row 1 */
.pcoc-team-hero .et_pb_team_member_description {
    grid-column: 2 !important;
    grid-row: 1 !important;
}
/* CTA wrapper in col 2 row 2 */
.pcoc-team-hero-row .et_pb_button_module_wrapper {
    grid-column: 2 !important;
    grid-row: 2 !important;
    margin-top: clamp(16px, 2vw, 24px) !important;
}
/* Image wrapper — provides the color-blocked offset panel via ::before */
.pcoc-team-hero .et_pb_team_member_image {
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    position: relative;
    z-index: 1;
}
/* Offset color-block panel BEHIND the image (lake-blue, shifted down-right) */
.pcoc-team-hero .et_pb_team_member_image::before {
    content: "";
    position: absolute;
    top: 22px;
    left: 22px;
    right: -22px;
    bottom: -22px;
    background: linear-gradient(135deg,
        rgba(40, 160, 200, 0.55) 0%,
        rgba(111, 174, 155, 0.45) 100%);
    border-radius: 24px;
    z-index: -1;
    transition: transform 0.5s cubic-bezier(0.2,0.8,0.2,1);
}
.pcoc-team-hero:hover .et_pb_team_member_image::before {
    transform: translate(8px, 8px);
}
/* The actual image (img tag) sits inside the wrapper. We need to constrain
   its rounding + shadow to the image element itself so the offset panel
   stays purely "behind". */
.pcoc-team-hero .et_pb_team_member_image img {
    width: 100% !important;
    height: auto !important;
    display: block;
    border-radius: 24px;
    box-shadow:
        0 24px 64px rgba(26, 79, 110, 0.20),
        0 4px 12px rgba(26, 79, 110, 0.10);
    transition: transform 0.6s cubic-bezier(0.2,0.8,0.2,1);
    position: relative;
    z-index: 1;
}
.pcoc-team-hero:hover .et_pb_team_member_image img {
    transform: scale(1.02);
}
.pcoc-team-hero .et_pb_team_member_description {
    padding: 0 !important;
    text-align: left !important;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 18px;
    align-items: flex-start;
}
/* Position becomes a glass-pill chip ABOVE the name */
.pcoc-team-hero .et_pb_member_position {
    order: -1;
    display: inline-flex !important;
    align-items: center;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.18em !important;
    color: var(--pcoc-lake-blue) !important;
    margin: 0 !important;
    font-style: normal !important;
    opacity: 1 !important;
    text-align: left !important;
    padding: 8px 16px 8px 14px !important;
    background: rgba(40, 160, 200, 0.12);
    border: 1px solid rgba(40, 160, 200, 0.32);
    border-radius: 999px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    position: relative;
}
.pcoc-team-hero .et_pb_member_position::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--pcoc-lake-blue);
    margin-right: 8px;
    box-shadow: 0 0 0 3px rgba(40, 160, 200, 0.18);
}
/* Hero name — display weight, NO italic, generous scale */
.pcoc-about-team .pcoc-team-hero .et_pb_module_header,
.pcoc-about-team .pcoc-team-hero h1,
.pcoc-about-team .pcoc-team-hero h2,
.pcoc-about-team .pcoc-team-hero h3,
.pcoc-about-team .pcoc-team-hero h4,
.pcoc-about-team .pcoc-team-hero h5,
.pcoc-about-team .pcoc-team-hero h6 {
    font-size: clamp(2rem, 4vw, 3rem) !important;
    font-weight: 800 !important;
    font-style: normal !important;
    color: #11354c !important;
    line-height: 1.05 !important;
    letter-spacing: -0.03em !important;
    margin: 0 !important;
    text-align: left !important;
    transition: color 0.4s ease;
}

/* "Reach out →" button styled as a typographic link with arrow.
   Divi renders the button as a single anchor: <a class="et_pb_button …">.
   The pcoc-team-hero-cta class is on the SAME element, so use compound. */
/* Wrapper around the button — Divi gives it `et_pb_button_module_wrapper`.
   Force it to size to its content so the button can flow naturally. */
.pcoc-about-team .et_pb_button_module_wrapper {
    width: auto !important;
    max-width: 100% !important;
    text-align: left !important;
    margin: clamp(8px, 1.2vw, 14px) 0 0 !important;
    padding: 0 !important;
    align-self: flex-start;
}

.pcoc-team-hero-cta.et_pb_button {
    background: transparent !important;
    background-color: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 6px 0 !important;
    margin: 0 !important;
    color: var(--pcoc-coral) !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    font-style: normal !important;
    line-height: 1 !important;
    position: relative !important;
    text-align: left !important;
    display: inline-flex !important;
    flex-direction: row !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    align-items: center;
    white-space: nowrap !important;
    transition: color 0.3s ease, transform 0.3s ease;
}
.pcoc-team-hero-cta.et_pb_button::after {
    content: "→" !important;
    color: var(--pcoc-coral) !important;
    font-size: 1.1em !important;
    margin-left: 8px !important;
    display: inline-block !important;
    /* Reset Divi's default ::after `transform: translateY(-50%)` so the
       arrow doesn't lift above the button's text baseline. The hover
       state's translateX(6px) below sets its own transform. */
    transform: none !important;
    transition: transform 0.3s cubic-bezier(0.2,0.8,0.2,1) !important;
    font-family: inherit !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    opacity: 1 !important;
    position: relative !important;
    top: 0 !important;
    right: auto !important;
    margin-top: 0 !important;
    background: transparent !important;
    visibility: visible !important;
}
.pcoc-team-hero-cta.et_pb_button:hover::after {
    transform: translateX(6px) !important;
}
.pcoc-team-hero-cta.et_pb_button:hover {
    color: #c2541e !important;
}
.pcoc-team-hero-cta.et_pb_button::before {
    display: none !important;
}
/* Hide social links + member content (we don't render them) */
/* Hide empty content paragraph but NOT the position. The Divi team-member
   description renders these direct-child <p> elements:
     .et_pb_member_position   — the role (we want this visible)
     .et_pb_member_content    — the bio paragraph (empty here, hide it)
   Plus social links (we don't show socials). */
.pcoc-team-hero .et_pb_member_social_links,
.pcoc-team-hero .et_pb_member_content,
.pcoc-team-hero .et_pb_team_member_description > p:not(.et_pb_member_position):not(.et_pb_member_content) {
    display: none !important;
}

/* === SUBGROUP HEADINGS ========================================= */
.pcoc-about-team .et_pb_row.pcoc-team-group-heading-row {
    padding-top: clamp(36px, 4vh, 56px) !important;
    padding-bottom: clamp(12px, 1.4vh, 18px) !important;
    max-width: 1080px !important;
}
.pcoc-team-group-heading {
    font-size: 0.92rem !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.18em !important;
    color: #11354c !important;
    margin: 0 !important;
    text-align: left !important;
    position: relative;
    padding-left: 56px;
    display: inline-block;
}
/* Gradient bar (lake-blue → coral) instead of solid coral hairline */
.pcoc-team-group-heading::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 3px;
    background: linear-gradient(90deg,
        var(--pcoc-lake-blue) 0%,
        var(--pcoc-coral) 100%);
    border-radius: 2px;
}
/* The "/ 3" count after the label, coral */
.pcoc-team-group-count {
    color: var(--pcoc-coral) !important;
    font-weight: 700 !important;
    margin-left: 6px;
    opacity: 0.9;
    letter-spacing: 0.12em;
}

/* === TEAM TRIO ROW (3 cards) =================================== */
.pcoc-about-team .et_pb_row.pcoc-team-trio {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: clamp(24px, 3vw, 40px);
    row-gap: clamp(24px, 3vw, 40px);
    max-width: 1080px !important;
    padding-top: clamp(8px, 1vh, 14px) !important;
    padding-bottom: clamp(8px, 1vh, 14px) !important;
    position: relative;
    z-index: 2;
    align-items: start;
}
.pcoc-about-team .et_pb_row.pcoc-team-trio > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Clean 3-up grid (no stagger). The visual rhythm now comes from the photos
   themselves (3:4 portrait crop) and a soft horizontal "ground bar" that
   sits behind the bottom-third of each trio row, anchoring the cards to
   a warm coral baseline. */
.pcoc-about-team .et_pb_row.pcoc-team-trio {
    overflow: visible;
}
.pcoc-about-team .et_pb_row.pcoc-team-trio::before {
    content: "";
    position: absolute;
    left: 4%;
    right: 4%;
    bottom: 24%;
    height: 38%;
    background: linear-gradient(180deg,
        transparent 0%,
        rgba(232, 98, 42, 0.10) 30%,
        rgba(232, 98, 42, 0.18) 60%,
        rgba(232, 98, 42, 0.05) 100%);
    border-radius: 28px;
    filter: blur(40px);
    pointer-events: none;
    z-index: 0;
}
/* Ground bar gets a different tint per trio for variety — second trio uses
   sage so the page reads as "warm coral pool, then cool sage pool" */
.pcoc-about-team .et_pb_row.pcoc-team-trio:last-of-type::before {
    background: linear-gradient(180deg,
        transparent 0%,
        rgba(111, 174, 155, 0.12) 30%,
        rgba(111, 174, 155, 0.22) 60%,
        rgba(111, 174, 155, 0.06) 100%);
}

/* Per-person card — no chrome, just photo + name + role */
.pcoc-team-card .et_pb_team_member {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    text-align: left !important;
    margin: 0 !important;
}
.pcoc-team-card .et_pb_team_member_image {
    margin: 0 0 20px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden;
    border-radius: 18px;
    box-shadow:
        0 18px 44px rgba(26, 79, 110, 0.18),
        0 4px 10px rgba(26, 79, 110, 0.08);
    position: relative;
    /* Portrait crop — taller, more deliberate, more editorial. Photos that
       are landscape get cropped to center via object-fit cover. */
    aspect-ratio: 3 / 4;
    transition: transform 0.5s cubic-bezier(0.2,0.8,0.2,1),
                box-shadow 0.5s ease;
}
.pcoc-team-card:hover .et_pb_team_member_image {
    transform: rotate(-1deg) translateY(-2px);
    box-shadow:
        0 22px 48px rgba(26, 79, 110, 0.20),
        0 4px 8px rgba(26, 79, 110, 0.08);
}
.pcoc-team-card .et_pb_team_member_image::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.45);
    pointer-events: none;
    z-index: 2;
}
/* Hover sweep — translucent tint slides up from bottom of photo. The tint
   color rotates by card position so each row has a different rhythm. */
.pcoc-team-card .et_pb_team_member_image::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg,
        rgba(232, 98, 42, 0.35) 0%,
        rgba(232, 98, 42, 0) 60%);
    transform: translateY(100%);
    transition: transform 0.5s cubic-bezier(0.2,0.8,0.2,1);
    pointer-events: none;
    z-index: 1;
    border-radius: 16px;
}
.pcoc-team-card:hover .et_pb_team_member_image::before {
    transform: translateY(0);
}
/* Sweep color rotation: tile 2 = lake blue, tile 3 = sage */
.pcoc-about-team .et_pb_row.pcoc-team-trio > .et_pb_column:nth-child(2) .pcoc-team-card .et_pb_team_member_image::before {
    background: linear-gradient(0deg,
        rgba(40, 160, 200, 0.40) 0%,
        rgba(40, 160, 200, 0) 60%);
}
.pcoc-about-team .et_pb_row.pcoc-team-trio > .et_pb_column:nth-child(3) .pcoc-team-card .et_pb_team_member_image::before {
    background: linear-gradient(0deg,
        rgba(111, 174, 155, 0.40) 0%,
        rgba(111, 174, 155, 0) 60%);
}

.pcoc-team-card .et_pb_team_member_image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
    transition: transform 0.6s cubic-bezier(0.2,0.8,0.2,1);
}
.pcoc-team-card:hover .et_pb_team_member_image img {
    transform: scale(1.05);
}
/* Description — name + role with a vertical color bar to the left */
.pcoc-team-card .et_pb_team_member_description {
    padding: 0 0 0 14px !important;
    text-align: left !important;
    display: flex;
    flex-direction: column;
    position: relative;
}
.pcoc-team-card .et_pb_team_member_description::before {
    content: "";
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 3px;
    border-radius: 2px;
    background: var(--pcoc-coral);
}
/* Color the bar by tile position — coral / lake-blue / sage */
.pcoc-about-team .et_pb_row.pcoc-team-trio > .et_pb_column:nth-child(2) .pcoc-team-card .et_pb_team_member_description::before {
    background: var(--pcoc-lake-blue);
}
.pcoc-about-team .et_pb_row.pcoc-team-trio > .et_pb_column:nth-child(3) .pcoc-team-card .et_pb_team_member_description::before {
    background: var(--pcoc-sage, #6faea9);
}

.pcoc-team-card .et_pb_member_position {
    order: 2;
    font-size: 0.78rem !important;
    font-weight: 600 !important;
    color: var(--pcoc-lake-blue) !important;
    margin: 4px 0 0 !important;
    font-style: normal !important;
    opacity: 1 !important;
    text-align: left !important;
    letter-spacing: 0.04em;
}
/* Card name — display weight, NO italic */
.pcoc-about-team .pcoc-team-card .et_pb_module_header,
.pcoc-about-team .pcoc-team-card h1,
.pcoc-about-team .pcoc-team-card h2,
.pcoc-about-team .pcoc-team-card h3,
.pcoc-about-team .pcoc-team-card h4,
.pcoc-about-team .pcoc-team-card h5,
.pcoc-about-team .pcoc-team-card h6 {
    font-size: 1.18rem !important;
    font-weight: 800 !important;
    font-style: normal !important;
    color: #11354c !important;
    line-height: 1.15 !important;
    letter-spacing: -0.025em !important;
    margin: 0 !important;
    text-align: left !important;
    transition: color 0.4s ease;
    order: 1;
}
.pcoc-team-card:hover .et_pb_module_header {
    color: var(--pcoc-coral) !important;
}
.pcoc-team-card .et_pb_member_social_links,
.pcoc-team-card .et_pb_member_content,
.pcoc-team-card .et_pb_team_member_description > p:not(.et_pb_member_position):not(.et_pb_member_content) {
    display: none !important;
}

@media (max-width: 880px) {
    /* Stack the team-hero grid (the 2-col layout lives on .pcoc-team-hero,
       not on the inner .et_pb_team_member which is display: contents). Also
       drop the explicit grid-area assignments so image / description / CTA
       wrapper auto-flow into a single column. */
    .pcoc-about-team .et_pb_row.pcoc-team-hero-row > .pcoc-team-hero {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto auto auto !important;
        row-gap: 24px !important;
    }
    .pcoc-team-hero .et_pb_team_member_image {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
    .pcoc-team-hero .et_pb_team_member_description {
        grid-column: 1 !important;
        grid-row: auto !important;
        text-align: left;
    }
    .pcoc-team-hero-row .et_pb_button_module_wrapper {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
    .pcoc-team-hero .et_pb_member_position {
        text-align: left;
        padding-left: 14px;
    }
    .pcoc-about-team .pcoc-team-hero .et_pb_module_header {
        text-align: left !important;
    }
    .pcoc-about-team .et_pb_row.pcoc-team-trio {
        grid-template-columns: repeat(2, 1fr);
    }
    /* Kill Bento staggered offsets when stacking to 2 or 1 columns */
    .pcoc-about-team .et_pb_row.pcoc-team-trio > .et_pb_column,
    .pcoc-about-team .et_pb_row.pcoc-team-trio:last-of-type > .et_pb_column {
        margin-top: 0 !important;
    }
    .pcoc-team-hero .et_pb_team_member_image::before {
        /* Soften the offset panel on small screens */
        top: 14px;
        left: 14px;
        right: -14px;
        bottom: -14px;
    }
    .pcoc-about-team__inner::before {
        width: 360px;
        height: 360px;
        filter: blur(60px);
    }
    .pcoc-about-team__inner::after {
        width: 320px;
        height: 320px;
        filter: blur(60px);
    }
}
@media (max-width: 540px) {
    .pcoc-about-team .et_pb_row.pcoc-team-trio {
        grid-template-columns: 1fr;
        column-gap: 0;
    }
}

/* =================================================================
   ABOUT PAGE — Section 6: Call to Action
   Editorial postcard. Church-front drone photo on the left with an
   offset color block panel behind it, eyebrow + accented headline
   + body + Connect-With-Us CTA on the right. Closes the page with a
   warm, place-rooted invitation.
================================================================= */

html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-about-cta {
    background: transparent !important;
    background-color: transparent !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    position: relative !important;
    overflow: clip !important;
    row-gap: 0 !important;
}

.pcoc-about-cta .et_pb_row {
    padding: clamp(48px, 6vh, 80px) clamp(20px, 4vw, 40px) !important;
    max-width: 1200px !important;
    width: 100% !important;
    margin: 0 auto !important;
    position: relative;
    z-index: 1;
}
.pcoc-about-cta .et_pb_column {
    position: relative;
    z-index: 1;
}
.pcoc-about-cta__inner {
    position: relative;
}

/* Coral cloud bottom-right + sage cloud top-left frame the section as
   the warm invitational "closing chapter". */
.pcoc-about-cta__inner::before {
    content: "";
    position: absolute;
    top: -8%;
    left: -120px;
    width: 560px;
    height: 560px;
    background: radial-gradient(circle at center,
        rgba(111, 174, 155, 0.34) 0%,
        rgba(111, 174, 155, 0.10) 42%,
        transparent 72%);
    filter: blur(85px);
    pointer-events: none;
    z-index: 0;
}
.pcoc-about-cta__inner::after {
    content: "";
    position: absolute;
    bottom: -8%;
    right: -140px;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle at center,
        rgba(232, 98, 42, 0.32) 0%,
        rgba(232, 98, 42, 0.10) 42%,
        transparent 72%);
    filter: blur(90px);
    pointer-events: none;
    z-index: 0;
}

/* The 2-col postcard row — image left, text right */
.pcoc-about-cta .et_pb_row.pcoc-cta-row {
    display: grid !important;
    grid-template-columns: minmax(280px, 0.95fr) 1fr;
    column-gap: clamp(36px, 4.5vw, 72px) !important;
    align-items: center !important;
    max-width: 1100px !important;
}
.pcoc-about-cta .et_pb_row.pcoc-cta-row > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* === Image column ============================================== */
.pcoc-cta-image-col {
    position: relative !important;
}
.pcoc-cta-image-col .et_pb_image {
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
    z-index: 1;
}
.pcoc-cta-image-col .et_pb_image_wrap {
    display: block !important;
    width: 100% !important;
    position: relative;
}
.pcoc-cta-image-col .et_pb_image_wrap::before {
    /* Coral offset panel behind the photo (mirror of the team-hero pattern) */
    content: "";
    position: absolute;
    top: 22px;
    left: -22px;
    right: 22px;
    bottom: -22px;
    background: linear-gradient(135deg,
        rgba(232, 98, 42, 0.55) 0%,
        rgba(40, 160, 200, 0.45) 100%);
    border-radius: 24px;
    z-index: -1;
    transition: transform 0.5s cubic-bezier(0.2,0.8,0.2,1);
}
.pcoc-cta-image-col:hover .et_pb_image_wrap::before {
    transform: translate(-8px, 8px);
}
.pcoc-cta-image-col .et_pb_image img {
    width: 100% !important;
    height: auto !important;
    display: block;
    border-radius: 24px;
    box-shadow:
        0 28px 64px rgba(26, 79, 110, 0.22),
        0 6px 14px rgba(26, 79, 110, 0.10);
    position: relative;
    z-index: 1;
    transition: transform 0.6s cubic-bezier(0.2,0.8,0.2,1);
}
.pcoc-cta-image-col:hover .et_pb_image img {
    transform: scale(1.02);
}

/* === Text column =============================================== */
.pcoc-cta-text-col {
    text-align: left !important;
}
.pcoc-cta-text-col .et_pb_module {
    text-align: left !important;
    margin: 0 !important;
}
.pcoc-cta-text-col .et_pb_text + .et_pb_text {
    margin-top: clamp(14px, 1.5vw, 20px) !important;
}
.pcoc-cta-text-col .pcoc-eyebrow {
    color: var(--pcoc-lake-blue) !important;
    margin: 0 !important;
}
.pcoc-about-cta__headline {
    font-size: clamp(2.4rem, 4.6vw, 3.6rem) !important;
    line-height: 1.05 !important;
    font-weight: 800 !important;
    color: #11354c !important;
    letter-spacing: -0.025em !important;
    margin: 0 !important;
    text-align: left !important;
}
.pcoc-about-cta__body {
    font-size: clamp(1rem, 1.2vw, 1.1rem) !important;
    line-height: 1.7 !important;
    color: var(--pcoc-charcoal) !important;
    opacity: 0.86;
    margin: 0 !important;
    text-align: left !important;
    max-width: 520px;
}

/* CTA button — coral pill (more visible than typographic link, since
   this is the page closer and we want it to be unmistakable). */
.pcoc-about-cta-btn.et_pb_button,
a.pcoc-about-cta-btn.et_pb_button {
    background: var(--pcoc-coral) !important;
    background-color: var(--pcoc-coral) !important;
    color: #ffffff !important;
    border: 0 !important;
    border-radius: 999px !important;
    padding: 14px 28px !important;
    margin: clamp(20px, 2.5vw, 32px) 0 0 !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    font-style: normal !important;
    line-height: 1 !important;
    display: inline-flex !important;
    /* Divi's et_flex_module forces flex-direction:column, which stacked the label
       over the ::after arrow and ballooned the button to ~90px tall. Force row. */
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    white-space: nowrap !important;
    box-shadow:
        0 12px 28px rgba(232, 98, 42, 0.35),
        0 2px 6px rgba(232, 98, 42, 0.20);
    transition: transform 0.3s cubic-bezier(0.2,0.8,0.2,1),
                box-shadow 0.3s ease,
                background-color 0.3s ease;
    position: relative !important;
}
.pcoc-about-cta-btn.et_pb_button::after {
    content: "→" !important;
    color: #ffffff !important;
    font-size: 1.1em !important;
    margin-left: 10px !important;
    display: inline-block !important;
    transition: transform 0.3s cubic-bezier(0.2,0.8,0.2,1) !important;
    font-family: inherit !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    opacity: 1 !important;
    position: relative !important;
    top: 0 !important;
    right: auto !important;
    margin-top: 0 !important;
    background: transparent !important;
    visibility: visible !important;
}
.pcoc-about-cta-btn.et_pb_button::before {
    display: none !important;
}
.pcoc-about-cta-btn.et_pb_button:hover {
    transform: translateY(-2px);
    background: #c2541e !important;
    background-color: #c2541e !important;
    color: #ffffff !important;
    box-shadow:
        0 18px 36px rgba(232, 98, 42, 0.42),
        0 4px 10px rgba(232, 98, 42, 0.25);
}
.pcoc-about-cta-btn.et_pb_button:hover::after {
    transform: translateX(6px) !important;
}

/* =================================================================
   ABOUT PAGE — Section 4: Moments of Faith (DARK ANCHOR)
   Deep-teal background as the page's chapter break. Light text +
   coral accents on top. 7-tile Bento mosaic of real church photos:
       [ HERO (8col, 2row) ] [ A (4col) ]
                             [ B (4col) ]
       [ C (3col) ] [ D (3col) ] [ E (3col) ] [ F (3col) ]
   2 tiles get glass-pill captions. Photos lift on hover.
================================================================= */

html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-about-moments {
    background: linear-gradient(180deg,
        #0f3a52 0%,
        #1a4f6e 50%,
        #133e57 100%) !important;
    background-color: #1a4f6e !important;
    padding: clamp(56px, 8vh, 110px) 0 !important;
    position: relative !important;
    overflow: clip !important;
    row-gap: 0 !important;
}
/* Coral / sage glow accents to break the dark — soft halos that read as
   "warm light coming from somewhere off-frame" */
.pcoc-about-moments__inner::before {
    content: "";
    position: absolute;
    top: -12%;
    right: -10%;
    width: 720px;
    height: 720px;
    background: radial-gradient(circle at center,
        rgba(232, 98, 42, 0.32) 0%,
        rgba(232, 98, 42, 0.08) 42%,
        transparent 72%);
    filter: blur(100px);
    pointer-events: none;
    z-index: 0;
}
.pcoc-about-moments__inner::after {
    content: "";
    position: absolute;
    bottom: -8%;
    left: -10%;
    width: 640px;
    height: 640px;
    background: radial-gradient(circle at center,
        rgba(111, 174, 155, 0.28) 0%,
        rgba(111, 174, 155, 0.08) 42%,
        transparent 72%);
    filter: blur(95px);
    pointer-events: none;
    z-index: 0;
}

.pcoc-about-moments .et_pb_row {
    padding: 0 clamp(20px, 4vw, 40px) !important;
    max-width: 1240px !important;
    width: 100% !important;
    margin: 0 auto !important;
    position: relative;
    z-index: 1;
}
.pcoc-about-moments .et_pb_column {
    position: relative;
    z-index: 1;
}
.pcoc-about-moments__inner {
    position: relative;
}

/* === Intro (light text on dark) ================================ */
.pcoc-about-moments .et_pb_row.pcoc-about-moments__intro {
    text-align: center;
    max-width: 880px !important;
    margin: 0 auto clamp(36px, 4vh, 56px) !important;
    padding-bottom: 0 !important;
    position: relative;
    z-index: 2;
}
.pcoc-about-moments__intro .et_pb_text_inner {
    text-align: center;
}
.pcoc-about-moments__intro .pcoc-eyebrow {
    color: var(--pcoc-coral) !important;
    justify-content: center;
}
.pcoc-about-moments__headline {
    font-size: clamp(2.2rem, 4.6vw, 3.4rem) !important;
    line-height: 1.1 !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    letter-spacing: -0.025em !important;
    margin: 0 0 18px !important;
    text-align: center;
}
.pcoc-about-moments__headline .pcoc-accent-word {
    color: var(--pcoc-coral) !important;
    background: none !important;
    -webkit-text-fill-color: var(--pcoc-coral) !important;
}
.pcoc-about-moments__lead {
    font-size: clamp(1rem, 1.3vw, 1.18rem) !important;
    line-height: 1.6 !important;
    color: rgba(255, 255, 255, 0.75) !important;
    margin: 0 !important;
    text-align: center;
}

/* === BENTO MOSAIC GRID ========================================= */
.pcoc-about-moments .et_pb_row.pcoc-bento-mosaic {
    display: grid !important;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: minmax(180px, auto);
    gap: clamp(12px, 1.4vw, 18px);
    max-width: 1200px !important;
    padding: 0 clamp(20px, 4vw, 40px) !important;
    position: relative;
    z-index: 2;
}
.pcoc-about-moments .et_pb_row.pcoc-bento-mosaic > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    border-radius: 18px;
    position: relative;
    background: rgba(255, 255, 255, 0.05);
    box-shadow:
        0 18px 44px rgba(0, 0, 0, 0.30),
        0 4px 10px rgba(0, 0, 0, 0.18);
    transition: transform 0.5s cubic-bezier(0.2,0.8,0.2,1),
                box-shadow 0.5s ease;
}
.pcoc-about-moments .et_pb_row.pcoc-bento-mosaic > .et_pb_column:hover {
    transform: translateY(-4px);
    box-shadow:
        0 26px 54px rgba(0, 0, 0, 0.36),
        0 6px 14px rgba(0, 0, 0, 0.22);
}
/* Subtle inner ring — positioned ABOVE everything else but with no fill */
.pcoc-about-moments .et_pb_row.pcoc-bento-mosaic > .et_pb_column::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    pointer-events: none;
    z-index: 4;
}

/* Image fills its tile. Must have explicit position+z-index so the
   inner-ring pseudo above doesn't hide it. */
.pcoc-bento-mosaic .et_pb_image {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: block;
    position: relative;
    z-index: 3;
}
.pcoc-bento-mosaic .et_pb_image_wrap {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    position: relative;
    z-index: 3;
}
.pcoc-bento-mosaic .et_pb_image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
    position: relative;
    z-index: 3;
    transition: transform 0.7s cubic-bezier(0.2,0.8,0.2,1);
}
.pcoc-about-moments .et_pb_row.pcoc-bento-mosaic > .et_pb_column:hover img {
    transform: scale(1.06);
}

/* Glass-pill caption (set on the .et_pb_text following an image) */
.pcoc-bento-mosaic .et_pb_text {
    position: absolute !important;
    left: 14px;
    bottom: 14px;
    z-index: 6;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none;
    width: auto !important;
    max-width: calc(100% - 28px);
}
.pcoc-bento-mosaic .et_pb_text .et_pb_text_inner {
    margin: 0 !important;
    padding: 0 !important;
}
.pcoc-bento-caption {
    display: inline-flex !important;
    align-items: center;
    padding: 7px 14px !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.16em !important;
    color: #ffffff !important;
    background: rgba(15, 58, 82, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.20);
    border-radius: 999px;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    line-height: 1 !important;
}
.pcoc-bento-caption::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--pcoc-coral);
    margin-right: 8px;
    box-shadow: 0 0 0 3px rgba(232, 98, 42, 0.30);
}

/* === Tile placement (12-col grid, 3 rows) =====================
   Layout target:
     row 1-2: HERO (col 1-7), A (col 8-12)
     row 2:                    B (col 8-12)
     row 3:    C (col 1-3), D (col 4-6), E (col 7-9), F (col 10-12)
================================================================= */
.pcoc-bento-hero {
    grid-column: 1 / span 7;
    grid-row: 1 / span 2;
    min-height: clamp(360px, 42vw, 540px);
}
.pcoc-bento-tile--a {
    grid-column: 8 / span 5;
    grid-row: 1;
    min-height: clamp(170px, 20vw, 260px);
}
.pcoc-bento-tile--b {
    grid-column: 8 / span 5;
    grid-row: 2;
    min-height: clamp(170px, 20vw, 260px);
}
.pcoc-bento-tile--c {
    grid-column: 1 / span 3;
    grid-row: 3;
    min-height: clamp(180px, 18vw, 240px);
}
.pcoc-bento-tile--d {
    grid-column: 4 / span 3;
    grid-row: 3;
}
.pcoc-bento-tile--e {
    grid-column: 7 / span 3;
    grid-row: 3;
}
.pcoc-bento-tile--f {
    grid-column: 10 / span 3;
    grid-row: 3;
}

@media (max-width: 980px) {
    .pcoc-about-moments .et_pb_row.pcoc-bento-mosaic {
        grid-template-columns: repeat(6, 1fr);
        grid-auto-rows: minmax(140px, auto);
    }
    .pcoc-bento-hero {
        grid-column: 1 / span 6;
        grid-row: 1;
        min-height: clamp(260px, 50vw, 400px);
    }
    .pcoc-bento-tile--a {
        grid-column: 1 / span 3;
        grid-row: 2;
    }
    .pcoc-bento-tile--b {
        grid-column: 4 / span 3;
        grid-row: 2;
    }
    .pcoc-bento-tile--c { grid-column: 1 / span 3; grid-row: 3; }
    .pcoc-bento-tile--d { grid-column: 4 / span 3; grid-row: 3; }
    .pcoc-bento-tile--e { grid-column: 1 / span 3; grid-row: 4; }
    .pcoc-bento-tile--f { grid-column: 4 / span 3; grid-row: 4; }
}
@media (max-width: 560px) {
    .pcoc-about-moments .et_pb_row.pcoc-bento-mosaic {
        grid-template-columns: 1fr;
    }
    .pcoc-bento-hero,
    .pcoc-bento-tile--a, .pcoc-bento-tile--b, .pcoc-bento-tile--c,
    .pcoc-bento-tile--d, .pcoc-bento-tile--e, .pcoc-bento-tile--f {
        grid-column: 1;
        grid-row: auto;
        min-height: 220px;
    }
}

@media (max-width: 880px) {
    .pcoc-about-cta .et_pb_row.pcoc-cta-row {
        grid-template-columns: 1fr;
        row-gap: clamp(28px, 4vw, 40px);
    }
    .pcoc-cta-image-col .et_pb_image_wrap::before {
        top: 14px;
        left: -14px;
        right: 14px;
        bottom: -14px;
    }
    .pcoc-cta-text-col,
    .pcoc-cta-text-col .et_pb_module,
    .pcoc-about-cta__headline,
    .pcoc-about-cta__body {
        text-align: center !important;
    }
    .pcoc-cta-text-col .pcoc-eyebrow {
        justify-content: center;
    }
    .pcoc-about-cta__body {
        max-width: 600px;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}


/* =================================================================
   WORSHIP PAGE — v4.2.0 (added 2026-04-28)
   Aurora hero band, Weekly Message editorial flyer, sermon glass well,
   sermon grid Aurora override, dark-anchor service info, closing postcard.
   The unified Aurora canvas is already painted globally (see line ~937).
   Worship-page-only tweaks are scoped via body.page-id-1283 / .pcoc-page-worship.
================================================================= */

/* Worship-page-only accent layer was attempted here but caused a visible
   horizontal seam at the bottom of the fixed header — the global Aurora is
   painted on both html AND #page-container, but a #page-container::before
   pseudo-element only covers the page-container area, not the strip behind
   the header. That mismatch created a hard color edge cutting across the
   header/logo. Removed in favor of using the global Aurora canvas (which is
   already lake-blue dominant in the top-left). If we ever want a worship-only
   accent, paint it on BOTH html and #page-container::before with matching
   gradients so they meet cleanly. */

/* ---- Worship sections riding the Aurora canvas ---- */
/* Divi's .et_pb_section defaults to background-color: #fff. Explicit transparent
   on all Aurora-canvas sections so the global Aurora canvas behind #page-container
   shows through. The dark-anchor service-info section and closing postcard set
   their own backgrounds and are excluded. Also zero the et_flex_section row-gap
   so stacked rows inside one section read as one block (per project memory:
   feedback_divi5_flex_section_rowgap.md). */
.pcoc-worship-hero,
.pcoc-worship-weekly-msg,
.pcoc-worship-sermon-hero,
.pcoc-worship-sermon-grid,
.pcoc-worship-cta-out {
    background: transparent !important;
}
.pcoc-worship-hero.et_flex_section,
.pcoc-worship-weekly-msg.et_flex_section,
.pcoc-worship-sermon-hero.et_flex_section,
.pcoc-worship-sermon-grid.et_flex_section,
.pcoc-worship-cta-out.et_flex_section {
    row-gap: 0 !important;
}

/* ================================================================
   1. WORSHIP HERO — Aurora page-title band (slim, ~50vh)
================================================================ */
.pcoc-worship-hero {
    text-align: center;
    padding: clamp(80px, 12vh, 140px) clamp(20px, 4vw, 48px) clamp(56px, 8vh, 96px);
    position: relative;
    z-index: 2;
}
/* Force-center Divi text/code modules inside the hero — Divi's
   .et_pb_text_inner defaults to text-align: start which kills our centering. */
.pcoc-worship-hero .et_pb_text_inner,
.pcoc-worship-hero .et_pb_code_inner {
    text-align: center !important;
}
.pcoc-worship-hero__eyebrow {
    display: inline-block;
    font-size: clamp(11px, 0.85vw, 13px);
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--pcoc-lake-blue);
    margin-bottom: 18px;
}
.pcoc-worship-hero__title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
    font-size: clamp(2.4rem, 6vw, 4.4rem) !important;
    line-height: 1.05 !important;
    color: var(--pcoc-charcoal) !important;
    margin: 0 auto 20px !important;
    max-width: 18ch !important;
}
.pcoc-worship-hero__title em,
.pcoc-worship-hero__title .pcoc-accent {
    font-style: normal;
    background: linear-gradient(120deg, var(--pcoc-deep-teal) 0%, var(--pcoc-lake-blue) 60%, var(--pcoc-coral) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.pcoc-worship-hero__support {
    font-size: clamp(15px, 1.15vw, 18px);
    color: rgba(30,30,46,0.72);
    max-width: 56ch;
    margin: 0 auto 28px;
    line-height: 1.6;
}

/* Scripture pill rendered by [weekly_message_scripture] */
.pcoc-worship-scripture-pill {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px 16px;
    max-width: 70ch;
    padding: 14px 22px;
    background: rgba(255,255,255,0.55);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(40,160,200,0.28);
    border-radius: 999px;
    box-shadow: 0 6px 28px rgba(40,160,200,0.10), inset 0 1px 0 rgba(255,255,255,0.6);
}
.pcoc-worship-scripture-pill__ref {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pcoc-deep-teal);
    padding: 4px 12px;
    border-radius: 999px;
    background: rgba(40,160,200,0.14);
    flex-shrink: 0;
}
.pcoc-worship-scripture-pill__verse {
    font-size: clamp(13px, 1vw, 15px);
    color: rgba(30,30,46,0.78);
    font-style: italic;
    line-height: 1.5;
}

@media (max-width: 720px) {
    .pcoc-worship-scripture-pill {
        border-radius: 22px;
        padding: 14px 18px;
    }
}

/* ================================================================
   2. WEEKLY MESSAGE — editorial flyer
================================================================ */
.pcoc-weekly-message {
    max-width: 1080px;
    margin: 0 auto;
    padding: clamp(40px, 6vh, 72px) clamp(20px, 4vw, 48px);
    position: relative;
    z-index: 2;
}

.pcoc-weekly-message__header {
    text-align: center;
    margin-bottom: clamp(36px, 5vh, 56px);
}
.pcoc-weekly-message__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--pcoc-lake-blue);
    margin-bottom: 14px;
}
.pcoc-weekly-message__title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
    font-size: clamp(2rem, 4.6vw, 3.4rem) !important;
    line-height: 1.1 !important;
    color: var(--pcoc-charcoal) !important;
    margin: 0 0 10px !important;
}
.pcoc-weekly-message__date {
    display: block;
    font-size: 14px;
    color: rgba(30,30,46,0.55);
    letter-spacing: 0.04em;
}

/* ---- Scripture pull-quote ---- */
.pcoc-weekly-message__scripture {
    position: relative;
    margin: 0 auto clamp(40px, 6vh, 64px);
    max-width: 760px;
    padding: 28px 32px 28px 44px;
    border-left: 4px solid var(--pcoc-deep-teal);
    background: linear-gradient(120deg, rgba(40,160,200,0.06) 0%, rgba(255,255,255,0) 70%);
    border-radius: 0 18px 18px 0;
}
.pcoc-weekly-message__scripture-eyebrow {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--pcoc-deep-teal);
    margin-bottom: 12px;
}
.pcoc-weekly-message__scripture-verse {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.15rem, 1.8vw, 1.5rem);
    line-height: 1.55;
    color: var(--pcoc-charcoal);
    font-weight: 500;
    font-style: italic;
    margin: 0 0 14px;
    padding: 0;
    border: none;
    background: none;
}
.pcoc-weekly-message__scripture-ref {
    display: inline-block;
    font-style: normal;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--pcoc-deep-teal);
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(40,160,200,0.14);
}

/* ---- A Thought From The Pastor — magazine treatment ---- */
.pcoc-weekly-message__thought {
    max-width: 720px;
    margin: 0 auto clamp(48px, 7vh, 72px);
}
.pcoc-weekly-message__section-heading {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.28em !important;
    text-transform: uppercase;
    color: var(--pcoc-deep-teal) !important;
    margin: 0 0 20px !important;
    text-align: center;
    position: relative;
}
.pcoc-weekly-message__section-heading::after {
    content: "";
    display: block;
    width: 48px;
    height: 2px;
    background: linear-gradient(90deg, var(--pcoc-lake-blue), var(--pcoc-coral));
    margin: 14px auto 0;
    border-radius: 2px;
}
.pcoc-weekly-message__thought-body {
    font-size: clamp(16px, 1.15vw, 18px);
    line-height: 1.75;
    color: rgba(30,30,46,0.88);
}
.pcoc-weekly-message__thought-body > p:first-of-type::first-letter {
    float: left;
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 4.2rem;
    line-height: 0.95;
    padding: 6px 14px 0 0;
    color: var(--pcoc-deep-teal);
    background: linear-gradient(180deg, var(--pcoc-deep-teal) 0%, var(--pcoc-lake-blue) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.pcoc-weekly-message__thought-body p {
    margin: 0 0 1.2em;
}
.pcoc-weekly-message__thought-body ol,
.pcoc-weekly-message__thought-body ul {
    margin: 0 0 1.2em 1.5em;
    padding: 0;
}
.pcoc-weekly-message__thought-body li {
    margin-bottom: 0.5em;
}
.pcoc-weekly-message__thought-para {
    margin: 0 0 1.2em;
}
.pcoc-weekly-message__thought-para--lead::first-letter {
    float: left;
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 4.2rem;
    line-height: 0.95;
    padding: 6px 14px 0 0;
    color: var(--pcoc-deep-teal);
    background: linear-gradient(180deg, var(--pcoc-deep-teal) 0%, var(--pcoc-lake-blue) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* ---- Two-column flyer ---- */
.pcoc-weekly-message__flyer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(28px, 4vw, 56px);
    margin-top: clamp(40px, 6vh, 64px);
}
.pcoc-weekly-message__flyer-col {
    display: flex;
    flex-direction: column;
    gap: clamp(28px, 4vh, 44px);
}

.pcoc-wm-list {
    background: rgba(255,255,255,0.55);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,0.6);
    border-left-width: 4px;
    border-radius: 0 16px 16px 0;
    padding: 22px 26px 24px;
    box-shadow: 0 4px 20px rgba(26,79,110,0.06);
}
.pcoc-wm-list--prayerful { border-left-color: var(--pcoc-lake-blue); }
.pcoc-wm-list--praise    { border-left-color: var(--pcoc-lake-glass); }
.pcoc-wm-list--plans     { border-left-color: var(--pcoc-coral); }
.pcoc-wm-list--purpose   { border-left-color: var(--pcoc-deep-teal); }

.pcoc-wm-list__heading {
    font-family: 'Inter', sans-serif !important;
    font-size: 1.08rem !important;
    font-weight: 800 !important;
    color: var(--pcoc-charcoal) !important;
    letter-spacing: -0.005em !important;
    margin: 0 0 14px !important;
    line-height: 1.25 !important;
}
.pcoc-wm-list__items {
    list-style: none !important;
    margin: 0;
    padding: 0;
}
.pcoc-wm-list__items > li {
    list-style-type: none !important;
    list-style-image: none !important;
}
.pcoc-wm-list__item {
    position: relative;
    padding: 8px 0 8px 22px;
    font-size: 15px;
    line-height: 1.55;
    color: rgba(30,30,46,0.85);
    border-bottom: 1px solid rgba(26,79,110,0.08);
}
.pcoc-wm-list__item:last-child {
    border-bottom: none;
}
.pcoc-wm-list__item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 17px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.3;
}
.pcoc-wm-list--prayerful .pcoc-wm-list__item::before { background: var(--pcoc-lake-blue); opacity: 1; }
.pcoc-wm-list--praise    .pcoc-wm-list__item::before { background: var(--pcoc-lake-glass); opacity: 1; }
.pcoc-wm-list--plans     .pcoc-wm-list__item::before { background: var(--pcoc-coral); opacity: 1; }
.pcoc-wm-list--purpose   .pcoc-wm-list__item::before { background: var(--pcoc-deep-teal); opacity: 1; }

/* ---- Empty state ---- */
.pcoc-weekly-message--empty {
    text-align: center;
    max-width: 640px;
    padding: clamp(48px, 7vh, 80px) 24px clamp(40px, 6vh, 64px);
}
.pcoc-weekly-message__empty-body {
    font-size: clamp(15px, 1.1vw, 17px);
    color: rgba(30,30,46,0.72);
    line-height: 1.65;
    margin: 18px 0 0;
}

@media (max-width: 860px) {
    .pcoc-weekly-message__flyer {
        grid-template-columns: 1fr;
    }
    .pcoc-weekly-message__thought-para--lead::first-letter {
        font-size: 3.4rem;
    }
}

/* ================================================================
   3. LATEST SERMON — glass video well frame (Worship-page only)
================================================================ */
.pcoc-worship-sermon-hero {
    max-width: 1080px;
    margin: 0 auto;
    padding: clamp(40px, 6vh, 72px) clamp(20px, 4vw, 48px) clamp(28px, 4vh, 48px);
    position: relative;
    z-index: 2;
    /* PCOC-72: the sermon card's ::before glow halo bleeds -60px horizontally
       by design; on phones that poked past the viewport and made the page
       scroll sideways. clip (not hidden) — no scroll container created,
       vertical bleed preserved. */
    overflow-x: clip;
}
.pcoc-worship-sermon-hero__eyebrow {
    display: block;
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--pcoc-lake-blue);
    margin-bottom: 12px;
}
.pcoc-worship-sermon-hero__title {
    text-align: center;
    font-family: 'Inter', sans-serif !important;
    font-size: clamp(1.8rem, 3.6vw, 2.6rem) !important;
    font-weight: 800 !important;
    color: var(--pcoc-charcoal) !important;
    line-height: 1.15 !important;
    margin: 0 auto 28px !important;
    max-width: 22ch;
}

/* Glass video-well frame around [latest_sermon] iframe */
.pcoc-worship-sermon-hero .pcoc-latest-sermon {
    position: relative;
    padding: 14px;
    background: rgba(255,255,255,0.6);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(40,160,200,0.22);
    border-radius: 28px;
    box-shadow:
        0 30px 80px rgba(26,79,110,0.18),
        inset 0 1px 0 rgba(255,255,255,0.75);
}
.pcoc-worship-sermon-hero .pcoc-latest-sermon::before {
    content: "";
    position: absolute;
    inset: -40px -60px;
    background: radial-gradient(ellipse at 50% 50%, rgba(40,160,200,0.18) 0%, rgba(40,160,200,0) 65%);
    z-index: -1;
    pointer-events: none;
}
.pcoc-worship-sermon-hero .pcoc-video-responsive {
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 12px 32px rgba(0,0,0,0.18);
}
.pcoc-worship-sermon-hero .pcoc-sermon-title {
    text-align: center;
    font-family: 'Inter', sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--pcoc-deep-teal);
    margin-top: 22px !important;
    letter-spacing: -0.005em;
}
.pcoc-worship-sermon-hero .pcoc-sermon-description {
    display: none; /* Description shown only on the YouTube destination */
}

/* ================================================================
   4. RECENT SERMONS — 3-card grid (Aurora override)
================================================================ */
.pcoc-worship-sermon-grid {
    max-width: 1080px;
    margin: 0 auto;
    padding: clamp(28px, 4vh, 48px) clamp(20px, 4vw, 48px) clamp(40px, 6vh, 64px);
    position: relative;
    z-index: 2;
}
.pcoc-worship-sermon-grid__eyebrow {
    display: block;
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--pcoc-lake-blue);
    margin-bottom: 24px;
}

/* Override generic .pcoc-sermon-grid card styling under the Worship wrapper */
.pcoc-worship-sermon-grid .pcoc-sermon-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin: 0;
}
.pcoc-worship-sermon-grid .pcoc-sermon-card {
    background: rgba(255,255,255,0.7);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(40,160,200,0.18);
    border-radius: 18px;
    box-shadow: 0 6px 24px rgba(26,79,110,0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.pcoc-worship-sermon-grid .pcoc-sermon-card:hover {
    transform: translateY(-6px) scale(1.02);
    box-shadow: 0 16px 40px rgba(40,160,200,0.22);
    border-color: rgba(40,160,200,0.45);
}
.pcoc-worship-sermon-grid .pcoc-sermon-thumb-wrap {
    aspect-ratio: 3/2;
    border-radius: 18px 18px 0 0;
}
.pcoc-worship-sermon-grid .pcoc-sermon-card-title {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: 0.98rem;
    line-height: 1.35;
    color: var(--pcoc-charcoal);
}
.pcoc-worship-sermon-grid .pcoc-sermon-card-title a {
    color: inherit;
}
.pcoc-worship-sermon-grid .pcoc-sermon-card-title a:hover {
    color: var(--pcoc-lake-blue);
}
.pcoc-worship-sermon-grid .pcoc-sermon-card-date {
    color: rgba(30,30,46,0.55);
    font-weight: 500;
    letter-spacing: 0.02em;
}

@media (max-width: 860px) {
    .pcoc-worship-sermon-grid .pcoc-sermon-grid {
        grid-template-columns: 1fr;
    }
}

/* ================================================================
   5. SEE ALL SERMONS — coral pill CTA
================================================================ */
.pcoc-worship-cta-out {
    text-align: center;
    padding: clamp(20px, 3vh, 36px) 20px clamp(48px, 7vh, 72px);
    position: relative;
    z-index: 2;
}
.pcoc-worship-cta-out__pill {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 14px 28px;
    background: var(--pcoc-coral);
    color: #fff !important;
    font-family: 'Inter', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    border-radius: 999px;
    text-decoration: none !important;
    box-shadow: 0 10px 28px rgba(232,98,42,0.32);
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}
.pcoc-worship-cta-out__pill:hover {
    transform: translateY(-2px);
    background: #d8541f;
    box-shadow: 0 14px 36px rgba(232,98,42,0.42);
    color: #fff !important;
}
.pcoc-worship-cta-out__pill .pcoc-arrow {
    display: inline-block;
    transition: transform 0.25s ease;
}
.pcoc-worship-cta-out__pill:hover .pcoc-arrow {
    transform: translateX(4px);
}

/* ================================================================
   6. STATIC SERVICE INFO — dark-anchor 3-card section
================================================================ */
.pcoc-worship-service-info {
    background:
        radial-gradient(ellipse 80vw 70vh at 20% 10%, rgba(40,160,200,0.18) 0%, rgba(40,160,200,0) 60%),
        radial-gradient(ellipse 70vw 65vh at 90% 90%, rgba(232,98,42,0.14) 0%, rgba(232,98,42,0) 60%),
        linear-gradient(150deg, #163d56 0%, #1a4f6e 50%, #14334b 100%);
    padding: clamp(72px, 10vh, 120px) clamp(20px, 4vw, 48px);
    position: relative;
    z-index: 2;
    overflow: hidden;
}
.pcoc-worship-service-info::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.45'/%3E%3C/svg%3E");
    opacity: 0.055;
    mix-blend-mode: overlay;
    pointer-events: none;
}
.pcoc-worship-service-info__inner {
    max-width: 1180px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}
.pcoc-worship-service-info__header {
    text-align: center;
    margin-bottom: clamp(40px, 6vh, 64px);
    color: #fff;
}
.pcoc-worship-service-info__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.62);
    margin-bottom: 14px;
}
.pcoc-worship-service-info__title {
    font-family: 'Inter', sans-serif !important;
    font-size: clamp(1.8rem, 3.6vw, 2.8rem) !important;
    font-weight: 800 !important;
    color: #fff !important;
    margin: 0 !important;
    line-height: 1.1 !important;
}
.pcoc-worship-service-info__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(20px, 2.5vw, 32px);
}
.pcoc-service-card {
    background: rgba(255,255,255,0.06);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255,255,255,0.14);
    border-radius: 22px;
    padding: 32px 28px;
    color: #fff;
    box-shadow: 0 12px 36px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.18);
    transition: transform 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}
.pcoc-service-card:hover {
    transform: translateY(-4px);
    border-color: rgba(40,160,200,0.5);
    background: rgba(255,255,255,0.09);
}
.pcoc-service-card__pip {
    display: inline-block;
    width: 36px;
    height: 36px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--pcoc-lake-blue), var(--pcoc-deep-teal));
    margin-bottom: 18px;
    position: relative;
}
.pcoc-service-card--schedule .pcoc-service-card__pip { background: linear-gradient(135deg, var(--pcoc-lake-glass), var(--pcoc-lake-blue)); }
.pcoc-service-card--gatherings .pcoc-service-card__pip { background: linear-gradient(135deg, var(--pcoc-lake-blue), var(--pcoc-coral)); }
.pcoc-service-card--find .pcoc-service-card__pip { background: linear-gradient(135deg, var(--pcoc-coral), var(--pcoc-deep-teal)); }
.pcoc-service-card__title {
    font-family: 'Inter', sans-serif !important;
    font-size: 1.3rem !important;
    font-weight: 800 !important;
    color: #fff !important;
    margin: 0 0 14px !important;
    line-height: 1.2 !important;
}
.pcoc-service-card__lines {
    list-style: none;
    margin: 0;
    padding: 0;
    color: rgba(255,255,255,0.82);
    font-size: 15px;
    line-height: 1.65;
}
.pcoc-service-card__lines li {
    padding: 5px 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}
.pcoc-service-card__lines li:last-child {
    border-bottom: none;
}
/* Phone/email links in the Find Us card — readable on the dark card surface. */
.pcoc-service-card__lines a {
    color: #fff;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.35);
    transition: border-color .2s ease;
}
.pcoc-service-card__lines a:hover { border-bottom-color: #fff; }
.pcoc-service-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 18px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--pcoc-lake-glass) !important;
    text-decoration: none !important;
    transition: gap 0.25s ease, color 0.25s ease;
}
.pcoc-service-card__cta:hover {
    gap: 14px;
    color: #fff !important;
}

@media (max-width: 980px) {
    .pcoc-worship-service-info__grid {
        grid-template-columns: 1fr;
        max-width: 520px;
        margin: 0 auto;
    }
}

/* ================================================================
   7. CLOSING POSTCARD — invite to Sunday
================================================================ */
.pcoc-worship-postcard {
    padding: clamp(64px, 9vh, 110px) clamp(20px, 4vw, 48px);
    position: relative;
    z-index: 2;
}
.pcoc-worship-postcard__inner {
    max-width: 1080px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: clamp(32px, 5vw, 64px);
    align-items: center;
}
.pcoc-worship-postcard__media {
    position: relative;
}
.pcoc-worship-postcard__media-frame {
    position: relative;
    aspect-ratio: 4/3;
    background-size: cover;
    background-position: center;
    border-radius: 22px;
    box-shadow: 0 24px 60px rgba(26,79,110,0.22);
    z-index: 2;
}
.pcoc-worship-postcard__media::before {
    content: "";
    position: absolute;
    inset: 18px -18px -18px 18px;
    background: linear-gradient(135deg, var(--pcoc-coral) 0%, var(--pcoc-lake-blue) 100%);
    border-radius: 22px;
    z-index: 1;
}
.pcoc-worship-postcard__copy {
    color: var(--pcoc-charcoal);
}
.pcoc-worship-postcard__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--pcoc-coral);
    margin-bottom: 16px;
}
.pcoc-worship-postcard__title {
    font-family: 'Inter', sans-serif !important;
    font-size: clamp(2rem, 4.4vw, 3.2rem) !important;
    font-weight: 800 !important;
    line-height: 1.08 !important;
    margin: 0 0 18px !important;
    color: var(--pcoc-charcoal) !important;
}
.pcoc-worship-postcard__title em,
.pcoc-worship-postcard__title .pcoc-accent {
    font-style: normal;
    background: linear-gradient(120deg, var(--pcoc-deep-teal) 0%, var(--pcoc-coral) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.pcoc-worship-postcard__body {
    font-size: clamp(15px, 1.15vw, 17px);
    line-height: 1.65;
    color: rgba(30,30,46,0.78);
    max-width: 48ch;
    margin: 0 0 26px;
}
.pcoc-worship-postcard__cta {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 14px 28px;
    background: var(--pcoc-coral);
    color: #fff !important;
    font-family: 'Inter', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    border-radius: 999px;
    text-decoration: none !important;
    box-shadow: 0 10px 28px rgba(232,98,42,0.32);
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}
.pcoc-worship-postcard__cta:hover {
    transform: translateY(-2px);
    background: #d8541f;
    box-shadow: 0 14px 36px rgba(232,98,42,0.42);
    color: #fff !important;
}

@media (max-width: 880px) {
    .pcoc-worship-postcard__inner {
        grid-template-columns: 1fr;
    }
    .pcoc-worship-postcard__media {
        max-width: 520px;
        margin: 0 auto;
    }
}

/* ================================================================
   MINISTRIES PAGE — v4.3.0 (added 2026-04-29)
   Hero band reuses .pcoc-about-header (proven cross-page hero pattern).
   The page-unique styles below cover Sections 2-8.
================================================================ */

/* ----------------------------------------------------------------
   2. TOM'S INVITATION — editorial split (pull-quote | prose)
---------------------------------------------------------------- */
html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-ministries-invitation {
    background: transparent !important;
    background-color: transparent !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    position: relative !important;
    overflow: clip !important;
}
.pcoc-ministries-invitation .et_pb_row.pcoc-ministries-invitation__row {
    max-width: 1100px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: clamp(56px, 8vh, 96px) clamp(20px, 4vw, 40px) clamp(56px, 8vh, 96px) !important;
    display: grid !important;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr) !important;
    gap: clamp(36px, 5vw, 72px) !important;
    align-items: start;
    position: relative;
    z-index: 2;
}
/* Disable Divi's default flex column behavior so our grid-on-row layout wins. */
.pcoc-ministries-invitation__row > .et_pb_column {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

/* ---- Left column: Pull-quote ---- */
.pcoc-ministries-invitation__quote.et_pb_text .et_pb_text_inner,
.pcoc-ministries-invitation__quote .et_pb_text_inner {
    position: relative;
    padding: 14px 0 14px 32px;
    border-left: 4px solid var(--pcoc-deep-teal);
    background: linear-gradient(120deg, rgba(40,160,200,0.06) 0%, rgba(255,255,255,0) 70%);
    border-radius: 0 18px 18px 0;
}
.pcoc-ministries-invitation__quote-text {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.3rem, 2.1vw, 1.85rem);
    line-height: 1.4;
    font-weight: 500;
    font-style: italic;
    color: var(--pcoc-charcoal);
    margin: 0 0 18px;
    letter-spacing: -0.005em;
}
.pcoc-ministries-invitation__quote-attrib {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--pcoc-deep-teal);
    margin: 0;
    padding: 0;
    font-style: normal;
}
.pcoc-ministries-invitation__quote-attrib::before {
    content: "";
    display: inline-block;
    width: 28px;
    height: 2px;
    background: var(--pcoc-coral);
    border-radius: 2px;
}

/* ---- Right column: Prose welcome ---- */
.pcoc-ministries-invitation__prose .et_pb_text_inner {
    color: var(--pcoc-charcoal);
}
.pcoc-ministries-invitation__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--pcoc-lake-blue);
    margin: 0 0 14px;
}
.pcoc-ministries-invitation__title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
    font-size: clamp(1.6rem, 2.6vw, 2.2rem) !important;
    line-height: 1.18 !important;
    color: var(--pcoc-charcoal) !important;
    margin: 0 0 22px !important;
    letter-spacing: -0.01em;
}
.pcoc-ministries-invitation__body {
    font-size: clamp(15px, 1.1vw, 17px);
    line-height: 1.75;
    color: rgba(30,30,46,0.86);
}
.pcoc-ministries-invitation__body p {
    margin: 0 0 1.1em;
}
.pcoc-ministries-invitation__body p:last-child {
    margin-bottom: 0;
}
.pcoc-ministries-invitation__body p.pcoc-lead::first-letter {
    float: left;
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 3.4rem;
    line-height: 0.95;
    padding: 4px 12px 0 0;
    color: var(--pcoc-deep-teal);
    background: linear-gradient(180deg, var(--pcoc-deep-teal) 0%, var(--pcoc-lake-blue) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

@media (max-width: 880px) {
    .pcoc-ministries-invitation .et_pb_row.pcoc-ministries-invitation__row {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
        padding: 48px 18px !important;
    }
    .pcoc-ministries-invitation__quote-text {
        font-size: 1.2rem;
    }
}

/* ----------------------------------------------------------------
   3. MINISTRY INDEX — dark-anchor full-bleed editorial slab
   Numbered list (01-04) with anchor links jumping to ministry sections.
---------------------------------------------------------------- */
html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-ministries-index {
    position: relative !important;
    overflow: clip !important;
    padding: 0 !important;
    margin: clamp(40px, 6vh, 72px) 0 0 !important;
    background:
        linear-gradient(135deg, #163d56 0%, #1a4f6e 50%, #14334b 100%) !important;
    background-color: #163d56 !important;
}
/* Aurora pools — coral top-left + lake-blue bottom-right */
.pcoc-ministries-index::before {
    content: "";
    position: absolute;
    top: -160px;
    left: -120px;
    width: 580px;
    height: 580px;
    background: radial-gradient(circle at center,
        rgba(232,98,42,0.22) 0%,
        rgba(232,98,42,0.08) 40%,
        transparent 70%);
    filter: blur(80px);
    pointer-events: none;
    z-index: 0;
}
.pcoc-ministries-index::after {
    content: "";
    position: absolute;
    bottom: -180px;
    right: -140px;
    width: 620px;
    height: 620px;
    background: radial-gradient(circle at center,
        rgba(40,160,200,0.22) 0%,
        rgba(40,160,200,0.08) 40%,
        transparent 70%);
    filter: blur(80px);
    pointer-events: none;
    z-index: 0;
}
.pcoc-ministries-index .et_pb_row.pcoc-ministries-index__row {
    max-width: 1100px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: clamp(64px, 9vh, 110px) clamp(20px, 4vw, 40px) !important;
    position: relative;
    z-index: 2;
}
.pcoc-ministries-index__row > .et_pb_column {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

/* Header — small eyebrow + tight headline */
.pcoc-ministries-index__header .et_pb_text_inner {
    text-align: center;
    margin-bottom: clamp(40px, 6vh, 64px);
}
.pcoc-ministries-index__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    margin-bottom: 14px;
}
.pcoc-ministries-index__title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
    font-size: clamp(1.7rem, 3.2vw, 2.5rem) !important;
    line-height: 1.18 !important;
    color: #fff !important;
    margin: 0 auto !important;
    max-width: 22ch;
    letter-spacing: -0.01em;
}
.pcoc-ministries-index__title .pcoc-accent-coral {
    background: linear-gradient(120deg, #ff8a5b 0%, #ffb88c 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* List — 4 anchor rows, numbered */
.pcoc-ministries-index__list .et_pb_text_inner {
    max-width: 880px;
    margin: 0 auto;
}
.pcoc-mindex-list {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid rgba(255,255,255,0.12);
}
.pcoc-mindex-list__item {
    border-bottom: 1px solid rgba(255,255,255,0.12);
    margin: 0;
    padding: 0;
}
.pcoc-mindex-list__link {
    display: grid;
    grid-template-columns: 92px 1fr 48px;
    align-items: center;
    gap: 28px;
    padding: clamp(22px, 3vh, 32px) clamp(8px, 2vw, 16px);
    color: #fff;
    text-decoration: none;
    transition: padding 0.4s ease, background 0.4s ease;
    position: relative;
}
.pcoc-mindex-list__link:hover,
.pcoc-mindex-list__link:focus-visible {
    background: rgba(255,255,255,0.04);
    padding-left: clamp(16px, 3vw, 28px);
    color: #fff;
}
.pcoc-mindex-list__num {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1rem, 1.4vw, 1.2rem);
    font-weight: 700;
    letter-spacing: 0.18em;
    color: rgba(255,255,255,0.45);
    border-right: 1px solid rgba(255,255,255,0.18);
    padding-right: 20px;
    text-align: right;
    transition: color 0.3s ease;
}
.pcoc-mindex-list__link:hover .pcoc-mindex-list__num,
.pcoc-mindex-list__link:focus-visible .pcoc-mindex-list__num {
    color: #ff8a5b;
}
.pcoc-mindex-list__label {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.4rem, 2.6vw, 2.1rem);
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
    letter-spacing: -0.005em;
}
.pcoc-mindex-list__arrow {
    font-size: 1.4rem;
    color: rgba(255,255,255,0.35);
    text-align: right;
    transition: transform 0.4s ease, color 0.3s ease;
    line-height: 1;
}
.pcoc-mindex-list__link:hover .pcoc-mindex-list__arrow,
.pcoc-mindex-list__link:focus-visible .pcoc-mindex-list__arrow {
    color: #ff8a5b;
    transform: translateX(8px);
}

@media (max-width: 720px) {
    .pcoc-mindex-list__link {
        grid-template-columns: 56px 1fr 32px;
        gap: 16px;
    }
    .pcoc-mindex-list__num {
        padding-right: 14px;
    }
    .pcoc-mindex-list__label {
        font-size: 1.2rem;
    }
}

/* ----------------------------------------------------------------
   4-6. MINISTRY SECTION — shared layout (used by Word of God, Community
   Outreach, Recovery). Variant modifiers control light/dark/soft contrast.
---------------------------------------------------------------- */
html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-ministry-section {
    position: relative !important;
    overflow: clip !important;
    padding: 0 !important;
    margin: 0 !important;
    /* Anchor offset for sticky header — keeps section title visible
       when the index list jumps here. */
    scroll-margin-top: 100px;
}

/* Light variant: transparent over page Aurora */
.pcoc-ministry-section.pcoc-ministry-section--light {
    background: transparent !important;
    background-color: transparent !important;
}

/* Soft variant: light + warm tint underlay */
.pcoc-ministry-section.pcoc-ministry-section--soft {
    background:
        radial-gradient(ellipse at 20% 30%, rgba(255,225,210,0.45) 0%, transparent 55%),
        radial-gradient(ellipse at 80% 70%, rgba(220,235,235,0.45) 0%, transparent 55%),
        rgba(253,246,238,0.85) !important;
}

/* Dark variant: deep-teal anchor with aurora pools (set on the section
   directly so each variant carries its own pseudo-element pools below). */
.pcoc-ministry-section.pcoc-ministry-section--dark {
    background:
        linear-gradient(135deg, #163d56 0%, #1a4f6e 50%, #14334b 100%) !important;
    background-color: #163d56 !important;
}
.pcoc-ministry-section--dark::before {
    content: "";
    position: absolute;
    top: -160px;
    right: -120px;
    width: 580px;
    height: 580px;
    background: radial-gradient(circle at center,
        rgba(232,98,42,0.22) 0%,
        rgba(232,98,42,0.08) 40%,
        transparent 70%);
    filter: blur(80px);
    pointer-events: none;
    z-index: 0;
}
.pcoc-ministry-section--dark::after {
    content: "";
    position: absolute;
    bottom: -180px;
    left: -140px;
    width: 620px;
    height: 620px;
    background: radial-gradient(circle at center,
        rgba(111,174,155,0.20) 0%,
        rgba(111,174,155,0.06) 40%,
        transparent 70%);
    filter: blur(80px);
    pointer-events: none;
    z-index: 0;
}

/* Common row */
.pcoc-ministry-section .et_pb_row.pcoc-ministry-section__row {
    max-width: 1140px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: clamp(72px, 10vh, 120px) clamp(20px, 4vw, 40px) !important;
    position: relative;
    z-index: 2;
}
.pcoc-ministry-section__row > .et_pb_column {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

/* Intro block */
.pcoc-ministry-section__intro .et_pb_text_inner {
    max-width: 760px;
    margin: 0 0 clamp(36px, 5vh, 56px);
}
.pcoc-ministry-section__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    margin: 0 0 16px;
    color: var(--pcoc-lake-blue);
}
.pcoc-ministry-section__eyebrow .pcoc-ministry-section__num {
    color: var(--pcoc-coral);
    margin-right: 12px;
    padding-right: 12px;
    border-right: 1px solid currentColor;
    opacity: 0.85;
}
.pcoc-ministry-section--dark .pcoc-ministry-section__eyebrow {
    color: rgba(255,255,255,0.6);
}
.pcoc-ministry-section--dark .pcoc-ministry-section__eyebrow .pcoc-ministry-section__num {
    color: #ff8a5b;
}
.pcoc-ministry-section__title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
    font-size: clamp(1.9rem, 3.6vw, 2.8rem) !important;
    line-height: 1.15 !important;
    color: var(--pcoc-charcoal) !important;
    letter-spacing: -0.012em !important;
    margin: 0 0 18px !important;
}
.pcoc-ministry-section--dark .pcoc-ministry-section__title {
    color: #fff !important;
}
.pcoc-ministry-section__title .pcoc-accent-word {
    /* inherits gradient from global rule */
}
.pcoc-ministry-section--dark .pcoc-ministry-section__title .pcoc-accent-word {
    background: linear-gradient(120deg, #ff8a5b 0%, #ffb88c 60%, rgba(111,174,155,1) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.pcoc-ministry-section__lead {
    font-size: clamp(15px, 1.15vw, 17px);
    line-height: 1.7;
    color: rgba(30,30,46,0.82);
    margin: 0;
    max-width: 60ch;
}
.pcoc-ministry-section--dark .pcoc-ministry-section__lead {
    color: rgba(255,255,255,0.78);
}

/* Card grid — 3-up by default, 2-up for soft/recovery via modifier */
.pcoc-ministry-section__cards .et_pb_text_inner {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(20px, 2.4vw, 32px);
    margin-top: clamp(20px, 3vh, 36px);
}
.pcoc-ministry-section__cards--two .et_pb_text_inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 880px;
    margin-left: auto;
    margin-right: auto;
}
.pcoc-ministry-section__cards--four .et_pb_text_inner {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
/* 4-up gets cramped below ~1100px — step down to 2×2 before the global 1-col collapse */
@media (max-width: 1100px) {
    .pcoc-ministry-section__cards--four .et_pb_text_inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Individual ministry card */
.pcoc-ministry-card {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 28px 26px 30px;
    border-radius: 18px;
    background: rgba(255,255,255,0.65);
    border: 1px solid rgba(255,255,255,0.7);
    box-shadow:
        0 12px 36px rgba(26,79,110,0.10),
        0 2px 8px rgba(26,79,110,0.06),
        inset 0 1px 0 rgba(255,255,255,0.85);
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
    overflow: hidden;
    isolation: isolate;
}
/* Linked ministry cards — whole card clickable via a stretched overlay link.
   The card stays a block <div> (so WP's wpautop doesn't wrap it in stray <p>);
   the absolutely-positioned <a> covers the card and carries the link + label. */
.pcoc-ministry-card--link { cursor: pointer; }
.pcoc-ministry-card__stretch {
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: inherit;
    font-size: 0;
    overflow: hidden;
    text-decoration: none;
}
.pcoc-ministry-card__stretch:focus-visible {
    outline: 2px solid var(--pcoc-lake-blue);
    outline-offset: 3px;
}
/* If wpautop wraps the overlay link in a <p>, neutralize that wrapper's spacing. */
.pcoc-ministry-card > p:has(> .pcoc-ministry-card__stretch) { margin: 0; }
.pcoc-ministry-section--dark .pcoc-ministry-card {
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.16);
    box-shadow:
        0 12px 36px rgba(0,0,0,0.25),
        inset 0 1px 0 rgba(255,255,255,0.08);
    color: #fff;
}
.pcoc-ministry-card:hover {
    transform: translateY(-4px);
    border-color: rgba(40,160,200,0.35);
    box-shadow:
        0 20px 50px rgba(26,79,110,0.16),
        0 4px 14px rgba(26,79,110,0.10),
        inset 0 1px 0 rgba(255,255,255,0.9);
}
.pcoc-ministry-section--dark .pcoc-ministry-card:hover {
    border-color: rgba(255,138,91,0.45);
    box-shadow:
        0 20px 50px rgba(0,0,0,0.32),
        inset 0 1px 0 rgba(255,255,255,0.10);
}
/* Top color bar — rotates per card */
.pcoc-ministry-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--pcoc-lake-blue);
    border-radius: 18px 18px 0 0;
}
.pcoc-ministry-card--coral::before     { background: var(--pcoc-coral); }
.pcoc-ministry-card--sage::before      { background: var(--pcoc-lake-glass); }
.pcoc-ministry-card--lake-blue::before { background: var(--pcoc-lake-blue); }
.pcoc-ministry-card--teal::before      { background: var(--pcoc-deep-teal); }

.pcoc-ministry-card__name {
    font-family: 'Inter', sans-serif;
    font-size: 1.18rem;
    font-weight: 800;
    color: var(--pcoc-charcoal);
    letter-spacing: -0.005em;
    margin: 0 0 12px;
    line-height: 1.25;
}
.pcoc-ministry-section--dark .pcoc-ministry-card__name {
    color: #fff;
}
.pcoc-ministry-card__desc {
    font-size: 14.5px;
    line-height: 1.6;
    color: rgba(30,30,46,0.78);
    margin: 0 0 16px;
    flex-grow: 1;
}
.pcoc-ministry-section--dark .pcoc-ministry-card__desc {
    color: rgba(255,255,255,0.78);
}
.pcoc-ministry-card__meta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pcoc-deep-teal);
    margin: 0;
    padding-top: 14px;
    border-top: 1px solid rgba(26,79,110,0.10);
}
.pcoc-ministry-card--coral .pcoc-ministry-card__meta     { color: var(--pcoc-coral); }
.pcoc-ministry-card--sage .pcoc-ministry-card__meta      { color: #4a8775; }
.pcoc-ministry-card--lake-blue .pcoc-ministry-card__meta { color: var(--pcoc-lake-blue); }
.pcoc-ministry-section--dark .pcoc-ministry-card__meta {
    color: #ff8a5b;
    border-top-color: rgba(255,255,255,0.12);
}
.pcoc-ministry-section--dark .pcoc-ministry-card--sage .pcoc-ministry-card__meta {
    color: #9bd0bd;
}
.pcoc-ministry-section--dark .pcoc-ministry-card--lake-blue .pcoc-ministry-card__meta {
    color: #5fc1d6;
}

@media (max-width: 880px) {
    .pcoc-ministry-section__cards .et_pb_text_inner,
    .pcoc-ministry-section__cards--two .et_pb_text_inner,
    .pcoc-ministry-section__cards--four .et_pb_text_inner {
        grid-template-columns: 1fr;
    }
    .pcoc-ministry-section .et_pb_row.pcoc-ministry-section__row {
        padding: 56px 18px !important;
    }
}

/* ----------------------------------------------------------------
   7. SUNDAY CELEBRATIONS — 4-photo bento (extends dark variant)
---------------------------------------------------------------- */
.pcoc-celebrations__bento .et_pb_text_inner {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: 200px;
    gap: 14px;
    margin-top: clamp(28px, 4vh, 44px);
}
.pcoc-celebrations__tile {
    position: relative;
    overflow: hidden;
    border-radius: 18px;
    box-shadow: 0 14px 40px rgba(0,0,0,0.32),
                inset 0 1px 0 rgba(255,255,255,0.05);
    transition: transform 0.5s ease, box-shadow 0.5s ease;
    isolation: isolate;
}
.pcoc-celebrations__tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 1.2s ease;
}
.pcoc-celebrations__tile::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
        rgba(20,51,75,0) 50%,
        rgba(20,51,75,0.55) 100%);
    pointer-events: none;
}
.pcoc-celebrations__tile:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 56px rgba(0,0,0,0.40);
}
.pcoc-celebrations__tile:hover img {
    transform: scale(1.05);
}

/* Tile placement — 12-col, 3-row asymmetric */
.pcoc-celebrations__tile--hero { grid-column: 1 / span 8; grid-row: 1 / span 3; }
.pcoc-celebrations__tile--a    { grid-column: 9 / span 4; grid-row: 1 / span 1; }
.pcoc-celebrations__tile--b    { grid-column: 9 / span 4; grid-row: 2 / span 1; }
.pcoc-celebrations__tile--c    { grid-column: 9 / span 4; grid-row: 3 / span 1; }

/* Caption pill — overlay on hero */
.pcoc-celebrations__caption {
    position: absolute;
    bottom: 22px;
    left: 22px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 9px 18px;
    background: rgba(255,255,255,0.18);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255,255,255,0.30);
    border-radius: 999px;
    color: #fff;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    z-index: 2;
    margin: 0;
}
.pcoc-celebrations__caption::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #ff8a5b;
    flex-shrink: 0;
}

@media (max-width: 880px) {
    .pcoc-celebrations__bento .et_pb_text_inner {
        grid-template-columns: 1fr;
        grid-auto-rows: 220px;
    }
    .pcoc-celebrations__tile--hero,
    .pcoc-celebrations__tile--a,
    .pcoc-celebrations__tile--b,
    .pcoc-celebrations__tile--c {
        grid-column: 1 / -1;
        grid-row: auto;
    }
    .pcoc-celebrations__tile--hero { grid-row: span 2; }
}

/* =================================================================
   PCOC EVENTS PAGE — Section 2 (Coming Up — combined hero + grid)
   Hero (.pcoc-fe-card) + 3-up grid (.pcoc-event-card) stacked.
   Priority order inside [events_combined]: featured → one-offs →
   next-occurrence-per-recurring-slug.
================================================================= */

html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-events-combined,
.pcoc-events-combined {
    background: transparent !important;
    padding: 56px 0 48px !important;
}

.pcoc-events-combined .et_pb_row { row-gap: 0 !important; }
.pcoc-events-combined .et_pb_column { padding: 0 !important; }

.pcoc-events-combined__intro {
    max-width: 720px !important;
    text-align: center;
    padding: 0 24px !important;
    margin-bottom: 32px !important;
}

.pcoc-events-combined__intro .pcoc-eyebrow {
    margin: 0 auto 18px;
    justify-content: center;
}

.pcoc-events-combined__headline {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(2.25rem, 4vw, 3.25rem);
    line-height: 1.08;
    color: #1a4f6e;
    margin: 0 0 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.pcoc-events-combined__lead {
    font-size: 1.075rem;
    line-height: 1.6;
    color: #2d3a4a;
    margin: 0 auto;
    max-width: 580px;
    font-style: italic;
    opacity: 0.85;
}

.pcoc-events-combined__card-row {
    max-width: 1180px !important;
    padding: 0 24px !important;
}

/* Upscale the shared .pcoc-fe-card to a hero treatment for this page only.
   Homepage card stays compact; Events page card becomes full-bleed editorial. */
.pcoc-events-combined .pcoc-fe-card {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 0;
    background: rgba(255, 255, 255, 0.62);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 28px;
    box-shadow:
        0 30px 80px -30px rgba(20, 51, 75, 0.28),
        0 8px 24px -10px rgba(20, 51, 75, 0.12);
    overflow: hidden;
    position: relative;
    transform: none;
    transition: transform 0.45s ease, box-shadow 0.45s ease;
}

.pcoc-events-combined .pcoc-fe-card::before {
    content: "";
    position: absolute;
    inset: -8% -6% auto auto;
    width: 56%;
    height: 70%;
    background: radial-gradient(circle at 30% 30%, rgba(40, 160, 200, 0.22), transparent 65%);
    z-index: 0;
    pointer-events: none;
}

.pcoc-events-combined .pcoc-fe-card:hover {
    transform: translateY(-4px);
    box-shadow:
        0 40px 100px -30px rgba(20, 51, 75, 0.34),
        0 12px 32px -10px rgba(20, 51, 75, 0.16);
}

.pcoc-events-combined .pcoc-fe-card__media {
    min-height: 460px;
    border-radius: 0;
    background-size: cover;
    background-position: center;
    position: relative;
    z-index: 1;
}

.pcoc-events-combined .pcoc-fe-card__media::after {
    background: linear-gradient(135deg, rgba(20, 51, 75, 0) 50%, rgba(20, 51, 75, 0.28) 100%);
}

.pcoc-events-combined .pcoc-fe-card__badge {
    top: 22px;
    left: 22px;
    padding: 9px 18px;
    font-size: 0.72rem;
    letter-spacing: 0.22em;
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 255, 255, 0.40);
    color: #ffffff;
}

.pcoc-events-combined .pcoc-fe-card__body {
    padding: 56px 56px 52px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 18px;
    position: relative;
    z-index: 1;
}

.pcoc-events-combined .pcoc-fe-card__date {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #e8622a;
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.pcoc-events-combined .pcoc-fe-card__date-dot {
    width: 7px;
    height: 7px;
    background: #e8622a;
    border-radius: 50%;
}

.pcoc-events-combined .pcoc-fe-card__date-sep { color: rgba(232, 98, 42, 0.45); }

.pcoc-events-combined .pcoc-fe-card__title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.85rem, 2.6vw, 2.4rem);
    line-height: 1.12;
    color: #14334b;
    margin: 0;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.pcoc-events-combined .pcoc-fe-card__title a {
    color: inherit;
    text-decoration: none;
    background-image: linear-gradient(transparent 92%, rgba(40, 160, 200, 0.32) 92%);
    background-size: 0% 100%;
    background-repeat: no-repeat;
    transition: background-size 0.45s ease;
}

.pcoc-events-combined .pcoc-fe-card__title a:hover {
    background-size: 100% 100%;
}

.pcoc-events-combined .pcoc-fe-card__excerpt {
    font-size: 1.025rem;
    line-height: 1.65;
    color: #3b4a5c;
    margin: 0;
    opacity: 0.92;
}

.pcoc-events-combined .pcoc-fe-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
    padding: 14px 28px;
    background: #e8622a;
    color: #ffffff !important;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 999px;
    align-self: flex-start;
    transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 8px 22px -8px rgba(232, 98, 42, 0.5);
}

.pcoc-events-combined .pcoc-fe-card__cta:hover {
    background: #cf531f;
    transform: translateX(4px);
    box-shadow: 0 12px 28px -8px rgba(232, 98, 42, 0.6);
}

.pcoc-events-combined .pcoc-fe-card__cta-arrow {
    transition: transform 0.3s ease;
}

.pcoc-events-combined .pcoc-fe-card:hover .pcoc-fe-card__cta-arrow {
    transform: translateX(3px);
}

@media (max-width: 980px) {
    .pcoc-events-combined { padding: 64px 0 48px !important; }
    /* Reclaim full width on mobile. Divi rows default to width:80% and the
       slider adds 24px gutters, which together starved this card to ~60% of
       the section (skinny/squished). Force the row/column/slider full-width
       so it matches the homepage card's near-full-bleed treatment. */
    .pcoc-events-combined__card-row {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 16px !important;
    }
    .pcoc-events-combined__card-row .et_pb_column {
        width: 100% !important;
        max-width: 100% !important;
        flex-basis: 100% !important;
    }
    .pcoc-events-slider { padding: 0 !important; max-width: 100% !important; }
    .pcoc-events-combined .pcoc-fe-card {
        grid-template-columns: 1fr;
        border-radius: 22px;
    }
    /* Media was overflowing the card (min-height + cover made it wider than
       the column → image cropped/zoomed/"stretched"). Pin it to the card
       width as a 16/9 box. */
    .pcoc-events-combined .pcoc-fe-card__media {
        min-height: 0;
        aspect-ratio: 16 / 9;
        width: 100%;
    }
    .pcoc-events-combined .pcoc-fe-card__body {
        padding: 36px 28px;
        gap: 14px;
    }
    .pcoc-events-combined .pcoc-fe-card__title {
        font-size: 1.65rem;
    }
}

/* ---- Mobile: reclaim full width for ALL event-section card/grid rows ----
   Same root cause as the featured card above: Divi rows default to width:80%,
   which starves the rhythms grid + the upcoming/past event grids to ~70% of
   the section on phones ("squashed cards"). Force the grid-wrapping rows +
   their columns to full width so every card matches the homepage's near-
   full-bleed treatment. Scoped with :has() to the rows that actually wrap a
   grid, so the narrower text-intro rows keep their comfortable reading
   measure. (Upcoming/past grids don't render when empty, so those selectors
   are inert until events exist.) */
@media (max-width: 980px) {
    .pcoc-events-rhythms__cards-row,
    .pcoc-events-rhythms .et_pb_row:has(.pcoc-rhythms-grid),
    .pcoc-events-combined .et_pb_row:has(.pcoc-events-list),
    .pcoc-events-past .et_pb_row:has(.pcoc-events-list) {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    .pcoc-events-rhythms__cards-row .et_pb_column,
    .pcoc-events-rhythms .et_pb_row:has(.pcoc-rhythms-grid) .et_pb_column,
    .pcoc-events-combined .et_pb_row:has(.pcoc-events-list) .et_pb_column,
    .pcoc-events-past .et_pb_row:has(.pcoc-events-list) .et_pb_column {
        width: 100% !important;
        max-width: 100% !important;
        flex-basis: 100% !important;
    }
}

/* ---- Events slider (Section 2 of Events page) ----
   Horizontal scroll-snap track of full-treatment featured cards. Renders
   even with one slide (no nav) and gracefully scales with N. */
.pcoc-events-slider {
    position: relative;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
}

.pcoc-events-slider__viewport {
    overflow: hidden;
    border-radius: 28px;
}

.pcoc-events-slider__track {
    display: flex;
    width: 100%;
    transition: transform 0.55s cubic-bezier(0.4, 0.05, 0.2, 1);
    will-change: transform;
}

.pcoc-events-slider__slide {
    flex: 0 0 100%;
    min-width: 0;
}

/* Arrow buttons — sit overlapping the track edges, glass pills */
.pcoc-events-slider__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.55);
    background: rgba(255, 255, 255, 0.78);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    color: #14334b;
    font-size: 1.3rem;
    cursor: pointer;
    box-shadow: 0 12px 30px -10px rgba(20, 51, 75, 0.32);
    z-index: 3;
    transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.pcoc-events-slider__arrow:hover {
    background: #ffffff;
    box-shadow: 0 16px 36px -10px rgba(20, 51, 75, 0.42);
    transform: translateY(-50%) scale(1.06);
    color: #e8622a;
}

.pcoc-events-slider__prev { left: 6px; }
.pcoc-events-slider__next { right: 6px; }

/* Dot indicators */
.pcoc-events-slider__dots {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 22px;
}

.pcoc-events-slider__dot {
    width: 10px;
    height: 10px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(26, 79, 110, 0.35);
    background: rgba(40, 160, 200, 0.18);
    cursor: pointer;
    transition: background 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
}

.pcoc-events-slider__dot:hover {
    background: rgba(40, 160, 200, 0.4);
    transform: scale(1.15);
}

.pcoc-events-slider__dot.is-active {
    background: #e8622a;
    border-color: #e8622a;
    transform: scale(1.2);
}

/* Single-slide state — no nav clutter */
.pcoc-events-slider--count-1 .pcoc-events-slider__arrow,
.pcoc-events-slider--count-1 .pcoc-events-slider__dots {
    display: none;
}

@media (max-width: 720px) {
    .pcoc-events-slider__arrow { width: 42px; height: 42px; font-size: 1.1rem; }
    .pcoc-events-slider__prev { left: 2px; }
    .pcoc-events-slider__next { right: 2px; }
}

/* Card grid container. Default 3-up; collapses to fewer columns when the
   actual card count is smaller so the row is always visually balanced. */
.pcoc-events-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
    width: 100%;
}

.pcoc-events-list--count-1 {
    grid-template-columns: minmax(0, 540px);
    justify-content: center;
}
.pcoc-events-list--count-2 {
    grid-template-columns: repeat(2, minmax(0, 460px));
    justify-content: center;
}
.pcoc-events-list--count-3,
.pcoc-events-list--count-4,
.pcoc-events-list--count-5,
.pcoc-events-list--count-6 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pcoc-events-list--past { gap: 24px; }

.pcoc-events-list__empty {
    text-align: center;
    color: #5a6a7c;
    font-style: italic;
    padding: 48px 24px;
    margin: 0;
    background: rgba(255,255,255,0.45);
    border: 1px solid rgba(40, 160, 200, 0.18);
    border-radius: 18px;
}

/* ----- Individual event card ----- */
.pcoc-event-card {
    display: flex;
    flex-direction: column;
    background: rgba(255, 255, 255, 0.62);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 20px;
    overflow: hidden;
    box-shadow:
        0 18px 44px -22px rgba(20, 51, 75, 0.22),
        0 4px 14px -6px rgba(20, 51, 75, 0.08);
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
    position: relative;
}

.pcoc-event-card:hover {
    transform: translateY(-4px);
    border-color: rgba(40, 160, 200, 0.35);
    box-shadow:
        0 28px 60px -22px rgba(20, 51, 75, 0.32),
        0 8px 20px -6px rgba(20, 51, 75, 0.14);
}

.pcoc-event-card__media {
    display: block;
    aspect-ratio: 16 / 10;
    background-size: cover;
    background-position: center;
    background-color: #d8e6ec;
    position: relative;
    overflow: hidden;
}

.pcoc-event-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20, 51, 75, 0) 55%, rgba(20, 51, 75, 0.36) 100%);
    pointer-events: none;
    transition: opacity 0.4s ease;
}

.pcoc-event-card:hover .pcoc-event-card__media {
    transform: none;
}

/* Datestamp tile — month/day badge, top-left corner */
.pcoc-event-card__datestamp {
    position: absolute;
    top: 14px;
    left: 14px;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 64px;
    padding: 6px 0;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 12px;
    box-shadow: 0 6px 18px -6px rgba(20, 51, 75, 0.26);
    z-index: 2;
    line-height: 1;
}

.pcoc-event-card__datestamp-month {
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    color: #e8622a;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.pcoc-event-card__datestamp-day {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.65rem;
    font-weight: 700;
    color: #14334b;
    line-height: 1;
}

/* Card body */
.pcoc-event-card__body {
    padding: 24px 26px 26px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
}

.pcoc-event-card__date {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0;
    padding: 6px 12px 6px 10px;
    background: rgba(40, 160, 200, 0.08);
    border: 1px solid rgba(40, 160, 200, 0.16);
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 600;
    color: #1a4f6e;
    letter-spacing: 0.01em;
    align-self: flex-start;
    line-height: 1.2;
}

.pcoc-event-card__date-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #e8622a;
    box-shadow: 0 0 0 2px rgba(232, 98, 42, 0.18);
    flex-shrink: 0;
}

.pcoc-event-card__date-sep { color: rgba(26, 79, 110, 0.35); }
.pcoc-event-card__date-time { color: rgba(26, 79, 110, 0.78); }

.pcoc-event-card__title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.4rem;
    line-height: 1.18;
    color: #14334b;
    margin: 2px 0 0;
    font-weight: 600;
    letter-spacing: -0.005em;
}

.pcoc-event-card__title a {
    color: inherit;
    text-decoration: none;
    background-image: linear-gradient(transparent 92%, rgba(40, 160, 200, 0.32) 92%);
    background-size: 0% 100%;
    background-repeat: no-repeat;
    transition: background-size 0.4s ease;
}

.pcoc-event-card__title a:hover { background-size: 100% 100%; }

.pcoc-event-card__excerpt {
    font-size: 0.94rem;
    line-height: 1.55;
    color: #4a5867;
    margin: 0;
    flex: 1;
}

.pcoc-event-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    padding: 0;
    color: #1a4f6e !important;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    text-decoration: none;
    align-self: flex-start;
    transition: color 0.25s ease, transform 0.25s ease;
    background: transparent;
    border-bottom: 2px solid rgba(40, 160, 200, 0.32);
    padding-bottom: 4px;
}

.pcoc-event-card__cta:hover {
    color: #e8622a !important;
    border-bottom-color: rgba(232, 98, 42, 0.6);
}

.pcoc-event-card__cta-arrow {
    transition: transform 0.25s ease;
}

.pcoc-event-card:hover .pcoc-event-card__cta-arrow {
    transform: translateX(3px);
}

/* No-media variant — full glass card */
.pcoc-event-card--no-media .pcoc-event-card__body {
    padding-top: 28px;
}

/* =================================================================
   PCOC EVENTS PAGE — Section 4 (Inline subscribe strip)
   Compact band promoting the weekly bulletin email. Renders a styled
   placeholder until Email Subscribers & Newsletters + MailerSend ship.
================================================================= */

html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-events-subscribe,
.pcoc-events-subscribe {
    background: transparent !important;
    padding: 56px 0 60px !important;
    position: relative;
}

.pcoc-events-subscribe::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(50% 80% at 18% 50%, rgba(40, 160, 200, 0.08), transparent 70%),
        radial-gradient(50% 80% at 82% 50%, rgba(232, 98, 42, 0.07), transparent 70%);
    pointer-events: none;
    z-index: 0;
}

.pcoc-events-subscribe > .et_pb_row { position: relative; z-index: 1; }
.pcoc-events-subscribe .et_pb_row { row-gap: 0 !important; }
.pcoc-events-subscribe .et_pb_column { padding: 0 !important; }

.pcoc-events-subscribe__row-wrap {
    max-width: 1080px !important;
    padding: 0 24px !important;
}

.pcoc-events-subscribe__strip {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: 40px;
    align-items: center;
    background: rgba(255, 255, 255, 0.62);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 22px;
    padding: 32px 36px;
    box-shadow:
        0 18px 44px -22px rgba(20, 51, 75, 0.22),
        0 4px 14px -6px rgba(20, 51, 75, 0.08);
}

.pcoc-events-subscribe__copy { display: flex; flex-direction: column; gap: 8px; }
.pcoc-events-subscribe__copy .pcoc-eyebrow { margin: 0 0 4px; }

.pcoc-events-subscribe__headline {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.4rem, 2.1vw, 1.85rem);
    line-height: 1.18;
    color: #14334b;
    margin: 0;
    font-weight: 600;
    letter-spacing: -0.005em;
}

.pcoc-events-subscribe__headline em {
    font-style: italic;
    color: #e8622a;
    font-weight: 600;
}

.pcoc-events-subscribe__sub {
    font-size: 0.92rem;
    line-height: 1.5;
    color: #4a5867;
    margin: 4px 0 0;
}

.pcoc-events-subscribe__form { display: flex; flex-direction: column; gap: 8px; }

.pcoc-events-subscribe__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.pcoc-events-subscribe__row {
    display: flex;
    gap: 8px;
}

.pcoc-events-subscribe__form input[type="email"] {
    flex: 1;
    min-width: 0;
    padding: 13px 18px;
    border-radius: 999px;
    border: 1px solid rgba(40, 160, 200, 0.30);
    background: rgba(255, 255, 255, 0.78);
    font-size: 0.95rem;
    color: #14334b;
    font-family: inherit;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.pcoc-events-subscribe__form input[type="email"]::placeholder { color: rgba(74, 88, 103, 0.6); }

.pcoc-events-subscribe__form input[type="email"]:focus {
    outline: none;
    border-color: rgba(40, 160, 200, 0.7);
    box-shadow: 0 0 0 4px rgba(40, 160, 200, 0.16);
}

.pcoc-events-subscribe__form input[type="email"]:disabled { opacity: 0.65; cursor: not-allowed; }

.pcoc-events-subscribe__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 22px;
    background: #e8622a;
    color: #fff;
    border: none;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 8px 22px -8px rgba(232, 98, 42, 0.5);
    white-space: nowrap;
    font-family: inherit;
}

.pcoc-events-subscribe__btn:hover:not(:disabled) {
    background: #cf531f;
    transform: translateX(3px);
    box-shadow: 0 12px 28px -8px rgba(232, 98, 42, 0.6);
}

.pcoc-events-subscribe__btn:disabled { opacity: 0.55; cursor: not-allowed; }

.pcoc-events-subscribe__pending {
    margin: 4px 0 0;
    font-size: 0.78rem;
    color: rgba(74, 88, 103, 0.78);
    font-style: italic;
}
.pcoc-events-subscribe__pending a { color: #1a4f6e; text-decoration: underline; }
.pcoc-events-subscribe__pending a:hover { color: #e8622a; }

@media (max-width: 820px) {
    .pcoc-events-subscribe__strip {
        grid-template-columns: 1fr;
        gap: 22px;
        padding: 26px 24px 28px;
    }
    .pcoc-events-subscribe__row { flex-direction: column; }
    .pcoc-events-subscribe__btn { justify-content: center; }
}

/* =================================================================
   PCOC EVENTS PAGE — Section 5 (Past Highlights — auto-archive)
   Light Aurora panel with [events_list scope="past"] grid. Cards are
   slightly desaturated/dimmed to read as archival vs. upcoming.
================================================================= */

html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-events-past,
.pcoc-events-past {
    background: transparent !important;
    padding: 64px 0 80px !important;
    position: relative;
}

.pcoc-events-past::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(50% 60% at 12% 30%, rgba(40, 160, 200, 0.07), transparent 70%),
        radial-gradient(40% 60% at 88% 70%, rgba(232, 98, 42, 0.05), transparent 70%);
    pointer-events: none;
    z-index: 0;
}

.pcoc-events-past > .et_pb_row { position: relative; z-index: 1; }
.pcoc-events-past .et_pb_row { row-gap: 0 !important; }
.pcoc-events-past .et_pb_column { padding: 0 !important; }

.pcoc-events-past__intro {
    max-width: 720px !important;
    text-align: center;
    padding: 0 24px !important;
    margin-bottom: 36px !important;
}
.pcoc-events-past__intro .pcoc-eyebrow {
    margin: 0 auto 16px;
    justify-content: center;
}
.pcoc-events-past__headline {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.85rem, 3.2vw, 2.55rem);
    line-height: 1.1;
    color: #1a4f6e;
    margin: 0 0 12px;
    font-weight: 600;
    letter-spacing: -0.01em;
    opacity: 0.92;
}
/* PCOC-39: hide the entire "Past Gatherings" section (heading + lead + grid)
   until there are past events. The [events_list scope="past"] shortcode emits
   .pcoc-events-empty-marker when empty; :has() collapses the enclosing section
   so no orphan heading/placeholder shows. Re-appears automatically once a past
   event exists (marker no longer rendered). */
.et_pb_section:has(.pcoc-events-empty-marker) { display: none !important; }

.pcoc-events-past__lead {
    font-size: 0.98rem;
    line-height: 1.55;
    color: #4a5867;
    margin: 0 auto;
    max-width: 540px;
    font-style: italic;
    opacity: 0.78;
}

.pcoc-events-past__grid-row {
    max-width: 1180px !important;
    padding: 0 24px !important;
}

/* Past variant — softer, slightly desaturated to feel archival */
.pcoc-event-card--past {
    background: rgba(255, 255, 255, 0.48);
}
.pcoc-event-card--past .pcoc-event-card__media {
    filter: saturate(0.78) brightness(0.96);
    transition: filter 0.4s ease;
}
.pcoc-event-card--past:hover .pcoc-event-card__media {
    filter: saturate(1) brightness(1);
}
.pcoc-event-card--past .pcoc-event-card__date,
.pcoc-event-card--past .pcoc-event-card__title,
.pcoc-event-card--past .pcoc-event-card__excerpt {
    opacity: 0.88;
}

/* =================================================================
   PCOC EVENTS PAGE — Section 3 (Recurring Rhythms — dark anchor)
   Deep-teal slab with aurora glows + frosted glass detail cards.
   Pulls from [recurring_rhythms] (Settings -> Recurring Events).
================================================================= */

html body .et-l--post .et_builder_inner_content .et_pb_section.pcoc-events-rhythms,
.pcoc-events-rhythms {
    background:
        radial-gradient(70% 60% at 18% 22%, rgba(40, 160, 200, 0.30), transparent 70%),
        radial-gradient(60% 60% at 82% 78%, rgba(232, 98, 42, 0.22), transparent 70%),
        linear-gradient(135deg, #163d56 0%, #1a4f6e 50%, #14334b 100%) !important;
    color: #f4ede2 !important;
    padding: 72px 0 80px !important;
    position: relative;
    overflow: hidden;
}

.pcoc-events-rhythms::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
    mix-blend-mode: overlay;
    pointer-events: none;
    opacity: 0.55;
}

.pcoc-events-rhythms > .et_pb_row { position: relative; z-index: 1; }
.pcoc-events-rhythms .et_pb_row { row-gap: 0 !important; }
.pcoc-events-rhythms .et_pb_column { padding: 0 !important; }

.pcoc-events-rhythms__intro {
    max-width: 720px !important;
    text-align: center;
    padding: 0 24px !important;
    margin-bottom: 40px !important;
}

.pcoc-events-rhythms__intro .pcoc-eyebrow,
.pcoc-eyebrow--on-dark {
    margin: 0 auto 18px;
    justify-content: center;
    color: #ffd9c8 !important;
}
.pcoc-eyebrow--on-dark::before {
    background: rgba(255, 217, 200, 0.45) !important;
}

.pcoc-events-rhythms__headline {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(2rem, 3.6vw, 2.85rem);
    line-height: 1.1;
    color: #fff;
    margin: 0 0 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.pcoc-accent-word--on-dark {
    background: linear-gradient(135deg, #ffb89d 0%, #f4d8c4 60%, #e8efe6 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.pcoc-events-rhythms__lead {
    font-size: 1.025rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.78);
    margin: 0 auto;
    max-width: 580px;
    font-style: italic;
}

.pcoc-events-rhythms__cards-row {
    max-width: 1180px !important;
    padding: 0 24px !important;
}

/* Detail card grid — sizes to series count */
.pcoc-rhythms-grid {
    display: grid;
    gap: 28px;
    width: 100%;
}
.pcoc-rhythms-grid--count-1 { grid-template-columns: minmax(0, 580px); justify-content: center; }
.pcoc-rhythms-grid--count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pcoc-rhythms-grid--count-3,
.pcoc-rhythms-grid--count-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* 5+ rhythms — auto-fit so the grid adapts: roughly 3 per row at desktop,
   2 at mid widths, 1 on phones. minmax floor at 300px keeps cards readable. */
.pcoc-rhythms-grid--count-5,
.pcoc-rhythms-grid--count-6,
.pcoc-rhythms-grid--count-7,
.pcoc-rhythms-grid--count-8,
.pcoc-rhythms-grid--count-9,
.pcoc-rhythms-grid--count-10 {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

@media (max-width: 820px) {
    .pcoc-rhythms-grid,
    .pcoc-rhythms-grid--count-2,
    .pcoc-rhythms-grid--count-3,
    .pcoc-rhythms-grid--count-4,
    .pcoc-rhythms-grid--count-5,
    .pcoc-rhythms-grid--count-6,
    .pcoc-rhythms-grid--count-7,
    .pcoc-rhythms-grid--count-8 { grid-template-columns: 1fr; }
}

/* Individual rhythm card — frosted glass on dark */
.pcoc-rhythm-card {
    display: flex;
    flex-direction: column;
    background: rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 22px;
    overflow: hidden;
    transition: transform 0.45s ease, border-color 0.45s ease, background 0.45s ease;
    position: relative;
}
.pcoc-rhythm-card:hover {
    transform: translateY(-4px);
    border-color: rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.09);
}

.pcoc-rhythm-card__media {
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
    background-color: #1a4f6e;
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
    position: relative;
}
.pcoc-rhythm-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20, 51, 75, 0) 50%, rgba(20, 51, 75, 0.5) 100%);
    pointer-events: none;
}

.pcoc-rhythm-card__body {
    padding: 28px 30px 32px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.pcoc-rhythm-card__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.pcoc-rhythm-card__cadence {
    display: inline-flex;
    align-items: center;
    padding: 5px 11px;
    background: rgba(232, 98, 42, 0.85);
    color: #fff;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    border-radius: 999px;
    line-height: 1;
}
.pcoc-rhythm-card--sage .pcoc-rhythm-card__cadence { background: rgba(111, 174, 155, 0.92); }
.pcoc-rhythm-card--lake-blue .pcoc-rhythm-card__cadence { background: rgba(40, 160, 200, 0.92); }
.pcoc-rhythm-card--teal .pcoc-rhythm-card__cadence { background: rgba(34, 92, 121, 0.92); }

.pcoc-rhythm-card__schedule {
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.86rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.pcoc-rhythm-card__title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.5rem, 2.2vw, 1.9rem);
    line-height: 1.15;
    color: #fff;
    margin: 0;
    font-weight: 600;
    letter-spacing: -0.005em;
}

.pcoc-rhythm-card__desc {
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.78);
    margin: 0;
}

@media (max-width: 640px) {
    .pcoc-events-rhythms { padding: 80px 0 80px !important; }
    .pcoc-rhythm-card__body { padding: 22px 22px 26px; }
}

/* Priority pill — overlays card media (top-right) for featured + recurring.
   One-off events get no pill (clean, plain card). */
.pcoc-event-card__priority-pill {
    position: absolute;
    top: 14px;
    right: 14px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 12px;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    border-radius: 999px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    z-index: 2;
    line-height: 1;
}

.pcoc-event-card__priority-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* Featured = coral, opaque-glass background */
.pcoc-event-card__priority-pill--featured {
    background: rgba(232, 98, 42, 0.92);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.32);
}
.pcoc-event-card__priority-pill--featured .pcoc-event-card__priority-dot {
    background: #fff;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.4);
}

/* Recurring = sage lake-glass */
.pcoc-event-card__priority-pill--recurring {
    background: rgba(111, 174, 155, 0.92);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.32);
}
.pcoc-event-card__priority-pill--recurring .pcoc-event-card__priority-dot {
    background: #fff;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.4);
}

/* =======================================================================
   Single Event template — body layout 412019
   Surfaces: hero band, glass video-well, info cards, body, more events.
   ======================================================================= */

/* Row centering — Divi 5 et_flex_row defaults flex layout but doesn't honor
   the decoration.layout.justifyContent attr unless other layout settings
   are also set. Force-center the column inside any event-template row. */
.pcoc-event-hero .et_flex_row,
.pcoc-event-well-section .et_flex_row,
.pcoc-event-meta-section .et_flex_row,
.pcoc-event-body .et_flex_row,
.pcoc-event-more-section .et_flex_row {
    justify-content: center !important;
}

/* Column constraints — rows are 100% wide; column class sizes content.
   Specificity bumped (.et_pb_row .et_pb_column.<custom>) to beat Divi's
   universal rule: .et_pb_row .et_pb_column.et-last-child { margin-right: 0 !important } */
.et_pb_row .et_pb_column.pcoc-event-hero__col,
.et_pb_row .et_pb_column.pcoc-event-well__col,
.et_pb_row .et_pb_column.pcoc-event-meta__col,
.et_pb_row .et_pb_column.pcoc-event-body__col,
.et_pb_row .et_pb_column.pcoc-event-more__col {
    flex: 0 1 auto !important;
    width: 100% !important;
    max-width: 960px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box !important;
}
.et_pb_row .et_pb_column.pcoc-event-body__col { max-width: 720px !important; }
.et_pb_row .et_pb_column.pcoc-event-more__col { max-width: 1100px !important; }

.pcoc-event-hero {
    /* Transparent — let the page-container Aurora canvas show through
       continuously from above the transparent header into the hero, so
       there's no seam where the section meets the area above it. */
    background: transparent !important;
    text-align: center;
}
.pcoc-event-hero .et_pb_text_inner,
.pcoc-event-hero .et_pb_module {
    text-align: center;
}
.pcoc-event-more__heading .et_pb_text_inner,
.pcoc-event-back-wrap .et_pb_text_inner {
    text-align: center;
}

/* Divi TB body inherits white text from header layout context — force dark
   palette across every event-template surface so text actually reads on the
   light Aurora gradient. */
.pcoc-event-hero,
.pcoc-event-hero *,
.pcoc-event-meta-section,
.pcoc-event-meta-section *,
.pcoc-event-body,
.pcoc-event-body *,
.pcoc-event-more-section .pcoc-event-more__heading *,
.pcoc-event-more-section .pcoc-event-back-wrap * {
    color: rgba(30,30,46,0.88);
}
.pcoc-event-hero__eyebrow .et_pb_text_inner { color: var(--pcoc-deep-teal) !important; opacity: 0.7; }
.pcoc-event-hero__h1                         { color: var(--pcoc-deep-teal) !important; }
.pcoc-event-hero__when .et_pb_text_inner,
.pcoc-event-when                             { color: rgba(30,30,46,0.72) !important; }
.pcoc-event-meta-card__label                 { color: var(--pcoc-deep-teal) !important; opacity: 0.65; }
.pcoc-event-meta-card__value                 { color: var(--pcoc-deep-teal) !important; }
.pcoc-event-meta-card__sub                   { color: rgba(30,30,46,0.7) !important; }
.pcoc-event-meta-card__sub-link              { color: var(--pcoc-lake-blue) !important; }
.pcoc-event-calendar-btn                     { color: #fff !important; }
.pcoc-event-content                          { color: rgba(30,30,46,0.88) !important; }
.pcoc-event-content p                        { color: rgba(30,30,46,0.88) !important; }
.pcoc-event-more__heading .et_pb_text_inner  { color: var(--pcoc-deep-teal) !important; }
.pcoc-event-back                             { color: var(--pcoc-deep-teal) !important; }
.pcoc-event-back:hover                       { color: #fff !important; }
.pcoc-event-hero .et_pb_module { margin-bottom: 14px !important; }
.pcoc-event-hero__eyebrow .et_pb_text_inner {
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pcoc-deep-teal);
    opacity: 0.7;
}
.pcoc-event-hero__h1 {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: clamp(36px, 5.4vw, 64px);
    line-height: 1.05;
    color: var(--pcoc-deep-teal);
    margin: 8px 0 0;
}
.pcoc-event-hero__when .et_pb_text_inner,
.pcoc-event-when {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-size: clamp(14px, 1.1vw, 16px);
    letter-spacing: 0.04em;
    color: rgba(30,30,46,0.72);
    margin-top: 4px;
}

/* Glass video-well around featured image */
.pcoc-event-well-section { background: transparent; }
.pcoc-event-image-frame {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    padding: 8px;
    background: rgba(255,255,255,0.55);
    border: 1px solid rgba(255,255,255,0.7);
    box-shadow: 0 30px 60px -28px rgba(26,79,110,0.35), 0 8px 28px -12px rgba(26,79,110,0.18);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.pcoc-event-image-frame img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
}

/* Info card row — when / where / calendar */
.pcoc-event-meta-section { background: transparent; }
.pcoc-event-meta { width: 100% !important; }
.pcoc-event-meta .et_pb_text_inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: stretch;
    width: 100%;
}
/* wpautop adds a stray empty <p> at the start of the inner content; hide it
   so it doesn't take a grid cell and shove the cards into the 2nd column. */
.pcoc-event-meta .et_pb_text_inner > p:empty,
.pcoc-event-meta .et_pb_text_inner > p:not(:has(*)) { display: none; }
.pcoc-event-meta-card {
    display: flex;
    flex-direction: column;
    gap: 4px;
    background: rgba(255,255,255,0.65);
    border: 1px solid rgba(255,255,255,0.7);
    border-radius: 14px;
    padding: 18px 22px;
    box-shadow: 0 6px 24px -10px rgba(26,79,110,0.18);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    text-align: left;
}
.pcoc-event-meta-card__icon {
    font-size: 22px;
    line-height: 1;
}
.pcoc-event-meta-card__label {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pcoc-deep-teal);
    opacity: 0.65;
    margin-top: 4px;
}
.pcoc-event-meta-card__value {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 18px;
    color: var(--pcoc-deep-teal);
    line-height: 1.3;
}
.pcoc-event-meta-card__sub {
    font-size: 14px;
    color: rgba(30,30,46,0.7);
}
.pcoc-event-meta-card__sub-link {
    font-size: 13px;
    color: var(--pcoc-lake-blue);
    text-decoration: none;
    margin-top: 2px;
}
.pcoc-event-meta-card__sub-link:hover { text-decoration: underline; }

.pcoc-event-calendar-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    grid-column: 1 / -1;
    justify-self: center;
    padding: 12px 26px;
    border-radius: 999px;
    background: var(--pcoc-lake-glass);
    color: #fff !important;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 0.02em;
    text-decoration: none;
    box-shadow: 0 12px 24px -10px rgba(111,174,155,0.55);
    transition: transform .2s ease, box-shadow .2s ease;
    margin-top: 6px;
}
.pcoc-event-calendar-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 30px -12px rgba(111,174,155,0.7);
}

@media (max-width: 720px) {
    .pcoc-event-meta { grid-template-columns: 1fr; }
}

/* Body description column */
.pcoc-event-body { background: transparent; }
.pcoc-event-content {
    font-family: 'Inter', sans-serif;
    font-size: clamp(16px, 1.15vw, 18px);
    line-height: 1.75;
    color: rgba(30,30,46,0.85);
}
.pcoc-event-content p { margin: 0 0 1.2em; }

/* More events + back */
.pcoc-event-more-section {
    background: linear-gradient(180deg, rgba(216,231,238,0) 0%, rgba(216,231,238,0.55) 60%, rgba(216,231,238,0.85) 100%);
}
.pcoc-event-more__heading .et_pb_text_inner {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: clamp(22px, 2vw, 28px);
    color: var(--pcoc-deep-teal);
    text-align: center;
    margin-bottom: 24px;
}
.pcoc-event-more {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
@media (max-width: 900px) { .pcoc-event-more { grid-template-columns: 1fr; } }

.pcoc-event-back-wrap { text-align: center; margin-top: 40px; }
.pcoc-event-back {
    display: inline-block;
    padding: 10px 22px;
    border-radius: 999px;
    border: 1px solid var(--pcoc-deep-teal);
    color: var(--pcoc-deep-teal);
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    transition: background .2s ease, color .2s ease;
}
.pcoc-event-back:hover {
    background: var(--pcoc-deep-teal);
    color: #fff;
}

/* Kill comments inside Theme Builder body layout for events */
.pcoc-event-body + .et_pb_section .comments-area,
.et_pb_section .et_pb_post_comments,
body.single-event .comments-area { display: none !important; }

/* =======================================================================
   Single Post & Bulletin template (post + bulletin permalinks)
   ======================================================================= */

/* Column constraints — same pattern as event template */
.et_pb_row .et_pb_column.pcoc-post-hero__col,
.et_pb_row .et_pb_column.pcoc-post-body__col,
.et_pb_row .et_pb_column.pcoc-post-back__col {
    flex: 0 1 auto !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box !important;
}
.et_pb_row .et_pb_column.pcoc-post-hero__col { max-width: 880px !important; }
.et_pb_row .et_pb_column.pcoc-post-body__col { max-width: 760px !important; }
.et_pb_row .et_pb_column.pcoc-post-back__col { max-width: 1100px !important; }
/* Bulletins use the editorial 2-column flyer — needs more horizontal room. */
body.single-bulletin .et_pb_row .et_pb_column.pcoc-post-body__col {
    max-width: 1100px !important;
}

.pcoc-post-hero {
    /* Transparent — let the page-container Aurora canvas show through. */
    background: transparent !important;
    text-align: center;
}
.pcoc-post-hero .et_pb_text_inner,
.pcoc-post-hero .et_pb_module { text-align: center; }

.pcoc-post-eyebrow {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pcoc-deep-teal);
    opacity: 0.7;
}
.pcoc-post-h1 {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: clamp(32px, 4.6vw, 54px);
    line-height: 1.08;
    color: var(--pcoc-deep-teal) !important;
    margin: 12px 0 4px;
}
.pcoc-post-when {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-size: clamp(14px, 1.05vw, 16px);
    letter-spacing: 0.04em;
    color: rgba(30,30,46,0.72);
    margin-top: 4px;
}

/* Body — keep transparent so the page-level Aurora gradient continues. */
.pcoc-post-body { background: transparent; }
.pcoc-post-content {
    font-family: 'Inter', sans-serif;
    font-size: clamp(16px, 1.15vw, 18px);
    line-height: 1.75;
    color: rgba(30,30,46,0.88);
}
.pcoc-post-content p { margin: 0 0 1.2em; color: rgba(30,30,46,0.88) !important; }
.pcoc-post-content h2,
.pcoc-post-content h3 {
    font-family: 'Inter', sans-serif;
    color: var(--pcoc-deep-teal);
    margin-top: 1.6em;
    margin-bottom: 0.4em;
}
.pcoc-post-content blockquote {
    border-left: 4px solid var(--pcoc-lake-blue);
    margin: 1.4em 0;
    padding: 0.4em 1.1em;
    color: var(--pcoc-deep-teal);
    font-style: italic;
}
.pcoc-post-content ul,
.pcoc-post-content ol {
    margin: 0 0 1.2em 1.4em;
    padding: 0;
}
.pcoc-post-content li { margin-bottom: 0.4em; }

/* Bulletin permalink — re-uses .pcoc-weekly-message styling already defined.
   The outer Aurora hero already shows eyebrow/title/date, so suppress the
   inner [weekly_message] header to avoid the duplicate title block. */
.pcoc-bulletin-permalink .pcoc-weekly-message__header { display: none !important; }

/* Back link */
.pcoc-post-back-section {
    background: linear-gradient(180deg, rgba(216,231,238,0) 0%, rgba(216,231,238,0.55) 60%, rgba(216,231,238,0.85) 100%);
}
.pcoc-post-back-wrap .et_pb_text_inner { text-align: center; }
.pcoc-post-back {
    display: inline-block;
    padding: 10px 22px;
    border-radius: 999px;
    border: 1px solid var(--pcoc-deep-teal);
    color: var(--pcoc-deep-teal) !important;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    transition: background .2s ease, color .2s ease;
}
.pcoc-post-back:hover {
    background: var(--pcoc-deep-teal);
    color: #fff !important;
}

/* =======================================================================
   Prayer Request form ([prayer_request_form]) — Contact page
   ======================================================================= */
.pcoc-prayer-form-wrap {
    max-width: 640px;
    margin: 0 auto;
    font-family: 'Inter', sans-serif;
    color: rgba(30,30,46,0.88);
}
.pcoc-prayer-form__intro {
    font-size: 15px;
    color: rgba(30,30,46,0.72);
    margin: 0 0 22px;
}
.pcoc-prayer-form {
    background: rgba(255,255,255,0.65);
    border: 1px solid rgba(255,255,255,0.7);
    border-radius: 16px;
    padding: 28px 30px;
    box-shadow: 0 8px 30px -14px rgba(26,79,110,0.18);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.pcoc-prayer-form__row { margin-bottom: 16px; }
.pcoc-prayer-form__row label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--pcoc-deep-teal);
    margin-bottom: 6px;
}
.pcoc-prayer-form__opt {
    text-transform: none;
    letter-spacing: 0;
    color: rgba(30,30,46,0.5);
    font-weight: 400;
    font-size: 12px;
    margin-left: 4px;
}
.pcoc-prayer-form__req { color: var(--pcoc-coral); }
.pcoc-prayer-form input[type="text"],
.pcoc-prayer-form input[type="email"],
.pcoc-prayer-form textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 11px 14px;
    font-size: 15px;
    font-family: inherit;
    color: rgba(30,30,46,0.9);
    border: 1px solid rgba(26,79,110,0.18);
    border-radius: 10px;
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.pcoc-prayer-form input[type="text"]:focus,
.pcoc-prayer-form input[type="email"]:focus,
.pcoc-prayer-form textarea:focus {
    outline: none;
    border-color: var(--pcoc-lake-blue);
    box-shadow: 0 0 0 3px rgba(40,160,200,0.15);
}
.pcoc-prayer-form textarea { resize: vertical; min-height: 130px; }
.pcoc-prayer-form__honeypot {
    position: absolute;
    left: -9999px;
    top: -9999px;
    height: 0;
    width: 0;
    overflow: hidden;
}
.pcoc-prayer-form__privacy {
    margin: 22px 0 0;
    font-size: 13px;
    line-height: 1.5;
    color: rgba(30,30,46,0.55);
    text-align: center;
}
.pcoc-prayer-form__actions { margin-top: 14px; text-align: center; }
.pcoc-prayer-form__submit {
    display: inline-block;
    padding: 12px 28px;
    border-radius: 999px;
    border: 0;
    background: var(--pcoc-coral);
    color: #fff !important;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 0.02em;
    cursor: pointer;
    box-shadow: 0 12px 24px -10px rgba(232,98,42,0.55);
    transition: transform .2s ease, box-shadow .2s ease;
}
.pcoc-prayer-form__submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 30px -12px rgba(232,98,42,0.7);
}
.pcoc-prayer-form__thanks,
.pcoc-prayer-form__error {
    background: rgba(255,255,255,0.65);
    border: 1px solid rgba(255,255,255,0.7);
    border-left-width: 4px;
    border-left-color: var(--pcoc-lake-glass);
    border-radius: 12px;
    padding: 22px 26px;
    box-shadow: 0 8px 30px -14px rgba(26,79,110,0.18);
}
.pcoc-prayer-form__error { border-left-color: var(--pcoc-coral); color: rgba(30,30,46,0.85); }
.pcoc-prayer-form__thanks h3 {
    margin: 0 0 6px;
    color: var(--pcoc-deep-teal);
    font-family: 'Inter', sans-serif;
    font-size: 22px;
}
.pcoc-prayer-form__thanks p { margin: 0; color: rgba(30,30,46,0.78); font-size: 15px; line-height: 1.55; }

/* =======================================================================
   Newsletter subscribe form ([newsletter_subscribe_form])
   ======================================================================= */
.pcoc-subscribe-form-wrap {
    max-width: 560px;
    margin: 0 auto;
    font-family: 'Inter', sans-serif;
    color: rgba(30,30,46,0.88);
}
.pcoc-subscribe-form__intro {
    font-size: 15px;
    color: rgba(30,30,46,0.72);
    margin: 0 0 14px;
    text-align: center;
}
.pcoc-subscribe-form {
    background: rgba(255,255,255,0.65);
    border: 1px solid rgba(255,255,255,0.7);
    border-radius: 14px;
    padding: 22px 24px;
    box-shadow: 0 8px 30px -14px rgba(26,79,110,0.18);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.pcoc-subscribe-form__row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.pcoc-subscribe-form input[type="email"] {
    flex: 1 1 220px;
    padding: 11px 14px;
    font-size: 15px;
    font-family: inherit;
    color: rgba(30,30,46,0.9);
    border: 1px solid rgba(26,79,110,0.18);
    border-radius: 10px;
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.pcoc-subscribe-form input[type="email"]:focus {
    outline: none;
    border-color: var(--pcoc-lake-blue);
    box-shadow: 0 0 0 3px rgba(40,160,200,0.15);
}
.pcoc-subscribe-form__submit {
    flex: 0 0 auto;
    padding: 11px 22px;
    border-radius: 10px;
    border: 0;
    background: var(--pcoc-coral);
    color: #fff !important;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease;
}
.pcoc-subscribe-form__submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px -10px rgba(232,98,42,0.55);
}
/* Inline AJAX message — replaces the page-reload __thanks/__error blocks. One
   container, styled by data-state attribute for color accent. Forces high-contrast
   text so the message reads on both the light card backdrop AND any inherited
   color from a dark footer/section context. */
.pcoc-subscribe-form__msg {
    background: #ffffff;
    border: 1px solid rgba(0,0,0,0.06);
    border-left: 4px solid var(--pcoc-lake-glass);
    border-radius: 12px;
    padding: 18px 22px;
    margin-top: 14px;
    box-shadow: 0 8px 30px -14px rgba(26,79,110,0.18);
    color: rgba(30,30,46,0.85);
}
.pcoc-subscribe-form__msg[data-state="confirmed"] { border-left-color: var(--pcoc-lake-glass); }
.pcoc-subscribe-form__msg[data-state="pending"]   { border-left-color: var(--pcoc-deep-teal); }
.pcoc-subscribe-form__msg[data-state="unsubscribed"] { border-left-color: rgba(30,30,46,0.4); }
.pcoc-subscribe-form__msg[data-state="err"]       { border-left-color: var(--pcoc-coral); }
.pcoc-subscribe-form__msg-title {
    margin: 0 0 6px;
    color: var(--pcoc-deep-teal);
    font-family: 'Inter', sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
}
.pcoc-subscribe-form__msg-body {
    margin: 0;
    color: rgba(30,30,46,0.82);
    font-size: 14px;
    line-height: 1.55;
}

/* ---- Newsletter status page — dedicated landing after confirm/unsubscribe ---- */
.pcoc-newsletter-status { position: relative; z-index: 2; }
.pcoc-newsletter-status__band {
    min-height: calc(100vh - 240px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 80px 20px;
    box-sizing: border-box;
}
.pcoc-newsletter-status__card {
    background: rgba(255,255,255,0.85);
    border: 1px solid rgba(255,255,255,0.7);
    border-radius: 18px;
    padding: 48px 40px;
    max-width: 540px;
    width: 100%;
    text-align: center;
    box-shadow: 0 24px 60px -28px rgba(26,79,110,0.35);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}
.pcoc-newsletter-status__icon {
    margin: 0 auto 18px;
    color: var(--pcoc-lake-glass);
    width: 56px;
    height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.pcoc-newsletter-status__card[data-state="confirmed"]    .pcoc-newsletter-status__icon { color: var(--pcoc-lake-glass); }
.pcoc-newsletter-status__card[data-state="pending"]      .pcoc-newsletter-status__icon { color: var(--pcoc-deep-teal); }
.pcoc-newsletter-status__card[data-state="unsubscribed"] .pcoc-newsletter-status__icon { color: rgba(30,30,46,0.5); }
.pcoc-newsletter-status__card[data-state="err"]          .pcoc-newsletter-status__icon { color: var(--pcoc-coral); }
.pcoc-newsletter-status__title {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: clamp(28px, 3.2vw, 38px);
    color: var(--pcoc-deep-teal);
    margin: 0 0 12px;
    line-height: 1.15;
}
.pcoc-newsletter-status__body {
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    line-height: 1.65;
    color: rgba(30,30,46,0.78);
    margin: 0 0 28px;
}
.pcoc-newsletter-status__actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}
.pcoc-newsletter-status__cta {
    display: inline-block;
    padding: 12px 24px;
    border-radius: 999px;
    background: var(--pcoc-lake-glass);
    color: #fff !important;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.02em;
    text-decoration: none !important;
    box-shadow: 0 10px 22px -10px rgba(111,174,155,0.55);
    transition: transform .2s ease, box-shadow .2s ease;
}
.pcoc-newsletter-status__cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px -12px rgba(111,174,155,0.7);
}
.pcoc-newsletter-status__cta--ghost {
    background: transparent;
    color: var(--pcoc-deep-teal) !important;
    border: 1px solid rgba(26,79,110,0.35);
    box-shadow: none;
}
.pcoc-newsletter-status__cta--ghost:hover {
    background: rgba(26,79,110,0.06);
    box-shadow: none;
}
@media (max-width: 600px) {
    .pcoc-newsletter-status__card { padding: 36px 24px; }
    .pcoc-newsletter-status__band { padding: 60px 16px; min-height: calc(100vh - 200px); }
}

/* ---- Footer-context overrides (form sits on dark footer bg) ---- */
/* The inserted row gets Divi's auto-numbered .et_pb_row_0_tb_footer +
   .et_pb_column_0_tb_footer classes (since it's now the first row), which
   inherit the existing first column's width:35% rule. Beat that rule by
   anchoring to #et-boc — its (1,4,0) specificity needs to be matched + topped. */
.et_pb_row.pcoc-footer-subscribe-row {
    text-align: center;
}
/* Force single-column grid: existing child-theme rule for .et_pb_row_0_tb_footer
   sets a 3-column grid (the original first row had 3 columns); my new subscribe
   row has only 1, so override the grid template here. */
#et-boc .et-l .et_pb_section .et_pb_row.pcoc-footer-subscribe-row {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
}
#et-boc .et-l .et_pb_section .et_pb_row.pcoc-footer-subscribe-row > .et_pb_column {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-bottom: 24px !important;
    position: static !important;
    padding: 0 !important;
}
/* Kill the "FOLLOW" eyebrow + accent line leaking from the original first-column
   pseudos (those decorate the social blurbs column, not this row). */
#et-boc .et-l .et_pb_section .et_pb_row.pcoc-footer-subscribe-row > .et_pb_column::before,
#et-boc .et-l .et_pb_section .et_pb_row.pcoc-footer-subscribe-row > .et_pb_column::after {
    content: none !important;
    display: none !important;
}
#et-boc .et-l .pcoc-footer-subscribe-row__heading,
.pcoc-footer-subscribe-row__heading {
    font-family: 'Inter', sans-serif !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    letter-spacing: -0.005em !important;
    color: #fff !important;
    margin: 0 0 14px !important;
    line-height: 1.25 !important;
    text-transform: none !important;
    text-align: center !important;
}
.pcoc-footer-subscribe-row .pcoc-subscribe-form-wrap {
    max-width: 520px;
    margin: 0 auto;
}
.pcoc-footer-subscribe-row .pcoc-subscribe-form {
    background: rgba(255,255,255,0.96);
    border-color: rgba(255,255,255,0.85);
    box-shadow: 0 12px 36px -16px rgba(0,0,0,0.55);
}
.pcoc-footer-subscribe-row .pcoc-subscribe-form__intro {
    color: rgba(30,30,46,0.78) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
.pcoc-footer-subscribe-row .pcoc-subscribe-form input[type="email"] {
    color: rgba(30,30,46,0.9) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
.pcoc-footer-subscribe-row .pcoc-subscribe-form__submit {
    text-transform: none !important;
    letter-spacing: 0.02em !important;
    color: #fff !important;
}
.pcoc-footer-subscribe-row .pcoc-subscribe-form__msg {
    background: #ffffff;
    border-color: rgba(255,255,255,0.85);
    box-shadow: 0 12px 36px -16px rgba(0,0,0,0.55);
}
/* Footer cascades color:#fff to descendants — re-anchor the message text to
   readable dark colors so it stays legible on the white card. */
.pcoc-footer-subscribe-row .pcoc-subscribe-form__msg-title { color: var(--pcoc-deep-teal) !important; }
.pcoc-footer-subscribe-row .pcoc-subscribe-form__msg-body  { color: rgba(30,30,46,0.82) !important; }
@media (max-width: 600px) {
    .pcoc-footer-subscribe-row__heading {
        font-size: 19px !important;
    }
    .pcoc-footer-subscribe-row .pcoc-subscribe-form {
        padding: 18px 18px;
    }
}

/* ---- Footer subscribe — events-variant card (PCOC-4) ----
   The footer now embeds [newsletter_subscribe_form variant=events], which
   renders the pill form (.pcoc-events-subscribe__*) with no card of its own
   (on the Events page the card lives in the strip markup). Give it a white
   glass card here so it stays prominent on the dark footer band. */
.pcoc-footer-subscribe-row .pcoc-subscribe-form-wrap--events {
    background: rgba(255,255,255,0.96);
    border: 1px solid rgba(255,255,255,0.85);
    border-radius: 16px;
    padding: 22px 22px;
    box-shadow: 0 12px 36px -16px rgba(0,0,0,0.55);
    max-width: 520px;
    margin: 0 auto;
}
.pcoc-footer-subscribe-row .pcoc-events-subscribe__form input[type="email"] {
    background: #fff;
    border-color: rgba(40,160,200,0.30);
}
@media (max-width: 600px) {
    .pcoc-footer-subscribe-row .pcoc-subscribe-form-wrap--events {
        padding: 18px 16px;
    }
}

/* =======================================================================
   About-page deep-dive cards — link out to /statement-of-faith/ + /our-mission/
   ======================================================================= */
/* Kill default white section bg so the Aurora canvas shows + the section
   doesn't create a visible seam against the section above it. */
body.page .et_pb_section.pcoc-about-deepdive {
    background: transparent !important;
    background-color: transparent !important;
}
.pcoc-about-deepdive { position: relative; z-index: 2; }
.pcoc-about-deepdive__row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: clamp(20px, 3vw, 32px) !important;
}
.pcoc-about-deepdive__row > .et_pb_column {
    width: 100% !important;
    margin: 0 !important;
}
.pcoc-deepdive-card {
    position: relative;
    border-radius: 18px;
    padding: 32px 32px 32px;
    box-shadow:
        0 18px 50px -22px rgba(26,79,110,0.45),
        0 4px 14px -8px rgba(26,79,110,0.18);
    transition: transform .28s ease, box-shadow .28s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    color: #fff;
}
/* SoF card — deep teal → lake-glass gradient (calm, theological) */
.pcoc-deepdive-card--faith {
    background: linear-gradient(135deg,
        var(--pcoc-deep-teal) 0%,
        #2a6f96 55%,
        var(--pcoc-lake-glass) 100%);
    border: 1px solid rgba(111, 174, 155, 0.35);
}
/* Mission card — coral → warm teracotta (active, outward-facing) */
.pcoc-deepdive-card--mission {
    background: linear-gradient(135deg,
        #2a6f96 0%,
        #b25c41 55%,
        var(--pcoc-coral) 100%);
    border: 1px solid rgba(232, 114, 99, 0.35);
}
/* Subtle highlight overlay to add depth on the gradient */
.pcoc-deepdive-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at top right, rgba(255,255,255,0.18) 0%, transparent 55%),
        radial-gradient(ellipse at bottom left, rgba(0,0,0,0.10) 0%, transparent 50%);
    pointer-events: none;
    z-index: 0;
}
.pcoc-deepdive-card > * { position: relative; z-index: 1; }
.pcoc-deepdive-card:hover {
    transform: translateY(-3px);
    box-shadow:
        0 22px 56px -22px rgba(26,79,110,0.55),
        0 6px 16px -8px rgba(26,79,110,0.22);
}
.pcoc-deepdive-card__eyebrow {
    display: block;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,0.78) !important;
    margin: 0 0 10px !important;
}
.pcoc-deepdive-card__title {
    font-family: 'Inter', sans-serif !important;
    font-size: clamp(1.45rem, 2.1vw, 1.7rem) !important;
    font-weight: 800 !important;
    color: #fff !important;
    letter-spacing: -0.005em !important;
    margin: 0 0 14px !important;
    line-height: 1.2 !important;
}
.pcoc-deepdive-card__lead {
    font-size: clamp(15px, 1.05vw, 16px) !important;
    line-height: 1.65 !important;
    color: rgba(255,255,255,0.92) !important;
    margin: 0 0 24px !important;
    flex: 1;
}
.pcoc-deepdive-card__link {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 22px;
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--pcoc-deep-teal) !important;
    background: rgba(255,255,255,0.96);
    text-decoration: none !important;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.pcoc-deepdive-card--mission .pcoc-deepdive-card__link {
    color: #b25c41 !important;
    background: rgba(255,255,255,0.96);
}
.pcoc-deepdive-card__link:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 22px -10px rgba(0,0,0,0.45);
    background: #fff;
}
.pcoc-deepdive-card__link span { transition: transform .25s ease; }
.pcoc-deepdive-card__link:hover span { transform: translateX(3px); }

@media (max-width: 760px) {
    .pcoc-about-deepdive__row { grid-template-columns: 1fr !important; }
    .pcoc-deepdive-card { padding: 24px 22px 26px; }
}

/* =======================================================================
   Static long-form pages (/about/statement-of-faith/, /about/our-mission/)
   ======================================================================= */
/* Kill the default white section background so the page-container Aurora
   canvas shows through. Divi 5 sections default to opaque white unless the
   block JSON sets background.color = transparent — easier to override here
   than to encode it on every section. */
body.page .et_pb_section.pcoc-static-page__hero,
body.page .et_pb_section.pcoc-static-page__body {
    background: transparent !important;
    background-color: transparent !important;
}
.pcoc-static-page__hero {
    text-align: center;
}
.pcoc-static-page__hero .pcoc-eyebrow {
    margin-bottom: 14px;
}
.pcoc-static-page__hero h1.pcoc-about-beliefs__headline {
    font-size: clamp(2.2rem, 4.5vw, 3.4rem) !important;
    margin: 0 0 18px !important;
}
.pcoc-static-page__hero .pcoc-about-beliefs__lead {
    max-width: 640px;
    margin: 0 auto !important;
    font-size: clamp(16px, 1.2vw, 18px) !important;
}
.pcoc-static-page__body {
    position: relative;
    z-index: 2;
}
.pcoc-static-page__section-h {
    font-family: 'Inter', sans-serif !important;
    font-size: clamp(1.6rem, 2.6vw, 2rem) !important;
    font-weight: 800 !important;
    color: var(--pcoc-charcoal) !important;
    letter-spacing: -0.01em !important;
    line-height: 1.18 !important;
    margin: 0 0 16px !important;
    padding-bottom: 12px;
    border-bottom: 2px solid rgba(26,79,110,0.12);
}
.pcoc-static-page__intro {
    font-size: clamp(16px, 1.2vw, 18px) !important;
    line-height: 1.7 !important;
    color: rgba(30,30,46,0.85) !important;
    margin: 0 0 22px !important;
    font-style: italic;
}
.pcoc-static-page__body p {
    font-size: clamp(15.5px, 1.1vw, 17px) !important;
    line-height: 1.75 !important;
    color: rgba(30,30,46,0.86) !important;
    margin: 0 0 18px !important;
}
.pcoc-static-page__body cite {
    color: var(--pcoc-lake-glass);
    font-size: 0.92em;
    font-style: italic;
    font-weight: 500;
}
.pcoc-static-page__beliefs,
ol.pcoc-static-page__beliefs {
    list-style: none !important;
    list-style-type: none !important;
    counter-reset: beliefs;
    margin: 0 !important;
    padding: 0 !important;
}
.pcoc-static-page__beliefs > li {
    counter-increment: beliefs;
    position: relative;
    padding: 22px 0 22px 56px;
    border-bottom: 1px solid rgba(26,79,110,0.08);
    font-size: clamp(15.5px, 1.1vw, 17px);
    line-height: 1.7;
    color: rgba(30,30,46,0.86);
    list-style: none !important;
    list-style-type: none !important;
}
.pcoc-static-page__beliefs > li::marker { content: none !important; }
.pcoc-static-page__beliefs > li:last-child { border-bottom: none; }
.pcoc-static-page__beliefs > li::before {
    content: counter(beliefs, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: 22px;
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 0.85rem;
    letter-spacing: 0.04em;
    color: var(--pcoc-lake-glass);
    background: rgba(111,174,155,0.12);
    border: 1px solid rgba(111,174,155,0.28);
    border-radius: 999px;
    padding: 4px 10px;
    line-height: 1.2;
}
.pcoc-static-page__list,
ul.pcoc-static-page__list,
ol.pcoc-static-page__list {
    list-style: none !important;
    list-style-type: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.pcoc-static-page__list > li {
    position: relative;
    padding: 12px 0 12px 28px;
    font-size: clamp(15.5px, 1.1vw, 17px);
    line-height: 1.65;
    color: rgba(30,30,46,0.86);
    border-bottom: 1px solid rgba(26,79,110,0.08);
    list-style: none !important;
    list-style-type: none !important;
}
.pcoc-static-page__list > li::marker { content: none !important; }
.pcoc-static-page__list > li:last-child { border-bottom: none; }
.pcoc-static-page__list > li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 22px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--pcoc-lake-glass);
    opacity: 0.85;
}

@media (max-width: 600px) {
    .pcoc-static-page__beliefs > li {
        padding: 18px 0 18px 0;
    }
    .pcoc-static-page__beliefs > li::before {
        position: static;
        display: inline-block;
        margin: 0 0 8px;
    }
}

/* =======================================================================
   Statement of Faith — glass belief-card grid + Bible traits (PCOC-13)
   Restyles the existing <ol class="pcoc-static-page__beliefs"> into a
   2-column masonry of frosted-glass cards, and the Bible section's
   inspired/authoritative/trustworthy paragraphs into a 3-card row.
   Pure CSS over the existing content (no wording change); the Bible
   3-card row also needs the 3 trait <p> wrapped in .pcoc-bible-traits.
   ======================================================================= */
/* Widen the card-grid rows to a consistent width (beliefs + Bible traits). */
.pcoc-static-page__body .et_pb_row:has(.pcoc-static-page__beliefs),
.pcoc-static-page__body .et_pb_row:has(.pcoc-bible-traits) {
    max-width: 1080px !important;
}
/* Keep long-form prose at a readable measure inside the widened rows
   (left-aligned to the section edge; the card grids still span full width). */
.pcoc-static-page__body .et_pb_text_inner > p {
    max-width: 820px;
}
.pcoc-static-page__beliefs,
ol.pcoc-static-page__beliefs {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    align-items: stretch; /* both cards in a row match height → even column bottoms */
}
/* Each belief becomes a frosted-glass card (override the single-column list). */
.pcoc-static-page__beliefs > li {
    border-bottom: none !important;
    margin: 0;
    padding: 58px 26px 26px !important;
    background: rgba(255, 255, 255, 0.55);
    -webkit-backdrop-filter: blur(14px) saturate(150%);
    backdrop-filter: blur(14px) saturate(150%);
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: 18px;
    box-shadow: 0 14px 34px -18px rgba(26, 79, 110, 0.34);
    font-size: clamp(15px, 1.05vw, 16.5px);
    line-height: 1.68;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.pcoc-static-page__beliefs > li:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 42px -18px rgba(26, 79, 110, 0.42);
}
/* Number badge to the card's top-left. */
.pcoc-static-page__beliefs > li::before {
    top: 22px !important;
    left: 26px !important;
    font-size: 0.9rem;
    padding: 5px 12px;
    background: rgba(111, 174, 155, 0.16);
    border-color: rgba(111, 174, 155, 0.34);
}
@media (max-width: 820px) {
    .pcoc-static-page__beliefs,
    ol.pcoc-static-page__beliefs { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .pcoc-static-page__beliefs > li { padding: 56px 22px 24px !important; }
    .pcoc-static-page__beliefs > li::before {
        position: absolute !important;
        top: 20px !important;
        left: 22px !important;
        display: inline-block;
        margin: 0;
    }
}

/* Bible section: inspired / authoritative / trustworthy as a 3-card row. */
.pcoc-bible-traits {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin: 26px 0 0;
}
.pcoc-bible-traits > p {
    margin: 0 !important;
    padding: 24px 22px !important;
    background: rgba(255, 255, 255, 0.55);
    -webkit-backdrop-filter: blur(14px) saturate(150%);
    backdrop-filter: blur(14px) saturate(150%);
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: 18px;
    box-shadow: 0 14px 34px -18px rgba(26, 79, 110, 0.34);
    border-top: 3px solid var(--pcoc-coral);
}
.pcoc-bible-traits > p strong {
    color: var(--pcoc-coral);
    font-weight: 800;
}
@media (max-width: 820px) {
    .pcoc-bible-traits { grid-template-columns: 1fr; }
}

/* =======================================================================
   Our Mission — three-pillar glass cards (PCOC-14)
   Mission / Vision / Approach as a native Divi 3-column row, each column
   styled as an equal-height frosted-glass card with checkmark lists.
   ======================================================================= */
.pcoc-mission-pillars .et_pb_row {
    display: flex !important;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 26px;
}
.pcoc-mission-pillars .et_pb_column {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
    padding: 34px 28px 30px !important;
    background: rgba(255, 255, 255, 0.55);
    -webkit-backdrop-filter: blur(14px) saturate(150%);
    backdrop-filter: blur(14px) saturate(150%);
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-top: 4px solid var(--pcoc-coral);
    border-radius: 20px;
    box-shadow: 0 16px 36px -18px rgba(26, 79, 110, 0.36);
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.pcoc-mission-pillars .et_pb_column:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 46px -18px rgba(26, 79, 110, 0.44);
}
/* Pillar heading — drop the section divider, center it. */
.pcoc-mission-pillars .pcoc-static-page__section-h {
    border-bottom: none !important;
    padding-bottom: 0 !important;
    margin: 0 0 8px !important;
    font-size: clamp(1.3rem, 1.7vw, 1.55rem) !important;
    text-align: center;
}
.pcoc-mission-pillars .pcoc-static-page__intro {
    text-align: center;
    max-width: none !important;
    font-size: 14.5px !important;
    line-height: 1.55 !important;
    margin: 0 auto 20px !important;
    color: rgba(30, 30, 46, 0.7) !important;
}
/* Checkmark list items inside pillars (override the dot markers). */
.pcoc-mission-pillars .pcoc-static-page__list > li {
    padding: 11px 0 11px 30px;
    border-bottom: 1px solid rgba(26, 79, 110, 0.07);
    font-size: 15px;
    line-height: 1.55;
}
.pcoc-mission-pillars .pcoc-static-page__list > li::before {
    content: "\2713"; /* ✓ */
    background: none !important;
    width: auto !important;
    height: auto !important;
    border-radius: 0 !important;
    top: 10px !important;
    left: 2px !important;
    color: var(--pcoc-coral);
    font-weight: 800;
    font-size: 1rem;
    opacity: 1 !important;
}
@media (max-width: 820px) {
    .pcoc-mission-pillars .et_pb_column { flex: 1 1 100% !important; }
}

/* =======================================================================
   Give page — Aurora redesign of /give/
   ======================================================================= */

/* Column constraints — match the rest of the Aurora pages */
.et_pb_row .et_pb_column.pcoc-give-hero__col,
.et_pb_row .et_pb_column.pcoc-give-why__col,
.et_pb_row .et_pb_column.pcoc-give-trust__col,
.et_pb_row .et_pb_column.pcoc-give-cta__col {
    flex: 0 1 auto !important;
    width: 100% !important;
    max-width: 720px !important;
    margin: 0 auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box !important;
}
.et_pb_row .et_pb_column.pcoc-give-hero__col { max-width: 880px !important; }

/* Hero */
.pcoc-give-hero { background: transparent !important; text-align: center; }
.pcoc-give-hero .et_pb_text_inner,
.pcoc-give-hero .et_pb_module { text-align: center; }
.pcoc-give-hero__eyebrow .et_pb_text_inner p {
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pcoc-deep-teal);
    opacity: 0.7;
    margin: 0;
}
.pcoc-give-hero__title h1 {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: clamp(34px, 5vw, 58px);
    line-height: 1.06;
    color: var(--pcoc-deep-teal) !important;
    margin: 12px 0 14px;
}
.pcoc-give-hero__lead .et_pb_text_inner p {
    font-family: 'Inter', sans-serif;
    font-size: clamp(16px, 1.2vw, 19px);
    line-height: 1.65;
    color: rgba(30,30,46,0.85);
    margin: 0;
}

/* Why we give */
.pcoc-give-why { background: transparent !important; }
.pcoc-give-why__body h2 {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: clamp(26px, 2.6vw, 36px);
    color: var(--pcoc-deep-teal) !important;
    text-align: center;
    margin: 0 0 18px;
}
.pcoc-give-why__body p {
    font-size: clamp(16px, 1.15vw, 18px);
    line-height: 1.75;
    color: rgba(30,30,46,0.85) !important;
    margin: 0 0 1.2em;
}
.pcoc-give-why__body blockquote {
    border-left: 4px solid var(--pcoc-lake-blue);
    margin: 26px 0 0;
    padding: 14px 22px;
    background: rgba(255,255,255,0.45);
    border-radius: 0 12px 12px 0;
    color: var(--pcoc-deep-teal);
    font-style: italic;
    font-size: 17px;
    line-height: 1.6;
}
.pcoc-give-why__body blockquote cite {
    display: block;
    margin-top: 8px;
    font-style: normal;
    font-size: 14px;
    color: rgba(30,30,46,0.65);
}

/* Three ways — glass cards */
.pcoc-give-ways { background: transparent !important; }
.et-db #et-boc .et-l .pcoc-give-ways .et_pb_row,
.pcoc-give-ways .et_pb_row {
    max-width: 1180px !important;
    width: 92% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}
.et_pb_row .et_pb_column.pcoc-give-ways__col {
    flex: 1 1 0 !important;
    width: auto !important;
    margin: 0 12px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}
.pcoc-give-card .et_pb_text_inner {
    background: rgba(255,255,255,0.65);
    border: 1px solid rgba(255,255,255,0.7);
    border-radius: 16px;
    padding: 28px 26px;
    height: 100%;
    box-shadow: 0 8px 30px -14px rgba(26,79,110,0.18);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    text-align: center;
    color: rgba(30,30,46,0.85);
}
.pcoc-give-card--in-person .et_pb_text_inner { border-top: 4px solid var(--pcoc-lake-blue); }
.pcoc-give-card--mail      .et_pb_text_inner { border-top: 4px solid var(--pcoc-lake-glass); }
.pcoc-give-card--online    .et_pb_text_inner { border-top: 4px solid var(--pcoc-coral); }
.pcoc-give-card__icon {
    font-size: 36px;
    line-height: 1;
    margin-bottom: 14px;
}
.pcoc-give-card h3 {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: 22px;
    color: var(--pcoc-deep-teal) !important;
    margin: 0 0 12px;
}
.pcoc-give-card p {
    font-size: 15px;
    line-height: 1.6;
    color: rgba(30,30,46,0.82) !important;
    margin: 0 0 12px;
}
.pcoc-give-card__small {
    font-size: 13px !important;
    color: rgba(30,30,46,0.6) !important;
    margin: 8px 0 0 !important;
}
/* Scannable PayPal QR in the Online give card. */
.pcoc-give-card__qr {
    margin: 14px 0 4px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
.pcoc-give-card__qr img {
    width: 150px;
    height: 150px;
    border-radius: 10px;
    background: #fff;
    padding: 8px;
    box-shadow: 0 8px 20px -12px rgba(30,30,46,0.4);
}
.pcoc-give-card__qr figcaption {
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(30,30,46,0.55);
}
.pcoc-give-card__cta-wrap { margin: 14px 0 4px !important; }
.pcoc-give-card__cta {
    display: inline-block;
    padding: 10px 20px;
    border-radius: 999px;
    background: var(--pcoc-coral);
    color: #fff !important;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.02em;
    text-decoration: none;
    box-shadow: 0 10px 22px -10px rgba(232,98,42,0.55);
    transition: transform .2s ease, box-shadow .2s ease;
}
.pcoc-give-card__cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px -12px rgba(232,98,42,0.7);
}

@media (max-width: 900px) {
    /* Stack the three "ways to give" cards vertically. `flex: 1 1 0` on the
       columns was distributing the row's tiny intrinsic height equally,
       collapsing each column to ~57px while the card content (250–340px) bled
       downward into the next one. Release flex sizing so each column sizes to
       its content and the cards no longer overlap. */
    .pcoc-give-ways .et_pb_row {
        flex-direction: column !important;
        display: flex !important;
        align-items: stretch !important;
    }
    .et_pb_row .et_pb_column.pcoc-give-ways__col {
        flex: 0 0 auto !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        margin: 0 0 16px !important;
    }
    .pcoc-give-card .et_pb_text_inner { height: auto !important; }
}

/* Trust + transparency */
.pcoc-give-trust { background: transparent !important; }
.pcoc-give-trust__body h2 {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: clamp(24px, 2.4vw, 32px);
    color: var(--pcoc-deep-teal) !important;
    text-align: center;
    margin: 0 0 16px;
}
.pcoc-give-trust__body p {
    font-size: 16px;
    line-height: 1.7;
    color: rgba(30,30,46,0.85) !important;
    margin: 0 0 1em;
}

/* Closing CTA */
.pcoc-give-cta {
    background: linear-gradient(180deg, rgba(216,231,238,0) 0%, rgba(216,231,238,0.55) 60%, rgba(216,231,238,0.85) 100%) !important;
    text-align: center;
}
.pcoc-give-cta__body h2 {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: clamp(24px, 2.4vw, 32px);
    color: var(--pcoc-deep-teal) !important;
    margin: 0 0 14px;
}
.pcoc-give-cta__body p {
    font-size: 16px;
    line-height: 1.65;
    color: rgba(30,30,46,0.85) !important;
}
.pcoc-give-cta__actions { margin-top: 22px !important; }
.pcoc-give-cta__primary,
.pcoc-give-cta__secondary {
    display: inline-block;
    padding: 12px 26px;
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 0.02em;
    text-decoration: none;
    margin: 6px 8px;
    transition: transform .2s ease, box-shadow .2s ease;
}
.pcoc-give-cta__primary {
    background: var(--pcoc-coral);
    color: #fff !important;
    box-shadow: 0 12px 24px -10px rgba(232,98,42,0.55);
}
.pcoc-give-cta__primary:hover { transform: translateY(-1px); box-shadow: 0 16px 30px -12px rgba(232,98,42,0.7); }
.pcoc-give-cta__secondary {
    border: 1px solid var(--pcoc-deep-teal);
    color: var(--pcoc-deep-teal) !important;
}
.pcoc-give-cta__secondary:hover { background: var(--pcoc-deep-teal); color: #fff !important; }

/* =======================================================================
   Contact page — Aurora redesign of /contact/
   ======================================================================= */

.et_pb_row .et_pb_column.pcoc-contact-hero__col,
.et_pb_row .et_pb_column.pcoc-contact-find__col,
.et_pb_row .et_pb_column.pcoc-contact-prayer__col,
.et_pb_row .et_pb_column.pcoc-contact-visit__col {
    flex: 0 1 auto !important;
    width: 100% !important;
    max-width: 720px !important;
    margin: 0 auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box !important;
}
.et_pb_row .et_pb_column.pcoc-contact-hero__col { max-width: 880px !important; }
.et_pb_row .et_pb_column.pcoc-contact-find__col { max-width: 880px !important; }

/* Hero */
.pcoc-contact-hero { background: transparent !important; text-align: center; }
.pcoc-contact-hero .et_pb_text_inner,
.pcoc-contact-hero .et_pb_module { text-align: center; }
.pcoc-contact-hero__eyebrow .et_pb_text_inner p {
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pcoc-deep-teal);
    opacity: 0.7;
    margin: 0;
}
.pcoc-contact-hero__title h1 {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: clamp(34px, 5vw, 58px);
    line-height: 1.06;
    color: var(--pcoc-deep-teal) !important;
    margin: 12px 0 14px;
}
.pcoc-contact-hero__lead .et_pb_text_inner p {
    font-family: 'Inter', sans-serif;
    font-size: clamp(16px, 1.2vw, 19px);
    line-height: 1.65;
    color: rgba(30,30,46,0.85);
    margin: 0;
}

/* Find Us — 2x2 glass info grid */
.pcoc-contact-find { background: transparent !important; }
.pcoc-contact-find__body h2 {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: clamp(24px, 2.4vw, 32px);
    color: var(--pcoc-deep-teal) !important;
    text-align: center;
    margin: 0 0 24px;
}
.pcoc-contact-info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
@media (max-width: 720px) { .pcoc-contact-info { grid-template-columns: 1fr; } }
.pcoc-contact-info__item {
    display: flex;
    gap: 14px;
    background: rgba(255,255,255,0.65);
    border: 1px solid rgba(255,255,255,0.7);
    border-radius: 14px;
    padding: 18px 22px;
    box-shadow: 0 6px 24px -10px rgba(26,79,110,0.18);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    align-items: flex-start;
}
.pcoc-contact-info__item--address  { border-left: 4px solid var(--pcoc-lake-blue); }
.pcoc-contact-info__item--phone    { border-left: 4px solid var(--pcoc-lake-glass); }
.pcoc-contact-info__item--email    { border-left: 4px solid var(--pcoc-coral); }
.pcoc-contact-info__item--sunday   { border-left: 4px solid var(--pcoc-deep-teal); }
.pcoc-contact-info__icon { font-size: 22px; line-height: 1; flex-shrink: 0; padding-top: 2px; }
.pcoc-contact-info__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pcoc-contact-info__label {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pcoc-deep-teal);
    opacity: 0.65;
}
.pcoc-contact-info__value {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 16px;
    color: var(--pcoc-deep-teal) !important;
    line-height: 1.4;
}
.pcoc-contact-info__value a { color: var(--pcoc-deep-teal) !important; text-decoration: none; }
.pcoc-contact-info__value a:hover { color: var(--pcoc-lake-blue) !important; }
.pcoc-contact-info__sub {
    font-size: 13px;
    color: rgba(30,30,46,0.6);
    margin-top: 2px;
}
.pcoc-contact-info__link {
    font-size: 13px;
    color: var(--pcoc-lake-blue) !important;
    text-decoration: none;
    margin-top: 4px;
}
.pcoc-contact-info__link:hover { text-decoration: underline; }

/* Prayer request section */
.pcoc-contact-prayer { background: transparent !important; }
.pcoc-contact-prayer__intro h2 {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: clamp(24px, 2.4vw, 32px);
    color: var(--pcoc-deep-teal) !important;
    text-align: center;
    margin: 0 0 12px;
}
.pcoc-contact-prayer__lead {
    text-align: center;
    font-size: 16px;
    line-height: 1.6;
    color: rgba(30,30,46,0.78) !important;
    margin: 0 auto 24px !important;
    max-width: 560px;
}

/* First-time visiting closing */
.pcoc-contact-visit {
    background: linear-gradient(180deg, rgba(216,231,238,0) 0%, rgba(216,231,238,0.55) 60%, rgba(216,231,238,0.85) 100%) !important;
    text-align: center;
}
.pcoc-contact-visit .et_pb_text_inner,
.pcoc-contact-visit__body .et_pb_text_inner { text-align: center; }
.pcoc-contact-visit__body h2 {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: clamp(24px, 2.4vw, 32px);
    color: var(--pcoc-deep-teal) !important;
    margin: 0 0 14px;
}
.pcoc-contact-visit__body p {
    font-size: 16px;
    line-height: 1.65;
    color: rgba(30,30,46,0.85) !important;
}
.pcoc-contact-visit__cta-wrap { margin-top: 22px !important; }
.pcoc-contact-visit__cta {
    display: inline-block;
    padding: 12px 26px;
    border-radius: 999px;
    border: 1px solid var(--pcoc-deep-teal);
    color: var(--pcoc-deep-teal) !important;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 0.02em;
    text-decoration: none;
    transition: background .2s ease, color .2s ease;
}
.pcoc-contact-visit__cta:hover {
    background: var(--pcoc-deep-teal);
    color: #fff !important;
}

/* Hero card badge variants — match priority pill colors so the same event
   reads consistently whether it's the hero or a grid card. */
.pcoc-fe-card__badge--featured {
    background: rgba(232, 98, 42, 0.92);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.32);
}
.pcoc-fe-card__badge--recurring {
    background: rgba(111, 174, 155, 0.92);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.32);
}
.pcoc-fe-card__badge--coming-up {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

@media (max-width: 1024px) {
    .pcoc-events-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
}

@media (max-width: 640px) {
    .pcoc-events-list { grid-template-columns: 1fr; gap: 20px; }
    .pcoc-event-card__title { font-size: 1.25rem; }
    .pcoc-events-combined__hero { margin-bottom: 28px; }
}

/* ===== Footer finishing — logo (PCOC-2), nav order (PCOC-3), mobile center (PCOC-1)
   Explore-nav order is now canonical in the footer source (Home, About, Worship,
   Ministries, Events, Contact, Give); the old runtime JS reorder + the inert
   :has() order hack are removed. ===== */

/* PCOC-2 — footer logo: an <a><img> in a text module at the top of column 1, using
   the light landscape logo so it reads on the dark footer band. Styled via the
   inner link/img classes (the module wrapper carries no custom class). */
.et-l--footer .ff2_logo__link { display: inline-block; line-height: 0; }
.et-l--footer .ff2_logo__img {
    width: 260px;
    max-width: 80%;
    height: auto;
    display: inline-block;
}
/* Lift the logo module to the very top of the flex column, above the "Follow"
   eyebrow (the module wrapper carries no class, so match it via :has). */
.et_pb_section_0_tb_footer .et_pb_column_0_tb_footer .et_pb_text:has(.ff2_logo__img) {
    order: -1 !important;
    margin: 0 0 20px !important;
}
/* The column's "Follow" accent dash is absolutely positioned assuming the eyebrow
   sits at the column top; with the logo above it that dash would float onto the
   logo, so drop it for this column (col2/col3 keep theirs). */
.et_pb_section_0_tb_footer .et_pb_column_0_tb_footer::after { content: none !important; }
/* Footer text modules get a heading-accent dash via .et_pb_text_inner::after — the
   logo isn't a heading, so suppress it there. */
.et-l--footer .et_pb_text:has(.ff2_logo__img) .et_pb_text_inner::after { content: none !important; }

/* PCOC-1 — mobile: center all footer content. Anchored at the footer's own high
   specificity (html body .et-l--footer .et_builder_inner_content …) so it beats
   the layout rules that otherwise leave the links jammed left. Desktop keeps its
   left-aligned columns. */
@media (max-width: 980px) {
    /* Force every footer column to a centered flex column — this centers ALL child
       types uniformly (logo, eyebrow pseudos, social blurbs, text modules, contact
       pills) regardless of their individual markup. */
    html body .et-l--footer .et_builder_inner_content .et_pb_row_0_tb_footer > .et_pb_column {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
    }
    html body .et-l--footer .et_builder_inner_content .et_pb_text,
    html body .et-l--footer .et_builder_inner_content .et_pb_text .et_pb_text_inner,
    html body .et-l--footer .et_builder_inner_content .et_pb_text .et_pb_text_inner p {
        text-align: center !important;
        width: 100% !important;
    }
    /* center the column eyebrow pseudos (Follow / Contact / Explore) */
    html body .et-l--footer .et_builder_inner_content .et_pb_row_0_tb_footer > .et_pb_column::before {
        margin-left: auto !important;
        margin-right: auto !important;
    }
    /* center inner flex rows (social buttons, contact pills, accent dashes) */
    html body .et-l--footer .et_builder_inner_content .et_pb_text_inner > div,
    html body .et-l--footer .et_builder_inner_content .et_pb_text_inner > ul {
        justify-content: center !important;
        align-items: center !important;
    }
    /* eyebrow accent dashes (e.g. under CONTACT) are absolutely positioned left:0
       — recenter them under their now-centered heading. */
    html body .et-l--footer .et_builder_inner_content .et_pb_text_inner::after {
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%) !important;
    }
    /* Center the blurb stacks that are content-width flex items pinned left by
       the column's align-items:flex-start (margin-right resolves to auto). auto
       on both sides centers them. col-0 = social pills (Facebook / Youtube);
       col-1 = contact blurbs (phone / email / address) — PCOC-64, col-1 was
       previously missed so contact read left while everything else centered. */
    html body .et-l--footer .et_builder_inner_content .et_pb_column_0_tb_footer .et_pb_blurb,
    html body .et-l--footer .et_builder_inner_content .et_pb_column_1_tb_footer .et_pb_blurb {
        margin-left: auto !important;
        margin-right: auto !important;
    }
    .et-l--footer .ff2_logo__img { width: 220px; max-width: 72%; }
}

/* =================================================================
   Accessibility (PCOC-51) — CTA button contrast.
   Brand coral #e8622a with white text is ~3.4:1 (fails WCAG AA 4.5:1).
   Use a deeper coral #c2410c (~5.2:1 on white) for these button
   BACKGROUNDS only. Brand coral stays #e8622a everywhere else
   (decorative accent bars, card borders, hover shadows).
================================================================= */
.pcoc-prayer-form__submit,
.pcoc-give-card__cta,
.pcoc-give-cta__primary {
    background: #c2410c !important;
}


/* =============================================================================
   Aurora community calendar (PCOC-47b) — [pcoc_calendar]
   ========================================================================== */

body.page .et_pb_section.pcoc-events-calendar {
    background: transparent !important;
}

.pcoc-cal {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- month nav --- */
.pcoc-cal__nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-bottom: 22px;
}
.pcoc-cal__nav-label {
    font-size: 1.35rem;
    font-weight: 700;
    color: #0f3347;
    min-width: 180px;
    text-align: center;
}
.pcoc-cal__nav-btn {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid rgba(15, 51, 71, 0.18);
    background: rgba(255, 255, 255, 0.65);
    backdrop-filter: blur(10px);
    color: #0f3347;
    font-size: 1.1rem;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease;
}
.pcoc-cal__nav-btn:hover:not(:disabled) {
    background: rgba(60, 190, 230, 0.25);
    transform: translateY(-1px);
}
.pcoc-cal__nav-btn:disabled {
    opacity: 0.35;
    cursor: default;
}

/* --- panes --- */
.pcoc-cal__pane { display: none; }
.pcoc-cal__pane.is-active { display: block; }

/* --- desktop grid --- */
.pcoc-cal__grid {
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.62);
    backdrop-filter: blur(14px) saturate(150%);
    -webkit-backdrop-filter: blur(14px) saturate(150%);
    border: 1px solid rgba(255, 255, 255, 0.7);
    box-shadow: 0 22px 50px -18px rgba(15, 51, 71, 0.28);
    padding: 18px;
}
.pcoc-cal__dow-row,
.pcoc-cal__cells {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 6px;
}
.pcoc-cal__dow {
    text-align: center;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(15, 51, 71, 0.55);
    padding: 6px 0 10px;
}
.pcoc-cal__cell {
    min-height: 96px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.45);
    border: 1px solid rgba(15, 51, 71, 0.06);
    padding: 6px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.pcoc-cal__cell--blank {
    background: transparent;
    border-color: transparent;
}
.pcoc-cal__cell--today {
    border: 2px solid #e8622a;
    background: rgba(232, 98, 42, 0.07);
}
.pcoc-cal__daynum {
    font-size: 0.8rem;
    font-weight: 700;
    color: rgba(15, 51, 71, 0.75);
}
.pcoc-cal__cell--today .pcoc-cal__daynum {
    color: #e8622a;
}

/* --- event pills --- */
.pcoc-cal__pill {
    display: block;
    border-radius: 8px;
    padding: 3px 7px;
    font-size: 0.7rem;
    line-height: 1.25;
    text-decoration: none;
    overflow: hidden;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.pcoc-cal__pill:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px -6px rgba(15, 51, 71, 0.4);
}
.pcoc-cal__pill-time {
    display: block;
    font-weight: 700;
    font-size: 0.62rem;
    opacity: 0.8;
}
.pcoc-cal__pill-title {
    display: block;
    font-weight: 600;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}
.pcoc-cal__pill--recurring {
    background: rgba(111, 174, 155, 0.22);
    color: #1f4f40;
}
.pcoc-cal__pill--oneoff {
    background: rgba(60, 190, 230, 0.2);
    color: #0c4a66;
}
.pcoc-cal__pill--featured {
    background: rgba(232, 98, 42, 0.18);
    color: #9a3a12;
}

/* --- mobile agenda (hidden on desktop) --- */
.pcoc-cal__agenda { display: none; }

/* --- action buttons --- */
.pcoc-cal__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    margin-top: 26px;
}
.pcoc-cal__action {
    display: inline-block;
    padding: 12px 22px;
    border-radius: 999px;
    font-size: 0.86rem;
    font-weight: 700;
    text-decoration: none;
    border: 1px solid rgba(15, 51, 71, 0.2);
    background: rgba(255, 255, 255, 0.6);
    backdrop-filter: blur(10px);
    color: #0f3347;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.pcoc-cal__action:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 24px -10px rgba(15, 51, 71, 0.35);
    color: #0f3347;
}
.pcoc-cal__action--primary {
    background: #e8622a;
    border-color: #e8622a;
    color: #fff;
}
.pcoc-cal__action--primary:hover {
    background: #d4551f;
    color: #fff;
}

/* --- mobile: swap grid for agenda --- */
@media (max-width: 768px) {
    .pcoc-cal__grid { display: none; }
    .pcoc-cal__agenda {
        display: block;
        list-style: none;
        margin: 0;
        padding: 18px;
        border-radius: 20px;
        background: rgba(255, 255, 255, 0.62);
        backdrop-filter: blur(14px) saturate(150%);
        -webkit-backdrop-filter: blur(14px) saturate(150%);
        border: 1px solid rgba(255, 255, 255, 0.7);
        box-shadow: 0 22px 50px -18px rgba(15, 51, 71, 0.28);
    }
    .pcoc-cal__agenda-day {
        list-style: none;
        padding: 10px 0;
        border-bottom: 1px solid rgba(15, 51, 71, 0.08);
    }
    .pcoc-cal__agenda-day:last-child { border-bottom: 0; }
    .pcoc-cal__agenda-day--today {
        border-left: 3px solid #e8622a;
        padding-left: 10px;
    }
    .pcoc-cal__agenda-date {
        display: block;
        font-size: 0.78rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: rgba(15, 51, 71, 0.6);
        margin-bottom: 4px;
    }
    .pcoc-cal__agenda-day ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }
    .pcoc-cal__agenda-item {
        display: block;
        padding: 6px 0;
        font-size: 0.95rem;
        font-weight: 600;
        text-decoration: none;
        color: #0f3347;
    }
    .pcoc-cal__agenda-time {
        font-weight: 700;
        font-size: 0.8rem;
        color: #0c4a66;
        margin-right: 6px;
    }
    .pcoc-cal__agenda-item--featured .pcoc-cal__agenda-time { color: #e8622a; }
    .pcoc-cal__agenda-item--recurring .pcoc-cal__agenda-time { color: #1f4f40; }
    .pcoc-cal__agenda-empty {
        list-style: none;
        color: rgba(15, 51, 71, 0.6);
    }
    .pcoc-cal__nav-label { font-size: 1.1rem; min-width: 140px; }
}

/* Calendar section intro */
.pcoc-events-calendar__intro {
    text-align: center;
}
.pcoc-events-calendar__headline {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 800;
    color: #0f3347;
    margin-bottom: 0.4em;
}
.pcoc-events-calendar__lead {
    max-width: 560px;
    margin: 0 auto 36px;
    color: rgba(15, 51, 71, 0.75);
    font-size: 1.05rem;
}

/* =============================================================================
   Gloo text-updates card (PCOC-71) — [gloo_text_card]
   ========================================================================== */

body.page .et_pb_section.pcoc-contact-gloo {
    background: transparent !important;
}

/* --- contact-page variant: full glass card --- */
.pcoc-gloo--contact {
    display: flex;
    align-items: center;
    gap: 40px;
    max-width: 980px;
    margin: 0 auto;
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.62);
    backdrop-filter: blur(14px) saturate(150%);
    -webkit-backdrop-filter: blur(14px) saturate(150%);
    border: 1px solid rgba(255, 255, 255, 0.7);
    box-shadow: 0 22px 50px -18px rgba(15, 51, 71, 0.28);
    padding: clamp(28px, 4vw, 48px);
}
.pcoc-gloo--contact .pcoc-gloo__body { flex: 1 1 auto; }
.pcoc-gloo__heading {
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 800;
    color: #0f3347;
    margin: 0.35em 0;
}
.pcoc-gloo__lead {
    color: rgba(15, 51, 71, 0.75);
    margin-bottom: 22px;
    max-width: 460px;
}
.pcoc-gloo__btn {
    display: inline-block;
    padding: 13px 26px;
    border-radius: 999px;
    background: #e8622a;
    color: #fff !important;
    font-weight: 700;
    font-size: 0.92rem;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.pcoc-gloo__btn:hover {
    background: #d4551f;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px -10px rgba(232, 98, 42, 0.55);
}
.pcoc-gloo__qr-wrap {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.pcoc-gloo--contact .pcoc-gloo__qr {
    width: 190px;
    height: 190px;
    border-radius: 18px;
    background: #fff;
    padding: 10px;
    box-shadow: 0 14px 30px -12px rgba(15, 51, 71, 0.35);
}
.pcoc-gloo__qr-caption {
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(15, 51, 71, 0.55);
}
@media (max-width: 768px) {
    .pcoc-gloo--contact { flex-direction: column-reverse; text-align: center; }
    .pcoc-gloo__lead { margin-left: auto; margin-right: auto; }
}

/* --- footer variant: compact, on dark --- */
.pcoc-gloo--footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-top: 22px;
    text-align: left;
}
.pcoc-gloo--footer .pcoc-gloo__qr {
    width: 96px;
    height: 96px;
    border-radius: 12px;
    background: #fff;
    padding: 6px;
    display: block;
}
.pcoc-gloo--footer .pcoc-gloo__copy { max-width: 300px; }
.pcoc-gloo--footer .pcoc-gloo__title {
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    margin: 0 0 4px;
}
.pcoc-gloo--footer .pcoc-gloo__line {
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.88rem;
    line-height: 1.5;
    margin: 0;
}
.pcoc-gloo--footer .pcoc-gloo__line a {
    color: #5fd0f0;
    font-weight: 700;
    text-decoration: none;
}
.pcoc-gloo--footer .pcoc-gloo__line a:hover { color: #fff; }
@media (max-width: 480px) {
    .pcoc-gloo--footer { flex-direction: column; text-align: center; }
}
