:root {
    --text-xs: clamp(0.75rem, 0.706rem + 0.188vw, 0.875rem);
    --text-sm: clamp(0.875rem, 0.831rem + 0.188vw, 1rem);
    --text-base: clamp(1rem, 0.956rem + 0.188vw, 1.125rem);
    --text-lg: clamp(1.125rem, 1.081rem + 0.188vw, 1.25rem);
    --text-xl: clamp(1.25rem, 1.162rem + 0.376vw, 1.5rem);
    --text-2xl: clamp(1.5rem, 1.368rem + 0.563vw, 1.875rem);
    --text-3xl: clamp(1.875rem, 1.743rem + 0.563vw, 2.25rem);
    --text-4xl: clamp(2.25rem, 1.986rem + 1.127vw, 3rem);
    --text-5xl: clamp(2.5rem, 2.06rem + 1.878vw, 3.75rem);
}

/* Shared editorial typography for semantic blog content. */
.blog-article-content h2,
.blog-article-content h3,
.blog-article-content h4,
.blog-article-content h5,
.blog-article-content h6 {
    color: #172033;
    font-family: Poppins, sans-serif;
    font-weight: 600;
    letter-spacing: -0.035em;
}

.blog-article-content h2 { margin: 42px 0 16px; font-size: var(--text-2xl); line-height: 1.25; }
.blog-article-content h3 { margin: 36px 0 14px; font-size: var(--text-xl); line-height: 1.3; }
.blog-article-content h4 { margin: 31px 0 12px; font-size: var(--text-lg); line-height: 1.35; }
.blog-article-content h5 { margin: 27px 0 10px; font-size: var(--text-base); line-height: 1.4; }
.blog-article-content h6 { margin: 24px 0 9px; font-size: var(--text-sm); line-height: 1.45; letter-spacing: .01em; text-transform: uppercase; }
.blog-article-content strong,
.blog-article-content b { color: #26334a; font-weight: 700; }
.blog-article-content a { color: #2563eb; text-decoration: underline; text-underline-offset: 3px; }
.blog-article-content ul,
.blog-article-content ol { margin: 0 0 24px; padding-left: 29px; }
.blog-article-content li { margin: 7px 0; }
.blog-article-content blockquote { margin: 30px 0; padding: 20px 24px; border-left: 4px solid #3b82f6; border-radius: 0 10px 10px 0; background: #eef4ff; color: #334155; font-size: var(--text-base); font-style: italic; }
.blog-article-content figure { max-width: 100%; margin: 34px auto; }
.blog-article-content figure.align-left { margin-right: auto; margin-left: 0; }
.blog-article-content figure.align-right { margin-right: 0; margin-left: auto; }
.blog-article-content figure.align-center { text-align: center; }
.blog-article-content figure img { display: block; max-width: 100%; height: auto; margin: 0 auto; border-radius: 12px; }
.blog-article-content code { padding: 2px 5px; border-radius: 4px; background: #e8eef7; color: #1e3a5f; font-family: Consolas,"SFMono-Regular",Menlo,monospace; font-size: .92em; }
.blog-article-content pre { max-width: 100%; margin: 30px 0; padding: 22px; overflow: auto; border-radius: 12px; background: #101827; color: #dbeafe; font: 400 var(--text-xs)/1.75 Consolas,"SFMono-Regular",Menlo,monospace; }
.blog-article-content pre code { padding: 0; background: transparent; color: inherit; font: inherit; }
.blog-article-content hr { margin: 38px 0; border: 0; border-top: 1px solid #dce4ef; }

.brand {
    display: inline-flex;
    align-items: center;
}

.brand img {
    display: block;
    width: auto;
    height: 6rem;
    object-fit: contain;
}

.eyebrow,
.eyebrow.light {
    color: #4b7dca;
    font-family: Inter, Arial, sans-serif;
    font-size: var(--text-xs);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.eyebrow-blue {
    color: #4b7dca !important;
}

/* One shared section-label treatment: eyebrow-blue. */
p.eyebrow,
p.eyebrow-blue {
    color: #4b7dca;
    font-family: Inter, Arial, sans-serif;
    font-size: var(--text-xs);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.final-cta {
    background:
        linear-gradient(120deg, rgba(13, 17, 23, 0.94) 0%, rgba(23, 61, 123, 0.92) 54%, rgba(59, 130, 246, 0.87) 100%),
        url('/images/mj-web-concepts-hero.png') center 48% / cover no-repeat;
}

.final-cta .eyebrow,
.final-cta .eyebrow.light {
    color: #dbeafe;
}

.final-cta .light-text {
    padding: 13px 20px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 11px;
}

.hero {
    background:
        radial-gradient(circle at 83% 22%, rgba(61, 133, 255, 0.33), transparent 27%),
        radial-gradient(circle at 52% 100%, rgba(42, 100, 204, 0.3), transparent 35%),
        linear-gradient(118deg, #0d1117 0%, #101a30 46%, #183e7b 100%);
}

.hero-orb-one {
    width: 650px;
    height: 650px;
    top: -205px;
    right: -135px;
    background: radial-gradient(circle, rgba(86, 150, 255, 0.31), transparent 68%);
}

.hero-orb-two {
    background: radial-gradient(circle, rgba(59, 130, 246, 0.28), transparent 70%);
}

.hero h1 {
    max-width: 650px;
    font-size: var(--text-5xl);
}

.hero-buttons {
    gap: 18px;
}

.hero-primary-button {
    background: #ffffff;
    border-color: #ffffff;
    color: #2462b8;
}

.hero-primary-button:hover {
    background: #edf5ff;
    border-color: #edf5ff;
}

.hero-secondary-button {
    background: transparent;
    border-color: rgba(219, 234, 254, 0.72);
    color: #ffffff;
}

.hero-secondary-button:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: #ffffff;
}

.featured-project-grid {
    align-items: stretch;
    gap: 20px;
}

.featured-project {
    display: flex;
    flex-direction: column;
    margin: 0;
    overflow: hidden;
    border: 1px solid #cfdbea;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.16), 0 3px 10px rgba(59, 130, 246, 0.08);
    transition: border-color 220ms ease, transform 220ms ease, box-shadow 220ms ease;
}

.featured-project:hover {
    transform: translateY(-5px);
    border-color: #9fbbe6;
    box-shadow: 0 28px 62px rgba(15, 23, 42, 0.2), 0 6px 18px rgba(59, 130, 246, 0.14);
}

.featured-project .project-visual {
    height: 235px;
    border-radius: 0;
    border-bottom: 1px solid #dbe5f2;
}

.featured-project .project-info {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 25px;
}

.featured-project .project-type {
    color: #3b82f6;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
}

.featured-project .project-info h3 {
    min-height: 0;
    margin: 10px 0 9px;
    font-size: var(--text-lg);
    line-height: 1.34;
}

.featured-project .project-info p {
    margin: 0;
}

.featured-project .project-button {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 9px;
    margin-top: auto;
    padding: 10px 0;
    color: #2168ca;
    font-size: var(--text-xs);
    font-weight: 700;
}

.work-projects-button {
    border-color: #3b82f6;
    background: #3b82f6;
    color: #ffffff;
}

.work-projects-button:hover {
    background: #276fe5;
    border-color: #276fe5;
}

.work-section .row-heading {
    display: block;
    max-width: 750px;
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.work-section .row-heading > div,
.work-section .row-heading > p {
    max-width: none;
}

.work-section .row-heading > p {
    margin: 16px auto 0;
}

.about-section .eyebrow,
.dark-section .section-heading > .eyebrow,
.approach-section .section-heading > .eyebrow,
.process-section .section-heading > .eyebrow,
.faq-section .section-heading > .eyebrow {
    color: #4b7dca;
    font-family: Inter, Arial, sans-serif;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.15em;
    line-height: 1.25;
    text-transform: uppercase;
}

main {
    display: flex;
    flex-direction: column;
}

.hero { order: 1; }
.intro-section { order: 2; }
.dark-section { order: 3; }
.work-section { order: 4; }
.approach-section { order: 5; }
.process-section { order: 6; }
.faq-section { order: 7; }
.final-cta { order: 8; }

.types-section,
.cms-section,
.fit-section {
    display: none;
}

.site-footer {
    background: #1a2233;
}

.legacy-footer {
    display: none;
}

.process-section {
    background: #1a2233;
}

.approach-section {
    background: var(--soft-gray);
}

/* Homepage section surfaces */
.intro-section,
.work-section {
    background: #ffffff;
}

.work-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(circle at 86% 14%, rgba(59, 130, 246, 0.18), transparent 31%),
        linear-gradient(rgba(75, 125, 202, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(75, 125, 202, 0.035) 1px, transparent 1px),
        #f7f9fc;
    background-size: auto, 42px 42px, 42px 42px, auto;
}

.work-section .container {
    position: relative;
    z-index: 1;
}

.faq-section {
    background: #fefeff;
}

.dark-section,
.site-header.scrolled {
    background: #1a2233;
}

#services {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        linear-gradient(rgba(13, 17, 23, 0.93), rgba(13, 17, 23, 0.93)),
        url('/images/mj-web-concepts-hero.png') center / cover no-repeat;
}

#services::before,
.process-section::after {
    position: absolute;
    z-index: 0;
    inset: 0;
    content: "";
    pointer-events: none;
    opacity: 0.55;
    background-image: linear-gradient(rgba(148, 163, 184, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(148, 163, 184, 0.1) 1px, transparent 1px);
    background-size: 42px 42px;
}

.process-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.process-section::after {
    z-index: 0;
}

#services > .container,
.process-section > .container {
    position: relative;
    z-index: 1;
}

#services .service-card {
    background: #1a2233;
    display: flex;
    flex-direction: column;
    border-color: #2b3b56;
    color: #ffffff;
}

#services .service-card h3 {
    color: #ffffff;
}

#services .service-card p {
    color: #d6e1f0;
}

#services .service-card > span,
#services .service-card a {
    color: #72a5ff;
}

#services .service-icon {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
}

#services .service-icon svg {
    width: 35px;
    height: 35px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

#services .service-card h3 {
    margin-top: 24px;
}

/* Five service cards: center the two-card second row within the three-column grid. */
@media (min-width: 801px) {
    #services .service-card:nth-child(4),
    #services .service-card:nth-child(5) {
        transform: translateX(calc(50% + 7.5px));
    }

    #services .service-card:nth-child(4):hover,
    #services .service-card:nth-child(4):focus-within,
    #services .service-card:nth-child(5):hover,
    #services .service-card:nth-child(5):focus-within {
        transform: translateX(calc(50% + 7.5px)) translateY(-5px);
    }
}

#services .service-card a {
    margin-top: auto;
}

#services .service-card h3 .service-title-link {
    display: inline;
    margin-top: 0;
    color: inherit;
    font: inherit;
}

#services .service-card h3 .service-title-link:hover,
#services .service-card h3 .service-title-link:focus-visible {
    color: #8fb6fc;
}

/* Dedicated Services page: keep the cards dark, but give the section a clean white surface. */
.services-page #services {
    background: #ffffff;
    color: #172033;
}

.services-page #services::before {
    display: none;
}

.services-page #services .section-heading > p:not(.eyebrow) {
    color: #596579;
}

.services-page #services .service-card {
    color: #ffffff;
}

.services-page #services .service-card .service-card-heading {
    margin: 24px 0 11px;
    color: #ffffff;
    font: 600 var(--text-lg)/1.3 Poppins, sans-serif;
    font-size: var(--text-lg) !important;
    letter-spacing: -0.03em;
}

.services-page #services .service-card .service-card-heading .service-title-link {
    display: inline;
    margin-top: 0;
    color: inherit;
    font: inherit;
}

.services-page #services .service-card .service-card-heading .service-title-link:hover,
.services-page #services .service-card .service-card-heading .service-title-link:focus-visible {
    color: #8fb6fc;
}

.services-page #services .button-outline {
    border-color: #4b7dca;
    color: #172033;
}

.services-page #services .button-outline:hover {
    background: #e8f0fc;
}

.inner-header {
    position: relative;
    background: #1a2233;
}

.inner-header .primary-nav .is-current {
    color: #ffffff;
    opacity: 1;
}

.inner-page {
    display: block;
}

.page-title-banner {
    position: relative;
    display: grid;
    min-height: 40vh;
    overflow: hidden;
    place-items: center;
    border-bottom: 1px solid rgba(121, 168, 245, 0.26);
    background:
        linear-gradient(118deg, rgba(13, 17, 23, 0.91) 0%, rgba(18, 39, 79, 0.87) 52%, rgba(53, 94, 170, 0.82) 100%),
        url('/images/mj-web-concepts-hero.png') center 48% / cover no-repeat;
    color: #ffffff;
    text-align: center;
}

.page-title-grid {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
    background-size: 42px 42px;
}

.page-title-banner .container {
    position: relative;
    z-index: 1;
}

.page-title-heading {
    max-width: 980px;
    margin: 0 auto;
    font: 600 var(--text-4xl)/1.08 Poppins, sans-serif;
    letter-spacing: -0.06em;
}

.content-page-heading {
    margin: 0 0 22px;
    font: 600 var(--text-4xl)/1.2 Poppins, sans-serif;
    letter-spacing: -0.045em;
}

.single-entry-intro .content-page-heading {
    max-width: 840px;
    margin-right: auto;
    margin-left: auto;
}
.page-title-banner .eyebrow{margin:0 0 14px}.page-title-description{max-width:580px;margin:18px auto 0;color:#dbeafe;font-size:var(--text-sm)}.portfolio-section{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 86% 12%, rgba(59,130,246,.18), transparent 31%),linear-gradient(rgba(75,125,202,.035) 1px, transparent 1px),linear-gradient(90deg, rgba(75,125,202,.035) 1px, transparent 1px),#f7f9fc;background-size:auto,42px 42px,42px 42px,auto}.portfolio-section>.container{position:relative;z-index:1}.portfolio-filters{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:-12px 0 30px}.portfolio-filters button{padding:9px 14px;border:1px solid #d5dfeb;border-radius:999px;background:#fff;color:#344258;font:600 var(--text-xs) Inter,sans-serif;cursor:pointer}.portfolio-filters .is-active{border-color:#3b82f6;background:#3b82f6;color:#fff}.portfolio-feature{display:grid;grid-template-columns:1.15fr .85fr;overflow:hidden;margin-bottom:20px;border:1px solid #e0e6ee;border-radius:18px;background:#fff;box-shadow:0 14px 34px rgba(23,32,51,.08)}.portfolio-feature>img{width:100%;height:360px;object-fit:cover}.portfolio-feature>div{padding:42px}.portfolio-feature h3,.portfolio-card h3{margin:8px 0 12px;font:600 var(--text-2xl)/1.15 Poppins,sans-serif;letter-spacing:-.045em}.portfolio-feature>div>p:not(.eyebrow),.portfolio-card div>p:not(.eyebrow){color:#596579;font-size:var(--text-xs);line-height:1.65}.project-tags{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.project-tags span{padding:4px 9px;border:1px solid #d5dfeb;border-radius:99px;color:#596579;font-size:var(--text-xs)}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.portfolio-card{overflow:hidden;border:1px solid #e0e6ee;border-radius:16px;background:#fff;box-shadow:0 12px 28px rgba(23,32,51,.07)}.portfolio-card img{display:block;width:100%;height:205px;object-fit:cover}.portfolio-card div{padding:23px}.portfolio-card h3{font-size:var(--text-lg)}.portfolio-card a{color:#3b82f6;font-size:var(--text-xs);font-weight:700}.portfolio-empty{text-align:center;color:#596579}@media(max-width:800px){.portfolio-feature{grid-template-columns:1fr}.portfolio-feature>img{height:280px}.portfolio-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.page-title-description{font-size:var(--text-xs)}.portfolio-feature>div{padding:26px}.portfolio-feature h3{font-size:var(--text-xl)}.portfolio-grid{grid-template-columns:1fr}}
.portfolio-page .page-title-banner .eyebrow,.portfolio-page .page-title-description{display:none}
.portfolio-tags{margin:16px 0 14px}.portfolio-tags span{font-size:var(--text-xs);background:#fff}.portfolio-card a{display:inline-block}
.portfolio-card{display:flex;flex-direction:column}.portfolio-card div{display:flex;flex:1;flex-direction:column;align-items:flex-start;text-align:left}.portfolio-card h3{min-height:46px}.portfolio-card div>p:not(.eyebrow){min-height:70px}.portfolio-card a{margin-top:0}
.portfolio-feature>div{display:flex;flex-direction:column;align-items:flex-start;text-align:left}.portfolio-feature .button{margin-top:0}
.portfolio-grid{gap:22px}.portfolio-card{border:1px solid #cfdbea;border-radius:14px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);box-shadow:0 18px 44px rgba(15,23,42,.16),0 3px 10px rgba(59,130,246,.08);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.portfolio-card:hover{border-color:#9fbbe6;box-shadow:0 28px 62px rgba(15,23,42,.2),0 6px 18px rgba(59,130,246,.14);transform:translateY(-5px)}.portfolio-card img{height:195px;border-bottom:1px solid #dbe5f2}.portfolio-card div{padding:22px}.portfolio-card .eyebrow{margin-bottom:8px;font-size:var(--text-xs)}.portfolio-card h3{margin:0 0 9px;font-size:var(--text-base);line-height:1.2}.portfolio-card div>p:not(.eyebrow){min-height:0;margin:0 0 14px;font-size:var(--text-xs);line-height:1.58}.portfolio-tags{gap:6px;margin:0 0 13px}.portfolio-tags span{padding:3px 9px;border-color:#c9d7ea;background:#fff;font-size:var(--text-xs);box-shadow:0 1px 3px rgba(15,23,42,.04)}.portfolio-card a{padding:0;color:#2563eb;font-size:var(--text-xs);font-weight:700}
.portfolio-grid{transition:opacity .15s ease,transform .15s ease}.portfolio-grid.is-filtering{opacity:.38;transform:translateY(3px)}
.portfolio-pagination{display:flex;justify-content:center;gap:8px;margin-top:30px}.portfolio-pagination button{min-width:34px;height:34px;border:1px solid #d5dfeb;border-radius:8px;background:#fff;color:#172033;font:600 var(--text-xs) Inter,sans-serif;cursor:pointer}.portfolio-pagination button:disabled{border-color:#3b82f6;background:#3b82f6;color:#fff;cursor:default}
.portfolio-card .portfolio-category{display:inline-flex;align-items:center;width:max-content;margin:0 0 1px;padding:0;border:0;background:transparent;color:#4b7dca;font:700 var(--text-xs)/1 Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.portfolio-card>div{display:flex;flex:1;flex-direction:column;align-items:flex-start;text-align:left}.portfolio-card .portfolio-tags{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;width:100%;padding:0}.portfolio-card>div>a{margin-top:auto}.portfolio-card h3{min-height:0;margin:0 0 6px}.portfolio-card>div>p:not(.eyebrow){min-height:0;margin:0 0 12px}
.portfolio-card>div>p:not(.eyebrow):not(.portfolio-category){min-height:0}.portfolio-card .portfolio-tags{min-height:30px;align-content:flex-start;align-items:flex-start}.portfolio-card .portfolio-tags span{display:inline-flex;align-items:center;min-height:28px;line-height:1.2}
.portfolio-card .portfolio-tags{margin-top:auto}.portfolio-card>div>a{margin-top:0}
.portfolio-card[hidden]{display:none!important}

.about-page-hero {
    position: relative;
    overflow: hidden;
    padding: 104px 0 92px;
    background:
        radial-gradient(circle at 85% 22%, rgba(59, 130, 246, 0.34), transparent 27%),
        linear-gradient(122deg, #0d1117 0%, #111d34 53%, #1a3d78 100%);
    color: #ffffff;
}

.inner-hero-grid {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(to right, black, transparent 88%);
}

.about-page-hero-layout {
    position: relative;
    display: grid;
    grid-template-columns: 1.08fr 0.92fr;
    gap: 75px;
    align-items: center;
}

.about-page-hero-copy h1 {
    max-width: 720px;
    margin: 0 0 24px;
    font: 600 var(--text-5xl)/1.12 Poppins, sans-serif;
    letter-spacing: -0.055em;
}

.about-page-hero-copy > p:not(.eyebrow) {
    max-width: 615px;
    margin: 0 0 31px;
    color: #c3cedd;
    font-size: var(--text-sm);
    line-height: 1.72;
}

.about-page-portrait {
    position: relative;
    justify-self: end;
    width: min(100%, 400px);
    padding: 10px;
}

.about-page-portrait::before {
    position: absolute;
    inset: 0 22px 18px 0;
    border: 1px solid rgba(151, 192, 255, 0.38);
    border-radius: 26px;
    content: '';
}

.about-page-portrait img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1.06;
    border-radius: 22px;
    object-fit: cover;
    object-position: 50% 43%;
    box-shadow: 0 26px 50px rgba(0, 0, 0, 0.35);
}

.portrait-orbit {
    position: absolute;
    z-index: 2;
    top: -25px;
    right: -20px;
    width: 130px;
    height: 130px;
    border: 1px solid #71a2f5;
    border-radius: 50%;
}

.portrait-orbit::after {
    position: absolute;
    top: 51px;
    left: 51px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #3b82f6;
    box-shadow: 0 0 0 8px rgba(59, 130, 246, 0.17);
    content: '';
}

.portrait-caption {
    position: absolute;
    z-index: 3;
    bottom: 0;
    left: -22px;
    padding: 13px 16px;
    border: 1px solid rgba(158, 193, 250, 0.34);
    border-radius: 12px;
    background: rgba(18, 31, 54, 0.9);
    box-shadow: 0 15px 25px rgba(0, 0, 0, 0.2);
}

.portrait-caption span,
.portrait-caption b {
    display: block;
}

.portrait-caption span {
    color: #83abeb;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.portrait-caption b {
    margin-top: 2px;
    font-size: var(--text-xs);
}

.about-story-section {
    background: #ffffff;
}

.about-story-layout {
    display: grid;
    grid-template-columns: 0.76fr 1.05fr;
    gap: 90px;
    align-items: start;
}

.about-story-copy {
    padding-top: 0;
}

.about-story-portrait {
    position: relative;
    max-width: 365px;
    padding: 10px;
}

.about-story-portrait::before {
    position: absolute;
    inset: 0 0 14px 14px;
    border: 1px solid #aac7fa;
    border-radius: 20px;
    content: '';
}

.about-story-portrait img {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1.08;
    border-radius: 17px;
    object-fit: cover;
    object-position: 50% 43%;
}

.about-story-portrait span {
    position: absolute;
    z-index: 1;
    right: -32px;
    bottom: -3px;
    padding: 10px 13px;
    border: 1px solid #dce7f7;
    border-radius: 9px;
    background: #ffffff;
    box-shadow: 0 13px 25px rgba(23, 32, 51, 0.1);
    color: #315b99;
    font-size: var(--text-xs);
    font-weight: 700;
}

.about-story-copy p {
    margin: 0 0 18px;
    color: #526078;
    font-size: var(--text-sm);
    line-height: 1.78;
}

.about-story-copy .text-link {
    margin-top: 8px;
}

.about-principles-section {
    background: #f5f7fa;
}

.about-principles-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    overflow: hidden;
    border: 1px solid #e0e6ee;
    border-radius: 18px;
    background: #ffffff;
}

.about-principles-grid article {
    min-height: 245px;
    padding: 28px;
    border-right: 1px solid #e0e6ee;
}

.about-principles-grid article:last-child {
    border-right: 0;
}

.about-principles-grid span {
    color: #4b7dca;
    font-size: var(--text-xs);
    font-weight: 700;
}

.about-principles-grid h3 {
    margin: 34px 0 10px;
    font: 600 var(--text-base) Poppins, sans-serif;
    letter-spacing: -0.03em;
}

.about-principles-grid p {
    margin: 0;
    color: #69758a;
    font-size: var(--text-xs);
    line-height: 1.7;
}

.about-approach-section {
    position: relative;
    overflow: hidden;
    background: #1a2233;
    color: #ffffff;
}

.about-approach-grid {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.55;
    background-image: linear-gradient(rgba(148, 163, 184, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(148, 163, 184, 0.1) 1px, transparent 1px);
    background-size: 42px 42px;
}

.about-approach-section::after {
    display: none;
}

.about-approach-layout {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 90px;
    align-items: center;
}

.about-approach-copy h2 {
    max-width: 575px;
    margin: 0 0 21px;
    font: 600 var(--text-4xl)/1.18 Poppins, sans-serif;
    letter-spacing: -0.045em;
}

.about-approach-copy > p:not(.eyebrow) {
    max-width: 580px;
    margin: 0 0 17px;
    color: #94a3b8;
    font-size: var(--text-xs);
    line-height: 1.75;
}

.about-approach-copy .eyebrow {
    color: #4b7dca;
}

.about-process-button {
    margin-top: 14px;
    border-color: #4b7dca;
    color: #ffffff;
}

.about-approach-principles {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    border: 1px solid rgba(148, 163, 184, 0.25);
    border-radius: 18px;
    overflow: hidden;
    background: rgba(26, 34, 51, 0.82);
    box-shadow: 0 24px 50px rgba(0, 0, 0, 0.2);
}

.about-approach-principles article {
    display: grid;
    grid-template-columns: 30px 1fr;
    gap: 14px;
    min-height: 175px;
    padding: 26px;
    border-right: 1px solid rgba(148, 163, 184, 0.2);
    border-bottom: 1px solid rgba(148, 163, 184, 0.2);
    transition: background 0.2s ease, transform 0.2s ease;
}

.about-approach-principles article:nth-child(2n) {
    border-right: 0;
}

.about-approach-principles article:nth-child(n + 3) {
    border-bottom: 0;
}

.about-approach-principles article:hover {
    background: rgba(75, 125, 202, 0.11);
    transform: translateY(-2px);
}

.about-approach-principles span {
    color: #3b82f6;
    font-size: var(--text-xs);
    font-weight: 700;
}

.about-approach-principles h3 {
    margin: 0 0 7px;
    color: #ffffff;
    font: 600 var(--text-sm)/1.35 Poppins, sans-serif;
    letter-spacing: -0.025em;
}

.about-approach-principles p {
    margin: 0;
    color: #94a3b8;
    font-size: var(--text-xs);
    line-height: 1.6;
}

.about-page-cta {
    padding: 110px 0;
    background:
        linear-gradient(120deg, rgba(13, 17, 23, 0.93), rgba(23, 61, 123, 0.9)),
        url('/images/mj-web-concepts-hero.png') center / cover no-repeat;
    color: #ffffff;
    text-align: center;
}

.about-page-cta .container {
    max-width: 755px;
}

.about-page-cta h2 {
    margin: 0 0 17px;
    font: 600 var(--text-4xl)/1.2 Poppins, sans-serif;
    letter-spacing: -0.045em;
}

.about-page-cta p:not(.eyebrow) {
    max-width: 610px;
    margin: 0 auto 28px;
    color: #d9e6f8;
    font-size: var(--text-sm);
}

.about-page-cta .eyebrow {
    margin-bottom: 15px;
    color: #8fb6fc;
}

.consultation-booking-section {
    background: #ffffff;
}

.consultation-booking-section .section-heading {
    max-width: 720px;
}

.bms-calendly-wrap {
    max-width: 960px;
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid #e0e6ee;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 18px 42px rgba(23, 32, 51, 0.08);
}

.calendly-booking-area {
    display: grid;
    min-height: 360px;
    max-width: 960px;
    margin: 0 auto;
    padding: 48px;
    place-content: center;
    border: 1px dashed #94a3b8;
    border-radius: 18px;
    background: #f5f7fa;
    color: #172033;
    text-align: center;
}

.calendly-booking-icon {
    display: grid;
    width: 46px;
    height: 46px;
    margin: 0 auto 16px;
    place-items: center;
    border-radius: 50%;
    background: #e1ebfb;
    color: #3b82f6;
    font-size: var(--text-xl);
    font-weight: 700;
}

.calendly-booking-area h3 {
    margin: 0 0 8px;
    font: 600 var(--text-lg) Poppins, sans-serif;
    letter-spacing: -0.03em;
}

.calendly-booking-area p {
    max-width: 450px;
    margin: 0;
    color: #596579;
    font-size: var(--text-xs);
}

.blog-archive-section {
    background: #ffffff;
}

.blog-results {
    transition: opacity 0.18s ease, transform 0.18s ease;
}

.blogs-page.is-filtering .blog-results {
    pointer-events: none;
    opacity: 0.48;
    transform: translateY(4px);
}

.blog-archive-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.blog-card {
    display: flex;
    height: 100%;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #2b3b56;
    border-radius: 18px;
    background: #1a2233;
    color: #ffffff;
    box-shadow: 0 14px 32px rgba(23, 32, 51, 0.09);
    transition: transform 0.2s ease, border-color 0.2s ease;
}

.blog-card:hover {
    transform: translateY(-4px);
    border-color: #4b7dca;
}

.blog-card-visual {
    position: relative;
    height: 185px;
    overflow: hidden;
    border-bottom: 1px solid rgba(148, 163, 184, 0.2);
    background: #0d1117;
}

.blog-card-visual span {
    position: absolute;
    top: 24px;
    left: 25px;
    z-index: 1;
    color: #72a5ff;
    font-size: var(--text-xs);
    font-weight: 700;
}

.blog-card-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.project-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.contact-section { background: #ffffff; }
.contact-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 90px; align-items: start; }
.contact-copy h2 { margin: 0 0 18px; font: 600 var(--text-4xl)/1.2 Poppins,sans-serif; letter-spacing: -.045em; }
.contact-copy > p:not(.eyebrow) { max-width: 520px; margin: 0; color: #596579; }
.contact-details { margin-top: 32px; border-top: 1px solid #e0e6ee; }
.contact-details > div { display: grid; grid-template-columns: 30px 1fr; gap: 13px; padding: 18px 0; border-bottom: 1px solid #e0e6ee; }
.contact-details span { color: #3b82f6; font-size: var(--text-xs); font-weight: 700; }.contact-details p { margin: 0; }.contact-details b,.contact-details a,.contact-details small { display:block; }.contact-details a,.contact-details small { color:#596579; font-size:var(--text-xs); }
.contact-form { display:grid; gap:17px; padding:32px; border:1px solid #e0e6ee; border-radius:18px; background:#f5f7fa; }.contact-form label { display:grid; gap:7px; color:#172033; font-size:var(--text-xs); font-weight:700; }.contact-form input,.contact-form textarea { width:100%; padding:12px 13px; border:1px solid #cbd5e1; border-radius:9px; background:#fff; color:#172033; font:400 var(--text-xs) Inter,sans-serif; resize:vertical; }.contact-form input:focus,.contact-form textarea:focus { outline:2px solid #4b7dca; outline-offset:1px; border-color:#4b7dca; }.contact-form .button { justify-content:center; margin-top:4px; }
.contact-alert { padding:14px 16px; border:1px solid; border-radius:10px; font-size:var(--text-xs); line-height:1.55; }
.contact-alert ul { margin:7px 0 0; padding-left:20px; }
.contact-alert-success { border-color:#86d5a2; background:#ecfdf3; color:#166534; }
.contact-alert-error { border-color:#f4aaaa; background:#fff1f2; color:#9f1239; }
.contact-field-error { color:#b42318; font-weight:600; }
.contact-honeypot { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.contact-turnstile { display:grid; gap:7px; min-height:0; }
.contact-consent { display:grid!important; grid-template-columns:22px 1fr; gap:10px!important; align-items:start; font-weight:500!important; line-height:1.55; cursor:pointer; }
.contact-consent input { width:18px!important; height:18px; margin:2px 0 0; padding:0!important; accent-color:#3b82f6; cursor:pointer; }
.contact-consent input:focus-visible { outline:3px solid rgba(59,130,246,.35); outline-offset:3px; }
.contact-consent a { color:#2563eb; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.contact-consent a:focus-visible { border-radius:3px; outline:3px solid rgba(59,130,246,.35); outline-offset:3px; }
.consultation-terms-notice { max-width:760px; margin:-24px auto 30px; padding:13px 16px; border:1px solid #d6e2f5; border-radius:10px; background:#f7f9fc; color:#526178; font-size:var(--text-xs); line-height:1.6; text-align:center; }
.consultation-terms-notice a { color:#2563eb; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.consultation-terms-notice a:focus-visible { border-radius:3px; outline:3px solid rgba(59,130,246,.35); outline-offset:3px; }
.calendly-fallback { margin:18px auto 0; color:#526178; font-size:var(--text-xs); text-align:center; }
.calendly-fallback a { color:#2563eb; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.calendly-fallback a:focus-visible { border-radius:3px; outline:3px solid rgba(59,130,246,.35); outline-offset:3px; }
.contact-alert a { color:inherit; font-weight:700; text-decoration:underline; text-underline-offset:2px; }
@media (max-width:800px) { .contact-layout { grid-template-columns:1fr; gap:42px; } }

.blog-card-visual-one {
    background: linear-gradient(135deg, #14233d, #1a2233);
}

.blog-card-visual-one i {
    position: absolute;
    left: 25px;
    height: 8px;
    border-radius: 99px;
    background: #4b7dca;
}

.blog-card-visual-one i:nth-of-type(1) { top: 70px; width: 48%; }
.blog-card-visual-one i:nth-of-type(2) { top: 94px; width: 68%; background: #6d7b90; }
.blog-card-visual-one i:nth-of-type(3) { top: 118px; width: 39%; background: #6d7b90; }

.blog-card-visual-two {
    background: linear-gradient(135deg, #1c3154, #15233b);
}

.blog-card-visual-two strong {
    position: absolute;
    right: 24px;
    bottom: 16px;
    color: rgba(255, 255, 255, 0.12);
    font: 600 var(--text-5xl)/1 Poppins, sans-serif;
    letter-spacing: -0.1em;
}

.blog-card-visual-two i {
    position: absolute;
    left: 25px;
    width: 65%;
    height: 1px;
    background: rgba(255, 255, 255, 0.5);
}

.blog-card-visual-two i:nth-of-type(1) { top: 84px; }
.blog-card-visual-two i:nth-of-type(2) { top: 112px; width: 43%; background: #4b7dca; }

.blog-card-visual-three {
    background: linear-gradient(135deg, #243554, #1a2233);
}

.blog-card-visual-three i {
    position: absolute;
    right: 25px;
    width: 86px;
    border: 1px solid rgba(114, 165, 255, 0.45);
    border-radius: 6px;
}

.blog-card-visual-three i:nth-of-type(1) { top: 48px; height: 91px; }
.blog-card-visual-three i:nth-of-type(2) { top: 66px; right: 43px; width: 50px; height: 6px; border: 0; background: #4b7dca; }
.blog-card-visual-three i:nth-of-type(3) { top: 84px; right: 43px; width: 32px; height: 6px; border: 0; background: #76859c; }

.blog-card-visual-three b {
    position: absolute;
    bottom: 24px;
    left: 25px;
    color: rgba(255, 255, 255, 0.75);
    font: 600 var(--text-2xl) Poppins, sans-serif;
    letter-spacing: -0.06em;
}

.blog-card-content {
    display: flex;
    min-height: 285px;
    flex: 1;
    flex-direction: column;
    padding: 27px;
}

.blog-card-meta {
    margin: 0 0 14px;
    color: #72a5ff;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.blog-card-meta span {
    padding: 0 5px;
}

.blog-card-content h3 {
    margin: 0 0 12px;
    color: #ffffff;
    font: 600 var(--text-lg)/1.35 Poppins, sans-serif;
    letter-spacing: -0.035em;
}

.blog-card-content > p:not(.blog-card-meta) {
    margin: 0;
    color: #d6e1f0;
    font-size: var(--text-xs);
    line-height: 1.65;
}

.blog-card-content a {
    margin-top: auto;
    padding-top: 20px;
    color: #72a5ff;
    font-size: var(--text-xs);
    font-weight: 700;
}

.blog-card-content a b {
    font-size: var(--text-sm);
}

.blog-card-content h3 a {
    margin: 0;
    padding: 0;
    color: inherit;
    font: inherit;
}

.blog-card-content h3 a:hover {
    color: #8ab6ff;
}

.blog-card-content > .blog-read-link {
    margin-top: auto;
    padding-top: 20px;
}

.blog-single-hero {
    padding: 92px 0 150px;
    background:
        linear-gradient(rgba(75, 125, 202, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(75, 125, 202, 0.06) 1px, transparent 1px),
        #f5f7fa;
    background-size: 32px 32px;
    text-align: center;
}

.blog-single-heading {
    max-width: 980px;
}

.blog-back-link {
    display: inline-flex;
    margin-bottom: 30px;
    color: #4b7dca;
    font-size: var(--text-xs);
    font-weight: 700;
}

.blog-single-heading .eyebrow {
    margin: 0 0 18px;
}

.blog-single-heading h1 {
    max-width: 950px;
    margin: 0 auto 24px;
    color: #172033;
    font: 600 var(--text-5xl)/1.08 Poppins, sans-serif;
    letter-spacing: -0.055em;
}

.blog-single-excerpt {
    max-width: 760px;
    margin: 0 auto 20px;
    color: #596579;
    font-size: var(--text-base);
    line-height: 1.7;
}

.blog-single-meta {
    margin: 0;
    color: #647188;
    font-size: var(--text-xs);
    font-weight: 600;
}

.blog-single-meta span {
    padding: 0 8px;
    color: #4b7dca;
}

.blog-single-cover {
    position: relative;
    z-index: 2;
    max-width: 1160px;
    margin-top: -92px;
}

.blog-single-cover img {
    display: block;
    width: 100%;
    height: clamp(360px, 48vw, 600px);
    object-fit: cover;
    border: 1px solid #dce4ef;
    border-radius: 22px;
    box-shadow: 0 22px 55px rgba(23, 32, 51, 0.14);
}

.blog-article-layout {
    max-width: 840px;
    padding-top: 82px;
    padding-bottom: 100px;
}

.blog-article-content {
    color: #46546a;
    font-size: var(--text-sm);
    line-height: 1.85;
}

.blog-article-lead {
    margin: 0 0 48px;
    color: #26334a;
    font-size: var(--text-lg);
    line-height: 1.75;
}

.blog-article-content section {
    margin: 0 0 48px;
}

.blog-article-content h2 {
    margin: 0 0 16px;
    color: #172033;
    font: 600 var(--text-2xl)/1.25 Poppins, sans-serif;
    letter-spacing: -0.04em;
}

.blog-article-content p {
    margin: 0 0 18px;
}

.blog-article-note {
    margin-top: 68px;
    padding: 42px;
    border-radius: 18px;
    background: #1a2233;
    color: #d6e1f0;
}

.blog-article-note h2 {
    color: #ffffff;
}

.blog-article-note .button {
    margin-top: 8px;
    color: #ffffff;
}

.recent-blogs-section {
    background: #f5f7fa;
}

.recent-blog-grid {
    margin-top: 42px;
}

@media (max-width: 800px) {
    .blog-single-hero {
        padding: 68px 0 120px;
    }

    .blog-single-heading h1 {
        font-size: var(--text-5xl);
    }

    .blog-single-excerpt {
        font-size: var(--text-sm);
    }

    .blog-single-cover {
        margin-top: -70px;
    }

    .blog-single-cover img {
        height: clamp(300px, 60vw, 470px);
        border-radius: 16px;
    }

    .blog-article-layout {
        padding-top: 60px;
        padding-bottom: 76px;
    }
}

@media (max-width: 520px) {
    .blog-single-hero {
        padding: 54px 0 94px;
    }

    .blog-back-link {
        margin-bottom: 24px;
    }

    .blog-single-heading h1 {
        font-size: var(--text-3xl);
    }

    .blog-single-cover {
        margin-top: -48px;
    }

    .blog-single-cover img {
        height: 235px;
        border-radius: 13px;
    }

    .blog-article-layout {
        padding-top: 46px;
        padding-bottom: 60px;
    }

    .blog-article-content {
        font-size: var(--text-sm);
    }

    .blog-article-lead {
        margin-bottom: 38px;
        font-size: var(--text-base);
    }

    .blog-article-content h2 {
        font-size: var(--text-xl);
    }

    .blog-article-note {
        padding: 28px 24px;
    }
}

@media (max-width: 800px) {
    .page-title-banner {
        min-height: 34vh;
    }

    .inner-header {
        position: relative;
    }

    .about-page-hero {
        padding: 75px 0 78px;
    }

    .about-page-hero-layout,
    .about-story-layout {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .about-page-portrait {
        justify-self: start;
        width: min(100%, 440px);
        margin-left: 12px;
    }

    .about-story-copy {
        padding-top: 0;
    }

    .about-story-portrait {
        margin-left: 0;
    }

    .about-principles-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .about-principles-grid article:nth-child(2) {
        border-right: 0;
    }

    .about-principles-grid article:nth-child(-n + 2) {
        border-bottom: 1px solid #e0e6ee;
    }

    .about-approach-layout {
        grid-template-columns: 0.85fr 1.15fr;
        gap: 38px;
    }

    .about-approach-principles article {
        min-height: 190px;
        padding: 22px;
    }
}

@media (max-width: 520px) {
    .page-title-banner {
        min-height: 30vh;
    }

    .page-title-heading {
        font-size: var(--text-3xl);
    }

    .about-page-hero {
        padding: 60px 0 66px;
    }

    .about-page-hero-copy h1 {
        font-size: var(--text-3xl);
    }

    .about-page-hero-copy > p:not(.eyebrow) {
        font-size: var(--text-sm);
    }

    .about-page-portrait {
        width: calc(100% - 12px);
    }

    .portrait-caption {
        left: -7px;
    }

    .about-story-portrait span {
        right: -5px;
    }

    .about-principles-grid {
        grid-template-columns: 1fr;
    }

    .about-principles-grid article,
    .about-principles-grid article:nth-child(2) {
        min-height: 0;
        border-right: 0;
        border-bottom: 1px solid #e0e6ee;
    }

    .about-principles-grid article:last-child {
        border-bottom: 0;
    }

    .about-approach-layout,
    .about-approach-principles {
        grid-template-columns: 1fr;
    }

    .about-approach-layout {
        gap: 42px;
    }

    .about-approach-principles article,
    .about-approach-principles article:nth-child(2n),
    .about-approach-principles article:nth-child(n + 3) {
        min-height: 0;
        padding: 22px;
        border-right: 0;
        border-bottom: 1px solid rgba(148, 163, 184, 0.2);
    }

    .about-approach-principles article:last-child {
        border-bottom: 0;
    }

    .about-page-cta {
        padding: 82px 0;
    }
}


.about-section {
    background: linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%);
}

/* Keep the homepage introduction bright while giving the dedicated About page
   the brand's light-gray canvas. */
.inner-page .about-page-intro {
    background: #ffffff;
}

@media (max-width: 800px) {
    .hero h1 {
        font-size: var(--text-2xl);
    }
}

@media (max-width: 520px) {
    .inner-page .about-page-intro .section-copy {
        text-align: center;
    }

    .inner-page .about-page-intro .section-copy .content-page-heading,
    .inner-page .about-page-intro .about-lead,
    .inner-page .about-page-intro .about-copy {
        margin-right: auto;
        margin-left: auto;
    }

    .inner-page .about-page-intro .section-copy .content-page-heading {
        font-size: var(--text-2xl);
        line-height: 1.2;
    }

    .inner-page .about-page-intro .about-lead {
        font-size: var(--text-sm);
        line-height: 1.6;
    }

    .inner-page .about-page-intro .about-copy {
        font-size: var(--text-xs);
        line-height: 1.65;
    }

    .inner-page .about-page-intro .about-link {
        justify-content: center;
    }

    .blog-archive-grid {
        grid-template-columns: 1fr;
    }

    .blog-card-content {
        min-height: 0;
        padding: 24px;
    }
}

@media (min-width: 521px) and (max-width: 800px) {
    .blog-archive-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.about-section .section-copy .content-page-heading {
    max-width: 650px;
    margin-bottom: 19px;
    font-size: var(--text-5xl);
    line-height: 1.14;
}

.about-section .section-copy .content-page-heading em {
    color: #2465cf;
    font-style: normal;
}

.about-section .about-lead {
    max-width: 570px;
    margin-bottom: 19px;
    color: #647188;
    font-size: var(--text-base);
    line-height: 1.52;
}

/* Global public-page H2 scale: every H2 uses the shared fluid 4XL token. */
h2 {
    font-size: var(--text-4xl) !important;
}

.benefit-grid span {
    display: inline-block;
    font-size: var(--text-3xl);
    line-height: 1;
}

.about-section .about-copy {
    max-width: 610px;
    margin-bottom: 12px;
    color: #647188;
    font-size: var(--text-base);
    line-height: 1.52;
}

.inner-page .about-page-intro .about-lead,
.inner-page .about-page-intro .about-copy {
    color: var(--muted);
    font-size: var(--text-sm);
}

.about-highlights {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    max-width: 630px;
    margin: 26px 0 22px;
}

.about-highlights > div {
    display: grid;
    gap: 7px;
    color: #17233a;
    font-size: var(--text-xs);
    line-height: 1.35;
}

.about-highlight-icon {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1.5px solid #2e64c2;
    border-radius: 10px;
    color: #245bb4;
}

.about-highlight-icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.about-link {
    margin-top: 0 !important;
}

.about-profile {
    position: relative;
    overflow: hidden;
    padding: 38px;
    border: 1px solid rgba(130, 164, 216, 0.24);
    border-radius: 22px;
    background:
        radial-gradient(circle at 100% 0%, rgba(59, 130, 246, 0.3), transparent 34%),
        #172236;
    color: #ffffff;
    box-shadow: 0 24px 48px rgba(20, 32, 52, 0.14);
}

.about-profile::after {
    content: '';
    position: absolute;
    right: -75px;
    bottom: -90px;
    width: 275px;
    height: 275px;
    border: 1px solid rgba(151, 190, 255, 0.22);
    border-radius: 50%;
}

.about-monogram {
    display: grid;
    position: relative;
    z-index: 1;
    width: 76px;
    height: 76px;
    place-items: center;
    border: 1px solid rgba(172, 204, 255, 0.65);
    border-radius: 50%;
    overflow: hidden;
    background: #243b60;
}

.about-monogram img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 47%;
    transform: scale(1.38);
    transform-origin: 50% 47%;
}

.about-profile-intro {
    position: relative;
    z-index: 1;
    margin: 25px 0 30px;
}

.about-profile-intro p {
    margin: 0 0 5px;
    color: #8eb6fb;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.about-profile-intro h3 {
    margin: 0;
    font: 600 var(--text-xl)/1.3 Poppins, sans-serif;
    letter-spacing: -0.035em;
}

.about-profile-lines {
    position: relative;
    z-index: 1;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.about-profile-lines > div {
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: 12px;
    padding: 18px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.about-profile-lines > div > span {
    color: #79a8f5;
    font-size: var(--text-xs);
    font-weight: 700;
}

.about-profile-lines p,
.about-profile-lines b,
.about-profile-lines small {
    display: block;
}

.about-profile-lines p {
    margin: 0;
}

.about-profile-lines b {
    margin-bottom: 3px;
    font-size: var(--text-xs);
}

.about-profile-lines small {
    color: #bdc9da;
    font-size: var(--text-xs);
    line-height: 1.55;
}

.featured-project .project-button b {
    font-size: var(--text-sm);
}

.hero-image-wrap {
    display: flex;
    position: relative;
    height: 505px;
    align-items: center;
    justify-content: flex-end;
}

.hero-three {
    position: absolute;
    z-index: 0;
    inset: -55px -75px -55px -45px;
    width: calc(100% + 120px);
    height: calc(100% + 110px);
    pointer-events: none;
    opacity: 0.82;
}

.hero-image {
    position: relative;
    z-index: 1;
    width: min(680px, 125%);
    height: auto;
    margin-right: -96px;
    filter: drop-shadow(0 30px 32px rgba(0, 0, 0, 0.28));
}

.screen-nav b span {
    color: #3b82f6;
}

.screen-row i {
    display: grid;
    place-items: center;
    height: 40px;
    color: #3c639d;
    font-style: normal;
}

.screen-row i small {
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.service-chip {
    display: flex;
    position: absolute;
    right: 142px;
    bottom: 21px;
    z-index: 4;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border: 1px solid rgba(158, 196, 255, 0.42);
    border-radius: 10px;
    background: rgba(13, 29, 58, 0.91);
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.22);
    color: #ffffff;
}

.service-chip > span {
    color: #7baeff;
    font-size: var(--text-sm);
}

.service-chip b,
.service-chip small {
    display: block;
    font-size: var(--text-xs);
    line-height: 1.3;
}

.service-chip small {
    color: #afc6ed;
}

.footer-brand {
    transform: translateY(-32px);
}

.social-links {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}

.social-links a {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    margin: 0;
    border: 1px solid rgba(147, 163, 184, 0.35);
    border-radius: 50%;
    color: #a9c7fb;
    transition: color 180ms ease, border-color 180ms ease, background 180ms ease;
}

.social-links a:hover {
    color: #ffffff;
    border-color: #3b82f6;
    background: #3b82f6;
}

.social-links svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}

@media (max-width: 800px) {
    .about-highlights {
        max-width: 560px;
    }

    .about-profile {
        max-width: 620px;
    }

    .featured-project-grid .project-card:last-child {
        display: flex;
    }

    .hero-image-wrap {
        width: 100%;
        height: auto;
        max-width: 590px;
    }

    .hero-three {
        display: none;
    }

    .hero-image {
        width: 108%;
        margin: -20px -4% -28px;
    }

    .brand img {
        width: auto;
        height: 5rem;
    }
}

@media (max-width: 520px) {
    .about-highlights {
        grid-template-columns: repeat(2, 1fr);
        gap: 18px 14px;
    }

    .hero-image-wrap {
        width: 100%;
        height: auto;
        max-width: 520px;
    }

    .hero-image {
        width: 110%;
        margin: -15px -5% -25px;
    }

    .hero h1 {
        font-size: var(--text-3xl);
    }

    .service-chip {
        right: 89px;
        bottom: 8px;
        padding: 7px 9px;
    }

    .service-chip b,
    .service-chip small {
        font-size: var(--text-xs);
    }

    .footer-brand {
        transform: none;
    }

    .brand img {
        width: auto;
        height: 4rem;
    }

    .site-header {
        padding: 0 18px;
    }
}
/* Brand palette: Soft Gray — a quiet surface for low-contrast sections. */
:root {
    --soft-gray: #f5f7fa;
}

/* Database-backed archives and detail navigation. */
.portfolio-filters a{padding:9px 14px;border:1px solid #d5dfeb;border-radius:999px;background:#fff;color:#344258;font:600 var(--text-xs) Inter,sans-serif;text-decoration:none}.portfolio-filters a.is-active{border-color:#3b82f6;background:#3b82f6;color:#fff}.admin-pagination{display:flex;justify-content:center;gap:7px;margin-top:30px}.admin-pagination a,.admin-pagination span,.admin-pagination strong{min-width:38px;padding:7px 10px;border:1px solid #d5dfeb;border-radius:7px;color:#344258;text-align:center;text-decoration:none}.admin-pagination strong{border-color:#3b82f6;background:#3b82f6;color:#fff}.article-nav{display:flex;justify-content:space-between;gap:20px;margin-top:30px;padding-top:22px;border-top:1px solid #dce3ec}.article-nav a{color:#2563eb;font-weight:700}.project-single-page .blog-article-content>.button{margin-top:20px}

/* Shared public single-entry layout */
.content-breadcrumb-bar{padding:24px 0 0;background:#fff}.content-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin:0;padding:0;list-style:none}.content-breadcrumb li{display:flex;align-items:center;gap:8px;min-width:0;color:#647188;font-size:var(--text-xs);font-weight:600}.content-breadcrumb li:not(:last-child)::after{content:">";color:#94a3b8;font-weight:500}.content-breadcrumb a{color:#41516a;text-decoration:none;transition:color .18s}.content-breadcrumb a:hover,.content-breadcrumb a:focus-visible{color:#2563eb}.content-breadcrumb [aria-current=page]{max-width:min(52vw,520px);overflow:hidden;color:#3b82f6;text-overflow:ellipsis;white-space:nowrap}.content-breadcrumb-bar+.single-entry-section{padding-top:50px}.content-breadcrumb-bar+.service-detail-intro{padding-top:70px}

.single-entry-section {
    padding: 82px 0 105px;
    background: #ffffff;
}

.single-entry-shell {
    max-width: 1040px;
}

.single-entry-intro {
    max-width: 840px;
    margin: 0 auto 42px;
    text-align: center;
}

.single-entry-intro .eyebrow {
    margin-bottom: 14px;
}

.single-entry-excerpt {
    max-width: 760px;
    margin: 0 auto 16px;
    color: #596579;
    font-size: var(--text-base);
    line-height: 1.7;
}

.single-entry-section .blog-single-cover {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}

.single-entry-section .blog-single-cover img {
    height: clamp(300px, 40vw, 460px);
    border-radius: 18px;
}

.single-entry-section .blog-article-layout {
    width: 100%;
    max-width: 100%;
    padding-top: 62px;
    padding-bottom: 0;
}

.blog-single-page .article-nav {
    width: 100%;
    justify-content: space-around;
}

.blog-single-page .article-nav a {
    text-decoration: none;
}

.portfolio-card-visual {
    display: block;
    flex: 0 0 auto;
    margin: 0;
    overflow: hidden;
}

.portfolio-card-visual img,
.project-visual img {
    transition: transform 0.3s ease;
}

.portfolio-card-visual:hover img,
.project-visual:hover img {
    transform: scale(1.025);
}

.portfolio-card h3 a,
.project-info h3 a {
    margin: 0;
    padding: 0;
    color: inherit;
    font: inherit;
}

.portfolio-card h3 a:hover,
.project-info h3 a:hover {
    color: #2563eb;
}

.project-visual {
    display: block;
}

.blog-article-content .button,
.project-live-button {
    color: #ffffff;
    text-decoration: none;
}

.project-single-page .project-single-content .project-section-heading {
    margin-bottom: 12px;
    font: 600 var(--text-xl)/1.3 Poppins, sans-serif;
    font-size: var(--text-xl) !important;
}

/* Smaller semantic heading scale inside individual blog-post content only. */
.blog-single-page .blog-article-content h2 { font-size: var(--text-xl) !important; }
.blog-single-page .blog-article-content h3 { font-size: var(--text-lg); }
.blog-single-page .blog-article-content h4 { font-size: var(--text-base); }
.blog-single-page .blog-article-content h5 { font-size: var(--text-sm); }
.blog-single-page .blog-article-content h6 { font-size: var(--text-xs); }

.project-single-content .project-live-button {
    display: flex;
    width: fit-content;
    margin: 4px 0 42px;
    font-size: var(--text-sm);
}

.project-features {
    margin-top: 28px;
    margin-bottom: 28px !important;
    padding-top: 28px;
    border-top: 1px solid #dce3ec;
}

.project-technologies {
    margin-bottom: 28px !important;
}

.project-technologies .project-tags {
    gap: 6px;
    margin: 0;
}

.project-technologies .project-tags span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 3px 9px;
    border-color: #c9dcfb;
    background: #eef5ff;
    color: #2563eb;
    line-height: 1.2;
    box-shadow: none;
}

.project-features ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 28px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.project-features li {
    position: relative;
    padding-left: 24px;
}

.project-features li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #3b82f6;
    font-weight: 700;
}

.project-brand-board {
    margin-top: 0;
}

.project-brand-board-trigger {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 18px;
    background: transparent;
    cursor: zoom-in;
}

.project-brand-board-trigger > img {
    display: block;
    width: 100%;
    height: clamp(300px, 40vw, 460px);
    object-fit: cover;
    border: 1px solid #dce4ef;
    border-radius: 18px;
    box-shadow: 0 22px 55px rgba(23, 32, 51, 0.12);
}

.project-brand-board-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    background: rgba(8, 18, 35, 0.58);
    color: #fff;
    font-size: var(--text-sm);
    font-weight: 700;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.project-brand-board-overlay svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
}

.project-brand-board-trigger:hover .project-brand-board-overlay,
.project-brand-board-trigger:focus-visible .project-brand-board-overlay {
    opacity: 1;
}

.project-brand-board-trigger:focus-visible {
    outline: 3px solid #3b82f6;
    outline-offset: 4px;
}

.project-brand-board-lightbox {
    width: 100vw;
    max-width: none;
    height: 100dvh;
    max-height: none;
    margin: 0;
    padding: clamp(20px, 4vw, 54px);
    border: 0;
    background: rgba(5, 10, 20, 0.94);
}

.project-brand-board-lightbox::backdrop {
    background: transparent;
}

.project-brand-board-lightbox[open] {
    display: grid;
    place-items: center;
}

.project-brand-board-lightbox > img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: calc(100dvh - clamp(40px, 8vw, 108px));
    object-fit: contain;
    border-radius: 10px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.5);
}

.project-brand-board-close {
    position: fixed;
    z-index: 2;
    top: max(16px, env(safe-area-inset-top));
    right: max(16px, env(safe-area-inset-right));
    display: grid;
    width: 44px;
    height: 44px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 50%;
    background: rgba(13, 23, 40, 0.88);
    color: #fff;
    font: 400 30px/1 Inter, sans-serif;
    cursor: pointer;
}

.project-brand-board-close:hover,
.project-brand-board-close:focus-visible {
    border-color: #fff;
    background: #2563eb;
    outline: none;
}

.error-section {
    display: grid;
    min-height: 68vh;
    place-items: center;
    text-align: center;
}

.error-section .container {
    max-width: 760px;
}

.error-section p:not(.eyebrow) {
    max-width: 620px;
    margin: 20px auto 28px;
    color: #596579;
}

.error-section .button-group {
    justify-content: center;
}

@media (max-width: 800px) {
    .single-entry-section {
        padding: 68px 0 84px;
    }

    .single-entry-section .blog-single-cover img {
        height: clamp(280px, 58vw, 400px);
    }
}

@media (max-width: 520px) {
    .content-breadcrumb-bar{padding-top:18px}.content-breadcrumb ol{justify-content:flex-start;gap:6px}.content-breadcrumb li{gap:6px}.content-breadcrumb [aria-current=page]{max-width:48vw}.content-breadcrumb-bar+.single-entry-section{padding-top:38px}.content-breadcrumb-bar+.service-detail-intro{padding-top:52px}
    .single-entry-section {
        padding: 52px 0 70px;
    }

    .single-entry-intro {
        margin-bottom: 30px;
        text-align: left;
    }

    .single-entry-excerpt {
        font-size: var(--text-sm);
    }

    .single-entry-section .blog-single-cover img {
        height: 220px;
        border-radius: 13px;
    }

    .single-entry-section .blog-article-layout {
        padding-top: 42px;
    }

    .project-features ul {
        grid-template-columns: 1fr;
    }

    .project-brand-board-trigger,
    .project-brand-board-trigger > img {
        height: 220px;
        border-radius: 13px;
    }
}
.portfolio-results{transition:opacity .16s ease}.portfolio-page.is-filtering .portfolio-results{opacity:.45;pointer-events:none}

/* Primary navigation Services dropdown. */
.nav-dropdown{position:relative;display:flex;align-self:stretch;align-items:center}
.nav-dropdown-trigger{display:flex;align-items:center}
.nav-dropdown-trigger>a{opacity:.84;transition:opacity .2s,color .2s}
.nav-dropdown-trigger>a:hover,.nav-dropdown-trigger>a:focus-visible,.nav-dropdown.is-current .nav-dropdown-trigger>a{opacity:1;color:#fff}
.nav-dropdown-toggle{display:grid;width:26px;height:34px;margin-left:-1px;padding:0;place-items:center;border:0;border-radius:6px;background:transparent;color:#a9c6f3;cursor:pointer;transition:color .2s,background .2s}
.nav-dropdown-toggle:hover,.nav-dropdown-toggle:focus-visible{background:transparent;color:#fff;outline:none}
.nav-dropdown-toggle svg{display:block;width:16px;height:16px;transition:transform .2s ease}
.nav-dropdown.is-open .nav-dropdown-toggle svg{transform:rotate(180deg)}
.nav-dropdown-menu{position:absolute;z-index:50;top:calc(100% + 10px);left:-18px;display:grid;width:330px;padding:10px;border:1px solid rgba(130,164,218,.25);border-radius:13px;background:rgba(13,17,23,.98);box-shadow:0 22px 48px rgba(0,0,0,.32);opacity:0;visibility:hidden;transform:translateY(8px);pointer-events:none;transition:opacity .18s,transform .18s,visibility .18s}
.nav-dropdown-menu::before{content:"";position:absolute;right:0;bottom:100%;left:0;height:12px}
.nav-dropdown-menu a{padding:11px 13px;border-radius:8px;color:#c8d4e6;font-size:var(--text-xs);line-height:1.4}
.nav-dropdown-menu a:hover,.nav-dropdown-menu a:focus-visible,.nav-dropdown-menu a.is-current{background:#1d2c43;color:#fff}
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu,.nav-dropdown.is-open .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}

@media(max-width:800px){
    .primary-nav{overflow-y:auto}
    .primary-nav>a:not(.button){font-size:var(--text-sm)}
    .primary-nav>.nav-dropdown{display:block;width:100%;align-self:auto;border-bottom:1px solid rgba(255,255,255,.1)}
    .nav-dropdown-trigger{width:100%}
    .nav-dropdown-trigger>a{flex:1;padding:15px 0;font-size:var(--text-sm)}
    .nav-dropdown-toggle{width:46px;height:48px;margin:0}
    .nav-dropdown-menu{position:static;display:none;width:100%;padding:0 0 10px 13px;border:0;border-left:1px solid rgba(114,165,255,.35);border-radius:0;background:transparent;box-shadow:none;opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:none}
    .nav-dropdown-menu::before{display:none}
    .nav-dropdown.is-open .nav-dropdown-menu{display:grid}
    .nav-dropdown-menu a{padding:10px 12px;color:#afbed3;font-size:var(--text-sm)}
}

@media (max-width: 800px) {
    .service-detail-page .page-title-heading {
        font-size: var(--text-4xl);
    }
}

@media (max-width: 520px) {
    .content-page-heading,
    .about-section .section-copy .content-page-heading {
        font-size: var(--text-2xl);
    }

    .service-detail-page .page-title-heading {
        font-size: var(--text-3xl);
    }
}

/* Homepage typography scale. */
.home-page .hero h1 {
    font-size: var(--text-4xl);
}

.home-page .hero-primary-button,
.home-page .hero-secondary-button {
    font-size: var(--text-sm);
}

.home-page .about-section .section-copy > h2 {
    font-size: var(--text-2xl) !important;
}

.home-page .about-profile-lines b,
.home-page .about-profile-lines small,
.home-page .about-profile-lines > div > span,
.home-page .text-button,
.home-page .text-link {
    font-size: var(--text-sm);
}

.home-page #services .section-heading > h2 {
    font-size: var(--text-2xl) !important;
}

.home-page #services .section-heading > p:not(.eyebrow) {
    font-size: var(--text-base);
}

.home-page #services .service-card > p,
.home-page #services .service-card-link,
.home-page #services .center-action > .button {
    font-size: var(--text-sm);
}

.primary-nav,
.nav-dropdown-menu a {
    font-size: var(--text-sm);
}

.home-page .work-section .section-heading > div > h2 {
    font-size: var(--text-2xl) !important;
}

.home-page .work-section .row-heading > p {
    font-size: var(--text-base);
}

.home-page .featured-project .project-info h3 {
    font-size: var(--text-lg);
}

.home-page .featured-project .project-info p,
.home-page .featured-project .project-button,
.home-page .work-projects-button {
    font-size: var(--text-sm);
}

.home-page .approach-section .section-heading > h2 {
    font-size: var(--text-2xl) !important;
}

.home-page .approach-section .section-heading > p:not(.eyebrow) {
    font-size: var(--text-base);
}

.home-page .benefit-grid h3 {
    font-size: var(--text-lg);
}

.home-page .benefit-grid p {
    font-size: var(--text-sm);
}

.home-page .process-section .section-heading > h2,
.home-page .faq-section .section-heading > h2 {
    font-size: var(--text-2xl) !important;
}

.home-page .process-section .section-heading > p:not(.eyebrow),
.home-page .faq-section .section-heading > p:not(.eyebrow) {
    font-size: var(--text-base);
}

.home-page .process-list li > span,
.home-page .process-list p,
.home-page .faq-answer p {
    font-size: var(--text-sm);
}

.home-page .process-list h3 {
    font-size: var(--text-xl);
}

.home-page .faq-toggle {
    font-size: var(--text-lg);
}

/* Shared public-site header, CTA, and footer typography. */
.final-cta > .container > p:not(.eyebrow) {
    font-size: var(--text-base);
}

.final-cta h2 {
    font-size: var(--text-2xl) !important;
}

.final-cta .button,
.final-cta .text-button,
.footer-top a,
.footer-top p {
    font-size: var(--text-sm);
}

@media (max-width: 520px) {
    .site-footer {
        padding-top: 32px;
    }

    .footer-top {
        padding-bottom: 34px;
    }

    .footer-bottom {
        padding-top: 16px;
    }
}

/* Shared homepage and About-page introduction typography. */
.about-section .section-copy > h1,
.about-section .section-copy > h2 {
    font-size: var(--text-2xl) !important;
    line-height: 1.2;
}

.about-section .about-lead,
.about-section .about-copy {
    color: #647188;
    font-size: var(--text-base);
    line-height: 1.52;
}

.about-section .about-profile-lines > div > span,
.about-section .about-profile-lines b,
.about-section .about-profile-lines small,
.about-section .about-link {
    font-size: var(--text-sm);
}

.about-principles-section .section-heading > p:not(.eyebrow) {
    font-size: var(--text-base);
}

.about-principles-section .section-heading > h2 {
    font-size: var(--text-2xl) !important;
}

.about-principles-grid span,
.about-approach-principles span {
    font-size: var(--text-sm);
}

.about-principles-grid h3,
.about-approach-principles h3 {
    font-size: var(--text-lg);
}

.about-principles-grid p,
.about-approach-principles p {
    font-size: var(--text-sm);
}

.about-approach-copy h2 {
    font-size: var(--text-2xl) !important;
}

.about-approach-copy > p:not(.eyebrow) {
    font-size: var(--text-base);
}

.services-page #services .section-heading > .content-page-heading,
.services-page .process-section .section-heading > h2 {
    font-size: var(--text-2xl) !important;
}

.services-page #services .section-heading > p:not(.eyebrow),
.services-page .process-section .section-heading > p:not(.eyebrow) {
    font-size: var(--text-base);
}

.services-page #services .service-card .service-card-heading {
    font-size: var(--text-lg) !important;
}

.services-page #services .service-card > p,
.services-page #services .service-card-link {
    font-size: var(--text-sm);
}

.services-page .process-list li > span {
    font-size: var(--text-sm);
}

.services-page .process-list h3 {
    font-size: var(--text-lg);
}

.services-page .process-list p {
    font-size: var(--text-sm);
}

.portfolio-page .portfolio-section .section-heading > .content-page-heading {
    font-size: var(--text-2xl) !important;
}

.portfolio-page .portfolio-section .section-heading > p:not(.eyebrow) {
    font-size: var(--text-base);
}

.portfolio-page .portfolio-filters a {
    font-size: var(--text-sm);
}

.portfolio-page .portfolio-card h3 {
    font-size: var(--text-lg);
}

.portfolio-page .portfolio-card .portfolio-category,
.portfolio-page .portfolio-card > div > p:not(.eyebrow):not(.portfolio-category),
.portfolio-page .portfolio-tags span,
.portfolio-page .portfolio-card-button {
    font-size: var(--text-sm);
}

.portfolio-page .portfolio-card .portfolio-category {
    font-size: var(--text-xs);
}

.portfolio-page .portfolio-filters a {
    border: 1px solid #cbd8ea;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
    color: #172033;
}

.portfolio-page .portfolio-filters a.is-active {
    border-color: #3b82f6;
    background: #3b82f6;
    box-shadow: 0 10px 22px rgba(59, 130, 246, 0.22);
    color: #ffffff;
}

.portfolio-page .portfolio-card,
.home-page .featured-project {
    padding: 8px;
    border-color: #e3ebf6;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.13), 0 4px 14px rgba(59, 130, 246, 0.08);
}

.portfolio-page .portfolio-card:hover,
.home-page .featured-project:hover {
    border-color: #cbdcf2;
    box-shadow: 0 28px 64px rgba(15, 23, 42, 0.18), 0 8px 20px rgba(59, 130, 246, 0.12);
}

.portfolio-page .portfolio-card-visual,
.home-page .featured-project .project-visual {
    overflow: hidden;
    margin: 0;
    border: 0;
    border-radius: 10px;
}

.portfolio-page .portfolio-card img,
.home-page .featured-project .project-visual img {
    border-bottom: 0;
    border-radius: 10px;
}

.portfolio-page .portfolio-card > div,
.home-page .featured-project .project-info {
    padding: 22px 16px 20px;
}

.portfolio-page .portfolio-card .portfolio-category,
.home-page .featured-project .project-type {
    display: block;
    width: auto;
    margin: 0 0 10px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #2563eb;
}

.portfolio-page .portfolio-tags span {
    border-color: #c9dcfb;
    background: #eef5ff;
    color: #2563eb;
    box-shadow: none;
}

.project-single-page .content-page-heading {
    font-size: var(--text-2xl) !important;
}

.project-single-page .blog-article-content,
.project-single-page .blog-article-content p,
.project-single-page .blog-article-content li {
    font-size: var(--text-base);
}

.project-single-page .project-tags span {
    font-size: var(--text-base);
}

.blogs-page .blog-archive-section .section-heading > .content-page-heading,
.blog-single-page .content-page-heading,
.blog-single-page .recent-blogs-section .section-heading > h2 {
    font-size: var(--text-2xl) !important;
}

.blogs-page .blog-archive-section .section-heading > p:not(.eyebrow),
.blog-single-page .single-entry-excerpt,
.blog-single-page .recent-blogs-section .section-heading > p:not(.eyebrow) {
    font-size: var(--text-base);
}

.blogs-page .blog-filters a,
.blogs-page .blog-card-content > p:not(.blog-card-meta),
.blogs-page .blog-card-content > .blog-read-link,
.blog-single-page .blog-single-meta,
.blog-single-page .article-nav a,
.blog-single-page .recent-blogs-section .blog-card-content > p:not(.blog-card-meta),
.blog-single-page .recent-blogs-section .blog-card-content > .blog-read-link {
    font-size: var(--text-sm);
}

.blogs-page .blog-card-meta,
.blog-single-page .recent-blogs-section .blog-card-meta {
    font-size: var(--text-xs);
}

.blogs-page .blog-card-content h3,
.blog-single-page .recent-blogs-section .blog-card-content h3 {
    font-size: var(--text-lg);
}

.blogs-page .blog-archive-section,
.blog-single-page .recent-blogs-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(circle at 86% 12%, rgba(59, 130, 246, 0.18), transparent 31%),
        linear-gradient(rgba(75, 125, 202, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(75, 125, 202, 0.035) 1px, transparent 1px),
        #f7f9fc;
    background-size: auto, 42px 42px, 42px 42px, auto;
}

.blogs-page .blog-archive-section > .container,
.blog-single-page .recent-blogs-section > .container {
    position: relative;
    z-index: 1;
}

.blogs-page .blog-card,
.blog-single-page .recent-blogs-section .blog-card {
    gap: 0;
    padding: 8px;
    border: 1px solid #e3ebf6;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.13), 0 4px 14px rgba(59, 130, 246, 0.08);
    color: #ffffff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.blogs-page .blog-card:hover,
.blog-single-page .recent-blogs-section .blog-card:hover {
    border-color: #cbdcf2;
    box-shadow: 0 28px 64px rgba(15, 23, 42, 0.18), 0 8px 20px rgba(59, 130, 246, 0.12);
    transform: translateY(-5px);
}

.blogs-page .blog-card-visual,
.blog-single-page .recent-blogs-section .blog-card-visual {
    height: 185px;
    border: 0;
    border-radius: 10px 10px 0 0;
}

.blogs-page .blog-card-visual img,
.blog-single-page .recent-blogs-section .blog-card-visual img {
    border-radius: 10px 10px 0 0;
}

.blogs-page .blog-card-content,
.blog-single-page .recent-blogs-section .blog-card-content {
    min-height: 285px;
    margin: 0;
    padding: 25px;
    border-radius: 0 0 10px 10px;
    background: linear-gradient(145deg, #1a2233 0%, #0d2138 100%);
}

.blogs-page .blog-card-meta,
.blog-single-page .recent-blogs-section .blog-card-meta {
    display: grid;
    gap: 5px;
    color: #72a5ff;
    font-weight: 500;
}

.blogs-page .blog-card-meta span,
.blog-single-page .recent-blogs-section .blog-card-meta span {
    padding: 0;
}

.portfolio-page .portfolio-card .portfolio-category,
.home-page .featured-project .project-type {
    font-weight: 500;
}

.contact-page .contact-section .content-page-heading,
.consultation-page .consultation-booking-section .content-page-heading {
    font-size: var(--text-2xl) !important;
}

.contact-page .contact-copy > p:not(.eyebrow),
.consultation-page .consultation-booking-section .section-heading > p:not(.eyebrow) {
    font-size: var(--text-base);
}

.contact-page .contact-details span,
.contact-page .contact-details b,
.contact-page .contact-details a,
.contact-page .contact-details small,
.contact-page .contact-form label,
.contact-page .contact-form input,
.contact-page .contact-form textarea,
.contact-page .contact-form .button,
.contact-page .contact-consent,
.contact-page .contact-alert,
.consultation-page .calendly-fallback {
    font-size: var(--text-sm);
}

.blog-single-page .blog-article-content,
.blog-single-page .blog-article-content p,
.blog-single-page .blog-article-content li {
    font-size: var(--text-base);
}

.blog-single-page .blog-article-content h2 {
    font-size: var(--text-xl) !important;
}

.blog-single-page .blog-article-content h3 {
    font-size: var(--text-lg);
}

.blog-single-page .blog-article-content h4 {
    font-size: var(--text-base);
}

.service-detail-page .service-faq-section .section-copy > h2 {
    font-size: var(--text-2xl) !important;
}

.service-detail-page .service-faq-section .section-copy > p:not(.eyebrow) {
    font-size: var(--text-base);
}

.service-detail-page .service-faq-section .faq-toggle {
    font-size: var(--text-lg);
}

.service-detail-page .service-faq-section .faq-answer p {
    font-size: var(--text-sm);
}

/* Shared typography hierarchy for all five individual service pages. */
.service-detail-page .service-detail-intro .content-page-heading,
.service-detail-page .service-benefits-section .section-heading > h2,
.service-detail-page .service-included-section .section-heading > h2,
.service-detail-page .service-audience-section .section-copy > h2,
.service-detail-page .service-process-section .section-heading > h2,
.service-detail-page .service-trust-section .section-heading > h2 {
    font-size: var(--text-2xl) !important;
}

.service-detail-page .service-detail-intro .section-copy > p:not(.eyebrow),
.service-detail-page .service-benefits-section .section-heading > p:not(.eyebrow),
.service-detail-page .service-included-section .section-heading > p:not(.eyebrow),
.service-detail-page .service-audience-section .section-copy > p:not(.eyebrow) {
    font-size: var(--text-base);
}

.service-detail-page .service-benefit-grid h3,
.service-detail-page .service-included-grid h3,
.service-detail-page .service-process-grid h3,
.service-detail-page .service-trust-grid h3 {
    font-size: var(--text-lg);
}

.service-detail-page .service-benefit-grid p,
.service-detail-page .service-included-grid p,
.service-detail-page .service-process-grid p,
.service-detail-page .service-trust-grid p,
.service-detail-page .service-audience-list li,
.service-detail-page .service-inline-links a,
.service-detail-page .service-detail-intro .text-link {
    font-size: var(--text-sm);
}

.service-detail-page .service-process-grid li > span,
.service-detail-page .service-audience-list li > span,
.service-detail-page .service-visual-chips span {
    font-size: var(--text-sm);
}

.service-detail-page .service-trust-grid article > span {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
}

.service-detail-page .service-trust-grid article > span svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

/* Global section spacing override for sections that inherited 130px vertical padding. */
.section {
    padding-top: 70px;
    padding-bottom: 70px;
}

@media (max-width: 800px) {
    .section {
        padding-top: 50px;
        padding-bottom: 50px;
    }
}

@media (max-width: 520px) {
    .section {
        padding-top: 40px;
        padding-bottom: 40px;
    }
}
