/* OMECCA Vision — final production theme */
.urban-home { display: block; }

html[data-theme="omecca"] {
    --navy: #111820;
    --navy-2: #1b2630;
    --text: #18212a;
    --muted: #69747d;
    --blue: #173a69;
    --cyan: #bdc9d2;
    --surface: #f4f4f1;
    --line: #d9dde0;
    --radius: 0;
}

html[data-theme="omecca"] body { background: #fff; color: var(--text); }
html[data-theme="omecca"] .urban-home { display: block; }
html[data-theme="omecca"] .site-header { position: sticky; top: 0; background: #fff; color: #18212a; border-color: #e1e4e6; }
html[data-theme="omecca"] .site-header .brand { line-height: 0; }
html[data-theme="omecca"] .site-header .brand-logo-dark { display: block; }
html[data-theme="omecca"] .site-header .brand-logo-light { display: none; }
html[data-theme="omecca"] .home-page .site-header { position: absolute; top: 0; left: 0; right: 0; width: 100%; background: linear-gradient(#071018ad, transparent); color: #fff; border-color: #ffffff32; }
html[data-theme="omecca"] .home-page .site-header .brand-logo-dark { display: none; }
html[data-theme="omecca"] .home-page .site-header .brand-logo-light { display: block; filter: none; }
html[data-theme="omecca"] .nav-trigger::after { bottom: 12px; height: 1px; background: currentColor; }
html[data-theme="omecca"] .nav-trigger:hover,
html[data-theme="omecca"] .nav-trigger[aria-expanded="true"] { color: #8fb5d7; }
html[data-theme="omecca"] .nav-dropdown { background: #fff; color: #18212a; border: 0; border-top: 2px solid #173a69; border-radius: 0; box-shadow: 0 20px 45px #08131f24; }
html[data-theme="omecca"] .nav-dropdown a { border-radius: 0; }
html[data-theme="omecca"] .nav-dropdown a:hover { background: #f1f3f4; }
html[data-theme="omecca"] .header-contact,
html[data-theme="omecca"] .primary { background: transparent; color: inherit; border: 1px solid currentColor; border-radius: 0; box-shadow: none; }
html[data-theme="omecca"] .home-page .header-contact:hover { background: #fff; color: #18212a; }
html[data-theme="omecca"] .menu-toggle { color: inherit; }
html[data-theme="omecca"] .page-heading,
html[data-theme="omecca"] .detail-hero,
html[data-theme="omecca"] .detail-gallery-section,
html[data-theme="omecca"] .board-shell { background: #f6f6f3; color: #18212a; }
html[data-theme="omecca"] .solution-card,
html[data-theme="omecca"] .resource-grid > a,
html[data-theme="omecca"] .contact-option,
html[data-theme="omecca"] .detail-key-image,
html[data-theme="omecca"] .collection-image,
html[data-theme="omecca"] .reply-panel,
html[data-theme="omecca"] .reply-form,
html[data-theme="omecca"] .access-card,
html[data-theme="omecca"] .account-settings { border-radius: 0; box-shadow: none; border-color: #d9dde0; }
html[data-theme="omecca"] input,
html[data-theme="omecca"] textarea,
html[data-theme="omecca"] select { border-radius: 0; border-color: #cfd4d8; }
html[data-theme="omecca"] .contact-banner { background: #18242e; }
html[data-theme="omecca"] .site-footer { background: #10161c; }
html[data-theme="omecca"] .mobile-menu,
html[data-theme="omecca"] .mobile-menu::backdrop { background: #111820; }

.urban-kicker { margin-bottom: 20px; color: #173a69; font-size: 11px; font-weight: 700; line-height: 1.4; letter-spacing: .2em; }
.urban-outline-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 50px; min-width: 190px; min-height: 52px; padding: 12px 17px; border: 1px solid #aeb5ba; font-size: 13px; font-weight: 650; transition: background .2s, color .2s, border-color .2s; }
.urban-outline-link:hover { background: #18212a; color: #fff; border-color: #18212a; }

.urban-hero { position: relative; height: min(780px, 100svh); min-height: 660px; overflow: hidden; background: #111820; color: #fff; }
.urban-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s; }
.urban-slide.is-active { opacity: 1; visibility: visible; }
.urban-slide > img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.025); transition: transform 7s ease-out; }
.urban-slide.is-active > img { transform: scale(1); }
.urban-slide:nth-child(1) > img { object-position: center 55%; }
.urban-slide:nth-child(2) > img { object-position: center 58%; }
.urban-slide:nth-child(3) > img { object-position: center 52%; }
.urban-slide-shade { position: absolute; inset: 0; background: linear-gradient(90deg, #071019d4 0, #07101985 35%, #07101920 70%), linear-gradient(0deg, #0710198f 0, transparent 45%); }
.urban-slide-content { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; padding-top: 70px; }
.urban-slide-content > p:first-child { margin-bottom: 28px; font-size: 11px; font-weight: 650; letter-spacing: .22em; color: #d5e3ee; }
.urban-slide-content h1 { max-width: 850px; font-size: clamp(45px, 5.2vw, 76px); line-height: 1.16; letter-spacing: -.055em; font-weight: 690; }
.urban-slide-foot { display: flex; align-items: center; gap: 60px; margin-top: 42px; }
.urban-slide-foot > p { max-width: 510px; color: #e0e6eb; font-size: 16px; }
.urban-slide-foot > a { display: inline-flex; align-items: center; gap: 38px; min-height: 52px; padding: 10px 18px; border: 1px solid #ffffffa6; font-size: 13px; font-weight: 650; }
.urban-slide-foot > a:hover { background: #fff; color: #18212a; }
.urban-slider-controls { position: absolute; z-index: 2; left: 50%; bottom: 44px; display: flex; justify-content: space-between; align-items: center; transform: translateX(-50%); }
.urban-dots { display: flex; gap: 15px; align-items: center; }
.urban-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: #ffffff6b; }
.urban-dots button[aria-pressed="true"] { width: 15px; height: 15px; border: 2px solid #fff; background: transparent; }
.urban-arrows { display: flex; gap: 10px; }
.urban-arrows button { width: 50px; height: 50px; padding: 0; border: 1px solid #ffffff91; border-radius: 50%; background: transparent; color: #fff; font-size: 20px; }
.urban-arrows button:hover { background: #fff; color: #18212a; }

.urban-intro { padding: 125px 0 135px; text-align: center; }
.urban-intro h2 { color: #102447; font-size: clamp(58px, 7vw, 92px); line-height: 1; letter-spacing: -.055em; }
.urban-intro-copy { margin: 34px 0 62px; color: #4f5b64; font-size: 16px; line-height: 1.9; }
.urban-company-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; text-align: left; }
.urban-company-card { display: block; min-width: 0; }
.urban-company-image { position: relative; height: 390px; overflow: hidden; background: #e8ebec; }
.urban-company-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease, filter .45s ease; }
.urban-company-image > span { position: absolute; right: 18px; bottom: 18px; display: grid; width: 45px; height: 45px; place-items: center; border: 1px solid #ffffffa8; border-radius: 50%; background: #0c172454; color: #fff; font-size: 20px; opacity: 0; transform: translateY(8px); transition: opacity .25s, transform .25s; }
.urban-company-card > small { display: block; margin-top: 24px; color: #71808a; font-size: 9px; font-weight: 700; letter-spacing: .18em; }
.urban-company-card h3 { margin-top: 9px; color: #142238; font-size: 25px; }
.urban-company-card > p { margin-top: 12px; color: #69747d; font-size: 14px; line-height: 1.75; }
.urban-company-card:hover .urban-company-image img { transform: scale(1.025); filter: saturate(1.08); }
.urban-company-card:hover .urban-company-image > span { opacity: 1; transform: translateY(0); }

.urban-solutions { padding: 115px 0 130px; background: #f3f3f0; }
.urban-section-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 50px; margin-bottom: 55px; }
.urban-section-title h2 { color: #142238; font-size: clamp(40px, 4vw, 56px); line-height: 1.22; }
.urban-section-title > p { padding-bottom: 6px; color: #66727c; font-size: 15px; line-height: 1.8; }
.urban-solution-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.urban-solution-card { display: block; min-width: 0; padding: 0 0 28px; border-bottom: 1px solid #b9bec1; }
.urban-card-image { height: 355px; margin-bottom: 26px; overflow: hidden; background: #fff; }
.urban-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.urban-solution-card:nth-child(2) .urban-card-image img,
.urban-solution-card:nth-child(3) .urban-card-image img { object-fit: contain; padding: 24px; }
.urban-solution-card:hover .urban-card-image img { transform: scale(1.025); }
.urban-solution-card > p { color: #7a858d; font-size: 10px; letter-spacing: .16em; }
.urban-solution-card h3 { margin: 13px 0 14px; font-size: 26px; color: #142238; }
.urban-solution-card > span { display: block; min-height: 54px; color: #68747c; font-size: 14px; line-height: 1.75; }
.urban-solution-card > strong { display: block; margin-top: 24px; color: #173a69; font-size: 13px; }
.urban-text-link { display: flex; justify-content: flex-end; align-items: center; gap: 45px; margin-top: 44px; font-size: 14px; font-weight: 650; }
.urban-text-link span { font-size: 22px; }

.urban-business { padding-top: 120px; color: #fff; background: #111820; }
.urban-business-heading { padding-bottom: 55px; }
.urban-business-heading .urban-kicker { color: #9db8cc; }
.urban-business-heading h2 { font-size: clamp(40px, 4vw, 58px); line-height: 1.22; }
.urban-business-panels { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); min-height: 590px; }
.urban-business-panel { position: relative; display: block; min-width: 0; overflow: hidden; border-right: 1px solid #ffffff3d; color: #fff; }
.urban-business-panel > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease, filter .5s ease; filter: saturate(.75); }
.urban-business-panel:first-child > img { object-position: center; }
.urban-business-panel:nth-child(2) > img { object-position: 48% center; }
.urban-panel-shade { position: absolute; inset: 0; background: linear-gradient(0deg, #071019e8, #07101908 70%); transition: background .3s; }
.urban-panel-number { position: absolute; top: 28px; left: 28px; font-size: 11px; letter-spacing: .14em; }
.urban-panel-copy { position: absolute; left: 30px; right: 30px; bottom: 34px; }
.urban-panel-copy small { display: block; margin-bottom: 9px; color: #bdcbd5; font-size: 9px; letter-spacing: .16em; }
.urban-panel-copy strong { display: block; font-size: 25px; line-height: 1.3; }
.urban-panel-copy em { display: block; max-height: 0; margin-top: 0; overflow: hidden; opacity: 0; font-size: 12px; transition: max-height .3s, margin .3s, opacity .3s; }
.urban-business-panel:hover > img { transform: scale(1.035); filter: saturate(1); }
.urban-business-panel:hover .urban-panel-shade { background: linear-gradient(0deg, #0e3151e8, #0710191a 75%); }
.urban-business-panel:hover .urban-panel-copy em { max-height: 30px; margin-top: 18px; opacity: 1; }

.urban-projects { padding: 125px 0 135px; }
.urban-project-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 26px; }
.urban-project-grid > a { display: block; }
.urban-project-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: saturate(.82); transition: filter .3s, transform .3s; }
.urban-project-grid > a:first-child img { aspect-ratio: 4 / 3.6; }
.urban-project-grid > a:hover img { filter: saturate(1); transform: translateY(-4px); }
.urban-project-grid span { display: block; margin-top: 20px; color: #75818a; font-size: 11px; }
.urban-project-grid h3 { margin-top: 7px; color: #142238; font-size: 22px; }

.urban-network { position: relative; min-height: 670px; overflow: hidden; color: #fff; }
.urban-network-main,
.urban-network-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.urban-network-main { object-fit: cover; }
.urban-network-shade { background: linear-gradient(90deg, #071019d9, #0710194f); }
.urban-network-content { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 670px; }
.urban-network-content .urban-kicker { color: #cadce8; }
.urban-network-content h2 { max-width: 650px; font-size: clamp(42px, 4.6vw, 65px); line-height: 1.2; }
.urban-network-card { position: absolute; right: 0; bottom: -40px; width: min(330px, 30vw); padding: 12px 12px 17px; background: #fff; color: #18212a; }
.urban-network-card img { width: 100%; aspect-ratio: 4 / 4.7; object-fit: cover; object-position: center 30%; }
.urban-network-card span { display: block; padding-top: 13px; font-size: 9px; letter-spacing: .12em; }

.urban-contact { padding: 115px 0; background: #eef0f0; }
.urban-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: center; }
.urban-contact h2 { color: #142238; font-size: clamp(38px, 3.8vw, 54px); line-height: 1.25; }
.urban-contact-grid > div:first-child > p:not(.urban-kicker) { margin: 25px 0 30px; color: #69747d; font-size: 15px; }
.urban-contact-grid > div:first-child > a { display: inline-flex; align-items: center; gap: 46px; padding: 14px 18px; border: 1px solid #18212a; font-size: 13px; font-weight: 650; }
.urban-contact-grid > div:first-child > a:hover { background: #18212a; color: #fff; }
.urban-contact-cards article { display: grid; grid-template-columns: 55px 1fr; gap: 24px; padding: 27px 0; border-top: 1px solid #b9c0c5; }
.urban-contact-cards article:last-child { border-bottom: 1px solid #b9c0c5; }
.urban-contact-cards article > span { color: #7a858c; font-size: 11px; }
.urban-contact-cards small { display: block; margin-bottom: 10px; color: #7a858c; font-size: 9px; letter-spacing: .18em; }
.urban-contact-cards strong { font-size: 18px; line-height: 1.65; }

@media (max-width: 1199px) {
            .urban-business-panels { min-height: 520px; }
    .urban-panel-copy { left: 22px; right: 22px; }
    .urban-panel-copy strong { font-size: 21px; }
}

@media (max-width: 767px) {
                                    html[data-theme="omecca"] .home-page .site-header { position: absolute; }
    html[data-theme="omecca"] .home-page .site-header .brand-logo-dark { display: none; }
    html[data-theme="omecca"] .home-page .site-header .brand-logo-light { display: block; filter: none; }
    .urban-hero { height: 720px; min-height: 0; }
    .urban-slide > img { object-position: 62% center; }
    .urban-slide:nth-child(2) > img { object-position: 64% center; }
    .urban-slide:nth-child(3) > img { object-position: 53% center; }
    .urban-slide-shade { background: linear-gradient(90deg, #071019d6, #07101967), linear-gradient(0deg, #071019a1, transparent 60%); }
    .urban-slide-content { justify-content: flex-end; padding: 0 0 145px; }
    .urban-slide-content > p:first-child { margin-bottom: 17px; font-size: 9px; }
    .urban-slide-content h1 { font-size: 39px; line-height: 1.22; }
    .urban-slide-foot { display: block; margin-top: 25px; }
    .urban-slide-foot > p { font-size: 14px; }
    .urban-slide-foot > a { margin-top: 22px; }
    .urban-slider-controls { bottom: 28px; }
    .urban-arrows button { width: 44px; height: 44px; }
    .urban-intro { padding: 85px 0 95px; text-align: center; }
    .urban-intro h2 { font-size: 52px; }
    .urban-intro-copy br { display: none; }
    .urban-intro-copy { margin: 25px 0 40px; }
    .urban-company-grid { grid-template-columns: 1fr; gap: 45px; text-align: left; }
    .urban-company-image { height: min(76vw, 430px); }
    .urban-solutions { padding: 85px 0 90px; }
    .urban-section-title { display: block; margin-bottom: 38px; }
    .urban-section-title h2 { font-size: 39px; }
    .urban-section-title > p { margin-top: 25px; }
    .urban-solution-grid { grid-template-columns: 1fr; gap: 45px; }
    .urban-card-image { height: min(75vw, 390px); }
    .urban-solution-card > span { min-height: 0; }
    .urban-business { padding-top: 85px; }
    .urban-business-panels { grid-template-columns: 1fr 1fr; min-height: 0; }
    .urban-business-panel { min-height: 390px; border-bottom: 1px solid #ffffff3d; }
    .urban-panel-copy strong { font-size: 20px; }
    .urban-projects { padding: 90px 0 95px; }
    .urban-projects .urban-outline-link { margin-top: 27px; }
    .urban-project-grid { grid-template-columns: 1fr; gap: 38px; }
    .urban-project-grid > a:first-child img { aspect-ratio: 4 / 3; }
    .urban-network,
    .urban-network-content { min-height: 650px; }
    .urban-network-content { justify-content: flex-start; padding-top: 90px; }
    .urban-network-content h2 { font-size: 39px; }
    .urban-network-card { right: 20px; bottom: -80px; width: 190px; }
    .urban-contact { padding: 90px 0; }
    .urban-contact-grid { grid-template-columns: 1fr; gap: 55px; }
    .urban-contact h2 { font-size: 38px; }
}

@media (prefers-reduced-motion: reduce) {
    .urban-slide,
    .urban-slide > img,
    .urban-card-image img,
    .urban-business-panel > img { transition: none; }
}


