:root {
    --cea-navy: #081d2e;
    --cea-blue: #123f60;
    --cea-gold: #c99a43;
    --cea-light: #f4f6f7;
    --cea-text: #23313b;
}

.py-lg-6 { padding-top: 6rem !important; padding-bottom: 6rem !important; }
.cea-section { position: relative; overflow: hidden; }
.cea-eyebrow { display: inline-block; margin-bottom: 1rem; color: var(--cea-gold); font-size: .78rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.cea-title { color: var(--cea-navy); font-size: clamp(2.3rem, 4vw, 4.25rem); font-weight: 700; line-height: 1.05; }
.cea-title span { color: var(--cea-gold); }
.btn-cea { border-color: var(--cea-gold); background: var(--cea-gold); color: #fff; font-weight: 700; }
.btn-cea:hover, .btn-cea:focus { border-color: #b58636; background: #b58636; color: #fff; }
.cea-text-link { color: var(--cea-navy); font-weight: 700; text-decoration: none; }
.cea-text-link:hover { color: var(--cea-gold); }

.cea-hero { min-height: 760px; background-position: center; background-size: cover; }
.cea-hero::after { position: absolute; right: 0; bottom: 0; left: 0; height: 8px; background: var(--cea-gold); content: ''; }
.cea-hero__content { max-width: 850px; }
.cea-hero__text { max-width: 700px; }
.cea-hero__brand { position: absolute; right: 5vw; bottom: 5rem; width: 250px; height: 250px; padding: 2.25rem; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.94); }

.cea-rich-text p:last-child { margin-bottom: 1.75rem; }
.cea-about__image { min-height: 520px; }
.cea-about__image img { width: 100%; height: 520px; object-fit: cover; }
.cea-about__caption { position: absolute; right: -1rem; bottom: -1rem; min-width: 220px; padding: 1.5rem 2rem; background: var(--cea-gold); color: #fff; font-size: 1.35rem; font-weight: 700; }
.cea-about__caption span { font-size: .9rem; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; }

.cea-service-card { overflow: hidden; background: #fff; box-shadow: 0 15px 45px rgba(8,29,46,.08); transition: transform .25s ease, box-shadow .25s ease; }
.cea-service-card:hover { transform: translateY(-7px); box-shadow: 0 22px 60px rgba(8,29,46,.14); }
.cea-service-card__image { display: block; overflow: hidden; }
.cea-service-card__image img { height: 245px; object-fit: cover; transition: transform .4s ease; }
.cea-service-card:hover .cea-service-card__image img { transform: scale(1.04); }
.cea-service-card__body { position: relative; padding: 2rem; }
.cea-service-card__number { position: absolute; top: -2rem; right: 1.5rem; color: rgba(8,29,46,.12); font-size: 4rem; font-weight: 800; line-height: 1; }
.cea-service-card h3 { position: relative; margin-bottom: 1rem; font-size: 1.45rem; }
.cea-service-card h3 a { color: var(--cea-navy); text-decoration: none; }
.cea-service-card p { min-height: 72px; color: #6c757d; }

.cea-project-scroll { display: grid; grid-auto-columns: minmax(320px, 32vw); grid-auto-flow: column; gap: 1.5rem; overflow-x: auto; padding: 0 max(1rem, calc((100vw - 1320px) / 2)) 2rem; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.cea-project-card { position: relative; min-height: 500px; overflow: hidden; background: #122b3d; scroll-snap-align: start; }
.cea-project-card__image, .cea-project-card__image img, .cea-project-card__overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.cea-project-card__image img { object-fit: cover; transition: transform .5s ease; }
.cea-project-card__overlay { background: linear-gradient(180deg, rgba(8,29,46,.05), rgba(8,29,46,.92)); }
.cea-project-card:hover img { transform: scale(1.05); }
.cea-project-card__content { position: absolute; right: 0; bottom: 0; left: 0; z-index: 2; padding: 2rem; }
.cea-project-card__content span { color: var(--cea-gold); font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.cea-project-card__content h3 { margin-top: .75rem; font-size: 1.5rem; }
.cea-project-card__content h3 a { color: #fff; text-decoration: none; }

.cea-news-card { overflow: hidden; border: 1px solid #e8ecef; background: #fff; transition: transform .25s ease, box-shadow .25s ease; }
.cea-news-card:hover { transform: translateY(-6px); box-shadow: 0 18px 45px rgba(8,29,46,.1); }
.cea-news-card__image { display: block; overflow: hidden; }
.cea-news-card__image img { height: 250px; object-fit: cover; transition: transform .4s ease; }
.cea-news-card:hover .cea-news-card__image img { transform: scale(1.04); }
.cea-news-card__body { padding: 1.75rem; }
.cea-news-card__meta { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1rem; color: #7a8790; font-size: .82rem; }
.cea-news-card h3 { margin-bottom: 1.5rem; font-size: 1.4rem; }
.cea-news-card h3 a { color: var(--cea-navy); text-decoration: none; }

.cea-portfolio-cta { background-position: center; background-size: cover; }

@media (max-width: 991.98px) {
    .py-lg-6 { padding-top: 4.5rem !important; padding-bottom: 4.5rem !important; }
    .cea-hero { min-height: 680px; }
    .cea-hero .min-vh-100 { min-height: 680px !important; }
    .cea-about__caption { right: 0; }
    .cea-project-scroll { grid-auto-columns: minmax(300px, 75vw); }
}

@media (max-width: 575.98px) {
    .cea-hero { min-height: 620px; }
    .cea-hero .min-vh-100 { min-height: 620px !important; }
    .cea-hero h1 { font-size: 3rem; }
    .cea-about__image, .cea-about__image img { min-height: 380px; height: 380px; }
    .cea-project-scroll { grid-auto-columns: 88vw; }
    .cea-project-card { min-height: 430px; }
}
