/*
 * IBOS V16.7.4 — Visual Blocks + Typography System
 * Presentation only. No content/data/URL/business logic changes.
 */

/* FONT PACKS — all local/system stacks, no external font request */
.ibos-font-saas-clean{--ibos-font-sans:"Segoe UI",Arial,Tahoma,sans-serif;--ibos-font-display:"Segoe UI",Arial,Tahoma,sans-serif}
.ibos-font-modern-system{--ibos-font-sans:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--ibos-font-display:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.ibos-font-tech-sharp{--ibos-font-sans:"Segoe UI",Arial,sans-serif;--ibos-font-display:"Trebuchet MS","Segoe UI",Arial,sans-serif}
.ibos-font-friendly-product{--ibos-font-sans:Verdana,Tahoma,"Segoe UI",sans-serif;--ibos-font-display:Verdana,Tahoma,"Segoe UI",sans-serif}
.ibos-font-corporate{--ibos-font-sans:Arial,"Helvetica Neue","Segoe UI",sans-serif;--ibos-font-display:Arial,"Helvetica Neue","Segoe UI",sans-serif}
.ibos-font-editorial{--ibos-font-sans:"Segoe UI",Tahoma,Arial,sans-serif;--ibos-font-display:Georgia,"Times New Roman",serif}
/* Theme Auto gives each preset a genuinely different typographic personality. */
.ibos-font-theme-auto.ibos-theme-classic{--ibos-font-sans:"Segoe UI",Arial,Tahoma,sans-serif;--ibos-font-display:"Segoe UI",Arial,Tahoma,sans-serif}
.ibos-font-theme-auto.ibos-theme-sky-saas{--ibos-font-sans:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--ibos-font-display:system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
.ibos-font-theme-auto.ibos-theme-ocean-cloud,.ibos-font-theme-auto.ibos-theme-cyan-future{--ibos-font-sans:"Segoe UI",Arial,sans-serif;--ibos-font-display:"Trebuchet MS","Segoe UI",Arial,sans-serif}
.ibos-font-theme-auto.ibos-theme-azure-intelligence{--ibos-font-sans:Arial,"Segoe UI",sans-serif;--ibos-font-display:Arial,"Segoe UI",sans-serif}
.ibos-font-theme-auto.ibos-theme-aurora-ai,.ibos-font-theme-auto.ibos-theme-violet-neural{--ibos-font-sans:"Segoe UI",Arial,sans-serif;--ibos-font-display:"Trebuchet MS","Segoe UI",Arial,sans-serif}
.ibos-font-theme-auto.ibos-theme-emerald-smart{--ibos-font-sans:Verdana,Tahoma,"Segoe UI",sans-serif;--ibos-font-display:Verdana,Tahoma,"Segoe UI",sans-serif}
.ibos-font-theme-auto.ibos-theme-tet-viet{--ibos-font-sans:"Segoe UI",Tahoma,Arial,sans-serif;--ibos-font-display:Georgia,"Times New Roman",serif}

/* TYPOGRAPHIC SCALES */
.ibos-body-compact{--ibos-body-scale:.94}.ibos-body-standard{--ibos-body-scale:1}.ibos-body-large{--ibos-body-scale:1.075}
.ibos-visual-theme{font-size:calc(16px * var(--ibos-body-scale,1))}
.ibos-heading-compact{--ibos-heading-scale:.92}.ibos-heading-standard{--ibos-heading-scale:1}.ibos-heading-bold{--ibos-heading-scale:1.1}
.ibos-visual-theme :where(.hero-content h1,.page-hero h1){font-size:calc(clamp(2.35rem,5.4vw,5.25rem) * var(--ibos-heading-scale,1))}
.ibos-visual-theme .section-heading h2{font-size:calc(clamp(2rem,3.4vw,3.55rem) * var(--ibos-heading-scale,1))}

/* RADIUS / SHADOW / DENSITY */
.ibos-radius-minimal{--ibos-radius-xs:4px;--ibos-radius-sm:7px;--ibos-radius-md:10px;--ibos-radius-lg:14px}
.ibos-radius-soft{--ibos-radius-xs:8px;--ibos-radius-sm:12px;--ibos-radius-md:16px;--ibos-radius-lg:22px}
.ibos-radius-rounded{--ibos-radius-xs:12px;--ibos-radius-sm:18px;--ibos-radius-md:24px;--ibos-radius-lg:32px}
.ibos-shadow-flat{--ibos-shadow-xs:none;--ibos-shadow-sm:none;--ibos-shadow-md:none}
.ibos-shadow-soft{--ibos-shadow-xs:0 5px 16px color-mix(in srgb,var(--ibos-deep) 6%,transparent);--ibos-shadow-sm:0 10px 30px color-mix(in srgb,var(--ibos-deep) 8%,transparent);--ibos-shadow-md:0 18px 48px color-mix(in srgb,var(--ibos-deep) 11%,transparent)}
.ibos-shadow-depth{--ibos-shadow-xs:0 8px 22px color-mix(in srgb,var(--ibos-deep) 8%,transparent);--ibos-shadow-sm:0 18px 42px color-mix(in srgb,var(--ibos-deep) 12%,transparent);--ibos-shadow-md:0 28px 70px color-mix(in srgb,var(--ibos-deep) 16%,transparent)}
.ibos-density-compact{--ibos-section-pad:72px;--ibos-card-pad:25px}.ibos-density-standard{--ibos-section-pad:92px;--ibos-card-pad:31px}.ibos-density-airy{--ibos-section-pad:112px;--ibos-card-pad:38px}
.ibos-visual-theme .section{padding-top:var(--ibos-section-pad);padding-bottom:var(--ibos-section-pad)}

/* PRESET IDENTITIES — more than color changes */
.ibos-theme-sky-saas{--ibos-card-border:color-mix(in srgb,var(--ibos-primary) 13%,var(--ibos-border))}
.ibos-theme-sky-saas :where(.capability-card,.problem-card,.price-card){box-shadow:0 14px 40px color-mix(in srgb,var(--ibos-primary) 8%,transparent)}
.ibos-theme-azure-intelligence :where(.capability-card,.problem-card,.price-card){border-top:3px solid color-mix(in srgb,var(--ibos-primary) 68%,var(--ibos-border));border-radius:6px}
.ibos-theme-aurora-ai :where(.capability-card,.problem-card,.price-card),.ibos-theme-violet-neural :where(.capability-card,.problem-card,.price-card){background:linear-gradient(145deg,color-mix(in srgb,var(--ibos-surface) 94%,var(--ibos-soft)),var(--ibos-surface));border-color:color-mix(in srgb,var(--ibos-primary) 18%,var(--ibos-border))}
.ibos-theme-cyan-future .capability-section,.ibos-theme-ocean-cloud .capability-section{background-image:linear-gradient(color-mix(in srgb,var(--ibos-primary) 4%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--ibos-primary) 4%,transparent) 1px,transparent 1px);background-size:32px 32px}
.ibos-theme-emerald-smart :where(.capability-card,.problem-card,.price-card){border-radius:20px}
.ibos-theme-tet-viet :where(.capability-card,.problem-card,.price-card){border-color:color-mix(in srgb,var(--ibos-accent) 32%,var(--ibos-border));box-shadow:0 12px 34px rgba(116,27,27,.07)}

/* CAPABILITY VISUAL BLOCKS */
.capability-style-image-cards .capabilities-grid,.capability-style-featured .capabilities-grid{gap:20px;border:0}
.capability-style-image-cards .capability-card,.capability-style-featured .capability-card{overflow:hidden;border:1px solid var(--ibos-card-border);border-radius:var(--ibos-radius-md);padding:0;min-height:100%;background:var(--ibos-surface);box-shadow:var(--ibos-shadow-xs)}
.capability-card-body{position:relative;padding:var(--ibos-card-pad,31px)}
.capability-image{margin:0;aspect-ratio:16/9;background:linear-gradient(145deg,var(--ibos-soft),var(--ibos-surface));border-bottom:1px solid var(--ibos-card-border);overflow:hidden}
.capability-image img{width:100%;height:100%;display:block;object-fit:contain;padding:12px}
.capability-style-image-cards .capability-card:not(:has(.capability-image)) .capability-card-body{padding-top:38px}
.capability-style-featured .capability-card.is-featured{grid-column:span 2;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr)}
.capability-style-featured .capability-card.is-featured .capability-image{aspect-ratio:auto;height:100%;border-bottom:0;border-right:1px solid var(--ibos-card-border)}
.capability-style-featured .capability-card.is-featured .capability-card-body{display:flex;flex-direction:column;justify-content:center;min-height:300px}
.capability-style-classic .capability-card-body{padding:0}.capability-style-classic .capability-image{display:none}

/* PROCESS VISUAL BLOCKS */
.process-layout{display:block}.process-step-image{display:none;margin:0 0 18px;border:1px solid var(--ibos-card-border);border-radius:var(--ibos-radius-sm);overflow:hidden;background:var(--ibos-surface);aspect-ratio:16/10}
.process-step-image img{width:100%;height:100%;object-fit:contain;padding:8px;display:block}
.process-style-timeline-images .process-step-image,.process-style-cards .process-step-image{display:block}
.process-style-timeline-images .process-track{align-items:start}.process-style-timeline-images .process-step{padding-right:14px}
.process-style-cards .process-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.process-style-cards .process-track:before,.process-style-cards .process-dot{display:none}
.process-style-cards .process-step{border:1px solid var(--ibos-card-border);background:var(--ibos-surface);border-radius:var(--ibos-radius-md);padding:16px;box-shadow:var(--ibos-shadow-xs);overflow:hidden}
.process-style-cards .process-count{margin:4px 0 12px;font-family:var(--ibos-font-display);color:var(--ibos-primary)}
.process-style-split .process-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);gap:56px;align-items:center}
.process-style-split .process-track{grid-template-columns:1fr;gap:0}.process-style-split .process-track:before,.process-style-split .process-dot{display:none}
.process-style-split .process-step{display:grid;grid-template-columns:64px 1fr;column-gap:18px;padding:18px 0;border-bottom:1px solid var(--ibos-border)}
.process-style-split .process-count{grid-row:1/3;margin:0}.process-style-split .process-step h3{margin:0}.process-style-split .process-step p{margin:7px 0 0}
.process-style-split .process-split-image{margin:0;position:sticky;top:110px}.process-style-split .process-split-image img{width:100%;height:auto;max-height:620px;object-fit:contain}

@media(max-width:950px){
 .capability-style-featured .capability-card.is-featured{grid-column:1/-1;grid-template-columns:1fr 1fr}
 .process-style-cards .process-track{grid-template-columns:repeat(2,minmax(0,1fr))}
 .process-style-split .process-layout{grid-template-columns:1fr;gap:30px}.process-style-split .process-split-image{position:static;max-width:720px}
}
@media(max-width:680px){
 .ibos-density-compact,.ibos-density-standard,.ibos-density-airy{--ibos-section-pad:68px;--ibos-card-pad:24px}
 .capability-style-image-cards .capabilities-grid,.capability-style-featured .capabilities-grid{gap:16px}
 .capability-style-featured .capability-card.is-featured{grid-column:auto;display:block}.capability-style-featured .capability-card.is-featured .capability-image{aspect-ratio:16/9;border-right:0;border-bottom:1px solid var(--ibos-card-border)}
 .process-style-cards .process-track{grid-template-columns:1fr}.process-style-cards .process-step{display:block;padding:18px}
 .process-style-timeline-images .process-step{display:grid;grid-template-columns:50px 1fr;column-gap:13px}.process-style-timeline-images .process-step-image{grid-column:1/-1}.process-style-timeline-images .process-count{grid-row:auto;margin:0}.process-style-timeline-images .process-step h3{margin:0}
 .process-style-split .process-step{grid-template-columns:50px 1fr;padding:14px 0}
}
