/* ============================================================
   Discover College Flag — Camps Styles
   Loaded only on camp-related pages.
   ============================================================ */

:root {
    --camp-radius:  5px;
    --camp-shadow:  0 2px 10px rgba(0,0,0,.09);
    --camp-border:  #d5dce4;
    --camp-bg:      #f0f3f7;
    --camp-white:   #ffffff;
    --camp-navy:    #1a2e4a;
    --camp-blue:    #1e5799;
    --camp-muted:   #5d6d7e;
    --camp-accent:  #c8a228;
    --camp-max:     1200px;
    --camp-narrow:  780px;
}

.camps-page { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #1c2833; }
.camps-container { max-width: var(--camp-max); margin: 0 auto; padding: 0 20px 60px; }
.camps-container--narrow { max-width: var(--camp-narrow); }

/* ── Hero ─────────────────────────────────────────────────────────────────── */
.camps-hero { background: var(--camp-navy); color:#fff; padding:56px 20px 48px; text-align:center; margin-bottom:36px; }
.camps-hero__title { margin:0 0 10px; font-size:clamp(28px,5vw,40px); font-weight:700; color:#fff; }
.camps-hero__subtitle { margin:0; font-size:16px; opacity:.85; color:#fff; }

/* ── Buttons ──────────────────────────────────────────────────────────────── */
.camp-btn {
    display:inline-block; padding:9px 20px; border-radius:var(--camp-radius);
    font-size:14px; font-weight:600; line-height:1.4; text-decoration:none;
    cursor:pointer; border:2px solid transparent; transition:all .15s; white-space:nowrap;
}
.camp-btn--primary   { background:var(--camp-navy); color:#fff; border-color:var(--camp-navy); }
.camp-btn--primary:hover { background:#111f32; border-color:#111f32; color:#fff; text-decoration:none; }
.camp-btn--ghost     { background:transparent; color:var(--camp-navy); border-color:var(--camp-navy); }
.camp-btn--ghost:hover   { background:var(--camp-navy); color:#fff; text-decoration:none; }
.camp-btn--accent    { background:var(--camp-accent); color:#fff; border-color:var(--camp-accent); }
.camp-btn--accent:hover  { background:#a8861e; border-color:#a8861e; color:#fff; text-decoration:none; }
.camp-btn--large     { padding:13px 28px; font-size:16px; }

/* ── Filters ──────────────────────────────────────────────────────────────── */
.camps-filters { background:var(--camp-white); border:1px solid var(--camp-border); border-radius:var(--camp-radius); padding:20px 24px; margin-bottom:20px; box-shadow:var(--camp-shadow); }
.camps-filters__row { display:flex; flex-wrap:wrap; gap:14px; align-items:flex-end; }
.camps-filter-group { display:flex; flex-direction:column; gap:5px; flex:1 1 140px; }
.camps-filter-group--search { flex:2 1 220px; }
.camps-filter-group--actions { flex:0 0 auto; flex-direction:row; align-items:flex-end; gap:8px; }
.camps-filter-group label { font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--camp-muted); }
.camps-filter-group input,
.camps-filter-group select { border:1px solid var(--camp-border); border-radius:var(--camp-radius); padding:8px 10px; font-size:14px; color:#1c2833; background:#fff; width:100%; box-sizing:border-box; height:38px; transition:border-color .15s; }
.camps-filter-group input:focus,
.camps-filter-group select:focus { outline:none; border-color:var(--camp-navy); box-shadow:0 0 0 3px rgba(26,46,74,.15); }

/* ── Results meta ─────────────────────────────────────────────────────────── */
.camps-results-meta { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; font-size:14px; color:var(--camp-muted); flex-wrap:wrap; gap:10px; }

/* ── Table ────────────────────────────────────────────────────────────────── */
.camps-table-wrap { position:relative; overflow-x:auto; border-radius:var(--camp-radius); border:1px solid var(--camp-border); box-shadow:var(--camp-shadow); }
.camps-table { width:100%; border-collapse:collapse; font-size:14px; background:var(--camp-white); }
.camps-table thead { background:var(--camp-navy); color:#fff; }
.camps-table thead th { padding:13px 16px; text-align:left; font-weight:600; font-size:13px; white-space:nowrap; }
.camps-table tbody tr { border-bottom:1px solid var(--camp-border); transition:background .12s; }
.camps-table tbody tr:last-child { border-bottom:none; }
.camps-table tbody tr:hover { background:var(--camp-bg); }
.camps-table td { padding:12px 16px; vertical-align:middle; }
.camp-school a { color:var(--camp-blue); font-weight:600; text-decoration:none; }
.camp-school a:hover { text-decoration:underline; }
.camps-no-results td { text-align:center; padding:40px; color:var(--camp-muted); font-size:15px; }

/* ── Loading ──────────────────────────────────────────────────────────────── */
.camps-loading { display:none; position:absolute; inset:0; background:rgba(255,255,255,.7); border-radius:var(--camp-radius); align-items:center; justify-content:center; z-index:10; }
.camps-loading.is-active { display:flex; }
.camps-spinner { width:40px; height:40px; border:4px solid var(--camp-border); border-top-color:var(--camp-navy); border-radius:50%; animation:camps-spin .7s linear infinite; }
@keyframes camps-spin { to { transform:rotate(360deg); } }

/* ── Pagination ───────────────────────────────────────────────────────────── */
.camps-pagination { margin-top:24px; display:flex; justify-content:center; gap:6px; flex-wrap:wrap; }
.camps-pagination .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:36px; height:36px; padding:0 10px; border-radius:var(--camp-radius); border:1px solid var(--camp-border); font-size:14px; color:var(--camp-blue); text-decoration:none; transition:all .15s; background:#fff; }
.camps-pagination .page-numbers.current,
.camps-pagination .page-numbers:hover { background:var(--camp-navy); border-color:var(--camp-navy); color:#fff; }

/* ── Breadcrumb ───────────────────────────────────────────────────────────── */
.camps-breadcrumb { margin:32px 0 20px; font-size:14px; }
.camps-breadcrumb a { color:var(--camp-blue); text-decoration:none; }
.camps-breadcrumb a:hover { text-decoration:underline; }

/* ── Single Camp ──────────────────────────────────────────────────────────── */
.camp-single { background:var(--camp-white); border:1px solid var(--camp-border); border-radius:var(--camp-radius); box-shadow:var(--camp-shadow); overflow:hidden; margin-bottom:40px; }
.camp-single__header { background:var(--camp-navy); color:#fff; padding:36px 40px 30px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.camp-single__title { margin:0; font-size:clamp(22px,4vw,30px); font-weight:700; color:#fff; }
.camp-badge { display:inline-block; background:rgba(255,255,255,.2); color:#fff; border:1px solid rgba(255,255,255,.4); border-radius:20px; padding:4px 14px; font-size:13px; font-weight:600; white-space:nowrap; }
.camp-single__body { padding:36px 40px; }
.camp-meta-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:20px; margin-bottom:28px; }
.camp-meta-item { display:flex; flex-direction:column; gap:4px; }
.camp-meta-item__label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:var(--camp-muted); }
.camp-meta-item__value { font-size:15px; font-weight:500; }
.camp-meta-item__value a { color:var(--camp-blue); text-decoration:none; }
.camp-meta-item__value a:hover { text-decoration:underline; }
.camp-single__cta { margin-bottom:28px; }
.camp-single__description { border-top:1px solid var(--camp-border); padding-top:24px; }
.camp-single__description h2 { font-size:18px; font-weight:600; margin:0 0 12px; color:var(--camp-navy); }

/* ── Camp Form ────────────────────────────────────────────────────────────── */
.camp-form-header { text-align:center; margin:40px 0 32px; }
.camp-form-header h1 { font-size:30px; margin:0 0 10px; }
.camp-form-header p { color:var(--camp-muted); font-size:15px; margin:0; }

.camp-form { background:var(--camp-white); border:1px solid var(--camp-border); border-radius:var(--camp-radius); box-shadow:var(--camp-shadow); padding:0 0 36px; margin-bottom:60px; }
.camp-form__section { padding:28px 36px 0; border-top:1px solid var(--camp-border); }
.camp-form__section:first-of-type { border-top:none; }
.camp-form__section-title { font-size:15px; font-weight:700; color:var(--camp-navy); margin:0 0 18px; padding-bottom:10px; border-bottom:2px solid var(--camp-bg); }
.camp-form__row { display:flex; gap:20px; margin-bottom:20px; flex-wrap:wrap; }
.camp-form__field { flex:1 1 200px; display:flex; flex-direction:column; gap:6px; }
.camp-form__field--full { flex-basis:100%; }
.camp-form__field label { font-size:13px; font-weight:600; color:#1c2833; }
.required { color:#c0392b; }
.camp-form__field input,
.camp-form__field select,
.camp-form__field textarea { border:1px solid var(--camp-border); border-radius:var(--camp-radius); padding:10px 12px; font-size:14px; color:#1c2833; background:#fff; font-family:inherit; transition:border-color .15s; width:100%; box-sizing:border-box; }
.camp-form__field input:focus,
.camp-form__field select:focus,
.camp-form__field textarea:focus { outline:none; border-color:var(--camp-navy); box-shadow:0 0 0 3px rgba(26,46,74,.12); }
.camp-form__field input.is-invalid,
.camp-form__field select.is-invalid,
.camp-form__field textarea.is-invalid { border-color:#c0392b; }
.camp-form__field textarea { resize:vertical; min-height:100px; }
.camp-form__submit { padding:28px 36px 0; text-align:center; }
.camp-form__note { margin:12px 0 0; font-size:13px; color:var(--camp-muted); }

/* ── Form messages ────────────────────────────────────────────────────────── */
.camp-form-message { margin:0 36px 20px; padding:14px 18px; border-radius:var(--camp-radius); font-size:14px; font-weight:500; border-left:4px solid transparent; }
.camp-form-message.is-success { background:#eafaf1; border-left-color:#27ae60; color:#1e8449; }
.camp-form-message.is-error   { background:#fdf2f2; border-left-color:#c0392b; color:#c0392b; }

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width:768px) {
    .camps-filters__row { flex-direction:column; }
    .camps-filter-group { flex:1 1 100%; }
    .camps-filter-group--actions { flex-direction:row; }
    .camp-single__header, .camp-single__body { padding:24px 20px; }
    .camp-form__section { padding:24px 20px 0; }
    .camp-form__submit  { padding:24px 20px 0; }
    .camp-form-message  { margin:0 20px 20px; }
    .camp-form__row { flex-direction:column; gap:14px; }
    .camps-table thead { display:none; }
    .camps-table tr { display:block; padding:12px 16px; border-bottom:1px solid var(--camp-border); }
    .camps-table td { display:flex; justify-content:space-between; padding:4px 0; border:none; font-size:13px; }
    .camps-table td::before { content:attr(data-label); font-weight:600; color:var(--camp-muted); flex-shrink:0; margin-right:12px; }
}
