/* ==========================================================================
   Cresund theme — main stylesheet
   ========================================================================== */

@font-face { font-family: "Manrope"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/manrope-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/manrope-latin-500-normal.woff2) format("woff2"); }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/manrope-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/manrope-latin-700-normal.woff2) format("woff2"); }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 800; font-display: swap; src: url(../fonts/manrope-latin-800-normal.woff2) format("woff2"); }
@font-face { font-family: "Saira Semi Condensed"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/saira-semi-condensed-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: "Saira Semi Condensed"; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/saira-semi-condensed-latin-700-normal.woff2) format("woff2"); }

:root {
	--cr-navy: #162640;
	--cr-navy-deep: #0d1829;
	--cr-navy-soft: #22365a;
	--cr-teal: #245468;
	--cr-teal-deep: #173a49;
	--cr-red: #c62627;
	--cr-red-deep: #a71d1e;
	--cr-ink: #1a2232;
	--cr-text: #3b4454;
	--cr-muted: #667085;
	--cr-line: #e3e7ee;
	--cr-tint: #f4f6fa;
	--cr-white: #ffffff;
	--cr-wa: #1fae54;
	--cr-accent: var(--cr-red);
	--cr-hero-a: var(--cr-navy-deep);
	--cr-hero-b: var(--cr-navy);
	--cr-font: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--cr-display: "Saira Semi Condensed", "Manrope", system-ui, sans-serif;
	--cr-radius: 14px;
	--cr-radius-sm: 10px;
	--cr-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 8px 24px -8px rgba(16, 24, 40, .12);
	--cr-shadow-lg: 0 24px 48px -16px rgba(13, 24, 41, .28);
	--cr-wrap: 1200px;
	--cr-gutter: clamp(16px, 4vw, 32px);
	--cr-header-h: 76px;
}

.cr-co-housing { --cr-hero-a: var(--cr-teal-deep); --cr-hero-b: var(--cr-teal); }
.cr-co-afosoft { --cr-hero-a: #0f1f2c; --cr-hero-b: var(--cr-teal-deep); }

/* Base ------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--cr-header-h) + 16px); }
body { margin: 0; font-family: var(--cr-font); font-size: 16px; line-height: 1.65; color: var(--cr-text); background: var(--cr-white); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--cr-navy); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--cr-red); }
h1, h2, h3, h4 { font-family: var(--cr-display); color: var(--cr-ink); line-height: 1.12; margin: 0 0 .5em; font-weight: 700; letter-spacing: -.005em; }
h1 { font-size: clamp(2.1rem, 4.6vw, 3.6rem); }
h2 { font-size: clamp(1.7rem, 3.2vw, 2.5rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; padding-left: 1.2em; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--cr-red); outline-offset: 2px; }
.screen-reader-text, .cr-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.cr-skip { position: absolute; left: 12px; top: -60px; z-index: 1000; background: var(--cr-red); color: #fff; padding: 10px 16px; border-radius: 8px; }
.cr-skip:focus { top: 12px; color: #fff; }
.cr-icon { width: 1.15em; height: 1.15em; flex: none; display: inline-block; vertical-align: -.2em; }

.cr-wrap { width: 100%; max-width: var(--cr-wrap); margin: 0 auto; padding-left: var(--cr-gutter); padding-right: var(--cr-gutter); }
.cr-narrow { max-width: 820px; }
.cr-center { text-align: center; margin-top: 2rem; }
.cr-muted { color: var(--cr-muted); }
.cr-small { font-size: .875rem; }

/* Buttons ---------------------------------------------------------------- */
.cr-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 48px; padding: .7em 1.4em; border-radius: 999px; border: 2px solid transparent; font-weight: 700; font-size: .975rem; line-height: 1.2; text-decoration: none; cursor: pointer; transition: transform .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease; white-space: nowrap; }
.cr-btn .cr-icon { width: 1.05em; height: 1.05em; transition: transform .18s ease; }
.cr-btn:hover .cr-icon { transform: translateX(3px); }
.cr-btn--primary { background: var(--cr-red); color: #fff; box-shadow: 0 8px 20px -8px rgba(198, 38, 39, .6); }
.cr-btn--primary:hover { background: var(--cr-red-deep); color: #fff; transform: translateY(-1px); }
.cr-btn--light { background: #fff; color: var(--cr-navy); }
.cr-btn--light:hover { background: var(--cr-tint); color: var(--cr-navy); }
.cr-btn--outline { border-color: var(--cr-navy); color: var(--cr-navy); background: transparent; }
.cr-btn--outline:hover { background: var(--cr-navy); color: #fff; }
.cr-btn--ghost { border-color: rgba(22, 38, 64, .2); color: var(--cr-navy); background: transparent; }
.cr-btn--whatsapp { background: var(--cr-wa); color: #fff; }
.cr-btn--whatsapp:hover { background: #17924a; color: #fff; }
.cr-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.cr-link { font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; gap: .4em; }
.cr-link:hover .cr-icon { transform: translateX(3px); }
.cr-link .cr-icon { transition: transform .18s; }

/* Top bar & header ------------------------------------------------------- */
.cr-topbar { background: var(--cr-navy-deep); color: rgba(255, 255, 255, .78); font-size: .84rem; }
.cr-topbar .cr-wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; }
.cr-topbar a { color: #fff; text-decoration: none; }
.cr-topbar a:hover { color: #ffb4b4; }
.cr-topbar__group { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.cr-topbar__item { display: inline-flex; align-items: center; gap: 6px; }
.cr-topbar__item .cr-icon { opacity: .75; }
.cr-topbar__social { display: flex; gap: 12px; }
.cr-topbar__social a { display: inline-flex; }

.cr-header { position: sticky; top: 0; z-index: 100; background: rgba(255, 255, 255, .96); backdrop-filter: saturate(160%) blur(10px); -webkit-backdrop-filter: saturate(160%) blur(10px); border-bottom: 1px solid var(--cr-line); transition: box-shadow .2s ease; }
.admin-bar .cr-header { top: 32px; }
.cr-header.is-scrolled { box-shadow: 0 6px 24px -12px rgba(13, 24, 41, .25); }
.cr-header .cr-wrap { display: flex; align-items: center; gap: 24px; min-height: var(--cr-header-h); }
.cr-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--cr-navy); flex: none; }
.cr-brand__mark { width: 40px; height: 40px; }
.cr-brand__text { display: flex; flex-direction: column; line-height: 1; }
.cr-brand__word { width: 132px; height: auto; }
.cr-brand__sub { font-family: var(--cr-display); font-weight: 600; font-size: .7rem; letter-spacing: .42em; color: var(--cr-muted); margin-top: 5px; text-transform: uppercase; }
.custom-logo-link img { max-height: 52px; width: auto; }

.cr-nav { margin-left: auto; }
.cr-nav ul { list-style: none; margin: 0; padding: 0; }
.cr-menu { display: flex; align-items: center; gap: 2px; }
.cr-menu > li { position: relative; }
.cr-menu > li > a { display: flex; align-items: center; gap: 4px; padding: 10px 14px; font-weight: 700; font-size: .95rem; color: var(--cr-ink); text-decoration: none; border-radius: 8px; }
.cr-menu > li > a:hover, .cr-menu > li.current-menu-item > a, .cr-menu > li.current-menu-ancestor > a, .cr-menu > li.current-page-ancestor > a { color: var(--cr-red); }
.cr-menu .menu-item-has-children > a::after { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); margin-left: 4px; opacity: .55; }
.cr-menu .sub-menu { position: absolute; top: calc(100% + 6px); left: 0; min-width: 250px; background: #fff; border: 1px solid var(--cr-line); border-radius: 12px; box-shadow: var(--cr-shadow-lg); padding: 8px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s, transform .18s, visibility .18s; }
.cr-menu .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.cr-menu > li:hover > .sub-menu, .cr-menu > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.cr-menu .sub-menu a { display: block; padding: 9px 12px; border-radius: 8px; color: var(--cr-ink); text-decoration: none; font-weight: 600; font-size: .92rem; }
.cr-menu .sub-menu a:hover { background: var(--cr-tint); color: var(--cr-red); }
.cr-menu > li:first-child > a { color: var(--cr-navy); }
.cr-menu > li:first-child > a::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--cr-red); margin-right: 4px; box-shadow: 0 0 0 4px rgba(198, 38, 39, .15); }
.cr-header__cta { flex: none; }
.cr-burger { display: none; width: 46px; height: 46px; border: 1px solid var(--cr-line); border-radius: 10px; background: #fff; align-items: center; justify-content: center; cursor: pointer; color: var(--cr-navy); margin-left: auto; }
.cr-burger .cr-icon { width: 24px; height: 24px; }

/* Mobile drawer */
.cr-drawer { position: fixed; inset: 0; z-index: 200; visibility: hidden; }
.cr-drawer.is-open { visibility: visible; }
.cr-drawer__backdrop { position: absolute; inset: 0; background: rgba(13, 24, 41, .55); opacity: 0; transition: opacity .25s; }
.cr-drawer.is-open .cr-drawer__backdrop { opacity: 1; }
.cr-drawer__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(380px, 88vw); background: #fff; transform: translateX(100%); transition: transform .28s ease; display: flex; flex-direction: column; overflow-y: auto; }
.cr-drawer.is-open .cr-drawer__panel { transform: none; }
.cr-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--cr-line); }
.cr-drawer__close { width: 44px; height: 44px; border: 0; background: var(--cr-tint); border-radius: 10px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.cr-drawer nav { padding: 8px 12px; }
.cr-drawer ul { list-style: none; margin: 0; padding: 0; }
.cr-drawer .cr-menu { display: block; }
.cr-drawer .cr-menu > li > a { padding: 14px 10px; font-size: 1.05rem; border-bottom: 1px solid var(--cr-line); border-radius: 0; }
.cr-drawer .cr-menu .menu-item-has-children > a::after { display: none; }
.cr-drawer .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 4px 0 8px 12px; min-width: 0; }
.cr-drawer .sub-menu a { padding: 8px 10px; color: var(--cr-text); }
.cr-drawer__foot { margin-top: auto; padding: 20px; display: grid; gap: 10px; background: var(--cr-tint); }
.cr-drawer__foot .cr-btn { width: 100%; }
body.cr-lock { overflow: hidden; }

/* Company bar ------------------------------------------------------------ */
.cr-cobar { background: #fff; border-bottom: 1px solid var(--cr-line); }
.cr-cobar .cr-wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; flex-wrap: wrap; padding-top: 8px; padding-bottom: 8px; }
.cr-cobar__brand { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.cr-cobar__brand img { height: 58px; width: auto; max-width: 180px; object-fit: contain; }
.cr-co-afosoft .cr-cobar__brand img, .cr-co-housing .cr-cobar__brand img { height: 50px; }
.cr-cobar__tag { font-weight: 600; color: var(--cr-muted); font-size: .9rem; border-left: 1px solid var(--cr-line); padding-left: 14px; }
.cr-cobar__links { display: flex; gap: 6px; flex-wrap: wrap; }
.cr-cobar__links a { padding: 8px 12px; border-radius: 999px; font-weight: 700; font-size: .88rem; text-decoration: none; color: var(--cr-ink); }
.cr-cobar__links a:hover { background: var(--cr-tint); color: var(--cr-red); }

/* Page banner ------------------------------------------------------------ */
.cr-banner { position: relative; background: linear-gradient(120deg, var(--cr-hero-a), var(--cr-hero-b)); color: #fff; padding: clamp(48px, 7vw, 88px) 0 clamp(40px, 6vw, 72px); overflow: hidden; isolation: isolate; }
.cr-banner::before { content: ""; position: absolute; inset: 0; background-image: var(--cr-circuit); background-size: 520px; opacity: .14; z-index: -1; }
.cr-banner h1 { color: #fff; margin-bottom: .25em; }
.cr-banner__intro { font-size: 1.1rem; color: rgba(255, 255, 255, .82); max-width: 680px; margin: 0; }
.cr-crumbs { font-size: .85rem; margin-bottom: 14px; color: rgba(255, 255, 255, .7); }
.cr-crumbs a { color: rgba(255, 255, 255, .9); text-decoration: none; }
.cr-crumbs a:hover { color: #fff; text-decoration: underline; }
.cr-crumbs span[aria-hidden] { margin: 0 8px; opacity: .5; }

/* Sections --------------------------------------------------------------- */
.cr-section { padding: clamp(56px, 8vw, 104px) 0; position: relative; }
.cr-section--tint { background: var(--cr-tint); }
.cr-section--strip { padding: 28px 0; background: #fff; border-bottom: 1px solid var(--cr-line); }
.cr-section--flush { padding: 0; }
.cr-section--navy, .cr-section--teal { background: var(--cr-navy); color: rgba(255, 255, 255, .84); isolation: isolate; overflow: hidden; }
.cr-section--teal { background: linear-gradient(120deg, var(--cr-teal-deep), var(--cr-teal)); }
.cr-section--navy::before, .cr-section--teal::before { content: ""; position: absolute; inset: 0; background-image: var(--cr-circuit); background-size: 520px; opacity: .1; z-index: -1; }
.cr-section--navy h2, .cr-section--navy h3, .cr-section--teal h2, .cr-section--teal h3 { color: #fff; }
.cr-section--navy a:not(.cr-btn), .cr-section--teal a:not(.cr-btn) { color: #fff; }

.cr-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-family: var(--cr-display); font-weight: 600; text-transform: uppercase; letter-spacing: .14em; font-size: .82rem; color: var(--cr-red); margin-bottom: 12px; }
.cr-eyebrow::before { content: ""; width: 22px; height: 2px; background: currentColor; }
.cr-eyebrow .cr-icon { display: none; }
.cr-eyebrow--light { color: #ff9a9a; }
.cr-section--teal .cr-eyebrow, .cr-co-housing .cr-hero .cr-eyebrow--light { color: #9fe0f2; }

.cr-head { max-width: 760px; margin: 0 auto clamp(32px, 5vw, 52px); text-align: center; }
.cr-head .cr-eyebrow { justify-content: center; }
.cr-head p:last-child { margin-bottom: 0; font-size: 1.06rem; color: var(--cr-muted); }
.cr-head--split { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px 48px; text-align: left; flex-wrap: wrap; }
.cr-head--split > div { max-width: 600px; flex: 1 1 420px; }
.cr-head--split h2 { margin-bottom: 0; }
.cr-head--split > p { max-width: 440px; margin: 0; flex: 0 1 440px; color: var(--cr-muted); }

.cr-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 72px); align-items: center; }
.cr-split--top { align-items: start; }
.cr-split--wide-right { grid-template-columns: 5fr 7fr; }

/* Hero ------------------------------------------------------------------- */
:root { --cr-circuit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260' viewBox='0 0 260 260' fill='none' stroke='%23ffffff' stroke-width='1.4'%3E%3Cpath d='M0 40h60l20 20h60l20-20h100M0 140h40l20-20h80l20 20h100M0 220h90l20-20h50l20 20h80M60 0v40M200 0v20l-20 20M120 260v-40l-20-20M40 140v80M220 140v60l20 20'/%3E%3Ccircle cx='60' cy='40' r='4'/%3E%3Ccircle cx='160' cy='40' r='4'/%3E%3Ccircle cx='60' cy='120' r='4'/%3E%3Ccircle cx='160' cy='140' r='4'/%3E%3Ccircle cx='110' cy='200' r='4'/%3E%3Ccircle cx='200' cy='220' r='4'/%3E%3Ccircle cx='40' cy='220' r='4'/%3E%3C/svg%3E"); }
.cr-hero { position: relative; color: #fff; background: radial-gradient(1200px 600px at 85% 20%, rgba(198, 38, 39, .22), transparent 60%), linear-gradient(125deg, var(--cr-hero-a) 0%, var(--cr-hero-b) 100%); padding: clamp(56px, 8vw, 110px) 0 clamp(64px, 9vw, 120px); overflow: hidden; isolation: isolate; }
.cr-co-housing .cr-hero { background: radial-gradient(1000px 520px at 85% 15%, rgba(159, 224, 242, .18), transparent 60%), linear-gradient(125deg, var(--cr-hero-a), var(--cr-hero-b)); }
.cr-hero__bg { position: absolute; inset: 0; z-index: -1; background-image: var(--cr-circuit); background-size: 520px; opacity: .12; mask-image: linear-gradient(90deg, transparent, #000 40%); -webkit-mask-image: linear-gradient(90deg, transparent, #000 40%); animation: cr-drift 60s linear infinite; }
@keyframes cr-drift { to { background-position: 520px 520px; } }
.cr-hero__grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(32px, 6vw, 72px); align-items: center; }
.cr-hero__grid--single { grid-template-columns: minmax(0, 820px); }
.cr-hero__title { color: #fff; font-size: clamp(2.4rem, 5.6vw, 4.4rem); line-height: 1.02; margin-bottom: .35em; }
.cr-hero--home .cr-hero__title { font-size: clamp(2.8rem, 7vw, 5.4rem); }
.cr-hero__lead { font-size: clamp(1.05rem, 1.6vw, 1.22rem); color: rgba(255, 255, 255, .84); max-width: 600px; margin-bottom: 1.8em; }
.cr-hero__trust { list-style: none; padding: 0; margin: 2rem 0 0; display: flex; flex-wrap: wrap; gap: 10px 22px; font-weight: 600; font-size: .92rem; color: rgba(255, 255, 255, .86); }
.cr-hero__trust li { display: inline-flex; align-items: center; gap: 8px; }
.cr-hero__trust .cr-icon { color: #ff9a9a; }
.cr-hero__visual { position: relative; min-height: 460px; }
.cr-hero__photo { position: absolute; margin: 0; border-radius: 18px; overflow: hidden; box-shadow: var(--cr-shadow-lg); border: 6px solid rgba(255, 255, 255, .95); background: #fff; }
.cr-hero__photo img { width: 100%; height: 100%; object-fit: cover; }
.cr-hero__photo--a { width: 62%; aspect-ratio: 3 / 4; right: 0; top: 0; transform: rotate(2.5deg); animation: cr-float 9s ease-in-out infinite; }
.cr-hero__photo--b { width: 46%; aspect-ratio: 3 / 4; left: 2%; bottom: -10px; transform: rotate(-4deg); animation: cr-float 11s ease-in-out infinite reverse; }
@keyframes cr-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }
.cr-hero__badge { position: absolute; left: 34%; top: 8%; background: #fff; color: var(--cr-navy); border-radius: 14px; padding: 12px 16px; box-shadow: var(--cr-shadow-lg); display: flex; flex-direction: column; line-height: 1.25; font-size: .82rem; z-index: 2; }
.cr-hero__badge strong { font-family: var(--cr-display); font-size: 1.15rem; }
.cr-hero__badge::before { content: ""; position: absolute; left: -6px; top: 50%; width: 12px; height: 12px; background: var(--cr-red); border-radius: 50%; transform: translateY(-50%); box-shadow: 0 0 0 6px rgba(198, 38, 39, .25); animation: cr-pulse 2.4s ease-out infinite; }
@keyframes cr-pulse { 0% { box-shadow: 0 0 0 0 rgba(198, 38, 39, .5); } 100% { box-shadow: 0 0 0 16px rgba(198, 38, 39, 0); } }

/* Trust strip ------------------------------------------------------------ */
.cr-trust { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.cr-trust li { display: flex; align-items: center; gap: 14px; }
.cr-trust .cr-icon { width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: rgba(198, 38, 39, .08); color: var(--cr-red); }
.cr-trust strong { display: block; color: var(--cr-ink); line-height: 1.2; }
.cr-trust span { font-size: .88rem; color: var(--cr-muted); line-height: 1.35; }

/* Category tiles --------------------------------------------------------- */
.cr-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; }
.cr-cat { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 22px 22px 20px; background: #fff; border: 1px solid var(--cr-line); border-radius: var(--cr-radius); text-decoration: none; color: var(--cr-ink); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; overflow: hidden; min-height: 168px; }
.cr-section--tint .cr-cat { border-color: transparent; box-shadow: var(--cr-shadow); }
.cr-cat::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--cr-red); transition: width .3s ease; }
.cr-cat:hover { transform: translateY(-4px); box-shadow: var(--cr-shadow-lg); color: var(--cr-ink); }
.cr-cat:hover::after { width: 100%; }
.cr-cat__icon { width: 52px; height: 52px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--cr-navy), var(--cr-navy-soft)); color: #fff; margin-bottom: 10px; }
.cr-cat__icon .cr-icon { width: 26px; height: 26px; }
.cr-cat:hover .cr-cat__icon { background: linear-gradient(135deg, var(--cr-red), var(--cr-red-deep)); }
.cr-cat--cta { background: linear-gradient(135deg, var(--cr-red), var(--cr-red-deep)); border-color: transparent; color: #fff; }
.cr-cat--cta:hover { color: #fff; }
.cr-cat--cta .cr-cat__icon, .cr-cat--cta:hover .cr-cat__icon { background: rgba(255, 255, 255, .16); }
.cr-cat--cta .cr-cat__sub, .cr-cat--cta .cr-cat__arrow { color: rgba(255, 255, 255, .85); }
.cr-cat--cta::after { background: #fff; }
.cr-cat__img img { width: 100%; height: 120px; object-fit: cover; border-radius: 10px; margin-bottom: 8px; }
.cr-cat__name { font-family: var(--cr-display); font-weight: 700; font-size: 1.15rem; line-height: 1.15; padding-right: 26px; }
.cr-cat__sub { font-size: .85rem; color: var(--cr-muted); line-height: 1.4; }
.cr-cat__arrow { position: absolute; top: 20px; right: 18px; color: var(--cr-muted); transition: transform .2s, color .2s; }
.cr-cat:hover .cr-cat__arrow { color: var(--cr-red); transform: translate(2px, -2px); }

/* Services --------------------------------------------------------------- */
.cr-services { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.cr-service { background: #fff; border: 1px solid var(--cr-line); border-radius: var(--cr-radius); padding: 26px; transition: transform .2s, box-shadow .2s; }
.cr-section--tint .cr-service { border-color: transparent; box-shadow: var(--cr-shadow); }
.cr-service:hover { transform: translateY(-3px); box-shadow: var(--cr-shadow-lg); }
.cr-service > .cr-icon { width: 46px; height: 46px; padding: 11px; border-radius: 12px; background: rgba(198, 38, 39, .08); color: var(--cr-red); margin-bottom: 16px; }
.cr-co-housing .cr-service > .cr-icon { background: rgba(36, 84, 104, .1); color: var(--cr-teal); }
.cr-co-afosoft .cr-service > .cr-icon { background: rgba(36, 84, 104, .1); color: var(--cr-teal); }
.cr-service h3 { margin-bottom: .35em; }
.cr-service p { margin: 0; color: var(--cr-muted); font-size: .95rem; }
.cr-service ul { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 6px; font-size: .92rem; }
.cr-service li { padding-left: 22px; position: relative; }
.cr-service li::before { content: ""; position: absolute; left: 2px; top: .55em; width: 10px; height: 6px; border-left: 2px solid var(--cr-red); border-bottom: 2px solid var(--cr-red); transform: rotate(-45deg); }
.cr-services--detailed { grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); }
.cr-services--values { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

/* Steps ------------------------------------------------------------------ */
.cr-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; counter-reset: s; }
.cr-steps li { position: relative; padding: 26px 22px; border-radius: var(--cr-radius); background: var(--cr-tint); }
.cr-steps li::after { content: ""; position: absolute; top: 44px; right: -14px; width: 10px; height: 10px; border-top: 2px solid var(--cr-line); border-right: 2px solid var(--cr-line); transform: rotate(45deg); }
.cr-steps li:last-child::after { display: none; }
.cr-steps__n { display: block; font-family: var(--cr-display); font-weight: 700; font-size: 2.4rem; line-height: 1; color: var(--cr-red); margin-bottom: 10px; }
.cr-steps h3 { font-size: 1.1rem; margin-bottom: .3em; }
.cr-steps p { margin: 0; font-size: .93rem; color: var(--cr-muted); }
.cr-mini-steps { padding-left: 1.2em; display: grid; gap: 8px; margin-bottom: 1.5em; }

/* Cards ------------------------------------------------------------------ */
.cr-grid { display: grid; gap: 22px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cr-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cr-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cr-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--cr-line); border-radius: var(--cr-radius); overflow: hidden; transition: transform .2s, box-shadow .2s; }
.cr-section--tint .cr-card { border-color: transparent; box-shadow: var(--cr-shadow); }
.cr-card:hover { transform: translateY(-4px); box-shadow: var(--cr-shadow-lg); }
.cr-card__link { position: absolute; inset: 0; z-index: 1; }
.cr-card__cta { position: relative; z-index: 2; }
.cr-card__mediawrap { position: relative; }
.cr-media { aspect-ratio: 4 / 3; background: var(--cr-tint); overflow: hidden; }
.cr-media--tall { aspect-ratio: 4 / 3.2; }
.cr-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.cr-card:hover .cr-media img { transform: scale(1.04); }
.cr-media--placeholder { display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 30% 20%, rgba(255, 255, 255, .12), transparent 50%), linear-gradient(135deg, var(--cr-navy), var(--cr-navy-soft)); color: rgba(255, 255, 255, .9); position: relative; }
.cr-media--placeholder::before { content: ""; position: absolute; inset: 0; background-image: var(--cr-circuit); background-size: 300px; opacity: .1; }
.cr-media--placeholder .cr-icon { width: 54px; height: 54px; position: relative; }
.cr-co-housing .cr-media--placeholder { background: linear-gradient(135deg, var(--cr-teal-deep), var(--cr-teal)); }
.cr-card__body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.cr-card__eyebrow { font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--cr-red); margin-bottom: 6px; }
.cr-card__title { font-size: 1.15rem; margin-bottom: .35em; }
.cr-card__text { font-size: .92rem; color: var(--cr-muted); margin-bottom: 14px; }
.cr-card__meta { display: flex; align-items: center; gap: 6px; font-size: .88rem; color: var(--cr-muted); margin-bottom: 10px; }
.cr-card__foot { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--cr-line); display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.cr-card__price { font-weight: 800; color: var(--cr-ink); font-size: .92rem; }
.cr-card__cta { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .9rem; text-decoration: none; color: var(--cr-red); }
.cr-badge { position: absolute; top: 14px; left: 14px; background: #fff; color: var(--cr-ink); font-size: .75rem; font-weight: 800; letter-spacing: .04em; padding: 5px 10px; border-radius: 999px; box-shadow: var(--cr-shadow); }
.cr-badge--ongoing { background: #fff4d6; color: #7a4f00; }
.cr-badge--completed { background: #e3f4ea; color: #17623a; }
.cr-specs-inline { list-style: none; padding: 0; margin: 0 0 6px; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .86rem; color: var(--cr-text); font-weight: 600; }

/* Company cards ---------------------------------------------------------- */
.cr-companies { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 20px; }
.cr-company { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 28px; border-radius: 18px; background: #fff; border: 1px solid var(--cr-line); text-decoration: none; color: var(--cr-text); transition: transform .2s, box-shadow .2s; overflow: hidden; }
.cr-company::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 4px; background: var(--cr-navy); }
.cr-company--housing::before { background: var(--cr-teal); }
.cr-company--afosoft::before { background: linear-gradient(90deg, var(--cr-teal), var(--cr-red)); }
.cr-company--electrical { background: linear-gradient(160deg, #fff 60%, rgba(198, 38, 39, .05)); }
.cr-company:hover { transform: translateY(-4px); box-shadow: var(--cr-shadow-lg); color: var(--cr-text); }
.cr-company__logo { height: 92px; display: flex; align-items: center; margin-bottom: 8px; }
.cr-company__logo img { max-height: 92px; max-width: 220px; width: auto; }
.cr-company__name { font-family: var(--cr-display); font-weight: 700; font-size: 1.2rem; color: var(--cr-ink); line-height: 1.2; }
.cr-company__tag { font-style: italic; color: var(--cr-red); font-weight: 600; font-size: .92rem; }
.cr-company--housing .cr-company__tag { color: var(--cr-teal); }
.cr-company__text { font-size: .93rem; color: var(--cr-muted); }
.cr-company__more { margin-top: auto; padding-top: 12px; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; color: var(--cr-navy); }
.cr-split .cr-companies { grid-template-columns: 1fr; }
.cr-split .cr-company { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px 18px; padding: 20px 22px; }
.cr-split .cr-company__logo { height: 56px; margin: 0; flex: 0 0 120px; }
.cr-split .cr-company__logo img { max-height: 56px; max-width: 120px; }
.cr-split .cr-company__text, .cr-split .cr-company__more { display: none; }
.cr-split .cr-company__name, .cr-split .cr-company__tag { flex: 1 1 calc(100% - 140px); }

/* Testimonials ----------------------------------------------------------- */
.cr-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.cr-quote { margin: 0; padding: 30px 28px; background: #fff; border: 1px solid var(--cr-line); border-radius: var(--cr-radius); display: flex; flex-direction: column; position: relative; }
.cr-quote__mark { width: 44px; height: 44px; border-radius: 50%; background: var(--cr-navy); color: #fff; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.cr-quote__mark .cr-icon { width: 20px; height: 20px; }
.cr-quote blockquote { margin: 0 0 20px; font-size: 1.08rem; line-height: 1.55; color: var(--cr-ink); font-weight: 500; }
.cr-quote blockquote p:last-child { margin: 0; }
.cr-quote figcaption { margin-top: auto; display: flex; flex-direction: column; font-size: .9rem; border-top: 1px solid var(--cr-line); padding-top: 14px; }
.cr-quote figcaption strong { color: var(--cr-ink); }
.cr-quote figcaption span { color: var(--cr-muted); }
.cr-quote figcaption em { color: var(--cr-red); font-style: normal; font-weight: 700; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; margin-top: 4px; }

/* Panels, notes, chips --------------------------------------------------- */
.cr-panel { background: #fff; border-radius: 18px; padding: clamp(22px, 3vw, 34px); color: var(--cr-text); border: 1px solid var(--cr-line); }
.cr-section--navy .cr-panel, .cr-section--teal .cr-panel { border: 0; box-shadow: var(--cr-shadow-lg); }
.cr-section--navy .cr-panel a:not(.cr-btn), .cr-section--teal .cr-panel a:not(.cr-btn) { color: var(--cr-navy); }
.cr-panel--raised { box-shadow: var(--cr-shadow-lg); border: 0; }
.cr-note { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 12px; background: rgba(198, 38, 39, .07); border-left: 3px solid var(--cr-red); margin: 20px 0; font-size: .92rem; }
.cr-note .cr-icon { color: var(--cr-red); margin-top: 3px; }
.cr-note p { margin: 0; }
.cr-chips { list-style: none; padding: 0; margin: 20px 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cr-chips li { padding: 7px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--cr-line); font-weight: 700; font-size: .88rem; color: var(--cr-ink); }
.cr-checks { list-style: none; padding: 0; display: grid; gap: 10px; margin: 18px 0 24px; }
.cr-checks li { position: relative; padding-left: 30px; font-weight: 600; color: var(--cr-ink); }
.cr-checks li::before { content: ""; position: absolute; left: 0; top: 3px; width: 20px; height: 20px; border-radius: 50%; background: var(--cr-teal); }
.cr-checks li::after { content: ""; position: absolute; left: 6px; top: 8px; width: 8px; height: 5px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); }
.cr-empty { display: flex; gap: 22px; align-items: flex-start; padding: 32px; border-radius: 18px; background: var(--cr-tint); border: 1px dashed #c9d1dd; }
.cr-empty > .cr-icon { width: 54px; height: 54px; padding: 13px; border-radius: 14px; background: var(--cr-teal); color: #fff; }
.cr-empty h3 { margin-bottom: .3em; }
.cr-empty p { color: var(--cr-muted); max-width: 640px; }

/* CTA band --------------------------------------------------------------- */
.cr-cta { padding: clamp(44px, 6vw, 72px) 0; }
.cr-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px 48px; flex-wrap: wrap; }
.cr-cta h2 { margin-bottom: .2em; font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
.cr-cta p { margin: 0; }

/* Contact list ----------------------------------------------------------- */
.cr-contact { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 16px; }
.cr-contact li { display: flex; gap: 14px; align-items: flex-start; }
.cr-contact li > .cr-icon { width: 42px; height: 42px; padding: 10px; border-radius: 12px; background: rgba(198, 38, 39, .08); color: var(--cr-red); }
.cr-section--navy .cr-contact li > .cr-icon, .cr-section--teal .cr-contact li > .cr-icon { background: rgba(255, 255, 255, .1); color: #fff; }
.cr-contact div { display: flex; flex-direction: column; line-height: 1.45; }
.cr-contact strong { font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: var(--cr-muted); }
.cr-section--navy .cr-contact strong { color: rgba(255, 255, 255, .6); }
.cr-contact a { font-weight: 700; text-decoration: none; }
.cr-social-row { margin-top: 24px; display: flex; align-items: center; gap: 8px; font-weight: 700; }

/* Map */
.cr-map { position: relative; min-height: 420px; background: linear-gradient(135deg, var(--cr-tint), #e6ebf2); display: flex; align-items: center; justify-content: center; text-align: center; }
.cr-map::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(22, 38, 64, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(22, 38, 64, .06) 1px, transparent 1px); background-size: 40px 40px; }
.cr-map__consent { position: relative; padding: 32px; max-width: 520px; }
.cr-map__consent > .cr-icon { width: 54px; height: 54px; padding: 12px; border-radius: 50%; background: var(--cr-red); color: #fff; margin: 0 auto 12px; box-shadow: 0 0 0 10px rgba(198, 38, 39, .12); }
.cr-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Forms ------------------------------------------------------------------ */
.cr-form__title { margin-bottom: .8em; font-size: 1.4rem; }
.cr-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.cr-form-wrap--compact .cr-form__grid { grid-template-columns: 1fr 1fr; }
.cr-field { display: flex; flex-direction: column; gap: 6px; }
.cr-field--wide { grid-column: 1 / -1; }
.cr-field label { font-weight: 700; font-size: .88rem; color: var(--cr-ink); }
.cr-req { color: var(--cr-red); }
.cr-field input, .cr-field select, .cr-field textarea { width: 100%; min-height: 48px; padding: 11px 14px; border: 1.5px solid #d5dbe5; border-radius: 10px; background: #fff; color: var(--cr-ink); transition: border-color .15s, box-shadow .15s; }
.cr-field textarea { min-height: 120px; resize: vertical; }
.cr-field input:focus, .cr-field select:focus, .cr-field textarea:focus { outline: none; border-color: var(--cr-navy); box-shadow: 0 0 0 4px rgba(22, 38, 64, .1); }
.cr-field .is-invalid, .cr-field input:user-invalid { border-color: var(--cr-red); }
.cr-consent { display: flex; gap: 10px; align-items: flex-start; margin: 16px 0; font-size: .86rem; color: var(--cr-muted); line-height: 1.5; cursor: pointer; }
.cr-consent input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--cr-red); flex: none; }
.cr-form__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.cr-form__wa { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--cr-wa) !important; text-decoration: none; font-size: .92rem; }
.cr-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cr-alert { display: flex; gap: 12px; padding: 14px 16px; border-radius: 12px; margin-bottom: 18px; font-size: .94rem; }
.cr-alert .cr-icon { margin-top: 3px; }
.cr-alert--success { background: #e3f4ea; color: #154d2f; }
.cr-alert--error { background: #fde8e8; color: #8c1c1d; }

/* Property search -------------------------------------------------------- */
.cr-search { display: grid; grid-template-columns: repeat(5, 1fr) auto; gap: 12px; align-items: end; }
.cr-search__field { display: flex; flex-direction: column; gap: 6px; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--cr-muted); }
.cr-search select { min-height: 48px; padding: 10px 12px; border: 1.5px solid #d5dbe5; border-radius: 10px; background: #fff; font-size: .95rem; text-transform: none; letter-spacing: 0; font-weight: 600; color: var(--cr-ink); }

/* Archive / filters ------------------------------------------------------ */
.cr-archive-layout { display: grid; grid-template-columns: 260px 1fr; gap: 36px; align-items: start; }
.cr-filter { position: sticky; top: calc(var(--cr-header-h) + 20px); background: #fff; border: 1px solid var(--cr-line); border-radius: var(--cr-radius); padding: 20px; }
.cr-filter h2 { font-size: 1.05rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 12px; }
.cr-filter ul { list-style: none; margin: 0; padding: 0; }
.cr-filter li a { display: flex; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 8px; text-decoration: none; color: var(--cr-ink); font-weight: 600; font-size: .92rem; }
.cr-filter li a:hover, .cr-filter li.is-active > a { background: var(--cr-tint); color: var(--cr-red); }
.cr-filter li ul { padding-left: 12px; }
.cr-filter li ul a { font-weight: 500; font-size: .88rem; color: var(--cr-text); }
.cr-filter__count { color: var(--cr-muted); font-weight: 500; font-size: .82rem; }
.cr-filter__help { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--cr-line); font-size: .9rem; }
.cr-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; }
.cr-tabs a { padding: 9px 16px; border-radius: 999px; border: 1px solid var(--cr-line); text-decoration: none; font-weight: 700; font-size: .9rem; color: var(--cr-ink); background: #fff; }
.cr-tabs a.is-active, .cr-tabs a:hover { background: var(--cr-navy); border-color: var(--cr-navy); color: #fff; }
.cr-resultbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 20px; color: var(--cr-muted); font-size: .92rem; flex-wrap: wrap; }
.cr-subcats { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.cr-subcats a { padding: 8px 14px; border-radius: 999px; background: var(--cr-tint); text-decoration: none; font-weight: 700; font-size: .88rem; color: var(--cr-ink); }
.cr-subcats a:hover { background: var(--cr-navy); color: #fff; }
.cr-pagination { margin-top: 40px; display: flex; justify-content: center; }
.cr-pagination .nav-links { display: flex; gap: 6px; flex-wrap: wrap; }
.cr-pagination .page-numbers { min-width: 44px; height: 44px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; border: 1px solid var(--cr-line); text-decoration: none; font-weight: 700; color: var(--cr-ink); }
.cr-pagination .page-numbers.current, .cr-pagination .page-numbers:hover { background: var(--cr-navy); color: #fff; border-color: var(--cr-navy); }

/* Single product / property / project ------------------------------------ */
.cr-single { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(28px, 5vw, 64px); align-items: start; }
.cr-gallery__main { border-radius: 18px; overflow: hidden; background: var(--cr-tint); aspect-ratio: 4 / 3.4; border: 1px solid var(--cr-line); }
.cr-gallery__main img { width: 100%; height: 100%; object-fit: cover; }
.cr-gallery__main .cr-media { aspect-ratio: auto; height: 100%; }
.cr-gallery__main .cr-media--placeholder .cr-icon { width: 96px; height: 96px; }
.cr-gallery__thumbs { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.cr-gallery__thumbs button { width: 76px; height: 76px; padding: 0; border: 2px solid transparent; border-radius: 10px; overflow: hidden; cursor: pointer; background: var(--cr-tint); }
.cr-gallery__thumbs button.is-active { border-color: var(--cr-red); }
.cr-gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.cr-single__info h1 { font-size: clamp(1.9rem, 3.4vw, 2.7rem); }
.cr-single__lead { font-size: 1.08rem; color: var(--cr-text); }
.cr-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.cr-pill { display: inline-flex; padding: 5px 12px; border-radius: 999px; background: rgba(198, 38, 39, .08); color: var(--cr-red); font-weight: 800; font-size: .78rem; text-decoration: none; letter-spacing: .03em; }
.cr-pill--teal { background: rgba(36, 84, 104, .1); color: var(--cr-teal); }
.cr-pricebox { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; border-radius: 14px; background: var(--cr-tint); margin: 22px 0; flex-wrap: wrap; }
.cr-pricebox strong { font-family: var(--cr-display); font-size: 1.5rem; color: var(--cr-ink); }
.cr-pricebox span { display: block; font-size: .8rem; color: var(--cr-muted); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.cr-table { width: 100%; border-collapse: collapse; margin: 0 0 1.5em; font-size: .94rem; }
.cr-table th, .cr-table td { text-align: left; padding: 11px 14px; border-bottom: 1px solid var(--cr-line); vertical-align: top; }
.cr-table thead th { background: var(--cr-tint); font-weight: 800; color: var(--cr-ink); font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; }
.cr-table tbody th { width: 40%; color: var(--cr-muted); font-weight: 600; }
.cr-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 12px; margin: 20px 0; }
.cr-facts div { padding: 14px; border-radius: 12px; background: var(--cr-tint); }
.cr-facts span { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--cr-muted); font-weight: 800; }
.cr-facts strong { font-size: 1.05rem; color: var(--cr-ink); }
.cr-help { display: flex; gap: 14px; align-items: center; padding: 16px; border-radius: 14px; border: 1px solid var(--cr-line); margin-top: 20px; font-size: .92rem; }
.cr-help > .cr-icon { width: 40px; height: 40px; padding: 9px; border-radius: 10px; background: var(--cr-navy); color: #fff; }
.cr-help p { margin: 0; }
.cr-video { position: relative; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; margin: 20px 0; }
.cr-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Prose (legal & default content) ---------------------------------------- */
.cr-prose h2 { font-size: 1.5rem; margin-top: 1.8em; }
.cr-prose h3 { margin-top: 1.4em; }
.cr-prose ul { padding-left: 1.3em; }
.cr-prose li { margin-bottom: .35em; }
.cr-content > *:first-child { margin-top: 0; }
.cr-content-default { padding: clamp(40px, 6vw, 72px) 0; }
.cr-content-default > .cr-wrap > * { max-width: 820px; }
.cr-content-default > .cr-wrap > .alignwide, .cr-content-default > .cr-wrap > .alignfull { max-width: none; }

/* About / CEO ------------------------------------------------------------ */
.cr-ceo { display: grid; grid-template-columns: 340px 1fr; gap: clamp(28px, 6vw, 72px); align-items: center; }
.cr-ceo__photo { margin: 0; position: relative; }
.cr-ceo__photo img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; border: 8px solid #fff; box-shadow: var(--cr-shadow-lg); }
.cr-ceo__photo::before { content: ""; position: absolute; inset: -14px; border-radius: 50%; border: 2px dashed rgba(22, 38, 64, .2); animation: cr-spin 40s linear infinite; }
@keyframes cr-spin { to { transform: rotate(360deg); } }
.cr-ceo__sign { margin-top: 1.5em; display: flex; flex-direction: column; }
.cr-ceo__sign strong { font-family: var(--cr-display); font-size: 1.25rem; color: var(--cr-ink); }
.cr-ceo__sign span { color: var(--cr-muted); }
.cr-aside h2 { font-size: 1.5rem; }

/* Footer ----------------------------------------------------------------- */
.cr-footer { background: var(--cr-navy-deep); color: rgba(255, 255, 255, .7); font-size: .94rem; position: relative; isolation: isolate; overflow: hidden; }
.cr-footer::before { content: ""; position: absolute; inset: 0; background-image: var(--cr-circuit); background-size: 520px; opacity: .05; z-index: -1; }
.cr-footer a { color: rgba(255, 255, 255, .86); text-decoration: none; }
.cr-footer a:hover { color: #fff; text-decoration: underline; }
.cr-footer__top { display: grid; grid-template-columns: 1.4fr 1fr .8fr 1.2fr; gap: 40px; padding: clamp(48px, 7vw, 80px) 0 48px; }
.cr-footer h2 { color: #fff; font-size: .9rem; text-transform: uppercase; letter-spacing: .14em; margin-bottom: 16px; }
.cr-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.cr-footer__brand img { width: 170px; margin-bottom: 18px; }
.cr-footer__brand p { max-width: 340px; }
.cr-footer__social { display: flex; gap: 10px; margin-top: 18px; }
.cr-footer__social a { width: 40px; height: 40px; border-radius: 10px; background: rgba(255, 255, 255, .08); display: inline-flex; align-items: center; justify-content: center; }
.cr-footer__social a:hover { background: var(--cr-red); text-decoration: none; }
.cr-footer__cos li a { display: flex; align-items: center; gap: 10px; }
.cr-footer__cos img { width: 64px; height: 30px; object-fit: contain; object-position: left; }
.cr-footer__contact li { display: flex; gap: 10px; }
.cr-footer__contact .cr-icon { margin-top: 4px; color: #ff9a9a; }
.cr-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .1); padding: 22px 0 26px; display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; font-size: .84rem; }
.cr-footer__bottom ul { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.cr-footer__credit { width: 100%; color: rgba(255, 255, 255, .5); }

/* Floating WhatsApp & mobile bar ----------------------------------------- */
.cr-wa-float { position: fixed; right: 20px; bottom: 20px; z-index: 90; width: 58px; height: 58px; border-radius: 50%; background: var(--cr-wa); color: #fff; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 10px 28px -6px rgba(31, 174, 84, .6); transition: transform .2s; }
.cr-wa-float:hover { color: #fff; transform: scale(1.06); }
.cr-wa-float .cr-icon { width: 30px; height: 30px; }
.cr-wa-float::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--cr-wa); animation: cr-ring 2.6s ease-out infinite; }
@keyframes cr-ring { from { transform: scale(1); opacity: .8; } to { transform: scale(1.5); opacity: 0; } }
.cr-mobilebar { display: none; }

/* Reveal ----------------------------------------------------------------- */
.cr-js .cr-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; transition-delay: var(--cr-d, 0s); }
.cr-js .cr-reveal.is-in { opacity: 1; transform: none; }

/* Elementor: give Elementor pages full width ----------------------------- */
.cr-elementor-page .cr-content { padding: 0; }
.elementor-page .cr-banner + .cr-content { padding: 0; }

/* Responsive ------------------------------------------------------------- */
@media (max-width: 1180px) {
	.cr-menu > li > a { padding: 10px 10px; font-size: .9rem; }
	.cr-header__cta .cr-btn { padding: .6em 1.1em; }
	.cr-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
	.cr-nav, .cr-header__cta { display: none; }
	.cr-burger { display: inline-flex; }
	.cr-hero__grid { grid-template-columns: 1fr; }
	.cr-hero__visual { min-height: 380px; max-width: 520px; width: 100%; margin: 12px auto 0; }
	.cr-trust { grid-template-columns: repeat(2, 1fr); }
	.cr-steps { grid-template-columns: repeat(2, 1fr); }
	.cr-steps li::after { display: none; }
	.cr-companies { grid-template-columns: 1fr; }
	.cr-footer__top { grid-template-columns: 1fr 1fr; }
	.cr-search { grid-template-columns: repeat(3, 1fr); }
	.cr-search .cr-btn { grid-column: span 3; }
	.cr-archive-layout { grid-template-columns: 1fr; }
	.cr-filter { position: static; }
	.cr-grid, .cr-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 782px) {
	.admin-bar .cr-header { top: 46px; }
}
@media (max-width: 860px) {
	.cr-split, .cr-split--wide-right, .cr-single, .cr-ceo { grid-template-columns: 1fr; }
	.cr-ceo__photo { max-width: 260px; }
	.cr-topbar__hide-sm { display: none !important; }
}
@media (max-width: 640px) {
	:root { --cr-header-h: 64px; }
	body { font-size: 15.5px; }
	.cr-topbar { display: none; }
	.cr-brand__word { width: 112px; }
	.cr-brand__mark { width: 34px; height: 34px; }
	.cr-hero { padding-top: 44px; }
	.cr-hero__visual { min-height: 320px; }
	.cr-hero__badge { left: 0; top: 4%; }
	.cr-actions .cr-btn { flex: 1 1 100%; }
	.cr-trust { grid-template-columns: 1fr; }
	.cr-steps { grid-template-columns: 1fr; }
	.cr-cats { grid-template-columns: 1fr 1fr; gap: 10px; }
	.cr-cat { padding: 16px; min-height: 0; }
	.cr-cat__icon { width: 44px; height: 44px; }
	.cr-cat__name { font-size: 1rem; padding-right: 0; }
	.cr-cat__sub, .cr-cat__arrow { display: none; }
	.cr-grid, .cr-grid--4, .cr-grid--2 { grid-template-columns: 1fr; }
	.cr-form__grid, .cr-form-wrap--compact .cr-form__grid { grid-template-columns: 1fr; }
	.cr-search { grid-template-columns: 1fr 1fr; }
	.cr-search .cr-btn { grid-column: span 2; }
	.cr-footer__top { grid-template-columns: 1fr; gap: 32px; }
	.cr-empty { flex-direction: column; padding: 24px; }
	.cr-cobar__tag { display: none; }
	.cr-cobar__brand img { height: 36px; }
	.cr-head--split > p { max-width: none; }
	.cr-wa-float { display: none; }
	.cr-mobilebar { display: grid; grid-template-columns: repeat(3, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 95; background: #fff; border-top: 1px solid var(--cr-line); box-shadow: 0 -8px 24px -12px rgba(13, 24, 41, .25); padding: 6px 6px calc(6px + env(safe-area-inset-bottom)); }
	.cr-mobilebar a { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 4px; font-size: .74rem; font-weight: 800; text-decoration: none; color: var(--cr-ink); border-radius: 10px; }
	.cr-mobilebar a .cr-icon { width: 22px; height: 22px; }
	.cr-mobilebar a.is-wa { color: var(--cr-wa); }
	.cr-mobilebar a.is-quote { background: var(--cr-red); color: #fff; }
	body { padding-bottom: 68px; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.cr-js .cr-reveal { opacity: 1; transform: none; }
}

@media print {
	.cr-topbar, .cr-header, .cr-footer, .cr-wa-float, .cr-mobilebar, .cr-drawer { display: none !important; }
}

/* ==========================================================================
   v1.1 — slider, photos, brands, marquees, careers, motion
   ========================================================================== */

/* Glass button & highlights */
.cr-btn--glass { background: rgba(255, 255, 255, .12); color: #fff; border-color: rgba(255, 255, 255, .35); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.cr-btn--glass:hover { background: #fff; color: var(--cr-navy); }
.cr-btn--primary { position: relative; overflow: hidden; }
.cr-btn--primary::after { content: ""; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .35), transparent); transform: skewX(-20deg); transition: left .6s ease; }
.cr-btn--primary:hover::after { left: 120%; }
.cr-hl { background: linear-gradient(90deg, #ff6b6b, #ffd166); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* Scroll progress */
.cr-progress { position: fixed; top: 0; left: 0; height: 3px; width: 100%; transform-origin: 0 50%; transform: scaleX(0); background: linear-gradient(90deg, var(--cr-red), #ffb03a); z-index: 300; pointer-events: none; }
.admin-bar .cr-progress { top: 32px; }

/* Background photo helper */
.cr-bg { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.cr-bg img, .cr-bgimg { width: 100%; height: 100%; object-fit: cover; }
.cr-hero--photo .cr-bg img { animation: cr-kenburns 28s ease-in-out infinite alternate; }
.cr-hero--photo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgba(13, 24, 41, .94) 0%, rgba(13, 24, 41, .82) 45%, rgba(13, 24, 41, .45) 100%); }
.cr-co-housing .cr-hero--photo::before { background: linear-gradient(100deg, rgba(23, 58, 73, .95) 0%, rgba(23, 58, 73, .8) 45%, rgba(23, 58, 73, .4) 100%); }
.cr-hero--photo .cr-hero__bg { opacity: .08; z-index: -1; }
@keyframes cr-kenburns { from { transform: scale(1.02) translate(0, 0); } to { transform: scale(1.12) translate(-1.5%, -1%); } }

.cr-banner--photo { padding: clamp(64px, 9vw, 120px) 0 clamp(52px, 7vw, 92px); }
.cr-banner--photo::before { opacity: .08; z-index: -1; }
.cr-banner--photo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgba(13, 24, 41, .92), rgba(13, 24, 41, .62)); }
.cr-co-housing .cr-banner--photo::after { background: linear-gradient(100deg, rgba(23, 58, 73, .92), rgba(23, 58, 73, .6)); }
.cr-banner--photo .cr-bg img { animation: cr-kenburns 30s ease-in-out infinite alternate; }

/* Hero slider ------------------------------------------------------------ */
.cr-slider { position: relative; color: #fff; background: var(--cr-navy-deep); overflow: hidden; isolation: isolate; }
.cr-slider__slides { position: relative; height: clamp(560px, 82vh, 760px); }
.cr-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1s ease, visibility 1s; }
.cr-slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.cr-slide__media { position: absolute; inset: 0; overflow: hidden; }
.cr-slide__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); }
.cr-slide.is-active .cr-slide__media img { animation: cr-zoom 9s ease-out forwards; }
@keyframes cr-zoom { from { transform: scale(1.14) translate(1%, 0); } to { transform: scale(1.02) translate(0, 0); } }
.cr-slide__shade { position: absolute; inset: 0; background: linear-gradient(95deg, rgba(13, 24, 41, .93) 0%, rgba(13, 24, 41, .76) 42%, rgba(13, 24, 41, .2) 100%), linear-gradient(0deg, rgba(13, 24, 41, .7) 0%, transparent 35%); }
.cr-slide--housing .cr-slide__shade { background: linear-gradient(95deg, rgba(23, 58, 73, .94) 0%, rgba(23, 58, 73, .74) 42%, rgba(23, 58, 73, .15) 100%), linear-gradient(0deg, rgba(13, 24, 41, .7) 0%, transparent 35%); }
.cr-slide--afosoft .cr-slide__shade { background: linear-gradient(95deg, rgba(10, 22, 34, .95) 0%, rgba(23, 58, 73, .75) 45%, rgba(198, 38, 39, .15) 100%), linear-gradient(0deg, rgba(13, 24, 41, .7) 0%, transparent 35%); }
.cr-slide__inner { position: relative; height: 100%; display: flex; align-items: center; padding-bottom: 110px; }
.cr-slide__copy { max-width: 680px; }
.cr-slide__chip { display: inline-flex; align-items: center; gap: 10px; padding: 6px 14px 6px 8px; border-radius: 999px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .22); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); font-weight: 700; font-size: .85rem; margin-bottom: 18px; }
.cr-slide__chip img { height: 28px; width: auto; max-width: 90px; }
.cr-slide__title { color: #fff; font-size: clamp(2.5rem, 6.4vw, 5rem); line-height: 1.02; margin: 0 0 .3em; }
.cr-slide__text { font-size: clamp(1.02rem, 1.5vw, 1.2rem); color: rgba(255, 255, 255, .86); max-width: 560px; margin-bottom: 1.8em; }
.cr-slide .cr-slide__chip, .cr-slide .cr-eyebrow, .cr-slide .cr-slide__title, .cr-slide .cr-slide__text, .cr-slide .cr-actions { opacity: 0; transform: translateY(26px); }
.cr-slide.is-active .cr-slide__chip, .cr-slide.is-active .cr-eyebrow, .cr-slide.is-active .cr-slide__title, .cr-slide.is-active .cr-slide__text, .cr-slide.is-active .cr-actions { animation: cr-rise .8s cubic-bezier(.2, .7, .2, 1) forwards; }
.cr-slide.is-active .cr-eyebrow { animation-delay: .1s; }
.cr-slide.is-active .cr-slide__title { animation-delay: .22s; }
.cr-slide.is-active .cr-slide__text { animation-delay: .38s; }
.cr-slide.is-active .cr-actions { animation-delay: .52s; }
@keyframes cr-rise { to { opacity: 1; transform: none; } }
.cr-slider__ui { position: absolute; left: 0; right: 0; bottom: 26px; z-index: 5; display: flex; align-items: flex-end; gap: 20px; }
.cr-slider__tabs { flex: 1; display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.cr-slider__tab { text-align: left; background: none; border: 0; color: rgba(255, 255, 255, .62); cursor: pointer; padding: 10px 0 0; font: inherit; transition: color .2s; }
.cr-slider__tab:hover, .cr-slider__tab.is-active { color: #fff; }
.cr-slider__tabname { display: block; font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; opacity: .75; }
.cr-slider__tabtitle { display: block; font-size: .84rem; font-weight: 600; line-height: 1.3; margin: 2px 0 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cr-slider__progress { display: block; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .22); overflow: hidden; }
.cr-slider__progress i { display: block; height: 100%; width: 0; background: var(--cr-red); }
.cr-slider__tab.is-active .cr-slider__progress i { animation: cr-fill var(--cr-int, 6.5s) linear forwards; }
.cr-slider.is-paused .cr-slider__tab.is-active .cr-slider__progress i { animation-play-state: paused; }
.cr-slider__tab.is-done .cr-slider__progress i { width: 100%; }
@keyframes cr-fill { to { width: 100%; } }
.cr-slider__arrows { display: flex; gap: 8px; }
.cr-slider__arrow, .cr-slider__pause { width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .08); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s, transform .2s; }
.cr-slider__arrow:hover, .cr-slider__pause:hover { background: var(--cr-red); border-color: var(--cr-red); }
.cr-slider__arrow[data-dir="-1"] .cr-icon { transform: rotate(180deg); }
.cr-slider__pause span { width: 12px; height: 14px; border-left: 4px solid #fff; border-right: 4px solid #fff; }
.cr-slider.is-paused .cr-slider__pause span { border: 0; width: 0; height: 0; border-left: 12px solid #fff; border-top: 8px solid transparent; border-bottom: 8px solid transparent; margin-left: 4px; }

/* Stats ----------------------------------------------------------------- */
.cr-section--stats { padding: 0; position: relative; z-index: 3; }
.cr-stats { list-style: none; margin: -46px auto 0; padding: 26px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; background: #fff; border-radius: 18px; box-shadow: var(--cr-shadow-lg); }
.cr-stats li { text-align: center; padding: 6px 8px; border-right: 1px solid var(--cr-line); }
.cr-stats li:last-child { border-right: 0; }
.cr-stats strong { display: block; font-family: var(--cr-display); font-size: clamp(1.7rem, 3vw, 2.4rem); color: var(--cr-navy); line-height: 1.1; }
.cr-stats span { display: block; font-size: .85rem; color: var(--cr-muted); font-weight: 600; }
.cr-stats li:nth-child(odd) strong { color: var(--cr-red); }

/* Marquees --------------------------------------------------------------- */
.cr-marquee { display: flex; overflow: hidden; gap: 16px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); padding: 6px 0; }
.cr-marquee__track { display: flex; gap: 16px; flex: none; min-width: 100%; justify-content: space-around; animation: cr-scroll var(--speed, 40s) linear infinite; }
.cr-marquee--rev .cr-marquee__track { animation-direction: reverse; }
.cr-marquee:hover .cr-marquee__track { animation-play-state: paused; }
@keyframes cr-scroll { to { transform: translateX(calc(-100% - 16px)); } }
.cr-marquee + .cr-marquee { margin-top: 10px; }
.cr-section--brands { padding-bottom: clamp(48px, 7vw, 88px); }
.cr-section--brands-tight { padding: 40px 0; background: var(--cr-tint); }
.cr-brands-label { text-align: center; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; color: var(--cr-muted); margin: 0 0 14px; }
.cr-brands-inline { margin: 34px 0 6px; }

/* Brand tiles */
.cr-brand-tile { --b: #162640; flex: none; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-width: 148px; height: 84px; padding: 12px 18px; border-radius: 14px; background: #fff; border: 1px solid var(--cr-line); text-decoration: none; color: #7a8394; transition: transform .2s, box-shadow .2s, color .2s, border-color .2s; }
.cr-brand-tile:hover, .cr-brand-tile.is-active { color: var(--b); border-color: var(--b); transform: translateY(-3px); box-shadow: var(--cr-shadow); }
.cr-brand-tile__logo svg { width: 34px; height: 34px; display: block; }
.cr-brand-tile__name { font-size: .72rem; font-weight: 800; letter-spacing: .04em; color: var(--cr-ink); opacity: .8; white-space: nowrap; }
.cr-brand-tile__word { font-family: var(--cr-display); font-weight: 700; font-size: 1.2rem; letter-spacing: .02em; white-space: nowrap; color: var(--cr-ink); opacity: .75; transition: color .2s, opacity .2s; }
.cr-brand-tile:hover .cr-brand-tile__word, .cr-brand-tile.is-active .cr-brand-tile__word { color: var(--b); opacity: 1; }
.cr-brand-tile img { max-height: 46px; width: auto; filter: grayscale(1); opacity: .75; transition: filter .2s, opacity .2s; }
.cr-brand-tile:hover img { filter: none; opacity: 1; }
.cr-brandbar { margin: 0 0 28px; padding: 18px; border-radius: 16px; background: var(--cr-tint); }
.cr-brandbar__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: .9rem; }
.cr-brandbar__head a { font-weight: 700; text-decoration: none; }
.cr-brandbar__track, .cr-brandrow { display: flex; gap: 10px; overflow-x: auto; padding: 4px 2px 10px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.cr-brandbar__track .cr-brand-tile, .cr-brandrow .cr-brand-tile { scroll-snap-align: start; min-width: 124px; height: 74px; }
.cr-brandrow--single { margin: 0 0 8px; }
.cr-brandrow--single .cr-brand-tile { color: var(--b); border-color: color-mix(in srgb, var(--b) 40%, #fff); }
.cr-otherbrands { margin-top: 22px; }
.cr-otherbrands .cr-brands-label { text-align: left; }

/* Photo gallery marquee */
.cr-section--gallery { overflow: hidden; }
.cr-marquee--photos .cr-marquee__track { gap: 16px; }
.cr-gal__item { position: relative; margin: 0; width: clamp(240px, 26vw, 340px); aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; flex: none; box-shadow: var(--cr-shadow); }
.cr-gal__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.cr-gal__item:hover img { transform: scale(1.08); }
.cr-gal__item figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 14px 12px; background: linear-gradient(0deg, rgba(13, 24, 41, .85), transparent); color: #fff; font-weight: 700; font-size: .88rem; }
.cr-section--dark { background: var(--cr-navy-deep); color: rgba(255, 255, 255, .8); }
.cr-section--dark h2 { color: #fff; }

/* Category tiles with photos */
.cr-cat--photo { padding: 0; min-height: 0; }
.cr-cat--photo .cr-cat__img { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; margin: 0; }
.cr-cat--photo .cr-cat__img img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; margin: 0; transition: transform .6s ease; }
.cr-cat--photo:hover .cr-cat__img img { transform: scale(1.08); }
.cr-cat__badge { position: absolute; left: 14px; bottom: -20px; width: 44px; height: 44px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--cr-navy); color: #fff; box-shadow: 0 6px 16px -4px rgba(13, 24, 41, .5); transition: background .2s, transform .2s; }
.cr-cat--photo:hover .cr-cat__badge { background: var(--cr-red); transform: rotate(-8deg) scale(1.05); }
.cr-cat__badge .cr-icon { width: 22px; height: 22px; }
.cr-cat--photo .cr-cat__name { padding: 30px 18px 0; }
.cr-cat--photo .cr-cat__sub { padding: 4px 18px 18px; }
.cr-cat--photo .cr-cat__arrow { top: auto; bottom: 18px; }
.cr-cat--cta { justify-content: center; }

/* Sub-category sections */
.cr-subsec { margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--cr-line); }
.cr-subsec__head { display: flex; align-items: baseline; gap: 6px 18px; flex-wrap: wrap; margin-bottom: 14px; }
.cr-subsec__head h2 { font-size: 1.6rem; margin: 0; }
.cr-subsec__head h2 a { text-decoration: none; color: var(--cr-ink); }
.cr-subsec__head p { margin: 0; color: var(--cr-muted); flex: 1 1 260px; }
.cr-grid--compact { gap: 16px; }
.cr-grid--compact .cr-card__title { font-size: 1.05rem; }
.cr-card__eyebrow em { font-style: normal; color: var(--cr-navy); }

/* Company cards with photos */
.cr-company { padding: 0; }
.cr-company::before { z-index: 2; }
.cr-company__photo { display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.cr-company__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.cr-company:hover .cr-company__photo img { transform: scale(1.07); }
.cr-company__logo { margin: -40px 22px 4px; height: 76px; width: max-content; max-width: calc(100% - 44px); padding: 10px 16px; background: #fff; border-radius: 14px; box-shadow: var(--cr-shadow); position: relative; }
.cr-company__logo img { max-height: 56px; max-width: 170px; }
.cr-company__name, .cr-company__tag, .cr-company__text { padding: 0 24px; }
.cr-company__more { padding: 12px 24px 24px; }
.cr-split .cr-company__photo { display: none; }
.cr-split .cr-company__logo { margin: 0; box-shadow: none; padding: 0; }

/* Project illustrative label */
.cr-illus { position: absolute; right: 10px; bottom: 10px; font-size: .68rem; font-weight: 700; background: rgba(13, 24, 41, .7); color: #fff; padding: 3px 8px; border-radius: 6px; }

/* Photo stacks */
.cr-photo-stack { position: relative; margin: 0; padding: 0 0 50px 0; }
.cr-photo-stack > img:first-child { width: 88%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 20px; box-shadow: var(--cr-shadow-lg); }
.cr-photo-stack__small { position: absolute; right: 0; bottom: 0; width: 46% !important; aspect-ratio: 1; object-fit: cover; border-radius: 18px; border: 6px solid #fff; box-shadow: var(--cr-shadow-lg); animation: cr-float 9s ease-in-out infinite; }
.cr-section--navy .cr-photo-stack__small { border-color: var(--cr-navy); }

/* Careers */
.cr-pills-row { list-style: none; padding: 0; margin: 26px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cr-pills-row li { padding: 7px 14px; border-radius: 999px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .2); font-weight: 700; font-size: .86rem; animation: cr-bob 4s ease-in-out infinite; }
.cr-pills-row li:nth-child(2) { animation-delay: .4s; } .cr-pills-row li:nth-child(3) { animation-delay: .8s; } .cr-pills-row li:nth-child(4) { animation-delay: 1.2s; } .cr-pills-row li:nth-child(5) { animation-delay: 1.6s; }
@keyframes cr-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
.cr-paths { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; }
.cr-path { --c: var(--cr-red); position: relative; padding: 26px 22px; border-radius: 18px; background: #fff; border: 1px solid var(--cr-line); overflow: hidden; transition: transform .25s, box-shadow .25s; }
.cr-path::before { content: ""; position: absolute; inset: auto -40px -40px auto; width: 120px; height: 120px; border-radius: 50%; background: var(--c); opacity: .08; transition: transform .4s; }
.cr-path:hover { transform: translateY(-6px) rotate(-.5deg); box-shadow: var(--cr-shadow-lg); }
.cr-path:hover::before { transform: scale(2.4); }
.cr-path > .cr-icon { width: 48px; height: 48px; padding: 11px; border-radius: 14px; background: var(--c); color: #fff; margin-bottom: 14px; }
.cr-path p { color: var(--cr-muted); font-size: .93rem; }
.cr-path span { display: block; font-size: .78rem; font-weight: 700; color: var(--c); }
.cr-path--teal { --c: var(--cr-teal); } .cr-path--navy { --c: var(--cr-navy); } .cr-path--grey { --c: #5b5b5b; } .cr-path--gold { --c: #c98a00; }
.cr-perks { list-style: none; padding: 0; margin: 26px 0 0; display: grid; gap: 16px; }
.cr-perks li { display: flex; gap: 14px; align-items: flex-start; }
.cr-perks li > .cr-icon { width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: rgba(255, 255, 255, .1); color: #ffb4b4; flex: none; }
.cr-perks strong { display: block; color: #fff; }
.cr-perks span { font-size: .93rem; }
.cr-steps--3 { grid-template-columns: repeat(3, 1fr); }
.cr-faq { border: 1px solid var(--cr-line); border-radius: 12px; background: #fff; margin: 10px 0; padding: 0 16px; }
.cr-faq summary { cursor: pointer; padding: 14px 0; font-weight: 800; color: var(--cr-ink); list-style: none; display: flex; justify-content: space-between; gap: 10px; }
.cr-faq summary::-webkit-details-marker { display: none; }
.cr-faq summary::after { content: "+"; font-size: 1.3rem; line-height: 1; color: var(--cr-red); transition: transform .2s; }
.cr-faq[open] summary::after { transform: rotate(45deg); }
.cr-faq p { margin: 0 0 14px; color: var(--cr-muted); }

/* Tilt */
.cr-tilt { transform-style: preserve-3d; will-change: transform; }

/* Responsive additions */
@media (max-width: 1024px) {
	.cr-slider__tabs { grid-template-columns: repeat(6, 1fr); }
	.cr-slider__tabtitle, .cr-slider__tabname { display: none; }
	.cr-stats { grid-template-columns: repeat(3, 1fr); }
	.cr-stats li:nth-child(3) { border-right: 0; }
	.cr-steps--3 { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.cr-slider__slides { height: 620px; }
	.cr-slide__inner { align-items: flex-end; padding-bottom: 96px; }
	.cr-slide__shade { background: linear-gradient(0deg, rgba(13, 24, 41, .96) 0%, rgba(13, 24, 41, .78) 55%, rgba(13, 24, 41, .3) 100%) !important; }
	.cr-slider__arrows .cr-slider__arrow { width: 40px; height: 40px; }
	.cr-slider__pause { width: 40px; height: 40px; }
	.cr-stats { grid-template-columns: 1fr 1fr; margin-top: -30px; padding: 18px; }
	.cr-stats li { border-right: 0; border-bottom: 1px solid var(--cr-line); padding: 10px 4px; }
	.cr-stats li:last-child { grid-column: span 2; border-bottom: 0; }
	.cr-brand-tile { min-width: 118px; height: 70px; }
	.cr-photo-stack > img:first-child { width: 100%; }
	.cr-company__logo { margin-top: -34px; }
}
@media (prefers-reduced-motion: reduce) {
	.cr-slide .cr-slide__chip, .cr-slide .cr-eyebrow, .cr-slide .cr-slide__title, .cr-slide .cr-slide__text, .cr-slide .cr-actions { opacity: 1; transform: none; }
	.cr-marquee__track { animation: none !important; }
	.cr-marquee { overflow-x: auto; }
}
.cr-archive-layout > * { min-width: 0; }
.cr-single > * { min-width: 0; }
.cr-stats strong .cr-count { display: inline; font-size: inherit; color: inherit; font-weight: inherit; }
.cr-slider__ui { bottom: 74px; }
@media (max-width: 640px) { .cr-slider__ui { bottom: 52px; } .cr-slide__inner { padding-bottom: 130px; } }

.cr-brand-tile__logo svg { width: auto; height: 32px; max-width: 120px; }
.cr-brand-tile__logo.is-wordmark svg { height: 22px; max-width: 118px; }

/* v1.2: sample listings */
.cr-badge--sample { left: auto; right: 14px; background: #f5b400; color: #1b1b1b; }
.cr-sample-note { background: #fff6dc; border: 1px solid #f1d27a; color: #5b4500; border-radius: 10px; padding: 10px 14px; font-size: .9rem; margin: 0 0 14px; }
