/* Public-site visual system inspired by the reference brand. */
:root {
    --ref-red: #ec3237;
    --ref-red-dark: #cf2228;
    --ref-ink: #242529;
    --ref-muted: #6f747c;
    --ref-soft: #f6f9fe;
    --ref-line: #e9edf3;
    --ref-shadow: 0 22px 55px rgba(36, 37, 41, .08);
}

body { color: var(--ref-ink); background: #fff; }
a { transition: color .2s ease, transform .2s ease, box-shadow .2s ease; }
.content-section { position: relative; padding: 5.5rem 0; }
.content-section + .content-section { border-top: 1px solid rgba(233, 237, 243, .75); }
.patterned-section { background-color: var(--section-surface); background-image: none; }

.inner-page-header { padding: 1.25rem 0 2rem; overflow: hidden; }
.page-breadcrumb { display: flex; align-items: center; gap: .7rem; min-height: 58px; padding: 0 1.35rem; border-radius: 9px; background: var(--ref-soft); color: var(--ref-muted); font-size: .84rem; }
.page-breadcrumb a { color: var(--ref-red); text-decoration: none; }
.page-breadcrumb i { font-size: .68rem; opacity: .65; }
[dir="ltr"] .page-breadcrumb i, [dir="ltr"] .card-arrow-link i { transform: rotate(180deg); }
.inner-page-intro { position: relative; isolation: isolate; max-width: 820px; margin: 4.5rem auto 1rem; text-align: center; }
.inner-page-intro::before, .inner-page-intro::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; filter: blur(1px); }
.inner-page-intro::before { width: 150px; height: 150px; inset-inline-start: -10%; top: -30px; background: rgba(236, 50, 55, .06); }
.inner-page-intro::after { width: 105px; height: 105px; inset-inline-end: -5%; bottom: -20px; border: 18px solid rgba(246, 249, 254, .95); }
.inner-page-intro h1 { margin: .8rem 0 1rem; font-size: clamp(2rem, 4.5vw, 3.7rem); font-weight: 800; letter-spacing: -.045em; }
.inner-page-intro p { max-width: 700px; margin: 0 auto; color: var(--ref-muted); font-size: 1.05rem; line-height: 2; }
.page-title-icon { display: grid; place-items: center; width: 54px; height: 54px; margin: 1.15rem auto 0; border: 1px solid rgba(236, 50, 55, .16); border-radius: 18px; color: var(--ref-red); background: #fff; box-shadow: 0 12px 28px rgba(236, 50, 55, .1); font-size: 1.45rem; transform: rotate(-5deg); }
.section-kicker, .eyebrow { display: inline-flex; padding: .42rem .78rem; border-radius: 7px; color: var(--ref-red); background: rgba(236, 50, 55, .07); font-size: .78rem; font-weight: 800; }
.section-heading { max-width: 760px; margin: 0 auto 3rem; }
.section-heading h2, .section-display { margin: .8rem 0 1rem; font-size: clamp(1.75rem, 3vw, 2.55rem); font-weight: 800; letter-spacing: -.035em; }
.section-heading p, .section-lead { color: var(--ref-muted); line-height: 1.95; }

.catalog-card, .insight-card, .project-card { position: relative; overflow: hidden; border: 1px solid var(--ref-line); border-radius: 14px; background: #fff; box-shadow: 0 10px 35px rgba(36, 37, 41, .045); transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.catalog-card:hover, .insight-card:hover, .project-card:hover { transform: translateY(-7px); border-color: rgba(236, 50, 55, .25); box-shadow: var(--ref-shadow); }
.catalog-card { display: flex; flex-direction: column; padding: 2rem; }
.catalog-card::after { content: ""; position: absolute; width: 80px; height: 80px; inset-inline-end: -34px; top: -34px; border-radius: 50%; background: rgba(236, 50, 55, .06); }
.catalog-card-icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 18px 5px 18px 18px; color: var(--ref-red); background: rgba(236, 50, 55, .08); font-size: 1.55rem; }
.catalog-card h2 { margin: 1.4rem 0 .8rem; font-size: 1.16rem; font-weight: 800; }
.catalog-card p { color: var(--ref-muted); line-height: 1.85; }
.check-list, .compact-outcomes { display: grid; gap: .65rem; margin: .3rem 0 1.5rem; padding: 0; list-style: none; }
.check-list li { display: flex; gap: .55rem; color: #51565d; font-size: .9rem; }
.check-list i { flex: 0 0 auto; color: var(--ref-red); font-size: 1.05rem; }
.card-arrow-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--ref-line); color: var(--ref-red); font-weight: 800; text-decoration: none; }
.card-arrow-link:hover { color: var(--ref-red-dark); }

.process-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.process-item { display: flex; align-items: center; gap: 1rem; min-height: 90px; padding: 1rem 1.2rem; border: 1px solid rgba(236, 50, 55, .18); border-radius: 12px; background: rgba(255, 255, 255, .92); }
.process-item span { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 50%; color: #fff; background: var(--ref-red); font-weight: 800; }
.process-item strong { font-size: .95rem; line-height: 1.7; }
.page-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 2.25rem 2.5rem; overflow: hidden; border-radius: 15px; color: #fff; background: linear-gradient(125deg, #292a2e, #17181b); box-shadow: var(--ref-shadow); }
.page-cta h2 { margin: .7rem 0 .4rem; font-size: clamp(1.4rem, 2.5vw, 2rem); font-weight: 800; }
.page-cta p { margin: 0; color: rgba(255, 255, 255, .68); }
.page-cta .section-kicker { color: #ff878b; background: rgba(255, 255, 255, .08); }

.topic-strip { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 2rem; padding: 1rem 1.25rem; border: 1px solid var(--ref-line); border-radius: 12px; background: var(--ref-soft); }
.topic-strip > div { display: flex; flex-wrap: wrap; gap: .55rem; }
.topic-strip span { padding: .4rem .75rem; border-radius: 999px; color: #555b64; background: #fff; font-size: .79rem; box-shadow: 0 4px 12px rgba(36, 37, 41, .04); }
.insight-card { display: flex; flex-direction: column; }
.insight-card-visual { position: relative; display: flex; align-items: flex-end; justify-content: space-between; min-height: 155px; padding: 1.25rem; overflow: hidden; color: #fff; background: linear-gradient(145deg, #2f3136, #17181b); }
.insight-card-visual::before { content: ""; position: absolute; width: 180px; height: 180px; inset-inline-end: -70px; top: -75px; border: 30px solid rgba(236, 50, 55, .42); border-radius: 50%; }
.insight-card-visual span { z-index: 1; padding: .4rem .7rem; border-radius: 6px; background: var(--ref-red); font-size: .75rem; font-weight: 700; }
.insight-card-visual i { z-index: 1; color: rgba(255, 255, 255, .84); font-size: 2.7rem; }
.insight-card-featured .insight-card-visual { background: linear-gradient(145deg, var(--ref-red), #b71e23); }
.insight-card-featured .insight-card-visual span { color: var(--ref-red); background: #fff; }
.insight-card-body { display: flex; flex: 1; flex-direction: column; padding: 1.5rem; }
.insight-meta { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; color: #959aa2; font-size: .74rem; }
.insight-card h2 { font-size: 1.12rem; font-weight: 800; line-height: 1.7; }
.insight-card p { color: var(--ref-muted); font-size: .9rem; line-height: 1.85; }

.project-card { display: flex; flex-direction: column; }
.project-card-media { position: relative; display: block; height: 230px; overflow: hidden; background: var(--ref-soft); }
.project-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.project-card:hover img { transform: scale(1.045); }
.project-card-media span { position: absolute; inset-inline-start: 1rem; bottom: 1rem; padding: .42rem .7rem; border-radius: 6px; color: #fff; background: var(--ref-red); font-size: .75rem; font-weight: 700; }
.project-card-body { display: flex; flex: 1; flex-direction: column; padding: 1.55rem; }
.project-card h2 { font-size: 1.15rem; font-weight: 800; }
.project-card p { color: var(--ref-muted); line-height: 1.85; }
.compact-outcomes li { position: relative; padding-inline-start: 1.1rem; color: #565b63; font-size: .86rem; }
.compact-outcomes li::before { content: ""; position: absolute; inset-inline-start: 0; top: .6rem; width: 6px; height: 6px; border-radius: 50%; background: var(--ref-red); }

.page-hero { background: linear-gradient(180deg, #fff, #fbfcfe); }
.page-hero .container { position: relative; }
.service-card, .blog-card, .portfolio-card, .card-soft, .profile-card { border: 1px solid var(--ref-line) !important; border-radius: 14px !important; background: #fff; box-shadow: 0 12px 36px rgba(36, 37, 41, .05) !important; }
.section-block { padding-top: 2rem; }
.alt-bg { background: var(--ref-soft); }
.article-card { line-height: 2; }
.map-placeholder { display: grid; min-height: 280px; place-items: center; border-radius: 12px; color: var(--ref-muted); background: repeating-linear-gradient(45deg, #f7f9fc, #f7f9fc 12px, #edf1f6 12px, #edf1f6 13px); }
.form-control, .form-select { min-height: 48px; border-color: #e4e8ee; border-radius: 9px; background-color: #fbfcfd; }
.form-control:focus, .form-select:focus { border-color: rgba(236, 50, 55, .55); box-shadow: 0 0 0 .22rem rgba(236, 50, 55, .09); }
.btn-warning { border-color: var(--ref-red); color: #fff; background: var(--ref-red); }
.btn-warning:hover { border-color: var(--ref-red-dark); color: #fff; background: var(--ref-red-dark); }
.container.py-5 > .row.justify-content-center .card.shadow-lg, .container.py-5 > .row.justify-content-center .card.shadow-sm { border: 1px solid var(--ref-line) !important; border-radius: 16px !important; box-shadow: var(--ref-shadow) !important; }
.workspace-shell, .profile-layout { padding-top: 3rem; padding-bottom: 5rem; }
.table { --bs-table-striped-bg: #fafbfc; }
.table thead th { border-bottom-color: var(--ref-line); color: var(--ref-muted); font-size: .78rem; font-weight: 700; }
.comment-card { position: relative; }
.comment-replies { border-color: rgba(236, 50, 55, .28) !important; }

@media (max-width: 991.98px) {
    .content-section { padding: 4rem 0; }
    .inner-page-intro { margin-top: 3.25rem; }
    .page-cta, .topic-strip { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 575.98px) {
    .content-section { padding: 3.25rem 0; }
    .inner-page-header { padding-top: .75rem; }
    .inner-page-intro { margin-top: 2.5rem; }
    .page-breadcrumb { overflow: hidden; white-space: nowrap; }
    .process-grid { grid-template-columns: 1fr; }
    .page-cta { padding: 1.6rem; }
    .page-cta .btn { width: 100%; }
    .catalog-card { padding: 1.5rem; }
}

/* Real photography cards */
.catalog-card-media {
  height: 185px;
  margin: -2rem -2rem 1.4rem;
  overflow: hidden;
  background: #e9edf0;
}
.catalog-card-media img,
.insight-card-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.insight-card-visual { min-height: 205px; padding: 1.25rem; }
.insight-card-visual::before { display: none; }
.insight-card-visual::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(180deg, transparent 35%, rgba(12, 19, 25, .74));
}
.insight-card-visual img { position: absolute; inset: 0; transition: transform .5s ease; }
.insight-card:hover .insight-card-visual img { transform: scale(1.035); }
.insight-card-visual span { position: relative; z-index: 1; align-self: flex-end; color: #fff; background: var(--ref-red); }
.insight-card-featured .insight-card-visual span { color: #fff; background: var(--ref-red); }
@media (max-width: 575.98px) {
  .catalog-card-media { margin: -1.5rem -1.5rem 1.25rem; }
}