:root {
    --primary-base: #0284C7;
    --primary-hover: #0369A1;
    --primary-active: #075985;
    --primary-subtle: #E0F2FE;
    --secondary-base: #475569;
    --secondary-hover: #334155;
    --secondary-active: #1E293B;
    --secondary-subtle: #F1F5F9;
    --accent-amber: #D97706;
    --accent-green: #059669;
    --accent-cyan: #0891B2;
    --accent-indigo: #4F46E5;
    --bg-page: #F8FAFC;
    --bg-surface: #FFFFFF;
    --border-subtle: #E2E8F0;
    --border-regular: #CBD5E1;
}

* {
    box-sizing: border-box;
}

html {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background-color: var(--bg-page);
    color: #0F172A;
    scroll-behavior: smooth;
}

.font-mono {
    font-family: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.text-muted {
    color: #64748B !important;
}

.transition-standard {
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ===== header ===== */
.site-header-block {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.site-header-block .font-mono {
    font-family: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.site-header-block #js-mobile-menu:not(.hidden) {
    display: block;
}

/* ===== hero ===== */
.hero-interface-reason {
    background-image: radial-gradient(circle at 50% 0%, rgba(2, 132, 199, 0.06) 0%, rgba(248, 250, 252, 0) 70%)
}

.hero-interface-reason .js-logic-tab {
    cursor: pointer
}

/* ===== founder_note ===== */
.founder-note-block .founder-signature svg {
    display: block;
    max-width: 100%;
    height: auto;
}

.founder-note-block p {
    word-break: break-word;
}

/* ===== stages ===== */
.stages-framework .js-stage-tab.active {
    background-color: #0284C7;
    color: #FFFFFF;
}

.stages-framework .js-stage-tab:not(.active) {
    color: #475569;
}

.stages-framework .js-stage-tab:not(.active):hover {
    color: #0F172A;
}

/* ===== categories_grid ===== */
.categories-grid-section .js-filter-btn {
    background-color: #FFFFFF;
    color: #475569;
    border: 1px solid #CBD5E1;
}

.categories-grid-section .js-filter-btn:hover {
    background-color: #F8FAFC;
    color: #0F172A;
    border-color: #94A3B8;
}

.categories-grid-section .js-filter-btn.active-filter {
    background-color: #0284C7;
    color: #FFFFFF;
    border-color: #0284C7;
    box-shadow: 0 2px 6px -1px rgba(2, 132, 199, 0.35);
}

.categories-grid-section .js-grid-item.is-hidden {
    display: none;
}

/* ===== client_logos ===== */
.ira-client-logos .ira-partner-card {
    min-height: 110px;
}

.ira-client-logos .ira-partner-card:hover {
    transform: translateY(-2px);
}

/* ===== fusion_promo ===== */
.fusion-promo-section .js-update-tab.is-active {
    background-color: #ffffff;
    color: #0369a1;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05)
}

.fusion-promo-section .js-update-panel {
    transition: opacity 0.2s ease-in-out
}

/* ===== footer ===== */
.interface-atlas-footer {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.interface-atlas-footer a {
    text-decoration: none;
}

.interface-atlas-footer .font-mono {
    font-family: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.site-header-block {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.site-header-block .font-mono {
    font-family: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.site-header-block #js-mobile-menu:not(.hidden) {
    display: block;
}

.cases-list-section {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.cases-list-section .font-mono {
    font-family: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.cases-list-section input::placeholder {
    color: #94A3B8;
    opacity: 1;
}

/* ===== cases-list-section filter buttons (training-course, mechanism-breakdown) ===== */
.cases-list-section .js-filter-btn {
    cursor: pointer;
}

.interface-atlas-footer {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.interface-atlas-footer a {
    text-decoration: none;
}

.interface-atlas-footer .font-mono {
    font-family: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}


/* ===== UNIFIED POLICY PAGES (privacy, terms, disclaimer, cookies) ===== */
.policy-content{max-width:56rem;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem;padding-top:2.5rem;padding-bottom:4rem;color:#334155;font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;line-height:1.7;word-break:break-word;overflow-wrap:break-word;hyphens:auto}
.policy-content .policy-intro-lead,.policy-content .policy-lead-text,.policy-content .policy-lead{font-size:0.95rem;line-height:1.75;color:#1e293b;font-weight:500;margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid #e2e8f0}
.policy-content p,.policy-content .policy-text{margin-bottom:1.25rem;font-size:0.9rem;color:#475569;line-height:1.7}
.policy-content h2,.policy-content h2.policy-section-heading,.policy-content .policy-section-title{color:#0f172a;font-weight:700;margin-top:2rem;margin-bottom:0.75rem;line-height:1.3;font-size:15px;letter-spacing:-0.01em;border-left:3px solid #0284c7;padding-left:0.65rem;padding-bottom:0}
.policy-content ul,.policy-content ul.policy-list{list-style-type:disc;padding-left:1.5rem;margin-top:0.5rem;margin-bottom:1.5rem}
.policy-content li,.policy-content ul.policy-list li{margin-bottom:0.6rem;font-size:0.9rem;color:#475569;line-height:1.65;padding-left:0.25rem}
.policy-content li::marker,.policy-content ul.policy-list li::marker{color:#0284c7}
.policy-content strong{color:#0f172a;font-weight:600}
.policy-content a,.policy-content .policy-contact-link{color:#0284c7;text-decoration:underline;text-underline-offset:3px;transition:color 0.2s ease;font-weight:600}
.policy-content a:hover,.policy-content .policy-contact-link:hover{color:#0369a1}
.policy-content .policy-header-block{border-bottom:1px solid #e2e8f0;padding-bottom:1.5rem;margin-bottom:1.5rem}
.policy-content .policy-badge,.policy-content .policy-meta-badge,.policy-content .policy-header-badge{display:inline-flex;align-items:center;gap:0.375rem;padding:0.25rem 0.75rem;border-radius:9999px;font-size:0.75rem;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;background-color:#E0F2FE;color:#0369A1;border:1px solid #BAE6FD;margin-bottom:1rem}
.policy-content .policy-badge-dot{width:0.5rem;height:0.5rem;border-radius:50%;background-color:#0284C7;display:inline-block}
.policy-content .policy-badge-icon{font-size:1rem;line-height:1;display:inline-flex;align-items:center}
.policy-content .policy-main-title,.policy-content h1.policy-title{font-size:15px;font-weight:700;color:#0f172a;line-height:1.3;margin:0 0 0.5rem 0;letter-spacing:-0.01em;border-left:3px solid #0284c7;padding-left:0.65rem}
.policy-content .policy-effective-date,.policy-content .policy-meta-date{font-family:'JetBrains Mono',monospace;font-size:0.8125rem;color:#475569;margin:0 0 1.5rem 0;padding-bottom:1.25rem;border-bottom:1px solid #e2e8f0}
.policy-content .policy-section{margin-bottom:1.5rem}
.policy-content .policy-contact-card,.policy-content ul.policy-contact-list{background-color:#F8FAFC;border:1px solid #E2E8F0;border-radius:1rem;padding:1.25rem;margin-top:1rem;margin-bottom:1.5rem;list-style-type:none}
@media (min-width:768px){.policy-content{padding-left:1.5rem;padding-right:1.5rem;padding-top:3.5rem;padding-bottom:5rem}.policy-content .policy-intro-lead,.policy-content .policy-lead-text,.policy-content .policy-lead{font-size:1.05rem}.policy-content p,.policy-content .policy-text{font-size:0.975rem}.policy-content h2,.policy-content h2.policy-section-heading,.policy-content .policy-section-title,.policy-content .policy-main-title,.policy-content h1.policy-title{font-size:22px;margin-top:2.5rem;margin-bottom:1rem;padding-left:0.85rem}.policy-content li,.policy-content ul.policy-list li{font-size:0.975rem}}
/* ===== PAGE: fusion-360-interface-reasoning ===== */
.fusion-section .fusion-header-box { position: relative; }
.fusion-section input[type='range']::-webkit-slider-thumb { width: 18px; height: 18px; border-radius: 50%; background: #0284C7; cursor: pointer; -webkit-appearance: none; appearance: none; border: 2px solid #FFFFFF; box-shadow: 0 1px 3px rgba(0,0,0,0.2); }
.fusion-section input[type='range']::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: #0284C7; cursor: pointer; border: 2px solid #FFFFFF; box-shadow: 0 1px 3px rgba(0,0,0,0.2); }
.fusion-section .js-case-card { will-change: transform, box-shadow; }
.fusion-section .js-case-card.is-hidden { display: none !important; }
.fusion-section .js-filter-tab { cursor: pointer; }

/* ===== PAGE: contact ===== */
.contact-page-wrapper .contact-input::placeholder { color: #94a3b8; opacity: 1; } .contact-page-wrapper .contact-input:focus { border-color: #0284c7; }

.interface-comment-card {
    position: relative;
    background-color: #ffffff;
}

.user-avatar-initials {
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
    object-fit: cover;
    display: flex;
    align-items: center;
    justify-content: center;
    user-select: none;
}

.comment-body {
    color: #334155;
}

.engineering-callout {
    background-color: #f8fafc;
    border-color: #cbd5e1;
}

.interface-reply-card {
    position: relative;
}

.reply-connector-indicator {
    position: absolute;
    left: -16px;
    top: 20px;
    width: 14px;
    height: 14px;
    border-bottom: 2px solid #cbd5e1;
    border-left: 2px solid #cbd5e1;
    border-bottom-left-radius: 6px;
}

.user-avatar-initials-small {
    width: 32px;
    height: 32px;
    min-width: 32px;
    min-height: 32px;
    object-fit: cover;
    display: flex;
    align-items: center;
    justify-content: center;
    user-select: none;
}


/* ===== PAGE TEMPLATE: training-course ===== */
.site-header-block {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.site-header-block .font-mono {
    font-family: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.site-header-block #js-mobile-menu:not(.hidden) {
    display: block;
}

.interface-atlas-footer {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.interface-atlas-footer a {
    text-decoration: none;
}

.interface-atlas-footer .font-mono {
    font-family: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.detail-page-wrapper {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.detail-page-wrapper .font-mono {
    font-family: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.detail-article-content p {
    margin-bottom: 1rem;
}

.detail-page-wrapper input::placeholder,
.detail-page-wrapper textarea::placeholder {
    color: #94a3b8;
    opacity: 1;
}

/* ===== PAGE TEMPLATE: mechanism-breakdown ===== */
.site-header-block {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.site-header-block .font-mono {
    font-family: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.site-header-block #js-mobile-menu:not(.hidden) {
    display: block;
}

.interface-atlas-footer {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.interface-atlas-footer a {
    text-decoration: none;
}

.interface-atlas-footer .font-mono {
    font-family: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.detail-page-wrapper {
    font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.detail-page-wrapper .font-mono {
    font-family: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.detail-article-content p {
    margin-bottom: 1rem;
}

.detail-page-wrapper input::placeholder,
.detail-page-wrapper textarea::placeholder {
    color: #94a3b8;
    opacity: 1;
}