/* =============================================================
   CHURCH ROYAL — custom.css
   Only styles NOT handled by Bootstrap 5 live here.
   ============================================================= */

/* ============================================================
   CSS CUSTOM PROPERTIES (Design Tokens)
   ============================================================ */
:root {
  --cr-primary:        #040462;
  --cr-primary-dark:   #020240;
  --cr-primary-light:  #0a0ab8;
  --cr-accent:         #dd2725;
  --cr-accent-dark:    #b01f1e;
  --cr-accent-light:   #ff4441;
  --cr-gold:           #c9a84c;
  --cr-white:          #ffffff;
  --cr-off-white:      #f4f6fb;
  --cr-light-gray:     #e8eaf0;
  --cr-mid-gray:       #9999aa;
  --cr-dark-gray:      #333344;
  --cr-text:           #1a1a2e;
  --cr-text-muted:     #666677;
  --cr-body-bg:        #f4f6fb;
  --cr-card-bg:        #ffffff;
  --cr-border:         #dde0ea;
  --cr-font-heading:   'Playfair Display', Georgia, serif;
  --cr-font-body:      'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
  --cr-section-pad:    5rem;
  --cr-section-pad-sm: 3rem;
  --cr-radius:         6px;
  --cr-radius-lg:      14px;
  --cr-shadow-sm:      0 2px 8px rgba(4,4,98,.08);
  --cr-shadow-md:      0 6px 24px rgba(4,4,98,.12);
  --cr-shadow-lg:      0 16px 48px rgba(4,4,98,.18);
  --cr-transition:     all .3s ease;
}

[data-theme="dark"] {
  --cr-white:       #0d0d1a;
  --cr-off-white:   #141428;
  --cr-light-gray:  #1e1e38;
  --cr-mid-gray:    #555570;
  --cr-text:        #e8e8f5;
  --cr-text-muted:  #9999bb;
  --cr-body-bg:     #0d0d1a;
  --cr-card-bg:     #141428;
  --cr-border:      #2a2a48;
  --cr-shadow-sm:   0 2px 8px rgba(0,0,0,.3);
  --cr-shadow-md:   0 6px 24px rgba(0,0,0,.4);
  --cr-shadow-lg:   0 16px 48px rgba(0,0,0,.5);
}

/* ============================================================
   BASE
   ============================================================ */
html { scroll-behavior: smooth; }
body {
  font-family: var(--cr-font-body);
  background-color: var(--cr-body-bg);
  color: var(--cr-text);
  transition: background-color .3s ease, color .3s ease;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4,h5,h6,.font-heading {
  font-family: var(--cr-font-heading);
  color: var(--cr-primary);
  line-height: 1.2;
}
[data-theme="dark"] h1,[data-theme="dark"] h2,[data-theme="dark"] h3,
[data-theme="dark"] h4,[data-theme="dark"] h5,[data-theme="dark"] h6 { color: #e8e8f5; }
a { color: var(--cr-primary); transition: var(--cr-transition); }
a:hover { color: var(--cr-accent); }
[data-theme="dark"] a { color: #8888ff; }
[data-theme="dark"] a:hover { color: var(--cr-accent-light); }
img { max-width: 100%; height: auto; }

.skip-link { position:absolute; top:-100%; left:0; z-index:9999; padding:.5rem 1rem; background:var(--cr-accent); color:#fff; font-weight:700; }
.skip-link:focus { top:0; }

/* ============================================================
   COLOUR EXTENSIONS
   ============================================================ */
.btn-ct-primary { background-color:var(--cr-primary);border-color:var(--cr-primary);color:#fff;font-weight:600;letter-spacing:.03em;border-radius:var(--cr-radius);transition:var(--cr-transition); }
.btn-ct-primary:hover,.btn-ct-primary:focus { background-color:var(--cr-primary-dark);border-color:var(--cr-primary-dark);color:#fff;box-shadow:var(--cr-shadow-md);transform:translateY(-1px); }
.btn-ct-secondary { background-color:var(--cr-accent);border-color:var(--cr-accent);color:#fff;font-weight:600;border-radius:var(--cr-radius);transition:var(--cr-transition); }
.btn-ct-secondary:hover,.btn-ct-secondary:focus { background-color:var(--cr-accent-dark);border-color:var(--cr-accent-dark);color:#fff;box-shadow:var(--cr-shadow-md);transform:translateY(-1px); }
.btn-ct-outline { background:transparent;border:2px solid var(--cr-primary);color:var(--cr-primary);font-weight:600;border-radius:var(--cr-radius);transition:var(--cr-transition); }
.btn-ct-outline:hover { background:var(--cr-primary);color:#fff; }
.text-ct-primary   { color:var(--cr-primary)   !important; }
.text-ct-secondary { color:var(--cr-accent)     !important; }
.text-ct-gold      { color:var(--cr-gold)       !important; }
.bg-ct-primary     { background-color:var(--cr-primary)   !important; }
.bg-ct-secondary   { background-color:var(--cr-accent)    !important; }
.bg-ct-dark        { background-color:var(--cr-primary-dark) !important; }
.bg-ct-light       { background-color:var(--cr-off-white)  !important; }

/* ============================================================
   ANNOUNCEMENT BAR
   ============================================================ */
.ct-announcement-bar { background:var(--cr-accent);color:#fff;font-size:.875rem;font-weight:600;text-align:center;padding:.5rem 3rem;position:relative;z-index:1050; }
.ct-announcement-bar a { color:#fff;text-decoration:underline; }
.ct-announcement-bar .ct-close { position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#fff;font-size:1.25rem;cursor:pointer;opacity:.8; }
.ct-announcement-bar .ct-close:hover { opacity:1; }

/* ============================================================
   TOPBAR
   ============================================================ */
.ct-topbar { background:var(--cr-primary-dark);color:rgba(255,255,255,.8);font-size:.8125rem;padding:.4rem 0;border-bottom:1px solid rgba(255,255,255,.08); }
.ct-topbar a { color:rgba(255,255,255,.8);text-decoration:none; }
.ct-topbar a:hover { color:#fff; }
.ct-topbar .bi { color:var(--cr-accent); }

/* ============================================================
   NAVBAR
   ============================================================ */
.ct-navbar { background:var(--cr-primary) !important;padding:.85rem 0;border-bottom:3px solid var(--cr-accent);transition:var(--cr-transition); }
.ct-navbar.scrolled { padding:.5rem 0;box-shadow:var(--cr-shadow-md); }
.ct-navbar .nav-link { color:rgba(255,255,255,.88) !important;font-weight:600;font-size:.9375rem;padding:.5rem .85rem !important;border-radius:var(--cr-radius);transition:var(--cr-transition);position:relative; }
.ct-navbar .nav-link:hover,.ct-navbar .nav-link.active,.ct-navbar .nav-link:focus { color:#fff !important;background:rgba(255,255,255,.12); }
.ct-navbar .nav-link.active::after { content:'';display:block;position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);width:60%;height:2px;background:var(--cr-accent);border-radius:2px; }
.ct-navbar .dropdown-menu { border:none;border-radius:var(--cr-radius-lg);box-shadow:var(--cr-shadow-lg);min-width:220px;padding:.5rem;margin-top:.5rem;background:var(--cr-card-bg);animation:ctDropIn .2s ease; }
@keyframes ctDropIn { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:translateY(0)} }
.ct-navbar .dropdown-item { color:var(--cr-text);border-radius:var(--cr-radius);padding:.5rem .85rem;font-size:.9rem;transition:var(--cr-transition); }
.ct-navbar .dropdown-item:hover { background:var(--cr-off-white);color:var(--cr-primary);padding-left:1.2rem; }
[data-theme="dark"] .ct-navbar .dropdown-menu { background:var(--cr-light-gray); }
[data-theme="dark"] .ct-navbar .dropdown-item { color:var(--cr-text); }
[data-theme="dark"] .ct-navbar .dropdown-item:hover { background:var(--cr-border); }
.ct-navbar .dropdown-toggle::after { border:none;content:'\f282';font-family:'bootstrap-icons';font-size:.7rem;vertical-align:middle;margin-left:.3rem;transition:transform .2s ease; }
.ct-navbar .dropdown.show .dropdown-toggle::after { transform:rotate(180deg); }

/* MEGA MENU */
.ct-mega-menu { position:static !important; }
.ct-mega-menu .dropdown-menu { width:100%;left:0 !important;right:0 !important;padding:1.5rem;display:none; }
.ct-mega-menu.show .dropdown-menu { display:flex !important;flex-wrap:wrap;gap:0; }
.ct-mega-col { flex:1 1 200px;padding:0 1rem; }
.ct-mega-col + .ct-mega-col { border-left:1px solid var(--cr-border); }
.ct-mega-col h6 { font-family:var(--cr-font-body);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--cr-accent);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--cr-border); }
.ct-mega-col .dropdown-item { padding:.35rem .5rem; }

/* ============================================================
   DARK MODE TOGGLE
   ============================================================ */
.ct-dark-toggle { background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);border-radius:50px;width:44px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--cr-transition);padding:0; }
.ct-dark-toggle:hover { background:rgba(255,255,255,.25); }
.ct-dark-toggle .ct-knob { font-size:.85rem;line-height:1; }

/* ============================================================
   HERO
   ============================================================ */
.ct-hero { position:relative;background:linear-gradient(135deg,var(--cr-primary) 0%,var(--cr-primary-light) 60%,var(--cr-accent) 100%);color:#fff;padding:7rem 0 5rem;overflow:hidden; }
.ct-hero::before { content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E"); }
.ct-hero h1 { color:#fff;font-size:clamp(2.2rem,5vw,3.8rem);text-shadow:0 2px 16px rgba(0,0,0,.25); }
.ct-hero .lead { font-size:1.2rem;opacity:.9; }
.ct-hero .ct-hero-badge { display:inline-block;background:var(--cr-accent);color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .8rem;border-radius:50px;margin-bottom:1rem; }
.ct-page-banner { background:linear-gradient(100deg,var(--cr-primary-dark) 0%,var(--cr-primary) 100%);padding:3rem 0;color:#fff;position:relative;overflow:hidden; }
.ct-page-banner h1 { color:#fff;font-size:clamp(1.8rem,4vw,2.8rem);margin:0; }
.ct-page-banner::after { content:'';position:absolute;bottom:-1px;left:0;right:0;height:30px;background:var(--cr-body-bg);clip-path:ellipse(55% 100% at 50% 100%); }

/* ============================================================
   SECTIONS
   ============================================================ */
.ct-section { padding:var(--cr-section-pad) 0; }
.ct-section-sm { padding:var(--cr-section-pad-sm) 0; }
.ct-section-title { font-size:clamp(1.75rem,3.5vw,2.6rem);margin-bottom:1rem; }
.ct-section-subtitle { color:var(--cr-text-muted);font-size:1.05rem;max-width:600px; }
.ct-divider { display:flex;align-items:center;gap:.75rem;margin-bottom:2rem; }
.ct-divider::before,.ct-divider::after { content:'';flex:1;height:1px;background:var(--cr-border); }
.ct-divider-cross { color:var(--cr-accent);font-size:1.1rem; }
.ct-section-primary { background:var(--cr-primary);color:#fff; }
.ct-section-primary h2,.ct-section-primary h3 { color:#fff; }
.ct-section-primary .ct-section-subtitle { color:rgba(255,255,255,.7); }

/* ============================================================
   CARDS
   ============================================================ */
.ct-card { background:var(--cr-card-bg);border:1px solid var(--cr-border);border-radius:var(--cr-radius-lg);overflow:hidden;box-shadow:var(--cr-shadow-sm);transition:var(--cr-transition);height:100%; }
.ct-card:hover { box-shadow:var(--cr-shadow-lg);transform:translateY(-4px); }
.ct-card .ct-card-img { height:220px;overflow:hidden;position:relative; }
.ct-card .ct-card-img img { width:100%;height:100%;object-fit:cover;transition:transform .5s ease; }
.ct-card:hover .ct-card-img img { transform:scale(1.06); }
.ct-card .ct-card-body { padding:1.5rem; }
.ct-card .ct-card-badge { position:absolute;top:1rem;right:1rem;background:var(--cr-accent);color:#fff;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.25rem .65rem;border-radius:50px; }
.ct-card .ct-card-meta { font-size:.82rem;color:var(--cr-text-muted);margin-bottom:.5rem; }
.ct-card h3 a,.ct-card h4 a { color:var(--cr-primary);text-decoration:none; }
.ct-card h3 a:hover,.ct-card h4 a:hover { color:var(--cr-accent); }

/* Sermon card */
.ct-sermon-card .ct-play-btn { position:absolute;bottom:1rem;right:1rem;width:44px;height:44px;border-radius:50%;background:var(--cr-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.1rem;box-shadow:var(--cr-shadow-md);transition:var(--cr-transition);text-decoration:none; }
.ct-sermon-card .ct-play-btn:hover { background:var(--cr-accent-dark);color:#fff;transform:scale(1.1); }
.ct-sermon-card .ct-scripture-ref { font-family:var(--cr-font-heading);font-style:italic;color:var(--cr-accent);font-size:.9rem; }

/* Event card */
.ct-event-card .ct-event-date-box { min-width:60px;background:var(--cr-primary);color:#fff;border-radius:var(--cr-radius);text-align:center;padding:.5rem;flex-shrink:0; }
.ct-event-card .ct-event-date-box .ct-day { display:block;font-size:1.6rem;font-weight:800;line-height:1;font-family:var(--cr-font-heading); }
.ct-event-card .ct-event-date-box .ct-month { display:block;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.85; }

/* Person card */
.ct-person-card { text-align:center; }
.ct-person-card .ct-person-img { width:140px;height:140px;border-radius:50%;object-fit:cover;border:4px solid var(--cr-primary);margin:0 auto 1rem;display:block;transition:var(--cr-transition); }
.ct-person-card:hover .ct-person-img { border-color:var(--cr-accent);box-shadow:0 0 0 4px rgba(221,39,37,.2); }
.ct-person-card .ct-person-role { color:var(--cr-accent);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em; }

/* Department card */
.ct-dept-card { background:var(--cr-card-bg);border:1px solid var(--cr-border);border-top:4px solid var(--cr-primary);border-radius:var(--cr-radius-lg);padding:1.75rem;text-align:center;transition:var(--cr-transition);height:100%; }
.ct-dept-card:hover { border-top-color:var(--cr-accent);box-shadow:var(--cr-shadow-lg);transform:translateY(-4px); }
.ct-dept-icon { width:64px;height:64px;background:var(--cr-off-white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.75rem;margin:0 auto 1rem;color:var(--cr-primary);transition:var(--cr-transition); }
.ct-dept-card:hover .ct-dept-icon { background:var(--cr-accent);color:#fff; }

/* Program card */
.ct-program-card { position:relative;border-radius:var(--cr-radius-lg);overflow:hidden;min-height:280px;display:flex;align-items:flex-end; }
.ct-program-card img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.ct-program-card::after { content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,4,98,.85) 0%,transparent 55%); }
.ct-program-card .ct-program-body { position:relative;z-index:1;padding:1.5rem;color:#fff;width:100%; }
.ct-program-card h4 { color:#fff;margin-bottom:.25rem; }

/* Branch card */
.ct-branch-card { background:var(--cr-card-bg);border:1px solid var(--cr-border);border-radius:var(--cr-radius-lg);overflow:hidden;transition:var(--cr-transition); }
.ct-branch-card:hover { box-shadow:var(--cr-shadow-lg); }
.ct-branch-map-embed { height:200px;overflow:hidden; }
.ct-branch-map-embed iframe { width:100%;height:100%;border:0; }
.ct-branch-info { padding:1.5rem; }
.ct-branch-pastor { display:flex;align-items:center;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--cr-border); }
.ct-branch-pastor img { width:40px;height:40px;border-radius:50%;object-fit:cover; }

/* Bible study card */
.ct-bible-card { background:var(--cr-card-bg);border:1px solid var(--cr-border);border-radius:var(--cr-radius-lg);padding:1.5rem;transition:var(--cr-transition); }
.ct-bible-card:hover { box-shadow:var(--cr-shadow-md); }
.ct-bible-schedule { display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem; }
.ct-bible-schedule .badge { background:var(--cr-off-white);color:var(--cr-primary);font-weight:600;border:1px solid var(--cr-border); }

/* ============================================================
   SERVICE TIMES
   ============================================================ */
.ct-service-times { background:linear-gradient(135deg,var(--cr-primary) 0%,var(--cr-primary-light) 100%);color:#fff;border-radius:var(--cr-radius-lg);padding:2rem; }
.ct-service-times h3 { color:#fff; }
.ct-service-item { display:flex;justify-content:space-between;align-items:center;padding:.65rem 0;border-bottom:1px solid rgba(255,255,255,.15); }
.ct-service-item:last-child { border-bottom:none; }
.ct-service-item .ct-service-name { font-weight:600; }
.ct-service-item .ct-service-time { font-size:.875rem;opacity:.85;text-align:right; }

/* ============================================================
   SCRIPTURE VERSE
   ============================================================ */
.ct-verse-block { position:relative;background:var(--cr-off-white);border-left:5px solid var(--cr-accent);border-radius:0 var(--cr-radius-lg) var(--cr-radius-lg) 0;padding:2rem 2rem 2rem 2.5rem;font-family:var(--cr-font-heading);font-size:1.2rem;font-style:italic;color:var(--cr-primary);overflow:hidden; }
.ct-verse-block::before { content:'\201C';position:absolute;top:-.5rem;left:.75rem;font-size:5rem;line-height:1;color:var(--cr-accent);opacity:.15;font-style:normal; }
.ct-verse-block .ct-verse-ref { display:block;margin-top:.75rem;font-size:.85rem;font-style:normal;font-family:var(--cr-font-body);font-weight:700;color:var(--cr-accent); }
[data-theme="dark"] .ct-verse-block { background:var(--cr-light-gray); }

/* ============================================================
   LIVE BADGE + STATS
   ============================================================ */
.ct-live-badge { display:inline-flex;align-items:center;gap:.4rem;background:var(--cr-accent);color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .75rem;border-radius:50px; }
.ct-live-dot { width:8px;height:8px;background:#fff;border-radius:50%;animation:ctPulse 1s infinite; }
@keyframes ctPulse { 0%,100%{opacity:1} 50%{opacity:.5} }
.ct-stat-item { text-align:center; }
.ct-stat-number { font-family:var(--cr-font-heading);font-size:clamp(2.5rem,5vw,4rem);font-weight:800;color:var(--cr-primary);line-height:1;display:block; }
.ct-section-primary .ct-stat-number { color:#fff; }
.ct-stat-label { font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--cr-text-muted);margin-top:.25rem; }
.ct-section-primary .ct-stat-label { color:rgba(255,255,255,.7); }

/* ============================================================
   GIVE SECTION
   ============================================================ */
.ct-give-section { background:linear-gradient(135deg,var(--cr-accent-dark) 0%,var(--cr-accent) 100%);color:#fff;padding:var(--cr-section-pad-sm) 0;position:relative;overflow:hidden; }
.ct-give-section::before { content:'❤';position:absolute;font-size:20rem;opacity:.04;right:5%;top:50%;transform:translateY(-50%); }
.ct-give-section h2 { color:#fff; }

/* ============================================================
   SINGLE SERMON
   ============================================================ */
.ct-sermon-player { background:var(--cr-primary);border-radius:var(--cr-radius-lg);padding:1.5rem;color:#fff; }
.ct-sermon-player audio { width:100%;accent-color:var(--cr-accent); }
.ct-sermon-meta-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin:1.5rem 0; }
.ct-sermon-meta-item { background:var(--cr-off-white);border-radius:var(--cr-radius);padding:.85rem 1rem; }
.ct-sermon-meta-item .ct-meta-label { font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--cr-text-muted);margin-bottom:.2rem; }
.ct-sermon-meta-item .ct-meta-value { font-weight:600;color:var(--cr-primary); }
[data-theme="dark"] .ct-sermon-meta-item { background:var(--cr-light-gray); }
[data-theme="dark"] .ct-sermon-meta-item .ct-meta-value { color:var(--cr-white); }

/* ============================================================
   SINGLE EVENT
   ============================================================ */
.ct-event-detail-sidebar { background:var(--cr-card-bg);border:1px solid var(--cr-border);border-top:4px solid var(--cr-primary);border-radius:var(--cr-radius-lg);overflow:hidden; }
.ct-event-detail-sidebar .ct-event-header { background:var(--cr-primary);color:#fff;padding:1.5rem;text-align:center; }
.ct-event-detail-sidebar .ct-big-date { font-family:var(--cr-font-heading);font-size:3.5rem;font-weight:800;line-height:1;display:block; }
.ct-event-detail-sidebar .ct-event-info-list { padding:1.5rem;list-style:none;margin:0; }
.ct-event-detail-sidebar .ct-event-info-list li { display:flex;gap:.75rem;align-items:flex-start;padding:.6rem 0;border-bottom:1px solid var(--cr-border);font-size:.9rem; }
.ct-event-detail-sidebar .ct-event-info-list li:last-child { border-bottom:none; }
.ct-event-detail-sidebar .ct-event-info-list .bi { color:var(--cr-accent);width:18px; }

/* ============================================================
   SIDEBAR
   ============================================================ */
.ct-sidebar .widget { background:var(--cr-card-bg);border:1px solid var(--cr-border);border-radius:var(--cr-radius-lg);padding:1.5rem;margin-bottom:1.5rem; }
.ct-sidebar .widget-title { font-size:1.05rem;font-family:var(--cr-font-heading);color:var(--cr-primary);border-bottom:2px solid var(--cr-accent);padding-bottom:.5rem;margin-bottom:1rem; }
[data-theme="dark"] .ct-sidebar .widget-title { color:var(--cr-white); }
.ct-sidebar ul { padding-left:0;list-style:none; }
.ct-sidebar ul li { padding:.35rem 0;border-bottom:1px solid var(--cr-border);font-size:.9rem; }
.ct-sidebar ul li:last-child { border-bottom:none; }

/* ============================================================
   PAGINATION
   ============================================================ */
.ct-pagination { margin-top:2.5rem; }
.ct-pagination .page-numbers { display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--cr-radius);font-weight:600;color:var(--cr-primary);text-decoration:none;border:1px solid var(--cr-border);margin:0 .2rem;transition:var(--cr-transition); }
.ct-pagination .page-numbers:hover,.ct-pagination .page-numbers.current { background:var(--cr-primary);border-color:var(--cr-primary);color:#fff; }

/* ============================================================
   BREADCRUMBS
   ============================================================ */
.ct-breadcrumbs { font-size:.85rem;color:rgba(255,255,255,.75);margin-top:.5rem; }
.ct-breadcrumbs a { color:rgba(255,255,255,.75);text-decoration:none; }
.ct-breadcrumbs a:hover { color:#fff; }
.ct-breadcrumbs .sep { margin:0 .35rem;opacity:.5; }

/* ============================================================
   FOOTER
   ============================================================ */
.ct-footer { background:var(--cr-primary-dark);color:rgba(255,255,255,.8); }
.ct-footer-top { padding:4rem 0 3rem; }
.ct-footer h5 { font-family:var(--cr-font-body);font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--cr-accent);margin-bottom:1.25rem; }
.ct-footer p { font-size:.9rem;opacity:.8; }
.ct-footer ul { list-style:none;padding:0; }
.ct-footer ul li { margin-bottom:.45rem;font-size:.9rem; }
.ct-footer ul li a { color:rgba(255,255,255,.75);text-decoration:none;transition:var(--cr-transition); }
.ct-footer ul li a:hover { color:#fff;padding-left:4px; }
.ct-footer-bottom { border-top:1px solid rgba(255,255,255,.1);padding:1.25rem 0;font-size:.8rem;color:rgba(255,255,255,.55); }
.ct-social a { display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.8);border-radius:50%;text-decoration:none;font-size:.9rem;transition:var(--cr-transition); }
.ct-social a:hover { background:var(--cr-accent);color:#fff; }

/* ============================================================
   SEARCH FORM
   ============================================================ */
.ct-search-form { position:relative; }
.ct-search-form .search-field { padding-right:3rem;border-radius:50px !important;border:2px solid var(--cr-border);background:var(--cr-card-bg);color:var(--cr-text); }
.ct-search-form .search-field:focus { border-color:var(--cr-primary);box-shadow:0 0 0 3px rgba(4,4,98,.1); }
.ct-search-form .search-submit { position:absolute;right:0;top:0;bottom:0;border-radius:0 50px 50px 0 !important;background:var(--cr-primary);border:none;color:#fff;padding:0 1.25rem;cursor:pointer; }

/* ============================================================
   WOOCOMMERCE
   ============================================================ */
.woocommerce .button,.woocommerce button.button,.woocommerce input.button,.woocommerce #place_order { background-color:var(--cr-primary) !important;color:#fff !important;border-radius:var(--cr-radius) !important;font-weight:600 !important;font-family:var(--cr-font-body) !important;transition:var(--cr-transition) !important; }
.woocommerce .button:hover { background-color:var(--cr-primary-dark) !important; }
.woocommerce .button.alt,.woocommerce button.button.alt { background-color:var(--cr-accent) !important; }
.woocommerce .button.alt:hover { background-color:var(--cr-accent-dark) !important; }
.woocommerce .star-rating span::before,.woocommerce p.stars a { color:var(--cr-gold); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color:var(--cr-primary); }
.woocommerce nav.woocommerce-pagination ul li span.current { background:var(--cr-primary); }

/* ============================================================
   GUTENBERG BLOCKS
   ============================================================ */
.entry-content .wp-block-button__link { background-color:var(--cr-primary);border-radius:var(--cr-radius);font-weight:600; }
.entry-content .wp-block-button.is-style-outline .wp-block-button__link { color:var(--cr-primary);border-color:var(--cr-primary);background:transparent; }
.entry-content .wp-block-quote { border-left:5px solid var(--cr-accent);padding:1rem 1.5rem;background:var(--cr-off-white);border-radius:0 var(--cr-radius-lg) var(--cr-radius-lg) 0; }
.entry-content .wp-block-pullquote { border-color:var(--cr-primary); }
.entry-content .wp-block-pullquote cite { color:var(--cr-accent); }
.entry-content .has-primary-color { color:var(--cr-primary); }
.entry-content .has-secondary-color { color:var(--cr-accent); }
.entry-content .has-primary-background-color { background-color:var(--cr-primary); }
.entry-content .has-secondary-background-color { background-color:var(--cr-accent); }
[data-theme="dark"] .entry-content .wp-block-quote { background:var(--cr-light-gray); }

/* ============================================================
   ADMIN BAR OFFSET
   ============================================================ */
.admin-bar .ct-navbar.sticky-top { top:32px; }
@media (max-width:782px) { .admin-bar .ct-navbar.sticky-top { top:46px; } }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:991.98px) {
  .ct-section { padding:var(--cr-section-pad-sm) 0; }
  .ct-hero { padding:5rem 0 4rem; }
  .ct-mega-menu .dropdown-menu { flex-direction:column; }
  .ct-mega-col + .ct-mega-col { border-left:none;border-top:1px solid var(--cr-border);padding-top:1rem;margin-top:.5rem; }
}
@media (max-width:575.98px) {
  .ct-hero { padding:4rem 0 3rem; }
  .ct-sermon-meta-grid { grid-template-columns:1fr 1fr; }
}

/* ============================================================
   PRINT
   ============================================================ */
@media print {
  .ct-topbar,.ct-announcement-bar,.ct-navbar,.ct-footer,.ct-sidebar { display:none !important; }
}
