/* clone.css - rules this static clone needs that live Squarespace produced with inline
   styles, runtime JS, or third-party plugins (Will Myers megaMenu / megaHamburger /
   beforeAfter). Values measured on live with getComputedStyle (see docs/content-catalog.md). */

/* ---- Rich text: live puts white-space:pre-wrap inline on every text element ---- */
.sqs-html-content p,.sqs-html-content h1,.sqs-html-content h2,.sqs-html-content h3,.sqs-html-content h4,
.accordion-item__description p,.summary-excerpt p,.blog-excerpt p,.gallery-caption-content,.newsletter-form-header-description p{white-space:pre-wrap}

/* ---- Fluid engine: live ships one <style> per section; geometry arrives as vars ---- */
.fluid-engine{--g:var(--mgap,var(--gap,11px));--grid-gutter:calc(var(--sqs-mobile-site-gutter,6vw) - var(--g));--cell-max-width:calc((var(--sqs-site-max-width,1500px) - (var(--g) * 7)) / 8);display:grid;position:relative;grid-area:1/1/-1/-1;grid-template-rows:repeat(var(--rm,1),minmax(24px,auto));grid-template-columns:minmax(var(--grid-gutter),1fr) repeat(8,minmax(0,var(--cell-max-width))) minmax(var(--grid-gutter),1fr);row-gap:var(--mrgap,var(--g));column-gap:var(--g);overflow-x:hidden;overflow-x:clip}
.fluid-engine>.fe-block{grid-area:var(--m);z-index:var(--mz,var(--dz,auto))}
.fluid-engine>.fe-block>.sqs-block{justify-content:var(--mjc,var(--jc,flex-start))}
.fluid-engine>.fe-block .sqs-block-alignment-wrapper{align-items:var(--mai,var(--ai,flex-start))}
@media (min-width:768px){
.fluid-engine{--g:var(--gap,11px);--grid-gutter:calc(var(--sqs-site-gutter,4vw) - var(--g));--cell-max-width:calc((var(--sqs-site-max-width,1500px) - (var(--g) * 23)) / 24);--inset-padding:0vw;--container-width:min(var(--sqs-site-max-width,1500px),calc(100vw - var(--sqs-site-gutter,4vw) * 2 - var(--inset-padding)));grid-template-rows:repeat(var(--rd,1),minmax(calc(var(--container-width) * var(--rs,.0215)),auto));grid-template-columns:minmax(var(--grid-gutter),1fr) repeat(24,minmax(0,var(--cell-max-width))) minmax(var(--grid-gutter),1fr);row-gap:var(--rgap,var(--g))}
.background-width--inset .fluid-engine{--inset-padding:calc(var(--sqs-site-gutter) * 2)}
.fluid-engine>.fe-block{grid-area:var(--d);z-index:var(--dz,auto)}
.fluid-engine>.fe-block>.sqs-block{justify-content:var(--jc,flex-start)}
.fluid-engine>.fe-block .sqs-block-alignment-wrapper{align-items:var(--ai,flex-start)}
}

/* ---- Fluid image blocks: boilerplate live repeats inside every image block ---- */
.fluid-image-container.visitor-mode{overflow:hidden;-webkit-mask-image:-webkit-radial-gradient(white,black);clip-path:none}
.js-content-mode-element-wrapper{position:relative;width:100%;height:100%;display:none}
.js-content-mode-element-system_desktop{display:block}

/* ---- Header: fixed, "scroll back" (hide on scroll down, show on scroll up) ---- */
#header{transition:background .14s ease-in-out .14s,transform .14s ease-in-out}
#header.is-hidden{transform:translateY(-100%)}
.header-dropshadow{transition:opacity .14s ease-in-out}
#header.is-hidden .header-dropshadow{opacity:0}

/* ---- Will Myers megaMenu (desktop "Our Work" / "Who We Are") ---- */
.header-nav-item--mega-menu>a{display:inline-flex;align-items:center;gap:4px}
.header-nav-item--mega-menu>a svg{width:15px;height:15px;transition:transform .3s ease}
.header-nav-item--mega-menu>a[aria-expanded=true] svg{transform:rotate(180deg)}
.wm-mega-menu{position:fixed;width:100vw;top:0;left:0;z-index:9;opacity:0;visibility:hidden;box-sizing:border-box;pointer-events:none;padding-top:var(--header-bottom,0px)}
.wm-mega-menu.open{opacity:1;visibility:visible}
.wm-mega-menu .mega-menu-wrapper{position:relative;background-color:var(--siteBackgroundColor,#fff);overflow:hidden;height:0;max-height:90svh;width:100%;pointer-events:auto;box-sizing:border-box;transition:height .3s ease}
.wm-mega-menu.open .mega-menu-wrapper{height:var(--active-menu-height,auto)}
.wm-mega-menu .mega-menu-item{display:none}
.wm-mega-menu .mega-menu-item.active{display:block}
.wm-mega-menu-overlay{position:fixed;inset:0;background:hsla(0,0%,0%,50%);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:99}
body.wm-mega-menu--open #page{position:relative;z-index:9}
.wm-mega-menu-overlay.open{opacity:1;visibility:visible}

/* ---- Burger: live's header carries an inline <style> setting the 1px line weight ---- */
.top-bun,.patty,.bottom-bun{height:1px}

/* ---- Mobile menu (Will Myers megaHamburger, content from /hamburger-menu) ---- */
.header-menu{position:fixed;top:0;left:0;width:100%;height:100%;overflow-y:auto;opacity:0;visibility:hidden;z-index:-1;transition:opacity .3s ease,visibility .3s ease}
.header--menu-open .header-menu{opacity:1;visibility:visible;z-index:1}
.header-menu .header-menu-bg{position:absolute;inset:0;background:var(--menuOverlayBackgroundColor,#fff)}
.header-menu .header-menu-nav{position:relative;padding-top:var(--header-height,128px)}
.header--menu-open{overflow:hidden}

/* ---- Video backgrounds (YouTube, muted autoplay loop) ---- */
.sqs-video-background{position:absolute;inset:0;overflow:hidden}
.sqs-video-background iframe.background-video{position:absolute;top:50%;left:50%;border:0;pointer-events:none;opacity:0;transition:opacity .3s ease}
.sqs-video-background iframe.background-video.ready{opacity:1}

/* ---- Site footer code injection on live (TDC): video zoom + custom video controls,
        copied verbatim in effect ---- */
.sqs-video-background iframe,[data-background-video] iframe{transform:scale(1.3)!important;transform-origin:center center!important;pointer-events:none}
.video-controls-container{position:absolute;bottom:30px;left:30px;right:auto;z-index:99999;display:flex;gap:15px;pointer-events:auto!important}
.video-control-btn{background-color:rgba(255,255,255,.7);color:#0F1329;border:1px solid #0F1329;border-radius:0!important;width:50px;height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);transition:transform .3s cubic-bezier(.25,.46,.45,.94),background-color .3s ease,color .3s ease,border-color .3s ease;transform:scale(1) translateZ(0);will-change:transform;backface-visibility:hidden;-webkit-font-smoothing:antialiased}
.video-control-btn:hover{background-color:#2A2D79!important;border-color:#2A2D79!important;color:#FFFFFF!important;transform:scale(1.1) translateZ(0)!important}
.video-control-btn svg{fill:currentColor;pointer-events:none;display:block;transition:width .2s ease,height .2s ease;width:22px;height:22px}
.video-control-btn.is-volume-btn svg,.video-control-btn.is-play-btn svg{width:30px;height:30px}
@media only screen and (max-width:767px){.video-controls-container{bottom:15px;left:15px;gap:10px}.video-control-btn{width:40px;height:40px}.video-control-btn svg{width:18px;height:18px}.video-control-btn.is-volume-btn svg,.video-control-btn.is-play-btn svg{width:24px;height:24px}}
/* site header code injection on live */
html,body{overflow:clip visible!important}

/* ---- Video blocks ---- */
.sqs-video-wrapper iframe,.embed-block-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}

/* ---- Gallery reel (logo marquee; live: custom.css autoplay keyframes) ---- */
.gallery-reel-wrapper{position:relative}
.gallery-reel-list{display:flex}

/* ---- Lightbox (gallery sections with lightbox enabled): live geometry - white .9
        backdrop, image contained in an inset 63px x 99px box, 13x24 carets at the page
        padding, 20px close X ---- */
.clone-lightbox{position:fixed;inset:0;z-index:9999}
.clone-lightbox[hidden]{display:none}
.clone-lightbox .lb-bg{position:absolute;inset:0;background:var(--tweak-gallery-lightbox-background-color,#fff);opacity:.9}
.clone-lightbox img{position:absolute;top:63px;bottom:63px;left:99px;right:99px;width:calc(100% - 198px);height:calc(100% - 126px);object-fit:contain}
.clone-lightbox button{position:absolute;background:none;border:0;cursor:pointer;padding:0;color:var(--tweak-gallery-lightbox-icon-color,#000);line-height:0}
.clone-lightbox .lb-close{top:22px;right:22px;padding:1px 6px}
.clone-lightbox .lb-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:4px}
.clone-lightbox .lb-prev{left:var(--sqs-site-gutter,3vw);top:50%;transform:translateY(-50%)}
.clone-lightbox .lb-next{right:var(--sqs-site-gutter,3vw);top:50%;transform:translateY(-50%)}
.clone-lightbox .lb-prev svg,.clone-lightbox .lb-next svg{width:13px;height:24px;fill:none;stroke:currentColor;stroke-width:1px}
@media (max-width:767px){.clone-lightbox img{left:6vw;right:6vw;width:88vw}}


/* ---- Before / after slider (Will Myers beforeAfter; settings from live custom.css) ---- */
.wm-before-after-slider{position:relative;display:block;overflow:hidden;box-sizing:border-box;border:var(--border-thickness,1px) solid var(--border-color,#fff);border-radius:var(--border-radius,.2rem);aspect-ratio:var(--aspect-ratio,1.77777778);user-select:none;cursor:col-resize;--pos:50%}
.wm-before-after-slider img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.wm-before-after-slider .ba-before{clip-path:inset(0 calc(100% - var(--pos)) 0 0);z-index:1}
.wm-before-after-slider .ba-line{position:absolute;left:var(--pos);width:var(--divider-thickness,2px);margin-left:calc(var(--divider-thickness,2px) / -2);background:var(--divider-color,#fff);z-index:2}
.wm-before-after-slider .ba-line--top{top:0;bottom:calc(50% + var(--handle-size,46px) / 2)}
.wm-before-after-slider .ba-line--bottom{bottom:0;top:calc(50% + var(--handle-size,46px) / 2)}
.wm-before-after-slider .ba-handle{position:absolute;top:50%;left:var(--pos);box-sizing:border-box;width:var(--handle-size,46px);height:var(--handle-size,46px);transform:translate(-50%,-50%);border:var(--handle-thickness,2px) solid var(--handle-border-color,#fff);border-radius:50%;background:var(--handle-background,transparent);z-index:3;display:flex;align-items:center;justify-content:center}
.wm-before-after-slider .ba-handle svg{width:24px;height:24px}
.wm-before-after-slider .ba-cap{position:absolute;top:var(--caption-offset,8px);z-index:2;line-height:inherit;font-size:var(--caption-font-size,1rem);padding:var(--caption-padding-v,7px) var(--caption-padding-h,11px);color:#fff;opacity:.5;border-radius:var(--caption-border-radius,.1rem)}
.wm-before-after-slider .ba-cap::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.7;border-radius:inherit}
.wm-before-after-slider .ba-cap--before{left:var(--caption-offset,8px);color:var(--caption-before-color,#fff)}
.wm-before-after-slider .ba-cap--before::after{background:var(--caption-before-background,#000)}
.wm-before-after-slider .ba-cap--after{right:var(--caption-offset,8px);color:var(--caption-after-color,#fff)}
.wm-before-after-slider .ba-cap--after::after{background:var(--caption-after-background,#2a2d79)}

/* ---- Blog list: later pages of /news live at ?offset= on live ---- */
section.page-section[data-offset][hidden]{display:none!important}

/* ---- Forms: stubbed submit notice ---- */
.form-stub-note{margin-top:1em;font-size:.9rem}
.form-stub-note[hidden]{display:none!important}

.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---- Social links block (live repeats this component style per block, keyed by #block-id;
        the :is(#page,#footer-sections) prefix keeps that id-level specificity) ---- */
:is(#page,#footer-sections) .sqs-block-socialaccountlinks .sqs-svg-icon--wrapper{--si-border-radius:0;--si-scale:2;--si-box-shadow:none;--si-fill-icon:var(--si-primary);--si-fill-icon-fade:var(--si-primary-faded);--si-fill-icon-hover:var(--si-primary);--si-fill-mask:transparent;--si-bg:transparent}
:is(#page,#footer-sections) .sqs-block-socialaccountlinks .sqs-svg-icon--list{justify-content:var(--social-icons-justify-content,center);column-gap:var(--social-icons-gap,12px);row-gap:var(--social-icons-gap,12px)}
:is(#page,#footer-sections) .sqs-block-socialaccountlinks .sqs-svg-icon--wrapper{width:var(--social-icons-dimension,20px);height:var(--social-icons-dimension,20px);margin:0;border:none;background-color:var(--si-bg,transparent);box-shadow:var(--si-box-shadow,none);border-radius:var(--si-border-radius,0)}
:is(#page,#footer-sections) .sqs-block-socialaccountlinks .sqs-svg-icon--wrapper>div{transform:scale(var(--si-scale,1))}
:is(#page,#footer-sections) .sqs-block-socialaccountlinks .sqs-svg-icon--social{fill:var(--si-fill-icon,transparent)}
:is(#page,#footer-sections) .sqs-block-socialaccountlinks .sqs-svg-icon--list:hover .sqs-svg-icon--wrapper .sqs-svg-icon--social{fill:var(--si-fill-icon-fade,var(--si-fill-icon,transparent))}
:is(#page,#footer-sections) .sqs-block-socialaccountlinks .sqs-svg-icon--list:hover .sqs-svg-icon--wrapper:hover .sqs-svg-icon--social{fill:var(--si-fill-icon-hover,var(--si-fill-icon,transparent))}

/* ---- First section clears the fixed header (live's JS writes this inline) ---- */
#page .page-section:first-child{padding-top:var(--header-height,128.766px)}

/* ---- Gallery grid: live's GalleryGrid JS writes these inline ---- */
.gallery-grid-wrapper{grid-template-columns:repeat(var(--mcols,2),1fr);grid-column-gap:var(--gut,1vw);grid-row-gap:var(--gut,1vw);width:auto}
@media (min-width:768px){.gallery-grid-wrapper{grid-template-columns:repeat(var(--cols,3),1fr)}}

/* ---- Gallery reel: live's GalleryReel JS sizes/positions items (30vh squares) ---- */
.gallery-reel{height:30vh}
.gallery-reel-wrapper{height:100%;overflow:hidden}
.gallery-reel-list{position:absolute;top:0;left:0;height:100%}
.gallery-reel-item{position:absolute;top:0;left:0;width:30vh;height:30vh}
.gallery-reel-item-wrapper,.gallery-reel-item-src{width:100%;height:100%}
.gallery-reel-item img{position:absolute;width:100%;height:100%;object-fit:cover}
.gallery-reel[data-controls=none] .gallery-reel-controls{display:none}

/* ---- Summary block autogrid (live's JS floats items; widths set by site.js) ---- */
.summary-item-list:after{content:"";display:block;clear:both}
.summary-thumbnail-container .summary-thumbnail{position:relative;overflow:hidden}
.summary-block-wrapper[data-design=carousel] .summary-thumbnail{height:0}
.summary-thumbnail-container .summary-thumbnail-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}

/* ---- Forms: live renders these with a React bundle whose CSS-module styles are not in
        the site stylesheets; values below are live getComputedStyle reads (/contact).
        Prefixed with #page so they win over the legacy .form-wrapper rules live also ships. ---- */
#page .react-form-contents .field-list{display:block}
#page .react-form-contents fieldset{border:0;margin:0;padding:0;min-width:0}
#page .react-form-contents legend{padding:0;margin:0}
#page .react-form-contents .form-item{margin:0 0 20px}
#page .react-form-contents .form-item.field{display:grid}
#page .react-form-contents fieldset.form-item.field{display:flex;flex-direction:column}
#page .react-form-contents fieldset.fields.name{display:flex;flex-wrap:wrap;column-gap:10px;margin:0}
#page .react-form-contents fieldset.fields.name legend{flex:0 0 100%}
#page .react-form-contents fieldset.fields.name .field{display:grid;flex:1 1 0;margin:0 0 20px}
#page .react-form-contents fieldset.fields.phone{display:block;margin:0}
#page .react-form-contents fieldset.fields.phone .field{display:grid;margin:0 0 20px;width:100%;float:none;padding:0}
#page .react-form-contents .title{display:block;padding:0 0 4px;margin:0;font-size:inherit;font-weight:400;letter-spacing:inherit;line-height:1.8em}
#page .react-form-contents .title-row,#page .react-form-contents .caption-text{display:flex;flex-wrap:wrap;column-gap:.48123em;align-items:baseline}
#page .react-form-contents .title-row span{display:block}
#page .react-form-contents .description.required{display:block;margin:0;font-size:16px;line-height:28.8px;letter-spacing:.16px}
#page .react-form-contents fieldset.fields legend .description.required,#page .react-form-contents .caption-text .required{line-height:16px}
#page .react-form-contents .caption{display:block;font-size:12px}
#page .react-form-contents .caption-text{margin:4px 0 0;padding:0 0 2px;font-size:16px;line-height:28.8px;letter-spacing:.16px}
#page .react-form-contents .caption-text:empty{display:none}
#page .react-form-contents input[type=text],#page .react-form-contents input[type=email],#page .react-form-contents input[type=url],#page .react-form-contents input[type=number],#page .react-form-contents textarea,#page .react-form-contents select{box-sizing:border-box;width:100%;margin:0;padding:10px;font:inherit;line-height:1.8em;letter-spacing:inherit;color:#000;background:#fafafa;border:1px solid #000;border-radius:0;outline:none}
#page .react-form-contents textarea{min-height:100px;height:100px;resize:vertical;display:block}
#page .react-form-contents input:focus,#page .react-form-contents textarea:focus,#page .react-form-contents select:focus{box-shadow:0 0 0 1px #000}
#page .react-form-contents .select-wrapper{position:relative}
#page .react-form-contents select{appearance:none;-webkit-appearance:none;padding:10px 32px 10px 10px;font-size:16px;line-height:28.8px;letter-spacing:.16px;cursor:pointer}
#page .react-form-contents select.show-placeholder:invalid,#page .react-form-contents select:has(option[value=""]:checked){color:rgba(0,0,0,.55)}
#page .react-form-contents .select-arrow{position:absolute;right:11px;top:19.39px;pointer-events:none;line-height:0}
#page .react-form-contents .option{margin:6px 0 0;font-size:16px;line-height:28.8px;letter-spacing:.16px}
#page .react-form-contents .option label{display:inline-flex;align-items:center;gap:11px;padding:0 4px 0 0;cursor:pointer}
#page .react-form-contents .option input[type=checkbox]{appearance:none;-webkit-appearance:none;display:flex;align-items:center;justify-content:center;flex:0 0 16px;width:16px;height:16px;margin:0;background:#fafafa;border:1px solid #000;border-radius:0;cursor:pointer}
#page .react-form-contents .option input[type=checkbox]::before{content:"";width:10.5px;height:10.5px;background:#fafafa;clip-path:polygon(13.29% 49.19%,3.89% 59.8%,40.98% 90%,96.95% 21.23%,86.94% 13.08%,85.97% 12.29%,38.95% 70.07%)}
#page .react-form-contents .option input[type=checkbox]:checked{background:#000}
#page .react-form-contents .form-button-wrapper{margin:0}
#page .react-form-contents button.form-submit-button{display:inline-block;cursor:pointer;border:0;border-radius:0;font-family:Arial,Helvetica,sans-serif;font-size:inherit;letter-spacing:.05em;padding:1em 1.67em;color:var(--tweak-form-block-button-text-color,#fff);background:var(--tweak-form-block-button-background-color,rgb(42,45,121));transition:opacity .1s linear}
#page .react-form-contents button.form-submit-button:hover{opacity:.8}

/* ---- Will Myers popup ("READ BIO" on /our-team opens the bio page in a modal).
        Values from the plugin's own defaults as measured on live. ---- */
.wm-popup-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;backdrop-filter:blur(5px)}
.wm-popup-overlay:before{content:'';position:absolute;inset:0;background-color:#000;opacity:.5}
.wm-popup-overlay.open{display:block}
.wm-popup-container{position:fixed;overflow-y:auto;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--siteBackgroundColor,#fff);max-width:800px;width:88vw;max-height:80vh;border-radius:5px;box-shadow:0 0 10px rgba(0,0,0,.3)}
.wm-popup-close{display:grid;place-items:center;position:absolute;top:10px;right:10px;border:none;background:hsla(0,0%,0%,.5);backdrop-filter:blur(15px);cursor:pointer;z-index:9;border-radius:50%;width:30px;height:30px;padding:6px;box-sizing:border-box}
.wm-popup-close svg{width:100%;height:100%;stroke:#fff;stroke-width:2;fill:none}
body.wm-popup-open{overflow:hidden}
.wm-popup-content .page-section:first-child{padding-top:unset!important}

/* ---- Classic gallery block thumbnails: live's ImageLoader crops each image to fill
        its square/4:3 frame with inline px sizes; object-fit gives the same crop ---- */
.sqs-gallery-block-grid .slide .margin-wrapper>a{position:relative;overflow:hidden;display:block}
.sqs-gallery-block-grid .slide .margin-wrapper img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sqs-gallery-aspect-ratio-square .slide .margin-wrapper>a{aspect-ratio:1/1}
.sqs-gallery-aspect-ratio-four-three .slide .margin-wrapper>a{aspect-ratio:4/3}
.sqs-gallery-aspect-ratio-standard .slide .margin-wrapper>a{aspect-ratio:3/2}
.sqs-gallery-aspect-ratio-widescreen .slide .margin-wrapper>a{aspect-ratio:16/9}
