/* Shared presentation for front end and the native block editor. */
:root {
    --ink:#203c37;
    --paper:#f7f6f1;
    --muted:#53645e;
    --line:#d4dbd2;
    --accent:#9b4c32;
    --soft:#e9ede5
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:2rem
}
body {
    margin:0
}
a {
    text-underline-offset:.22em;
    text-decoration-thickness:1px
}
a:hover {
    color:var(--accent)
}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible {
    outline:3px solid var(--accent);
    outline-offset:5px
}
::selection {
    background:#dfe7d8;
    color:var(--ink)
}
.wp-site-blocks>* {
    margin-block-start:0
}
.site-main,.wp-block-post-content {
    margin:0
}
.wrap {
    width:min(1200px,calc(100% - 112px));
    margin-inline:auto
}
.section {
    padding-block:96px
}
.section>.wrap>*:first-child {
    margin-top:0
}
.section>.wrap>*:last-child {
    margin-bottom:0
}
.wp-block-group>*:first-child {
    margin-block-start:0
}
.wp-block-group>*:last-child {
    margin-block-end:0
}
p {
    margin-block:0 1.15rem
}
h1,h2,h3 {
    overflow-wrap:break-word;
    text-wrap:balance
}
h1 {
    font-size:clamp(3rem,5.1vw,5rem);
    letter-spacing:-.055em;
    margin-block:0 28px;
    max-width:1000px
}
h2 {
    font-size:clamp(2.2rem,3.4vw,3.35rem);
    letter-spacing:-.045em;
    margin-block:0 28px
}
h3 {
    font-size:1.6rem;
    letter-spacing:-.02em;
    margin-block:0 16px
}
.lead {
    font-size:1.22rem;
    line-height:1.65;
    color:var(--muted);
    max-width:670px
}
.eyebrow {
    font-size:.72rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    font-weight:650;
    color:var(--accent);
    margin-bottom:28px
}
.small {
    font-size:.875rem;
    color:var(--muted)
}
.section-intro {
    max-width:750px;
    color:var(--muted);
    margin-bottom:40px
}
.prose {
    max-width:620px
}
.prose p {
    color:var(--muted)
}
.text-link {
    margin-bottom:0;
    font-size:.97rem;
    font-weight:550
}
.text-link a {
    text-decoration:none;
    border-bottom:1px solid #abb7aa;
    padding-bottom:5px;
    display:inline-block
}
.text-link span {
    margin-left:14px;
    display:inline-block
}
.split {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px
}
.split>* {
    margin:0
}
.soft-section {
    background:var(--soft)
}
.wp-site-blocks>header.wp-block-template-part {
    position:sticky;
    top:0;
    z-index:10
}
.site-header {
    border-bottom:1px solid var(--line);
    background:var(--paper)
}
.header-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    min-height:84px;
    transition:min-height 180ms ease
}
.brand {
    margin:0;
    width:66px;
    flex-shrink:0;
    line-height:1;
    transition:width 180ms ease
}
.brand>a {
    display:block
}
.brand img {
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:173 / 167
}
.wp-block-navigation {
    font-size:.88rem;
    margin:0!important
}
.wp-block-navigation .wp-block-navigation-item__content {
    padding-block:10px
}
.wp-block-navigation__container {
    gap:30px
}
.wp-block-navigation-item.current-menu-item>a {
    border-bottom:1px solid var(--accent)
}
.wp-site-blocks>header.wp-block-template-part.is-compact .header-inner {
    min-height:59px
}
.wp-site-blocks>header.wp-block-template-part.is-compact .brand {
    width:52px
}
.home-hero {
    padding-block:100px 110px
}
.home-hero>.wrap {
    display:grid;
    grid-template-columns:1.7fr 1fr;
    gap:64px;
    align-items:center
}
.home-hero h1 {
    font-size:clamp(3.3rem,5.1vw,5rem)
}
.hero-copy .lead {
    max-width:580px
}
.hero-links {
    display:flex;
    gap:36px;
    margin-top:38px
}
.hero-aside {
    border-left:1px solid var(--line);
    padding:25px 0 25px 44px;
    margin:0!important
}
.hero-note {
    font-family:Georgia,serif;
    font-size:2rem;
    line-height:1.4;
    letter-spacing:-.02em
}
.hero-note em {
    color:var(--accent)
}
.hero-aside .small {
    margin-top:30px
}
.leadership-band {
    background:var(--ink);
    color:var(--paper)
}
.leadership-band .eyebrow {
    color:#d9b28e
}
.leadership-band p,.leadership-band a {
    color:#e1e7dd
}
.leadership-band h2 {
    font-size:clamp(2.3rem,3.4vw,3.4rem)
}
.leadership-band a:hover {
    color:white
}
.areas-overview {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:70px;
    margin-top:45px
}
.primary-area {
    background:var(--soft);
    padding:40px;
    align-self:start;
    border-top:3px solid var(--ink)
}
.primary-area h3 {
    font-size:2rem
}
.primary-area p:not(.eyebrow) {
    color:var(--muted)
}
.area-links {
    margin:0!important
}
.area-links .text-link {
    margin:0
}
.area-links a {
    display:flex;
    justify-content:space-between;
    border-color:var(--line);
    padding:19px 0
}
.area-links .text-link:first-child a {
    padding-top:0
}
.process-line {
    font-size:.96rem;
    color:var(--ink)!important;
    margin-block:24px
}
.product-section>.wrap {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:85px;
    align-items:center
}
.product-section {
    border-bottom:1px solid var(--line)
}
.product-name {
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    letter-spacing:.055em;
    font-weight:400;
    font-size:3rem
}
.product-panel {
    background:#e7ebed;
    border:1px solid #cdd6d9;
    min-height:310px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:48px;
    margin:0!important
}
.product-wordmark {
    font-size:2.6rem;
    letter-spacing:.13em;
    font-weight:300;
    color:#314956;
    margin:0
}
.product-caption {
    font-size:.9rem;
    color:#465d67;
    margin-top:12px
}
.product-panel .text-link {
    margin-top:48px
}
.clients {
    margin-top:60px;
    border-top:1px solid var(--line);
    padding-top:28px
}
.clients-intro {
    font-size:.91rem;
    color:var(--muted)
}
.clients-list {
    font-size:1.08rem;
    line-height:2.2
}
.clients-list span {
    color:#8b9689;
    padding-inline:12px
}
.contact-band {
    padding-block:64px;
    background:#e9e6dc
}
.contact-band>.wrap {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:40px
}
.contact-band h2 {
    font-size:2.1rem;
    margin-bottom:12px
}
.contact-band .text-link {
    white-space:nowrap;
    margin:0
}
.cta-copy p {
    font-size:.97rem;
    color:var(--muted)
}
.page-hero {
    padding-block:80px 86px;
    border-bottom:1px solid var(--line)
}
.page-hero .lead {
    max-width:740px
}
.area-detail {
    margin-top:50px
}
.area-row {
    display:grid;
    grid-template-columns:50px 1fr 1fr;
    gap:32px;
    border-top:1px solid var(--line);
    padding-block:32px;
    scroll-margin-top:30px
}
.area-row>* {
    margin:0
}
.area-row h3 {
    font-size:1.5rem
}
.area-row p:not(.eyebrow) {
    color:var(--muted)
}
.area-row p:nth-of-type(3) {
    grid-column:3
}
.method-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:32px;
    margin-block:46px
}
.method-step {
    margin:0!important;
    border-top:1px solid #b6c4b3;
    padding-top:24px
}
.method-step .eyebrow {
    margin-bottom:20px
}
.method-step p:not(.eyebrow) {
    font-size:.96rem;
    color:var(--muted)
}
.two-columns {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:70px
}
.example {
    margin:0!important
}
.example h3 {
    font-size:1.8rem
}
.example p {
    color:var(--muted)
}
.two-columns+.small {
    margin-top:30px
}
.product-preview {
    margin:0!important
}
.screenshot-placeholder {
    background:#e7ebed;
    border:1px dashed #8c9da6;
    padding:45px;
    min-height:330px;
    display:flex;
    flex-direction:column;
    justify-content:center
}
.screenshot-placeholder .eyebrow {
    color:#465d67
}
.placeholder-wordmark {
    font-size:2.2rem;
    letter-spacing:.09em;
    font-weight:300;
    color:#314956
}
.placeholder-caption {
    font-size:.85rem;
    color:#465d67;
    max-width:260px
}
.contact-layout>.wrap {
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:90px
}
.contact-info h2 {
    font-size:2rem
}
.contact-details {
    margin-block:36px;
    padding-block:24px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line)
}
.contact-details .eyebrow {
    margin-bottom:12px
}
.contact-details p:not(.eyebrow) {
    font-size:.94rem;
    color:var(--muted)
}
.contact-form-column {
    margin:0!important
}
.contact-preview h2 {
    font-size:2rem
}
.contact-preview label {
    display:block;
    font-size:.9rem;
    font-weight:600;
    margin-bottom:8px
}
.contact-preview label span {
    font-weight:400;
    color:var(--muted)
}
.contact-preview input,.contact-preview textarea {
    display:block;
    width:100%;
    border:1px solid #96a597;
    border-radius:0;
    padding:13px 15px;
    background:#fff;
    color:var(--ink);
    font:inherit;
    margin-bottom:24px
}
.contact-preview textarea {
    resize:vertical
}
.contact-preview button {
    font:inherit;
    background:var(--ink);
    color:var(--paper);
    border:1px solid var(--ink);
    padding:14px 25px;
    cursor:pointer
}
.contact-preview button:hover {
    background:#34564d
}
.form-note {
    font-size:.89rem;
    color:var(--muted);
    margin-bottom:30px
}
.contact-preview [role=status] {
    margin-top:18px;
    font-size:.94rem
}
.contact-preview [role=status]:empty {
    display:none
}
.privacy-copy {
    max-width:800px
}
.privacy-copy h2:not(:first-child) {
    margin-top:50px;
    font-size:2rem
}
.privacy-copy h3 {
    margin-top:34px;
    font-size:1.35rem
}
.privacy-copy ul {
    color:var(--muted);
    padding-left:1.25rem
}
.privacy-copy li+li {
    margin-top:.65rem
}
.privacy-settings {
    margin-top:34px;
    padding:26px;
    border:1px solid var(--line);
    background:var(--soft)
}
.privacy-settings h2 {
    margin-top:0!important
}
.privacy-settings-button {
    min-height:46px;
    padding:11px 18px;
    border:1px solid var(--ink);
    background:transparent;
    color:var(--ink);
    font:inherit;
    font-weight:600;
    cursor:pointer
}
.privacy-settings-button:hover {
    background:#dfe5da
}
.privacy-settings-status {
    margin-top:14px;
    color:var(--muted)
}
.ppbt-consent[hidden] {
    display:none
}
.ppbt-consent {
    position:fixed;
    z-index:100;
    right:max(16px,env(safe-area-inset-right));
    bottom:max(16px,env(safe-area-inset-bottom));
    width:min(720px,calc(100% - 32px));
    max-height:calc(100dvh - 32px);
    overflow:auto;
    padding:22px 24px;
    border:1px solid #aeb9ad;
    background:var(--paper);
    color:var(--ink);
    box-shadow:0 8px 28px rgba(32,60,55,.12)
}
.ppbt-consent[data-mode="first"] {
    width:min(700px,calc(100% - 32px));
    padding:20px 22px
}
.ppbt-consent[data-mode="first"] .ppbt-consent__copy {
    max-width:620px
}
.ppbt-consent__copy p {
    margin:0;
    font-size:.89rem;
    line-height:1.55;
    color:var(--muted)
}
.ppbt-consent__copy p+p {
    margin-top:8px
}
.ppbt-consent h2 {
    margin:0 0 8px;
    font-size:1.45rem;
    letter-spacing:-.02em
}
.ppbt-consent__status:empty {
    display:none
}
.ppbt-consent__status:not(:empty) {
    padding-top:3px;
    font-weight:600
}
.ppbt-consent__actions {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:17px
}
.ppbt-consent__actions button {
    min-height:46px;
    padding:10px 15px;
    border:1px solid var(--ink);
    background:transparent;
    color:var(--ink);
    font:inherit;
    font-size:.88rem;
    font-weight:600;
    cursor:pointer
}
.ppbt-consent__actions button:hover {
    background:var(--soft)
}
.ppbt-consent__actions [data-ppbt-consent-choice] {
    flex:1 1 220px
}
.ppbt-consent[data-mode="first"] .ppbt-consent__actions [data-ppbt-consent-choice] {
    flex:0 0 180px
}
.ppbt-consent__actions .ppbt-consent__close {
    flex:1 0 100%;
    border-color:transparent;
    text-decoration:underline;
    text-underline-offset:.22em;
    font-weight:500
}
.site-footer {
    background:#eff0e9;
    padding-block:14px;
    border-top:1px solid var(--line)
}
.footer-signature {
    display:grid;
    grid-template-columns:40px minmax(0,1fr) auto;
    align-items:center;
    gap:18px 24px
}
.footer-logo {
    width:40px;
    margin:0;
    line-height:1
}
.footer-logo a,.footer-logo img {
    display:block
}
.footer-logo img {
    width:100%;
    height:auto;
    aspect-ratio:173 / 167
}
.footer-meta {
    margin:0!important;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:4px 18px
}
.footer-company,.footer-email,.footer-privacy,.footer-product {
    margin:0;
    font-size:.875rem;
    color:var(--muted)
}
.footer-company {
    color:var(--ink)
}
.footer-meta a,.footer-product a {
    display:inline-block;
    padding-block:5px
}
@media(min-width:1500px) {
    .home-hero {
        padding-block:125px
    }
    .wrap {
        width:min(1200px,calc(100% - 140px))
    }
}
@media(max-width:1000px) {
    .wrap {
        width:calc(100% - 64px)
    }
    .section {
        padding-block:72px
    }
    .header-inner {
        min-height:82px
    }
    .brand {
        width:60px
    }
    .wp-site-blocks>header.wp-block-template-part.is-compact .header-inner {
        min-height:57px
    }
    .wp-site-blocks>header.wp-block-template-part.is-compact .brand {
        width:50px
    }
    .wp-block-navigation__container {
        gap:20px
    }
    .home-hero>.wrap {
        gap:32px;
        grid-template-columns:1.5fr 1fr
    }
    .hero-aside {
        padding-left:28px
    }
    .hero-note {
        font-size:1.65rem
    }
    .home-hero h1 {
        font-size:3.6rem
    }
    .split,.product-section>.wrap,.areas-overview {
        gap:40px
    }
    .method-grid {
        grid-template-columns:1fr 1fr
    }
    .contact-layout>.wrap {
        gap:45px
    }
    .two-columns {
        gap:40px
    }
}
@media(max-width:760px) {
    .wrap {
        width:calc(100% - 40px)
    }
    .section {
        padding-block:52px
    }
    .header-inner {
        min-height:68px
    }
    .brand {
        width:52px
    }
    .wp-site-blocks>header.wp-block-template-part.is-compact .header-inner {
        min-height:52px
    }
    .wp-site-blocks>header.wp-block-template-part.is-compact .brand {
        width:44px
    }
    .wp-block-navigation__responsive-container-open:not(.always-shown) {
        display:flex;
        align-items:center;
        justify-content:center;
        min-width:44px;
        min-height:44px;
        margin-right:-10px;
        padding:10px
    }
    .wp-block-navigation__responsive-container:not(.is-menu-open) {
        display:none!important
    }
    .wp-block-navigation__responsive-container.is-menu-open {
        padding:28px;
        background:var(--paper);
        color:var(--ink)
    }
    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
        align-items:flex-start;
        gap:18px;
        font-size:1.2rem
    }
    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
        align-items:flex-start;
        padding-top:60px
    }
    .wp-block-navigation__responsive-container-close {
        top:8px;
        right:0
    }
    .home-hero>.wrap,.split,.areas-overview,.product-section>.wrap,.contact-layout>.wrap,.two-columns {
        grid-template-columns:1fr;
        gap:30px
    }
    .home-hero h1,h1 {
        font-size:clamp(2.6rem,9vw,3.8rem);
        letter-spacing:-.05em
    }
    h2,.leadership-band h2 {
        font-size:2.3rem
    }
    .lead {
        font-size:1.08rem
    }
    .hero-aside {
        border-left:0;
        border-top:1px solid var(--line);
        padding:26px 0 0;
        display:none
    }
    .hero-links {
        flex-wrap:wrap;
        gap:22px;
        margin-top:30px
    }
    .hero-links .text-link {
        font-size:.9rem
    }
    .eyebrow {
        margin-bottom:22px
    }
    .primary-area {
        padding:28px
    }
    .areas-overview {
        margin-top:32px
    }
    .product-panel {
        min-height:260px;
        padding:32px
    }
    .product-wordmark {
        font-size:2.2rem
    }
    .product-name {
        font-size:2.7rem
    }
    .clients {
        margin-top:36px
    }
    .clients-list {
        font-size:1rem
    }
    .clients-list span {
        padding-inline:6px
    }
    .contact-band>.wrap {
        display:block
    }
    .contact-band h2 {
        font-size:2rem
    }
    .contact-band .text-link {
        margin-top:24px
    }
    .area-row {
        grid-template-columns:32px 1fr;
        gap:12px 18px
    }
    .area-row>p:not(.eyebrow) {
        grid-column:2
    }
    .area-row h3 {
        font-size:1.5rem
    }
    .method-grid {
        gap:30px 22px
    }
    .method-step h3 {
        font-size:1.5rem
    }
    .screenshot-placeholder {
        min-height:270px;
        padding:30px
    }
    .footer-signature {
        grid-template-columns:40px minmax(0,1fr);
        gap:8px 18px
    }
    .footer-product {
        grid-column:1 / -1;
        justify-self:start
    }
}
@media(max-width:480px) {
    .ppbt-consent,.ppbt-consent[data-mode="first"] {
        right:10px;
        bottom:10px;
        width:calc(100% - 20px);
        max-height:calc(100dvh - 20px);
        padding:16px
    }
    .ppbt-consent__copy p {
        font-size:.83rem
    }
    .ppbt-consent h2 {
        font-size:1.3rem
    }
    .ppbt-consent[data-mode="first"] .ppbt-consent__actions [data-ppbt-consent-choice] {
        flex:1 1 100%
    }
}
@media(max-width:380px) {
    .method-grid {
        grid-template-columns:1fr
    }
    .hero-links {
        gap:18px
    }
    .text-link {
        font-size:.9rem
    }
    .product-wordmark {
        font-size:1.9rem
    }
    .product-panel {
        padding:25px
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    .header-inner,.brand {
        transition:none
    }
}
/* Normalize core block gaps inside custom grids and flex rows. */
.wp-block-post-content > .section {
    margin-block-start: 0;
}
.hero-links > * {
    margin-block-start: 0;
}
.contact-preview > .small {
    margin-top: 20px;
}

/* Local illustration composition in the three editorial sections. */
.wp-block-image.ppbt-leadership-illustration {
    width:min(440px,100%);
    margin:36px auto 0;
    transform:translateX(12px)
}
.wp-block-image.ppbt-portrait-illustration {
    width:min(264px,100%);
    margin:44px auto 0;
    transform:translateX(-12px);
    opacity:.75
}
.wp-block-image.ppbt-method-illustration {
    width:min(320px,100%);
    margin:64px auto 0
}
.wp-block-image.ppbt-leadership-illustration img,
.wp-block-image.ppbt-portrait-illustration img,
.wp-block-image.ppbt-method-illustration img {
    display:block;
    width:100%;
    height:auto
}

/* Crop only the inline product preview; the core lightbox stays uncropped. */
.product-preview .ppbt-sivuluq-screenshot {
    margin:0;
    border:1px solid var(--line)
}
.product-preview .ppbt-sivuluq-screenshot img {
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    object-position:25% 0
}
/* Keep the complete application frame visible in the native lightbox. */
.wp-lightbox-overlay .lightbox-image-container:has(.ppbt-sivuluq-screenshot) {
    width:calc(100% - 48px);
    height:calc(100% - 96px);
    animation:none
}
.wp-lightbox-overlay .ppbt-sivuluq-screenshot img {
    min-width:0;
    min-height:0;
    width:100%;
    height:100%;
    object-fit:contain!important
}

.contact-preview input[type="hidden"] {
    display:none
}
