.cwg-wrap{
    --cwg-navy:#0B2B55;
    --cwg-accent:#C47A12;
    --cwg-bg:#FCFAF6;
    --cwg-card:#FFFDF9;
    --cwg-hero-bg:rgba(252,250,246,1);
    --cwg-hero-card:rgba(255,253,249,1);
    --cwg-shell-bg:rgba(255,253,249,1);
    --cwg-border:#E8DED0;
    --cwg-text:#273444;
    --cwg-muted:#6C7480;
    --cwg-accent-soft:rgba(196,122,18,.06);
    --cwg-accent-border:#DBBA85;
    --cwg-accent-bg:#FFF7EB;
    --cwg-border-soft:#F0E9DF;
    --cwg-border-strong:#D5CEC3;
    --cwg-card-soft:#FEFBF7;
    --cwg-navy-shadow:rgba(11,43,85,.03);
    --cwg-danger:#9D3D38;
    --cwg-danger-soft:#FFF5F3;
    --cwg-danger-border:#E2B3AD;
    width:100%;
    margin:0;
    padding:0;
    color:var(--cwg-text);
}
.cwg-wrap,.cwg-wrap *{box-sizing:border-box}
/*
 * Global typography contract:
 * - Content uses the site Body/H1/H3/H4 cascade (Custom Font Styler compatible).
 * - Do not set local font-size/weight/line-height/letter-spacing on those content rules.
 * - Tabs, badges, buttons and compact UI labels intentionally keep fixed UI sizing.
 */
.cwg-wrap button,.cwg-wrap input,.cwg-wrap select,.cwg-wrap textarea,.cwg-wrap a{font-family:inherit}
.cwg-wrap button,.cwg-wrap a{-webkit-tap-highlight-color:transparent}
/* In normal CFS mode, worship-guide brand colors stay component-owned.
   CFS 강제 적용(!important)을 켜면 사용자의 명시적 선택에 따라 CFS 색상이 우선할 수 있습니다. */
.cwg-wrap .cwg-hero-title,
.cwg-wrap .cwg-row-name,
.cwg-wrap .cwg-event-title{color:var(--cwg-navy)}
.cwg-wrap .cwg-hero-subtitle,
.cwg-wrap .cwg-row-notice,
.cwg-wrap .cwg-row-location,
.cwg-wrap .cwg-visitor-copy p,
.cwg-wrap .cwg-event-meta>div,
.cwg-wrap .cwg-event-description,
.cwg-wrap .cwg-weekly-card p,
.cwg-wrap .cwg-footnote{color:var(--cwg-muted)}
.cwg-wrap .cwg-row-time,
.cwg-wrap .cwg-visitor-title,
.cwg-wrap .cwg-event-time-text,
.cwg-wrap .cwg-weekly-title{color:var(--cwg-text)}
.cwg-shell{
    width:100%;
    margin:0;
    overflow:hidden;
    background:var(--cwg-shell-bg);
}
.cwg-hero{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:122px;
    height:auto;
    padding:12px 16px;
    text-align:center;
    background-image:linear-gradient(180deg,var(--cwg-hero-bg) 0%,var(--cwg-hero-card) 100%);
}
.cwg-hero-kicker{
    margin:0 0 6px;
    color:var(--cwg-accent);
    font-size:12px;
    line-height:1.4;
    font-weight:800;
    letter-spacing:.01em;
}
.cwg-hero-title{
    margin:0;
    color:var(--cwg-navy);
}
.cwg-hero-subtitle{
    margin:6px auto 0;
    max-width:720px;
    color:var(--cwg-muted);
}
.cwg-filter-tabs{
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:minmax(120px,1fr);
    width:min(680px,calc(100% - 48px));
    margin:0 auto;
    overflow-x:auto;
    overflow-y:hidden;
    border:1px solid var(--cwg-border);
    border-bottom-color:var(--cwg-border-strong);
    border-radius:12px 12px 0 0;
    background:var(--cwg-card);
}
.cwg-filter-tabs button{
    position:relative;
    min-height:46px;
    padding:8px 16px;
    border:0;
    border-right:1px solid var(--cwg-border);
    background:transparent;
    color:var(--cwg-text);
    font-size:13px;
    font-weight:700;
    cursor:pointer;
}
.cwg-filter-tabs button:last-child{border-right:0}
.cwg-filter-tabs button::after{
    content:"";
    position:absolute;
    left:18%;right:18%;bottom:-1px;
    height:2px;
    background:transparent;
}
.cwg-filter-tabs button.is-active{color:var(--cwg-navy);background:var(--cwg-accent-bg)}
.cwg-filter-tabs button.is-active::after{background:var(--cwg-accent)}
.cwg-filter-tabs button:focus-visible{outline:2px solid var(--cwg-accent);outline-offset:-3px}
.cwg-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 305px;
    gap:18px;
    align-items:start;
    padding:24px 24px 22px;
    border-top:1px solid var(--cwg-border);
    background:var(--cwg-card);
}
.cwg-layout.cwg-no-sidebar{grid-template-columns:1fr}
.cwg-main-column{min-width:0}
.cwg-schedule{
    overflow:hidden;
    border:1px solid var(--cwg-border);
    border-radius:14px;
    background:var(--cwg-card);
}
.cwg-group{margin:0;border-bottom:1px solid var(--cwg-border)}
.cwg-group:last-child{border-bottom:0}
.cwg-group[hidden]{display:none!important}
.cwg-group-heading{margin:0}
.cwg-group-toggle{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    width:100%;
    min-height:58px;
    padding:14px 20px 8px;
    border:0;
    background:transparent;
    color:var(--cwg-navy);
    font:inherit;
    text-align:left;
    cursor:default;
}
.cwg-group-title-wrap{display:flex;align-items:center;gap:10px;min-width:0}
.cwg-group-accent{width:22px;height:2px;background:var(--cwg-accent);flex:0 0 22px}
.cwg-group-icon{
    display:grid;
    place-items:center;
    width:23px;height:23px;
    color:var(--cwg-navy);
    flex:0 0 23px;
}
.cwg-group-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cwg-group-title{font:inherit}
.cwg-group-chevron{display:none;font-size:18px;line-height:1;transition:transform .18s ease}
.cwg-group-panel{padding:0 18px 6px}
.cwg-group-panel[hidden]{display:none!important}
.cwg-rows{width:100%}
.cwg-row{
    display:grid;
    grid-template-columns:minmax(200px,1.45fr) minmax(80px,.62fr) minmax(105px,.72fr) minmax(95px,.72fr);
    gap:14px;
    align-items:center;
    min-height:52px;
    padding:9px 2px;
    border-top:1px solid var(--cwg-border-soft);
}
.cwg-row:first-child{border-top:1px solid var(--cwg-border)}
.cwg-row.cwg-is-next{background:linear-gradient(90deg,var(--cwg-accent-soft),transparent 55%)}
.cwg-row.cwg-is-cancelled{opacity:.68}
.cwg-row-name-block{min-width:0}
.cwg-row-name-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.cwg-row-name{margin:0;color:var(--cwg-navy)}
.cwg-row-notice{margin-top:3px;color:var(--cwg-muted)}
.cwg-row-location,.cwg-row-time{color:var(--cwg-muted)}
.cwg-row-time{color:var(--cwg-text);font-variant-numeric:tabular-nums;white-space:nowrap}
.cwg-row-online{text-align:right}
.cwg-online-link{
    display:inline-flex;
    align-items:center;
    gap:4px;
    color:var(--cwg-navy);
    font-size:12px;
    line-height:1.4;
    font-weight:750;
    text-decoration:none;
    white-space:nowrap;
}
.cwg-online-link:hover,.cwg-online-link:focus{color:var(--cwg-accent)}
.cwg-badge{
    display:inline-flex;
    align-items:center;
    min-height:20px;
    padding:2px 7px;
    border-radius:6px;
    border:1px solid var(--cwg-accent-border);
    background:var(--cwg-accent-bg);
    color:var(--cwg-accent);
    font-size:10px;
    line-height:1;
    font-weight:800;
    white-space:nowrap;
}
.cwg-badge-next{color:var(--cwg-accent)}
.cwg-badge-cancel{border-color:var(--cwg-danger-border);background:var(--cwg-danger-soft);color:var(--cwg-danger)}
.cwg-visitor-card{
    display:grid;
    grid-template-columns:40px minmax(0,1fr) auto;
    gap:14px;
    align-items:center;
    margin-top:18px;
    padding:15px 18px;
    border:1px solid var(--cwg-border);
    border-radius:13px;
    background:linear-gradient(90deg,var(--cwg-accent-bg),var(--cwg-card));
}
.cwg-visitor-icon{display:grid;place-items:center;width:34px;height:34px;color:var(--cwg-accent)}
.cwg-visitor-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.cwg-visitor-title{margin:0;color:var(--cwg-text)}
.cwg-visitor-copy p{margin:3px 0 0;color:var(--cwg-muted)}
.cwg-visitor-button,
.cwg-event-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    min-height:40px;
    padding:8px 16px;
    border:1px solid var(--cwg-border-strong);
    border-radius:8px;
    background:var(--cwg-card);
    color:var(--cwg-text);
    font-size:12px;
    line-height:1.3;
    font-weight:750;
    text-decoration:none;
    white-space:nowrap;
}
.cwg-visitor-button:hover,.cwg-visitor-button:focus,
.cwg-event-button:hover,.cwg-event-button:focus{border-color:var(--cwg-accent);color:var(--cwg-accent)}
.cwg-visitor-button.is-disabled,.cwg-event-button.is-disabled{opacity:.6;cursor:default}
.cwg-sidebar{display:grid;gap:16px;min-width:0}
.cwg-event-card,.cwg-weekly-card{
    overflow:hidden;
    border:1px solid var(--cwg-border);
    border-radius:13px;
    background:linear-gradient(180deg,var(--cwg-card),var(--cwg-card-soft));
    box-shadow:0 8px 24px var(--cwg-navy-shadow);
}
.cwg-event-card{padding:17px 16px 15px}
.cwg-card-label{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:12px;
    color:var(--cwg-text);
    font-size:.875rem;
    line-height:1.3;
    font-weight:800;
}
.cwg-card-label>span{width:20px;height:2px;background:var(--cwg-accent);flex:0 0 20px}
.cwg-card-label em{margin-left:auto;color:var(--cwg-accent);font-size:10px;font-style:normal;font-weight:800}
.cwg-event-image{
    height:180px;
    margin-bottom:13px;
    overflow:hidden;
    border-radius:8px;
    background:var(--cwg-bg);
    display:flex;
    align-items:center;
    justify-content:center;
}
.cwg-event-image img{display:block;width:100%;height:100%;object-fit:contain}
.cwg-event-title{margin:0;color:var(--cwg-navy)}
.cwg-event-title>span{display:block;font:inherit}
.cwg-event-title-short{font-size:1em}
.cwg-event-title-medium{font-size:.9em}
.cwg-event-title-long{font-size:.8em}
.cwg-event-subtitle{margin:6px 0 0;color:var(--cwg-muted)}
.cwg-event-meta{display:grid;gap:7px;margin-top:13px}
.cwg-event-meta>div{display:flex;align-items:center;gap:7px;color:var(--cwg-muted)}
.cwg-event-meta svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cwg-event-description{margin:13px 0 0;color:var(--cwg-muted)}
.cwg-event-time-text{margin:7px 0 0;color:var(--cwg-text)}
.cwg-event-action{margin-top:15px}
.cwg-event-button{display:flex;width:100%;min-height:42px}
.cwg-weekly-card{padding:16px;text-align:center}
.cwg-weekly-card .cwg-card-label{justify-content:flex-start;text-align:left;margin-bottom:8px}
.cwg-weekly-dday{margin:5px 0 6px;color:var(--cwg-navy);font-size:2.2rem;line-height:1;font-weight:700;letter-spacing:-.04em}
.cwg-weekly-title{display:block;margin:0;color:var(--cwg-text)}
.cwg-weekly-card p{margin:4px 0 0;color:var(--cwg-muted)}
.cwg-weekly-card a{display:inline-flex;align-items:center;gap:16px;margin-top:12px;color:var(--cwg-navy);font-size:12px;font-weight:750;text-decoration:none}
.cwg-weekly-card a:hover,.cwg-weekly-card a:focus{color:var(--cwg-accent)}
.cwg-footnote{margin:0;padding:0 24px 22px;background:var(--cwg-card);color:var(--cwg-muted);text-align:center}
@media(max-width:980px){
    .cwg-layout{grid-template-columns:1fr;padding:20px}
    .cwg-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}
    .cwg-event-image{height:160px}
}
@media(max-width:700px){
    .cwg-hero{min-height:102px;height:auto;padding:10px 16px}
    .cwg-hero-kicker{display:none}
    .cwg-hero-subtitle{max-width:290px;margin-top:7px}
    .cwg-filter-tabs{grid-auto-columns:minmax(76px,1fr);width:calc(100% - 20px);border-radius:8px;margin-bottom:0}
    .cwg-filter-tabs button{min-height:38px;padding:6px 5px;font-size:.6875rem}
    .cwg-filter-tabs button::after{left:22%;right:22%}
    .cwg-layout{padding:14px 10px 16px;gap:12px}
    .cwg-schedule{overflow:visible;border:0;border-radius:0;background:transparent}
    .cwg-group{margin-bottom:8px;border:1px solid var(--cwg-border);border-radius:9px;background:var(--cwg-card);overflow:hidden}
    .cwg-group:last-child{border-bottom:1px solid var(--cwg-border);margin-bottom:0}
    .cwg-group-toggle{min-height:48px;padding:10px 12px;cursor:pointer}
    .cwg-group-title-wrap{gap:8px}
    .cwg-group-accent{display:none}
    .cwg-group-icon{width:20px;height:20px;flex-basis:20px}
    .cwg-group-chevron{display:inline-block}
    .cwg-group-toggle[aria-expanded="true"] .cwg-group-chevron{transform:rotate(180deg)}
    .cwg-group-panel{padding:0 10px 4px;overflow:hidden}
    .cwg-group.is-collapsed .cwg-group-panel{display:none}
    .cwg-row{
        grid-template-columns:minmax(0,1fr) auto;
        grid-template-areas:"name time" "location online";
        gap:4px 10px;
        min-height:56px;
        padding:9px 2px;
    }
    .cwg-row-name-block{grid-area:name}
    .cwg-row-location{grid-area:location}
    .cwg-row-time{grid-area:time;text-align:right}
    .cwg-row-online{grid-area:online;text-align:right}
    .cwg-online-link{font-size:.6875rem}
    .cwg-badge{min-height:18px;padding:2px 5px;font-size:9px;border-radius:5px}
    .cwg-visitor-card{grid-template-columns:32px minmax(0,1fr);gap:10px;margin-top:10px;padding:12px;border-radius:9px}
    .cwg-visitor-icon{width:28px;height:28px}
    .cwg-visitor-button{grid-column:1/-1;width:100%;min-height:38px;margin-top:2px;font-size:.6875rem}
    .cwg-sidebar{grid-template-columns:1fr;gap:10px}
    .cwg-event-card{position:relative;padding:13px 12px 12px;min-height:174px}
    .cwg-card-label{margin-bottom:10px;font-size:.8125rem}
    .cwg-card-label>span{width:16px;flex-basis:16px}
    .cwg-event-image{position:absolute;right:12px;top:43px;width:116px;height:84px;margin:0;border-radius:6px}
    .cwg-event-card h3{max-width:calc(100% - 128px)}
    .cwg-event-subtitle{max-width:calc(100% - 128px);margin-top:4px}
    .cwg-event-meta{max-width:calc(100% - 128px);gap:4px;margin-top:8px}
    .cwg-event-meta svg{width:13px;height:13px}
    .cwg-event-description{display:none}
    .cwg-event-time-text{max-width:calc(100% - 128px)}
    .cwg-event-action{margin-top:14px}
    .cwg-event-button{min-height:38px;font-size:.6875rem}
    .cwg-weekly-card{padding:12px;text-align:left}
    .cwg-weekly-card .cwg-card-label{margin-bottom:2px}
    .cwg-weekly-dday{float:right;margin:-26px 0 0 12px;font-size:1.75rem}
    .cwg-weekly-title{margin-top:10px}
    .cwg-weekly-card a{margin-top:8px;font-size:.6875rem}
    .cwg-footnote{padding:0 14px 16px}
}
@media(prefers-reduced-motion:reduce){
    .cwg-group-chevron{transition:none}
}
.cwg-tab-mobile{display:none}
@media(max-width:700px){
    .cwg-tab-desktop{display:none}
    .cwg-tab-mobile{display:inline}
}
