
:root {
    --pbx-bg: #f2efe8;
    --pbx-text: #111111;
    --pbx-muted: #686868;
    --pbx-line: rgba(17,17,17,.18);
}

.pbx-site-header,
.pbx-site-header * ,
.pbx-menu,
.pbx-menu * {
    box-sizing: border-box;
}

.pbx-site-header {
    position: relative;
    z-index: 10020;
    width: 100%;
    max-width: 1600px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 30px;
    color: var(--pbx-text);
    font-family:var(--pb-font-body, Arial, Helvetica, sans-serif);
}

#pb-contact-minimal > .pbx-site-header,
.pb-about-page > .pbx-site-header,
.pb-project-page > .pbx-site-header {
    padding: 30px 42px 0;
}

.pbx-brand-link {
    display: inline-flex;
    flex-direction: column;
    color: inherit;
    text-decoration: none;
    transition: opacity .25s ease;
}

.pbx-brand-link:hover { opacity: .58; }

.pbx-brand {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
}

.pbx-role {
    margin-top: 4px;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--pbx-muted);
}

.pbx-menu-trigger {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    margin: 0;
    padding: 5px 0 7px;
    background: transparent;
    color: inherit;
    font-family:var(--pb-font-body, Arial, Helvetica, sans-serif);
    cursor: pointer;
    touch-action: manipulation;
}

.pbx-menu-trigger-inner {
    display: flex;
    align-items: center;
    gap: 12px;
}

.pbx-menu-trigger-word {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .17em;
    text-transform: uppercase;
}

.pbx-menu-trigger-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
}

body.pbx-menu-open { overflow: hidden; }

.pbx-menu {
    position: fixed;
    inset: 0;
    z-index: 10000;
    width: 100vw;
    min-height: 100vh;
    min-height: 100dvh;
    background: var(--pbx-bg);
    color: var(--pbx-text);
    font-family:var(--pb-font-body, Arial, Helvetica, sans-serif);
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity .32s ease, visibility 0s linear .32s;
}

.pbx-menu.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transition: opacity .32s ease, visibility 0s;
}

.pbx-menu-line {
    position: absolute;
    top: 94px;
    left: 42px;
    right: 42px;
    height: 1px;
    background: var(--pbx-line);
}

.pbx-menu-inner {
    width: 100%;
    max-width: 1600px;
    min-height: 100vh;
    min-height: 100dvh;
    margin: 0 auto;
    padding: 145px 42px 75px;
    display: grid;
    grid-template-columns: minmax(230px,.48fr) minmax(580px,1.52fr);
    gap: clamp(70px,9vw,160px);
}

.pbx-menu-left {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.pbx-menu-eyebrow {
    margin-bottom: 30px;
    font-size: 9px;
    letter-spacing: .17em;
    text-transform: uppercase;
    color: var(--pbx-muted);
}

.pbx-menu-copy {
    max-width: 300px;
    font-family:var(--pb-font-accent, Georgia, "Times New Roman", serif);
    font-size: clamp(20px,1.8vw,28px);
    line-height: 1.1;
    letter-spacing: -.025em;
}

.pbx-menu-location {
    font-size: 9px;
    line-height: 1.7;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--pbx-muted);
}

.pbx-menu-nav { width: 100%; align-self: center; }

.pbx-menu-item,
.pbx-menu-item:link,
.pbx-menu-item:visited {
    position: relative;
    width: 100%;
    min-height: clamp(105px,10vw,160px);
    padding: 18px 0;
    display: grid;
    grid-template-columns: 45px minmax(0,1fr) auto;
    align-items: baseline;
    gap: 20px;
    border-bottom: 1px solid var(--pbx-line);
    color: var(--pbx-text);
    text-decoration: none;
    overflow: hidden;
    opacity: 1 !important;
    visibility: visible !important;
}

.pbx-menu-item:first-child { border-top: 1px solid var(--pbx-line); }

.pbx-menu-number {
    position: relative;
    z-index: 2;
    font-size: 9px;
    letter-spacing: .15em;
    color: var(--pbx-muted);
}

.pbx-menu-title {
    position: relative;
    z-index: 2;
    display: block;
    font-size: clamp(60px,7.5vw,125px);
    line-height: .82;
    letter-spacing: -.068em;
    text-transform: uppercase;
    transition: transform .35s cubic-bezier(.2,.8,.2,1);
}

.pbx-menu-arrow {
    position: relative;
    z-index: 2;
    font-size: 19px;
    opacity: .28;
    transition: transform .35s ease, opacity .35s ease;
}

.pbx-menu-bg {
    position: absolute;
    right: 6%;
    top: 50%;
    transform: translateY(-50%);
    font-family:var(--pb-font-accent, Georgia, "Times New Roman", serif);
    font-size: clamp(45px,6vw,100px);
    font-style: italic;
    letter-spacing: -.05em;
    color: rgba(17,17,17,.07);
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease, transform .45s ease;
}

@media (hover:hover) and (pointer:fine) {
    .pbx-menu-item:hover .pbx-menu-title { transform: translateX(14px); }
    .pbx-menu-item:hover .pbx-menu-arrow { opacity: 1; transform: translate(3px,-3px); }
    .pbx-menu-item:hover .pbx-menu-bg { opacity: 1; transform: translate(-14px,-50%); }
}

.pbx-menu-footer {
    position: absolute;
    left: 42px;
    right: 42px;
    bottom: 27px;
    display: flex;
    justify-content: space-between;
    gap: 30px;
    font-size: 9px;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: #777;
}

/* Basic editable About starter */
.pb-about-page,
.pb-project-page {
    min-height: 100vh;
    background: var(--pbx-bg);
    color: var(--pbx-text);
    font-family:var(--pb-font-body, Arial, Helvetica, sans-serif);
}

.pb-about-main,
.pb-project-main {
    width: min(1600px, calc(100% - 84px));
    margin: 0 auto;
}

.pb-about-hero {
    min-height: 72vh;
    padding: 16vh 0 8vh;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.pb-about-kicker,
.pb-project-kicker {
    margin-bottom: 28px;
    font-size: 9px;
    letter-spacing: .17em;
    text-transform: uppercase;
    color: var(--pbx-muted);
}

.pb-about-title,
.pb-project-title-main {
    max-width: 1200px;
    margin: 0;
    font-size: clamp(58px,8vw,138px);
    line-height: .84;
    letter-spacing: -.065em;
    text-transform: uppercase;
}

.pb-about-title em,
.pb-project-title-main em {
    font-family:var(--pb-font-accent, Georgia, "Times New Roman", serif);
    font-weight: 400;
    font-style: italic;
    text-transform: none;
}

.pb-about-content,
.pb-project-content {
    padding: 90px 0 140px;
    border-top: 1px solid var(--pbx-line);
    font-family:var(--pb-font-accent, Georgia, "Times New Roman", serif);
    font-size: clamp(22px,2vw,34px);
    line-height: 1.35;
}

.pb-about-content > *,
.pb-project-content > * { max-width: 980px; }

.pb-project-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 34px;
    margin: 34px 0 0;
    font-size: 9px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--pbx-muted);
}

.pb-project-hero-image {
    width: 100%;
    margin: 55px 0 0;
}

.pb-project-hero-image img { display: block; width: 100%; height: auto; }

.pb-project-next {
    padding: 80px 0 120px;
    border-top: 1px solid var(--pbx-line);
}

.pb-project-next a {
    color: inherit;
    text-decoration: none;
    font-size: clamp(38px,5vw,82px);
    letter-spacing: -.05em;
}

@media (max-width:700px) {
    #pb-contact-minimal > .pbx-site-header,
    .pb-about-page > .pbx-site-header,
    .pb-project-page > .pbx-site-header { padding: 22px 20px 0; }

    .pbx-menu-line { top: 84px; left: 20px; right: 20px; }
    .pbx-menu { overflow-y: auto; }
    .pbx-menu-inner {
        min-height: 100dvh;
        padding: 115px 20px 120px;
        grid-template-columns: 1fr;
        gap: 45px;
    }
    .pbx-menu-nav { order: 1; }
    .pbx-menu-left { order: 2; gap: 45px; }
    .pbx-menu-item { min-height: auto; padding: 20px 0; grid-template-columns: 30px minmax(0,1fr) auto; gap: 10px; }
    .pbx-menu-title { font-size: 13.5vw; }
    .pbx-menu-bg { display: none; }
    .pbx-menu-footer { left: 20px; right: 20px; bottom: 22px; }
    .pb-about-main,.pb-project-main { width: calc(100% - 40px); }
    .pb-about-hero { min-height: 64vh; }
}

/* V2.5 — restored editorial menu statements from the approved HTML direction. */
.pbx-menu{--pb-menu-statement-speed:580ms;--pb-menu-statement-distance:30px;--pb-menu-statement-opacity:.10}
.pbx-menu-title{transition:transform calc(var(--pb-menu-statement-speed) * .72) cubic-bezier(.16,.84,.24,1)}
.pbx-menu-arrow{transition:transform calc(var(--pb-menu-statement-speed) * .65) cubic-bezier(.16,.84,.24,1),opacity calc(var(--pb-menu-statement-speed) * .55) ease}
.pbx-menu-bg{
  right:4%;
  max-width:58%;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:clip;
  color:var(--pbx-text);
  opacity:0;
  transform:translate(var(--pb-menu-statement-distance),-50%);
  transition:opacity var(--pb-menu-statement-speed) ease,transform var(--pb-menu-statement-speed) cubic-bezier(.16,.84,.24,1);
}
@media(hover:hover) and (pointer:fine){
  .pbx-menu-item:hover .pbx-menu-title,.pbx-menu-item:focus-visible .pbx-menu-title{transform:translateX(0)}
  .pbx-menu-item:hover .pbx-menu-arrow,.pbx-menu-item:focus-visible .pbx-menu-arrow{opacity:.8;transform:translate(3px,-3px)}
  .pbx-menu-item:hover .pbx-menu-bg,.pbx-menu-item:focus-visible .pbx-menu-bg{opacity:var(--pb-menu-statement-opacity);transform:translate(0,-50%)}
}
.pbx-menu-item:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
@media(max-width:760px){
  .pbx-menu-bg{display:block;position:static;grid-column:2;grid-row:2;max-width:none;margin-top:7px;font-size:clamp(18px,5vw,26px);line-height:1;font-family:var(--pb-font-accent,Georgia,"Times New Roman",serif);font-style:italic;text-transform:none;letter-spacing:-.025em;color:var(--pbx-muted);opacity:.48;transform:none;white-space:normal;transition:none}
  .pbx-menu-item{grid-template-rows:auto auto;align-items:center}
  .pbx-menu-title{grid-column:2;grid-row:1}
  .pbx-menu-arrow{grid-column:3;grid-row:1/span 2}
  .pbx-menu-number{grid-column:1;grid-row:1/span 2}
}
@media(prefers-reduced-motion:reduce){.pbx-menu-bg,.pbx-menu-title,.pbx-menu-arrow{transition:none!important}}

/* V3 thin shell */
.pbv-content-v3{min-height:60vh;overflow:clip}
.pbv-footer-global{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;padding:18px var(--pb-gutter,42px) 28px;border-top:1px solid rgba(17,17,17,.16);font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--pb-design-muted,#686868)}
.pbv-footer-global span:nth-child(2){text-align:center}.pbv-footer-global a{justify-self:end;color:inherit!important;text-decoration:none}
@media(max-width:700px){.pbv-footer-global{grid-template-columns:1fr;gap:8px;padding-left:20px;padding-right:20px}.pbv-footer-global span:nth-child(2){text-align:left}.pbv-footer-global a{justify-self:start}}

/* V3.0 shell normalization: every Gutenberg page starts from the same stable canvas. */
html{background:#f2efe8;color:#111}
body.philbeis-v3{margin:0;background:var(--pb-design-bg,#f2efe8);color:var(--pb-design-text,#111);font-family:var(--pb-font-body,Arial,Helvetica,sans-serif);overflow-x:hidden}
body.philbeis-v3 *,body.philbeis-v3 *::before,body.philbeis-v3 *::after{box-sizing:border-box}
body.philbeis-v3 .pbx-site-header{position:relative;padding:30px var(--pb-gutter,42px) 0}
@media(max-width:700px){body.philbeis-v3 .pbx-site-header{padding:22px 20px 0}}

/* V3.0.1 shell fixes ------------------------------------------------------ */
/* The fullscreen menu is the only visible primary navigation. The old
   inline fallback must never appear next to the menu trigger. */
.pbx-inline-nav{display:none!important}

/* Responsive custom logo bounds. Preserve the uploaded artwork's aspect ratio. */
.pbx-brand-link{width:max-content;max-width:clamp(118px,11vw,180px)}
.pbx-logo{display:block;width:auto;height:auto;max-width:100%;max-height:58px;object-fit:contain;object-position:left center}
@media(max-width:700px){
  .pbx-brand-link{max-width:125px}
  .pbx-logo{max-height:44px}
}
