:root{
  /* Primary brand */
  --brand-primary:#B33133;    /* CCWC maroon */
  --brand-primary-600:#7B221D;
  --brand-primary-700:#5F1B16;

  /* Accents (use sparingly; dark text on golds) */
  --brand-accent-gold:#F0C28E;        /* dark text */
  --brand-accent-gold-deep:#F0AA61;   /* dark text */
  --brand-accent-orange:#DB622D;      /* white text OK */

  /* Neutrals */
  --brand-bg:#FFFFFF;
  --brand-surface:#F3EDE8;   /* off-white surface */
  --brand-text:#111111;
  --brand-muted:#6B7280;
}

/* Base text and backgrounds */
html,body{background:var(--brand-bg); color:var(--brand-text);}

/* Links */
a,.link{color:var(--brand-primary); text-decoration-color:rgba(0,0,0,.1);}
a:hover,a:focus{color:var(--brand-primary-700);}

/* Buttons (generic names + Crafto-ish helpers) */
.btn-primary,.button-primary,.ccwc-btn-primary{
  background:var(--brand-primary); color:#fff; border:1px solid var(--brand-primary);
}
.btn-primary:hover,.button-primary:hover,.ccwc-btn-primary:hover{
  background:var(--brand-primary-700); border-color:var(--brand-primary-700);
}
.btn-outline-primary,.ccwc-btn-outline{
  color:var(--brand-primary); background:transparent; border:1px solid var(--brand-primary);
}
.btn-outline-primary:hover,.ccwc-btn-outline:hover{
  color:#fff; background:var(--brand-primary); border-color:var(--brand-primary);
}

/* Badges / chips */
.ccwc-badge{display:inline-block; padding:.25rem .5rem; border-radius:999px; font-size:.8125rem;}
.ccwc-badge--gold{background:var(--brand-accent-gold); color:#111;}
.ccwc-badge--orange{background:var(--brand-accent-orange); color:#fff;}

/* Surfaces & helpers */
.bg-surface{background:var(--brand-surface);}
.text-primary{color:var(--brand-primary)!important;}
.bg-primary{background:var(--brand-primary)!important; color:#fff;}
.text-muted{color:var(--brand-muted)!important;}

/* Form focus ring (subtle maroon) */
input:focus,select:focus,textarea:focus{
  outline:2px solid rgba(179,49,51,.3);
  outline-offset:2px;
}

/* Simple brand mark spacing */
.ccwc-brand{font-size:1.125rem; letter-spacing:.02em; margin-right:1rem;}

/* ===== CCWC UI helpers ===== */
.ccwc-hero{position:relative; overflow:hidden;}
.ccwc-hero .ccwc-hero-img{position:absolute; inset:0; object-fit:cover; width:100%; height:100%; opacity:.15;}
.ccwc-hero .ccwc-hero-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,0));}
.ccwc-hero .ccwc-hero-body{position:relative;}

.ccwc-card{background:var(--brand-surface); border-radius:12px; padding:1.25rem; border:1px solid rgba(0,0,0,.06);}
.ccwc-card h2,.ccwc-card h3{margin-top:0;}

.ccwc-logo-wall{display:flex; flex-wrap:wrap; gap:16px; align-items:center;}
.ccwc-logo-wall img{height:36px; object-fit:contain; filter:grayscale(100%); opacity:.9;}
.ccwc-logo-wall img:hover{filter:none; opacity:1;}

/* ===== CCWC UI helpers ===== */
.ccwc-hero{position:relative; overflow:hidden;}
.ccwc-hero .ccwc-hero-img{position:absolute; inset:0; object-fit:cover; width:100%; height:100%; opacity:.15;}
.ccwc-hero .ccwc-hero-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,0));}
.ccwc-hero .ccwc-hero-body{position:relative;}

.ccwc-card{background:var(--brand-surface); border-radius:12px; padding:1.25rem; border:1px solid rgba(0,0,0,.06);}
.ccwc-card h2,.ccwc-card h3{margin-top:0;}

.ccwc-logo-wall{display:flex; flex-wrap:wrap; gap:16px; align-items:center;}
.ccwc-logo-wall img{height:36px; object-fit:contain; filter:grayscale(100%); opacity:.9;}
.ccwc-logo-wall img:hover{filter:none; opacity:1;}

/* Prose typography for content pages */
.prose h1,.prose h2,.prose h3{margin-top:1.25rem;}
.prose h1{font-size:2rem;} .prose h2{font-size:1.5rem;} .prose h3{font-size:1.25rem;}
.prose p{line-height:1.7; margin:0 0 1rem;}
.prose ul{padding-left:1.25rem; margin:0 0 1rem;}
.prose li{margin:0.25rem 0;}
.prose a{color:var(--brand-primary); text-decoration:underline;}

/* ===== CCWC Sessions UI v1 ===== */
.ccwc-session-card{background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:14px; padding:1rem; height:100%; box-shadow:0 1px 2px rgba(0,0,0,.04);}
.ccwc-session-meta{display:flex; justify-content:space-between; align-items:center; margin-bottom:.375rem;}
.ccwc-chip{display:inline-block; padding:.25rem .5rem; border-radius:999px; background:var(--brand-surface); color:#111; font-size:.8125rem; border:1px solid rgba(0,0,0,.06);}
.ccwc-session-title a{text-decoration:none;}
.ccwc-session-title a:hover{text-decoration:underline;}

/* ===== CCWC Session Detail UI v1 ===== */
.ccwc-session-hero{background:var(--brand-surface); border-radius:14px; padding:1.25rem; border:1px solid rgba(0,0,0,.06);}
.ccwc-meta{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:.25rem 0 .75rem;}
.ccwc-meta .chip{background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:999px; padding:.25rem .5rem; font-size:.8125rem;}
.ccwc-sidebar{background:var(--brand-surface); border-radius:14px; padding:1.25rem; border:1px solid rgba(0,0,0,.06);}
.ccwc-sticky{position:sticky; top:24px;}
.ccwc-list-clean{list-style:none; padding-left:0; margin:0;}
.ccwc-list-clean li{margin:.25rem 0;}

/* ===== CCWC Sessions UI v1 ===== */
.ccwc-session-card{background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:14px; padding:1rem; height:100%; box-shadow:0 1px 2px rgba(0,0,0,.04);}
.ccwc-session-meta{display:flex; justify-content:space-between; align-items:center; margin-bottom:.375rem;}
.ccwc-chip{display:inline-block; padding:.25rem .5rem; border-radius:999px; background:var(--brand-surface); color:#111; font-size:.8125rem; border:1px solid rgba(0,0,0,.06);}
.ccwc-session-title a{text-decoration:none;}
.ccwc-session-title a:hover{text-decoration:underline;}

/* ===== CCWC Session Detail UI v1 ===== */
.ccwc-session-hero{background:var(--brand-surface); border-radius:14px; padding:1.25rem; border:1px solid rgba(0,0,0,.06);}
.ccwc-meta{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:.25rem 0 .75rem;}
.ccwc-meta .chip{background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:999px; padding:.25rem .5rem; font-size:.8125rem;}
.ccwc-sidebar{background:var(--brand-surface); border-radius:14px; padding:1.25rem; border:1px solid rgba(0,0,0,.06);}
.ccwc-sticky{position:sticky; top:24px;}
.ccwc-list-clean{list-style:none; padding-left:0; margin:0;}
.ccwc-list-clean li{margin:.25rem 0;}

/* ===== CCWC Agenda Timeline v1 ===== */
.ccwc-timeline{position:relative; padding-left:1.25rem;}
.ccwc-timeline::before{content:""; position:absolute; left:.5rem; top:.25rem; bottom:.25rem; width:2px; background:rgba(0,0,0,.08);}
.ccwc-slot{position:relative; margin-bottom:1rem; padding-left:.75rem;}
.ccwc-slot::before{content:""; position:absolute; left:-.95rem; top:.4rem; width:.6rem; height:.6rem; border-radius:999px; background:var(--brand-primary);}
.ccwc-slot-card{background:var(--brand-surface); border:1px solid rgba(0,0,0,.06); border-radius:12px; padding:1rem;}

/* ===== CCWC Speakers UI v1 ===== */
.ccwc-speaker-card{background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:14px; padding:1rem; text-align:center; height:100%; box-shadow:0 1px 2px rgba(0,0,0,.04);}
.ccwc-speaker-card img{width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:12px;}
.ccwc-speaker-card .name{margin:.75rem 0 .25rem;}
.ccwc-speaker-card .meta{color:var(--brand-muted); font-size:.95rem;}

.ccwc-speaker-hero{display:flex; gap:24px; align-items:flex-start;}
@media (max-width: 991px){ .ccwc-speaker-hero{flex-direction:column;} }
.ccwc-speaker-photo{width:280px; max-width:100%;}
.ccwc-speaker-photo img{width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:14px; border:1px solid rgba(0,0,0,.06);}

/* ===== CCWC Sponsors UI v1 ===== */
.ccwc-sponsor-grid{display:grid; grid-template-columns:repeat(12,1fr); gap:16px;}
@media (max-width: 1199px){ .ccwc-sponsor-grid{grid-template-columns:repeat(8,1fr);} }
@media (max-width: 767px){ .ccwc-sponsor-grid{grid-template-columns:repeat(4,1fr);} }
.ccwc-sponsor-logo-card{display:block; background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:12px; padding:12px; text-align:center; height:100%;}
.ccwc-sponsor-logo-card img{max-width:100%; height:40px; object-fit:contain; filter:grayscale(100%); opacity:.9;}
.ccwc-sponsor-logo-card:hover img{filter:none; opacity:1;}
.ccwc-sponsor-hero{display:flex; gap:24px; align-items:flex-start;}
@media (max-width: 991px){ .ccwc-sponsor-hero{flex-direction:column;} }
.ccwc-sponsor-logo{background:var(--brand-surface); border:1px solid rgba(0,0,0,.06); border-radius:12px; padding:24px; text-align:center;}
.ccwc-sponsor-logo img{max-width:100%; height:60px; object-fit:contain;}

/* ===== CCWC Announcements UI v1 ===== */
.ccwc-announce-card{background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:12px; padding:1rem;}
.ccwc-announce-card.pinned{border-left:4px solid var(--brand-primary);}
.ccwc-announce-meta{color:var(--brand-muted); font-size:.9rem;}

/* ===== CCWC Footer UI v1 ===== */
.ccwc-footer{background:var(--brand-surface); border-top:1px solid rgba(0,0,0,.06); margin-top:3rem;}
.ccwc-footer a{text-decoration:none;}
.ccwc-footer a:hover{text-decoration:underline;}

/* ===== CCWC Devbar UI v1 ===== */
.ccwc-devbar{background:#111; color:#fff; padding:.4rem 0; font-size:.9rem;}
.ccwc-devbar a{color:#fff; text-decoration:none;}
.ccwc-devbar a:hover{text-decoration:underline;}

/* ===== CCWC Sessions UI v2 ===== */
.ccwc-session-thumb{width:100%; aspect-ratio:16/9; border-radius:10px; object-fit:cover; background:#f3f3f3; margin-bottom:.75rem;}
.ccwc-session-meta .time{background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:999px; padding:.25rem .5rem; font-size:.8125rem;}

/* ===== CCWC Session Detail UI v2 ===== */
.ccwc-session-banner{width:100%; aspect-ratio:21/9; object-fit:cover; border-radius:12px; margin-bottom:1rem; background:#f3f3f3;}
.ccwc-action-group .btn{width:100%;}
@media (min-width: 480px){ .ccwc-action-group .btn{width:auto;} }

/* ===== CCWC Speakers UI v2 ===== */
.ccwc-alpha{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:1rem;}
.ccwc-alpha a{display:inline-block; padding:.25rem .5rem; border-radius:6px; border:1px solid rgba(0,0,0,.08); background:#fff; text-decoration:none; font-size:.9rem;}
.ccwc-alpha a.active{background:var(--brand-primary); color:#fff; border-color:transparent;}
.ccwc-speaker-card .name a{text-decoration:none;}
.ccwc-speaker-card .name a:hover{text-decoration:underline;}

/* ===== CCWC Sponsors UI v2 ===== */
.ccwc-featured-strip{display:flex; flex-wrap:wrap; align-items:center; gap:18px; background:var(--brand-surface); border:1px solid rgba(0,0,0,.06); border-radius:12px; padding:12px;}
.ccwc-featured-strip img{height:40px; object-fit:contain; filter:none; opacity:1;}
.ccwc-level-header{display:flex; align-items:center; gap:12px; margin:28px 0 12px;}
.ccwc-level-header::before{content:""; flex:1; height:1px; background:rgba(0,0,0,.08);}
.ccwc-level-header span{white-space:nowrap; font-weight:600; color:#111;}
.ccwc-level-header::after{content:""; flex:1; height:1px; background:rgba(0,0,0,.08);}

/* ===== CCWC Announcements UI v2 ===== */
.ccwc-announce-hint{font-size:.9rem; color:var(--brand-muted); margin-bottom:1rem;}
.ccwc-announce-list{display:grid; gap:12px;}

/* ===== CCWC Agenda Timeline v2 ===== */
.ccwc-badge--talk{background:rgba(179,49,51,.08); color:#111; border:1px solid rgba(179,49,51,.25);}
.ccwc-badge--meal{background:rgba(255,200,0,.12); color:#111; border:1px solid rgba(255,200,0,.35);}
.ccwc-badge--break{background:rgba(0,0,0,.05); color:#111; border:1px solid rgba(0,0,0,.12);}

/* ===== Prose typography v1 ===== */
.prose h1,.prose h2,.prose h3{margin-top:1.25rem;}
.prose h1{font-size:2rem;}
.prose h2{font-size:1.5rem;}
.prose h3{font-size:1.25rem;}
.prose p{line-height:1.7; margin:0 0 1rem;}
.prose ul{padding-left:1.25rem; margin:0 0 1rem;}
.prose li{margin:.25rem 0;}
.prose a{color:var(--brand-primary); text-decoration:underline;}

/* ===== CCWC Error UI v1 ===== */
.ccwc-error{background:var(--brand-surface); border:1px solid rgba(0,0,0,.06); border-radius:14px; padding:1.5rem;}
.ccwc-error-code{display:inline-block; font-weight:700; letter-spacing:.08em; background:#fff; border:1px solid rgba(0,0,0,.08); border-radius:999px; padding:.25rem .6rem; margin-bottom:.75rem;}

/* ===== CCWC Nav UI v1 ===== */
.ccwc-nav a{padding:.25rem .5rem; border-radius:8px; text-decoration:none;}
.ccwc-nav a:hover{text-decoration:underline;}
.ccwc-nav a.is-active{background:var(--brand-surface); color:var(--brand-primary); border:1px solid rgba(0,0,0,.08);}

/* ===== CCWC Nav UI v2 ===== */
.ccwc-nav-wrap{background:#fff; border-bottom:1px solid rgba(0,0,0,.06);}
.ccwc-nav{padding:.75rem 0; flex-wrap:wrap;}
.ccwc-nav .ccwc-brand{font-weight:700; margin-right:.5rem;}
@media (max-width: 575px){ .ccwc-nav{gap:.75rem;} }

/* ===== CCWC NowNext UI v1 ===== */
.ccwc-now-next{display:grid; gap:12px;}
.ccwc-now-next .item{background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:12px; padding:12px;}
.ccwc-now-next .meta{font-size:.9rem; color:var(--brand-muted);}

/* ===== CCWC Auth UI v1 ===== */
.ccwc-auth-shell{min-height:70vh; display:flex; align-items:center;}
.ccwc-auth-card{max-width:520px; margin:0 auto;}
/* R34: Sessions table widths */
.ccwc-table{table-layout:fixed;width:100%}
.ccwc-table th,.ccwc-table td{overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.ccwc-table .text-nowrap{white-space:nowrap}

/* CCWC: compact gold action button */
.ccwc-btn-gold {
  background-color: #D8A200; /* CCWC gold */
  border-color: #D8A200;
  color: #1a1a1a; /* good contrast on gold */
}
.ccwc-btn-gold:hover,
.ccwc-btn-gold:focus {
  background-color: #C29100;
  border-color: #C29100;
  color: #111;
}

/* smaller, no-wrap utility for list tables */
.btn-compact {
  font-size: 0.80rem;
  padding: 0.25rem 0.55rem;
  line-height: 1.2;
  white-space: nowrap;
  border-radius: 9999px; /* pill */
}

/* keep gold button tidy on narrow screens */
@media (max-width: 380px) {
  .btn-compact { font-size: 0.75rem; padding: 0.2rem 0.5rem; }
}

