/*
 * Pride in Place Gloucester
 * Original visual system with a confident, rounded overlay navigation and a
 * controlled editorial layout. Edit content in WordPress; do not edit layout
 * fields in a page builder.
 */
:root{--pip-ink:#111926;--pip-paper:#edf2f4;--pip-accent:#ff5a4f;--pip-leaf:#94c973;--pip-muted:#70808a;--pip-line:rgba(17,25,38,.16);--pip-radius:28px;--pip-shell:min(1360px,calc(100vw - 48px));--pip-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--pip-paper);color:var(--pip-ink);font-family:var(--pip-font);font-size:16px;line-height:1.5}body.pip-menu-is-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:auto;object-fit:cover}.pip-shell{width:var(--pip-shell);margin-inline:auto}.pip-site-main{overflow:hidden}.pip-skip-link{position:fixed;z-index:9999;left:12px;top:-56px;padding:10px 15px;border-radius:10px;background:#fff;color:var(--pip-ink);transition:top .2s}.pip-skip-link:focus{top:12px}.pip-kicker{margin:0 0 16px;color:currentColor;font-size:11px;font-weight:800;letter-spacing:.12em;line-height:1.2;text-transform:uppercase}.pip-section{padding-block:clamp(76px,11vw,170px)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:750;letter-spacing:-.065em;line-height:.93}h1{font-size:clamp(55px,10vw,142px);max-width:1060px}h2{font-size:clamp(40px,6vw,86px);max-width:820px}h3{font-size:clamp(25px,2.7vw,40px)}.pip-prose{font-size:clamp(17px,1.35vw,21px);line-height:1.55}.pip-prose>*>:first-child{margin-top:0}.pip-prose a{text-decoration:underline;text-underline-offset:3px}.pip-button,.pip-header-cta{align-items:center;background:var(--pip-ink);border:1px solid var(--pip-ink);border-radius:999px;color:#fff;display:inline-flex;gap:22px;justify-content:space-between;min-height:52px;padding:7px 9px 7px 21px;font-size:14px;font-weight:750;line-height:1;text-decoration:none;transition:transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease}.pip-button:hover,.pip-header-cta:hover{transform:translateY(-2px);background:var(--pip-accent);border-color:var(--pip-accent)}.pip-button__arrow{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#fff;color:var(--pip-ink);font-size:18px}.pip-button--ghost{background:transparent;border-color:currentColor;color:inherit}.pip-button--ghost .pip-button__arrow{background:var(--pip-ink);color:#fff}.pip-button--light{background:var(--pip-paper);border-color:var(--pip-paper);color:var(--pip-ink)}.pip-text-link{border-bottom:1px solid currentColor;display:inline-flex;gap:10px;align-items:center;padding:6px 0;font-size:14px;font-weight:800;transition:gap .2s}.pip-text-link:hover{gap:16px}.pip-site-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:18px 24px;pointer-events:none;transition:padding .25s}.pip-site-header--scrolled{padding-top:10px}.pip-header-shell{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-inline:auto;width:min(1360px,100%);pointer-events:auto}.pip-wordmark{max-width:270px;color:var(--pip-ink);display:flex;flex-direction:column;gap:2px;font-size:15px;font-weight:800;line-height:1}.pip-wordmark img{max-width:205px;max-height:54px;width:auto}.pip-wordmark__main{letter-spacing:-.06em;font-size:23px}.pip-wordmark__sub{font-size:9px;letter-spacing:.08em;text-transform:uppercase}.pip-header-actions{display:flex;gap:10px;align-items:center}.pip-header-cta{background:rgba(237,242,244,.94);border-color:rgba(237,242,244,.94);color:var(--pip-ink);padding-left:18px;backdrop-filter:blur(14px)}.pip-header-cta .pip-button__arrow{background:var(--pip-ink);color:#fff}.pip-menu-trigger{align-items:center;display:flex;gap:14px;background:var(--pip-ink);border:0;border-radius:999px;color:#fff;cursor:pointer;min-height:54px;padding:7px 9px 7px 17px;font:inherit;font-weight:750;font-size:14px;transition:transform .25s,background .25s}.pip-menu-trigger:hover{transform:translateY(-2px);background:var(--pip-accent)}.pip-menu-trigger__dots{display:flex;align-items:center;justify-content:center;gap:3px;width:37px;height:37px;background:rgba(255,255,255,.1);border-radius:50%}.pip-menu-trigger__dots i{display:block;width:4px;height:4px;border-radius:50%;background:currentColor}.pip-menu-overlay{position:fixed;inset:0;z-index:1500;overflow:hidden;background:var(--pip-paper);visibility:hidden;pointer-events:none}.pip-menu-overlay[aria-hidden="false"]{visibility:visible;pointer-events:auto}.pip-menu-stage{position:absolute;inset:0;overflow:hidden;background:var(--pip-paper);opacity:0;transition:opacity .25s ease}.pip-menu-overlay[aria-hidden="false"] .pip-menu-stage{opacity:1}.pip-menu-stage__stripes{position:absolute;inset:-8%;background:repeating-linear-gradient(90deg,var(--pip-ink) 0 4.5vw,transparent 4.5vw 8.5vw);opacity:1;transform:rotate(-11deg) scale(1.2)}.pip-menu-stage__stripes:after{content:"";position:absolute;width:min(80vw,1020px);aspect-ratio:1;border-radius:50%;left:50%;top:48%;transform:translate(-50%,-50%);background:var(--pip-paper)}.pip-menu-stage__word{position:absolute;left:50%;top:49%;z-index:1;color:var(--pip-paper);font-size:clamp(185px,34vw,580px);font-weight:800;letter-spacing:-.13em;line-height:.72;transform:translate(-50%,-50%) rotate(-5deg);white-space:nowrap;mix-blend-mode:normal;opacity:.98}.pip-menu-orbit{position:absolute;z-index:3;left:clamp(-118px,-6vw,-24px);top:19%;width:clamp(245px,31vw,510px);aspect-ratio:1;margin:0;border-radius:50%;overflow:hidden;background:var(--pip-ink);box-shadow:0 30px 80px rgba(17,25,38,.26);transform:rotate(-13deg) scale(.72);opacity:0;transition:transform .8s cubic-bezier(.15,.86,.18,1),opacity .35s ease}.pip-menu-overlay[aria-hidden="false"] .pip-menu-orbit{opacity:1;transform:rotate(7deg) scale(1)}.pip-menu-orbit img{height:100%;object-fit:cover}.pip-menu-rail{position:absolute;z-index:6;top:clamp(10px,2vw,26px);left:clamp(10px,2vw,28px);right:clamp(10px,2vw,28px);display:flex;align-items:center;justify-content:space-between;gap:14px;opacity:0;transform:translateY(-16px);transition:opacity .22s ease .12s,transform .36s cubic-bezier(.18,.8,.22,1) .12s}.pip-menu-overlay[aria-hidden="false"] .pip-menu-rail{opacity:1;transform:translateY(0)}.pip-menu-chat,.pip-menu-rail__close{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;min-height:56px;border:0;border-radius:999px;padding:7px 9px 7px 21px;font:inherit;font-size:14px;font-weight:800;letter-spacing:-.03em;text-transform:uppercase;cursor:pointer}.pip-menu-chat{background:rgba(237,242,244,.97);color:var(--pip-ink);box-shadow:0 8px 28px rgba(17,25,38,.12)}.pip-menu-chat__icon{display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:#fff;border:1px solid rgba(17,25,38,.12)}.pip-menu-chat__icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.pip-menu-rail__close{background:var(--pip-ink);color:#fff;min-width:151px}.pip-menu-rail__close .pip-menu-trigger__dots{width:39px;height:39px;background:rgba(255,255,255,.1)}.pip-menu-panel{position:absolute;z-index:5;left:50%;top:52%;width:min(510px,calc(100vw - 40px));min-height:clamp(425px,64vh,610px);padding:clamp(56px,6vw,78px) clamp(34px,5vw,65px) clamp(38px,4vw,54px);border-radius:31px;background:#dce4e8;color:var(--pip-ink);box-shadow:0 34px 90px rgba(17,25,38,.24);opacity:0;transform:translate(-50%,-50%) translateY(-72px) rotate(-8deg) scale(.82);transform-origin:50% 0;transition:opacity .26s ease,transform .42s cubic-bezier(.25,.77,.24,1)}.pip-menu-overlay[aria-hidden="false"] .pip-menu-panel{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1);animation:pip-menu-swing-in .82s cubic-bezier(.18,.82,.22,1) both}.pip-overlay-nav{display:flex;min-height:100%;align-items:center}.pip-overlay-nav__list{width:100%;list-style:none;margin:0;padding:0}.pip-overlay-nav__list li{overflow:hidden}.pip-overlay-nav__list a{display:inline-block;padding:clamp(6px,1.05vw,10px) 0;font-size:clamp(48px,6.65vw,84px);font-weight:780;letter-spacing:-.09em;line-height:.93;transition:transform .28s cubic-bezier(.18,.8,.22,1),color .24s ease}.pip-overlay-nav__list a:hover,.pip-overlay-nav__list .current-menu-item>a,.pip-overlay-nav__list .current_page_item>a{color:rgba(17,25,38,.32);transform:translateX(9px)}.pip-menu-panel__note{position:absolute;left:clamp(34px,5vw,65px);right:clamp(34px,5vw,65px);bottom:clamp(24px,3vw,35px);display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding-top:14px;border-top:1px solid rgba(17,25,38,.14);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.pip-menu-panel__note span{font-weight:800}.pip-menu-panel__note strong{font-size:10px;letter-spacing:.02em;text-transform:none}.pip-menu-panel__note p{margin:0;flex:1 1 100%;font-size:11px;line-height:1.35;letter-spacing:0;text-transform:none}.pip-menu-panel__link{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:800;letter-spacing:.02em;text-transform:none;text-decoration:underline;text-underline-offset:4px}.pip-menu-panel__link .pip-button__arrow{display:none}@keyframes pip-menu-swing-in{0%{opacity:0;transform:translate(-50%,-50%) translateY(-108px) rotate(-10deg) scale(.78)}48%{opacity:1;transform:translate(-50%,-50%) translateY(11px) rotate(2.4deg) scale(1.015)}71%{transform:translate(-50%,-50%) translateY(-5px) rotate(-.9deg) scale(.995)}100%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1)}}.pip-hero{position:relative;display:flex;align-items:flex-end;min-height:100svh;padding-top:130px;background:var(--pip-paper);isolation:isolate}.pip-hero__media,.pip-hero__overlay{position:absolute;inset:0;z-index:-2}.pip-hero__media img{width:100%;height:100%;object-position:var(--pip-hero-object-position,center)}.pip-hero__overlay{z-index:-1;background:linear-gradient(90deg,rgba(17,25,38,.82) 0%,rgba(17,25,38,.31) 57%,rgba(17,25,38,.1) 100%);opacity:var(--pip-hero-overlay-opacity,1)}.pip-hero:not(.pip-hero--has-media){background:radial-gradient(circle at 74% 35%,var(--pip-leaf),transparent 0 31%),var(--pip-paper)}.pip-hero__content{display:grid;grid-template-columns:1fr auto;gap:48px;padding-bottom:36px;color:var(--pip-ink)}.pip-hero--has-media .pip-hero__content{color:#fff}.pip-hero__lead{max-width:1060px}.pip-hero__lead .pip-kicker{margin-bottom:25px}.pip-hero__lead h1{margin-bottom:28px}.pip-hero__copy{max-width:550px;margin-bottom:28px;font-size:clamp(18px,1.6vw,24px);line-height:1.35}.pip-hero__actions{display:flex;flex-wrap:wrap;gap:11px}.pip-hero__note{align-self:end;max-width:180px;margin:0;font-size:11px;font-weight:650;line-height:1.4;text-align:right}.pip-intro{display:grid;grid-template-columns:minmax(0,.9fr) minmax(350px,.8fr);align-items:center;gap:clamp(50px,9vw,150px)}.pip-intro__copy h2{margin-bottom:27px}.pip-intro__copy .pip-prose{max-width:600px}.pip-intro__copy .pip-text-link{margin-top:20px}.pip-intro__media{aspect-ratio:4/5;border-radius:var(--pip-radius);overflow:hidden;background:var(--pip-leaf)}.pip-intro__media img{height:100%}.pip-media-placeholder{display:grid;place-items:center;min-height:100%;padding:20px;background:linear-gradient(135deg,var(--pip-leaf),var(--pip-accent));color:var(--pip-ink);text-align:center;font-size:13px;font-weight:750}.pip-priorities{background:var(--pip-ink);color:#fff}.pip-section-head{display:flex;flex-direction:column;gap:0;margin-bottom:54px}.pip-section-head h2{margin:0}.pip-section-head--row{display:flex;flex-direction:row;align-items:end;justify-content:space-between;gap:24px}.pip-section-head--small{margin-bottom:25px}.pip-section-head--small h2{font-size:clamp(32px,4vw,55px)}.pip-priority-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.pip-priority-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.85fr);min-height:360px;border:1px solid rgba(255,255,255,.17);border-radius:22px;overflow:hidden;background:#1d2835;transition:transform .35s ease,border-color .35s}.pip-priority-card:hover{transform:translateY(-6px);border-color:var(--pip-leaf)}.pip-priority-card__media{height:100%;background:#2a3440}.pip-priority-card__media img{height:100%}.pip-priority-card__body{display:flex;flex-direction:column;padding:25px}.pip-priority-card__body>span{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--pip-leaf)}.pip-priority-card__body h3{margin:36px 0 13px}.pip-priority-card__body p{margin-bottom:20px;font-size:14px;line-height:1.45}.pip-priority-card__body .pip-text-link{margin-top:auto;align-self:flex-start;color:#fff}.pip-empty-note{border:1px dashed currentColor;border-radius:15px;padding:18px;font-size:13px;opacity:.7}.pip-empty-note p{margin:0}.pip-statement{position:relative;padding-block:clamp(100px,14vw,230px);background:var(--pip-leaf);color:var(--pip-ink);overflow:hidden}.pip-statement--image{background-size:cover;background-position:center}.pip-statement__wash{position:absolute;inset:0;background:rgba(148,201,115,.85)}.pip-statement__inner{position:relative;max-width:1100px}.pip-statement__inner p{margin:0 0 34px;font-size:clamp(44px,7vw,104px);font-weight:750;letter-spacing:-.075em;line-height:.93}.pip-statement__inner span{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.pip-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.pip-project-card{border-radius:20px;background:#dce4e8;overflow:hidden;transition:transform .3s ease,box-shadow .3s}.pip-project-card:hover{transform:translateY(-6px);box-shadow:0 15px 28px rgba(17,25,38,.12)}.pip-project-card:nth-child(2n){background:var(--pip-leaf)}.pip-project-card:nth-child(3n){background:#ffd664}.pip-project-card__media{aspect-ratio:1/1.06;background:#c7d0d5;overflow:hidden}.pip-project-card__media img{height:100%;transition:transform .55s}.pip-project-card:hover .pip-project-card__media img{transform:scale(1.055)}.pip-project-card__body{position:relative;padding:19px 50px 20px 20px;min-height:130px}.pip-project-card__body span{display:block;margin-bottom:26px;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.pip-project-card__body h3{margin:0;font-size:clamp(25px,2.3vw,36px)}.pip-project-card__body b{position:absolute;right:18px;bottom:20px;font-size:21px}.pip-text-link--mobile{display:none}.pip-updates{display:grid;grid-template-columns:1fr 1fr;gap:clamp(44px,8vw,128px);border-top:1px solid var(--pip-line)}.pip-story-list,.pip-event-list{border-top:1px solid var(--pip-line)}.pip-story-row{display:grid;grid-template-columns:86px minmax(85px,.3fr) minmax(0,1fr) 24px;align-items:center;gap:16px;border-bottom:1px solid var(--pip-line);padding:13px 0;transition:padding .25s}.pip-story-row:hover{padding-inline:8px}.pip-story-row>div{height:74px;border-radius:8px;background:#c7d0d5;overflow:hidden}.pip-story-row img{height:100%}.pip-story-row>span{font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.pip-story-row strong{font-size:18px;line-height:1.15}.pip-story-row b,.pip-event-row b{font-size:18px}.pip-event-row{display:grid;grid-template-columns:70px minmax(0,1fr) 25px;gap:18px;align-items:center;border-bottom:1px solid var(--pip-line);padding:20px 0;transition:padding .25s}.pip-event-row:hover{padding-inline:8px}.pip-event-row__date{font-size:14px;font-weight:850;line-height:1;text-transform:uppercase}.pip-event-row strong{display:block;margin-bottom:5px;font-size:20px;letter-spacing:-.035em;line-height:1.1}.pip-event-row small{display:block;color:var(--pip-muted);font-size:12px;line-height:1.35}.pip-final-cta{background:var(--pip-accent);color:var(--pip-ink)}.pip-final-cta__grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(300px,.78fr);gap:clamp(50px,10vw,140px);align-items:center}.pip-final-cta__copy h2{margin-bottom:25px}.pip-final-cta__copy>p:not(.pip-kicker){max-width:550px;margin-bottom:30px;font-size:19px}.pip-final-cta__media{height:530px;border-radius:var(--pip-radius);overflow:hidden;background:var(--pip-leaf)}.pip-final-cta__media img{height:100%}.pip-site-footer{background:var(--pip-ink);color:#fff}.pip-footer-cta{display:flex;align-items:end;justify-content:space-between;gap:35px;padding-block:clamp(66px,9vw,125px);border-bottom:1px solid rgba(255,255,255,.18)}.pip-footer-cta .pip-kicker{color:var(--pip-leaf)}.pip-footer-cta h2{max-width:750px;margin:0}.pip-footer-cta__copy{max-width:500px;margin:20px 0 0;color:rgba(255,255,255,.74)}.pip-footer-main{display:grid;grid-template-columns:1.4fr 1fr 1.2fr .7fr;gap:30px;padding-block:50px}.pip-footer-brand>a{font-size:28px;font-weight:800;letter-spacing:-.07em}.pip-footer-brand p{margin-top:7px;color:rgba(255,255,255,.6);font-size:12px}.pip-footer-label{margin-bottom:15px;color:var(--pip-leaf);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.pip-footer-menu,.pip-footer-social ul{list-style:none;margin:0;padding:0}.pip-footer-menu li,.pip-footer-social li{margin-bottom:8px}.pip-footer-menu a,.pip-footer-social a,.pip-footer-contact a{font-size:14px;font-weight:650}.pip-footer-menu a:hover,.pip-footer-social a:hover,.pip-footer-contact a:hover{text-decoration:underline;text-underline-offset:3px}.pip-footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.pip-footer-contact p{margin:4px 0 0;color:rgba(255,255,255,.65);font-size:13px}.pip-footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-block:18px;border-top:1px solid rgba(255,255,255,.18);font-size:11px;color:rgba(255,255,255,.65)}.pip-footer-bottom a{color:#fff}.pip-page-hero{position:relative;display:flex;align-items:end;min-height:620px;padding-top:160px;padding-bottom:70px;background:var(--pip-paper);overflow:hidden}.pip-page-hero--media{color:#fff}.pip-page-hero__media,.pip-page-hero__wash{position:absolute;inset:0;z-index:-2}.pip-page-hero__media img{height:100%}.pip-page-hero__wash{z-index:-1;background:linear-gradient(90deg,rgba(17,25,38,.85),rgba(17,25,38,.2))}.pip-page-hero__content>p:not(.pip-kicker){max-width:600px;margin-bottom:28px;font-size:20px}.pip-page-editor{padding-block:80px;max-width:min(840px,calc(100vw - 48px))}.pip-content-panel{padding-block:clamp(65px,10vw,140px)}.pip-content-panel--dark{background:var(--pip-ink);color:#fff}.pip-content-panel--accent{background:var(--pip-leaf)}.pip-content-panel__grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(350px,.8fr);align-items:center;gap:clamp(44px,10vw,150px)}.pip-content-panel__grid--left .pip-content-panel__media{order:-1}.pip-content-panel__copy h2{margin-bottom:24px}.pip-content-panel__copy .pip-text-link{margin-top:17px}.pip-content-panel__media{aspect-ratio:4/5;border-radius:var(--pip-radius);overflow:hidden;background:#c7d0d5}.pip-content-panel__media img{height:100%}.pip-record-hero{display:grid;grid-template-columns:minmax(0,.84fr) minmax(450px,1.16fr);min-height:760px;padding-top:120px;background:var(--pip-ink);color:#fff}.pip-record-hero__content{align-self:center;padding-block:90px}.pip-record-hero__content h1{margin-bottom:25px}.pip-record-hero__content>p:not(.pip-kicker){max-width:580px;margin-bottom:30px;font-size:20px}.pip-record-hero__media{min-height:100%;overflow:hidden}.pip-record-hero__media img{height:100%}.pip-meta-list{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}.pip-meta-list li{border:1px solid rgba(255,255,255,.34);border-radius:999px;padding:7px 12px;font-size:12px}.pip-highlights{padding-block:56px}.pip-highlights__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.pip-highlights__grid>div{padding:20px;border:1px solid var(--pip-line);border-radius:15px}.pip-highlights__grid strong{display:block;margin-bottom:5px;font-size:clamp(28px,3.5vw,50px);letter-spacing:-.07em;line-height:1}.pip-highlights__grid span{font-size:12px;color:var(--pip-muted)}.pip-record-content{padding-block:clamp(70px,9vw,130px);max-width:min(820px,calc(100vw - 48px))}.pip-record-content .pip-button{margin-top:24px}.pip-gallery{padding-bottom:clamp(70px,9vw,130px)}.pip-gallery__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.pip-gallery figure{grid-column:span 5;margin:0;border-radius:15px;overflow:hidden;min-height:260px}.pip-gallery figure:nth-child(3n+2){grid-column:span 7}.pip-gallery figure img{height:100%}.pip-story-single__hero{padding-top:180px;padding-bottom:64px;max-width:min(1050px,calc(100vw - 48px))}.pip-story-single__hero h1{max-width:980px;margin-bottom:24px}.pip-story-single__hero>p:not(.pip-kicker){max-width:680px;font-size:22px}.pip-story-single__meta{display:flex;gap:15px;margin-top:24px;color:var(--pip-muted);font-size:12px}.pip-story-single__image{margin-top:55px;border-radius:var(--pip-radius);overflow:hidden;aspect-ratio:1.6/1}.pip-story-single__image img{height:100%}.pip-event-single{padding-top:150px;padding-bottom:110px}.pip-event-single__hero{display:grid;grid-template-columns:.9fr 1fr;gap:clamp(50px,9vw,130px);align-items:center}.pip-event-single__hero h1{margin-bottom:25px}.pip-event-single__hero>div>p:not(.pip-kicker){font-size:20px}.pip-event-single__hero>div:last-child{aspect-ratio:4/5;border-radius:var(--pip-radius);overflow:hidden;background:var(--pip-leaf)}.pip-event-single__hero img{height:100%}.pip-event-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border-top:1px solid var(--pip-line);padding-top:20px;margin:28px 0}.pip-event-details div{display:flex;flex-direction:column;gap:4px}.pip-event-details dt{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.pip-event-details dd{margin:0;font-size:15px}.pip-resource-single{padding-top:180px;padding-bottom:110px}.pip-resource-single__hero{max-width:800px}.pip-resource-single__hero h1{margin-bottom:23px}.pip-resource-single__hero>p:not(.pip-kicker){font-size:21px;max-width:650px}.pip-archive-hero{padding-top:190px;padding-bottom:70px}.pip-archive-hero h1{margin-bottom:22px}.pip-archive-hero>p:not(.pip-kicker){max-width:630px;font-size:20px}.pip-archive-grid,.pip-story-archive,.pip-event-archive,.pip-resource-archive{padding-bottom:110px}.pip-story-archive{border-top:1px solid var(--pip-line)}.pip-story-archive__row{display:grid;grid-template-columns:230px 110px minmax(240px,.8fr) minmax(170px,.6fr) 30px;align-items:center;gap:25px;padding:19px 0;border-bottom:1px solid var(--pip-line)}.pip-story-archive__row>div{height:140px;border-radius:14px;overflow:hidden;background:#c7d0d5}.pip-story-archive__row>div img{height:100%}.pip-story-archive__row>span{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.pip-story-archive__row h2{margin:0;font-size:29px}.pip-story-archive__row p{margin:0;color:var(--pip-muted);font-size:14px}.pip-event-row--archive{max-width:850px}.pip-resource-archive{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.pip-resource-card{position:relative;min-height:250px;padding:24px;border-radius:18px;background:#dce4e8;transition:transform .25s,background .25s}.pip-resource-card:hover{transform:translateY(-5px);background:var(--pip-leaf)}.pip-resource-card span{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.pip-resource-card h2{margin:60px 0 12px;font-size:32px}.pip-resource-card p{font-size:13px;color:rgba(17,25,38,.75)}.pip-resource-card b{position:absolute;right:22px;bottom:20px;font-size:20px}.pip-reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.75,.25,1)}.pip-reveal--visible{opacity:1;transform:none}
@media (max-width:1000px){.pip-menu-panel{width:min(760px,calc(100vw - 26px))}.pip-menu-panel__body{grid-template-columns:1fr;overflow:auto}.pip-menu-feature{display:none}.pip-priority-card{grid-template-columns:1fr;min-height:420px}.pip-priority-card__media{height:210px}.pip-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pip-footer-main{grid-template-columns:1.3fr 1fr 1fr}.pip-footer-social{grid-column:2}.pip-record-hero{grid-template-columns:1fr;min-height:unset}.pip-record-hero__content{padding-top:100px;padding-bottom:60px}.pip-record-hero__media{aspect-ratio:1.4/1}.pip-story-archive__row{grid-template-columns:170px 90px 1fr 25px}.pip-story-archive__row p{display:none}.pip-resource-archive{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){:root{--pip-shell:min(100vw - 32px,1360px);--pip-radius:20px}.pip-site-header{padding:10px 12px}.pip-site-header--scrolled{padding-top:7px}.pip-wordmark{max-width:180px}.pip-wordmark__main{font-size:19px}.pip-wordmark__sub{font-size:7px}.pip-header-cta{display:none}.pip-menu-trigger{min-height:47px;padding-left:14px;gap:10px;font-size:12px}.pip-menu-trigger__dots{width:31px;height:31px}.pip-menu-panel{height:calc(100vh - 20px);margin:10px auto;border-radius:23px}.pip-menu-panel__top{padding:19px}.pip-menu-panel__top>span{font-size:8px}.pip-menu-close{font-size:10px}.pip-menu-close span:last-child{width:29px;height:29px;font-size:22px}.pip-menu-panel__body{height:calc(100% - 70px);padding:2px 20px 26px}.pip-overlay-nav{align-self:start;padding-top:4vh}.pip-overlay-nav__list a{font-size:clamp(42px,13vw,70px);padding-block:11px}.pip-hero{min-height:760px;padding-top:110px}.pip-hero__overlay{background:linear-gradient(0deg,rgba(17,25,38,.88) 0%,rgba(17,25,38,.27) 73%,rgba(17,25,38,.2) 100%)}.pip-hero__content{display:block;padding-bottom:26px}.pip-hero__lead h1{margin-bottom:20px;font-size:clamp(55px,16.5vw,88px)}.pip-hero__copy{font-size:18px}.pip-hero__note{max-width:none;margin-top:44px;text-align:left}.pip-intro,.pip-final-cta__grid,.pip-content-panel__grid,.pip-event-single__hero{grid-template-columns:1fr;gap:36px}.pip-intro__media,.pip-content-panel__media{aspect-ratio:1.15/1}.pip-content-panel__grid--left .pip-content-panel__media{order:0}.pip-section{padding-block:76px}.pip-priority-grid{grid-template-columns:1fr}.pip-priority-card{grid-template-columns:1fr minmax(0,1fr);min-height:280px}.pip-priority-card__media{height:auto}.pip-priority-card__body{padding:20px}.pip-priority-card__body h3{margin-top:31px}.pip-section-head--row{align-items:start;display:block}.pip-text-link--desktop{display:none}.pip-text-link--mobile{display:inline-flex;margin-top:24px}.pip-project-grid{grid-template-columns:1fr}.pip-project-card{display:grid;grid-template-columns:1fr 1fr}.pip-project-card__media{aspect-ratio:auto}.pip-project-card__body{min-height:0;padding:18px}.pip-project-card__body span{margin-bottom:20px}.pip-project-card__body b{right:18px;bottom:17px}.pip-updates{grid-template-columns:1fr;gap:66px}.pip-story-row{grid-template-columns:72px minmax(0,1fr) 20px}.pip-story-row>span{display:none}.pip-story-row>div{height:64px}.pip-event-row{grid-template-columns:58px minmax(0,1fr) 20px}.pip-final-cta__media{height:350px}.pip-footer-cta{display:block}.pip-footer-cta>div:last-child{margin-top:28px}.pip-footer-main{grid-template-columns:1fr 1fr;gap:35px;padding-block:38px}.pip-footer-brand{grid-column:span 2}.pip-footer-social{grid-column:auto}.pip-footer-bottom{flex-direction:column}.pip-page-hero{min-height:600px;padding-top:140px;padding-bottom:50px}.pip-page-hero__content>p:not(.pip-kicker),.pip-archive-hero>p:not(.pip-kicker){font-size:18px}.pip-page-editor{padding-block:56px}.pip-record-hero__content{padding-top:120px;padding-bottom:48px}.pip-record-hero__media{aspect-ratio:1/1}.pip-gallery__grid{display:block}.pip-gallery figure{height:320px;margin-bottom:12px}.pip-story-single__hero{padding-top:135px;padding-bottom:48px}.pip-story-single__image{margin-top:38px;aspect-ratio:1/1}.pip-event-single{padding-top:120px}.pip-event-details{grid-template-columns:1fr}.pip-resource-single{padding-top:135px}.pip-archive-hero{padding-top:135px;padding-bottom:48px}.pip-story-archive__row{grid-template-columns:90px minmax(0,1fr) 20px;gap:13px;padding-block:12px}.pip-story-archive__row>div{height:78px;border-radius:9px}.pip-story-archive__row>span{display:none}.pip-story-archive__row h2{font-size:21px}.pip-resource-archive{grid-template-columns:1fr}.pip-resource-card{min-height:210px}.pip-resource-card h2{margin-top:38px}.pip-reveal{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:0s!important;transition-duration:0s!important}.pip-reveal{opacity:1;transform:none}}

@media (max-width:720px){.pip-menu-stage__stripes{inset:-25%;background:repeating-linear-gradient(90deg,var(--pip-ink) 0 11vw,transparent 11vw 19vw);transform:rotate(-10deg) scale(1.35)}.pip-menu-stage__word{top:47%;font-size:clamp(138px,40vw,260px)}.pip-menu-orbit{left:-91px;top:16%;width:min(69vw,315px)}.pip-menu-rail{top:10px;left:10px;right:10px}.pip-menu-chat,.pip-menu-rail__close{min-height:48px;padding:6px 8px 6px 15px;font-size:10px;gap:9px}.pip-menu-chat__icon,.pip-menu-rail__close .pip-menu-trigger__dots{width:34px;height:34px}.pip-menu-rail__close{min-width:119px}.pip-menu-panel{top:53%;width:calc(100vw - 30px);min-height:min(510px,68vh);padding:clamp(45px,12vw,64px) 33px 34px;border-radius:25px}.pip-overlay-nav__list a{font-size:clamp(45px,13.8vw,67px);padding:7px 0}.pip-menu-panel__note{left:33px;right:33px;bottom:24px;font-size:9px}.pip-menu-panel__note strong{font-size:9px}}
@media (prefers-reduced-motion:reduce){.pip-menu-panel,.pip-menu-overlay[aria-hidden="false"] .pip-menu-panel,.pip-menu-orbit,.pip-menu-rail,.pip-menu-stage{animation:none!important;transition:none!important}.pip-menu-overlay[aria-hidden="false"] .pip-menu-panel{transform:translate(-50%,-50%)!important}}

/* --------------------------------------------------------------------------
   v1.2 — shared page rhythm and layout stability
   -------------------------------------------------------------------------- */
:root{
  --pip-content-max:1360px;
  --pip-shell-outer:1408px; /* content max + 24px breathing room either side */
  --pip-gutter:24px;
  --pip-section-space:clamp(76px,8vw,132px);
}

html{
  scrollbar-gutter:stable;
}

html.pip-menu-is-open,
body.pip-menu-is-open{
  overflow:hidden;
}

/* Every full-width section now uses the same, safe inner container. Using
   100% rather than 100vw is important: grid children can no longer become
   viewport-wide and overflow into neighbouring columns. */
.pip-shell{
  width:100%;
  max-width:var(--pip-shell-outer);
  margin-inline:auto;
  padding-inline:var(--pip-gutter);
}

.pip-site-main{
  min-width:0;
  overflow:clip;
}

.pip-site-header{
  padding:18px 0;
}

.pip-header-shell{
  width:100%;
  max-width:var(--pip-shell-outer);
  margin-inline:auto;
  padding-inline:var(--pip-gutter);
}

.pip-section,
.pip-content-panel{
  padding-block:var(--pip-section-space);
}

.pip-page-editor{
  width:100%;
  max-width:888px;
  padding-block:var(--pip-section-space);
}

.pip-record-content.pip-shell{
  width:100%;
  max-width:868px;
  padding-block:var(--pip-section-space);
}

.pip-gallery{
  padding-bottom:var(--pip-section-space);
}

.pip-highlights{
  padding-top:clamp(36px,5vw,72px);
}

.pip-archive-hero{
  padding-top:clamp(160px,14vw,210px);
  padding-bottom:clamp(56px,6vw,88px);
}

/* Split project hero: both panels now sit inside the same site shell. This
   prevents the heading from getting underneath the image at desktop sizes. */
.pip-record-hero{
  display:block;
  min-height:0;
  padding-block:clamp(122px,10vw,164px) clamp(64px,7vw,112px);
  background:var(--pip-ink);
  color:#fff;
}

.pip-record-hero__inner{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  align-items:center;
  gap:clamp(34px,5vw,88px);
  min-height:min(680px,calc(100svh - 180px));
}

.pip-record-hero__content{
  width:100%;
  max-width:610px;
  min-width:0;
  padding:0;
}

.pip-record-hero__content h1{
  max-width:100%;
  margin-bottom:25px;
  font-size:clamp(54px,5.6vw,96px);
  overflow-wrap:anywhere;
}

.pip-record-hero__content > p:not(.pip-kicker){
  max-width:560px;
  margin-bottom:30px;
  font-size:clamp(18px,1.35vw,21px);
}

.pip-record-hero__media{
  min-width:0;
  min-height:520px;
  height:100%;
  overflow:hidden;
  border-radius:var(--pip-radius);
}

.pip-record-hero__media img{
  width:100%;
  height:100%;
}

/* Protect any long editor heading or URL from creating a horizontal page
   scroll bar. */
.pip-page-hero__content,
.pip-content-panel__copy,
.pip-event-single__hero > div,
.pip-resource-single__hero,
.pip-story-single__hero,
.pip-archive-hero,
.pip-prose{
  min-width:0;
}

.pip-page-hero h1,
.pip-content-panel h2,
.pip-event-single h1,
.pip-resource-single h1,
.pip-story-single h1,
.pip-archive-hero h1{
  overflow-wrap:anywhere;
}

@media (max-width:1000px){
  .pip-record-hero{
    padding-block:120px 64px;
  }

  .pip-record-hero__inner{
    grid-template-columns:1fr;
    min-height:0;
    gap:38px;
  }

  .pip-record-hero__content{
    max-width:760px;
  }

  .pip-record-hero__media{
    min-height:0;
    height:auto;
    aspect-ratio:1.35 / 1;
  }
}

@media (max-width:720px){
  :root{
    --pip-gutter:16px;
    --pip-shell-outer:100%;
    --pip-section-space:76px;
  }

  .pip-site-header{
    padding:10px 0;
  }

  .pip-shell,
  .pip-header-shell{
    padding-inline:var(--pip-gutter);
  }

  .pip-page-editor{
    max-width:100%;
  }

  .pip-record-content.pip-shell{
    max-width:100%;
  }

  .pip-record-hero{
    padding-block:112px 48px;
  }

  .pip-record-hero__inner{
    gap:30px;
  }

  .pip-record-hero__content h1{
    font-size:clamp(52px,14vw,74px);
  }

  .pip-record-hero__media{
    aspect-ratio:1 / 1;
    border-radius:20px;
  }
}



/* --------------------------------------------------------------------------
   v1.3 — right-hand overlay menu
   The navigation is intentionally anchored to the right side of the screen,
   matching the supplied interaction reference. The artwork stays in the
   background; the menu itself is never centred over the reading area.
   -------------------------------------------------------------------------- */
.pip-menu-overlay{
  background:var(--pip-paper);
}

/* Keep the branded stage, but push it into the background so the menu reads
   as a deliberate floating object rather than a large object in the middle
   of the page. */
.pip-menu-stage__stripes{
  inset:-12%;
  opacity:.92;
  transform:rotate(-10deg) scale(1.18);
}

.pip-menu-stage__stripes:after{
  width:min(72vw,980px);
  left:32%;
  top:54%;
}

.pip-menu-stage__word{
  left:30%;
  top:51%;
  font-size:clamp(150px,27vw,480px);
  opacity:.84;
}

.pip-menu-orbit{
  left:clamp(-155px,-8vw,-42px);
  top:25%;
  width:clamp(210px,26vw,430px);
  box-shadow:0 26px 65px rgba(17,25,38,.22);
}

/* The compact action rail now occupies the top-right, directly above the
   navigation card. */
.pip-menu-rail{
  left:auto;
  right:clamp(16px,3vw,48px);
  top:clamp(16px,3vw,34px);
  justify-content:flex-end;
}

.pip-menu-chat,
.pip-menu-rail__close{
  min-height:54px;
}

/* Right-side menu card, attached to the action rail. The transform origin is
   above its upper-right corner so its animation behaves like a suspended card
   settling into place, rather than scaling out of the centre of the screen. */
.pip-menu-panel{
  left:auto;
  right:clamp(16px,3vw,48px);
  top:clamp(91px,10vw,126px);
  width:min(500px,calc(100vw - 32px));
  min-height:clamp(390px,52vh,520px);
  padding:clamp(42px,4.5vw,62px) clamp(30px,3.8vw,52px) clamp(34px,3.5vw,48px);
  border-radius:28px;
  transform:translate3d(76px,-28px,0) rotate(9deg) scale(.91);
  transform-origin:calc(100% - 54px) -64px;
  transition:opacity .18s ease,transform .36s cubic-bezier(.2,.8,.22,1);
}

.pip-menu-overlay[aria-hidden="false"] .pip-menu-panel{
  transform:translate3d(0,0,0) rotate(0) scale(1);
  animation:pip-menu-swing-from-right .78s cubic-bezier(.16,.85,.2,1) both;
}

@keyframes pip-menu-swing-from-right{
  0%{
    opacity:0;
    transform:translate3d(88px,-42px,0) rotate(11deg) scale(.88);
  }
  46%{
    opacity:1;
    transform:translate3d(-10px,5px,0) rotate(-2deg) scale(1.012);
  }
  68%{
    transform:translate3d(4px,-2px,0) rotate(.7deg) scale(.998);
  }
  100%{
    opacity:1;
    transform:translate3d(0,0,0) rotate(0) scale(1);
  }
}

.pip-overlay-nav{
  align-items:flex-start;
}

.pip-overlay-nav__list{
  display:grid;
  gap:7px;
}

.pip-overlay-nav__list li{
  overflow:visible;
}

.pip-overlay-nav__list a{
  position:relative;
  display:flex;
  align-items:center;
  width:100%;
  min-height:66px;
  padding:9px 18px;
  border-radius:15px;
  color:var(--pip-ink);
  font-size:clamp(42px,4.5vw,67px);
  letter-spacing:-.085em;
  line-height:.94;
  transition:padding .24s cubic-bezier(.18,.8,.22,1),background .22s ease,color .22s ease,transform .22s ease;
}

.pip-overlay-nav__list a::before{
  content:'→';
  position:absolute;
  left:18px;
  top:50%;
  font-size:.62em;
  font-weight:500;
  line-height:1;
  opacity:0;
  transform:translate(-12px,-50%);
  transition:opacity .18s ease,transform .24s cubic-bezier(.18,.8,.22,1);
}

.pip-overlay-nav__list a:hover,
.pip-overlay-nav__list a:focus-visible{
  padding-left:68px;
  background:rgba(255,255,255,.72);
  color:var(--pip-ink);
  transform:none;
  outline:none;
}

.pip-overlay-nav__list a:hover::before,
.pip-overlay-nav__list a:focus-visible::before{
  opacity:1;
  transform:translate(0,-50%);
}

/* The current page remains quietly muted, as in the supplied reference;
   its hover/focus treatment still works, which keeps the menu clear for
   keyboard and touch users. */
.pip-overlay-nav__list .current-menu-item>a,
.pip-overlay-nav__list .current_page_item>a{
  color:rgba(17,25,38,.30);
  transform:none;
}

.pip-overlay-nav__list .current-menu-item>a:hover,
.pip-overlay-nav__list .current-menu-item>a:focus-visible,
.pip-overlay-nav__list .current_page_item>a:hover,
.pip-overlay-nav__list .current_page_item>a:focus-visible{
  color:var(--pip-ink);
}

/* The optional note is kept compact and only uses the spare space at the
   bottom of the side card. */
.pip-menu-panel__note{
  left:clamp(30px,3.8vw,52px);
  right:clamp(30px,3.8vw,52px);
  bottom:clamp(22px,2.6vw,32px);
}

@media (max-width:720px){
  .pip-menu-stage__stripes{
    inset:-24%;
    transform:rotate(-10deg) scale(1.32);
  }

  .pip-menu-stage__stripes:after{
    width:125vw;
    left:29%;
    top:56%;
  }

  .pip-menu-stage__word{
    left:29%;
    top:49%;
    font-size:clamp(122px,37vw,220px);
  }

  .pip-menu-orbit{
    left:-102px;
    top:23%;
    width:min(64vw,300px);
  }

  .pip-menu-rail{
    right:12px;
    top:12px;
    gap:8px;
  }

  .pip-menu-chat,
  .pip-menu-rail__close{
    min-height:48px;
  }

  .pip-menu-panel{
    right:12px;
    top:70px;
    width:calc(100vw - 24px);
    min-height:0;
    height:min(480px,calc(100svh - 92px));
    padding:clamp(37px,10vw,54px) 24px 28px;
    border-radius:23px;
    transform-origin:calc(100% - 34px) -48px;
  }

  .pip-overlay-nav__list{
    gap:5px;
  }

  .pip-overlay-nav__list a{
    min-height:55px;
    padding:7px 13px;
    border-radius:13px;
    font-size:clamp(40px,12.5vw,60px);
  }

  .pip-overlay-nav__list a:hover,
  .pip-overlay-nav__list a:focus-visible{
    padding-left:55px;
  }

  .pip-overlay-nav__list a::before{
    left:14px;
  }

  .pip-menu-panel__note{
    left:24px;
    right:24px;
    bottom:19px;
  }
}

@media (prefers-reduced-motion:reduce){
  .pip-menu-overlay[aria-hidden="false"] .pip-menu-panel{
    animation:none!important;
    transform:translate3d(0,0,0)!important;
  }
}

/* --------------------------------------------------------------------------
   v1.4 — clean, anchored side menu
   The decorative stage has been removed entirely. The navigation now opens
   against a quiet scrim, and its Close control is measured from the original
   trigger so both buttons occupy the same position on screen.
   -------------------------------------------------------------------------- */
.pip-menu-overlay{
  --pip-menu-trigger-top:18px;
  --pip-menu-trigger-right:24px;
  --pip-menu-trigger-height:54px;
  background:transparent;
}

.pip-menu-stage{
  background:rgba(12,19,30,.72);
  backdrop-filter:blur(15px);
  -webkit-backdrop-filter:blur(15px);
}

/* No oversized lettering, stripes or orbit artwork behind the menu. */
.pip-menu-stage__stripes,
.pip-menu-stage__word,
.pip-menu-orbit{
  display:none!important;
}

/* Keep only one control in the overlay. It is geometrically anchored to the
   original Menu trigger by CSS variables written by site.js. */
.pip-menu-chat{
  display:none!important;
}

.pip-menu-rail{
  top:var(--pip-menu-trigger-top)!important;
  right:var(--pip-menu-trigger-right)!important;
  left:auto!important;
  gap:0;
  justify-content:flex-end;
}

.pip-menu-rail__close{
  min-width:0;
  min-height:var(--pip-menu-trigger-height);
  padding:7px 9px 7px 17px;
  gap:14px;
  background:var(--pip-ink);
  color:#fff;
  border-radius:999px;
}

/* The card hangs directly beneath the action, creating the requested swing
   from the top-right without moving page content or introducing a centre
   screen animation. */
.pip-menu-panel{
  left:auto!important;
  right:var(--pip-menu-trigger-right)!important;
  top:calc(var(--pip-menu-trigger-top) + var(--pip-menu-trigger-height) + 16px)!important;
  width:min(470px,calc(100vw - 32px));
  min-height:clamp(390px,52vh,520px);
  padding:clamp(42px,4.5vw,58px) clamp(30px,3.8vw,48px) clamp(34px,3.5vw,46px);
  border-radius:28px;
  background:#dce4e8;
  box-shadow:0 26px 70px rgba(0,0,0,.28);
  transform:translate3d(64px,-34px,0) rotate(8deg) scale(.92);
  transform-origin:calc(100% - 30px) -62px;
}

.pip-menu-overlay[aria-hidden="false"] .pip-menu-panel{
  animation:pip-menu-swing-from-trigger .7s cubic-bezier(.16,.85,.2,1) both;
}

@keyframes pip-menu-swing-from-trigger{
  0%{opacity:0;transform:translate3d(64px,-34px,0) rotate(8deg) scale(.92)}
  52%{opacity:1;transform:translate3d(-7px,4px,0) rotate(-1.45deg) scale(1.008)}
  73%{transform:translate3d(3px,-1px,0) rotate(.45deg) scale(.998)}
  100%{opacity:1;transform:translate3d(0,0,0) rotate(0) scale(1)}
}

@media (max-width:720px){
  .pip-menu-panel{
    width:calc(100vw - 24px);
    top:calc(var(--pip-menu-trigger-top) + var(--pip-menu-trigger-height) + 12px)!important;
    min-height:0;
    height:min(480px,calc(100svh - var(--pip-menu-trigger-top) - var(--pip-menu-trigger-height) - 24px));
    padding:38px 24px 28px;
    border-radius:23px;
    transform-origin:calc(100% - 28px) -50px;
  }
}

@media (prefers-reduced-motion:reduce){
  .pip-menu-overlay[aria-hidden="false"] .pip-menu-panel{
    animation:none!important;
    transform:translate3d(0,0,0)!important;
  }
}

/* --------------------------------------------------------------------------
   v1.6 — WordPress Custom Logo sizing
   WordPress outputs .custom-logo-link > img.custom-logo. Keep the uploaded
   file contained in the header rather than letting a large PNG define layout.
   -------------------------------------------------------------------------- */
.pip-site-header .pip-wordmark{
  display:flex;
  align-items:center;
  flex:0 1 240px;
  min-width:0;
  max-width:240px;
}

.pip-site-header .pip-wordmark__text,
.pip-site-header .pip-wordmark .custom-logo-link{
  display:flex;
  align-items:center;
  width:220px;
  max-width:100%;
  height:64px;
}

.pip-site-header .pip-wordmark .custom-logo{
  display:block !important;
  width:auto !important;
  max-width:220px !important;
  height:auto !important;
  max-height:64px !important;
  margin:0 !important;
  object-fit:contain !important;
  object-position:left center !important;
}

.pip-site-header .pip-wordmark__text{
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:2px;
}

@media (max-width:720px){
  .pip-site-header .pip-wordmark{flex-basis:170px;max-width:170px;}
  .pip-site-header .pip-wordmark__text,
  .pip-site-header .pip-wordmark .custom-logo-link{width:160px;height:46px;}
  .pip-site-header .pip-wordmark .custom-logo{max-width:160px !important;max-height:46px !important;}
}


/* --------------------------------------------------------------------------
   v1.7 — logo-led visual refinement
   A slightly more civic / heritage palette, restrained title scale and
   squarer editorial cards. Buttons stay pill-shaped deliberately.
   -------------------------------------------------------------------------- */
:root {
  --pip-radius: 16px;
  --pip-brand-sky: #A9C8D9;
  --pip-brand-brick: #B85E45;
  --pip-brand-stone: #E5EDF0;
}

/* Keep the site confident, but let the imagery and new logo breathe. */
h1 {
  font-size: clamp(52px, 8.15vw, 120px);
  max-width: 980px;
}

h2 {
  font-size: clamp(38px, 5.15vw, 76px);
  max-width: 780px;
}

h3 {
  font-size: clamp(23px, 2.25vw, 34px);
}

.pip-hero__lead {
  max-width: 980px;
}

.pip-hero__lead h1 {
  font-size: clamp(52px, 8.15vw, 120px);
}

.pip-statement__inner p {
  font-size: clamp(42px, 5.95vw, 90px);
}

.pip-record-hero__content h1 {
  font-size: clamp(50px, 5vw, 84px);
}

.pip-project-card__body h3 {
  font-size: clamp(23px, 2vw, 32px);
}

.pip-section-head--small h2 {
  font-size: clamp(30px, 3.5vw, 48px);
}

/* Grow the Custom Logo as a contained, intentional header mark. The fixed
   logo box prevents a large PNG from changing header layout. */
.pip-site-header .pip-wordmark {
  flex-basis: 268px;
  max-width: 268px;
}

.pip-site-header .pip-wordmark__text,
.pip-site-header .pip-wordmark .custom-logo-link {
  width: 252px;
  max-width: 100%;
  height: 72px;
}

.pip-site-header .pip-wordmark .custom-logo {
  width: 252px !important;
  max-width: 100% !important;
  height: 72px !important;
  max-height: 72px !important;
  object-fit: contain !important;
  object-position: left center !important;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .16));
}

/* The brand has an architectural / civic mark, so media and editorial cards
   use a smaller, more structural radius. Keep pills for actions and status. */
.pip-intro__media,
.pip-final-cta__media,
.pip-content-panel__media,
.pip-record-hero__media,
.pip-story-single__image,
.pip-event-single__hero > div:last-child {
  border-radius: var(--pip-radius);
}

.pip-priority-card,
.pip-project-card,
.pip-resource-card {
  border-radius: 14px;
}

.pip-highlights__grid > div,
.pip-gallery figure,
.pip-story-archive__row > div,
.pip-empty-note {
  border-radius: 12px;
}

/* The navigation remains friendly, but no longer looks overly inflated. */
.pip-menu-panel {
  border-radius: 20px;
}

.pip-overlay-nav__list a {
  border-radius: 11px;
}

/* Pull the photographic washes and colour-led sections toward the new
   Gloucester civic palette: navy, soft sky and warm brick. */
.pip-hero__overlay {
  background: linear-gradient(90deg, rgba(16, 43, 67, .84) 0%, rgba(16, 43, 67, .34) 57%, rgba(16, 43, 67, .10) 100%);
}

.pip-page-hero__wash {
  background: linear-gradient(90deg, rgba(16, 43, 67, .86), rgba(16, 43, 67, .20));
}

.pip-project-card:nth-child(2n) {
  background: var(--pip-brand-sky);
}

.pip-project-card:nth-child(3n) {
  background: #D9B59A;
}

@media (max-width: 720px) {
  :root {
    --pip-radius: 14px;
  }

  .pip-site-header .pip-wordmark {
    flex-basis: 196px;
    max-width: 196px;
  }

  .pip-site-header .pip-wordmark__text,
  .pip-site-header .pip-wordmark .custom-logo-link {
    width: 188px;
    height: 54px;
  }

  .pip-site-header .pip-wordmark .custom-logo {
    width: 188px !important;
    height: 54px !important;
    max-height: 54px !important;
  }

  .pip-hero__lead h1 {
    font-size: clamp(50px, 14.3vw, 78px);
  }

  .pip-record-hero__content h1 {
    font-size: clamp(48px, 12.8vw, 68px);
  }

  .pip-menu-panel {
    border-radius: 17px;
  }
}

/* --------------------------------------------------------------------------
   v1.8 — quieter trigger and two-column community menu
   The menu stays tethered to the top-right control, but the navigation is
   now intentionally smaller and shares the card with editable local context.
   -------------------------------------------------------------------------- */

/* The header control reads as a lightweight label plus a compact control,
   rather than one large pill-shaped button. */
.pip-menu-trigger,
.pip-menu-rail__close{
  min-height:38px;
  padding:0;
  gap:8px;
  border:0;
  border-radius:0;
  background:transparent;
  color:#fff;
  font-size:12px;
  font-weight:800;
  letter-spacing:-.01em;
  text-transform:none;
  text-shadow:0 1px 5px rgba(0,0,0,.35);
  box-shadow:none;
}

.pip-menu-trigger:hover,
.pip-menu-trigger:focus-visible,
.pip-menu-rail__close:hover,
.pip-menu-rail__close:focus-visible{
  background:transparent;
  color:#fff;
  transform:none;
  outline:none;
}

.pip-menu-trigger__label{
  padding:8px 0;
}

.pip-menu-trigger__dots{
  width:36px;
  height:36px;
  gap:3px;
  flex:0 0 36px;
  background:rgba(16,43,67,.88);
  border:1px solid rgba(255,255,255,.44);
  color:#fff;
  box-shadow:0 4px 14px rgba(0,0,0,.14);
}

.pip-menu-trigger__dots i{
  width:3px;
  height:3px;
}

/* One wider card: navigation sits left and the editable local context sits
   right. The compact corners keep it in step with the civic logo system. */
.pip-menu-panel{
  width:min(940px,calc(100vw - 48px));
  min-height:392px;
  padding:0;
  overflow:hidden;
  border-radius:14px;
  background:#dce6eb;
  box-shadow:0 26px 70px rgba(0,0,0,.28);
}

.pip-menu-panel__inner{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);
  min-height:392px;
}

.pip-overlay-nav{
  display:flex;
  align-items:center;
  min-width:0;
  padding:clamp(32px,4vw,52px);
}

.pip-overlay-nav__list{
  width:100%;
  gap:4px;
}

.pip-overlay-nav__list a{
  min-height:52px;
  padding:8px 12px;
  border-radius:8px;
  font-size:clamp(30px,3.25vw,48px);
  letter-spacing:-.075em;
  line-height:.98;
}

.pip-overlay-nav__list a::before{
  left:14px;
  font-size:.58em;
}

.pip-overlay-nav__list a:hover,
.pip-overlay-nav__list a:focus-visible{
  padding-left:54px;
  background:rgba(255,255,255,.70);
}

.pip-menu-about{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:clamp(30px,3.8vw,48px);
  background:rgba(255,255,255,.46);
  border-left:1px solid rgba(16,43,67,.16);
}

.pip-menu-about__kicker{
  margin:0 0 12px;
  color:var(--pip-ink);
  font-size:10px;
  font-weight:800;
  letter-spacing:.11em;
  line-height:1.2;
  text-transform:uppercase;
}

.pip-menu-about h2{
  max-width:420px;
  margin:0 0 16px;
  color:var(--pip-ink);
  font-size:clamp(28px,2.7vw,43px);
  letter-spacing:-.07em;
  line-height:.94;
}

.pip-menu-about__copy{
  max-width:390px;
  margin:0;
  color:rgba(16,43,67,.78);
  font-size:15px;
  line-height:1.55;
}

.pip-menu-about__link{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  width:max-content;
  max-width:100%;
  margin-top:24px;
  padding-bottom:5px;
  border-bottom:1px solid currentColor;
  color:var(--pip-ink);
  font-size:13px;
  font-weight:800;
  line-height:1.2;
  transition:gap .2s ease;
}

.pip-menu-about__link:hover,
.pip-menu-about__link:focus-visible{
  gap:20px;
  outline:none;
}

@media (max-width:760px){
  .pip-menu-trigger,
  .pip-menu-rail__close{
    min-height:34px;
    gap:7px;
    font-size:11px;
  }

  .pip-menu-trigger__label{padding:7px 0;}

  .pip-menu-trigger__dots{
    width:34px;
    height:34px;
    flex-basis:34px;
  }

  .pip-menu-panel{
    left:12px!important;
    right:12px!important;
    top:calc(var(--pip-menu-trigger-top) + var(--pip-menu-trigger-height) + 12px)!important;
    width:auto;
    min-height:0;
    max-height:calc(100svh - var(--pip-menu-trigger-top) - var(--pip-menu-trigger-height) - 24px);
    overflow:auto;
    border-radius:12px;
  }

  .pip-menu-panel__inner{
    display:block;
    min-height:0;
  }

  .pip-overlay-nav{
    display:block;
    padding:28px 24px 20px;
  }

  .pip-overlay-nav__list{
    gap:3px;
  }

  .pip-overlay-nav__list a{
    min-height:44px;
    padding:7px 8px;
    border-radius:7px;
    font-size:clamp(27px,8.8vw,39px);
  }

  .pip-overlay-nav__list a:hover,
  .pip-overlay-nav__list a:focus-visible{
    padding-left:42px;
  }

  .pip-overlay-nav__list a::before{
    left:9px;
  }

  .pip-menu-about{
    display:block;
    padding:23px 24px 28px;
    border-top:1px solid rgba(16,43,67,.16);
    border-left:0;
  }

  .pip-menu-about__kicker{margin-bottom:9px;}

  .pip-menu-about h2{
    margin-bottom:12px;
    font-size:clamp(27px,8.4vw,36px);
  }

  .pip-menu-about__copy{
    font-size:14px;
    line-height:1.5;
  }

  .pip-menu-about__link{
    margin-top:18px;
    font-size:12px;
  }
}


/* --------------------------------------------------------------------------
   v1.9 — denser navigation, about icon and a scroll-aware header
   -------------------------------------------------------------------------- */

/* Restore the original neat pill control, at a smaller scale. */
.pip-menu-trigger,
.pip-menu-rail__close{
  min-height:42px;
  padding:5px 6px 5px 14px;
  gap:10px;
  border:1px solid rgba(255,255,255,.48);
  border-radius:999px;
  background:rgba(16,43,67,.94);
  color:#fff;
  font-size:12px;
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1;
  text-transform:none;
  text-shadow:none;
  box-shadow:0 5px 18px rgba(0,0,0,.16);
}

.pip-menu-trigger:hover,
.pip-menu-trigger:focus-visible,
.pip-menu-rail__close:hover,
.pip-menu-rail__close:focus-visible{
  border-color:rgba(255,255,255,.86);
  background:var(--pip-ink);
  color:#fff;
  transform:translateY(-1px);
  outline:none;
}

.pip-menu-trigger__label{padding:0;}

.pip-menu-trigger__dots,
.pip-menu-rail__close .pip-menu-trigger__dots{
  width:30px;
  height:30px;
  flex:0 0 30px;
  gap:3px;
  border:0;
  background:rgba(255,255,255,.13);
  color:#fff;
  box-shadow:none;
}

.pip-menu-trigger__dots i{
  width:3px;
  height:3px;
}

/* A full-width but restrained navy bar appears after the first few pixels of
   scrolling. It keeps the fixed navigation readable over every section while
   keeping the opening hero clean and image-led. */
.pip-site-header{
  padding:14px 24px;
  transition:padding .25s ease,background .25s ease,box-shadow .25s ease;
}

.pip-site-header::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:0;
  background:rgba(16,43,67,.96);
  border-bottom:1px solid rgba(255,255,255,.13);
  box-shadow:0 8px 24px rgba(16,43,67,.18);
  transition:opacity .25s ease;
}

.pip-site-header--scrolled{
  padding:8px 24px;
}

.pip-site-header--scrolled::before{
  opacity:1;
}

.pip-header-shell{
  position:relative;
  z-index:1;
}

/* Let long real-world menus stay compact. The panel grows until it reaches
   the viewport-safe limit, then only the card itself scrolls. */
.pip-menu-panel{
  width:min(1000px,calc(100vw - 48px));
  min-height:0;
  max-height:calc(100svh - var(--pip-menu-trigger-top) - var(--pip-menu-trigger-height) - 32px);
  overflow:auto;
  overscroll-behavior:contain;
}

.pip-menu-panel__inner{
  min-height:440px;
}

.pip-overlay-nav{
  align-items:flex-start;
  padding:clamp(30px,3.7vw,46px);
}

.pip-overlay-nav__list{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:2px;
}

.pip-overlay-nav__list a{
  position:relative;
  min-height:36px;
  padding:5px 10px;
  border-radius:7px;
  font-size:clamp(20px,1.9vw,28px);
  font-weight:760;
  letter-spacing:-.055em;
  line-height:1.02;
}

.pip-overlay-nav__list a::before{
  content:"→";
  position:absolute;
  left:11px;
  top:50%;
  opacity:0;
  font-size:.9em;
  transform:translate(-6px,-52%);
  transition:opacity .18s ease,transform .2s ease;
}

.pip-overlay-nav__list a:hover,
.pip-overlay-nav__list a:focus-visible{
  padding-left:40px;
  background:rgba(255,255,255,.72);
  color:var(--pip-ink);
  transform:none;
}

.pip-overlay-nav__list a:hover::before,
.pip-overlay-nav__list a:focus-visible::before{
  opacity:1;
  transform:translate(0,-52%);
}

.pip-overlay-nav__list .current-menu-item > a,
.pip-overlay-nav__list .current_page_item > a{
  color:rgba(16,43,67,.42);
  transform:none;
}

.pip-menu-about{
  padding:clamp(30px,3.6vw,46px);
}

.pip-menu-about__icon{
  display:grid;
  place-items:center;
  width:62px;
  height:62px;
  margin:0 0 18px;
  padding:8px;
  overflow:hidden;
  border-radius:10px;
  background:var(--pip-ink);
  box-shadow:0 8px 18px rgba(16,43,67,.14);
}

.pip-menu-about__icon-image{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}

.pip-menu-about h2{
  font-size:clamp(27px,2.45vw,39px);
}

@media (max-width:760px){
  .pip-site-header{
    padding:10px 14px;
  }

  .pip-site-header--scrolled{
    padding:6px 14px;
  }

  .pip-menu-trigger,
  .pip-menu-rail__close{
    min-height:38px;
    padding:4px 5px 4px 12px;
    gap:8px;
    font-size:11px;
  }

  .pip-menu-trigger__dots,
  .pip-menu-rail__close .pip-menu-trigger__dots{
    width:28px;
    height:28px;
    flex-basis:28px;
  }

  /* The previous mobile card inherited a centering transform from desktop.
     Reset it so the card is reliably within the viewport on phones. */
  .pip-menu-panel{
    left:12px!important;
    right:12px!important;
    top:calc(var(--pip-menu-trigger-top) + var(--pip-menu-trigger-height) + 12px)!important;
    width:auto!important;
    max-height:calc(100svh - var(--pip-menu-trigger-top) - var(--pip-menu-trigger-height) - 24px);
    overflow:auto;
    transform:translate3d(38px,-22px,0) rotate(5deg) scale(.95);
    transform-origin:calc(100% - 28px) -45px;
  }

  .pip-menu-overlay[aria-hidden="false"] .pip-menu-panel{
    animation:pip-menu-swing-from-trigger-mobile .58s cubic-bezier(.16,.85,.2,1) both;
  }

  .pip-menu-panel__inner{
    display:block;
    min-height:0;
  }

  .pip-overlay-nav{
    display:block;
    padding:24px 20px 17px;
  }

  .pip-overlay-nav__list{
    gap:1px;
  }

  .pip-overlay-nav__list a{
    min-height:34px;
    padding:5px 7px;
    border-radius:6px;
    font-size:clamp(18px,5.5vw,24px);
    letter-spacing:-.045em;
  }

  .pip-overlay-nav__list a::before{
    left:8px;
  }

  .pip-overlay-nav__list a:hover,
  .pip-overlay-nav__list a:focus-visible{
    padding-left:32px;
  }

  .pip-menu-about{
    display:block;
    padding:22px 20px 26px;
  }

  .pip-menu-about__icon{
    width:50px;
    height:50px;
    margin-bottom:14px;
    padding:7px;
    border-radius:8px;
  }

  .pip-menu-about h2{
    font-size:clamp(25px,7.5vw,33px);
  }

  @keyframes pip-menu-swing-from-trigger-mobile{
    0%{opacity:0;transform:translate3d(38px,-22px,0) rotate(5deg) scale(.95)}
    52%{opacity:1;transform:translate3d(-4px,3px,0) rotate(-.9deg) scale(1.006)}
    76%{transform:translate3d(1px,-1px,0) rotate(.25deg) scale(.998)}
    100%{opacity:1;transform:translate3d(0,0,0) rotate(0) scale(1)}
  }
}

@media (prefers-reduced-motion:reduce){
  .pip-menu-overlay[aria-hidden="false"] .pip-menu-panel{
    animation:none!important;
    transform:translate3d(0,0,0) rotate(0) scale(1)!important;
  }
}
