/* ============================================================
   HutchConnect — component styles
   Accent: teal #0d9488
   ============================================================ */

/* ── Theme Variables ── */
:root,
[data-hc-theme="default"] {
    --hc-primary: #0d9488;
    --hc-primary-dark: #0f766e;
    --hc-primary-darker: #134e4a;
    --hc-primary-light: #14b8a6;
    --hc-primary-lightest: #99f6e4;
    --hc-primary-bg: #f0fdfa;
    --hc-accent: #14b8a6;
    --hc-text-heading: #1e293b;
    --hc-text-body: #475569;
    --hc-text-secondary: #64748b;
    --hc-bg-page: #f8fafc;
    --hc-bg-card: #ffffff;
    --hc-border: #e2e8f0;
    --hc-shadow: rgba(0,0,0,0.06);
}

[data-hc-theme="christmas"] {
    --hc-primary: #c41e3a;
    --hc-primary-dark: #a01830;
    --hc-primary-darker: #7a1225;
    --hc-primary-light: #e8384f;
    --hc-primary-lightest: #fecdd3;
    --hc-primary-bg: #fff1f2;
    --hc-accent: #15803d;
}

[data-hc-theme="stpatricks"] {
    --hc-primary: #15803d;
    --hc-primary-dark: #166534;
    --hc-primary-darker: #14532d;
    --hc-primary-light: #22c55e;
    --hc-primary-lightest: #bbf7d0;
    --hc-primary-bg: #f0fdf4;
    --hc-accent: #ca8a04;
}

[data-hc-theme="independence"] {
    --hc-primary: #1e40af;
    --hc-primary-dark: #1e3a8a;
    --hc-primary-darker: #172554;
    --hc-primary-light: #3b82f6;
    --hc-primary-lightest: #bfdbfe;
    --hc-primary-bg: #eff6ff;
    --hc-accent: #dc2626;
}

[data-hc-theme="fall"] {
    --hc-primary: #c2410c;
    --hc-primary-dark: #9a3412;
    --hc-primary-darker: #7c2d12;
    --hc-primary-light: #ea580c;
    --hc-primary-lightest: #fed7aa;
    --hc-primary-bg: #fff7ed;
    --hc-accent: #a16207;
}

[data-hc-theme="valentines"] {
    --hc-primary: #db2777;
    --hc-primary-dark: #be185d;
    --hc-primary-darker: #9d174d;
    --hc-primary-light: #ec4899;
    --hc-primary-lightest: #fbcfe8;
    --hc-primary-bg: #fdf2f8;
    --hc-accent: #e11d48;
}

/* =============================================================
   PUBLIC NAV
   ============================================================= */

.hc-public-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1.5rem;
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
    position: sticky;
    top: 0;
    z-index: 100;
}

.hc-public-nav-brand {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--hc-primary-dark);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
}

.hc-public-nav-brand:hover {
    color: var(--hc-primary);
}

.hc-nav-links {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.hc-nav-links a {
    color: #374151;
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 500;
    transition: color 0.15s;
}

.hc-nav-links a:hover {
    color: var(--hc-primary-dark);
}

/* Hamburger — hidden on desktop */
.hc-nav-hamburger {
    display: none;
    background: none;
    border: none;
    font-size: 1.5rem;
    color: #374151;
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    line-height: 1;
}

/* Mobile nav */
@media (max-width: 640px) {
    .hc-nav-hamburger {
        display: block;
    }

    .hc-nav-links {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #fff;
        border-bottom: 1px solid #e5e7eb;
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
        padding: 0.5rem 0;
        box-shadow: 0 4px 6px rgba(0,0,0,0.07);
    }

    .hc-nav-links a {
        width: 100%;
        padding: 0.75rem 1.5rem;
        border-bottom: 1px solid #f3f4f6;
    }

    .hc-nav-links a:last-child {
        border-bottom: none;
    }

    /* Toggle open state */
    .hc-public-nav.hc-nav-open .hc-nav-links {
        display: flex;
    }
}

/* ── Page container — constrains all public page content ─── */
.hc-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

/* =============================================================
   ADMIN UI — shared admin-section styles
   ============================================================= */

/* --- Admin form section header ---------------------------- */
.hc-form-section-header {
    font-size: 0.8rem;
    font-weight: 700;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #e2e8f0;
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

/* --- Admin form field label -------------------------------- */
.hc-field-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    display: block;
    margin-bottom: 0.3rem;
}

.hc-field-label-required::after {
    content: " *";
    color: #ef4444;
    font-weight: 700;
}

/* --- Admin form field hint --------------------------------- */
.hc-field-hint {
    font-size: 0.75rem;
    color: #94a3b8;
    margin-top: 0.2rem;
}

/* --- Admin form grid layout ------------------------------- */
.hc-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.875rem;
}

.hc-form-grid .hc-full-width {
    grid-column: 1 / -1;
}

@media (max-width: 600px) {
    .hc-form-grid {
        grid-template-columns: 1fr;
    }
    .hc-form-grid .hc-full-width {
        grid-column: 1;
    }
}

/* --- Admin inline alert ------------------------------------ */
.hc-alert {
    padding: 0.625rem 0.875rem;
    border-radius: 6px;
    margin-bottom: 1rem;
    font-size: 0.875rem;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.hc-alert-success {
    background: #dcfce7;
    color: #15803d;
    border: 1px solid #bbf7d0;
}

.hc-alert-error {
    background: #fee2e2;
    color: #b91c1c;
    border: 1px solid #fecaca;
}

/* --- Admin action bar (form bottom) ----------------------- */
.hc-action-bar {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin-bottom: 2rem;
    padding-top: 0.25rem;
}

.hc-action-bar-right {
    margin-left: auto;
}

/* --- Admin table ------------------------------------------- */
.hc-admin-table-wrap {
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    background: white;
}

.hc-admin-table-wrap table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.hc-admin-table-wrap thead {
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}

.hc-admin-table-wrap th {
    padding: 0.625rem 1rem;
    text-align: left;
    font-size: 0.72rem;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.hc-admin-table-wrap td {
    padding: 0.65rem 1rem;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    color: #374151;
}

.hc-admin-table-wrap tbody tr:last-child td {
    border-bottom: none;
}

.hc-admin-table-wrap tbody tr:hover {
    background: #f8fafc;
}

/* --- Admin flag/status pill -------------------------------- */
.hc-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    border-radius: 12px;
    white-space: nowrap;
}

.hc-status-active   { background: #dcfce7; color: #15803d; }
.hc-status-inactive { background: #f1f5f9; color: #64748b; }
.hc-status-verified { background: #dbeafe; color: #1d4ed8; }
.hc-status-featured { background: #fef9c3; color: #854d0e; }

/* --- Admin category table row tile ------------------------ */
.hc-cat-admin-tile {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.hc-cat-admin-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* --- Admin page-header flex fix --------------------------- */
.page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

/* --- Partner admin tab bar --------------------------------- */
.hc-partner-tab-bar {
    display: flex;
    align-items: center;
    gap: 0;
    border-bottom: 2px solid #e2e8f0;
    margin-bottom: 1.5rem;
}

.hc-partner-tab {
    padding: .6rem 1.1rem;
    font-size: .875rem;
    font-weight: 500;
    color: #64748b;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color .15s, border-color .15s;
    white-space: nowrap;
}

.hc-partner-tab:hover { color: #0f172a; }

.hc-partner-tab--active {
    color: var(--hc-primary);
    border-bottom-color: var(--hc-primary);
}

.hc-partner-tab--external { color: #0891b2; }
.hc-partner-tab--external:hover { color: #0369a1; }

.hc-partner-tab--danger { color: #dc2626; margin-left: auto; }
.hc-partner-tab--danger:hover { color: #991b1b; }

/* --- Filter bar (search + controls row) ------------------- */
.hc-filter-bar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.75rem 1rem;
    background: white;
    border-radius: 10px;
    border: 1px solid #e2e8f0;
    margin-bottom: 1rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

/* --- Partner row avatar ----------------------------------- */
.hc-row-avatar {
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

.hc-row-avatar-img {
    width: 30px;
    height: 30px;
    border-radius: 5px;
    object-fit: contain;
    border: 1px solid #e2e8f0;
    background: #fff;
    flex-shrink: 0;
}

.hc-row-avatar-initials {
    width: 30px;
    height: 30px;
    border-radius: 5px;
    background: linear-gradient(135deg, var(--hc-primary), #0891b2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    color: white;
    flex-shrink: 0;
}

.hc-row-name {
    font-weight: 600;
    color: #0f172a;
    font-size: 0.875rem;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 240px;
}

.hc-row-slug {
    font-size: 0.72rem;
    color: #94a3b8;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* --- Partner card grid ------------------------------------ */
.hc-partner-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.5rem;
    padding: 1.5rem 0;
}

/* --- Partner card ----------------------------------------- */
.hc-partner-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.03);
    overflow: hidden;
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
    cursor: pointer;
    position: relative;
}

.hc-partner-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(13,148,136,0.12), 0 2px 8px rgba(0,0,0,0.06);
    border-color: rgba(13,148,136,0.25);
    text-decoration: none;
    color: inherit;
}

/* Featured: accent glow */
.hc-partner-card.hc-featured {
    border-color: rgba(13,148,136,0.3);
    box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 4px 16px rgba(13,148,136,0.1);
}
.hc-partner-card.hc-featured:hover {
    box-shadow: 0 8px 30px rgba(13,148,136,0.18), 0 2px 8px rgba(0,0,0,0.06);
}

/* --- Card accent top bar (category color) ---------------- */
.hc-card-accent-top {
    height: 4px;
    background: var(--card-accent, linear-gradient(135deg, var(--hc-primary), #0891b2));
    flex-shrink: 0;
    opacity: 0.8;
    transition: opacity 0.22s ease;
}
.hc-partner-card:hover .hc-card-accent-top {
    opacity: 1;
}

/* --- Logo area -------------------------------------------- */
.hc-logo-area {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 160px;
    background: #ffffff;
    padding: 1rem;
    border-bottom: 1px solid #f1f5f9;
    flex-shrink: 0;
    overflow: hidden;
    position: relative;
}

.hc-logo-area img {
    max-width: 240px;
    max-height: 120px;
    width: auto;
    height: auto;
    display: block;
    transition: transform 0.22s ease;
}
.hc-partner-card:hover .hc-logo-area img {
    transform: scale(1.03);
}

.hc-logo-area.hc-has-image {
    background: #fafbfc;
}

/* Initials fallback */
.hc-logo-placeholder {
    width: 100%;
    height: 100%;
    border-radius: 0;
    background: var(--card-accent, linear-gradient(135deg, var(--hc-primary) 0%, #0891b2 100%));
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    font-weight: 800;
    flex-shrink: 0;
    letter-spacing: -0.02em;
}

/* --- Card body -------------------------------------------- */
.hc-card-body {
    padding: 1rem 1.15rem 1.15rem;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.hc-card-name {
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 0.3rem;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.hc-card-tagline {
    font-size: 0.82rem;
    color: #64748b;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
}

/* --- Card view link --------------------------------------- */
.hc-card-view-link {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid #f1f5f9;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--hc-primary);
    text-align: right;
    transition: color 0.2s ease, letter-spacing 0.2s ease;
}

.hc-partner-card:hover .hc-card-view-link {
    color: var(--hc-primary-dark);
    letter-spacing: 0.02em;
}

/* --- Card footer ------------------------------------------ */
.hc-card-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-top: 0.75rem;
}

/* --- Info chip -------------------------------------------- */
.hc-chip {
    font-size: 0.75rem;
    color: #64748b;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    padding: 0.2rem 0.5rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
}

/* Verified chip */
.hc-chip-verified {
    background: #dcfce7;
    color: #15803d;
    border-color: #bbf7d0;
}

/* Contact info chip — teal accent */
.hc-chip-contact {
    background: var(--hc-primary-bg);
    color: var(--hc-primary);
    border-color: var(--hc-primary-lightest);
    font-weight: 500;
}

/* --- Empty state ------------------------------------------ */
.hc-empty-state {
    text-align: center;
    padding: 3rem 1rem;
    color: #64748b;
}

.hc-empty-state h3 {
    font-size: 1.1rem;
    font-weight: 600;
    color: #0f172a;
    margin-bottom: 0.5rem;
}

.hc-empty-state p {
    font-size: 0.9rem;
    margin-bottom: 1.25rem;
}

/* --- Breadcrumb ------------------------------------------- */
.hc-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.84rem;
    color: #64748b;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
    padding: 0.6rem 0;
}

.hc-breadcrumb a {
    color: var(--hc-primary);
    text-decoration: none;
}

.hc-breadcrumb a:hover {
    text-decoration: underline;
}

.hc-breadcrumb-sep {
    color: #cbd5e1;
    user-select: none;
}

.hc-breadcrumb-current {
    color: #0f172a;
    font-weight: 500;
}

/* --- Reusable section heading ----------------------------- */
.hc-section-heading {
    font-size: 1.1rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: .875rem;
    padding-bottom: .5rem;
    border-bottom: 2px solid var(--hc-primary-bg);
}

/* --- Detail section spacing ------------------------------- */
.hc-detail-section {
    margin-bottom: 1.25rem;
}

/* --- Partner detail hero ---------------------------------- */

/* Outer wrapper — clips the blurred background layers */
.hc-detail-hero-outer {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    margin-bottom: 1.5rem;
    box-shadow: 0 4px 24px rgba(0,0,0,0.10);
}

/* Blurred logo — fills the outer container as a color wash */
.hc-detail-hero-blur {
    position: absolute;
    inset: -40px;
    background-size: cover;
    background-position: center;
    filter: blur(32px) saturate(2.2) brightness(1.05);
    transform: scale(1.15);
    z-index: 0;
}

/* Banner blur variant — darker, less saturated so the real photo pops */
.hc-detail-hero-blur-banner {
    filter: blur(24px) saturate(1.4) brightness(0.6);
}

/* Banner photo — cover fills the container; the inline object-position style
   (set from BannerFocalPoint) controls which part is visible.
   top center = heads visible, bottom cropped. center = middle of image shown. */
.hc-detail-hero-banner-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}

/* Dark overlay for banner text legibility */
.hc-detail-hero-banner-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 2;
}

/* Fallback gradient for partners without a logo */
.hc-detail-hero-blur-default {
    background: linear-gradient(135deg, var(--hc-primary), #0891b2);
    filter: none;
}

/* Semi-transparent white overlay — softens the blur into a pastel wash */
.hc-detail-hero-blur-overlay {
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,0.68);
    z-index: 1;
}

/* Bottom fade — smooth transition from hero into white page content */
.hc-detail-hero-fade {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 32px;
    background: linear-gradient(to bottom, transparent, rgba(255,255,255,0.6));
    z-index: 4;
    pointer-events: none;
}

/* Actual hero content sits above all blur/overlay layers.
   z-index:3 clears the banner overlay (z:2) and logo blur-overlay (z:1). */
.hc-detail-hero {
    position: relative;
    z-index: 3;
    padding: 3rem 2.5rem 2.5rem;
    display: flex;
    align-items: flex-end;
    gap: 1.5rem;
    background: transparent;
    min-height: 420px;
}

.hc-detail-hero-logo {
    width: 110px;
    height: 110px;
    border-radius: 12px;
    background: rgba(255,255,255,0.95);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
    border: 2px solid rgba(255,255,255,0.85);
    box-shadow: 0 2px 12px rgba(0,0,0,0.14);
    backdrop-filter: blur(4px);
}

.hc-detail-hero-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 8px;
}

.hc-detail-hero-logo-placeholder {
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--hc-primary);
}

.hc-detail-hero-text h1 {
    color: #0f172a;
    font-size: 2rem;
    font-weight: 800;
    margin-bottom: 0.25rem;
    text-shadow: 0 1px 3px rgba(255,255,255,0.6);
    line-height: 1.2;
}

.hc-detail-hero-tagline {
    color: #334155;
    font-size: 1.1rem;
    margin: 0;
    font-weight: 700;
}

.hc-detail-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: rgba(255,255,255,0.75);
    border: 1px solid rgba(255,255,255,0.9);
    color: #0f172a;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    margin-top: 0.5rem;
    backdrop-filter: blur(4px);
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}

/* Logo-as-photo tile — contains the image with padding (not cropped) */
.hc-photo-item-logo img {
    object-fit: contain !important;
    padding: 1.25rem;
    background: #fff;
}

/* --- Category tile grid (admin) -------------------------------- */
.hc-category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
    padding: .5rem 0;
}

/* --- Detail page contact rows ----------------------------- */
.hc-contact-row {
    display: flex;
    align-items: center;
    gap: .625rem;
    color: #0f172a;
    text-decoration: none;
    font-size: .875rem;
}
.hc-contact-row:hover { color: var(--hc-primary); text-decoration: none; }

.hc-contact-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}

/* --- Social media buttons --------------------------------- */
.hc-social-btn {
    display: flex;
    align-items: center;
    gap: .625rem;
    padding: .625rem .875rem;
    color: white;
    border-radius: 8px;
    font-weight: 600;
    font-size: .875rem;
    text-decoration: none;
    transition: opacity 0.2s ease;
}
.hc-social-btn:hover { opacity: 0.9; text-decoration: none; color: white; }
.hc-social-facebook  { background: #1877f2; }
.hc-social-instagram { background: linear-gradient(135deg, #833ab4, #fd1d1d, #fcb045); }
.hc-social-tiktok    { background: #010101; }
.hc-social-youtube   { background: #ff0000; }
.hc-social-linkedin  { background: #0a66c2; }
.hc-social-twitter   { background: #000000; }
.hc-social-pinterest { background: #e60023; }
.hc-social-threads   { background: #101010; }
.hc-social-snapchat  { background: #fffc00; color: #000; }
.hc-social-snapchat:hover { color: #000; }
.hc-social-whatsapp  { background: #25d366; }
.hc-social-booking   { background: var(--hc-primary); }

/* --- Back link -------------------------------------------- */
.hc-back-link {
    display: flex;
    align-items: center;
    gap: .375rem;
    color: var(--hc-primary);
    font-size: .875rem;
    font-weight: 500;
    text-decoration: none;
}
.hc-back-link:hover { text-decoration: underline; }

/* --- Description prose ------------------------------------ */
.hc-description {
    font-size: .95rem;
    line-height: 1.8;
    color: #374151;
}
.hc-description p  { margin-bottom: 1rem; }
.hc-description p:last-child { margin-bottom: 0; }
.hc-description h2 { font-size: 1.1rem; font-weight: 700; margin: 1.5rem 0 .625rem; color: #0f172a; border-bottom: 2px solid var(--hc-primary-bg); padding-bottom: .375rem; }
.hc-description h2:first-child { margin-top: 0; }
.hc-description h3 { font-size: 1rem; font-weight: 700; margin: 1.25rem 0 .5rem; color: var(--hc-primary); }
.hc-description h3:first-child { margin-top: 0; }
.hc-description h4 { font-size: .9rem; font-weight: 600; margin: 1rem 0 .375rem; color: #374151; }
.hc-description ul, .hc-description ol { padding-left: 1.5rem; margin-bottom: 1rem; }
.hc-description li { margin-bottom: .5rem; }
.hc-description a  { color: var(--hc-primary); text-decoration: underline; }
.hc-description strong { color: #0f172a; font-weight: 600; }
.hc-description em { color: #475569; }
/* Strip empty paragraphs that appear when HTML has extra <br> or empty tags */
.hc-description p:empty { display: none; }

/* --- Detail grid — stack on mobile ----------------------- */
.hc-detail-grid {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 1.25rem;
    align-items: start;
}

/* --- Banner hero variant — taller than logo-only hero, full image visible via contain --- */
.hc-detail-hero.hc-detail-hero--banner {
    min-height: min(600px, 55vw);
}

.hc-detail-hero--banner .hc-detail-hero-text h1 {
    color: #ffffff;
    text-shadow: 0 1px 4px rgba(0,0,0,0.5);
}
.hc-detail-hero--banner .hc-detail-hero-tagline {
    color: rgba(255,255,255,0.88);
}
.hc-detail-hero--banner .hc-detail-hero-logo {
    background: rgba(255,255,255,0.15);
    border-color: rgba(255,255,255,0.5);
}

/* --- Related businesses section --------------------------- */
.hc-related-section {
    margin-top: 1.5rem;
}

.hc-related-divider {
    height: 2px;
    background: linear-gradient(90deg, var(--hc-primary), #06b6d4, transparent);
    border-radius: 1px;
    margin-bottom: 1.25rem;
}

/* Compact grid for related cards */
.hc-related-grid {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.hc-related-grid .hc-logo-area {
    height: 110px;
}
.hc-related-grid .hc-logo-area img {
    max-height: 80px;
}

/* --- Photo gallery grid ----------------------------------- */
.hc-photo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 200px));
    gap: .75rem;
}

.hc-photo-item {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    background: #f1f5f9;
    cursor: pointer;
    border: none;
    padding: 0;
    aspect-ratio: 1;
    width: 100%;
    transition: transform .15s ease, box-shadow .15s ease;
}

.hc-photo-item:hover {
    transform: scale(1.02);
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}

.hc-photo-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.hc-photo-caption {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.65), transparent);
    color: white;
    font-size: .72rem;
    padding: .5rem .5rem .375rem;
    line-height: 1.3;
}

/* --- Lightbox --------------------------------------------- */
.hc-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.85);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    cursor: pointer;
}

.hc-lightbox-inner {
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
    cursor: default;
}

.hc-lightbox-inner img {
    max-width: 90vw;
    max-height: 80vh;
    border-radius: 10px;
    display: block;
    box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}

.hc-lightbox-caption {
    color: rgba(255,255,255,0.85);
    text-align: center;
    margin-top: .625rem;
    font-size: .875rem;
}

.hc-lightbox-close {
    position: absolute;
    top: -14px;
    right: -14px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: white;
    border: none;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
    color: #0f172a;
}
.hc-lightbox-close:hover { background: #f1f5f9; }

/* =============================================================
   PUBLIC DIRECTORY HOME — /businessdirectory
   ============================================================= */

/* --- Hero with gradient background ----------------------- */
.hc-dir-hero {
    position: relative;
    background: linear-gradient(135deg, var(--hc-primary-darker) 0%, var(--hc-primary) 40%, #06b6d4 100%);
    border-radius: 20px;
    padding: 4rem 1.5rem 3rem;
    text-align: center;
    overflow: hidden;
    margin-bottom: 0.5rem;
    box-shadow: 0 4px 24px rgba(13,148,136,0.15);
}

/* Subtle dot pattern overlay */
.hc-dir-hero-dots {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255,255,255,0.12) 1px, transparent 1px);
    background-size: 20px 20px;
    z-index: 0;
}

.hc-dir-hero-content {
    position: relative;
    z-index: 1;
}

.hc-dir-hero-wordmark {
    font-size: 3rem;
    font-weight: 800;
    color: #ffffff;
    letter-spacing: -0.03em;
    line-height: 1.1;
    margin-bottom: 0.6rem;
    text-shadow: 0 2px 12px rgba(0,0,0,0.1);
}

.hc-dir-hero-subtitle {
    font-size: 1.15rem;
    color: rgba(255,255,255,0.82);
    margin: 0 0 1.75rem;
    font-weight: 500;
}

/* Hero search form wrapper */
.hc-dir-hero-search-form {
    width: 100%;
    max-width: 420px;
}

/* Hero search bar (real form) */
.hc-dir-hero-search {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 50px;
    padding: 0.5rem 0.5rem 0.5rem 1rem;
    color: rgba(255,255,255,0.6);
    font-size: 0.95rem;
    width: 100%;
    transition: border-color 0.2s ease, background 0.2s ease;
}
.hc-dir-hero-search:focus-within {
    border-color: rgba(255,255,255,0.6);
    background: rgba(255,255,255,0.22);
}
.hc-dir-hero-search svg {
    flex-shrink: 0;
    opacity: 0.7;
}
.hc-dir-hero-search-input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: #ffffff;
    font-size: 0.95rem;
    min-width: 0;
}
.hc-dir-hero-search-input::placeholder {
    color: rgba(255,255,255,0.55);
}
.hc-dir-hero-search-btn {
    background: #ffffff;
    border: none;
    border-radius: 50px;
    color: var(--hc-primary);
    font-size: 0.85rem;
    font-weight: 700;
    padding: 0.45rem 1.15rem;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s ease, transform 0.2s ease;
}
.hc-dir-hero-search-btn:hover {
    background: var(--hc-primary-bg);
    transform: scale(1.03);
}

/* Search results page header */
.hc-search-header {
    background: linear-gradient(135deg, var(--hc-primary), #0891b2);
    padding: 2rem 0 1.5rem;
    margin-bottom: 1.5rem;
}
.hc-search-header-inner {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 1.5rem;
}
.hc-search-title {
    font-size: 1.6rem;
    font-weight: 700;
    color: #ffffff;
    margin: 0.5rem 0 1.25rem;
}
.hc-search-title em {
    font-style: italic;
    opacity: 0.9;
}
.hc-search-count {
    font-size: 0.9rem;
    color: #64748b;
    margin: 0 0 1rem;
}

/* Search bar on search results page */
.hc-search-bar-form {
    width: 100%;
}
.hc-search-bar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255,255,255,0.18);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,0.35);
    border-radius: 50px;
    padding: 0.5rem 0.5rem 0.5rem 1rem;
    width: 100%;
    max-width: 560px;
    transition: border-color 0.2s ease, background 0.2s ease;
}
.hc-search-bar:focus-within {
    border-color: rgba(255,255,255,0.65);
    background: rgba(255,255,255,0.26);
}
.hc-search-bar svg {
    flex-shrink: 0;
    opacity: 0.7;
    color: #ffffff;
}
.hc-search-bar-input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: #ffffff;
    font-size: 0.95rem;
    min-width: 0;
}
.hc-search-bar-input::placeholder {
    color: rgba(255,255,255,0.55);
}
.hc-search-bar-btn {
    background: rgba(255,255,255,0.25);
    border: none;
    border-radius: 50px;
    color: #ffffff;
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0.45rem 1.1rem;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s ease;
}
.hc-search-bar-btn:hover {
    background: rgba(255,255,255,0.4);
}

/* Category label chip on search result cards */
.hc-card-category-label {
    font-size: 0.75rem;
    color: #64748b;
    margin-top: 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 600;
}

/* Legacy (keep for backward compat with any non-public callers) */
.hc-dir-tagline {
    font-size: 1.1rem;
    color: #64748b;
    margin: 0;
}

/* --- Category tile grid ---------------------------------- */
.hc-dir-category-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    padding: 1.5rem 0 2rem;
}

.hc-dir-category-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.875rem;
    padding: 1.75rem 1rem 1.25rem;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.07);
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    cursor: pointer;
    text-align: center;
    overflow: hidden;
}

.hc-dir-category-tile:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.11);
    text-decoration: none;
    color: inherit;
}

.hc-dir-tile-icon {
    width: 72px;
    height: 72px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

.hc-dir-category-tile:hover .hc-dir-tile-icon {
    transform: scale(1.08);
}

.hc-dir-tile-name {
    font-size: 0.95rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.3;
}

/* Bottom accent bar using category gradient */
.hc-dir-tile-accent {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--tile-accent, linear-gradient(135deg, var(--hc-primary), #0891b2));
    opacity: 0;
    transition: opacity 0.2s ease, height 0.2s ease;
}

.hc-dir-category-tile:hover .hc-dir-tile-accent {
    opacity: 1;
    height: 4px;
}

/* =============================================================
   CATEGORY ARCHIVE — /businessdirectory/{slug}
   ============================================================= */

/* --- Category header ------------------------------------- */
.hc-cat-header {
    position: relative;
    background: var(--cat-gradient, linear-gradient(135deg, var(--hc-primary), #0891b2));
    border-radius: 20px;
    padding: 2.5rem 2.25rem;
    margin-bottom: 2rem;
    display: flex;
    align-items: center;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

/* Subtle dot pattern overlay (matches hero) */
.hc-cat-header-dots {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255,255,255,0.10) 1px, transparent 1px);
    background-size: 18px 18px;
    z-index: 0;
}

.hc-cat-header-content {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.hc-cat-header-emoji {
    font-size: 3.25rem;
    line-height: 1;
    flex-shrink: 0;
}

.hc-cat-header-title {
    color: white;
    font-size: 1.85rem;
    font-weight: 800;
    margin: 0 0 .3rem;
    line-height: 1.2;
}

.hc-cat-header-subtitle {
    color: rgba(255,255,255,0.82);
    margin: 0;
    font-size: .95rem;
    font-weight: 500;
}

/* --- Badges row (partner detail page) ----------------------------- */
.hc-badges-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}

.hc-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.3rem 0.75rem;
    border-radius: 20px;
    border: 1px solid transparent;
    white-space: nowrap;
}

.hc-badge-category {
    background: var(--hc-primary-bg);
    color: var(--hc-primary);
    border-color: var(--hc-primary-lightest);
}

.hc-badge-verified {
    background: #dcfce7;
    color: #15803d;
    border-color: #bbf7d0;
}

.hc-badge-tier {
    background: #fef9c3;
    color: #854d0e;
    border-color: #fde047;
}

/* =============================================================
   FOOTER
   ============================================================= */

.hc-footer {
    background: #0f172a;
    border-radius: 16px 16px 0 0;
    margin-top: 3rem;
    padding: 2.5rem 1.5rem;
    text-align: center;
}

.hc-footer-inner {
    max-width: 600px;
    margin: 0 auto;
}

.hc-footer-brand {
    margin-bottom: 1rem;
}

.hc-footer-logo {
    display: block;
    font-size: 1.25rem;
    font-weight: 800;
    color: #ffffff;
    letter-spacing: -0.01em;
    margin-bottom: 0.375rem;
}

.hc-footer-tagline {
    display: block;
    font-size: 0.85rem;
    color: rgba(255,255,255,0.55);
    line-height: 1.4;
}

.hc-footer-links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.875rem;
}

.hc-footer-links a {
    color: var(--hc-primary);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 500;
}
.hc-footer-links a:hover {
    text-decoration: underline;
    color: var(--hc-primary-light);
}

.hc-footer-sep {
    color: rgba(255,255,255,0.25);
    font-size: 0.85rem;
}

.hc-footer-copy {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.35);
}

/* =============================================================
   RESPONSIVE
   ============================================================= */

@media (max-width: 768px) {
    .hc-dir-category-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .hc-detail-grid {
        grid-template-columns: 1fr !important;
    }
    .hc-dir-hero-wordmark {
        font-size: 2.15rem;
    }
    .hc-dir-hero {
        padding: 2.5rem 1rem 2rem;
    }
    .hc-cat-header {
        padding: 1.75rem 1.25rem;
    }
    .hc-cat-header-emoji {
        font-size: 2.5rem;
    }
    .hc-cat-header-title {
        font-size: 1.5rem;
    }
}

@media (max-width: 640px) {
    .hc-detail-hero {
        flex-direction: column;
        align-items: flex-start;
        padding: 1.5rem 1.25rem 1.25rem;
        gap: 0.875rem;
        min-height: 300px;
    }
    .hc-detail-hero.hc-detail-hero--banner {
        min-height: 200px;
    }
    .hc-detail-hero-logo {
        width: 72px;
        height: 72px;
    }
    .hc-detail-hero-text h1 {
        font-size: 1.35rem;
    }
    .hc-detail-hero-tagline {
        font-size: 0.95rem;
    }
    .hc-cat-header-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }
    .hc-footer-links {
        flex-direction: column;
        gap: 0.375rem;
    }
    .hc-footer-sep {
        display: none;
    }
}

@media (max-width: 480px) {
    .hc-dir-category-grid {
        grid-template-columns: 1fr;
    }
    .hc-dir-hero-wordmark {
        font-size: 1.85rem;
    }
    .hc-dir-hero-subtitle {
        font-size: 1rem;
    }
    .hc-partner-grid {
        grid-template-columns: 1fr;
    }
}

/* =============================================================
   ABOUT PAGE
   ============================================================= */

.hc-about-hero {
    position: relative;
    min-height: 480px;
    background: url('images/pages/hero-hutch-sunset.jpg') center center / cover no-repeat, linear-gradient(135deg, var(--hc-primary-darker) 0%, var(--hc-primary) 60%, #06b6d4 100%);
    display: flex;
    align-items: flex-end;
    padding: 0 1.5rem 3.5rem;
}
.hc-about-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10,15,26,0.82) 0%, rgba(10,15,26,0.25) 55%, transparent 100%);
}
.hc-about-hero-content {
    position: relative;
    z-index: 1;
    max-width: 700px;
}
.hc-about-hero-eyebrow {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #5eead4;
    margin: 0 0 0.5rem;
}
.hc-about-hero-title {
    font-size: 3rem;
    font-weight: 800;
    color: #fff;
    line-height: 1.1;
    margin: 0 0 0.875rem;
}
.hc-about-hero-sub {
    font-size: 1.1rem;
    color: rgba(255,255,255,0.82);
    line-height: 1.6;
    margin: 0 0 1.5rem;
    max-width: 520px;
}
.hc-about-hero-cta {
    display: inline-block;
    background: var(--hc-primary);
    color: #fff;
    font-weight: 600;
    font-size: 0.9rem;
    padding: 0.65rem 1.5rem;
    border-radius: 8px;
    text-decoration: none;
    transition: background 0.15s;
}
.hc-about-hero-cta:hover { background: var(--hc-primary-dark); }

/* --- Shared section layout --- */
.hc-about-section {
    padding: 3.5rem 1.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.hc-about-container {
    max-width: 780px;
    margin: 0 auto;
}
.hc-about-section-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #f1f5f9;
    margin: 0 0 1rem;
}
.hc-about-section-sub {
    color: #94a3b8;
    margin-bottom: 2rem;
    font-size: 1rem;
}
.hc-about-lead {
    font-size: 1.1rem;
    color: #cbd5e1;
    line-height: 1.7;
    margin-bottom: 1.25rem;
}
.hc-about-section p {
    color: #94a3b8;
    line-height: 1.75;
    margin-bottom: 1rem;
}

/* --- Features grid --- */
.hc-about-features {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin-top: 0.5rem;
}
.hc-about-feature {
    background: #1e293b;
    border: 1px solid #334155;
    border-radius: 10px;
    padding: 1.25rem;
}
.hc-about-feature-icon {
    font-size: 1.75rem;
    margin-bottom: 0.625rem;
}
.hc-about-feature h3 {
    font-size: 0.9rem;
    font-weight: 700;
    color: #f1f5f9;
    margin: 0 0 0.5rem;
}
.hc-about-feature p {
    font-size: 0.825rem;
    color: #64748b;
    line-height: 1.6;
    margin: 0;
}

/* --- Verified section --- */
.hc-about-verified-section {
    background: rgba(13,148,136,0.07);
    border-top: 1px solid rgba(13,148,136,0.2);
    border-bottom: 1px solid rgba(13,148,136,0.2);
}
.hc-about-verified-inner {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
}
.hc-about-verified-badge {
    font-size: 3rem;
    flex-shrink: 0;
    line-height: 1;
    margin-top: 0.25rem;
}
.hc-about-disclaimer {
    font-size: 0.78rem !important;
    color: #475569 !important;
    border-top: 1px solid #1e293b;
    padding-top: 0.875rem;
    margin-top: 1rem !important;
}

/* --- Community section --- */
.hc-about-community-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
    align-items: start;
}
.hc-about-community-quote {
    background: #1e293b;
    border-left: 3px solid var(--hc-primary);
    border-radius: 0 10px 10px 0;
    padding: 1.5rem;
    align-self: center;
}
.hc-about-community-quote blockquote {
    font-size: 1rem;
    font-style: italic;
    color: #e2e8f0;
    line-height: 1.6;
    margin: 0 0 0.75rem;
}
.hc-about-community-quote cite {
    font-size: 0.78rem;
    color: #5eead4;
    font-style: normal;
    font-weight: 500;
}

/* --- ForWardAI / contact --- */
.hc-about-forwardai a { color: var(--hc-primary); }
.hc-about-forwardai a:hover { color: var(--hc-primary-light); }
.hc-about-contact {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 1.5rem;
    background: #1e293b;
    border: 1px solid #334155;
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
}
.hc-about-contact-item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    font-size: 0.9rem;
}
.hc-about-contact-item a { color: var(--hc-primary); text-decoration: none; }
.hc-about-contact-item a:hover { color: var(--hc-primary-light); text-decoration: underline; }

/* --- Bottom CTA --- */
.hc-about-cta-section {
    background: linear-gradient(135deg, var(--hc-primary-darker) 0%, var(--hc-primary-darker) 100%);
    padding: 3rem 1.5rem;
}
.hc-about-cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}
.hc-about-cta-title {
    font-size: 1.4rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 0.375rem;
}
.hc-about-cta-sub {
    color: rgba(255,255,255,0.7);
    font-size: 0.9rem;
    margin: 0;
}
.hc-about-cta-btns {
    display: flex;
    gap: 0.75rem;
    flex-shrink: 0;
}
.hc-about-btn-primary {
    background: var(--hc-primary);
    color: #fff;
    font-weight: 600;
    font-size: 0.875rem;
    padding: 0.65rem 1.25rem;
    border-radius: 8px;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s;
}
.hc-about-btn-primary:hover { background: var(--hc-primary-dark); }
.hc-about-btn-secondary {
    background: rgba(255,255,255,0.1);
    color: #fff;
    font-weight: 600;
    font-size: 0.875rem;
    padding: 0.65rem 1.25rem;
    border-radius: 8px;
    text-decoration: none;
    white-space: nowrap;
    border: 1px solid rgba(255,255,255,0.2);
    transition: background 0.15s;
}
.hc-about-btn-secondary:hover { background: rgba(255,255,255,0.18); }

/* --- About page responsive --- */
@media (max-width: 768px) {
    .hc-about-hero-title { font-size: 2.25rem; }
    .hc-about-features { grid-template-columns: repeat(2, 1fr); }
    .hc-about-community-inner { grid-template-columns: 1fr; }
    .hc-about-cta-inner { flex-direction: column; align-items: flex-start; }
    .hc-about-cta-btns { flex-wrap: wrap; }
    .hc-about-verified-inner { flex-direction: column; gap: 1rem; }
}
@media (max-width: 480px) {
    .hc-about-hero { min-height: 360px; padding-bottom: 2.5rem; }
    .hc-about-hero-title { font-size: 1.85rem; }
    .hc-about-features { grid-template-columns: 1fr; }
}

/* --- Admin media manager — stack profile/banner cards on small screens --- */
@media (max-width: 700px) {
    .hc-media-top-grid {
        grid-template-columns: 1fr !important;
    }
}

/* =============================================================
   ADMIN PARTNERS PAGE — MOBILE RESPONSIVE
   ============================================================= */

/* At 768px: hide Category + Status columns, keep Name + Actions */
@media (max-width: 768px) {
    /* Hide Category (2nd col) and Status (3rd col) header and cells */
    .hc-admin-table-wrap th:nth-child(2),
    .hc-admin-table-wrap td:nth-child(2),
    .hc-admin-table-wrap th:nth-child(3),
    .hc-admin-table-wrap td:nth-child(3) {
        display: none;
    }

    /* Ensure Actions column (4th) fits and buttons are accessible */
    .hc-admin-table-wrap th:nth-child(4),
    .hc-admin-table-wrap td:nth-child(4) {
        width: auto;
        white-space: nowrap;
    }

    /* Bigger tap targets for action buttons on mobile */
    .hc-admin-table-wrap .btn-sm {
        padding: 0.4rem 0.75rem !important;
        font-size: 0.82rem !important;
        min-height: 36px;
        display: inline-flex;
        align-items: center;
    }

    /* Let partner name truncate gracefully */
    .hc-row-name {
        max-width: 160px;
    }

    /* Allow table to scroll horizontally if still tight */
    .hc-admin-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Partners page header: stack vertically on mobile */
    .page-header > div:last-child {
        flex-wrap: wrap;
    }
}

/* At 480px: switch to card layout — each row becomes its own block */
@media (max-width: 480px) {
    .hc-admin-table-wrap thead {
        display: none; /* hide column headers — labels come from data-label */
    }

    .hc-admin-table-wrap table,
    .hc-admin-table-wrap tbody,
    .hc-admin-table-wrap tr,
    .hc-admin-table-wrap td {
        display: block;
        width: 100%;
    }

    .hc-admin-table-wrap tr {
        border-bottom: 1px solid #e2e8f0;
        padding: 0.75rem 1rem;
    }

    .hc-admin-table-wrap tr:last-child {
        border-bottom: none;
    }

    /* Re-show all columns in card mode */
    .hc-admin-table-wrap td:nth-child(2),
    .hc-admin-table-wrap td:nth-child(3) {
        display: block;
    }

    /* Row 1: partner name (full width) */
    .hc-admin-table-wrap td:nth-child(1) {
        padding: 0 0 0.5rem 0;
        border-bottom: none;
    }

    /* Row 2: category */
    .hc-admin-table-wrap td:nth-child(2) {
        padding: 0 0 0.375rem 0;
        border-bottom: none;
    }

    /* Row 3: status pills */
    .hc-admin-table-wrap td:nth-child(3) {
        padding: 0 0 0.5rem 0;
        border-bottom: none;
    }

    /* Row 4: action buttons — left-aligned in card */
    .hc-admin-table-wrap td:nth-child(4) {
        padding: 0;
        border-bottom: none;
        text-align: left !important;
    }

    .hc-admin-table-wrap td:nth-child(4) > div {
        justify-content: flex-start !important;
    }

    /* Unlock partner name width in card mode */
    .hc-row-name {
        max-width: none;
        white-space: normal;
    }
}

/* =============================================================
   FOOTER V2 — 4-column layout
   ============================================================= */

.hc-footer-v2 {
    background: #f3f4f6;
    margin-top: 3rem;
    padding: 3rem 1.5rem 0;
    font-size: 0.875rem;
    color: #374151;
}

.hc-footer-v2-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2.5rem;
    max-width: 1200px;
    margin: 0 auto;
    padding-bottom: 2.5rem;
}

/* Col 1 — Brand */
.hc-footer-v2-brand {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.hc-footer-v2-tagline {
    font-size: 1.25rem;
    font-weight: 800;
    font-family: Georgia, 'Times New Roman', serif;
    color: #111827;
    line-height: 1.2;
    margin: 0;
}

.hc-footer-v2-logo-img {
    height: 80px;
    width: auto;
    max-width: 220px;
    object-fit: contain;
    border-radius: 6px;
    display: block;
}

.hc-footer-v2-logo-text {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--hc-primary);
    text-decoration: none;
}
.hc-footer-v2-logo-text:hover { color: var(--hc-primary-dark); text-decoration: none; }

/* Column headers */
.hc-footer-v2-col-header {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #6b7280;
    margin: 0 0 1rem;
}

/* Nav/resource link lists */
.hc-footer-v2-link-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.hc-footer-v2-link-list a {
    color: #374151;
    text-decoration: none;
    line-height: 1.35;
}
.hc-footer-v2-link-list a:hover {
    color: var(--hc-primary);
    text-decoration: underline;
}

/* Contact column */
.hc-footer-v2-contact-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.hc-footer-v2-contact-company {
    font-weight: 700;
    color: #111827;
}

.hc-footer-v2-contact-icon {
    display: inline-block;
    width: 1.25rem;
    text-align: center;
    margin-right: 0.25rem;
    font-size: 0.85rem;
}

.hc-footer-v2-contact-list a {
    color: #374151;
    text-decoration: none;
}
.hc-footer-v2-contact-list a:hover {
    color: var(--hc-primary);
    text-decoration: underline;
}

.hc-footer-v2-disclaimer {
    margin: 1.25rem 0 0;
    font-size: 0.75rem;
    color: #9ca3af;
    line-height: 1.5;
}

/* Full-width copyright bar */
.hc-footer-v2-copyright {
    border-top: 1px solid #e5e7eb;
    text-align: center;
    font-size: 0.75rem;
    color: #6b7280;
    padding: 1rem 0;
    max-width: 1200px;
    margin: 0 auto;
}

/* Responsive: 2-column tablet, 1-column mobile */
@media (max-width: 900px) {
    .hc-footer-v2-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 540px) {
    .hc-footer-v2-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

/* =====================================================
   Support Local Page (.sl-* prefix)
   HC #79 — Visual redesign
   ===================================================== */

/* ── Hero ── */
.sl-hero {
    background: linear-gradient(135deg, #0f766e 0%, #134e4a 100%);
    color: #fff;
    padding: 4rem 1.5rem 4.5rem;
    text-align: center;
}
.sl-hero h1 {
    font-size: 2.4rem;
    font-weight: 800;
    margin: 0 0 0.75rem;
    line-height: 1.2;
}
.sl-hero p {
    font-size: 1.1rem;
    color: #99f6e4;
    max-width: 620px;
    margin: 0 auto;
    line-height: 1.6;
}

/* ── Stats bar ── */
.sl-stats {
    display: flex;
    justify-content: center;
    gap: 2.5rem;
    max-width: 700px;
    margin: -2rem auto 0;
    padding: 1.5rem 2rem;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.1);
    position: relative;
    z-index: 2;
}
.sl-stat {
    text-align: center;
}
.sl-stat .sl-stat-num {
    display: block;
    font-size: 1.6rem;
    font-weight: 800;
    color: #0f766e;
    line-height: 1;
}
.sl-stat .sl-stat-label {
    display: block;
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 600;
    margin-top: 0.3rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ── Action cards ── */
.sl-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.25rem;
    max-width: 1000px;
    margin: 2.5rem auto 0;
    padding: 0 1.5rem;
}
.sl-card {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    padding: 1.75rem 1.5rem;
    border-top: 4px solid #14b8a6;
    transition: transform 0.2s, box-shadow 0.2s;
}
.sl-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 28px rgba(0,0,0,0.12);
}
.sl-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin-bottom: 1rem;
}
.sl-card-icon.shop { background: #f0fdfa; }
.sl-card-icon.events { background: #eff6ff; }
.sl-card-icon.share { background: #fef3c7; }
.sl-card-icon.listed { background: #fce7f3; }
.sl-card h2 {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
    color: #0f766e;
}
.sl-card p {
    font-size: 0.9rem;
    color: #475569;
    margin: 0 0 1rem;
    line-height: 1.55;
}
.sl-card ul {
    margin: 0 0 1.25rem;
    padding-left: 1.1rem;
}
.sl-card ul li {
    font-size: 0.88rem;
    color: #475569;
    margin-bottom: 0.3rem;
}
.sl-card a.sl-cta {
    display: inline-block;
    font-size: 0.85rem;
    font-weight: 700;
    color: #fff;
    background: #0f766e;
    text-decoration: none;
    border-radius: 8px;
    padding: 0.5rem 1rem;
    transition: background 0.15s;
}
.sl-card a.sl-cta:hover {
    background: #134e4a;
}

/* ── Why it matters sections ── */
.sl-body {
    max-width: 900px;
    margin: 3.5rem auto;
    padding: 0 1.5rem;
}
.sl-body-heading {
    text-align: center;
    margin-bottom: 2.5rem;
}
.sl-body-heading h2 {
    font-size: 1.6rem;
    font-weight: 800;
    color: #134e4a;
    margin: 0 0 0.5rem;
}
.sl-body-heading p {
    font-size: 0.95rem;
    color: #64748b;
    margin: 0;
}
.sl-sections {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.5rem;
}
.sl-section {
    background: #f8fafc;
    border-radius: 14px;
    padding: 1.75rem;
    border: 1px solid #e2e8f0;
    transition: border-color 0.2s;
}
.sl-section:hover {
    border-color: #99f6e4;
}
.sl-section-icon {
    font-size: 1.75rem;
    display: block;
    margin-bottom: 0.75rem;
}
.sl-section h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
    color: #134e4a;
}
.sl-section p {
    font-size: 0.9rem;
    color: #475569;
    margin: 0;
    line-height: 1.65;
}

/* ── FAQ ── */
.sl-faq {
    max-width: 800px;
    margin: 0 auto 3rem;
    padding: 0 1.5rem;
}
.sl-faq-heading {
    text-align: center;
    margin-bottom: 1.5rem;
}
.sl-faq-heading h2 {
    font-size: 1.5rem;
    font-weight: 800;
    color: #134e4a;
    margin: 0;
}
.sl-faq-item {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 0.75rem;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.sl-faq-item:hover {
    border-color: #99f6e4;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.sl-faq-item h3 {
    font-size: 0.975rem;
    font-weight: 700;
    color: #0f766e;
    margin: 0 0 0.5rem;
}
.sl-faq-item p {
    font-size: 0.9rem;
    color: #475569;
    margin: 0;
    line-height: 1.6;
}
.sl-faq-item p a {
    color: #0f766e;
    font-weight: 600;
}

/* ── Bottom CTA ── */
.sl-bottom-cta {
    background: linear-gradient(135deg, #134e4a 0%, #0f766e 100%);
    color: #fff;
    text-align: center;
    padding: 3rem 1.5rem;
}
.sl-bottom-cta h2 {
    font-size: 1.5rem;
    font-weight: 800;
    margin: 0 0 0.5rem;
}
.sl-bottom-cta p {
    color: #99f6e4;
    font-size: 0.95rem;
    margin: 0 0 1.5rem;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
}
.sl-bottom-cta .sl-bottom-btns {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
}
.sl-bottom-cta a {
    display: inline-block;
    padding: 0.65rem 1.5rem;
    border-radius: 8px;
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}
.sl-bottom-cta a.sl-btn-primary {
    background: #fff;
    color: #0f766e;
}
.sl-bottom-cta a.sl-btn-primary:hover {
    background: #f0fdfa;
}
.sl-bottom-cta a.sl-btn-outline {
    background: transparent;
    color: #fff;
    border: 2px solid rgba(255,255,255,0.4);
}
.sl-bottom-cta a.sl-btn-outline:hover {
    border-color: #fff;
    background: rgba(255,255,255,0.1);
}

/* ── Support Local responsive ── */
@media (max-width: 768px) {
    .sl-hero h1 { font-size: 2rem; }
    .sl-cards { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .sl-hero h1 { font-size: 1.75rem; }
    .sl-hero { padding: 3rem 1.5rem 3.5rem; }
    .sl-stats {
        flex-direction: row;
        gap: 1.25rem;
        padding: 1rem 1.25rem;
        margin-top: -1.25rem;
    }
    .sl-stat .sl-stat-num { font-size: 1.3rem; }
    .sl-stat .sl-stat-label { font-size: 0.7rem; }
    .sl-sections { grid-template-columns: 1fr; }
    .sl-cards { grid-template-columns: 1fr; }
}

/* ── Alt text controls (HC #65) ───────────────────────────────────────── */

.alt-text-section {
    margin-bottom: .75rem;
}

.alt-text-row {
    display: flex;
    gap: .4rem;
    align-items: center;
}

.alt-text-input {
    font-size: .82rem !important;
    padding: .3rem .5rem !important;
    flex: 1;
    min-width: 0;
}

.alt-text-generate-btn {
    white-space: nowrap;
    font-size: .78rem;
    padding: .3rem .65rem;
    background: var(--hc-primary);
    color: #fff;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background .15s;
}

.alt-text-generate-btn:hover:not(:disabled) {
    background: var(--hc-primary-dark);
}

.alt-text-generate-btn:disabled {
    opacity: .6;
    cursor: not-allowed;
}

.alt-text-photo-card {
    border-radius: 8px;
    overflow: hidden;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.alt-text-photo-footer {
    padding: .45rem .5rem;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.alt-text-photo-actions {
    display: flex;
    gap: .35rem;
    justify-content: flex-end;
}

/* =============================================================
   SEO HEALTH ADMIN PAGE (.seo-* prefix)
   ============================================================= */

.seo-summary-row {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.seo-big-number {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.seo-big-value {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.1;
}

.seo-big-label {
    font-size: 0.85rem;
    color: #6b7280;
    margin-top: 0.15rem;
}

.seo-progress-bar-wrapper {
    flex: 1;
    min-width: 180px;
}

.seo-progress-bar {
    height: 10px;
    background: #e5e7eb;
    border-radius: 5px;
    overflow: hidden;
}

.seo-progress-fill {
    height: 100%;
    background: #22c55e;
    border-radius: 5px;
    transition: width 0.4s ease;
}

.seo-issue-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.seo-issue-tag {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    background: #fef3c7;
    color: #92400e;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 500;
}

.seo-table th {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6b7280;
    border-bottom: 2px solid #e5e7eb;
}

.seo-table td {
    vertical-align: middle;
    font-size: 0.9rem;
}

.seo-table code {
    font-size: 0.8rem;
    background: #f1f5f9;
    padding: 0.1rem 0.35rem;
    border-radius: 3px;
    color: #334155;
}

/* --- Photo Audit Styles --- */

.seo-photo-summary-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.seo-photo-count-zero {
    color: #ef4444;
    font-weight: 700;
}

.seo-photo-count-ok {
    color: #22c55e;
    font-weight: 600;
}

.seo-photo-audit-progress {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 500px;
}

.seo-photo-audit-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.seo-photo-audit-table td,
.seo-photo-audit-table th {
    white-space: nowrap;
}

.seo-photo-status-alert {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    background: #fee2e2;
    color: #991b1b;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 600;
}

.seo-photo-status-warning {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    background: #fef3c7;
    color: #92400e;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 600;
}

.seo-photo-status-error {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    background: #f3f4f6;
    color: #6b7280;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 600;
}

/* ======================================================   REUSABLE PAGE TEMPLATES  (HC #35)
   All classes prefixed .hc-tpl-*
   ============================================================= */

/* -- Hero ---------------------------------------------------- */

.hc-tpl-hero {
    background: linear-gradient(135deg, var(--hc-primary-dark) 0%, var(--hc-primary-darker) 100%);
    color: #fff;
    text-align: center;
    padding: 3rem 1.5rem 2.5rem;
}

.hc-tpl-hero-content {
    max-width: 720px;
    margin: 0 auto;
}

.hc-tpl-hero-eyebrow {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--hc-primary-lightest);
    margin-bottom: 0.5rem;
}

.hc-tpl-hero-title {
    font-size: 2rem;
    font-weight: 800;
    margin: 0 0 0.5rem;
    line-height: 1.2;
}

.hc-tpl-hero-subtitle {
    color: var(--hc-primary-lightest);
    font-size: 1rem;
    margin: 0;
    line-height: 1.6;
}

/* -- Breadcrumb ---------------------------------------------- */

.hc-tpl-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.75rem 1.5rem;
    font-size: 0.8rem;
    color: #64748b;
}

.hc-tpl-breadcrumb-link {
    color: var(--hc-primary);
    text-decoration: none;
    font-weight: 600;
}

.hc-tpl-breadcrumb-link:hover {
    text-decoration: underline;
}

.hc-tpl-breadcrumb-sep {
    color: #94a3b8;
    font-size: 0.9rem;
}

.hc-tpl-breadcrumb-current {
    color: #334155;
    font-weight: 600;
}

/* -- Card Grid ----------------------------------------------- */

.hc-tpl-card-grid {
    display: grid;
    gap: 1.5rem;
}

.hc-tpl-cols-1 { grid-template-columns: 1fr; }
.hc-tpl-cols-2 { grid-template-columns: repeat(2, 1fr); }
.hc-tpl-cols-3 { grid-template-columns: repeat(3, 1fr); }
.hc-tpl-cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 960px) {
    .hc-tpl-cols-4 { grid-template-columns: repeat(2, 1fr); }
    .hc-tpl-cols-3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .hc-tpl-cols-4,
    .hc-tpl-cols-3,
    .hc-tpl-cols-2 { grid-template-columns: 1fr; }
}

/* -- Card ---------------------------------------------------- */

.hc-tpl-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    overflow: hidden;
    transition: box-shadow 0.18s, transform 0.18s;
    display: flex;
    flex-direction: column;
}

.hc-tpl-card:hover {
    box-shadow: 0 6px 24px rgba(13, 148, 136, 0.12);
    transform: translateY(-2px);
}

.hc-tpl-card-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    background: #f1f5f9;
}

.hc-tpl-card-body {
    padding: 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* -- Section ------------------------------------------------- */

.hc-tpl-section {
    padding: 2.5rem 1.5rem;
}

.hc-tpl-section-alt {
    background: #f8fafc;
}

.hc-tpl-section-inner {
    max-width: 960px;
    margin: 0 auto;
}

.hc-tpl-section-heading {
    margin-bottom: 1.5rem;
}

.hc-tpl-section-heading h2 {
    font-size: 1.4rem;
    font-weight: 800;
    color: #0f172a;
    margin: 0 0 0.35rem;
}

.hc-tpl-section-heading p {
    font-size: 0.9rem;
    color: #64748b;
    margin: 0;
    line-height: 1.5;
}

/* -- Empty State --------------------------------------------- */

.hc-tpl-empty-state {
    text-align: center;
    padding: 3rem 1.5rem;
}

.hc-tpl-empty-state-emoji {
    font-size: 2.5rem;
    margin-bottom: 0.75rem;
}

.hc-tpl-empty-state-message {
    font-size: 1rem;
    color: #64748b;
    margin: 0 0 1rem;
}

.hc-tpl-empty-state-link {
    color: var(--hc-primary);
    font-weight: 600;
    text-decoration: none;
    font-size: 0.9rem;
}

.hc-tpl-empty-state-link:hover {
    text-decoration: underline;
}

/* -- Responsive ---------------------------------------------- */

@media (max-width: 640px) {
    .hc-tpl-hero { padding: 2rem 1rem 1.5rem; }
    .hc-tpl-hero-title { font-size: 1.5rem; }
}

/* =============================================================
   V2 PUBLIC SITE REDESIGN (HC #29, #30)
   All classes use .hc-v2-* prefix to avoid conflicts.
   ============================================================= */

.hc-v2-nav { display:flex; align-items:center; justify-content:space-between; padding:.65rem 1.5rem; background:rgba(255,255,255,.97); backdrop-filter:blur(12px); border-bottom:1px solid rgba(226,232,240,.8); position:sticky; top:0; z-index:100; transition:box-shadow .2s; }
.hc-v2-nav-brand { font-size:1.1rem; font-weight:700; color:#0f766e; text-decoration:none; display:flex; align-items:center; gap:.4rem; white-space:nowrap; }
.hc-v2-nav-brand:hover { color:#0d9488; }
.hc-v2-nav-links { display:flex; align-items:center; gap:.25rem; }
.hc-v2-nav-links a { color:#475569; text-decoration:none; font-size:.9rem; font-weight:500; padding:.4rem .75rem; border-radius:8px; transition:color .15s,background .15s; }
.hc-v2-nav-links a:hover { color:#0f766e; background:#f0fdfa; }
.hc-v2-nav-links a.hc-v2-nav-active { color:#0d9488; background:#f0fdfa; font-weight:600; }
.hc-v2-nav-hamburger { display:none; background:none; border:none; font-size:1.5rem; color:#374151; cursor:pointer; padding:.25rem .5rem; line-height:1; }
@media(max-width:640px){
    .hc-v2-nav-hamburger{display:block}
    .hc-v2-nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid #e5e7eb;flex-direction:column;align-items:stretch;gap:0;padding:.5rem 0;box-shadow:0 4px 12px rgba(0,0,0,.08)}
    .hc-v2-nav-links a{padding:.75rem 1.5rem;border-radius:0}
    .hc-v2-nav.hc-v2-nav-open .hc-v2-nav-links{display:flex}
}

.hc-v2-hero { position:relative; background:linear-gradient(135deg,#0f4f4a 0%,#0d9488 40%,#06b6d4 100%); padding:5rem 1.5rem 4.5rem; text-align:center; overflow:hidden; margin-bottom:0; }
.hc-v2-hero-dots { position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.1) 1px,transparent 1px); background-size:24px 24px; z-index:0; }
.hc-v2-hero-glow { position:absolute; top:-30%; left:50%; transform:translateX(-50%); width:600px; height:600px; background:radial-gradient(circle,rgba(20,184,166,.25) 0%,transparent 70%); z-index:0; pointer-events:none; }
.hc-v2-hero-content { position:relative; z-index:1; max-width:680px; margin:0 auto; }
.hc-v2-hero-eyebrow { display:inline-block; font-size:.75rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#5eead4; background:rgba(255,255,255,.08); border:1px solid rgba(94,234,212,.2); padding:.3rem 1rem; border-radius:9999px; margin-bottom:1.25rem; }
.hc-v2-hero-title { font-size:3.25rem; font-weight:800; color:#fff; letter-spacing:-.03em; line-height:1.1; margin:0 0 .75rem; text-shadow:0 2px 12px rgba(0,0,0,.12); }
.hc-v2-hero-subtitle { font-size:1.2rem; color:rgba(255,255,255,.8); margin:0 0 2rem; font-weight:400; line-height:1.5; }
.hc-v2-hero-search-form { width:100%; max-width:480px; margin:0 auto; }
.hc-v2-hero-search { display:flex; align-items:center; gap:.5rem; background:rgba(255,255,255,.15); backdrop-filter:blur(12px); border:1px solid rgba(255,255,255,.25); border-radius:50px; padding:.55rem .55rem .55rem 1.15rem; transition:border-color .2s,background .2s; }
.hc-v2-hero-search:focus-within { border-color:rgba(255,255,255,.5); background:rgba(255,255,255,.22); }
.hc-v2-hero-search svg { flex-shrink:0; opacity:.7; color:#fff; }
.hc-v2-hero-search-input { flex:1; background:transparent; border:none; outline:none; color:#fff; font-size:.95rem; min-width:0; }
.hc-v2-hero-search-input::placeholder { color:rgba(255,255,255,.5); }
.hc-v2-hero-search-btn { background:#fff; border:none; border-radius:50px; color:#0d9488; font-size:.85rem; font-weight:700; padding:.5rem 1.25rem; cursor:pointer; flex-shrink:0; transition:background .2s,transform .15s; }
.hc-v2-hero-search-btn:hover { background:#f0fdfa; transform:scale(1.03); }
.hc-v2-hero-actions { display:flex; gap:.75rem; justify-content:center; margin-top:1.5rem; }
.hc-v2-btn { display:inline-block; font-weight:700; font-size:.9rem; padding:.6rem 1.5rem; border-radius:8px; text-decoration:none; transition:background .18s,transform .15s; }
.hc-v2-btn-primary { background:#fff; color:#0d9488; }
.hc-v2-btn-primary:hover { background:#f0fdfa; color:#0d9488; transform:translateY(-1px); }
.hc-v2-btn-outline { background:transparent; color:#fff; border:2px solid rgba(255,255,255,.35); }
.hc-v2-btn-outline:hover { border-color:#fff; color:#fff; background:rgba(255,255,255,.08); }
@media(max-width:768px){ .hc-v2-hero{padding:3.5rem 1rem 3rem} .hc-v2-hero-title{font-size:2.25rem} .hc-v2-hero-subtitle{font-size:1rem} }
@media(max-width:480px){ .hc-v2-hero-title{font-size:1.85rem} .hc-v2-hero-actions{flex-direction:column;align-items:center} }

.hc-v2-value { background:#fff; padding:3.5rem 1.5rem; }
.hc-v2-value-inner { max-width:1000px; margin:0 auto; text-align:center; }
.hc-v2-value-eyebrow { font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#0d9488; margin-bottom:.5rem; }
.hc-v2-value-title { font-size:1.75rem; font-weight:800; color:#0f172a; margin:0 0 .75rem; line-height:1.25; }
.hc-v2-value-body { font-size:1rem; color:#475569; line-height:1.7; max-width:640px; margin:0 auto 2.5rem; }
.hc-v2-value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.hc-v2-value-card { background:#f8fafc; border:1px solid #e2e8f0; border-radius:14px; padding:1.75rem 1.25rem; text-align:center; transition:transform .2s,border-color .2s,box-shadow .2s; }
.hc-v2-value-card:hover { transform:translateY(-3px); border-color:#99f6e4; box-shadow:0 4px 16px rgba(13,148,136,.08); }
.hc-v2-value-icon { font-size:2rem; margin-bottom:.75rem; display:block; }
.hc-v2-value-card h3 { font-size:1rem; font-weight:700; color:#0f172a; margin:0 0 .4rem; }
.hc-v2-value-card p { font-size:.88rem; color:#64748b; line-height:1.55; margin:0; }
@media(max-width:768px){ .hc-v2-value-grid{grid-template-columns:1fr 1fr} }
@media(max-width:480px){ .hc-v2-value-grid{grid-template-columns:1fr} .hc-v2-value-title{font-size:1.4rem} }

.hc-v2-featured { padding:3rem 1.5rem; background:#f8fafc; }
.hc-v2-section-header { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; max-width:1200px; margin-left:auto; margin-right:auto; }
.hc-v2-section-title { font-size:1.5rem; font-weight:800; color:#0f172a; margin:0; }
.hc-v2-section-link { font-size:.85rem; color:#0d9488; font-weight:600; text-decoration:none; }
.hc-v2-section-link:hover { text-decoration:underline; }
.hc-v2-featured-scroll { display:flex; gap:1.25rem; overflow-x:auto; padding-bottom:1rem; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; max-width:1200px; margin:0 auto; }
.hc-v2-featured-scroll::-webkit-scrollbar { height:4px; }
.hc-v2-featured-scroll::-webkit-scrollbar-track { background:#e2e8f0; border-radius:2px; }
.hc-v2-featured-scroll::-webkit-scrollbar-thumb { background:#0d9488; border-radius:2px; }
.hc-v2-partner-card { flex:0 0 260px; scroll-snap-align:start; background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:1.5rem 1.25rem 1.25rem; display:flex; flex-direction:column; align-items:center; text-align:center; text-decoration:none; color:inherit; transition:box-shadow .22s,transform .22s,border-color .22s; box-shadow:0 2px 12px rgba(0,0,0,.06); }
.hc-v2-partner-card:hover { box-shadow:0 8px 28px rgba(13,148,136,.14); transform:translateY(-4px); border-color:rgba(13,148,136,.25); }
.hc-v2-partner-logo { width:88px; height:88px; border-radius:50%; object-fit:cover; border:3px solid #f0fdfa; margin-bottom:1rem; background:#f8fafc; box-shadow:0 2px 8px rgba(13,148,136,.1); }
.hc-v2-partner-logo-placeholder { width:88px; height:88px; border-radius:50%; background:linear-gradient(135deg,#0d9488,#06b6d4); display:flex; align-items:center; justify-content:center; font-size:2rem; margin-bottom:1rem; flex-shrink:0; box-shadow:0 2px 8px rgba(13,148,136,.15); }
.hc-v2-partner-name { font-size:.95rem; font-weight:700; color:#0f172a; margin-bottom:.25rem; line-height:1.3; }
.hc-v2-partner-tagline { font-size:.8rem; color:#64748b; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin-bottom:.5rem; }
.hc-v2-badge-open { font-size:.7rem; font-weight:700; color:#166534; background:#dcfce7; border:1px solid #86efac; border-radius:9999px; padding:.15rem .6rem; }
.hc-v2-badge-closed { font-size:.7rem; font-weight:600; color:#64748b; background:#f1f5f9; border:1px solid #cbd5e1; border-radius:9999px; padding:.15rem .6rem; }
@media(max-width:640px){ .hc-v2-partner-card{flex:0 0 200px} .hc-v2-featured{padding:2rem 1rem} }

.hc-v2-map-section { padding:3rem 1.5rem; background:#fff; }
.hc-v2-map-inner { max-width:1200px; margin:0 auto; }
.hc-v2-map-frame { border-radius:16px; overflow:hidden; border:1px solid #e2e8f0; box-shadow:0 2px 12px rgba(0,0,0,.06); }
.hc-v2-map-frame iframe { display:block; border:0; width:100%; }

.hc-v2-categories { padding:3rem 1.5rem; background:#f8fafc; }
.hc-v2-categories-inner { max-width:1200px; margin:0 auto; }
.hc-v2-cat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.hc-v2-cat-card { position:relative; border-radius:14px; overflow:hidden; aspect-ratio:4/3; display:flex; align-items:flex-end; text-decoration:none; transition:transform .25s,box-shadow .25s; box-shadow:0 2px 12px rgba(0,0,0,.08); }
.hc-v2-cat-card:hover { transform:scale(1.03); box-shadow:0 8px 28px rgba(0,0,0,.15); }
.hc-v2-cat-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; transition:transform .4s ease; }
.hc-v2-cat-card:hover img { transform:scale(1.08); }
.hc-v2-cat-card::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.05) 55%); z-index:1; }
.hc-v2-cat-card span { position:relative; z-index:2; color:#fff; font-weight:800; font-size:1.05rem; padding:1.15rem 1.35rem; width:100%; text-shadow:0 1px 6px rgba(0,0,0,.5); }
@media(max-width:768px){ .hc-v2-cat-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:480px){ .hc-v2-cat-grid{grid-template-columns:1fr} }

.hc-v2-about { background:linear-gradient(135deg,#f0fdfa 0%,#e0f2fe 100%); padding:3.5rem 1.5rem; text-align:center; }
.hc-v2-about-inner { max-width:680px; margin:0 auto; }
.hc-v2-about-cta { display:inline-block; background:#0d9488; color:#fff; font-weight:700; font-size:.9rem; padding:.65rem 1.75rem; border-radius:9999px; text-decoration:none; transition:background .18s; }
.hc-v2-about-cta:hover { background:#0f766e; color:#fff; }

.hc-v2-tag-filter { padding:1rem 1.5rem; max-width:1200px; margin:0 auto; }
.hc-v2-tag-label { font-size:.75rem; font-weight:700; color:#64748b; text-transform:uppercase; letter-spacing:.06em; margin-bottom:.5rem; }
.hc-v2-tag-pills { display:flex; flex-wrap:wrap; gap:.4rem; }

.hc-v2-breadcrumb { display:flex; align-items:center; gap:.5rem; font-size:.85rem; color:#64748b; padding:1rem 0 .5rem; flex-wrap:wrap; }
.hc-v2-breadcrumb a { color:#0d9488; text-decoration:none; font-weight:500; }
.hc-v2-breadcrumb a:hover { text-decoration:underline; }
.hc-v2-breadcrumb-sep { color:#cbd5e1; }
.hc-v2-breadcrumb-current { color:#0f172a; font-weight:600; }
.hc-v2-archive-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; padding:1.5rem 0 2rem; }
@media(max-width:768px){ .hc-v2-archive-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:480px){ .hc-v2-archive-grid{grid-template-columns:1fr} }

.hc-v2-page-hero { background:linear-gradient(135deg,#0f766e 0%,#134e4a 100%); color:#fff; padding:3.5rem 1.5rem 3rem; text-align:center; position:relative; overflow:hidden; }
.hc-v2-page-hero-dots { position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px); background-size:20px 20px; z-index:0; }
.hc-v2-page-hero-content { position:relative; z-index:1; }
.hc-v2-page-hero h1 { font-size:2.25rem; font-weight:800; margin:0 0 .5rem; }
.hc-v2-page-hero p { color:#99f6e4; font-size:1.05rem; margin:0; max-width:560px; margin-left:auto; margin-right:auto; }
.hc-v2-page-hero-cta { display:inline-block; margin-top:1.25rem; background:#fff; color:#0f766e; font-weight:700; padding:.6rem 1.5rem; border-radius:8px; text-decoration:none; font-size:.9rem; transition:background .15s,transform .15s; }
.hc-v2-page-hero-cta:hover { background:#f0fdfa; transform:translateY(-1px); }
@media(max-width:640px){ .hc-v2-page-hero h1{font-size:1.6rem} .hc-v2-page-hero{padding:2.5rem 1.5rem 2rem} }

.hc-v2-page-body { max-width:1000px; margin:2rem auto; padding:0 1.5rem; }
.hc-v2-empty { text-align:center; padding:4rem 1.5rem; background:#fff; border-radius:14px; border:1px solid #e2e8f0; margin:2rem 0; }
.hc-v2-empty-icon { font-size:3rem; margin-bottom:1rem; display:block; opacity:.5; }
.hc-v2-empty h2 { font-size:1.3rem; font-weight:700; color:#0f172a; margin:0 0 .5rem; }
.hc-v2-empty p { font-size:.95rem; color:#64748b; margin:0 0 1.25rem; }
.hc-v2-empty a { color:#0d9488; font-weight:600; text-decoration:none; }
.hc-v2-empty a:hover { text-decoration:underline; }

.hc-v2-ev-card { display:flex; gap:1.25rem; padding:1.25rem; background:#fff; border:1px solid #e2e8f0; border-radius:14px; text-decoration:none; color:inherit; transition:box-shadow .2s,transform .2s; margin-bottom:1rem; }
.hc-v2-ev-card:hover { box-shadow:0 4px 16px rgba(13,148,136,.1); transform:translateY(-2px); }
.hc-v2-ev-date { flex-shrink:0; width:60px; text-align:center; background:#0f766e; color:#fff; border-radius:10px; padding:.6rem 0; align-self:flex-start; }
.hc-v2-ev-date .hc-v2-ev-month { font-size:.7rem; font-weight:700; text-transform:uppercase; display:block; }
.hc-v2-ev-date .hc-v2-ev-day { font-size:1.5rem; font-weight:800; line-height:1; display:block; }
.hc-v2-ev-info h3 { font-size:1.05rem; font-weight:700; margin:0 0 .3rem; color:#1e293b; }
.hc-v2-ev-meta { font-size:.85rem; color:#64748b; margin:0 0 .4rem; }
.hc-v2-ev-desc { font-size:.9rem; color:#475569; margin:0; line-height:1.55; }
.hc-v2-ev-img { width:120px; height:80px; object-fit:cover; border-radius:10px; flex-shrink:0; }
.hc-v2-ev-tags { display:flex; gap:.4rem; flex-wrap:wrap; margin-top:.5rem; }
.hc-v2-ev-tag { font-size:.72rem; font-weight:600; color:#0f766e; background:#f0fdfa; border:1px solid #99f6e4; padding:.15rem .55rem; border-radius:20px; }
.hc-v2-ev-section-title { font-size:1.3rem; font-weight:800; color:#134e4a; margin:2.5rem 0 1rem; padding-bottom:.5rem; border-bottom:2px solid #14b8a6; }
@media(max-width:640px){
    .hc-v2-ev-card{flex-direction:column;gap:.75rem}
    .hc-v2-ev-date{width:auto;display:inline-flex;gap:.5rem;padding:.4rem 1rem;align-self:flex-start}
    .hc-v2-ev-date .hc-v2-ev-month,.hc-v2-ev-date .hc-v2-ev-day{display:inline;font-size:.9rem}
    .hc-v2-ev-img{width:100%;height:160px}
}

.hc-v2-blog-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; }
.hc-v2-blog-card { background:#fff; border:1px solid #e2e8f0; border-radius:14px; overflow:hidden; text-decoration:none; color:inherit; transition:box-shadow .2s,transform .2s; display:flex; flex-direction:column; }
.hc-v2-blog-card:hover { box-shadow:0 8px 24px rgba(13,148,136,.12); transform:translateY(-3px); }
.hc-v2-blog-img { width:100%; aspect-ratio:16/9; object-fit:cover; background:#f1f5f9; }
.hc-v2-blog-img-placeholder { width:100%; aspect-ratio:16/9; background:linear-gradient(135deg,#0d9488,#06b6d4); display:flex; align-items:center; justify-content:center; }
.hc-v2-blog-img-placeholder span { font-size:2rem; color:rgba(255,255,255,.3); }
.hc-v2-blog-body { padding:1.25rem; flex:1; display:flex; flex-direction:column; }
.hc-v2-blog-date { font-size:.75rem; color:#94a3b8; font-weight:600; text-transform:uppercase; letter-spacing:.05em; margin-bottom:.4rem; }
.hc-v2-blog-title { font-size:1.1rem; font-weight:700; color:#0f172a; margin:0 0 .5rem; line-height:1.35; }
.hc-v2-blog-excerpt { font-size:.88rem; color:#64748b; line-height:1.6; flex:1; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.hc-v2-blog-read { font-size:.82rem; font-weight:600; color:#0d9488; margin-top:.75rem; }
@media(max-width:640px){ .hc-v2-blog-grid{grid-template-columns:1fr} }

.hc-v2-job-card { display:flex; gap:1.25rem; padding:1.25rem; background:#fff; border:1px solid #e2e8f0; border-radius:14px; margin-bottom:1rem; text-decoration:none; color:inherit; transition:box-shadow .2s,transform .2s; }
.hc-v2-job-card:hover { box-shadow:0 4px 16px rgba(13,148,136,.1); transform:translateY(-2px); }
.hc-v2-job-icon { flex-shrink:0; width:50px; height:50px; border-radius:12px; background:linear-gradient(135deg,#0d9488,#06b6d4); display:flex; align-items:center; justify-content:center; font-size:1.3rem; color:rgba(255,255,255,.85); }
.hc-v2-job-info { flex:1; min-width:0; }
.hc-v2-job-title { font-size:1.05rem; font-weight:700; color:#0f172a; margin:0 0 .3rem; }
.hc-v2-job-company { font-size:.88rem; color:#0d9488; font-weight:600; margin:0 0 .4rem; }
.hc-v2-job-meta { font-size:.8rem; color:#64748b; display:flex; gap:.75rem; flex-wrap:wrap; align-items:center; }
.hc-v2-job-badge { display:inline-block; font-size:.72rem; font-weight:600; padding:.15rem .55rem; border-radius:20px; }
.hc-v2-job-badge-type { background:#eff6ff; color:#2563eb; border:1px solid #bfdbfe; }
.hc-v2-job-badge-cat { background:#f0fdfa; color:#0d9488; border:1px solid #99f6e4; }
@media(max-width:640px){ .hc-v2-job-card{flex-direction:column;gap:.75rem} }

.hc-v2-recent { padding:3rem 1.5rem; background:#fff; }
.hc-v2-recent-inner { max-width:1200px; margin:0 auto; }
.hc-v2-recent-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1.25rem; }
.hc-v2-recent-card { background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:1.25rem; display:flex; flex-direction:column; gap:.5rem; text-decoration:none; color:inherit; box-shadow:0 1px 4px rgba(0,0,0,.04); transition:box-shadow .2s,transform .2s; }
.hc-v2-recent-card:hover { box-shadow:0 4px 16px rgba(13,148,136,.1); transform:translateY(-2px); }
.hc-v2-recent-logo { width:56px; height:56px; border-radius:50%; object-fit:cover; border:2px solid #f0fdfa; }
.hc-v2-recent-name { font-weight:700; font-size:.95rem; color:#0f172a; }
.hc-v2-recent-tagline { font-size:.78rem; color:#64748b; line-height:1.4; }

.hc-v2-prose { max-width:760px; margin:0 auto; padding:2.5rem 1.5rem 3rem; font-size:1rem; line-height:1.75; color:#374151; }
.hc-v2-prose h1 { font-size:2rem; font-weight:800; color:#0f172a; margin:0 0 1rem; line-height:1.2; }
.hc-v2-prose h2 { font-size:1.35rem; font-weight:700; color:#134e4a; margin:2rem 0 .75rem; padding-bottom:.5rem; border-bottom:2px solid #99f6e4; }
.hc-v2-prose p { margin-bottom:1rem; }
.hc-v2-prose ul { padding-left:1.25rem; margin-bottom:1.25rem; }
.hc-v2-prose li { margin-bottom:.5rem; }
.hc-v2-prose a { color:#0d9488; font-weight:600; text-decoration:none; }
.hc-v2-prose a:hover { text-decoration:underline; }
.hc-v2-prose strong { color:#0f172a; }



/* ============================================================
   Page-specific styles (extracted from inline <style> blocks)
   ============================================================ */

/* -- Terms Page -- */
.tv1-body {
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    color: #1e293b;
    background: #f8fafc;
    margin: 0;
    line-height: 1.7;
}
.tv1-hero {
    background: linear-gradient(rgba(0,0,0,0.48), rgba(0,0,0,0.55)), url('_content/ForWardAI.HutchConnect.Module/images/pages/hero-hutch-sunset.jpg');
    background-size: cover;
    background-position: center;
    color: #fff;
    padding: 3rem 2rem 2.5rem;
    text-align: center;
}
.tv1-hero h1 {
    font-size: 2.25rem;
    font-weight: 800;
    margin: 0 0 0.5rem;
    letter-spacing: -0.02em;
}
.tv1-hero-meta {
    font-size: 0.9rem;
    opacity: 0.85;
}
.tv1-hero-intro {
    max-width: 600px;
    margin: 1rem auto 0;
    font-size: 1.05rem;
    opacity: 0.92;
}
.tv1-layout {
    display: flex;
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
    gap: 2.5rem;
}
.tv1-sidebar {
    position: sticky;
    top: 2rem;
    align-self: flex-start;
    width: 240px;
    flex-shrink: 0;
}
.tv1-sidebar-title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #64748b;
    margin-bottom: 0.75rem;
}
.tv1-sidebar a {
    display: block;
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.25rem;
    color: #475569;
    text-decoration: none;
    font-size: 0.9rem;
    border-radius: 6px;
    border-left: 3px solid transparent;
    transition: all 0.15s;
}
.tv1-sidebar a:hover {
    color: #0d9488;
    background: #f0fdfa;
    border-left-color: #0d9488;
}
.tv1-content {
    flex: 1;
    min-width: 0;
}
.tv1-section {
    background: #fff;
    border-radius: 10px;
    padding: 2rem;
    margin-bottom: 1.5rem;
    border: 1px solid #e2e8f0;
    scroll-margin-top: 1.5rem;
}
.tv1-section h2 {
    font-size: 1.35rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid #f0fdfa;
}
.tv1-section h2 span {
    color: #0d9488;
    margin-right: 0.5rem;
}
.tv1-section p,
.tv1-section ul {
    color: #475569;
    font-size: 0.95rem;
    margin: 0 0 1rem;
}
.tv1-section ul {
    padding-left: 1.5rem;
}
.tv1-section ul li {
    margin-bottom: 0.5rem;
}
.tv1-section a {
    color: #0d9488;
    text-decoration: underline;
}
.tv1-footer {
    background: #0f172a;
    color: #94a3b8;
    text-align: center;
    padding: 2rem 1.5rem;
    font-size: 0.85rem;
}
.tv1-footer a {
    color: #5eead4;
    text-decoration: none;
    margin: 0 0.75rem;
}
.tv1-footer a:hover {
    text-decoration: underline;
}
.tv1-footer-links {
    margin-bottom: 0.75rem;
}

@media (max-width: 768px) {
    .tv1-sidebar {
        display: none;
    }
    .tv1-layout {
        padding: 1.25rem 1rem;
    }
    .tv1-section {
        padding: 1.5rem;
    }
    .tv1-hero h1 {
        font-size: 1.75rem;
    }
}

/* -- Privacy Page -- */
.pp1-page {
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    color: #1e293b;
    line-height: 1.7;
    background: #f8fafc;
    min-height: 100vh;
}
.pp1-hero {
    background: linear-gradient(rgba(0,0,0,0.48), rgba(0,0,0,0.55)), url('_content/ForWardAI.HutchConnect.Module/images/pages/hero-hutch-sunset.jpg');
    background-size: cover;
    background-position: center;
    color: #fff;
    padding: 3rem 2rem;
    text-align: center;
}
.pp1-hero h1 {
    font-size: 2.25rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
}
.pp1-hero p {
    opacity: 0.9;
    font-size: 1rem;
    margin: 0;
}
.pp1-layout {
    display: flex;
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
    gap: 2.5rem;
}
.pp1-sidebar {
    position: sticky;
    top: 2rem;
    align-self: flex-start;
    min-width: 220px;
    max-width: 240px;
    background: white;
    border-radius: 10px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    padding: 1.25rem;
    flex-shrink: 0;
}
.pp1-sidebar h2 {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #94a3b8;
    margin: 0 0 0.75rem;
    font-weight: 600;
}
.pp1-sidebar a {
    display: block;
    padding: 0.45rem 0.75rem;
    font-size: 0.875rem;
    color: #475569;
    text-decoration: none;
    border-radius: 6px;
    transition: all 0.15s ease;
    border-left: 3px solid transparent;
}
.pp1-sidebar a:hover {
    background: #f0fdfa;
    color: #0d9488;
    border-left-color: #0d9488;
}
.pp1-content {
    flex: 1;
    min-width: 0;
}
.pp1-section {
    background: white;
    border-radius: 10px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    padding: 2rem;
    margin-bottom: 1.5rem;
    scroll-margin-top: 2rem;
}
.pp1-section h2 {
    font-size: 1.35rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid #ccfbf1;
}
.pp1-section p, .pp1-section ul {
    font-size: 0.95rem;
    color: #475569;
    margin: 0 0 1rem;
}
.pp1-section ul {
    padding-left: 1.25rem;
}
.pp1-section ul li {
    margin-bottom: 0.35rem;
}
.pp1-section a {
    color: #0d9488;
    text-decoration: underline;
}
.pp1-footer {
    text-align: center;
    padding: 2rem 1.5rem;
    font-size: 0.85rem;
    color: #94a3b8;
    border-top: 1px solid #e2e8f0;
    max-width: 1100px;
    margin: 1rem auto 0;
}
.pp1-footer a {
    color: #0d9488;
    text-decoration: none;
    margin: 0 0.75rem;
}
.pp1-footer a:hover {
    text-decoration: underline;
}
@media (max-width: 768px) {
    .pp1-layout {
        flex-direction: column;
        padding: 1rem;
        gap: 1rem;
    }
    .pp1-sidebar {
        position: static;
        min-width: auto;
        max-width: none;
    }
    .pp1-hero h1 {
        font-size: 1.75rem;
    }
    .pp1-section {
        padding: 1.5rem;
    }
}

/* -- Blog Post Page -- */
.bp-wrap { max-width: 760px; margin: 0 auto; padding: 2rem 1.5rem 3rem; }
.bp-back {
    font-size: 0.85rem; color: #0f766e; text-decoration: none; font-weight: 600;
    display: inline-block; margin-bottom: 1.5rem;
}
.bp-back:hover { text-decoration: underline; }
.bp-meta {
    font-size: 0.8rem; color: #94a3b8; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.5rem;
}
.bp-title { font-size: 2rem; font-weight: 800; color: #0f172a; margin: 0 0 1.5rem; line-height: 1.25; }
.bp-hero-img {
    width: 100%; border-radius: 12px; margin-bottom: 2rem;
    aspect-ratio: 16/9; object-fit: cover;
}
.bp-body { font-size: 1.05rem; color: #334155; line-height: 1.8; }
.bp-body p { margin: 0 0 1.25rem; }
.bp-body h2 { font-size: 1.4rem; font-weight: 700; color: #0f172a; margin: 2rem 0 0.75rem; }
.bp-body h3 { font-size: 1.15rem; font-weight: 700; color: #0f172a; margin: 1.5rem 0 0.5rem; }
.bp-body a { color: #0d9488; }
.bp-body ul, .bp-body ol { margin: 0 0 1.25rem; padding-left: 1.5rem; }
.bp-body li { margin-bottom: 0.4rem; }
.bp-body blockquote {
    border-left: 4px solid #0d9488; margin: 1.5rem 0; padding: 0.75rem 1.25rem;
    color: #475569; font-style: italic; background: #f8fafc; border-radius: 0 8px 8px 0;
}
.bp-category {
    display: inline-block; background: #f0fdfa; color: #0d9488; font-weight: 600;
    font-size: 0.75rem; padding: 0.25rem 0.75rem; border-radius: 9999px;
    border: 1px solid #99f6e4; margin-bottom: 1.5rem;
}
.bp-404 { text-align: center; padding: 4rem 1.5rem; }
.bp-404 h1 { font-size: 1.5rem; color: #475569; margin-bottom: 1rem; }
@media (max-width: 640px) {
    .bp-title { font-size: 1.5rem; }
}

/* -- Blog Page -- */
.bl-hero {
    background: linear-gradient(135deg, #0f766e 0%, #134e4a 100%);
    color: #fff; text-align: center; padding: 2.5rem 1.5rem 2rem;
}
.bl-hero h1 { font-size: 2rem; font-weight: 800; margin: 0 0 0.5rem; }
.bl-hero p { color: #99f6e4; font-size: 1rem; margin: 0; }
.bl-body { max-width: 960px; margin: 2rem auto; padding: 0 1.5rem; }
.bl-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.bl-card {
    background: #fff; border: 1px solid #e2e8f0; border-radius: 12px;
    overflow: hidden; text-decoration: none; color: inherit;
    transition: box-shadow 0.18s, transform 0.18s;
    display: flex; flex-direction: column;
}
.bl-card:hover {
    box-shadow: 0 6px 24px rgba(13,148,136,0.12); transform: translateY(-2px);
}
.bl-card-img {
    width: 100%; aspect-ratio: 16/9; object-fit: cover; background: #f1f5f9;
}
.bl-card-body { padding: 1.25rem; flex: 1; display: flex; flex-direction: column; }
.bl-card-date {
    font-size: 0.75rem; color: #94a3b8; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.4rem;
}
.bl-card-title {
    font-size: 1.1rem; font-weight: 700; color: #0f172a; margin: 0 0 0.5rem; line-height: 1.35;
}
.bl-card-excerpt {
    font-size: 0.88rem; color: #64748b; line-height: 1.6; flex: 1;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.bl-card-read {
    font-size: 0.8rem; font-weight: 600; color: #0d9488; margin-top: 0.75rem;
}
.bl-empty { text-align: center; padding: 3rem 1.5rem; color: #64748b; }
.bl-empty h2 { color: #0f172a; font-size: 1.3rem; margin-bottom: 0.5rem; }
@media (max-width: 640px) {
    .bl-grid { grid-template-columns: 1fr; }
    .bl-hero h1 { font-size: 1.5rem; }
}

/* -- Get Listed Page -- */
.gl2-page { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; color: #1e293b; line-height: 1.6; min-height: 100vh; display: flex; flex-direction: column; }
.gl2-split { display: grid; grid-template-columns: 1fr 1fr; flex: 1; }
.gl2-left { background: linear-gradient(rgba(0,0,0,0.48), rgba(0,0,0,0.55)), url('_content/ForWardAI.HutchConnect.Module/images/pages/hero-hutch-sunset.jpg'); background-size: cover; background-position: center; color: #fff; padding: 3.5rem 3rem; display: flex; flex-direction: column; justify-content: center; }
.gl2-left h1 { font-size: 2.5rem; font-weight: 800; margin: 0 0 1rem; line-height: 1.15; }
.gl2-left h1 span { color: #5eead4; }
.gl2-left > p { font-size: 1.1rem; color: #94a3b8; margin: 0 0 2.5rem; max-width: 420px; }
.gl2-stats { display: flex; gap: 2.5rem; margin-bottom: 2.5rem; }
.gl2-stat-num { font-size: 2rem; font-weight: 800; color: #5eead4; display: block; }
.gl2-stat-label { font-size: 0.85rem; color: #94a3b8; }
.gl2-benefits-list { list-style: none; padding: 0; margin: 0 0 2.5rem; }
.gl2-benefits-list li { padding: 0.5rem 0; font-size: 1rem; color: #cbd5e1; display: flex; align-items: center; gap: 0.65rem; }
.gl2-check { color: #5eead4; font-weight: 700; font-size: 1.1rem; }
.gl2-testimonial { border-left: 3px solid #5eead4; padding-left: 1.25rem; margin-top: 1rem; }
.gl2-testimonial p { font-style: italic; color: #e2e8f0; margin: 0 0 0.5rem; font-size: 0.95rem; }
.gl2-testimonial cite { font-style: normal; font-size: 0.8rem; color: #94a3b8; }
.gl2-right { background: #f8fafc; padding: 3rem 2.5rem; display: flex; align-items: flex-start; justify-content: center; overflow-y: auto; }
.gl2-form-card { background: #fff; border-radius: 16px; padding: 2.25rem; box-shadow: 0 4px 24px rgba(0,0,0,0.08); width: 100%; max-width: 520px; }
.gl2-form-card h2 { font-size: 1.35rem; font-weight: 700; margin: 0 0 0.35rem; }
.gl2-form-card > p { font-size: 0.85rem; color: #64748b; margin: 0 0 1.5rem; }
.gl2-field { margin-bottom: 1rem; }
.gl2-field label { display: block; font-size: 0.8rem; font-weight: 600; color: #475569; margin-bottom: 0.3rem; }
.gl2-field label .gl2-req { color: #ef4444; }
.gl2-field input, .gl2-field select, .gl2-field textarea { width: 100%; padding: 0.6rem 0.75rem; border: 1px solid #cbd5e1; border-radius: 8px; font-size: 0.9rem; color: #1e293b; background: #fff; transition: border-color 0.15s; box-sizing: border-box; }
.gl2-field input:focus, .gl2-field select:focus, .gl2-field textarea:focus { outline: none; border-color: #0d9488; box-shadow: 0 0 0 3px rgba(13,148,136,0.12); }
.gl2-field input.invalid, .gl2-field select.invalid { border-color: #ef4444; }
.gl2-field .validation-message { color: #ef4444; font-size: 0.75rem; margin-top: 0.2rem; }
.gl2-field textarea { resize: vertical; min-height: 70px; }
.gl2-field .validation-message { color: #ef4444; font-size: 0.75rem; margin-top: 0.2rem; }
.gl2-section-label { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: #94a3b8; margin: 1.25rem 0 0.5rem; padding-top: 0.75rem; border-top: 1px solid #f1f5f9; }
.gl2-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.gl2-submit { width: 100%; padding: 0.85rem; background: #0d9488; color: #fff; border: none; border-radius: 10px; font-size: 1rem; font-weight: 700; cursor: pointer; transition: background 0.15s; margin-top: 0.5rem; }
.gl2-submit:hover { background: #0f766e; }
.gl2-submit:disabled { background: #94a3b8; cursor: not-allowed; }
.gl2-error { background: #fef2f2; color: #dc2626; padding: 0.75rem 1rem; border-radius: 8px; font-size: 0.85rem; margin-bottom: 1rem; }
.gl2-success { text-align: center; padding: 2rem 1rem; }
.gl2-success h2 { color: #0d9488; margin: 0 0 0.5rem; }
.gl2-success p { color: #64748b; font-size: 0.95rem; }
.gl2-footer { text-align: center; padding: 1.5rem 1rem; font-size: 0.8rem; color: #94a3b8; border-top: 1px solid #e2e8f0; }
@media (max-width: 900px) {
    .gl2-split { grid-template-columns: 1fr; }
    .gl2-left { padding: 2.5rem 1.5rem; }
    .gl2-right { padding: 2rem 1.5rem; }
    .gl2-row { grid-template-columns: 1fr; }
    .gl2-stats { gap: 1.5rem; }
}

/* -- Event Detail Page -- */
.ed-wrap { max-width: 800px; margin: 2rem auto; padding: 0 1.5rem; }
.ed-back { font-size: 0.85rem; color: #0f766e; margin-bottom: 1.5rem; display: inline-block; }
.ed-title { font-size: 1.8rem; font-weight: 800; color: #134e4a; margin: 0 0 0.75rem; }
.ed-meta { display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 1.5rem; }
.ed-meta-item { font-size: 0.95rem; color: #475569; }
.ed-meta-item strong { color: #1e293b; }
.ed-image { width: 100%; border-radius: 12px; margin-bottom: 1.5rem; }
.ed-desc { font-size: 1rem; color: #334155; line-height: 1.75; white-space: pre-wrap; }
.ed-tags { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-top: 1.5rem; }
.ed-tag {
    font-size: 0.78rem; font-weight: 600; color: #0f766e;
    background: #f0fdfa; border: 1px solid #99f6e4;
    padding: 0.2rem 0.65rem; border-radius: 20px;
}
.ed-link {
    display: inline-block; margin-top: 1.5rem;
    background: #14b8a6; color: #fff; font-weight: 700;
    padding: 0.75rem 1.5rem; border-radius: 8px; text-decoration: none;
}
.ed-link:hover { background: #0f766e; }
.ed-hosted-by {
    display: flex; align-items: center; gap: 0.65rem;
    background: #f0fdfa; border: 1px solid #99f6e4; border-radius: 10px;
    padding: 0.85rem 1rem; margin-top: 1.75rem; text-decoration: none; color: inherit;
}
.ed-hosted-by:hover { background: #ccfbf1; border-color: #2dd4bf; }
.ed-hosted-by-label { font-size: 0.75rem; font-weight: 600; color: #0d9488; text-transform: uppercase; letter-spacing: 0.06em; }
.ed-hosted-by-name { font-size: 1rem; font-weight: 700; color: #134e4a; }

/* -- Map Page -- */
.map-hero {
    background: linear-gradient(135deg, #0f766e 0%, #134e4a 100%);
    color: #fff; padding: 2rem 1.5rem; text-align: center;
}
.map-hero h1 { font-size: 1.8rem; font-weight: 800; margin: 0 0 0.4rem; }
.map-hero p { color: #99f6e4; font-size: 0.95rem; margin: 0; }
.map-wrap { max-width: 1200px; margin: 0 auto; padding: 1.5rem; }
.map-frame {
    border-radius: 16px; overflow: hidden;
    border: 1px solid #e2e8f0;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.map-frame iframe { display: block; width: 100%; height: 600px; border: 0; }
.map-back {
    display: inline-block; margin-top: 1rem;
    font-size: 0.85rem; color: #0d9488; font-weight: 600; text-decoration: none;
}
@media (max-width: 640px) {
    .map-frame iframe { height: 420px; }
}

/* -- Event Submit Page -- */
.es-page { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; color: #1e293b; }
.es-hero {
    background: linear-gradient(135deg, #0f766e 0%, #134e4a 100%);
    color: #fff; text-align: center; padding: 2.5rem 1.5rem 2rem;
}
.es-hero h1 { font-size: 2rem; font-weight: 800; margin: 0 0 0.5rem; }
.es-hero p { color: #99f6e4; font-size: 1rem; margin: 0; }
.es-form-wrap {
    max-width: 720px; margin: 2rem auto 3rem; padding: 0 1.5rem;
}
.es-card {
    background: #fff; border-radius: 12px; padding: 2rem;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08); border: 1px solid #e2e8f0;
}
.es-section-title {
    font-size: 1.05rem; font-weight: 700; color: #134e4a;
    margin: 1.5rem 0 0.75rem; padding-bottom: 0.5rem; border-bottom: 1px solid #e2e8f0;
}
.es-section-title:first-child { margin-top: 0; }
.es-row { margin-bottom: 1rem; }
.es-row label {
    display: block; font-size: 0.85rem; font-weight: 600; color: #334155; margin-bottom: 0.3rem;
}
.es-row label .es-req { color: #dc2626; }
.es-input {
    width: 100%; padding: 0.6rem 0.75rem; border: 1px solid #d1d5db; border-radius: 8px;
    font-size: 0.95rem; font-family: inherit; transition: border-color 0.15s;
}
.es-input:focus { outline: none; border-color: #0d9488; box-shadow: 0 0 0 3px rgba(13,148,136,0.1); }
.es-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.es-grid-3 { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 1rem; }
.es-submit {
    background: #0d9488; color: #fff; font-weight: 700; font-size: 1rem;
    padding: 0.75rem 2rem; border: none; border-radius: 8px; cursor: pointer;
    transition: background 0.15s; margin-top: 0.5rem;
}
.es-submit:hover { background: #0f766e; }
.es-submit:disabled { background: #94a3b8; cursor: not-allowed; }
.es-alert {
    padding: 0.75rem 1rem; border-radius: 8px; font-size: 0.9rem; margin-bottom: 1rem;
}
.es-alert-success { background: #f0fdf4; border: 1px solid #86efac; color: #166534; }
.es-alert-error { background: #fef2f2; border: 1px solid #fca5a5; color: #991b1b; }
.es-note {
    font-size: 0.8rem; color: #64748b; margin-top: 0.75rem; line-height: 1.5;
}
@media (max-width: 640px) {
    .es-grid-2, .es-grid-3 { grid-template-columns: 1fr; }
    .es-hero h1 { font-size: 1.5rem; }
}

/* -- Testimonials Page -- */
.tm3-page {
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    color: #1e293b;
    background: #f1f5f9;
    min-height: 100vh;
}
.tm3-hero {
    background: linear-gradient(rgba(0,0,0,0.48), rgba(0,0,0,0.55)), url('_content/ForWardAI.HutchConnect.Module/images/pages/hero-hutch-sunset.jpg');
    background-size: cover;
    background-position: center;
    color: white;
    text-align: center;
    padding: 3rem 1.5rem 2rem;
}
.tm3-hero h1 {
    font-size: 2.5rem;
    font-weight: 800;
    margin: 0 0 0.5rem;
}
.tm3-hero p {
    font-size: 1.05rem;
    opacity: 0.85;
    margin: 0;
}
/* ── Spotlight ── */
.tm3-spotlight {
    background: linear-gradient(180deg, #0d9488 0%, #0d9488 40%, #f1f5f9 40%);
    padding: 0 1.5rem 2rem;
}
.tm3-spotlight-card {
    max-width: 800px;
    margin: 0 auto;
    background: white;
    border-radius: 16px;
    padding: 3rem;
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
    text-align: center;
    position: relative;
}
.tm3-spotlight-quote-mark {
    font-size: 6rem;
    line-height: 1;
    color: #0d9488;
    opacity: 0.15;
    font-family: Georgia, serif;
    position: absolute;
    top: 0.5rem;
    left: 1.5rem;
}
.tm3-spotlight-badge {
    display: inline-block;
    background: #f0fdfa;
    color: #0d9488;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.35rem 0.9rem;
    border-radius: 999px;
    margin-bottom: 1.25rem;
}
.tm3-spotlight-text {
    font-size: 1.15rem;
    line-height: 1.7;
    color: #1e293b;
    margin: 0 0 1.5rem;
    font-style: italic;
}
.tm3-spotlight-name {
    font-weight: 700;
    font-size: 1.1rem;
    color: #0d9488;
}
/* ── Partner Stories Grid ── */
.tm3-grid-section {
    max-width: 960px;
    margin: 0 auto;
    padding: 1rem 1.5rem 3rem;
}
.tm3-grid-heading {
    text-align: center;
    font-size: 1.25rem;
    font-weight: 700;
    color: #64748b;
    margin: 0 0 1.5rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.tm3-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
}
.tm3-card {
    background: white;
    border-radius: 10px;
    padding: 1.5rem;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    display: flex;
    flex-direction: column;
}
.tm3-card-date {
    font-size: 0.75rem;
    color: #94a3b8;
    margin-bottom: 0.5rem;
}
.tm3-card-text {
    font-size: 0.95rem;
    line-height: 1.7;
    color: #475569;
    flex: 1;
    margin-bottom: 1rem;
}
.tm3-card-footer {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.tm3-card-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #0d9488;
    flex-shrink: 0;
}
.tm3-card-name {
    font-weight: 700;
    font-size: 0.9rem;
    color: #0f766e;
}
/* ── Google Reviews Carousel ── */
.tm3-reviews-section {
    background: white;
    padding: 3rem 1.5rem;
}
.tm3-reviews-heading {
    text-align: center;
    font-size: 1.25rem;
    font-weight: 700;
    color: #64748b;
    margin: 0 0 2rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.hc-wrap {
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
}
.hc-stage {
    position: relative;
    min-height: 160px;
    padding: 10px 0;
}
.hc-slide { display: none; padding: 22px 18px; }
.hc-stars { font-size: 22px; letter-spacing: 1px; color: #f59e0b; }
.hc-text { font-size: 1.05rem; line-height: 1.65; max-width: 820px; margin: 10px auto 0; color: #374151; }
.hc-author { margin-top: 10px; font-weight: 700; color: #0d9488; font-size: 0.95rem; }
.hc-wrap input { position: absolute; left: -9999px; }
/* Supports up to 20 Google reviews — add more lines if needed */
#hc-1:checked ~ .hc-stage .hc-s1, #hc-2:checked ~ .hc-stage .hc-s2,
#hc-3:checked ~ .hc-stage .hc-s3, #hc-4:checked ~ .hc-stage .hc-s4,
#hc-5:checked ~ .hc-stage .hc-s5, #hc-6:checked ~ .hc-stage .hc-s6,
#hc-7:checked ~ .hc-stage .hc-s7, #hc-8:checked ~ .hc-stage .hc-s8,
#hc-9:checked ~ .hc-stage .hc-s9, #hc-10:checked ~ .hc-stage .hc-s10,
#hc-11:checked ~ .hc-stage .hc-s11,#hc-12:checked ~ .hc-stage .hc-s12,
#hc-13:checked ~ .hc-stage .hc-s13,#hc-14:checked ~ .hc-stage .hc-s14,
#hc-15:checked ~ .hc-stage .hc-s15,#hc-16:checked ~ .hc-stage .hc-s16,
#hc-17:checked ~ .hc-stage .hc-s17,#hc-18:checked ~ .hc-stage .hc-s18,
#hc-19:checked ~ .hc-stage .hc-s19,#hc-20:checked ~ .hc-stage .hc-s20 { display: block; }
.hc-dots { display: flex; justify-content: center; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
.hc-dot { width: 10px; height: 10px; border-radius: 999px; background: #cbd5e1; cursor: pointer; display: inline-block; transition: background 0.2s; }
#hc-1:checked ~ .hc-dots label[for="hc-1"],  #hc-2:checked ~ .hc-dots label[for="hc-2"],
#hc-3:checked ~ .hc-dots label[for="hc-3"],  #hc-4:checked ~ .hc-dots label[for="hc-4"],
#hc-5:checked ~ .hc-dots label[for="hc-5"],  #hc-6:checked ~ .hc-dots label[for="hc-6"],
#hc-7:checked ~ .hc-dots label[for="hc-7"],  #hc-8:checked ~ .hc-dots label[for="hc-8"],
#hc-9:checked ~ .hc-dots label[for="hc-9"],  #hc-10:checked ~ .hc-dots label[for="hc-10"],
#hc-11:checked ~ .hc-dots label[for="hc-11"],#hc-12:checked ~ .hc-dots label[for="hc-12"],
#hc-13:checked ~ .hc-dots label[for="hc-13"],#hc-14:checked ~ .hc-dots label[for="hc-14"],
#hc-15:checked ~ .hc-dots label[for="hc-15"],#hc-16:checked ~ .hc-dots label[for="hc-16"],
#hc-17:checked ~ .hc-dots label[for="hc-17"],#hc-18:checked ~ .hc-dots label[for="hc-18"],
#hc-19:checked ~ .hc-dots label[for="hc-19"],#hc-20:checked ~ .hc-dots label[for="hc-20"] { background: #0d9488; }
/* ── CTA ── */
.tm3-cta {
    background: #f1f5f9;
    text-align: center;
    padding: 4rem 1.5rem;
}
.tm3-cta h2 {
    font-size: 2rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
}
.tm3-cta p {
    font-size: 1.05rem;
    color: #64748b;
    margin: 0 0 1.5rem;
}
.tm3-btn {
    display: inline-block;
    background: #0d9488;
    color: white;
    padding: 0.85rem 2.25rem;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    font-size: 1.05rem;
    transition: background 0.2s;
}
.tm3-btn:hover {
    background: #0f766e;
    color: white;
}
.tm3-footer {
    text-align: center;
    padding: 2rem 1.5rem;
    color: #94a3b8;
    font-size: 0.85rem;
    border-top: 1px solid #e2e8f0;
    background: white;
}
@media (max-width: 640px) {
    .tm3-grid { grid-template-columns: 1fr; }
    .tm3-spotlight-card { padding: 2rem 1.5rem; }
    .tm3-spotlight-text { font-size: 1rem; }
    .tm3-hero h1 { font-size: 2rem; }
}

/* -- Events Page -- */
.ev-hero {
    background: linear-gradient(135deg, #0f766e 0%, #134e4a 100%);
    color: #fff;
    padding: 3rem 1.5rem 2.5rem;
    text-align: center;
}
.ev-hero h1 { font-size: 2rem; font-weight: 800; margin: 0 0 0.5rem; }
.ev-hero p { color: #99f6e4; font-size: 1rem; margin: 0; }
.ev-body { max-width: 1000px; margin: 2rem auto; padding: 0 1.5rem; }
.ev-section-title {
    font-size: 1.3rem; font-weight: 800; color: #134e4a;
    margin: 2.5rem 0 1rem; padding-bottom: 0.5rem;
    border-bottom: 2px solid #14b8a6;
}
.ev-card {
    display: flex;
    gap: 1.25rem;
    padding: 1.25rem 0;
    border-bottom: 1px solid #e2e8f0;
    text-decoration: none;
    color: inherit;
    transition: background 0.15s;
}
.ev-card:hover { background: #f8fafc; }
.ev-date-badge {
    flex-shrink: 0;
    width: 56px;
    text-align: center;
    background: #0f766e;
    color: #fff;
    border-radius: 8px;
    padding: 0.5rem 0;
}
.ev-date-badge .ev-month { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; display: block; }
.ev-date-badge .ev-day { font-size: 1.5rem; font-weight: 800; line-height: 1; display: block; }
.ev-info h3 { font-size: 1.05rem; font-weight: 700; margin: 0 0 0.3rem; color: #1e293b; }
.ev-info .ev-meta { font-size: 0.85rem; color: #64748b; margin: 0 0 0.4rem; }
.ev-info .ev-desc { font-size: 0.9rem; color: #475569; margin: 0; line-height: 1.55; }
.ev-tags { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-top: 0.5rem; }
.ev-tag {
    font-size: 0.72rem; font-weight: 600; color: #0f766e;
    background: #f0fdfa; border: 1px solid #99f6e4;
    padding: 0.15rem 0.55rem; border-radius: 20px;
}
.ev-empty { text-align: center; padding: 2rem; color: #94a3b8; }
.ev-tag-filter { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1.25rem 0 0.5rem; }
.ev-filter-pill {
    font-size: 0.78rem; font-weight: 600; cursor: pointer;
    padding: 0.2rem 0.7rem; border-radius: 20px;
    border: 1px solid #99f6e4; background: #f0fdfa; color: #0f766e;
    transition: background 0.12s, color 0.12s;
}
.ev-filter-pill.active { background: #0f766e; color: #fff; border-color: #0f766e; }
@media (max-width: 640px) {
    .ev-card { flex-direction: column; gap: 0.75rem; }
    .ev-date-badge { width: auto; display: inline-flex; gap: 0.5rem; padding: 0.4rem 1rem; }
    .ev-date-badge .ev-month, .ev-date-badge .ev-day { display: inline; font-size: 0.9rem; }
}

/* -- Job Detail Page -- */
.jd-wrap { max-width: 720px; margin: 0 auto; padding: 2rem 1.5rem 3rem; }
.jd-back {
    font-size: 0.85rem; color: #0f766e; text-decoration: none; font-weight: 600;
    display: inline-block; margin-bottom: 1.5rem;
}
.jd-back:hover { text-decoration: underline; }
.jd-title { font-size: 1.8rem; font-weight: 800; color: #0f172a; margin: 0 0 0.5rem; }
.jd-company { font-size: 1.1rem; color: #0d9488; font-weight: 700; margin: 0 0 1rem; }
.jd-badges { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.jd-badge {
    font-size: 0.78rem; font-weight: 600; padding: 0.25rem 0.75rem; border-radius: 20px;
}
.jd-badge-type { background: #eff6ff; color: #2563eb; border: 1px solid #bfdbfe; }
.jd-badge-cat { background: #f0fdfa; color: #0d9488; border: 1px solid #99f6e4; }
.jd-badge-date { background: #f8fafc; color: #64748b; border: 1px solid #e2e8f0; }
.jd-desc { font-size: 1.05rem; color: #334155; line-height: 1.8; white-space: pre-wrap; }
.jd-desc p { margin: 0 0 1rem; }
.jd-apply {
    display: inline-block; margin-top: 2rem;
    background: #0d9488; color: #fff; font-weight: 700; font-size: 1rem;
    padding: 0.85rem 2rem; border-radius: 8px; text-decoration: none;
    transition: background 0.15s;
}
.jd-apply:hover { background: #0f766e; color: #fff; }
.jd-404 { text-align: center; padding: 4rem 1.5rem; }
.jd-404 h1 { font-size: 1.5rem; color: #475569; margin-bottom: 1rem; }

/* -- Jobs Page -- */
.jb-hero {
    background: linear-gradient(135deg, #0f766e 0%, #134e4a 100%);
    color: #fff; text-align: center; padding: 2.5rem 1.5rem 2rem;
}
.jb-hero h1 { font-size: 2rem; font-weight: 800; margin: 0 0 0.5rem; }
.jb-hero p { color: #99f6e4; font-size: 1rem; margin: 0; }
.jb-body { max-width: 860px; margin: 2rem auto; padding: 0 1.5rem; }
.jb-card {
    display: flex; gap: 1.25rem; padding: 1.25rem;
    background: #fff; border: 1px solid #e2e8f0; border-radius: 12px;
    margin-bottom: 1rem; text-decoration: none; color: inherit;
    transition: box-shadow 0.18s, transform 0.18s;
}
.jb-card:hover {
    box-shadow: 0 4px 16px rgba(13,148,136,0.1); transform: translateY(-2px);
}
.jb-card-icon {
    flex-shrink: 0; width: 48px; height: 48px; border-radius: 10px;
    background: linear-gradient(135deg,#0d9488,#06b6d4);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.3rem; color: rgba(255,255,255,0.8);
}
.jb-card-info { flex: 1; min-width: 0; }
.jb-card-title { font-size: 1.05rem; font-weight: 700; color: #0f172a; margin: 0 0 0.3rem; }
.jb-card-company { font-size: 0.88rem; color: #0d9488; font-weight: 600; margin: 0 0 0.3rem; }
.jb-card-meta { font-size: 0.8rem; color: #64748b; margin: 0; display: flex; gap: 0.75rem; flex-wrap: wrap; }
.jb-badge {
    display: inline-block; font-size: 0.72rem; font-weight: 600;
    padding: 0.15rem 0.55rem; border-radius: 20px;
}
.jb-badge-type { background: #eff6ff; color: #2563eb; border: 1px solid #bfdbfe; }
.jb-badge-cat { background: #f0fdfa; color: #0d9488; border: 1px solid #99f6e4; }
.jb-empty { text-align: center; padding: 3rem 1.5rem; color: #64748b; }
.jb-empty h2 { color: #0f172a; font-size: 1.3rem; margin-bottom: 0.5rem; }
@media (max-width: 640px) {
    .jb-card { flex-direction: column; gap: 0.75rem; }
    .jb-hero h1 { font-size: 1.5rem; }
}

/* -- Home Page -- */
.hc-hp-section { padding: 2.5rem 1.5rem; }
.hc-hp-section-alt { background: #f8fafc; }
.hc-hp-section-gradient { background: linear-gradient(135deg, #f0fdfa 0%, #e0f2fe 100%); }
.hc-hp-header {
    display: flex; align-items: baseline; gap: 1rem; margin-bottom: 1.5rem;
}
.hc-hp-title {
    font-size: 1.4rem; font-weight: 800; color: #0f172a; margin: 0;
}
.hc-hp-sub {
    font-size: 0.85rem; color: #64748b; text-decoration: none;
}
.hc-hp-sub:hover { text-decoration: underline; }
.hc-hp-cta {
    display: inline-block; background: #0d9488; color: #fff; font-weight: 700;
    font-size: 0.9rem; padding: 0.65rem 1.75rem; border-radius: 9999px;
    text-decoration: none; transition: background 0.18s;
}
.hc-hp-cta:hover { background: #0f766e; color: #fff; }

/* ── Category grid ─────────────────────────────────────────────── */
.hc-hp-cat-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem;
}
.hc-hp-cat-card {
    position: relative; border-radius: 12px; overflow: hidden;
    aspect-ratio: 4/3; display: flex; align-items: flex-end;
    text-decoration: none; transition: transform 0.2s;
}
.hc-hp-cat-card:hover { transform: scale(1.03); }
.hc-hp-cat-card img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; z-index: 0;
}
.hc-hp-cat-card::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.1) 60%);
    z-index: 1;
}
.hc-hp-cat-card span {
    position: relative; z-index: 2; color: #fff; font-weight: 700;
    font-size: 1rem; padding: 1rem 1.25rem; width: 100%;
    text-shadow: 0 1px 4px rgba(0,0,0,0.5);
}

/* ── Events teaser ─────────────────────────────────────────────── */
.hc-hp-events-grid {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem;
}
.hc-hp-event-card {
    display: flex; gap: 1rem; background: #fff; border: 1px solid #e2e8f0;
    border-radius: 12px; padding: 1rem; text-decoration: none; color: inherit;
    transition: box-shadow 0.18s, transform 0.18s;
}
.hc-hp-event-card:hover {
    box-shadow: 0 4px 16px rgba(13,148,136,0.1); transform: translateY(-2px);
}
.hc-hp-event-date {
    flex-shrink: 0; width: 56px; text-align: center; background: #0d9488;
    color: #fff; border-radius: 8px; padding: 0.5rem 0.25rem;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.hc-hp-event-date-month {
    font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em;
}
.hc-hp-event-date-day { font-size: 1.4rem; font-weight: 800; line-height: 1; }
.hc-hp-event-info h3 {
    font-size: 0.95rem; font-weight: 700; color: #0f172a; margin: 0 0 0.25rem; line-height: 1.3;
}
.hc-hp-event-info p {
    font-size: 0.8rem; color: #64748b; margin: 0; line-height: 1.4;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* ── Spotlight ─────────────────────────────────────────────────── */
.hc-hp-spotlight-card {
    display: flex; gap: 1.5rem; background: #fff; border: 1px solid #e2e8f0;
    border-radius: 14px; padding: 1.5rem; max-width: 640px;
}
.hc-hp-spotlight-logo {
    width: 80px; height: 80px; border-radius: 50%; object-fit: cover;
    border: 2px solid #e2e8f0; flex-shrink: 0;
}
.hc-hp-spotlight-name { font-size: 1.1rem; font-weight: 700; color: #0f172a; margin-bottom: 0.25rem; }
.hc-hp-spotlight-tagline { font-size: 0.85rem; color: #64748b; margin-bottom: 0.75rem; line-height: 1.5; }
.hc-hp-spotlight-link { font-size: 0.8rem; font-weight: 600; color: #0d9488; text-decoration: none; }
.hc-hp-spotlight-link:hover { text-decoration: underline; }

/* ── Newest partners ───────────────────────────────────────────── */
.hc-hp-newest-grid {
    display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem;
}
.hc-hp-newest-card {
    background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px;
    padding: 1rem; text-align: center; text-decoration: none; color: inherit;
    transition: box-shadow 0.18s, transform 0.18s;
}
.hc-hp-newest-card:hover {
    box-shadow: 0 4px 16px rgba(13,148,136,0.1); transform: translateY(-2px);
}
.hc-hp-newest-logo {
    width: 56px; height: 56px; border-radius: 50%; object-fit: cover;
    border: 2px solid #e2e8f0; margin: 0 auto 0.5rem; display: block;
}
.hc-hp-newest-logo-placeholder {
    width: 56px; height: 56px; border-radius: 50%;
    background: linear-gradient(135deg,#0d9488,#06b6d4);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.2rem; margin: 0 auto 0.5rem;
}
.hc-hp-newest-name { font-size: 0.8rem; font-weight: 700; color: #0f172a; line-height: 1.3; }

/* ── Podcast ───────────────────────────────────────────────────── */
.hc-hp-podcast-inner {
    display: flex; gap: 2rem; align-items: center; max-width: 900px;
}
.hc-hp-podcast-video { flex: 1; min-width: 0; }
.hc-hp-podcast-video iframe {
    width: 100%; aspect-ratio: 16/9; border: none; border-radius: 12px;
}
.hc-hp-podcast-copy { flex: 0 0 280px; }
.hc-hp-podcast-copy h3 { font-size: 1.2rem; font-weight: 800; color: #0f172a; margin: 0 0 0.5rem; }
.hc-hp-podcast-copy p { font-size: 0.85rem; color: #64748b; line-height: 1.6; margin: 0 0 1rem; }

/* ── About ─────────────────────────────────────────────────────── */
.hc-hp-about-inner { max-width: 680px; margin: 0 auto; text-align: center; }
.hc-hp-about-eyebrow {
    font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em;
    text-transform: uppercase; color: #0d9488; margin-bottom: 0.6rem;
}
.hc-hp-about-title {
    font-size: 1.55rem; font-weight: 800; color: #0f172a; margin: 0 0 1rem; line-height: 1.3;
}
.hc-hp-about-body {
    font-size: 1rem; color: #334155; line-height: 1.7; margin: 0 0 1.5rem;
}

/* ── Responsive ────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .hc-hp-cat-grid { grid-template-columns: repeat(2, 1fr); }
    .hc-hp-events-grid { grid-template-columns: 1fr; }
    .hc-hp-newest-grid { grid-template-columns: repeat(3, 1fr); }
    .hc-hp-podcast-inner { flex-direction: column; }
    .hc-hp-podcast-copy { flex: none; }
    .hc-hp-spotlight-card { flex-direction: column; text-align: center; }
}
@media (max-width: 480px) {
    .hc-hp-cat-grid { grid-template-columns: 1fr; }
    .hc-hp-newest-grid { grid-template-columns: repeat(2, 1fr); }
    .hc-hp-about-title { font-size: 1.25rem; }
}

/* -- Category Archive Page -- */
.hc-cat-tag-filter { display: flex; flex-wrap: wrap; gap: 0.4rem; padding: 0.75rem 0 0.25rem; }
.hc-cat-tag-pill {
    font-size: 0.75rem; font-weight: 600; color: #0f766e;
    background: #f0fdfa; border: 1px solid #99f6e4;
    padding: 0.2rem 0.6rem; border-radius: 20px;
    text-decoration: none; transition: background 0.12s, color 0.12s;
}
.hc-cat-tag-pill:hover { background: #ccfbf1; }
.hc-cat-tag-pill.active { background: #0f766e; color: #fff; border-color: #0f766e; }
.hc-card-tags { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.4rem; }
.hc-card-tag {
    font-size: 0.68rem; font-weight: 600; color: #0f766e;
    background: #f0fdfa; border: 1px solid #99f6e4;
    padding: 0.1rem 0.45rem; border-radius: 20px;
}

/* -- Directory Home Page -- */
/* ── Featured Partners section ───────────────────────────────────────── */
.hc-home-featured {
    padding: 3rem 1.5rem 2rem;
    background: #fff;
}
.hc-home-section-header {
    display: flex;
    align-items: baseline;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.hc-home-section-title {
    font-size: 1.4rem;
    font-weight: 800;
    color: #0f172a;
    margin: 0;
}
.hc-home-section-sub {
    font-size: 0.85rem;
    color: #64748b;
}
.hc-home-featured-scroll {
    display: flex;
    gap: 1.25rem;
    overflow-x: auto;
    padding-bottom: 0.75rem;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}
.hc-home-featured-scroll::-webkit-scrollbar { height: 4px; }
.hc-home-featured-scroll::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 2px; }
.hc-home-featured-scroll::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 2px; }
.hc-home-partner-card {
    flex: 0 0 240px;
    scroll-snap-align: start;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 1.5rem 1.15rem 1.15rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.22s, transform 0.22s, border-color 0.22s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.hc-home-partner-card:hover {
    box-shadow: 0 8px 28px rgba(13,148,136,0.14);
    transform: translateY(-4px);
    border-color: rgba(13,148,136,0.25);
}
.hc-home-partner-logo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #f0fdfa;
    margin-bottom: 0.85rem;
    background: #f8fafc;
    box-shadow: 0 2px 8px rgba(13,148,136,0.1);
}
.hc-home-partner-logo-placeholder {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: linear-gradient(135deg,#0d9488,#06b6d4);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    margin-bottom: 0.85rem;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(13,148,136,0.15);
}
.hc-home-partner-name {
    font-size: 0.9rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 0.25rem;
    line-height: 1.3;
}
.hc-home-partner-tagline {
    font-size: 0.75rem;
    color: #64748b;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* ── About section ───────────────────────────────────────────────────── */
.hc-home-about {
    background: linear-gradient(135deg, #f0fdfa 0%, #e0f2fe 100%);
    padding: 2.75rem 1.5rem;
    text-align: center;
}
.hc-home-about-inner {
    max-width: 680px;
    margin: 0 auto;
}
.hc-home-about-eyebrow {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #0d9488;
    margin-bottom: 0.6rem;
}
.hc-home-about-title {
    font-size: 1.55rem;
    font-weight: 800;
    color: #0f172a;
    margin: 0 0 1rem;
    line-height: 1.3;
}
.hc-home-about-body {
    font-size: 1rem;
    color: #334155;
    line-height: 1.7;
    margin: 0 0 1.5rem;
}
.hc-home-about-cta {
    display: inline-block;
    background: #0d9488;
    color: #fff;
    font-weight: 700;
    font-size: 0.9rem;
    padding: 0.65rem 1.75rem;
    border-radius: 9999px;
    text-decoration: none;
    transition: background 0.18s;
}
.hc-home-about-cta:hover { background: #0f766e; color: #fff; }
/* ── Categories header ───────────────────────────────────────────────── */
.hc-home-categories-header {
    padding: 2rem 1.5rem 0.5rem;
    background: #fff;
}
/* ── Tag filter ──────────────────────────────────────────────────────── */
.hc-tag-filter-wrap {
    padding: 0.75rem 1.5rem 0.25rem;
    background: #fff;
}
.hc-tag-filter-label {
    font-size: 0.78rem; font-weight: 700; color: #64748b;
    text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.5rem;
}
.hc-tag-filter-pills { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.hc-tag-pill {
    font-size: 0.75rem; font-weight: 600; color: #0f766e;
    background: #f0fdfa; border: 1px solid #99f6e4;
    padding: 0.2rem 0.6rem; border-radius: 20px;
    text-decoration: none; transition: background 0.12s, color 0.12s;
}
.hc-tag-pill:hover { background: #ccfbf1; }
.hc-tag-pill.active { background: #0f766e; color: #fff; border-color: #0f766e; }
.hc-partner-tags { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.4rem; }
.hc-partner-tag {
    font-size: 0.68rem; font-weight: 600; color: #0f766e;
    background: #f0fdfa; border: 1px solid #99f6e4;
    padding: 0.1rem 0.45rem; border-radius: 20px;
}
/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width: 640px) {
    .hc-home-partner-card { flex: 0 0 180px; }
    .hc-home-about-title { font-size: 1.25rem; }
}

/* ============================================================
   Collections — Admin + Public
   ============================================================ */

/* ── Admin Grid ── */
.hc-col-admin-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1.25rem;
    margin-top: 1rem;
}
.hc-col-admin-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.hc-col-admin-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.5rem;
}
.hc-col-admin-card-title {
    font-weight: 700;
    font-size: 1.05rem;
    color: #1e293b;
    display: flex;
    align-items: center;
}
.hc-col-admin-card-badges {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}
.hc-col-badge {
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem;
    border-radius: 20px;
    white-space: nowrap;
}
.hc-col-badge-active {
    color: #16a34a;
    background: #dcfce7;
    border: 1px solid #86efac;
}
.hc-col-badge-inactive {
    color: #dc2626;
    background: #fef2f2;
    border: 1px solid #fecaca;
}
.hc-col-badge-seasonal {
    color: #d97706;
    background: #fffbeb;
    border: 1px solid #fde68a;
}
.hc-col-admin-card-desc {
    font-size: 0.85rem;
    color: #64748b;
    margin: 0;
    line-height: 1.4;
}
.hc-col-admin-card-meta {
    font-size: 0.78rem;
    color: #94a3b8;
    display: flex;
    gap: 1rem;
}
.hc-col-admin-card-actions {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    margin-top: 0.25rem;
    padding-top: 0.5rem;
    border-top: 1px solid #f1f5f9;
}
.hc-col-admin-item-img {
    width: 100%;
    height: 140px;
    object-fit: cover;
    border-radius: 8px 8px 0 0;
    margin: -1.25rem -1.25rem 0.75rem -1.25rem;
    width: calc(100% + 2.5rem);
}

/* ── Public: Hero Section ── */
.hc-col-hero {
    position: relative;
    background: var(--col-accent, #0d9488);
    color: #fff;
    padding: 3rem 1.5rem;
    text-align: center;
    overflow: hidden;
}
.hc-col-hero-sm {
    padding: 2rem 1.5rem;
}
.hc-col-hero-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.25;
}
.hc-col-hero-content {
    position: relative;
    z-index: 1;
    max-width: 700px;
    margin: 0 auto;
}
.hc-col-hero-icon {
    font-size: 3rem;
    display: block;
    margin-bottom: 0.5rem;
}
.hc-col-hero h1 {
    font-size: 2rem;
    font-weight: 800;
    margin: 0 0 0.5rem;
}
.hc-col-hero p {
    font-size: 1.05rem;
    opacity: 0.9;
    margin: 0;
}
.hc-col-hero-sm h1 {
    font-size: 1.5rem;
}

/* ── Public: Breadcrumb ── */
.hc-col-breadcrumb {
    font-size: 0.85rem;
    margin-bottom: 0.5rem;
    display: flex;
    gap: 0.35rem;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}
.hc-col-breadcrumb a {
    color: rgba(255,255,255,0.8);
    text-decoration: none;
}
.hc-col-breadcrumb a:hover {
    text-decoration: underline;
    color: #fff;
}
.hc-col-breadcrumb span {
    opacity: 0.6;
}

/* ── Public: Card Grid ── */
.hc-col-grid {
    display: grid;
    gap: 1.5rem;
    padding: 1.5rem 0;
}
.hc-col-grid-2 { grid-template-columns: repeat(2, 1fr); }
.hc-col-grid-3 { grid-template-columns: repeat(3, 1fr); }
.hc-col-grid-4 { grid-template-columns: repeat(4, 1fr); }

/* ── Public: Card ── */
.hc-col-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.15s, transform 0.15s;
}
.hc-col-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}
.hc-col-card-img {
    width: 100%;
    height: 200px;
    object-fit: cover;
}
.hc-col-card-body {
    padding: 1rem 1.25rem 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.hc-col-card-badge {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--col-accent, #0d9488);
    background: rgba(13,148,136,0.08);
    padding: 0.15rem 0.5rem;
    border-radius: 20px;
    align-self: flex-start;
    margin-bottom: 0.4rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.hc-col-card-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 0.35rem;
}
.hc-col-card-excerpt {
    font-size: 0.88rem;
    color: #64748b;
    margin: 0 0 0.5rem;
    line-height: 1.45;
    flex: 1;
}
.hc-col-card-address {
    font-size: 0.8rem;
    color: #94a3b8;
    margin: 0 0 0.5rem;
}
.hc-col-card-link {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--col-accent, #0d9488);
    margin-top: auto;
}

/* ── Public: Detail Page ── */
.hc-col-detail {
    max-width: 760px;
    margin: 0 auto;
    padding: 2rem 1.5rem 3rem;
}
.hc-col-detail-img {
    width: 100%;
    max-height: 420px;
    object-fit: cover;
    border-radius: 12px;
    margin-bottom: 1.5rem;
}
.hc-col-detail-body {
    font-size: 1rem;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 1.5rem;
    white-space: pre-line;
}
.hc-col-detail-address {
    font-size: 0.95rem;
    color: #475569;
    margin-bottom: 1rem;
}
.hc-col-detail-address a {
    margin-left: 0.25rem;
}
.hc-col-detail-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 1.5rem;
}
.hc-col-detail-tag {
    font-size: 0.75rem;
    font-weight: 600;
    color: #0f766e;
    background: #f0fdfa;
    border: 1px solid #99f6e4;
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
}
.hc-col-detail-link {
    display: inline-block;
    background: var(--col-accent, #0d9488);
    color: #fff;
    font-weight: 700;
    padding: 0.65rem 1.75rem;
    border-radius: 8px;
    text-decoration: none;
    font-size: 0.95rem;
    margin-bottom: 1.5rem;
    transition: opacity 0.15s;
}
.hc-col-detail-link:hover {
    opacity: 0.9;
}
.hc-col-detail-back {
    display: inline-block;
    color: var(--col-accent, #0d9488);
    font-weight: 600;
    text-decoration: none;
    font-size: 0.9rem;
}
.hc-col-detail-back:hover {
    text-decoration: underline;
}

/* ── Collections Responsive ── */
@media (max-width: 768px) {
    .hc-col-grid-3,
    .hc-col-grid-4 { grid-template-columns: repeat(2, 1fr); }
    .hc-col-hero h1 { font-size: 1.6rem; }
    .hc-col-hero-icon { font-size: 2.5rem; }
    .hc-col-card-img { height: 160px; }
}
@media (max-width: 640px) {
    .hc-col-grid-2,
    .hc-col-grid-3,
    .hc-col-grid-4 { grid-template-columns: 1fr; }
    .hc-col-hero { padding: 2rem 1rem; }
    .hc-col-hero h1 { font-size: 1.35rem; }
    .hc-col-admin-grid { grid-template-columns: 1fr; }
}

/* ── Collection Tag Filtering ── */
.hc-col-tag-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    padding: 0.75rem 1.5rem;
    max-width: 1200px;
    margin: 0 auto;
}
.hc-col-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #0f766e;
    background: transparent;
    border: 1.5px solid #99f6e4;
    border-radius: 999px;
    padding: 0.3rem 0.75rem;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
    white-space: nowrap;
}
.hc-col-tag:hover {
    background: #f0fdfa;
}
.hc-col-tag.active {
    background: #0d9488;
    color: #fff;
    border-color: #0d9488;
}
.hc-col-tag.active:hover {
    background: #0f766e;
    border-color: #0f766e;
}
.hc-col-tag-remove {
    background: none;
    border: none;
    color: inherit;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    margin-left: 0.1rem;
    opacity: 0.7;
}
.hc-col-tag-remove:hover {
    opacity: 1;
}
.hc-col-tag-input {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}
.hc-col-tag-suggest {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    align-items: center;
    margin-top: 0.4rem;
}
.hc-col-tag-suggest .hc-col-tag {
    font-size: 0.72rem;
    padding: 0.2rem 0.55rem;
    border-style: dashed;
}
@media (max-width: 640px) {
    .hc-col-tag-bar {
        padding: 0.5rem 1rem;
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
    }
}
