/* Shared front-end and editor design system. */
:root{--fp-paper:#f3f2ee;--fp-muted:#575754;--fp-line:#d5d4cf;--fp-gutter:clamp(22px,4.5vw,80px);--fp-section:clamp(68px,8vw,128px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;-webkit-font-smoothing:antialiased}
.wp-site-blocks{padding:0}
.wp-site-blocks>*,.fp-main>*{margin-block-start:0!important}
.fp-container{width:100%;max-width:1480px;margin-inline:auto;padding-inline:var(--fp-gutter)}
.fp-section{padding-block:var(--fp-section)}
.fp-paper{background:var(--fp-paper)}
.fp-dark{background:#000;color:#fff}
.fp-muted{color:var(--fp-muted);font-size:.9rem}
.fp-dark .fp-muted{color:#c6c6c1}
a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #8a6525;outline-offset:5px}
input,textarea,select{font:inherit;max-width:100%;border:1px solid #777;border-radius:0;padding:.85rem;background:#fff;color:#000}
img{max-width:100%;height:auto}
.fp-header{background:#fff;border-bottom:1px solid var(--fp-line)}
.fp-header-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:108px}
.fp-header-inner>*{margin:0!important}
.fp-logo{width:195px;height:78px;overflow:hidden;flex-shrink:0;margin:0}
.fp-logo a{display:block;height:100%}
.fp-logo img{display:block;width:195px;height:78px;object-fit:cover;object-position:center}
.fp-nav{font-size:.78rem;font-weight:600;margin-left:auto!important}
.fp-nav .wp-block-navigation__container{gap:24px}
.fp-nav a{text-decoration:none}
.fp-nav a:hover{text-decoration:underline}
.fp-actions{gap:12px;align-items:center}
.fp-actions .wp-block-button__link{min-height:48px;border:1px solid #000;border-radius:0;line-height:1.4;transition:background-color .15s,color .15s;text-decoration:none;box-shadow:none}
.fp-actions .wp-block-button__link:hover{background:#333;color:#fff}
.fp-actions .is-style-outline .wp-block-button__link{background:transparent;color:inherit;border-color:currentColor}
.fp-actions .is-style-outline .wp-block-button__link:hover{background:#000;color:#fff}
.fp-header-cta .wp-block-button__link{font-size:.68rem;padding:15px 18px}
.fp-hero{background:var(--fp-paper)}
.fp-hero-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:5vw;align-items:center;padding-block:72px}
.fp-hero-copy>*{margin-block:0 26px}
.fp-eyebrow{font-size:.66rem;line-height:1.6;letter-spacing:.13em;font-weight:700;text-transform:uppercase;margin:0 0 38px}
.fp-display{font-size:clamp(3.25rem,5.3vw,5.4rem);line-height:.98;letter-spacing:-.065em;font-weight:800;margin:0 0 28px}
.fp-nav .wp-block-navigation__submenu-container{min-width:240px;padding:12px;background:#fff;color:#000;border:1px solid var(--fp-line)}
.fp-nav .wp-block-navigation__submenu-container a{padding:10px}
.fp-lead{font-size:clamp(1.08rem,1.5vw,1.35rem);line-height:1.6;max-width:560px}
.fp-hero-copy .fp-lead{max-width:490px}
.fp-hero-note{font-size:.75rem;color:var(--fp-muted);margin-top:32px}
.fp-photo-placeholder{background:#e5e3dc;min-height:320px;position:relative;padding:32px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid #c7c5bd;isolation:isolate}
.fp-photo-placeholder:after{content:'';position:absolute;inset:16px;border:1px solid #c7c5bd;z-index:-1;pointer-events:none}
.fp-photo-placeholder>*{margin:0!important}
.fp-photo-eyebrow{font-size:.6rem;font-weight:700;letter-spacing:.16em}
.fp-photo-label{font-size:clamp(1.8rem,3vw,3rem);font-weight:700;line-height:1.06;letter-spacing:-.04em;max-width:420px;padding-block:48px;color:#585750}
.fp-photo-note{font-size:.72rem;color:#57564f;max-width:300px}
.fp-hero-photo{min-height:500px}
.fp-hero-image{margin:0!important;align-self:stretch;min-height:500px}
.fp-hero-image img{display:block;width:100%;height:100%;min-height:500px;object-fit:cover;object-position:48% center}
.fp-work-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:40px}
.fp-work-card{margin:0!important}
.fp-work-card:nth-child(2){padding-top:80px}
.fp-work-image{margin:0!important}
.fp-work-image img{display:block;width:100%;height:460px;object-fit:cover}
.fp-project-type{font-size:.65rem;letter-spacing:.1em;font-weight:700;margin:22px 0 12px}
.fp-work-card h3{font-size:1.75rem;margin:0 0 10px}
.fp-work-card .fp-muted{margin:0}
.fp-comparison-image{margin:0!important}
.fp-comparison-image img{display:block;width:100%;height:520px;object-fit:cover;object-position:center}
.fp-two-column{display:grid;grid-template-columns:1fr 1fr;gap:8vw}
.fp-two-column>*{margin-top:0}
.fp-section h2{font-size:clamp(2.5rem,4.1vw,4.3rem);line-height:1.04;letter-spacing:-.05em;margin-top:0}
.fp-section h3{font-size:1.35rem;line-height:1.25;letter-spacing:-.025em}
.fp-two-column p:first-child{margin-top:0}
.fp-section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;margin-bottom:48px}
.fp-section-heading>*{margin:0;flex:1}
.fp-section-heading>.fp-lead{max-width:400px}
.fp-service-row{display:grid;grid-template-columns:40px 1fr 1.1fr 160px;gap:28px;align-items:center;padding:30px 0;border-top:1px solid var(--fp-line);margin:0!important}
.fp-service-row:last-child{border-bottom:1px solid var(--fp-line)}
.fp-service-row>*{margin:0}
.fp-service-row h3{font-size:1.55rem}
.fp-service-row>p:not(.fp-number):not(.fp-service-link){font-size:.94rem;color:var(--fp-muted)}
.fp-number{align-self:start;padding-top:5px;font-size:.7rem;font-weight:700}
.fp-service-link{font-size:.75rem;font-weight:700;text-align:right}
.fp-service-link a{display:inline-block;padding-block:12px}
.fp-project-photo{min-height:430px}
.fp-project-photo .fp-photo-label{font-size:clamp(2rem,5vw,4.5rem);max-width:none}
.fp-project-caption{display:flex;justify-content:space-between;gap:40px;margin-top:22px;align-items:baseline}
.fp-project-caption>*{margin:0}
.fp-project-caption p{max-width:430px}
.fp-comparison{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.fp-comparison-panel{margin:0!important}
.fp-comparison-panel>.fp-eyebrow{margin-bottom:12px}
.fp-after{background:#efeee9}
.fp-process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 48px;margin-top:54px}
.fp-process-step{border-top:1px solid #545454;padding-top:24px;margin:0!important}
.fp-step-number{font-size:.75rem;color:#b8b8b2;margin:0 0 36px}
.fp-process-step h3{font-size:1.45rem;margin-bottom:12px}
.fp-process-step>p:last-child{color:#c6c6c1;font-size:.94rem;max-width:300px}
.fp-principle{border-top:1px solid var(--fp-line);padding:22px 0;margin:0!important}
.fp-principle h3{margin:0 0 10px}
.fp-principle p{margin:0;color:var(--fp-muted)}
.fp-final-cta .fp-display{font-size:clamp(4rem,9vw,9rem);line-height:.93}
.fp-final-cta .fp-lead{color:#d5d5d0;max-width:530px}
.fp-final-cta .fp-actions{margin-top:32px}
.fp-dark .fp-actions .wp-block-button__link{background:#fff;color:#000;border-color:#fff}
.fp-dark .fp-actions .is-style-outline .wp-block-button__link{background:transparent;color:#fff}
.fp-dark .fp-actions .wp-block-button__link:hover{background:#ddd;color:#000}
.fp-cta-note{font-size:.8rem;color:#c6c6c1;margin-top:28px}
.fp-footer .fp-section{padding-bottom:40px}
.fp-footer-grid{display:grid;grid-template-columns:1.4fr .7fr 1fr 1.2fr;gap:32px}
.fp-footer-grid>*{margin:0}
.fp-footer-grid h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;margin:20px 0}
.fp-footer-grid p{font-size:.83rem;line-height:2}
.fp-footer-grid a{text-decoration:none}
.fp-footer-grid a:hover{text-decoration:underline}
.fp-footer-legal{font-size:.6rem!important;font-weight:700;letter-spacing:.015em}
.fp-footer-bottom{display:flex;align-items:center;gap:26px;border-top:1px solid var(--fp-line);margin-top:56px;padding-top:20px}
.fp-footer-bottom>*{margin:0;font-size:.73rem}
.fp-copyright{flex:1;color:var(--fp-muted)}
.fp-corporate-mark{width:95px;height:72px;overflow:hidden;flex-shrink:0}
.fp-corporate-mark img{width:95px;height:72px;object-fit:cover}
.fp-privacy{border-top:1px solid var(--fp-line);margin-top:24px;padding-top:24px;max-width:850px}
.fp-privacy .fp-eyebrow{margin-bottom:10px}
.fp-privacy p:last-child{font-size:.75rem}
.fp-nav .wp-block-navigation__responsive-container.is-menu-open{padding:32px;background:#fff;color:#000}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{align-items:flex-start;gap:20px;font-size:1.5rem}
.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{min-width:44px;min-height:44px;align-items:center;justify-content:center}
.editor-styles-wrapper .fp-container{max-width:1480px}
@media(min-width:782px) and (max-width:1100px){.fp-header-inner{gap:18px}.fp-nav .wp-block-navigation__container{gap:14px}.fp-logo,.fp-logo img{width:160px}.fp-nav{font-size:.7rem}.fp-header-cta .wp-block-button__link{font-size:.6rem;padding:13px 10px}.fp-service-row{grid-template-columns:30px 1fr 1fr;gap:20px}.fp-service-link{grid-column:2/-1;text-align:left}.fp-footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:781px){
 .fp-header-inner{min-height:92px;gap:12px;flex-wrap:wrap;padding-block:8px}
 .fp-logo,.fp-logo img{width:160px;height:62px}
 .fp-nav{margin-left:auto!important;order:3}
 .fp-header-inner>.fp-actions{margin-left:auto!important}
 .fp-header-cta .wp-block-button__link{font-size:.58rem;padding:12px 10px;min-height:44px}
 .fp-nav .wp-block-navigation__responsive-container:not(.is-menu-open){display:none!important}
 .fp-nav .wp-block-navigation__responsive-container-open{display:flex!important}
 .fp-hero-grid{grid-template-columns:1fr;gap:36px;padding-block:44px}
 .fp-display{font-size:clamp(2rem,9vw,4.5rem)}
 .fp-eyebrow{font-size:.62rem;margin-bottom:28px}
 .fp-hero-photo{min-height:320px}
 .fp-hero-image{min-height:0}
 .fp-hero-image img{height:360px;min-height:0;object-position:center}
 .fp-work-grid{gap:24px}
 .fp-work-image img{height:330px}
 .fp-work-card:nth-child(2){padding-top:48px}
 .fp-comparison-image img{height:360px}
 .fp-photo-label{font-size:2.3rem}
 .fp-two-column{grid-template-columns:1fr;gap:28px}
 .fp-section-heading{display:block;margin-bottom:32px}
 .fp-section-heading>.fp-lead{margin-top:24px}
 .fp-service-row{grid-template-columns:25px 1fr;gap:14px;padding-block:24px}
 .fp-service-row h3{font-size:1.3rem}
 .fp-service-row>p:not(.fp-number){grid-column:2}
 .fp-service-link{text-align:left}
 .fp-service-link a{padding-block:4px}
 .fp-project-photo{min-height:340px}
 .fp-project-caption{display:block}
 .fp-project-caption p{margin-top:12px}
 .fp-comparison{gap:16px}
 .fp-comparison .fp-photo-placeholder{min-height:270px;padding:24px}
 .fp-comparison .fp-photo-label{font-size:1.65rem;overflow-wrap:anywhere}
 .fp-comparison .fp-photo-eyebrow{display:none}
 .fp-process-grid{grid-template-columns:1fr 1fr;gap:32px 24px}
 .fp-step-number{margin-bottom:26px}
 .fp-footer-grid{grid-template-columns:1fr 1fr;gap:24px}
 .fp-footer-grid p{overflow-wrap:anywhere}
 .fp-footer-bottom{flex-wrap:wrap;gap:18px}
 .fp-copyright{flex-basis:65%}
}
@media(max-width:540px){.fp-work-grid{grid-template-columns:1fr}.fp-work-card:nth-child(2){padding-top:18px}.fp-work-image img{height:360px}.fp-comparison-image img{height:290px}}
@media(max-width:420px){.fp-header-inner{gap:4px}.fp-logo,.fp-logo img{width:135px}.fp-header-cta .wp-block-button__link{font-size:.6rem;padding:12px 8px;letter-spacing:.02em}.fp-nav .wp-block-navigation__responsive-container-open{min-width:38px}.fp-comparison{grid-template-columns:1fr}.fp-comparison-image img{height:400px}.fp-process-grid{grid-template-columns:1fr}.fp-process-step{display:grid;grid-template-columns:30px 1fr;gap:12px}.fp-process-step h3{margin:0}.fp-process-step>p:last-child{grid-column:2;margin:0}.fp-step-number{padding-top:4px}.fp-footer-grid{grid-template-columns:1fr}.fp-footer-grid h3{margin-bottom:10px}.fp-footer-bottom{align-items:flex-start}}
@media(max-width:360px){.fp-header-inner>.fp-logo,.fp-header-inner>.fp-logo img{width:100px}.fp-header-cta .wp-block-button__link{font-size:.56rem;padding-inline:6px}.fp-header-inner{gap:2px;flex-wrap:nowrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
