/*
Theme Name:   CampHumphreys Child
Theme URI:    https://camphumphreys.com
Description:  Divi child theme for CampHumphreys.com — local guide and business directory for the USAG Humphreys community, Pyeongtaek, Korea.
Author:       Darkmode Digital
Author URI:   https://darkmode.digital
Template:     Divi
Version:      1.0.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  camphumphreys-child
*/

/* ============================================================
   CampHumphreys.com — site styles
   Everything below powers the imported Divi layouts.
   Edit here instead of Divi → Theme Options → Custom CSS.
   ============================================================ */

:root{
  --ch-paper:#FAF7F1; --ch-ink:#101C33; --ch-red:#C8323E;
  --ch-blue:#1A4FA0; --ch-sand:#EDE7DA; --ch-soft:rgba(16,28,51,.62);
}

body, .et_pb_text, .et_pb_module p{ font-family:'IBM Plex Sans','IBM Plex Sans KR',sans-serif; }
.ch-display, .ch-display h1, .ch-display h2, .ch-display h3,
.et_pb_text h1, .et_pb_text h2, .et_pb_text h3{
  font-family:'Bricolage Grotesque','IBM Plex Sans KR',sans-serif !important;
  font-weight:800; letter-spacing:-.01em; color:var(--ch-ink);
}
.ch-kr{ font-family:'IBM Plex Sans KR',sans-serif !important; }
.et_pb_text h2{ font-size:32px; line-height:1.15; }
.et_pb_text h3{ font-size:19px; line-height:1.3; }

/* Utility bar */
.ch-utility p{ margin:0; letter-spacing:.06em; }

/* Shared bits */
.ch-sub{ font-size:13px; color:var(--ch-soft); margin-top:6px !important; }
.ch-intro{ font-size:15px; color:var(--ch-soft); max-width:620px; margin-top:10px !important; }
.ch-eyebrow{ font-size:11px; font-weight:700; letter-spacing:.1em; margin-bottom:8px !important; }
.ch-blurb{ font-size:13.5px; line-height:1.55; color:var(--ch-soft); }
.ch-muted{ color:var(--ch-soft); }
.ch-dist{ font-size:12.5px; font-weight:600; color:var(--ch-blue); }
.ch-more{ font-size:13px; font-weight:600; margin-top:10px !important; }
.ch-fine{ font-size:12px; color:var(--ch-soft); }
.ch-crumb{ font-size:13px; color:var(--ch-soft); }
.ch-crumb a{ color:var(--ch-blue); font-weight:500; text-decoration:none; }

.ch-tag{ display:inline-block; font-size:11px; font-weight:600; letter-spacing:.04em;
  background:var(--ch-sand); border-radius:4px; padding:4px 8px; margin:0 4px 4px 0; }
.ch-tag a{ color:var(--ch-ink); text-decoration:none; }
.ch-ad{ font-size:10px; font-weight:600; letter-spacing:.12em; color:var(--ch-soft);
  border:1px solid rgba(16,28,51,.25); border-radius:3px; padding:2px 6px; }
.ch-kchip{ display:inline-block; font-size:13px; font-weight:700; background:var(--ch-sand);
  border-radius:5px; padding:4px 9px; margin-bottom:12px; }

/* Card hover lift */
.ch-card{ transition:transform .14s ease, box-shadow .14s ease; }
.ch-card:hover{ transform:translateY(-4px); box-shadow:0 10px 24px rgba(16,28,51,.10); }

/* Featured business cards */
.ch-bizcard .ch-thumb{ height:130px; display:flex; align-items:center; justify-content:center;
  border-radius:12px 12px 0 0; }
.ch-bizcard .ch-thumb span{ color:rgba(255,255,255,.9); font-size:34px; font-weight:700; }
.ch-bizcard .ch-cardbody{ padding:18px; }
.ch-bizcard h3{ font-size:19px; margin-bottom:8px; }

/* ---------- Category cards (translucent tiles) ---------- */
.ch-catcard{ position:relative; overflow:hidden; border-radius:14px; min-height:400px;
  background-size:cover !important; background-position:center !important; }
.ch-catcard::before{ content:""; position:absolute; inset:0; opacity:.55; transition:opacity .18s ease; }
.ch-catcard:hover::before{ opacity:.38; }
.ch-cat-blue::before{ background:var(--ch-blue); }
.ch-cat-red::before{ background:var(--ch-red); }
.ch-catcard .ch-catinner{ position:relative; z-index:2; height:100%; }

.ch-chip{ position:absolute; top:12px; right:12px; font-size:14px; font-weight:700;
  background:rgba(16,28,51,.45); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.22); border-radius:7px; padding:5px 10px; color:#fff; }
.ch-panel{ position:absolute; left:12px; right:12px; bottom:12px; display:block;
  background:rgba(16,28,51,.42); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.22); border-radius:10px; padding:16px; color:#fff;
  transition:transform .18s ease; }
.ch-catcard:hover .ch-panel{ transform:translateY(-4px); }
.ch-panel-title{ display:block; font-size:20px; font-weight:800; line-height:1.2; margin-bottom:6px; color:#fff; }
.ch-panel-note{ display:block; font-size:12.5px; opacity:.85; margin-bottom:10px; }
.ch-panel-meta{ display:flex; justify-content:space-between; font-size:12.5px; font-weight:600; }
.ch-arrow{ font-size:20px; font-weight:800; }

/* Info tiles */
.ch-infotile h3{ margin-bottom:8px; }

/* How-to steps */
.ch-steps{ list-style:none; padding:0; margin:0 0 8px; }
.ch-steps li{ display:flex; gap:10px; font-size:13.5px; line-height:1.5;
  color:var(--ch-soft); margin-bottom:8px; }
.ch-steps li span{ font-weight:800; font-size:13px; min-width:16px; }

/* Coupons */
.ch-coupon{ background:#fff !important; border:2px dashed rgba(16,28,51,.35) !important; border-radius:12px !important; }
.ch-offer{ font-size:22px; font-weight:800; line-height:1.2; margin-bottom:14px !important; }
.ch-code{ display:inline-block; background:var(--ch-ink); color:var(--ch-paper);
  font-weight:600; font-size:14px; letter-spacing:.14em; border-radius:5px; padding:8px 14px; }

/* Newsletter divider */
.ch-divider-left{ border-left:2px solid rgba(250,247,241,.18); padding-left:40px !important; }

/* ---------- Listing page ---------- */
.ch-stars{ color:var(--ch-red); letter-spacing:2px; }
.ch-rating{ font-size:14px; }
.ch-hours{ width:100%; border-collapse:collapse; margin-top:10px; }
.ch-hours td{ padding:5px 0; font-size:13.5px; border-bottom:1px solid rgba(16,28,51,.08); }
.ch-hours td:last-child{ text-align:right; color:var(--ch-soft); }
.ch-menu{ padding-left:18px; font-size:14px; color:var(--ch-soft); }
.ch-menu li{ margin-bottom:6px; }
.ch-mapbox{ height:150px; background:linear-gradient(135deg,var(--ch-blue) 0%,var(--ch-ink) 150%);
  border-radius:10px; display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.85); font-size:13px; margin-bottom:18px; text-align:center; padding:10px; }
.ch-reviews .comment-reply-title{ font-family:'Bricolage Grotesque',sans-serif; font-weight:800; }

@media (min-width:981px){ .ch-sticky{ position:sticky; top:92px; align-self:flex-start; } }

/* ---------- Buttons ---------- */
.ch-btn-primary.et_pb_button{ background:var(--ch-ink) !important; color:var(--ch-paper) !important;
  border:2px solid var(--ch-ink) !important; border-radius:6px !important; }
.ch-btn-primary.et_pb_button:hover{ box-shadow:0 4px 0 var(--ch-red); transform:translateY(-1px); }
.ch-btn-ghost.et_pb_button{ background:transparent !important; color:var(--ch-ink) !important;
  border:2px solid var(--ch-ink) !important; border-radius:6px !important; }
.ch-btn-ghost.et_pb_button:hover{ background:var(--ch-sand) !important; }

/* ---------- Mobile ---------- */
@media (max-width:980px){
  .ch-catcard{ min-height:300px; }
  .ch-divider-left{ border-left:none; padding-left:0 !important; }
  .et_pb_text h2{ font-size:26px; }
}

/* ---------- Accessibility ---------- */
@media (prefers-reduced-motion: reduce){
  .ch-card, .ch-catcard, .ch-panel, .et_pb_button{ transition:none !important; }
  .ch-card:hover, .ch-catcard:hover .ch-panel{ transform:none !important; }
}
