/* ==========================================================================
   Calvary Baptist Church — Design System (Divi Custom CSS)
   Brand: royal blue + deep red (from logo) · classic serif headings
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700;800&family=Source+Sans+3:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');

:root{
  --cbc-blue:#22429B;      /* primary royal blue (logo) */
  --cbc-navy:#173163;      /* deep navy: nav text, dark bands */
  --cbc-navy-dk:#0E2247;   /* footer base / hovers */
  --cbc-red:#96202A;       /* deep red CTA (logo bible) */
  --cbc-red-dk:#7A1720;
  --cbc-gold:#C9A24B;      /* warm accent for eyebrows/rules */
  --cbc-parch:#F5F1E8;     /* warm parchment band */
  --cbc-cream:#FBF9F4;
  --cbc-gray:#F3F4F6;
  --cbc-text:#20242B;
  --cbc-muted:#5B6470;
  --cbc-line:#E7E3D8;
}

/* ---------- Typography ---------- */
body, .et_pb_text, p, li, .et_pb_module, input, textarea, select, button,
.et_pb_bg_layout_light .et_pb_text, .et_pb_slide_description, .et_pb_blurb_description,
#main-footer, #et-footer-nav, .et_pb_toggle_content{
  font-family:'Source Sans 3','Helvetica Neue',Arial,sans-serif;
}
body{ color:var(--cbc-text); font-size:17px; line-height:1.7; -webkit-font-smoothing:antialiased; }
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,
.et_pb_module_header, .et_pb_slide_title, .et_pb_promo_title, .et_pb_toggle_title,
.et_pb_accordion .et_pb_toggle_title, .et_pb_blurb_container h4{
  font-family:'Playfair Display',Georgia,'Times New Roman',serif;
  color:var(--cbc-navy); font-weight:700; line-height:1.18; letter-spacing:.2px;
}
h1{ font-size:clamp(34px,5vw,58px); }
h2{ font-size:clamp(28px,3.6vw,40px); }
h3{ font-size:clamp(21px,2.4vw,27px); }
h4{ font-size:20px; }
p{ margin-bottom:1.1em; }
a{ color:var(--cbc-blue); }
a:hover{ color:var(--cbc-red); }
.et_pb_text_inner ul li{ margin-bottom:.45em; }

/* Eyebrow label: small-caps gold kicker above headings */
.cbc-eyebrow, .cbc-eyebrow p{
  font-family:'Source Sans 3',sans-serif !important;
  text-transform:uppercase; letter-spacing:.18em; font-weight:700;
  font-size:14px !important; color:var(--cbc-gold) !important; margin:0 0 10px !important; line-height:1.4;
}
.cbc-eyebrow.light, .cbc-eyebrow.light p{ color:var(--cbc-gold) !important; }
/* section heading underline flourish */
.cbc-rule .et_pb_text_inner:after, .cbc-rule:after{
  content:""; display:block; width:64px; height:3px; background:var(--cbc-gold); margin:18px 0 0; border-radius:2px;
}
.cbc-rule.center .et_pb_text_inner:after{ margin-left:auto; margin-right:auto; }

/* ---------- Buttons ---------- */
.et_pb_button, a.et_pb_button{
  font-family:'Source Sans 3',sans-serif !important;
  text-transform:uppercase !important; letter-spacing:.09em !important; font-weight:700 !important;
  font-size:14px !important; padding:15px 34px !important; border-radius:4px !important;
  border:2px solid var(--cbc-red) !important; background:var(--cbc-red) !important; color:#fff !important;
  transition:all .25s ease !important;
}
.et_pb_button:after, .et_pb_button:before{ display:none !important; }
/* inline button rows (raw anchors from code modules) */
.cbc-btns{ line-height:1.2; }
.cbc-btns a.et_pb_button{ display:inline-block; margin:8px 6px; vertical-align:top; }
@media (max-width:767px){
  .cbc-btns a.et_pb_button{ display:block; margin:10px auto; max-width:340px; }
}
.et_pb_button:hover{ background:var(--cbc-red-dk) !important; border-color:var(--cbc-red-dk) !important; color:#fff !important; padding:15px 34px !important; }
/* Outline (on dark/photo) — add class .cbc-btn-ghost */
.cbc-btn-ghost.et_pb_button{ background:transparent !important; border-color:#fff !important; color:#fff !important; }
.cbc-btn-ghost.et_pb_button:hover{ background:#fff !important; color:var(--cbc-navy) !important; border-color:#fff !important; }
/* Navy solid — .cbc-btn-navy */
.cbc-btn-navy.et_pb_button{ background:var(--cbc-blue) !important; border-color:var(--cbc-blue) !important; }
.cbc-btn-navy.et_pb_button:hover{ background:var(--cbc-navy) !important; border-color:var(--cbc-navy) !important; }
/* Gold — .cbc-btn-gold */
.cbc-btn-gold.et_pb_button{ background:var(--cbc-gold) !important; border-color:var(--cbc-gold) !important; color:var(--cbc-navy) !important; }
.cbc-btn-gold.et_pb_button:hover{ background:#b4892f !important; border-color:#b4892f !important; color:#fff !important; }

/* ---------- Cards (apply .cbc-card to a column) ---------- */
.cbc-card{
  background:#fff !important; border-radius:8px !important;
  box-shadow:0 6px 20px rgba(20,30,50,.09) !important; padding:34px 30px !important;
  transition:transform .25s ease, box-shadow .25s ease; height:100%;
  border:1px solid var(--cbc-line);
}
.cbc-card:hover{ transform:translateY(-5px); box-shadow:0 14px 34px rgba(20,30,50,.15) !important; }
.cbc-card h3,.cbc-card h4{ margin-top:6px; }
.cbc-card .et_pb_blurb_content{ max-width:none; }
/* icon circle in blurbs */
.cbc-card .et_pb_main_blurb_image .et-pb-icon,
.cbc-icon .et_pb_main_blurb_image .et-pb-icon{ color:var(--cbc-red) !important; }
/* Ensure blurb icons are always visible (Divi waypoint animation can leave them hidden) */
.et_pb_blurb .et-pb-icon{ opacity:1 !important; transform:none !important; font-size:48px; }
.et_pb_blurb .et_pb_main_blurb_image{ margin-bottom:14px; }

/* ---------- Section rhythm ---------- */
.cbc-band{ padding-top:86px !important; padding-bottom:86px !important; }
.cbc-parch{ background-color:var(--cbc-parch) !important; }
.cbc-cream{ background-color:var(--cbc-cream) !important; }
.cbc-navybg{ background-color:var(--cbc-navy) !important; }
.cbc-bluebg{ background-color:var(--cbc-blue) !important; }
.cbc-navybg h1,.cbc-navybg h2,.cbc-navybg h3,.cbc-navybg h4,.cbc-navybg p,.cbc-navybg li,
.cbc-bluebg h1,.cbc-bluebg h2,.cbc-bluebg h3,.cbc-bluebg h4,.cbc-bluebg p,.cbc-bluebg li{ color:#fff !important; }

/* ---------- Hero ---------- */
.cbc-hero .et_pb_text_inner h1{ color:#fff; text-shadow:0 2px 18px rgba(0,0,0,.35); }
.cbc-hero-sub p{ color:#f4f6fb !important; font-size:19px; text-shadow:0 1px 10px rgba(0,0,0,.4); }
.cbc-servicebar p{ color:#fff !important; font-weight:600; letter-spacing:.04em; }

/* ---------- Header (Theme Builder) ---------- */
.et-l--header{ position:sticky; top:0; z-index:99999; background:#fff;
  box-shadow:0 2px 14px rgba(16,30,60,.08); }
.et-l--header .et_pb_section{ padding-top:0 !important; padding-bottom:0 !important; background:#fff; }
.et-l--header .et_pb_menu{ background:transparent !important; }
.et-l--header .et_pb_row{ padding-top:10px !important; padding-bottom:10px !important; }
/* Plan-a-visit CTA menu item as a red button */
.et-l--header .et_pb_menu ul li.cbc-nav-cta{ margin-left:14px; }
.et-l--header .et_pb_menu ul li.cbc-nav-cta > a{
  background:var(--cbc-red) !important; color:#fff !important; border-radius:4px;
  padding:11px 22px !important; text-transform:uppercase; letter-spacing:.06em; font-size:13.5px !important;
  font-weight:700 !important; opacity:1 !important; }
.et-l--header .et_pb_menu ul li.cbc-nav-cta > a:hover{ background:var(--cbc-red-dk) !important; color:#fff !important; }
/* dropdown styling */
.et-l--header .et_pb_menu ul li ul.sub-menu{ border-top:3px solid var(--cbc-red) !important; }

#page-container .et-l--header .et_pb_menu .et_pb_menu__logo img,
.et-l--header img.cbc-logo{ max-height:66px; width:auto; }
.et-l--header .et_pb_menu ul li a,
.et-l--header .et_pb_menu__menu>nav>ul>li>a{ color:var(--cbc-navy) !important; font-weight:600 !important; font-size:15.5px !important; letter-spacing:.02em; }
.et-l--header .et_pb_menu ul li a:hover{ color:var(--cbc-red) !important; }

/* ---------- Footer ---------- */
.et-l--footer, .cbc-footer{ background:var(--cbc-navy-dk); }
.cbc-footer h4{ color:#fff !important; font-size:19px; margin-bottom:16px; }
.cbc-footer, .cbc-footer p, .cbc-footer li, .cbc-footer a{ color:#cdd6e6 !important; font-size:15.5px; }
.cbc-footer a:hover{ color:var(--cbc-gold) !important; }
.cbc-footer .et_pb_text ul{ list-style:none; padding:0; margin:0; }
.cbc-footer .et_pb_text ul li{ margin-bottom:9px; }
.cbc-footbar, .cbc-footbar p{ color:#9fb0c9 !important; font-size:13.5px; }

/* ---------- Utility ---------- */
.cbc-shadow-img .et_pb_image_wrap img, img.cbc-round{ border-radius:10px; box-shadow:0 10px 30px rgba(20,30,50,.16); }
.cbc-quote .et_pb_text_inner{ font-family:'Playfair Display',serif; font-style:italic; font-size:22px; color:var(--cbc-navy); border-left:4px solid var(--cbc-gold); padding-left:22px; }

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .cbc-band{ padding-top:60px !important; padding-bottom:60px !important; }
  body{ font-size:16px; }
}
@media (max-width:767px){
  .cbc-band{ padding-top:46px !important; padding-bottom:46px !important; }
  .cbc-card{ padding:26px 22px !important; }
  h1{ font-size:32px; } h2{ font-size:26px; }
  .et_pb_button, a.et_pb_button{ padding:13px 26px !important; }
}
