/* Real projects, in the existing Ricor palette and typographic system. */
.ws-portfolio-page, .ws-case-page { height:auto; background:#fef9ed; color:#111; }
.ws-portfolio-section, .ws-case-section { height:auto; padding-inline:24px; background:#fef9ed; color:#111; }
.ws-portfolio-shell, .ws-case-shell { max-width:var(--_sizes---container--max-width,83rem); width:100%; height:auto; margin-inline:auto; border-inline:1px dashed #d8d5cb; }
.ws-portfolio-kicker { font:400 12px/1.5 'Geist Mono',monospace; text-transform:uppercase; letter-spacing:.015em; margin:0; }
.ws-portfolio-heading-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); border-bottom:1px dashed #d8d5cb; }
.ws-portfolio-heading-row > .ws-portfolio-kicker { padding:8px 32px; border-left:2px solid #c5d52a; align-self:start; margin-top:72px; }
.ws-portfolio-heading-row > div { padding:64px 40px 56px; min-width:0; }
.ws-portfolio-heading-row h1, .ws-portfolio-heading-row h2 { color:inherit; font:500 clamp(38px,4.3vw,68px)/1.08 Archivo,Arial,sans-serif; letter-spacing:-.045em; margin:0; max-width:790px; }
.ws-portfolio-heading-row > div > p { color:#66645c; font:400 18px/1.65 Archivo,Arial,sans-serif; max-width:640px; margin:24px 0 0; }
.ws-portfolio-hero { padding-top:73px; }
.ws-portfolio-hero .ws-portfolio-heading-row > div { padding-top:76px; padding-bottom:64px; }
.ws-portfolio-hero .ws-portfolio-kicker { margin-top:84px; }
.ws-portfolio-list .ws-portfolio-grid { padding:40px; }
.ws-portfolio-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; min-width:0; }
.ws-portfolio-grid[data-project-count="1"] { grid-template-columns:minmax(0,1fr); }
.ws-portfolio-card { min-width:0; border:1px dashed #cbc8bd; display:flex; flex-direction:column; background:#f9f5e9; }
.ws-portfolio-preview { display:block; background:#eceade; padding:20px; border-bottom:1px dashed #cbc8bd; overflow:hidden; }
.ws-portfolio-preview img { display:block; width:100%; height:auto; max-width:none; object-fit:contain; }
.ws-portfolio-card-content { padding:28px; display:flex; flex-direction:column; align-items:flex-start; gap:20px; flex:1; min-width:0; }
.ws-portfolio-meta { color:#66645c; font:400 11px/1.65 'Geist Mono',monospace; text-transform:uppercase; margin:0; }
.ws-portfolio-card-title { color:inherit; font:500 38px/1.15 Archivo,Arial,sans-serif; letter-spacing:-.035em; margin:0; }
.ws-portfolio-card-title a { color:inherit; text-decoration:none; }
.ws-portfolio-card-title a:hover { text-decoration:underline; text-underline-offset:5px; }
.ws-portfolio-card-description { font:400 17px/1.65 Archivo,Arial,sans-serif; color:#66645c; margin:0; max-width:510px; }
.ws-portfolio-scope { display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:0; list-style:none; }
.ws-portfolio-scope li { padding:7px 9px; font:400 11px/1.4 'Geist Mono',monospace; text-transform:uppercase; border:1px dashed #c9c6ba; color:#5d5b52; }
.ws-portfolio-card-links { display:flex; align-items:center; flex-wrap:wrap; gap:18px 24px; width:100%; margin-top:auto; padding-top:8px; }
.ws-portfolio-button { display:inline-flex; align-items:center; justify-content:space-between; gap:26px; min-height:56px; padding:16px 22px; background:#e5f34b; border:1px solid transparent; color:#111; text-decoration:none; font:500 14px/1.4 Archivo,Arial,sans-serif; }
.ws-portfolio-button:hover { background:#d8e631; color:#111; }
.ws-portfolio-button > span:last-child { font-size:20px; line-height:1; flex:none; }
.ws-portfolio-button-dark { background:#111; color:#fef9ed; }
.ws-portfolio-button-dark:hover { background:#e5f34b; color:#111; }
.ws-portfolio-live-link { display:inline-flex; gap:14px; padding:5px 0; border-bottom:1px solid #777468; color:inherit; text-decoration:none; font:400 14px/1.5 Archivo,Arial,sans-serif; }
.ws-portfolio-live-link:hover { color:#7d850d; }
.ws-portfolio-grid[data-project-count="1"] .ws-portfolio-card { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); align-items:stretch; }
.ws-portfolio-grid[data-project-count="1"] .ws-portfolio-preview { display:flex; align-items:center; border-bottom:0; border-right:1px dashed #cbc8bd; padding:28px; }
.ws-portfolio-grid[data-project-count="1"] .ws-portfolio-card-content { padding:36px; justify-content:center; }
.ws-portfolio-grid[data-project-count="1"] .ws-portfolio-card-links { margin-top:0; }
.ws-portfolio-inquiry { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; align-items:center; padding:56px 40px; border-top:1px dashed #d8d5cb; }
.ws-portfolio-inquiry h2 { color:inherit; font:500 35px/1.2 Archivo,Arial,sans-serif; letter-spacing:-.035em; max-width:610px; margin:16px 0; }
.ws-portfolio-inquiry p:not(.ws-portfolio-kicker) { color:#66645c; font:400 17px/1.65 Archivo,Arial,sans-serif; max-width:610px; margin:0; }
.ws-portfolio-empty { padding:40px; }
.ws-portfolio-home { background:#0f0f10; color:#fef9ed; }
.ws-portfolio-home .ws-portfolio-shell { border-color:#343434; }
.ws-portfolio-all { display:flex; justify-content:flex-end; border-top:1px dashed #3f3e38; padding:28px 40px; }
.ws-portfolio-all .ws-portfolio-button { background:transparent; border:1px solid #66645c; color:#fef9ed; }
.ws-portfolio-all .ws-portfolio-button:hover { background:#e5f34b; border-color:#e5f34b; color:#111; }
/* Case study: real screenshots with their source aspect ratios. */
.ws-case-hero { padding-top:73px; }
.ws-case-back { display:inline-flex; gap:12px; color:#65635b; font:400 13px/1.5 Archivo,Arial,sans-serif; text-decoration:none; margin:40px 40px 0; border-bottom:1px solid #b6b3a8; padding-bottom:5px; }
.ws-case-back:hover { color:#111; }
.ws-case-heading-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; padding:56px 40px; }
.ws-case-heading-row h1 { color:#111; font:500 clamp(50px,6vw,88px)/1.05 Archivo,Arial,sans-serif; letter-spacing:-.05em; margin:24px 0 0; overflow-wrap:anywhere; }
.ws-case-heading-copy { display:flex; flex-direction:column; align-items:flex-start; gap:24px; }
.ws-case-heading-copy p { color:#66645c; font:400 17px/1.65 Archivo,Arial,sans-serif; margin:0; }
.ws-case-heading-copy .ws-case-lead { color:#111; font:500 28px/1.3 Archivo,Arial,sans-serif; letter-spacing:-.025em; }
.ws-case-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; border-top:1px dashed #d8d5cb; }
.ws-case-facts > div { padding:25px 32px; min-width:0; }
.ws-case-facts > div + div { border-left:1px dashed #d8d5cb; }
.ws-case-facts dt { font:400 11px/1.5 'Geist Mono',monospace; text-transform:uppercase; color:#66645c; margin-bottom:10px; }
.ws-case-facts dd { font:400 15px/1.6 Archivo,Arial,sans-serif; margin:0; color:#111; }
.ws-case-cover-section { background:#111; }
.ws-case-cover-section .ws-case-shell { border-color:#3f3e38; padding:40px; }
.ws-case-cover { margin:0; }
.ws-case-cover img { display:block; width:100%; height:auto; max-width:none; object-fit:contain; }
.ws-case-cover figcaption { color:#b7b5ab; font:400 12px/1.6 'Geist Mono',monospace; margin-top:18px; }
.ws-case-story { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.5fr); gap:64px; padding:72px 40px; }
.ws-case-story-heading h2 { font:500 40px/1.15 Archivo,Arial,sans-serif; letter-spacing:-.035em; margin:24px 0 0; color:#111; }
.ws-case-challenge { color:#66645c; font:400 19px/1.7 Archivo,Arial,sans-serif; margin:0 0 36px; }
.ws-case-points { display:grid; gap:28px; }
.ws-case-point { position:relative; padding:28px 0 0 48px; border-top:1px dashed #d8d5cb; }
.ws-case-point-number { position:absolute; left:0; top:31px; font:400 12px/1.5 'Geist Mono',monospace; color:#818766; }
.ws-case-point h3 { font:500 24px/1.3 Archivo,Arial,sans-serif; letter-spacing:-.025em; color:#111; margin:0 0 14px; }
.ws-case-point p { font:400 16px/1.7 Archivo,Arial,sans-serif; color:#66645c; margin:0; }
.ws-case-gallery-section { background:#efeddf; }
.ws-case-gallery-section .ws-case-shell { padding:56px 40px; }
.ws-case-gallery-heading { margin-bottom:36px; }
.ws-case-gallery-heading h2 { font:500 42px/1.15 Archivo,Arial,sans-serif; letter-spacing:-.035em; color:#111; margin:20px 0 0; }
.ws-case-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.ws-case-figure { margin:0; min-width:0; }
.ws-case-figure img { display:block; width:100%; height:auto; max-width:none; object-fit:contain; border:1px solid #d6d3c8; }
.ws-case-figure figcaption, .ws-case-phone figcaption { font:400 13px/1.65 Archivo,Arial,sans-serif; color:#66645c; margin-top:16px; }
.ws-case-mobile-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:80px; padding:64px 80px; }
.ws-case-mobile-copy h2 { font:500 44px/1.15 Archivo,Arial,sans-serif; letter-spacing:-.035em; margin:22px 0; color:#111; }
.ws-case-mobile-copy > p:last-child { font:400 18px/1.7 Archivo,Arial,sans-serif; color:#66645c; margin:0; max-width:460px; }
.ws-case-phone-gallery { display:flex; justify-content:center; }
.ws-case-phone { width:100%; max-width:286px; margin:0; }
.ws-case-phone img { display:block; width:100%; height:auto; max-width:none; object-fit:contain; border:1px solid #d6d3c8; }
@media(max-width:1100px) {
 .ws-portfolio-heading-row > div { padding-inline:28px; }
 .ws-portfolio-heading-row > .ws-portfolio-kicker { padding-inline:24px; }
 .ws-portfolio-list .ws-portfolio-grid, .ws-portfolio-home .ws-portfolio-grid { padding:28px; }
 .ws-portfolio-grid[data-project-count="1"] .ws-portfolio-card { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .ws-portfolio-grid[data-project-count="1"] .ws-portfolio-preview { padding:20px; }
 .ws-portfolio-grid[data-project-count="1"] .ws-portfolio-card-content { padding:26px; }
 .ws-portfolio-card-links { gap:16px; }
 .ws-case-heading-row { gap:40px; padding-inline:32px; }
 .ws-case-story { gap:40px; padding-inline:32px; }
 .ws-case-mobile-layout { padding-inline:40px; gap:40px; }
}
@media(max-width:767px) {
 .ws-portfolio-section, .ws-case-section { padding-inline:20px; }
 .ws-portfolio-heading-row { grid-template-columns:minmax(0,1fr); }
 .ws-portfolio-heading-row > .ws-portfolio-kicker, .ws-portfolio-hero .ws-portfolio-kicker { margin-top:40px; padding:5px 20px; }
 .ws-portfolio-heading-row > div, .ws-portfolio-hero .ws-portfolio-heading-row > div, .ws-portfolio-home .ws-portfolio-heading-row > div { padding:24px 20px 36px; }
 .ws-portfolio-heading-row h1, .ws-portfolio-heading-row h2 { font-size:39px; }
 .ws-portfolio-heading-row > div > p { font-size:16px; margin-top:20px; }
 .ws-portfolio-home .ws-portfolio-heading-row h2 { font-size:36px; }
 .ws-portfolio-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
 .ws-portfolio-list .ws-portfolio-grid, .ws-portfolio-home .ws-portfolio-grid { padding:24px 20px; }
 .ws-portfolio-grid[data-project-count="1"] .ws-portfolio-card, .ws-portfolio-home .ws-portfolio-grid[data-project-count="1"] .ws-portfolio-card { display:flex; flex-direction:column; }
 .ws-portfolio-grid[data-project-count="1"] .ws-portfolio-preview, .ws-portfolio-home .ws-portfolio-grid[data-project-count="1"] .ws-portfolio-preview { padding:14px; border:0; border-bottom:1px dashed #cbc8bd; order:0; }
 .ws-portfolio-home .ws-portfolio-grid[data-project-count="1"] .ws-portfolio-preview { border-bottom-color:#45443c; }
 .ws-portfolio-grid[data-project-count="1"] .ws-portfolio-card-content, .ws-portfolio-card-content { padding:24px; order:1; gap:18px; }
 .ws-portfolio-card-title { font-size:32px; }
 .ws-portfolio-card-description { font-size:16px; }
 .ws-portfolio-scope li { font-size:10px; }
 .ws-portfolio-card-links { gap:18px; flex-wrap:wrap; }
 .ws-portfolio-inquiry { grid-template-columns:minmax(0,1fr); padding:40px 20px; gap:24px; }
 .ws-portfolio-inquiry h2 { font-size:30px; }
 .ws-portfolio-inquiry p:not(.ws-portfolio-kicker) { font-size:16px; }
 .ws-portfolio-all { padding:24px 20px; }
 .ws-portfolio-button { font-size:14px; padding-inline:18px; }
 .ws-case-back { margin:32px 20px 0; }
 .ws-case-heading-row { grid-template-columns:minmax(0,1fr); padding:32px 20px 40px; gap:30px; }
 .ws-case-heading-row h1 { font-size:54px; margin-top:20px; }
 .ws-case-heading-copy { gap:20px; }
 .ws-case-heading-copy .ws-case-lead { font-size:25px; }
 .ws-case-heading-copy p { font-size:16px; }
 .ws-case-facts { grid-template-columns:minmax(0,1fr); }
 .ws-case-facts > div { padding:20px; }
 .ws-case-facts > div + div { border-left:0; border-top:1px dashed #d8d5cb; }
 .ws-case-cover-section .ws-case-shell { padding:24px 20px; }
 .ws-case-story { grid-template-columns:minmax(0,1fr); gap:30px; padding:44px 20px; }
 .ws-case-story-heading h2 { font-size:34px; margin-top:18px; }
 .ws-case-challenge { font-size:17px; margin-bottom:28px; }
 .ws-case-point { padding-left:36px; }
 .ws-case-point h3 { font-size:22px; }
 .ws-case-gallery-section .ws-case-shell { padding:40px 20px; }
 .ws-case-gallery-heading h2 { font-size:34px; }
 .ws-case-gallery { grid-template-columns:minmax(0,1fr); gap:30px; }
 .ws-case-mobile-layout { grid-template-columns:minmax(0,1fr); padding:44px 20px; gap:32px; }
 .ws-case-mobile-copy h2 { font-size:34px; margin:18px 0; }
 .ws-case-mobile-copy > p:last-child { font-size:16px; }
}
@media(max-width:479px) {
 .ws-portfolio-section, .ws-case-section { padding-inline:16px; }
 .ws-portfolio-heading-row > div, .ws-portfolio-hero .ws-portfolio-heading-row > div, .ws-portfolio-home .ws-portfolio-heading-row > div { padding-inline:16px; }
 .ws-portfolio-heading-row > .ws-portfolio-kicker, .ws-portfolio-hero .ws-portfolio-kicker { padding-inline:16px; }
 .ws-portfolio-heading-row h1 { font-size:36px; }
 .ws-portfolio-list .ws-portfolio-grid, .ws-portfolio-home .ws-portfolio-grid { padding:20px 16px; }
 .ws-portfolio-grid[data-project-count="1"] .ws-portfolio-card-content, .ws-portfolio-card-content { padding:22px 18px; }
 .ws-portfolio-card-links { align-items:flex-start; flex-direction:column; }
 .ws-portfolio-card-links .ws-portfolio-button { width:100%; }
 .ws-portfolio-inquiry { padding-inline:16px; }
 .ws-portfolio-all { padding-inline:16px; }
 .ws-portfolio-all .ws-portfolio-button { width:100%; }
 .ws-case-heading-row, .ws-case-story, .ws-case-mobile-layout, .ws-case-gallery-section .ws-case-shell, .ws-case-cover-section .ws-case-shell { padding-inline:16px; }
 .ws-case-back { margin-inline:16px; }
 .ws-case-facts > div { padding-inline:16px; }
}
/* Shared paragraph styles must not mute labels on a dark background. */
.ws-portfolio-home .ws-portfolio-kicker,
.ws-case-cover-section .ws-portfolio-kicker { color:#c5c3b8; }

/* Multi-project cards share a frame while retaining the complete screenshot. */
.ws-portfolio-grid:not([data-project-count="1"]) .ws-portfolio-preview { aspect-ratio:1440/896; display:flex; align-items:center; justify-content:center; }
.ws-portfolio-grid:not([data-project-count="1"]) .ws-portfolio-preview img { display:block; width:100%; height:100%; object-fit:contain; }

/* Four reserved project positions, using the original Ricor strip proportions. */
.ws-portfolio-home .ws-projects-top { height:max(0px,calc(100vh - 44.975rem)); }
.ws-portfolio-home .ws-project-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; list-style:none; padding:0; margin:0; border-top:1px dashed #343434; }
.ws-project-strip > li { min-width:0; }
.ws-project-strip .ws-project-position { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:12px; width:100%; height:100%; padding:20px 24px; border-left:1px solid transparent; background:#0f0f10; color:#fef9ed; opacity:.3; font:400 14px/1.2 'Geist Mono',monospace; text-transform:uppercase; text-decoration:none; cursor:default; }
.ws-project-position > span { max-width:100%; overflow-wrap:anywhere; }
.ws-project-strip .ws-project-position.is-current { border-left-color:#d9e523; background:#2f301d99; color:#e4ed64; opacity:1; }
@media(max-width:991px) {
 .ws-portfolio-home .ws-projects-top { height:59px; }
 .ws-portfolio-home .ws-project-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ws-project-strip .ws-project-position { padding-inline:8px; }
}
@media(max-width:767px) {
 .ws-portfolio-home .ws-projects-top { height:40px; }
}
@media(max-width:479px) {
 .ws-portfolio-home .ws-projects-top { height:32px; }
 .ws-portfolio-home .ws-project-strip { grid-template-columns:1fr; border-top:0; }
}

/* Original Ricor project composition, isolated from catalogue card styles. */
.ws-project-showcase { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); border-top:1px dashed #343434; }
.ws-showcase-details { display:flex; flex-direction:column; gap:var(--_sizes---spacing--spacing-jambo,60px); padding:80px 0 40px; border-right:1px dashed #343434; min-width:0; background:#0f0f10 url('/assets/46438412ce-6a6f166e13f05253e2cd1f18_Rectangle-1-1-.webp') center/cover no-repeat; }
.ws-showcase-copy { display:flex; flex-direction:column; align-items:flex-start; gap:20px; min-width:0; }
.ws-showcase-copy .subtitle-block { width:fit-content; }
.ws-showcase-copy .subtitle-text, .ws-showcase-copy .subtitle-icon { color:#fef9ed; }
.ws-showcase-title { margin:0; width:100%; max-width:31rem; color:#fef9ed; font-family:Archivo,Arial,sans-serif; font-weight:500; font-size:var(--_typography---heading-font-size--h1,56px); line-height:var(--_typography---heading-line-height--h1,1.04); letter-spacing:var(--_typography---heading-letter-spacing--h1,-3.2px); }
.ws-showcase-title > span { opacity:.4; }
.ws-showcase-description { margin:0; width:100%; max-width:26.25rem; color:#a0a0a0; font:500 16px/24px Archivo,Arial,sans-serif; }
.ws-showcase-bottom { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); width:100%; }
.ws-showcase-button { display:flex; align-items:center; justify-content:center; gap:12px; padding:21px; background:#fff; color:#111; text-decoration:none; text-transform:uppercase; font:500 14px/1.2 Archivo,Arial,sans-serif; }
.ws-showcase-button svg { display:block; width:24px; height:24px; flex:none; }
.ws-showcase-button:hover { background:#e4ed64; color:#111; }
.ws-showcase-fact { display:flex; align-items:center; gap:12px; padding:8px 0 8px 32px; border-block:1px dashed #343434; min-width:0; }
.ws-showcase-fact > svg { width:24px; height:24px; flex:none; color:#fef9ed; }
.ws-showcase-fact strong { display:block; color:#fef9ed; font:500 16px/24px Archivo,Arial,sans-serif; }
.ws-showcase-fact p { margin:0; color:#858585; font:400 16px/24px Archivo,Arial,sans-serif; }
.ws-showcase-media { display:block; height:39.5rem; min-width:0; overflow:hidden; background:#f2f3ed; }
.ws-showcase-media img { display:block; width:100%; height:100%; max-width:none; object-fit:cover; object-position:50% 0%; }
@media(max-width:991px) {
 .ws-showcase-details { padding-top:40px; }
 .ws-showcase-title { font-size:var(--_typography---heading-font-size--h2); line-height:var(--_typography---heading-line-height--h2); letter-spacing:var(--_typography---heading-letter-spacing--h2); }
 .ws-showcase-description { max-width:24.5rem; }
 .ws-showcase-bottom { grid-template-columns:1fr; }
 .ws-showcase-media { height:31.6rem; }
}
@media(max-width:767px) {
 .ws-project-showcase { grid-template-columns:minmax(0,1fr); }
 .ws-showcase-details { border-right:0; padding-top:var(--_sizes---spacing--spacing-big,40px); padding-bottom:var(--_sizes---spacing--spacing-big,40px); }
 .ws-showcase-title { font-size:var(--_typography---heading-font-size--h1); line-height:var(--_typography---heading-line-height--h1); letter-spacing:var(--_typography---heading-letter-spacing--h1); }
 .ws-showcase-description { max-width:36rem; }
 .ws-showcase-media { height:20rem; }
 .ws-showcase-fact { gap:10px; padding-left:20px; }
}
@media(max-width:479px) {
 .ws-showcase-title { max-width:24rem; }
 .ws-showcase-media { height:15rem; }
}
