:root {
    --p-blue: #2879f6;
    --p-blue-dark: #145dcf;
    --p-ink: #10233e;
    --p-muted: #607086;
    --p-ivory: #f6f4ef;
    --p-white: #ffffff;
    --p-pale: #eaf2ff;
    --p-line: #cfd7e2;
    --p-soft-line: #e2e6ec;
    --p-serif: Georgia, "Times New Roman", serif;
    --p-sans: Inter, "Segoe UI", Arial, sans-serif;
}

body.public-site {
    color: var(--p-ink);
    background: var(--p-ivory);
    font-family: var(--p-sans);
}
.public-site h1,
.public-site h2,
.public-site h3 {
    color: var(--p-ink);
    font-family: var(--p-serif);
    font-weight: 500;
    letter-spacing: -.045em;
}
.public-site h1 em,
.public-site h2 em { color: var(--p-blue); font-weight: 400; }
.public-site .container { width: min(1240px, calc(100% - 64px)); }
.public-site .section { padding: clamp(90px, 10vw, 150px) 0; }
.public-site .section-tag {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--p-blue);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.public-site .section-tag::before { width: 28px; height: 1px; content: ""; background: currentColor; }

/* Navigation */
.public-site .site-header {
    position: absolute;
    color: var(--p-ink);
    background: transparent;
}
.public-site .site-header.is-scrolled {
    position: fixed;
    color: var(--p-ink);
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid rgba(16,35,62,.08);
    box-shadow: 0 10px 35px rgba(16,35,62,.06);
    backdrop-filter: blur(18px);
}
.public-site .nav-wrap { min-height: 96px; }
.public-site .site-logo {
    display: inline-flex;
    width: 178px;
    padding: 18px 12px 12px;
    box-sizing: border-box;
}
.public-site .site-logo img { width: 100%; height: auto; border-radius: 0; object-fit: contain; }
.public-site .site-nav { gap: 34px; }
.public-site .site-nav > a { font-size: .76rem; font-weight: 720; letter-spacing: .02em; }
.public-site .site-nav > a:not(.nav-cta)::after { bottom: -9px; background: var(--p-blue); }
.public-site .site-nav .nav-cta,
.public-site .is-scrolled .nav-cta {
    padding: 13px 21px;
    color: #fff;
    background: var(--p-blue);
    border-radius: 3px;
}
.public-site .nav-toggle { color: var(--p-ink); }

/* Premium homepage */
.premium-hero { padding: 118px 0 45px; overflow: hidden; background: var(--p-ivory); }
.premium-hero-grid { display: block; }
.hero-overline {
    display: flex;
    justify-content: space-between;
    width: 100%;
    padding-bottom: 20px;
    color: var(--p-muted);
    border-bottom: 1px solid var(--p-line);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}
.premium-hero-copy h1 {
    max-width: 1120px;
    margin: 30px 0 34px;
    font-size: clamp(4.5rem, 8.2vw, 8rem);
    line-height: .89;
}
.premium-hero-copy h1 strong { font-weight: 600; }
.premium-hero-bottom { display: grid; grid-template-columns: minmax(0, 620px) auto; gap: 70px; align-items: end; }
.premium-hero-bottom > p { margin: 0; color: var(--p-muted); font-size: 1.02rem; }
.premium-hero-actions { display: grid; gap: 18px; justify-items: start; }
.premium-button {
    display: inline-flex;
    min-height: 55px;
    padding: 14px 23px;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    border: 1px solid var(--p-ink);
    border-radius: 3px;
    font-size: .76rem;
    font-weight: 800;
    transition: transform .2s, background .2s, color .2s;
}
.premium-button:hover { transform: translateY(-3px); }
.premium-button-blue { color: #fff; background: var(--p-blue); border-color: var(--p-blue); }
.premium-button-blue:hover { background: var(--p-blue-dark); }
.premium-button-outline { color: var(--p-ink); background: transparent; }
.premium-button-outline:hover { color: #fff; background: var(--p-ink); }
.premium-text-link,
.premium-arrow-link {
    display: inline-flex;
    gap: 12px;
    align-items: center;
    padding-bottom: 3px;
    color: var(--p-ink);
    border-bottom: 1px solid currentColor;
    font-size: .79rem;
    font-weight: 800;
}
.premium-proof {
    display: grid;
    grid-template-columns: repeat(3, 1fr) 1.25fr;
    gap: 25px;
    margin-top: 42px;
    padding: 30px 0;
    border-top: 1px solid var(--p-line);
    border-bottom: 1px solid var(--p-line);
}
.premium-proof > div { padding-right: 20px; border-right: 1px solid var(--p-line); }
.premium-proof strong { display: block; color: var(--p-blue); font-family: var(--p-serif); font-size: 2.35rem; font-weight: 400; line-height: 1; }
.premium-proof span { display: block; margin-top: 8px; color: var(--p-muted); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.premium-proof > p { margin: 0; justify-self: end; font-family: var(--p-serif); font-size: 1.25rem; font-style: italic; line-height: 1.35; }

.premium-statement { padding: clamp(100px, 13vw, 190px) 0; background: #fff; }
.premium-statement-grid { display: grid; grid-template-columns: .35fr 1.65fr .65fr; gap: clamp(35px, 6vw, 90px); align-items: start; }
.premium-statement h2 { margin: 0; font-size: clamp(2.9rem, 5vw, 5.2rem); line-height: 1.03; }
.premium-statement > .container > p,
.premium-statement-grid > p { color: var(--p-muted); }

.premium-services { padding: clamp(100px, 11vw, 160px) 0; background: var(--p-pale); }
.premium-section-head { display: flex; gap: 45px; align-items: end; justify-content: space-between; margin-bottom: 75px; }
.premium-section-head h2 { margin: 20px 0 0; font-size: clamp(2.9rem, 5vw, 5.2rem); line-height: 1; }
.premium-service-list { border-top: 1px solid #bfcadd; }
.premium-service-row {
    display: grid;
    grid-template-columns: 70px 1.1fr 1fr 35px;
    gap: 28px;
    align-items: center;
    padding: 35px 5px;
    border-bottom: 1px solid #bfcadd;
    transition: padding .22s, background .22s;
}
.premium-service-row:hover { padding-inline: 20px; background: rgba(255,255,255,.55); }
.premium-service-index { color: var(--p-blue); font-size: .72rem; font-weight: 800; }
.premium-service-row h3 { margin: 0; font-size: clamp(1.8rem, 3vw, 3.1rem); }
.premium-service-row p { margin: 0; color: var(--p-muted); font-size: .9rem; }
.premium-service-arrow { justify-self: end; color: var(--p-blue); font-size: 1.35rem; }

.premium-work { padding: clamp(110px, 12vw, 180px) 0; background: var(--p-ivory); }
.premium-project-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 80px 28px; }
.premium-project-card { grid-column: span 7; }
.premium-project-card:nth-child(even) { grid-column: 8 / span 5; margin-top: 125px; }
.premium-project-image { position: relative; display: block; aspect-ratio: 1.18 / 1; overflow: hidden; background: #e2e7ed; }
.premium-project-card:nth-child(even) .premium-project-image { aspect-ratio: .88 / 1; }
.premium-project-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s; }
.premium-project-image > span {
    position: absolute;
    right: 18px;
    bottom: 18px;
    padding: 10px 13px;
    color: #fff;
    background: var(--p-blue);
    font-size: .68rem;
    font-weight: 800;
    opacity: 0;
    transform: translateY(8px);
    transition: .25s;
}
.premium-project-card:hover img { transform: scale(1.025); }
.premium-project-card:hover .premium-project-image > span { opacity: 1; transform: translateY(0); }
.premium-project-meta { display: flex; justify-content: space-between; gap: 25px; padding-top: 18px; }
.premium-project-meta span { color: var(--p-blue); font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.premium-project-meta h3 { margin: 7px 0 0; font-size: 1.65rem; }

.premium-about-band { padding: 18px 0; background: #fff; }
.premium-about-grid { display: grid; grid-template-columns: 1.15fr .85fr; min-height: 720px; }
.premium-about-grid > figure { margin: 0; overflow: hidden; }
.premium-about-grid > figure img { width: 100%; height: 100%; object-fit: cover; }
.premium-about-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(45px, 7vw, 100px); background: #dceafe; }
.premium-about-copy h2 { margin: 30px 0; font-size: clamp(2.8rem, 4.7vw, 5rem); line-height: 1; }
.premium-about-copy p { color: var(--p-muted); }
.premium-about-copy .premium-arrow-link { margin-top: 25px; }

.premium-process { padding: clamp(100px, 11vw, 160px) 0; background: #fff; }
.premium-process-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--p-line); }
.premium-process-grid article { min-height: 285px; padding: 30px 28px 20px 0; border-right: 1px solid var(--p-line); }
.premium-process-grid article + article { padding-left: 28px; }
.premium-process-grid article:last-child { border-right: 0; }
.premium-process-grid article > span { color: var(--p-blue); font-size: .7rem; font-weight: 800; }
.premium-process-grid h3 { margin: 70px 0 12px; font-size: 1.8rem; }
.premium-process-grid p { color: var(--p-muted); font-size: .88rem; }

.premium-feedback { padding: clamp(100px, 11vw, 160px) 0; background: var(--p-pale); }
.premium-testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.premium-testimonial-grid blockquote { margin: 0; padding: 35px; background: #fff; border: 1px solid #ccd6e5; }
.premium-testimonial-grid blockquote > p { font-family: var(--p-serif); font-size: 1.35rem; line-height: 1.35; }
.premium-testimonial-grid footer { display: grid; gap: 3px; margin-top: 35px; padding-top: 20px; border-top: 1px solid var(--p-soft-line); }
.premium-testimonial-grid footer span { color: var(--p-muted); font-size: .75rem; }
.premium-feedback-empty { display: grid; grid-template-columns: .35fr 1fr; gap: 30px; padding: 40px; background: #fff; border: 1px solid #ccd6e5; }
.premium-feedback-empty span { color: var(--p-blue); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.premium-feedback-empty p { margin: 0; color: var(--p-muted); }

.premium-journal { padding: clamp(100px, 11vw, 160px) 0; background: var(--p-ivory); }
.premium-journal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }
.premium-journal-grid article > span { display: block; margin-top: 22px; color: var(--p-blue); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.premium-journal-image { display: block; aspect-ratio: 1.25 / 1; overflow: hidden; background: #e2e7ed; }
.premium-journal-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.premium-journal-grid article:hover img { transform: scale(1.03); }
.premium-journal-grid h3 { margin: 14px 0 20px; font-size: 1.65rem; line-height: 1.12; }

/* Shared interior pages */
.public-site .inner-page-hero,
.public-site .page-hero,
.public-site .service-hero,
.public-site .project-hero,
.public-site .article-hero {
    color: var(--p-ink);
    background: var(--p-ivory);
}
.public-site .inner-page-hero { padding-top: 175px; }
.public-site .inner-hero-caption h1 { color: var(--p-ink); font-family: var(--p-serif); }
.public-site .inner-kicker {
    color: var(--p-blue);
    border-color: #aab8cc;
    background: #fff;
}
.public-site .inner-hero-lead { color: var(--p-muted); }
.public-site .inner-marquee { border-top: 1px solid var(--p-line); }
.public-site .inner-marquee span { color: transparent; -webkit-text-stroke: 1px rgba(16,35,62,.2); }
.public-site .inner-cover { border-radius: 8px 8px 0 0; }
.public-site .inner-cover-services img { filter: saturate(.82) brightness(.98); }
.public-site .page-hero,
.public-site .service-hero,
.public-site .project-hero,
.public-site .article-hero { padding: 175px 0 100px; }
.public-site .page-hero-grid > p,
.public-site .service-hero p:not(.eyebrow),
.public-site .article-heading p:last-child { color: var(--p-muted); }
.public-site .eyebrow,
.public-site .eyebrow-blue { color: var(--p-blue); }
.public-site .section-light,
.public-site .process-section,
.public-site .blog-preview,
.public-site .services-detail-list,
.public-site .work-index,
.public-site .section-ink,
.public-site .work-section,
.public-site .values-section,
.public-site .related-work,
.public-site .related-services { color: var(--p-ink); background: var(--p-white); }
.public-site .values-section,
.public-site .related-work,
.public-site .related-services,
.public-site .work-section { background: var(--p-pale); }
.public-site .split-heading > p,
.public-site .service-row p,
.public-site .manifesto-copy p:not(.eyebrow),
.public-site .process-grid p,
.public-site .blog-card-body p,
.public-site .service-feature li,
.public-site .prose,
.public-site .article-prose,
.public-site .about-copy > p,
.public-site .values-grid p,
.public-site .page-hero-grid > p { color: var(--p-muted); }
.public-site .about-story { align-items: center; }
.public-site .about-image-stack > img { border-radius: 4px; }
.public-site .about-logo-card { right: -20px; width: 58%; padding: 10px; background: #fff; }
.public-site .about-logo-card img { width: 100%; }
.public-site .about-stats { border-top: 1px solid var(--p-line); padding-top: 25px; }
.public-site .about-stats strong { color: var(--p-blue); font-family: var(--p-serif); font-weight: 400; }
.public-site .values-grid { grid-template-columns: repeat(2, 1fr); }
.public-site .values-grid > article,
.public-site .values-grid > div { color: var(--p-ink); background: #fff; border: 1px solid var(--p-line); }
.public-site .service-feature { border-color: var(--p-line); }
.public-site .service-feature h2 { font-size: clamp(2.7rem, 5vw, 5rem); }
.public-site .service-feature li,
.public-site .deliverable-list,
.public-site .deliverable-list li,
.public-site .process-grid,
.public-site .process-grid > div { border-color: var(--p-line); }
.public-site .related-grid a,
.public-site .blog-card,
.public-site .testimonial-card,
.public-site .empty-state { color: var(--p-ink); background: #fff; border: 1px solid var(--p-line); }
.public-site .project-meta h3,
.public-site .blog-card h2,
.public-site .blog-card h3,
.public-site .article-prose h2,
.public-site .article-prose h3 { color: var(--p-ink); }
.public-site .project-cover img,
.public-site .article-cover img { background: #edf0f4; box-shadow: 0 25px 70px rgba(16,35,62,.12); }
.public-site .article-prose { color: #33465e; }
.public-site .filter-bar a { color: var(--p-muted); background: #fff; border-color: var(--p-line); }
.public-site .filter-bar a.is-active { color: #fff; background: var(--p-blue); border-color: var(--p-blue); }
.public-site .button-dark { color: #fff; background: var(--p-ink); }
.public-site .text-link { color: var(--p-blue); }
.public-site .testimonial-section,
.public-site .cta-band { color: var(--p-ink); background: #dceafe; }
.public-site .cta-band .eyebrow { color: var(--p-blue); }
.public-site .cta-band .button-light { color: #fff; background: var(--p-blue); }
.public-site .testimonial-card { color: var(--p-ink); }

/* Contact */
.public-site .contact-page,
.public-site .contact-inner-section { color: var(--p-ink); background: #fff; }
.public-site .contact-inner-hero .inner-hero-caption h1 { color: var(--p-ink); }
.public-site .contact-intro > p:not(.eyebrow) { color: var(--p-muted); }
.public-site .contact-details { padding-top: 30px; border-top: 1px solid var(--p-line); }
.public-site .contact-details a span { color: var(--p-blue); font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.public-site .contact-details a strong { color: var(--p-ink); }
.public-site .contact-form-card { color: var(--p-ink); background: var(--p-pale); border: 1px solid #c9d5e6; box-shadow: none; }
.public-site .site-form input,
.public-site .site-form textarea,
.public-site .site-form select {
    color: var(--p-ink);
    background: #fff;
    border-color: #cbd4df;
}
.public-site .site-form input::placeholder,
.public-site .site-form textarea::placeholder { color: #8a97a8; }

/* Footer */
.public-site .premium-footer { padding: 110px 0 28px; color: var(--p-ink); background: #dceafe; }
.premium-footer-top { display: grid; grid-template-columns: 1.5fr .5fr; gap: 80px; padding-bottom: 85px; }
.premium-footer-cta h2 { margin: 28px 0 38px; font-size: clamp(3.3rem, 6.5vw, 6.8rem); line-height: .92; }
.premium-footer-contact { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 10px; font-size: .85rem; }
.premium-footer-contact .footer-logo { width: 175px; margin-bottom: 28px; }
.premium-footer-contact span { color: var(--p-muted); }
.premium-footer-bottom { display: grid; grid-template-columns: .7fr 1.6fr .45fr; gap: 30px; align-items: center; padding-top: 24px; border-top: 1px solid #b9c9df; font-size: .72rem; }
.premium-footer-bottom p { margin: 0; }
.premium-footer-bottom nav { display: flex; gap: 24px; justify-content: center; }
.premium-footer-bottom > a { justify-self: end; }

@media (max-width: 1024px) {
    .premium-hero-copy h1 { font-size: clamp(4rem, 8vw, 6.6rem); }
    .premium-hero-bottom { grid-template-columns: 1fr; }
    .premium-statement-grid { grid-template-columns: .35fr 1.65fr; }
    .premium-statement-grid > p { grid-column: 2; }
    .premium-testimonial-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 780px) {
    .public-site .container { width: min(100% - 34px, 680px); }
    .public-site .nav-wrap { min-height: 78px; }
    .public-site .site-logo { width: 152px; padding: 15px 10px 10px; }
    .public-site .site-nav { color: var(--p-ink); background: var(--p-ivory); }
    .public-site .site-nav > a { font-family: var(--p-serif); font-size: 2rem; }
    .public-site .site-nav .nav-cta { color: #fff; background: var(--p-blue); }
    .public-site.nav-open .site-header,
    .public-site.nav-open .site-header.is-scrolled {
        color: var(--p-ink);
        background: transparent;
        border-bottom: 0;
        box-shadow: none;
        backdrop-filter: none;
    }
    .premium-hero { padding-top: 105px; }
    .premium-hero-copy h1 { max-width: 680px; }
    .premium-proof { grid-template-columns: repeat(2, 1fr); }
    .premium-proof > p { justify-self: start; }
    .premium-statement-grid { grid-template-columns: 1fr; }
    .premium-statement-grid > p { grid-column: auto; max-width: 520px; }
    .premium-section-head { display: block; }
    .premium-section-head > a { margin-top: 25px; }
    .premium-service-row { grid-template-columns: 48px 1fr 30px; }
    .premium-service-row p { display: none; }
    .premium-project-grid { gap: 55px 20px; }
    .premium-project-card,
    .premium-project-card:nth-child(even) { grid-column: span 6; margin-top: 0; }
    .premium-about-grid { grid-template-columns: 1fr; }
    .premium-about-grid > figure { min-height: 520px; }
    .premium-process-grid { grid-template-columns: repeat(2, 1fr); }
    .premium-process-grid article:nth-child(2) { border-right: 0; }
    .premium-testimonial-grid { grid-template-columns: 1fr; }
    .premium-journal-grid { grid-template-columns: repeat(2, 1fr); }
    .premium-journal-grid article:last-child { grid-column: span 2; }
    .premium-footer-top { grid-template-columns: 1fr; }
    .premium-footer-bottom { grid-template-columns: 1fr; }
    .premium-footer-bottom nav { flex-wrap: wrap; justify-content: start; }
    .premium-footer-bottom > a { justify-self: start; }
}

@media (max-width: 520px) {
    .public-site .container { width: calc(100% - 28px); }
    .premium-hero-copy h1 { margin: 25px 0 30px; font-size: clamp(3.35rem, 16vw, 4.8rem); }
    .hero-overline span:last-child { display: none; }
    .premium-proof { grid-template-columns: 1fr 1fr; margin-top: 55px; }
    .premium-proof > div { border-right: 0; }
    .premium-proof > p { grid-column: 1 / -1; }
    .premium-statement h2,
    .premium-section-head h2 { font-size: clamp(2.5rem, 12vw, 3.6rem); }
    .premium-service-row { gap: 14px; padding-block: 25px; }
    .premium-service-row h3 { font-size: 1.75rem; }
    .premium-project-grid { grid-template-columns: 1fr; }
    .premium-project-card,
    .premium-project-card:nth-child(even) { grid-column: auto; }
    .premium-project-card:nth-child(even) .premium-project-image { aspect-ratio: 1.05 / 1; }
    .premium-about-grid > figure { min-height: 390px; }
    .premium-about-copy { padding: 55px 26px; }
    .premium-process-grid { grid-template-columns: 1fr; }
    .premium-process-grid article,
    .premium-process-grid article:nth-child(2) { min-height: auto; padding: 28px 0; border-right: 0; border-bottom: 1px solid var(--p-line); }
    .premium-process-grid h3 { margin-top: 30px; }
    .premium-feedback-empty { grid-template-columns: 1fr; }
    .premium-journal-grid { grid-template-columns: 1fr; }
    .premium-journal-grid article:last-child { grid-column: auto; }
    .premium-footer-top { padding-bottom: 55px; }
    .premium-footer-contact { padding-top: 20px; border-top: 1px solid #b9c9df; }
    .public-site .values-grid { grid-template-columns: 1fr; }
    .public-site .inner-page-hero { padding-top: 125px; }
}
