/* ─── OSIH shared styles ─── */
* { box-sizing: border-box; margin: 0; padding: 0; }

body {
    background-color: #fff;
    color: #1a1a1a;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    min-height: 100vh;
    padding: 0;
}

a { color: inherit; }

/* ── Background layers ── */
#radial-bg {
    position: fixed; inset: 0; z-index: 3; pointer-events: none;
    background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
}
#glitch-overlay {
    position: fixed; inset: 0; z-index: 4; pointer-events: none;
}
#grid-wrap {
    position: fixed; inset: 0; z-index: 2; opacity: 0.3;
    pointer-events: none; will-change: opacity, transform;
    transform-origin: center center;
    animation: slalom 60s ease-in-out infinite,
               grow   480s ease-in-out infinite alternate;
}
#square-grid { display: block; width: 100vw; height: 100vh; }

@keyframes grow   { from { transform: scale(1); } to { transform: scale(2.5); } }
@keyframes slalom {
    0%   { opacity: 0.38; }
    18%  { opacity: 0.22; }
    42%  { opacity: 0.28; }
    67%  { opacity: 0.38; }
    84%  { opacity: 0.22; }
    100% { opacity: 0.35; }
}
@keyframes fadeIn {
    0% { opacity: 0; transform: translateY(20px); }
    100% { opacity: 1; transform: translateY(0); }
}

/* ── Top nav ── */
.nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 20;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 22px 32px;
    pointer-events: none;
}
.nav a { pointer-events: auto; text-decoration: none; }
.nav-mark {
    font-weight: 500;
    letter-spacing: 0.18em;
    font-size: 0.78rem;
    color: #111;
    text-transform: uppercase;
}
.nav-links {
    display: flex;
    gap: 1.75rem;
    font-size: 0.78rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #888;
    font-weight: 400;
}
.nav-links a { transition: color 0.2s ease; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: #111; }

@media (max-width: 600px) {
    .nav { padding: 16px 18px; }
    .nav-links { gap: 1rem; font-size: 0.7rem; letter-spacing: 0.1em; }
}

/* ── Hero (home) ── */
.hero {
    min-height: 100vh;
    display: flex; flex-direction: column;
    justify-content: center; align-items: center;
    padding: 40px 24px;
}
.container {
    position: relative;
    z-index: 10;
    max-width: 820px;
    text-align: center;
    display: flex; flex-direction: column;
    align-items: center;
    gap: 3rem;
    opacity: 0;
    animation: fadeIn 2s ease-out forwards;
}
.logo {
    width: min(400px, 72vw);
    max-width: none;
    height: auto;
    display: block;
    margin-bottom: -1.25rem;
}
.brand-line {
    color: #777;
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.28em;
    line-height: 1.6;
    text-transform: uppercase;
}
.manifesto {
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 1.5;
    letter-spacing: -0.012em;
    color: #888;
}
.manifesto strong {
    color: #111;
    font-weight: 500;
    letter-spacing: -0.012em;
}
.hero-actions {
    display: flex;
    justify-content: center;
    gap: 2rem;
}
.text-link {
    display: inline-block;
    color: #111;
    font-size: 0.74rem;
    font-weight: 500;
    letter-spacing: 0.18em;
    padding-bottom: 4px;
    text-decoration: none;
    text-transform: uppercase;
    border-bottom: 1px solid #111;
}

/* ── Capabilities (home) ── */
.capabilities {
    position: relative;
    z-index: 10;
    max-width: 960px;
    margin: 0 auto;
    padding: 8rem 32px 4rem;
}
.capabilities-title {
    max-width: 720px;
    margin: 0 auto 4rem;
    color: #111;
    font-size: 2.6rem;
    font-weight: 400;
    letter-spacing: -0.02em;
    line-height: 1.15;
    text-align: center;
}
.capability-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}
.capability-grid article {
    padding: 2rem;
    border-right: 1px solid #eee;
}
.capability-grid article:first-child { padding-left: 0; }
.capability-grid article:last-child { padding-right: 0; border-right: 0; }
.capability-kicker {
    color: #aaa;
    font-size: 0.68rem;
    font-weight: 400;
    letter-spacing: 0.18em;
    line-height: 1.5;
    margin-bottom: 1rem;
    text-transform: uppercase;
}
.capability-grid h2, .capability-grid h3 {
    color: #111;
    font-size: 1.25rem;
    font-weight: 500;
    letter-spacing: -0.015em;
    line-height: 1.35;
    margin-bottom: 1rem;
}
.capability-grid article > p:not(.capability-kicker) {
    color: #666;
    font-size: 0.95rem;
    font-weight: 300;
    line-height: 1.65;
    margin-bottom: 1.5rem;
}

@media (max-width: 760px) {
    .hero { min-height: auto; padding-top: 9rem; padding-bottom: 6rem; }
    .hero-actions { align-items: center; flex-direction: column; gap: 1.25rem; }
    .capabilities { padding: 5rem 24px 2rem; }
    .capabilities-title { font-size: 2rem; }
    .capability-grid { grid-template-columns: 1fr; }
    .capability-grid article,
    .capability-grid article:first-child,
    .capability-grid article:last-child {
        padding: 2rem 0;
        border-right: 0;
        border-bottom: 1px solid #eee;
    }
    .capability-grid article:last-child { border-bottom: 0; }
}

/* ── Email trigger / brand mark ── */
.email-trigger {
    cursor: pointer;
    display: inline-block;
    transition: transform 0.3s ease, opacity 0.3s ease;
    opacity: 0.7;
    background: none; border: none; padding: 0;
}
.email-trigger:hover { transform: scale(1.02); opacity: 1; }
.brand-name {
    font-weight: 400;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: #555;
    font-size: 0.78rem;
    line-height: 2;
}
.brand-name small {
    font-weight: 300;
    letter-spacing: 0.28em;
    font-size: 0.78em;
    color: #aaa;
}

/* ── Page sections (subpages) ── */
.page {
    position: relative;
    z-index: 10;
    max-width: 760px;
    margin: 0 auto;
    padding: 9rem 32px 8rem;
}
.page-eyebrow {
    font-weight: 400;
    letter-spacing: 0.36em;
    text-transform: uppercase;
    color: #aaa;
    font-size: 0.72rem;
    margin-bottom: 1.5rem;
}
.page-title {
    font-weight: 400;
    font-size: 2.6rem;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: #111;
    margin-bottom: 2rem;
}
.page-lede {
    font-weight: 300;
    font-size: 1.4rem;
    line-height: 1.5;
    letter-spacing: -0.012em;
    color: #777;
    margin-bottom: 4rem;
}
.page p {
    font-weight: 300;
    font-size: 1.05rem;
    line-height: 1.7;
    color: #444;
    margin-bottom: 1.25rem;
    letter-spacing: -0.005em;
}
.page p strong { color: #111; font-weight: 500; }
.page h2 {
    font-weight: 500;
    font-size: 1.4rem;
    color: #111;
    margin: 3rem 0 1rem;
    letter-spacing: -0.015em;
}
.page ul {
    list-style: none;
    padding: 0;
    margin: 1rem 0 2rem;
}
.page ul li {
    font-weight: 300;
    font-size: 1.05rem;
    line-height: 1.7;
    color: #444;
    padding: 0.4rem 0 0.4rem 1.5rem;
    position: relative;
    letter-spacing: -0.005em;
}
.page ul li::before {
    content: "—";
    position: absolute;
    left: 0;
    color: #bbb;
}

/* ── Selected Work list ── */
.work {
    position: relative;
    z-index: 10;
    max-width: 960px;
    margin: 0 auto;
    padding: 8rem 32px 10rem;
}
.work-label {
    font-weight: 400;
    letter-spacing: 0.36em;
    text-transform: uppercase;
    color: #aaa;
    font-size: 0.72rem;
    text-align: center;
    margin-bottom: 4rem;
}
.work-list { list-style: none; }
.work-item a {
    display: grid;
    grid-template-columns: 36px 1fr auto;
    align-items: baseline;
    gap: 1.5rem;
    padding: 2rem 0;
    border-top: 1px solid #eee;
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s ease, transform 0.3s ease;
}
.work-item:last-child a { border-bottom: 1px solid #eee; }
.work-item a:hover { opacity: 0.65; transform: translateX(2px); }
.work-item img {
    width: 20px; height: 20px;
    border-radius: 4px;
    opacity: 0.85;
    align-self: center;
}
.work-name {
    font-weight: 500;
    color: #111;
    font-size: 1.5rem;
    line-height: 1.2;
    letter-spacing: -0.015em;
}
.work-desc {
    color: #888;
    font-size: 1.05rem;
    line-height: 1.5;
    margin-top: 0.4rem;
    display: block;
    font-weight: 300;
    letter-spacing: -0.005em;
}
.work-meta {
    color: #aaa;
    font-size: 0.95rem;
    font-weight: 300;
    margin-top: 0.3rem;
    display: block;
}
.work-domain {
    font-weight: 400;
    font-size: 0.72rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #bbb;
    white-space: nowrap;
}

/* ── Case study fact list ── */
.facts {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem 2rem;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
    padding: 2rem 0;
    margin: 2.5rem 0 3rem;
}
.facts dt {
    font-size: 0.7rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #aaa;
    margin-bottom: 0.4rem;
    font-weight: 400;
}
.facts dd {
    font-size: 1rem;
    color: #222;
    font-weight: 400;
    letter-spacing: -0.005em;
}

/* ── Contact form ── */
.form {
    display: flex; flex-direction: column;
    gap: 1.25rem;
    margin-top: 2rem;
}
.form label {
    font-size: 0.72rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #888;
    margin-bottom: 0.4rem;
    display: block;
    font-weight: 400;
}
.form input, .form textarea {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid #ddd;
    padding: 0.6rem 0;
    font-family: inherit;
    font-size: 1rem;
    color: #111;
    font-weight: 300;
    letter-spacing: -0.005em;
    outline: none;
    transition: border-color 0.2s ease;
}
.form input:focus, .form textarea:focus { border-color: #111; }
.form textarea { resize: vertical; min-height: 110px; }
.form button {
    align-self: flex-start;
    margin-top: 1rem;
    background: #111;
    color: #fff;
    border: none;
    padding: 0.85rem 1.6rem;
    font-family: inherit;
    font-size: 0.78rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    cursor: pointer;
    font-weight: 500;
    transition: background 0.2s ease;
}
.form button:hover { background: #000; }

/* ── Footer ── */
.footer {
    position: relative;
    z-index: 10;
    max-width: 960px;
    margin: 0 auto;
    padding: 3rem 32px 4rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid #eee;
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #aaa;
    font-weight: 400;
}
.footer a { text-decoration: none; transition: color 0.2s ease; }
.footer a:hover { color: #111; }

/* Consultancy offer and intake */
.hero { padding-top: 8rem; padding-bottom: 5rem; }
.hero-title {
    font-size: clamp(2rem, 5vw, 3.4rem);
    font-weight: 400;
    line-height: 1.12;
    letter-spacing: -0.035em;
}
.offer-summary { color: #444; font-size: 1rem; line-height: 1.7; }
.button-link {
    display: inline-block;
    background: #111;
    color: #fff;
    padding: 1rem 1.4rem;
    text-decoration: none;
    font-size: 0.85rem;
    line-height: 1.5;
}
.hero-actions { align-items: center; }
.home-section { padding-top: 2rem; padding-bottom: 4rem; }
.editorial-photo {
    position: relative;
    z-index: 10;
    max-width: 1120px;
    margin: 2rem auto 4rem;
    padding: 0 32px;
}
.editorial-photo img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}
.landscape-photo img { aspect-ratio: 16 / 9; }
.people-photo { max-width: 960px; }
.people-photo img { aspect-ratio: 8 / 5; }
.editorial-photo figcaption {
    max-width: 760px;
    color: #595959;
    font-size: 0.75rem;
    line-height: 1.6;
    margin-top: 0.9rem;
}
.work-intro {
    max-width: 650px;
    color: #595959;
    font-size: 0.95rem;
    line-height: 1.6;
    margin: -2rem auto 3rem;
    text-align: center;
}
.work-symbol { align-self: center; color: #555; font-size: 1.1rem; font-weight: 500; }
.page .product-note { font-size: 0.85rem; color: #595959; }
.page .secondary-link { margin-top: 1.5rem; font-size: 0.9rem; }
.nav { background: rgba(255, 255, 255, 0.96); }
.nav-links { color: #595959; }
.form select {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid #aaa;
    border-radius: 0;
    background: #fff;
    color: #111;
    font: inherit;
}
.form label { color: #555; line-height: 1.6; }
.form input, .form textarea { background: #fff; padding: 0.75rem; border: 1px solid #aaa; }
.form small { display: block; color: #555; line-height: 1.6; margin-top: 0.5rem; }
.form .checkbox-label { display: flex; align-items: flex-start; gap: 0.75rem; letter-spacing: normal; text-transform: none; font-size: 0.95rem; }
.form input[type="checkbox"] { width: 1.1rem; height: 1.1rem; flex-shrink: 0; margin-top: 0.2rem; }
.form-status { border-left: 3px solid #555; padding-left: 1rem; }
.form-status:empty { display: none; }
.intro-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; margin: 1.5rem 0; }
.page .price { font-size: 2rem; font-weight: 500; color: #111; }
.page details { border-top: 1px solid #ddd; padding: 1.25rem 0; }
.page summary { cursor: pointer; font-weight: 500; line-height: 1.5; }
.page details p { margin: 1rem 0 0; }
.page ol { padding-left: 1.5rem; line-height: 1.7; color: #444; }
.page ol li { padding: 0.5rem 0; }
[hidden] { display: none !important; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
    outline: 3px solid #245f85;
    outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .container { opacity: 1; }
    #glitch-overlay { display: none; }
}
@media (max-width: 600px) {
    .nav-links { gap: 0.7rem; font-size: 0.65rem; letter-spacing: 0.04em; }
    .hero .container { gap: 2rem; }
    .hero .logo { width: 200px; }
    .button-link { text-align: center; }
    .editorial-photo { padding: 0 20px; margin-top: 0; margin-bottom: 2rem; }
    .editorial-photo figcaption { font-size: 0.7rem; }
}

@media (max-width: 600px) {
    .manifesto { font-size: 1.15rem; padding: 0 6px; line-height: 1.55; }
    .container { gap: 2.5rem; }
    .logo { width: min(280px, 76vw); margin-bottom: -1rem; }
    .brand-line { max-width: 280px; font-size: 0.62rem; letter-spacing: 0.2em; }
    .work { padding: 5rem 20px 6rem; }
    .work-item a { grid-template-columns: 24px 1fr; gap: 1rem; padding: 1.5rem 0; }
    .work-name { font-size: 1.15rem; }
    .work-desc { font-size: 0.95rem; }
    .work-domain { display: none; }
    .page { padding: 6rem 20px 5rem; }
    .page-title { font-size: 1.9rem; }
    .page-lede { font-size: 1.15rem; margin-bottom: 2.5rem; }
    .facts { grid-template-columns: 1fr; }
    .footer { flex-direction: column; gap: 1rem; padding: 2rem 20px 3rem; }
}

/* Editorial consultancy */
:root { --ink: #172521; --muted: #53605b; --line: #d9dfd9; --paper: #f2f3ed; }
html { scroll-padding-top: 6rem; }
.skip-link {
    position: fixed; top: -5rem; left: 1rem; z-index: 30;
    padding: 0.8rem 1rem; background: var(--ink); color: #fff;
}
.skip-link:focus { top: 1rem; }
.editorial-shell { position: relative; z-index: 10; width: min(1240px, calc(100% - 96px)); margin-inline: auto; }
.editorial-section { padding-block: 6rem; }
.eyebrow {
    color: var(--muted); font-size: 0.66rem; line-height: 1.7;
    font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase;
}
.consultancy-home h1, .consultancy-home h2, .consultancy-home h3 { font-weight: 400; color: var(--ink); }
.consultancy-home h2 { font-size: clamp(2rem, 3.7vw, 3.3rem); line-height: 1.12; letter-spacing: -0.045em; }
.consultancy-home em, .service-intro em {
    font-family: Georgia, 'Times New Roman', serif; font-weight: 400;
}
.consultancy-home p { line-height: 1.75; }
.consultancy-home .button-link, .service-intro .button-link { background: var(--ink); }
.button-link { transition: background 0.2s ease; }
.button-link:hover { background: #334d43; }
.button-link > span { margin-left: 1rem; }
.editorial-hero { display: grid; grid-template-columns: 1.05fr 1fr; align-items: center; gap: 5%; padding-top: 7rem; padding-bottom: 3rem; }
.editorial-logo { display: block; width: 138px; height: auto; margin-bottom: 2rem; }
.hero-copy > .eyebrow { margin-bottom: 1.6rem; }
.editorial-hero h1 { font-size: clamp(3rem, 5.8vw, 5.4rem); line-height: 1.02; letter-spacing: -0.065em; margin-bottom: 1.75rem; }
.hero-description { font-size: 1.18rem; color: var(--ink); }
.hero-detail { max-width: 460px; font-size: 0.95rem; color: var(--muted); margin-top: 1rem; }
.editorial-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.3rem; margin-top: 1.75rem; }
.quiet-link { display: inline-block; color: var(--ink); font-size: 0.8rem; line-height: 1.6; text-decoration: none; border-bottom: 1px solid #8b9690; padding-bottom: 0.2rem; }
.quiet-link:hover { border-color: var(--ink); }
.quiet-link > span { margin-left: 0.6rem; }
.hero-reassurance { font-size: 0.72rem; color: var(--muted); margin-top: 1rem; }
.hero-portrait { position: relative; align-self: stretch; margin-top: 2rem; }
.hero-portrait > img { width: 100%; height: calc(100% - 3rem); min-height: 560px; max-height: 740px; object-fit: cover; object-position: 50% 30%; display: block; }
.photo-caption { position: absolute; left: -1.5rem; bottom: 5rem; padding: 1.3rem 1.5rem; background: var(--paper); max-width: 85%; }
.photo-caption > span:first-child { display: block; color: var(--muted); font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 0.6rem; }
.photo-caption > span:last-child { font-family: Georgia, 'Times New Roman', serif; color: var(--ink); font-size: 1.5rem; line-height: 1.2; }
.hero-portrait figcaption, .human-story figcaption, .service-photo figcaption {
    color: var(--muted); font-size: 0.65rem; line-height: 1.6; margin-top: 0.65rem;
}
.positioning-strip { display: flex; justify-content: space-between; gap: 1rem; border-block: 1px solid var(--line); padding-block: 1.3rem; font-size: 0.71rem; letter-spacing: 0.02em; color: var(--muted); }
.opportunity-section, .assessment-section, .founder-section { display: grid; grid-template-columns: 1fr 1fr; gap: 9%; }
.section-intro > .eyebrow, .human-copy > .eyebrow, .founder-copy > .eyebrow { margin-bottom: 1.5rem; }
.section-intro > p:not(.eyebrow), .human-copy > p:not(.eyebrow), .founder-copy > p:not(.eyebrow) { color: var(--muted); font-size: 0.98rem; margin-top: 1.5rem; max-width: 480px; }
.situation-list > a { display: grid; grid-template-columns: 2rem 1fr; gap: 1rem; text-decoration: none; padding-block: 1.7rem; border-top: 1px solid var(--line); }
.situation-list > a:last-child { border-bottom: 1px solid var(--line); }
.item-number { font-size: 0.7rem; color: var(--muted); padding-top: 0.3rem; }
.situation-list h3 { font-size: 1.45rem; line-height: 1.25; letter-spacing: -0.025em; }
.situation-list p { color: var(--muted); font-size: 0.88rem; margin-block: 0.8rem; }
.inline-link { font-size: 0.73rem; color: var(--ink); }
.situation-list a:hover .inline-link, .product-card:hover .inline-link { text-decoration: underline; text-underline-offset: 0.3rem; }
.human-story { display: grid; grid-template-columns: 0.9fr 1.1fr; align-items: center; gap: 9%; background: var(--paper); padding: 3rem; }
.human-story figure { max-width: 410px; }
.human-story img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.human-copy .text-link, .founder-copy .text-link { margin-top: 1.8rem; }
.assessment-section { align-items: start; }
.assessment-price { display: flex; align-items: center; gap: 1.5rem; border-top: 1px solid var(--line); margin-top: 1.8rem; padding-top: 1.5rem; }
.assessment-price strong { color: var(--ink); font-size: 1.8rem; font-weight: 500; letter-spacing: -0.05em; white-space: nowrap; }
.assessment-price span { color: var(--muted); font-size: 0.7rem; line-height: 1.6; }
.section-intro > p.payment-promise { color: var(--ink); font-weight: 500; font-size: 0.8rem; }
.assessment-section .button-link { margin-top: 1.5rem; }
.decision-preview { background: var(--ink); color: #fff; padding: 2rem; box-shadow: 1rem 1rem 0 #e6e9e2; }
.memo-topline { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.6rem; line-height: 1.6; letter-spacing: 0.05em; color: #c0cfc5; border-bottom: 1px solid #60716a; padding-bottom: 1rem; }
.decision-preview h3 { color: #fff; font-family: Georgia, 'Times New Roman', serif; font-size: 2rem; line-height: 1.15; margin-top: 1.8rem; }
.memo-context { color: #c0cfc5; font-size: 0.72rem; margin-block: 1rem 1.8rem; }
.memo-lines > div { display: grid; grid-template-columns: 6.5rem 1fr; gap: 1rem; border-top: 1px solid #60716a; padding-block: 1rem; }
.memo-lines dt { color: #c0cfc5; font-size: 0.65rem; line-height: 1.6; }
.memo-lines dd { font-size: 0.82rem; line-height: 1.7; }
.memo-note { color: #c0cfc5; font-size: 0.68rem; margin-block: 1rem; }
.decision-preview .quiet-link { color: #fff; border-color: #a4b4aa; }
.founder-section { border-block: 1px solid var(--line); }
.founder-mark { padding: 2rem 0; }
.founder-mark > p { font-size: clamp(2.5rem, 4vw, 3.6rem); line-height: 1.15; letter-spacing: -0.05em; color: var(--ink); margin-block: 2rem; }
.founder-mark > span:last-child { color: var(--muted); font-size: 0.8rem; line-height: 1.7; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 3rem; margin-bottom: 2.5rem; }
.section-heading .eyebrow { margin-bottom: 1.5rem; }
.section-heading > p { max-width: 330px; color: var(--muted); font-size: 0.9rem; }
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.product-card { display: flex; flex-direction: column; padding: 2rem 1.5rem; text-decoration: none; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.product-card:first-child { padding-left: 0; }
.product-card:last-child { border-right: 0; }
.product-index { color: var(--muted); font-size: 0.65rem; letter-spacing: 0.1em; text-transform: uppercase; }
.product-card h3 { display: flex; justify-content: space-between; gap: 1rem; font-size: 1.5rem; letter-spacing: -0.03em; margin-top: 2rem; }
.product-card h3 > span { font-size: 1.2rem; }
.product-card p { color: var(--muted); font-size: 0.88rem; margin-block: 1rem 1.5rem; }
.product-card .inline-link { margin-top: auto; }
.portfolio-link { margin-top: 1.5rem; }
.consultancy-home .landscape-photo { max-width: 1336px; margin-block: 0 2rem; }
.consultancy-home .landscape-photo img { aspect-ratio: 2.5 / 1; object-position: center 65%; }
.closing-section { padding-block: 5rem 4rem; text-align: center; max-width: 860px; }
.closing-section h2 { font-size: clamp(2.5rem, 5.5vw, 4.5rem); margin-block: 1.5rem; }
.closing-section > p:not(.eyebrow):not(.hero-reassurance) { max-width: 500px; margin-inline: auto; color: var(--muted); }
.closing-section > .button-link { margin-top: 1.8rem; }
.closing-details { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; border-top: 1px solid var(--line); padding-top: 2rem; margin-top: 3rem; text-align: left; color: var(--muted); font-size: 0.73rem; }
.service-intro { margin-bottom: 3rem; }
.service-intro .page-title { font-size: clamp(2.4rem, 5vw, 3.5rem); color: var(--ink); }
.service-intro .page-lede { font-size: 1.2rem; line-height: 1.6; margin-bottom: 1.5rem; }
.service-photo { margin-block: 2rem 3rem; }
.service-photo img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.service-price-panel { border: 1px solid var(--line); background: var(--paper); padding: 1.5rem; margin-block: 2rem; }
.service-price-panel h2 { margin-top: 0; }
.page .service-price-panel .price { font-size: 2.6rem; letter-spacing: -0.05em; margin-block: 1rem; }
.service-price-panel .button-link { margin-top: 0.5rem; }
.workflow-example { border-top: 1px solid var(--line); padding-top: 1.5rem; margin-top: 2rem; scroll-margin-top: 6rem; }
.workflow-example h3 { font-size: 1.25rem; font-weight: 500; line-height: 1.4; margin-bottom: 0.8rem; }
.page .workflow-example p { font-size: 0.95rem; }
.page .decision-preview { margin-block: 2rem 3rem; }
.page .decision-preview h3 { font-size: 1.8rem; font-weight: 400; }
.page .decision-preview p { color: #c0cfc5; font-size: 0.8rem; }
.page .decision-preview .memo-note { font-size: 0.72rem; margin-bottom: 0; }
.page .decision-preview dt, .page .decision-preview dd { color: #fff; }
@media (min-width: 1600px) { .editorial-hero { padding-top: 9rem; } }
@media (max-width: 1000px) {
    .editorial-shell { width: calc(100% - 56px); }
    .editorial-hero { gap: 4%; }
    .editorial-hero h1 { font-size: clamp(2.8rem, 6vw, 4rem); }
    .hero-portrait > img { min-height: 600px; }
    .photo-caption { left: -0.5rem; padding: 1rem; }
    .photo-caption > span:last-child { font-size: 1.2rem; }
    .opportunity-section, .assessment-section, .founder-section { gap: 6%; }
    .human-story { padding: 2rem; gap: 6%; }
    .decision-preview { padding: 1.5rem; }
    .memo-topline { flex-direction: column; gap: 0.3rem; }
    .memo-lines > div { grid-template-columns: 1fr; gap: 0.4rem; }
}
@media (max-width: 700px) {
    .editorial-shell { width: calc(100% - 40px); }
    .editorial-section { padding-block: 3.5rem; }
    .editorial-hero { grid-template-columns: 1fr; padding-top: 6rem; gap: 1rem; }
    .editorial-logo { width: 110px; margin-bottom: 1.6rem; }
    .editorial-hero h1 { font-size: clamp(2.8rem, 12vw, 4.8rem); }
    .hero-description { font-size: 1.1rem; }
    .hero-detail { font-size: 0.9rem; }
    .hero-portrait { margin-top: 1.5rem; }
    .hero-portrait > img { height: auto; min-height: 0; max-height: none; aspect-ratio: 1.1 / 1; object-position: center 45%; }
    .photo-caption { left: 0; bottom: 4rem; }
    .hero-portrait figcaption { min-height: 2.2rem; }
    .positioning-strip { flex-direction: column; gap: 0.65rem; }
    .opportunity-section, .assessment-section, .founder-section { grid-template-columns: 1fr; gap: 2.5rem; }
    .section-intro > p:not(.eyebrow), .human-copy > p:not(.eyebrow), .founder-copy > p:not(.eyebrow) { max-width: none; }
    .human-story { grid-template-columns: 1fr; padding: 1.3rem; gap: 2rem; }
    .human-story figure { max-width: none; }
    .human-story img { aspect-ratio: 1 / 1; object-position: center 35%; }
    .human-copy { padding-block: 0.5rem 1rem; }
    .decision-preview { box-shadow: 0.5rem 0.5rem 0 #e6e9e2; }
    .decision-preview h3 { font-size: 1.8rem; }
    .assessment-price { flex-wrap: wrap; gap: 0.8rem; }
    .founder-mark { padding: 0; }
    .section-heading { display: block; }
    .section-heading > p { margin-top: 1.5rem; max-width: none; }
    .product-grid { grid-template-columns: 1fr; }
    .product-card, .product-card:first-child { padding: 1.5rem 0; border-right: 0; }
    .product-card h3 { margin-top: 1rem; }
    .consultancy-home .landscape-photo img { aspect-ratio: 16 / 10; }
    .closing-section { padding-block: 2.5rem; }
    .closing-details { grid-template-columns: 1fr; gap: 1rem; }
}

/* Service menu */
.service-menu { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); margin-block: 2.5rem 1rem; }
.service-menu a { display: flex; flex-direction: column; gap: 0.35rem; padding: 1.2rem 1rem 1.2rem 0; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.service-menu a:nth-child(odd) { border-right: 1px solid var(--line); }
.service-menu a:nth-child(even) { padding-left: 1rem; }
.service-menu span { color: var(--muted); font-size: 0.75rem; }
.service-menu strong { font-weight: 500; font-size: 1.05rem; }
.service-menu em { font-style: normal; color: var(--muted); font-size: 0.72rem; letter-spacing: 0.04em; }
.service-menu a:hover strong { text-decoration: underline; text-underline-offset: 0.3rem; }
.service-price-panel { scroll-margin-top: 6rem; }
.service-price-panel > .page-eyebrow { margin-bottom: 0.8rem; }
.service-price-panel ul { margin-block: 1rem; }
@media (max-width: 600px) {
    .service-menu { grid-template-columns: 1fr; }
    .service-menu a:nth-child(odd) { border-right: 0; }
    .service-menu a:nth-child(even) { padding-left: 0; }
}
.service-photo.portrait-photo { max-width: 520px; }
.service-photo.portrait-photo img { aspect-ratio: 4 / 5; }

.remote-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 1.25rem; }
.remote-grid figure { margin: 0; }
.remote-grid img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.remote-grid figure:first-child img { aspect-ratio: 1.12 / 1; }
.remote-grid figcaption { margin-top: 0.65rem; color: var(--muted); font-size: 0.65rem; line-height: 1.5; }
.remote-grid figcaption a { color: inherit; }
@media (max-width: 900px) {
    .remote-grid { grid-template-columns: 1fr; }
    .remote-grid img, .remote-grid figure:first-child img { aspect-ratio: 4 / 3; }
}

.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.compare { margin-block: 2.5rem 3.5rem; }
.compare-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(6, auto); gap: 0.9rem; align-items: stretch; padding-top: 1.2rem; }
.compare-col { position: relative; display: grid; grid-row: span 6; grid-template-rows: subgrid; row-gap: 0; padding: 1.5rem 1.35rem 1.4rem; background: rgba(255, 255, 255, 0.92); border: 1px solid var(--line); box-shadow: 0 1px 0 rgba(23, 37, 33, 0.04), 0 18px 40px -28px rgba(23, 37, 33, 0.45); transition: transform 0.25s ease, box-shadow 0.25s ease; }
.compare-col:hover { transform: translateY(-4px); box-shadow: 0 1px 0 rgba(23, 37, 33, 0.04), 0 26px 50px -26px rgba(23, 37, 33, 0.55); }
.compare-col.is-start { background: var(--ink); color: var(--paper); border-color: var(--ink); margin-block: -1.2rem 0; padding-top: 2.7rem; box-shadow: 0 30px 60px -28px rgba(23, 37, 33, 0.85); }
.compare-col.is-start:hover { transform: translateY(-4px); }
.compare-flag { min-height: 1.1rem; font-size: 0.6rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink); }
.compare-col.is-start .compare-flag { color: #c9d4cc; }
.compare-col.is-start .compare-flag::before { content: ""; display: inline-block; width: 1.4rem; height: 1px; margin-right: 0.5rem; vertical-align: middle; background: currentColor; }
.page .compare-col h3 { margin: 0.4rem 0 0; font-family: Georgia, 'Times New Roman', serif; font-size: 1.15rem; font-weight: 400; line-height: 1.25; color: inherit; }
.page .compare-question { margin: 0.5rem 0 0; color: var(--muted); font-size: 0.85rem; font-style: italic; }
.page .compare-col.is-start .compare-question { color: #b7c3bb; }
.page .compare-price { display: flex; align-items: flex-start; gap: 0.35rem; margin: 1.5rem 0 1.2rem; font-weight: 300; line-height: 1; color: inherit; white-space: nowrap; }
.compare-currency { padding-top: 0.45rem; font-size: 0.65rem; font-weight: 500; letter-spacing: 0.14em; color: var(--muted); }
.compare-col.is-start .compare-currency { color: #b7c3bb; }
.compare-amount { font-size: clamp(2.4rem, 3.4vw, 3.1rem); letter-spacing: -0.045em; font-variant-numeric: lining-nums tabular-nums; }
.compare-col dl { margin: 0; border-top: 1px solid var(--line); }
.compare-col dl div { padding-block: 0.7rem; border-bottom: 1px solid var(--line); }
.compare-col.is-start dl, .compare-col.is-start dl div { border-color: rgba(242, 243, 237, 0.18); }
.compare-col dt { font-size: 0.6rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.compare-col.is-start dt { color: #9fb0a5; }
.compare-col dd { margin: 0.25rem 0 0; font-size: 0.82rem; line-height: 1.45; }
.compare-actions { align-self: end; display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; margin-top: 1.3rem; }
.page .compare-cta { display: inline-block; padding: 0.7rem 1rem; border: 1px solid var(--ink); color: var(--ink); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; transition: background 0.2s ease, color 0.2s ease; }
.page .compare-cta:hover, .page .compare-cta:focus-visible { background: var(--ink); color: var(--paper); }
.page .compare-col.is-start .compare-cta { background: var(--paper); border-color: var(--paper); color: var(--ink); }
.page .compare-col.is-start .compare-cta:hover, .page .compare-col.is-start .compare-cta:focus-visible { background: #fff; }
.page .compare-link { font-size: 0.72rem; letter-spacing: 0.06em; color: inherit; text-underline-offset: 0.3rem; }
.compare-assurances { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; list-style: none; padding: 1.3rem 0 0; margin: 1.6rem 0 0; border-top: 1px solid var(--line); }
.compare-assurances li { font-size: 0.75rem; line-height: 1.45; color: var(--ink); padding-left: 1.2rem; position: relative; }
.compare-assurances li::before { content: "✓"; position: absolute; left: 0; color: var(--ink); }
.page .compare-note { font-size: 0.75rem; color: var(--muted); margin: 1rem 0 0; }
@media (prefers-reduced-motion: reduce) { .compare-col, .compare-col:hover { transition: none; transform: none; } }
@media (max-width: 900px) {
    .compare-grid { grid-template-columns: 1fr 1fr; grid-template-rows: none; padding-top: 0; }
    .compare-col { grid-row: auto; grid-template-rows: none; }
    .compare-col.is-start { order: -1; margin-block: 0; padding-top: 1.5rem; }
    .compare-assurances { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
    .compare-grid { grid-template-columns: 1fr; }
    .compare-assurances { grid-template-columns: 1fr; }
}
@media (min-width: 901px) {
    .compare { width: min(1120px, calc(100vw - 64px)); margin-left: calc(50% - min(560px, 50vw - 32px)); }
}

.service-detail { margin-top: 4rem; padding-top: 2.5rem; border-top: 1px solid var(--line); scroll-margin-top: 2rem; }
.service-detail h2 { margin-top: 0.6rem; font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: clamp(1.7rem, 3.4vw, 2.3rem); line-height: 1.15; }
.page .spec { display: grid; margin: 1.8rem 0; border-top: 1px solid var(--ink); }
.page .spec div { display: grid; grid-template-columns: 9rem 1fr; gap: 1.2rem; padding-block: 0.85rem; border-bottom: 1px solid var(--line); }
.page .spec dt { padding-top: 0.2rem; font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.page .spec dd { margin: 0; line-height: 1.6; }
.workflow-example { margin-block: 1.5rem; padding-left: 1.2rem; border-left: 2px solid var(--ink); scroll-margin-top: 2rem; }
.workflow-example h3 { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-style: italic; }
@media (max-width: 560px) {
    .page .spec div { grid-template-columns: 1fr; gap: 0.3rem; }
}

.footer { flex-wrap: wrap; gap: 0.8rem 1.5rem; }
.footer-legal { flex-basis: 100%; order: 10; margin: 0.6rem 0 0; font-size: 0.6rem; letter-spacing: 0.12em; line-height: 1.7; color: #aaa; }
.credits-list { list-style: none; padding: 0; margin: 1.5rem 0; border-top: 1px solid var(--line); }
.credits-list li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.3rem 1rem; padding-block: 0.7rem; border-bottom: 1px solid var(--line); font-size: 0.85rem; }
.credits-list span { color: var(--muted); }
.photo-caption > span:only-child { margin: 0; color: var(--ink); letter-spacing: normal; text-transform: none; }

.legal-sub { color: var(--muted); font-size: 0.85rem; }
.statement { position: relative; z-index: 10; overflow: hidden; padding: clamp(6rem, 14vw, 11rem) 32px clamp(5rem, 11vw, 8.5rem); text-align: center; color: rgba(255, 255, 255, 0.9); background: radial-gradient(ellipse 70% 55% at 50% 0%, rgba(255, 255, 255, 0.09), transparent 70%), linear-gradient(180deg, #1b2421 0%, #121614 100%); }
.statement::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.14), transparent); }
.statement-eyebrow { margin: 0 0 2rem; font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); }
.statement h2 { max-width: 1080px; margin: 0 auto; font-family: inherit; font-size: clamp(2rem, 4.4vw, 3.6rem); font-weight: 500; line-height: 1.08; letter-spacing: -0.035em; color: rgba(255, 255, 255, 0.92); }
.statement-sub { max-width: 520px; margin: 2rem auto 0; font-size: 1rem; line-height: 1.65; color: rgba(255, 255, 255, 0.58); }
.statement-cta { display: inline-block; margin-top: 2.6rem; padding: 0.75rem 1.4rem; border-radius: 6px; background: rgba(255, 255, 255, 0.92); color: #111; font-size: 0.85rem; font-weight: 500; text-decoration: none; transition: background 0.2s ease, transform 0.2s ease; }
.statement-cta:hover, .statement-cta:focus-visible { background: #fff; transform: translateY(-1px); }
.statement + .footer { border-top: 0; }
@media (max-width: 600px) { .statement { padding-inline: 20px; } .statement h2 br { display: none; } }
@media (prefers-reduced-motion: reduce) { .statement-cta, .statement-cta:hover { transition: none; transform: none; } }

.product-grid.two-up { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 760px) { .product-grid.two-up { grid-template-columns: 1fr; } }

/* Process and work pages */
.process-steps { list-style: none; counter-reset: none; border-top: 1px solid var(--line); }
.process-steps > li { display: grid; grid-template-columns: 6rem minmax(0, 1fr) minmax(0, 1.25fr); gap: 2rem; align-items: baseline; padding-block: 2rem; border-bottom: 1px solid var(--line); transition: background 0.25s ease; }
.process-steps > li:hover { background: linear-gradient(90deg, rgba(242, 243, 237, 0.9), rgba(242, 243, 237, 0)); }
.step-number { font-family: Georgia, 'Times New Roman', serif; font-size: 2.6rem; line-height: 1; letter-spacing: -0.04em; color: #a3ada7; }
.process-steps > li:hover .step-number { color: var(--ink); }
.step-head h3 { font-size: 1.45rem; line-height: 1.25; letter-spacing: -0.025em; }
.step-time { display: block; margin-top: 0.6rem; color: var(--muted); font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase; }
.process-steps p { color: var(--muted); font-size: 0.95rem; }
.process-steps a { color: var(--ink); text-underline-offset: 0.2rem; }
.photo-band { position: relative; margin-block: 2rem 0; }
.photo-band > img { display: block; width: 100%; height: auto; aspect-ratio: 2.35 / 1; object-fit: cover; object-position: center 55%; }
.photo-band .photo-caption { left: 2rem; bottom: 2rem; }
.photo-band.focus-top > img { object-position: center 10%; }
.process-terms { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 9%; align-items: start; }
.process-terms .eyebrow { margin-bottom: 1.5rem; }
.terms-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; }
.terms-columns h3 { font-size: 0.7rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink); padding-bottom: 1rem; border-bottom: 1px solid var(--ink); }
.terms-columns ul { list-style: none; }
.terms-columns li { padding-block: 1rem; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 0.92rem; line-height: 1.6; }
.closing-section > p a { color: var(--ink); }
.work-hero { padding-top: 10rem; padding-bottom: 4rem; }
.work-hero > .eyebrow { margin-bottom: 1.8rem; }
.work-hero h1 { font-size: clamp(3.2rem, 8vw, 7.2rem); line-height: 0.98; letter-spacing: -0.065em; }
.work-hero-foot { display: grid; grid-template-columns: 1.1fr 1fr; gap: 9%; margin-top: 3rem; align-items: end; }
.work-hero-foot .hero-detail { margin-top: 0; }
.work-grid .product-card:first-child { padding-left: 1.5rem; }
.work-grid .product-card:last-child { border-right: 1px solid var(--line); }
.work-grid .product-card:nth-child(3n+1) { padding-left: 0; }
.work-grid .product-card:nth-child(3n) { border-right: 0; }
.work-grid .product-card { transition: background 0.25s ease; }
.work-grid .product-card:not(.work-cta):hover { background: rgba(242, 243, 237, 0.7); }
.work-grid .work-cta { background: var(--ink); padding-left: 1.5rem !important; }
.work-grid .work-cta .product-index, .work-grid .work-cta p { color: #c0cfc5; }
.work-grid .work-cta h3, .work-grid .work-cta .inline-link { color: #fff; }
.case-hero .eyebrow a { color: inherit; text-underline-offset: 0.2rem; }
.case-hero h1 { font-size: clamp(3rem, 7vw, 6.4rem); }
.case-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid var(--line); }
.case-facts > div { padding: 1.3rem 1.5rem; border-right: 1px solid var(--line); }
.case-facts > div:first-child { padding-left: 0; }
.case-facts > div:last-child { border-right: 0; }
.case-facts dt { color: var(--muted); font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase; }
.case-facts dd { margin: 0.5rem 0 0; color: var(--ink); font-size: 0.92rem; }
.case-facts dd a { color: var(--ink); text-underline-offset: 0.2rem; }
.case-row { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 9%; align-items: start; padding-block: 3.5rem; border-bottom: 1px solid var(--line); }
.case-row:first-child { padding-top: 0; }
.case-row .eyebrow { margin-bottom: 1.2rem; }
.case-row h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.case-text p { color: var(--muted); font-size: 1rem; line-height: 1.7; }
.case-text p + p { margin-top: 1rem; }
.case-text a:not(.button-link) { color: var(--ink); text-underline-offset: 0.2rem; }
.case-text strong { color: var(--ink); font-weight: 500; }
.case-text ul { list-style: none; margin-block: 1.5rem; border-top: 1px solid var(--ink); }
.case-text li { padding-block: 0.9rem; border-bottom: 1px solid var(--line); color: var(--ink); font-size: 0.92rem; }
.case-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem 2rem; margin-top: 2rem; }
.case-next { padding-bottom: 5rem; }
@media (max-width: 900px) {
    .case-row { grid-template-columns: 1fr; gap: 1.5rem; }
    .case-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .case-facts > div:nth-child(n) { padding-left: 0; border-right: 0; }
    .case-facts > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .process-steps > li { grid-template-columns: 4rem 1fr; gap: 0.8rem 1.5rem; }
    .process-steps > li > p { grid-column: 2; }
    .process-terms { grid-template-columns: 1fr; gap: 2.5rem; }
    .work-grid { grid-template-columns: repeat(2, 1fr); }
    .work-grid .product-card:nth-child(n) { padding-left: 1.5rem; border-right: 1px solid var(--line); }
    .work-grid .product-card:nth-child(2n+1):not(.work-cta) { padding-left: 0; }
    .work-grid .product-card:nth-child(2n) { border-right: 0; }
}
@media (max-width: 700px) {
    .process-steps > li { grid-template-columns: 1fr; gap: 0.6rem; padding-block: 1.6rem; }
    .process-steps > li > p { grid-column: 1; }
    .step-number { font-size: 1.8rem; }
    .photo-band > img { aspect-ratio: 4 / 3; }
    .photo-band .photo-caption { position: static; max-width: none; padding: 1rem 0 0; background: none; }
    .photo-band .photo-caption > span { font-size: 1.15rem; }
    .terms-columns { grid-template-columns: 1fr; gap: 2rem; }
    .work-hero { padding-top: 7rem; padding-bottom: 2.5rem; }
    .work-hero-foot { grid-template-columns: 1fr; gap: 1rem; margin-top: 2rem; }
    .work-grid { grid-template-columns: 1fr; }
    .work-grid .product-card:nth-child(n) { padding-left: 0; border-right: 0; }
    .work-grid .work-cta, .work-grid .product-card.work-cta:nth-child(n) { padding: 1.5rem !important; margin-top: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .process-steps > li, .work-grid .product-card { transition: none; } }

/* Cameroon-rooted identity: original triangle repeat, clay, palm and ivory. */
:root {
    --ink: #183e35;
    --muted: #575d51;
    --line: #d9d1c2;
    --paper: #eee7d9;
    --clay: #a63825;
    --ivory: #f7f2e8;
    --site-gutter: clamp(16px, 3vw, 56px);
    --site-width: min(1360px, calc(100vw - 2 * var(--site-gutter)));
}
body { background: var(--ivory); color: var(--ink); }
::selection { background: #edb94c; color: var(--ink); }
#radial-bg, #glitch-overlay, #grid-wrap { display: none; }
.nav {
    min-height: 88px;
    padding: 18px max(var(--site-gutter), calc((100vw - 1240px) / 2));
    background: var(--ivory);
    pointer-events: auto;
}
.nav-mark { color: var(--ink); font-size: 1.65rem; font-weight: 600; letter-spacing: -0.08em; }
.nav-mark::after {
    content: ""; display: inline-block; width: 13px; height: 13px;
    margin-left: 8px; background: var(--clay); clip-path: polygon(50% 0, 100% 100%, 0 100%);
}
.nav-links { gap: 2rem; color: var(--muted); text-transform: none; letter-spacing: 0; font-size: 0.85rem; }
.nav-links a { display: inline-flex; align-items: center; min-height: 44px; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--clay); }
.nav-links a:last-child { color: var(--ink); font-weight: 600; }
body > main, body > main.page {
    position: relative;
    z-index: 10;
    width: var(--site-width);
    max-width: none;
    margin: 88px auto 0;
    background: var(--ivory);
    border: 0;
}
body > main::before {
    content: ""; display: block; height: 12px;
    background: url("/images/osih-triangles.svg") repeat-x left center / 48px 48px;
}
body > main.page {
    padding: 0 max(0px, calc((var(--site-width) - 760px) / 2)) 5rem;
}
.page > :first-child:not(.service-intro) { margin-top: 3rem; }
.page p, .page li, .page dd { color: var(--muted); font-weight: 400; }
.page-title, .service-intro .page-title, .work-hero h1 {
    font-size: clamp(3rem, 6.8vw, 6.5rem); line-height: 0.99;
    font-weight: 500; letter-spacing: -0.065em; color: var(--ink);
}
.page h2, .page h3 { color: var(--ink); }
.page-eyebrow, .eyebrow { color: var(--clay); letter-spacing: 0.1em; font-size: 0.65rem; font-weight: 600; }
.page .page-eyebrow { color: var(--clay); font-size: 0.65rem; font-weight: 600; letter-spacing: 0.1em; }
.consultancy-home em, .service-intro em, .work-hero em {
    font-family: inherit; font-weight: inherit; font-style: normal; color: var(--clay);
}
.consultancy-home h1, .consultancy-home h2, .consultancy-home h3 { font-weight: 500; }
.consultancy-home h2 { font-size: clamp(2.1rem, 4.3vw, 4rem); line-height: 1.04; }
.editorial-shell { width: min(1240px, calc(100% - 80px)); }
.editorial-section { padding-block: 4.5rem; }
.editorial-hero { padding-top: 3.5rem; padding-bottom: 3.5rem; gap: 6%; }
.editorial-hero h1 { font-size: clamp(3rem, 6.8vw, 6.5rem); line-height: 0.99; letter-spacing: -0.07em; }
.hero-description { max-width: 36rem; font-size: 1rem; color: var(--muted); }
.hero-copy > .eyebrow { margin-bottom: 2rem; }
.identity-panel {
    min-height: 520px; position: relative; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 1.5rem;
    background: var(--ink); isolation: isolate; overflow: hidden;
}
.identity-panel::before {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background: url("/images/osih-triangles.svg") repeat center / 200px 200px;
    opacity: 0.95;
}
.identity-wordmark {
    background: var(--ivory); color: var(--ink); padding: 1.4rem 1.8rem 1.6rem 1.2rem;
    font-size: clamp(4rem, 8vw, 8rem); font-weight: 600; line-height: 1; letter-spacing: -0.09em;
}
.identity-caption {
    background: var(--ink); color: var(--ivory); padding: 0.8rem 1.2rem;
    font-size: 0.72rem; line-height: 1.6; text-align: center;
}
.button-link, .consultancy-home .button-link, .service-intro .button-link {
    background: var(--ink); color: var(--ivory); border: 0; border-radius: 0;
    font-size: 0.78rem; font-weight: 500; letter-spacing: 0; text-transform: none;
    padding: 1rem 1.35rem;
}
.button-link:hover, .consultancy-home .button-link:hover { background: var(--clay); }
.text-link, .quiet-link { border: 0; color: var(--ink); text-transform: none; letter-spacing: 0; font-size: 0.8rem; }
.text-link:hover, .quiet-link:hover { color: var(--clay); text-decoration: underline; text-underline-offset: 0.3em; }
.positioning-strip { border: 0; padding-block: 1rem 2rem; font-size: 0.7rem; }
.assessment-price { border: 0; padding-top: 0; }
.assessment-section .button-link { margin-top: 0; }
.decision-preview { background: var(--ink); box-shadow: none; padding: 2rem; }
.consultancy-home .decision-preview h3, .page .decision-preview h3 {
    color: var(--ivory); font-family: inherit; font-size: 1.8rem; letter-spacing: -0.04em;
}
.memo-topline, .memo-lines > div { border: 0; }
.memo-topline { color: #d4dbc9; }
.memo-lines > div { padding-block: 0.75rem; }
.memo-lines dt { color: #edb94c; }
.decision-preview .quiet-link { color: var(--ivory); }
.situation-list > a, .situation-list > a:last-child { border: 0; }
.situation-list > a { padding-block: 1.25rem; }
.situation-list .inline-link { display: inline-block; margin-top: 0.5rem; color: var(--muted); }
.human-story { padding: 0; background: var(--paper); gap: 6%; }
.human-story figure { max-width: none; height: 100%; }
.human-story img { height: 100%; min-height: 360px; aspect-ratio: 1.1; }
.human-copy { padding: 2.5rem 2.5rem 2.5rem 0; }
.human-copy > .quiet-link { margin-top: 1.5rem; }
.section-heading { margin-bottom: 2rem; }
.product-grid, .product-grid.two-up, .product-card, .product-card:first-child { border: 0; }
.product-grid { gap: 1.25rem; }
.product-card, .product-card:first-child { padding: 2rem; background: var(--paper); }
.product-card h3 { font-size: 1.6rem; letter-spacing: -0.04em; }
.product-index { color: var(--clay); letter-spacing: 0.04em; }
.product-card p { margin-bottom: 0; }
.product-card .inline-link { margin-top: 1rem; display: inline-block; }
.closing-section { padding-block: 5rem; border: 0; }
.closing-section h2 { margin-block: 1.25rem; }
.work-hero { padding-block: 3.5rem; }
.work-hero-foot { border: 0; padding-top: 1rem; }
.case-facts { border: 0; background: var(--paper); padding: 1.5rem 2rem; gap: 1.5rem; }
.case-row, .case-row:last-child, .case-next { border: 0; }
.case-row { padding-block: 2.5rem; }
.case-body { padding-block: 1rem; }
.work-grid .product-card, .work-grid .product-card:nth-child(n) {
    border: 0; background: var(--paper); padding: 2rem;
}
.work-grid .product-card:hover { background: #e5dccb; transform: none; }
.work-grid .work-cta, .work-grid .product-card.work-cta:nth-child(n) { background: var(--ink); color: var(--ivory); padding: 2rem !important; margin: 0; }
.work-grid .work-cta h3, .work-grid .work-cta p, .work-grid .work-cta .inline-link { color: var(--ivory); }
.work-grid .work-cta .product-index { color: #edb94c; }
.process-steps { border: 0; gap: 1rem; }
.process-steps > li, .process-steps > li:nth-child(n) { border: 0; background: var(--paper); padding: 1.75rem; }
.process-steps > li:hover { background: #e5dccb; transform: none; }
.step-number { color: var(--clay); }
.service-intro { padding-top: 3.5rem; margin-bottom: 2rem; }
.service-intro .page-lede { max-width: 35rem; font-size: 1rem; margin-bottom: 0; }
.compare {
    width: min(1240px, var(--site-width));
    margin-inline: calc((100% - min(1240px, var(--site-width))) / 2);
}
.compare-grid { gap: 1rem; padding: 0; }
.compare-col, .compare-col.is-start { border: 0; box-shadow: none; background: var(--paper); padding: 1.5rem; margin: 0; }
.compare-col.is-start { background: var(--ink); color: var(--ivory); }
.compare-col:hover, .compare-col.is-start:hover { transform: none; box-shadow: none; }
.page .compare-col h3 { font-family: inherit; font-size: 1.1rem; letter-spacing: -0.035em; }
.page .compare-question { font-style: normal; font-size: 0.8rem; }
.compare-col dl > div { border: 0; padding-block: 0.6rem; }
.compare-col dl { border: 0; }
.compare-col.is-start dl > div { border: 0; }
.compare-col dt, .compare-col.is-start dt { color: inherit; }
.compare-col.is-start dd, .page .compare-col.is-start .compare-question { color: #d4dbc9; }
.compare-col.is-start .compare-flag { color: #edb94c; }
.compare-col.is-start .compare-flag::before { display: none; }
.page .compare-cta { text-transform: none; letter-spacing: 0; font-size: 0.75rem; border: 0; padding: 0.7rem 0; font-weight: 600; }
.page .compare-col.is-start .compare-cta { padding-inline: 0.8rem; }
.compare-assurances { border: 0; }
.page .compare-assurances li { font-size: 0.75rem; }
.service-detail { border: 0; margin-top: 1rem; padding-top: 0; }
.page .scope-disclosure { border: 0; background: var(--paper); padding: 1.5rem; }
.scope-disclosure > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; list-style: none; }
.scope-disclosure > summary::-webkit-details-marker { display: none; }
.scope-disclosure > summary::after { content: "+"; color: var(--clay); font-size: 1.5rem; flex-shrink: 0; }
.scope-disclosure[open] > summary::after { content: "-"; }
.page .scope-disclosure > summary h2 { margin: 0; font-size: 1.1rem; }
.page .scope-disclosure .page-eyebrow { margin-top: 1.5rem; }
.page .spec, .page .spec > div { border: 0; }
.service-detail h2, .workflow-example h3 { font-family: inherit; font-style: normal; }
.workflow-example { border: 0; padding-left: 0; }
.process-steps > li + li { margin-top: 1rem; }
.terms-columns h3, .terms-columns li { border: 0; }
.footer-legal { color: var(--muted); letter-spacing: 0.02em; }
.footer a { color: var(--muted); }
.page .scope-disclosure p, .page .scope-disclosure dd { font-size: 0.9rem; }
.page .service-notes { margin-top: 2rem; }
.form input, .form textarea, .form select { border-color: #a49e90; background: #fffcf6; color: var(--ink); }
.page details:not(.scope-disclosure) { border-color: var(--line); }
body > .statement { width: var(--site-width); margin-inline: auto; }
body > .footer {
    width: var(--site-width); max-width: none; margin-inline: auto;
    background: var(--ivory); border: 0; padding: 2rem 40px;
    position: relative; color: var(--muted);
}
body > .footer::before {
    content: ""; position: absolute; top: 0; left: 0; right: 0; height: 8px;
    background: url("/images/osih-triangles.svg") repeat-x left center / 32px 32px;
}
@media (max-width: 900px) {
    .compare { width: auto; margin-inline: 0; }
    .identity-panel { min-height: 420px; }
}
@media (max-width: 700px) {
    .nav { min-height: 76px; padding: 16px var(--site-gutter); }
    .nav-mark { font-size: 1.4rem; }
    .nav-mark::after { width: 9px; height: 9px; margin-left: 5px; }
    .nav-links { gap: 0.9rem; font-size: 0.72rem; }
    body > main, body > main.page { margin-top: 76px; }
    body > main.page { padding: 0 0 3rem; }
    .editorial-shell { width: 100%; }
    .editorial-hero, .work-hero { padding-block: 2.5rem; }
    .editorial-hero h1 { font-size: clamp(3rem, 13vw, 5rem); }
    .editorial-hero { gap: 2.5rem; }
    .hero-copy > .eyebrow { margin-bottom: 1.25rem; }
    .identity-panel { min-height: 290px; }
    .identity-panel::before { background-size: 144px 144px; }
    .identity-wordmark { font-size: 5rem; }
    .positioning-strip { gap: 0.5rem; }
    .editorial-section { padding-block: 3rem; }
    .human-copy { padding: 1.5rem; }
    .human-story { gap: 0; }
    .human-story img { min-height: 0; aspect-ratio: 4 / 3; }
    .product-grid, .product-grid.two-up { grid-template-columns: 1fr; }
    .product-card, .product-card:first-child { padding: 1.5rem; }
    .closing-section { padding-block: 3.5rem; }
    .case-facts { grid-template-columns: 1fr 1fr; padding: 1.25rem; }
    .case-row { padding-block: 1.5rem; }
    .service-intro { padding-top: 2.5rem; }
    .compare-grid { gap: 0.75rem; }
    .page .scope-disclosure { padding: 1.25rem; }
    body > .footer { padding-inline: 0; }
}
