.elementor-701 .elementor-element.elementor-element-f6de6c9{--display:flex;--min-height:68px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:stretch;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-701 .elementor-element.elementor-element-7450996f{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;--align-items:center;--gap:32px 32px;--row-gap:32px;--column-gap:32px;--flex-wrap:nowrap;}.elementor-701 .elementor-element.elementor-element-3eac83d0{--display:flex;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;}.elementor-701 .elementor-element.elementor-element-59bc6d9{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:stretch;--gap:24px 24px;--row-gap:24px;--column-gap:24px;--flex-wrap:nowrap;}.elementor-widget-nav-menu .elementor-nav-menu .elementor-item{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-text );fill:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus{color:var( --e-global-color-accent );fill:var( --e-global-color-accent );}.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
					.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after{background-color:var( --e-global-color-accent );}.elementor-widget-nav-menu .e--pointer-framed .elementor-item:before,
					.elementor-widget-nav-menu .e--pointer-framed .elementor-item:after{border-color:var( --e-global-color-accent );}.elementor-widget-nav-menu{--e-nav-menu-divider-color:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-701 .elementor-element.elementor-element-67024025 .elementor-menu-toggle{margin:0 auto;}.elementor-701 .elementor-element.elementor-element-197cb4ab{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:center;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--flex-wrap:nowrap;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-701 .elementor-element.elementor-element-4668b596{--display:flex;}.elementor-701 .elementor-element.elementor-element-17ea2666{--display:flex;--min-height:30vh;--justify-content:center;}.elementor-701 .elementor-element.elementor-element-6764747{--display:flex;}.elementor-701 .elementor-element.elementor-element-76b68c74{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;color:var( --e-global-color-primary );}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-701 .elementor-element.elementor-element-e39a47d{--display:flex;--min-height:30vh;--justify-content:flex-end;--overlay-opacity:1;--padding-top:5%;--padding-bottom:5%;--padding-left:5%;--padding-right:5%;}.elementor-701 .elementor-element.elementor-element-e39a47d:not(.elementor-motion-effects-element-type-background), .elementor-701 .elementor-element.elementor-element-e39a47d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://openrangecreationsco.com/wp-content/uploads/2026/09/static-map-placeholder.webp");background-position:center center;background-size:cover;}.elementor-701 .elementor-element.elementor-element-e39a47d::before, .elementor-701 .elementor-element.elementor-element-e39a47d > .elementor-background-video-container::before, .elementor-701 .elementor-element.elementor-element-e39a47d > .e-con-inner > .elementor-background-video-container::before, .elementor-701 .elementor-element.elementor-element-e39a47d > .elementor-background-slideshow::before, .elementor-701 .elementor-element.elementor-element-e39a47d > .e-con-inner > .elementor-background-slideshow::before, .elementor-701 .elementor-element.elementor-element-e39a47d > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(180deg, #26222000 0%, #00000033 79%);}.elementor-701 .elementor-element.elementor-element-313e443{--display:flex;}.elementor-701 .elementor-element.elementor-element-feff485{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-end;--gap:16px 16px;--row-gap:16px;--column-gap:16px;}.elementor-701 .elementor-element.elementor-element-b4b5875 .elementor-heading-title{color:#FFFFFF;}.elementor-701 .elementor-element.elementor-element-df7d68f{color:#FFFFFF;}.elementor-701 .elementor-element.elementor-element-68c206a{--display:flex;}.elementor-701 .elementor-element.elementor-element-72fb5a68{--display:flex;}.elementor-701 .elementor-element.elementor-element-37fcd9c0{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;}.elementor-701 .elementor-element.elementor-element-519146b1{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--flex-wrap:wrap;}.elementor-701 .elementor-element.elementor-element-627adf47{--display:flex;}.elementor-701 .elementor-element.elementor-element-17ffdfff{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:40px 40px;--row-gap:40px;--column-gap:40px;}.elementor-701 .elementor-element.elementor-element-6113c78b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;}.elementor-701 .elementor-element.elementor-element-105a192b .elementor-heading-title{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-2db5c9d3{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--flex-wrap:wrap;}.elementor-701 .elementor-element.elementor-element-432b215f{--grid-template-columns:repeat(0, auto);text-align:center;--grid-column-gap:5px;--grid-row-gap:0px;}.elementor-701 .elementor-element.elementor-element-432b215f .elementor-social-icon i{color:var( --e-global-color-primary );}.elementor-701 .elementor-element.elementor-element-432b215f .elementor-social-icon svg{fill:var( --e-global-color-primary );}.elementor-701 .elementor-element.elementor-element-1b314735{--grid-template-columns:repeat(0, auto);text-align:center;--grid-column-gap:5px;--grid-row-gap:0px;}.elementor-701 .elementor-element.elementor-element-1b314735 .elementor-social-icon i{color:var( --e-global-color-primary );}.elementor-701 .elementor-element.elementor-element-1b314735 .elementor-social-icon svg{fill:var( --e-global-color-primary );}.elementor-701 .elementor-element.elementor-element-118b6bb1{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--flex-wrap:wrap;}.elementor-701 .elementor-element.elementor-element-4fa63105{--display:flex;}.elementor-701 .elementor-element.elementor-element-2803f978 img{width:100%;}.elementor-701 .elementor-element.elementor-element-15b8ff1f{--display:flex;}.elementor-701 .elementor-element.elementor-element-5fcc3d48{--display:flex;}.elementor-701 .elementor-element.elementor-element-859cffd{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-701 .elementor-element.elementor-element-859cffd:not(.elementor-motion-effects-element-type-background), .elementor-701 .elementor-element.elementor-element-859cffd > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-f81435f{--display:flex;--min-height:40px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-icon-list .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-icon-list .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-family:var( --e-global-typography-text-font-family ), Sans-serif;}.elementor-widget-icon-list .elementor-icon-list-text{color:var( --e-global-color-secondary );}.elementor-701 .elementor-element.elementor-element-1b6e4e4 .elementor-icon-list-icon i{color:#FFFFFF;transition:color 0.3s;}.elementor-701 .elementor-element.elementor-element-1b6e4e4 .elementor-icon-list-icon svg{fill:#FFFFFF;transition:fill 0.3s;}.elementor-701 .elementor-element.elementor-element-1b6e4e4{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-701 .elementor-element.elementor-element-1b6e4e4 .elementor-icon-list-text{color:#FFFFFF;transition:color 0.3s;}.elementor-701 .elementor-element.elementor-element-56375a6{--grid-template-columns:repeat(0, auto);text-align:center;--icon-size:19px;--grid-column-gap:13px;--grid-row-gap:0px;}.elementor-701 .elementor-element.elementor-element-56375a6 .elementor-social-icon{background-color:#FFFFFF00;}.elementor-701 .elementor-element.elementor-element-56375a6 .elementor-social-icon i{color:#FFFFFF;}.elementor-701 .elementor-element.elementor-element-56375a6 .elementor-social-icon svg{fill:#FFFFFF;}.elementor-701 .elementor-element.elementor-element-56375a6 .elementor-social-icon:hover i{color:var( --e-global-color-text );}.elementor-701 .elementor-element.elementor-element-56375a6 .elementor-social-icon:hover svg{fill:var( --e-global-color-text );}.elementor-701 .elementor-element.elementor-element-1dd5e3ba{--display:flex;--padding-top:14px;--padding-bottom:14px;--padding-left:0px;--padding-right:0px;}.elementor-701 .elementor-element.elementor-element-486f4807{--display:flex;--min-height:0px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:32px 32px;--row-gap:32px;--column-gap:32px;--flex-wrap:nowrap;}.elementor-701 .elementor-element.elementor-element-72090fd5{--display:flex;}.elementor-701 .elementor-element.elementor-element-4b3b0fd1{text-align:start;}.elementor-701 .elementor-element.elementor-element-4b3b0fd1 img{height:50px;object-fit:contain;object-position:center left;}.elementor-701 .elementor-element.elementor-element-38e2a448{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:stretch;--gap:24px 24px;--row-gap:24px;--column-gap:24px;--flex-wrap:wrap;}.elementor-701 .elementor-element.elementor-element-5c568347{width:100%;max-width:100%;}.elementor-701 .elementor-element.elementor-element-5c568347 .elementor-menu-toggle{margin-left:auto;}.elementor-701 .elementor-element.elementor-element-5c568347 div.elementor-menu-toggle{color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-5c568347 div.elementor-menu-toggle svg{fill:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-5c568347 div.elementor-menu-toggle:hover, .elementor-701 .elementor-element.elementor-element-5c568347 div.elementor-menu-toggle:focus{color:var( --e-global-color-primary );}.elementor-701 .elementor-element.elementor-element-5c568347 div.elementor-menu-toggle:hover svg, .elementor-701 .elementor-element.elementor-element-5c568347 div.elementor-menu-toggle:focus svg{fill:var( --e-global-color-primary );}.elementor-701 .elementor-element.elementor-element-7a8aa97e{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--align-items:center;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--flex-wrap:wrap;}.elementor-701 .elementor-element.elementor-element-6cbe91db{--display:flex;}.elementor-701 .elementor-element.elementor-element-29ee4e4b{--display:flex;}.elementor-701 .elementor-element.elementor-element-7b3b6582{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:32px 32px;--row-gap:32px;--column-gap:32px;}.elementor-701 .elementor-element.elementor-element-27bdbdfe{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-start;--flex-wrap:nowrap;}.elementor-701 .elementor-element.elementor-element-34352aa0{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:12px 12px;--row-gap:12px;--column-gap:12px;}.elementor-701 .elementor-element.elementor-element-050a03c{text-align:start;}.elementor-701 .elementor-element.elementor-element-050a03c img{height:50px;object-fit:contain;object-position:center left;}.elementor-701 .elementor-element.elementor-element-4e13cb5{--grid-template-columns:repeat(0, auto);text-align:left;--grid-column-gap:5px;--grid-row-gap:0px;}.elementor-701 .elementor-element.elementor-element-4e13cb5 .elementor-social-icon i{color:var( --e-global-color-primary );}.elementor-701 .elementor-element.elementor-element-4e13cb5 .elementor-social-icon svg{fill:var( --e-global-color-primary );}.elementor-701 .elementor-element.elementor-element-464fbe27{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-701 .elementor-element.elementor-element-6c6a4257{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-701 .elementor-element.elementor-element-875a871{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-701 .elementor-element.elementor-element-7657314c{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:flex-end;--flex-wrap:wrap;}.elementor-701 .elementor-element.elementor-element-7fb53d57{--display:flex;--min-height:78vh;--justify-content:center;--overlay-opacity:0.45;}.elementor-701 .elementor-element.elementor-element-7fb53d57:not(.elementor-motion-effects-element-type-background), .elementor-701 .elementor-element.elementor-element-7fb53d57 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://openrangecreationsco.com/wp-content/plugins/elementor/assets/images/placeholder.png");background-position:center center;background-size:cover;}.elementor-701 .elementor-element.elementor-element-7fb53d57::before, .elementor-701 .elementor-element.elementor-element-7fb53d57 > .elementor-background-video-container::before, .elementor-701 .elementor-element.elementor-element-7fb53d57 > .e-con-inner > .elementor-background-video-container::before, .elementor-701 .elementor-element.elementor-element-7fb53d57 > .elementor-background-slideshow::before, .elementor-701 .elementor-element.elementor-element-7fb53d57 > .e-con-inner > .elementor-background-slideshow::before, .elementor-701 .elementor-element.elementor-element-7fb53d57 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:#000000;--background-overlay:'';}.elementor-701 .elementor-element.elementor-element-3f74a797{--display:flex;}.elementor-701 .elementor-element.elementor-element-7745d1cf{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;}.elementor-701 .elementor-element.elementor-element-93b898c{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--flex-wrap:wrap;}.elementor-701 .elementor-element.elementor-element-a29f6dc{--display:flex;}.elementor-701 .elementor-element.elementor-element-56937e82{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:40px 40px;--row-gap:40px;--column-gap:40px;}.elementor-701 .elementor-element.elementor-element-45d1d93{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;}.elementor-701 .elementor-element.elementor-element-1744a107{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;}.elementor-701 .elementor-element.elementor-element-7edf1e31{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:4px 4px;--row-gap:4px;--column-gap:4px;}.elementor-701 .elementor-element.elementor-element-5eac0583 .elementor-heading-title{color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-1d1c8790{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:4px 4px;--row-gap:4px;--column-gap:4px;}.elementor-701 .elementor-element.elementor-element-3401ab83 .elementor-heading-title{color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-27f79520{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:4px 4px;--row-gap:4px;--column-gap:4px;}.elementor-701 .elementor-element.elementor-element-414a929b .elementor-heading-title{color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-cb8df63{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:4px 4px;--row-gap:4px;--column-gap:4px;}.elementor-701 .elementor-element.elementor-element-3df81e5c .elementor-heading-title{color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-6fa3d0f1{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:4px 4px;--row-gap:4px;--column-gap:4px;}.elementor-701 .elementor-element.elementor-element-78de25d6 .elementor-heading-title{color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-69e4ee93{--display:flex;}.elementor-701 .elementor-element.elementor-element-6c57f391{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:64px 64px;--row-gap:64px;--column-gap:64px;--flex-wrap:nowrap;}.elementor-701 .elementor-element.elementor-element-3f429782{--display:flex;--gap:16px 16px;--row-gap:16px;--column-gap:16px;}.elementor-701 .elementor-element.elementor-element-be8bf12{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--flex-wrap:wrap;--margin-top:30px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-701 .elementor-element.elementor-element-2358d7aa{--display:flex;}.elementor-701 .elementor-element.elementor-element-184dbdbe img{border-radius:4px 4px 4px 4px;box-shadow:0px 0px 15px 0px rgba(0, 0, 0, 0.05);}.elementor-701 .elementor-element.elementor-element-656ae800{--display:flex;}.elementor-701 .elementor-element.elementor-element-1ce047b{--display:flex;}.elementor-701 .elementor-element.elementor-element-3e457e26{--display:flex;}.elementor-701 .elementor-element.elementor-element-58c6771b{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:nowrap;}.elementor-701 .elementor-element.elementor-element-43a7bb1{--display:flex;}.elementor-701 .elementor-element.elementor-element-43a7bb1:not(.elementor-motion-effects-element-type-background), .elementor-701 .elementor-element.elementor-element-43a7bb1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://openrangecreationsco.com/wp-content/uploads/2026/09/static-map-placeholder.webp");background-position:center center;background-size:cover;}.elementor-701 .elementor-element.elementor-element-a12d552{--spacer-size:300px;}.elementor-701 .elementor-element.elementor-element-14c384b6{--display:flex;--padding-top:5%;--padding-bottom:5%;--padding-left:5%;--padding-right:5%;}.elementor-701 .elementor-element.elementor-element-6b3bb923{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;}.elementor-701 .elementor-element.elementor-element-2ee3e523{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 30px) 0px;}.elementor-701 .elementor-element.elementor-element-d1b2abf{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:5px 5px;--row-gap:5px;--column-gap:5px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-701 .elementor-element.elementor-element-bf097af{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-icon-box.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-widget-icon-box.elementor-view-framed .elementor-icon, .elementor-widget-icon-box.elementor-view-default .elementor-icon{fill:var( --e-global-color-primary );color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-title, .elementor-widget-icon-box .elementor-icon-box-title a{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;}.elementor-widget-icon-box .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box:has(:hover) .elementor-icon-box-title,
					 .elementor-widget-icon-box:has(:focus) .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-description{font-family:var( --e-global-typography-text-font-family ), Sans-serif;color:var( --e-global-color-text );}.elementor-701 .elementor-element.elementor-element-cf603e0 .elementor-icon-box-wrapper{gap:15px;}.elementor-701 .elementor-element.elementor-element-cf603e0.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-cf603e0.elementor-view-framed .elementor-icon, .elementor-701 .elementor-element.elementor-element-cf603e0.elementor-view-default .elementor-icon{fill:var( --e-global-color-accent );color:var( --e-global-color-accent );border-color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-cf603e0 .elementor-icon{font-size:20px;padding:5px;}.elementor-701 .elementor-element.elementor-element-b14e966 .elementor-icon-box-wrapper{gap:15px;}.elementor-701 .elementor-element.elementor-element-b14e966.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-b14e966.elementor-view-framed .elementor-icon, .elementor-701 .elementor-element.elementor-element-b14e966.elementor-view-default .elementor-icon{fill:var( --e-global-color-accent );color:var( --e-global-color-accent );border-color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-b14e966 .elementor-icon{font-size:20px;padding:5px;}.elementor-701 .elementor-element.elementor-element-21c9aa6e{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--flex-wrap:wrap;}.elementor-701 .elementor-element.elementor-element-36ed172 .elementor-icon-box-wrapper{gap:15px;}.elementor-701 .elementor-element.elementor-element-36ed172.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-36ed172.elementor-view-framed .elementor-icon, .elementor-701 .elementor-element.elementor-element-36ed172.elementor-view-default .elementor-icon{fill:var( --e-global-color-accent );color:var( --e-global-color-accent );border-color:var( --e-global-color-accent );}.elementor-701 .elementor-element.elementor-element-36ed172 .elementor-icon{font-size:20px;padding:5px;}.elementor-701 .elementor-element.elementor-element-2d297177{--display:flex;}.elementor-701 .elementor-element.elementor-element-5e762a9b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:40px 40px;--row-gap:40px;--column-gap:40px;}.elementor-701 .elementor-element.elementor-element-3179ce72{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;}.elementor-701 .elementor-element.elementor-element-3875f09c{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:stretch;--gap:30px 30px;--row-gap:30px;--column-gap:30px;--flex-wrap:wrap;}.elementor-701 .elementor-element.elementor-element-3732015e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-701 .elementor-element.elementor-element-29341493{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-701 .elementor-element.elementor-element-1edab6b9{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-701 .elementor-element.elementor-element-6109f042{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-701 .elementor-element.elementor-element-180eabcc{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-701 .elementor-element.elementor-element-43254ccc{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-701 .elementor-element.elementor-element-a578caa{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-701 .elementor-element.elementor-element-46e18b34{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-701 .elementor-element.elementor-element-221ce30{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-701 .elementor-element.elementor-element-6b2ad46{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-701 .elementor-element.elementor-element-20f9b76{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-701 .elementor-element.elementor-element-75635ad{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-701 .elementor-element.elementor-element-98a7032{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-701 .elementor-element.elementor-element-3e107db{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-701 .elementor-element.elementor-element-703e477{--display:flex;}@media(max-width:1024px){.elementor-701 .elementor-element.elementor-element-58c6771b{--flex-wrap:nowrap;}.elementor-701 .elementor-element.elementor-element-d1b2abf{--flex-direction:column-reverse;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-cf603e0{width:100%;max-width:100%;}.elementor-701 .elementor-element.elementor-element-b14e966{width:100%;max-width:100%;}.elementor-701 .elementor-element.elementor-element-36ed172{width:100%;max-width:100%;}}@media(min-width:768px){.elementor-701 .elementor-element.elementor-element-3eac83d0{--width:18%;}.elementor-701 .elementor-element.elementor-element-59bc6d9{--width:60%;}.elementor-701 .elementor-element.elementor-element-197cb4ab{--width:22%;}.elementor-701 .elementor-element.elementor-element-519146b1{--width:100%;}.elementor-701 .elementor-element.elementor-element-4fa63105{--width:31%;}.elementor-701 .elementor-element.elementor-element-15b8ff1f{--width:31%;}.elementor-701 .elementor-element.elementor-element-5fcc3d48{--width:31%;}.elementor-701 .elementor-element.elementor-element-72090fd5{--width:30%;}.elementor-701 .elementor-element.elementor-element-7a8aa97e{--width:30%;}.elementor-701 .elementor-element.elementor-element-34352aa0{--width:40%;}.elementor-701 .elementor-element.elementor-element-464fbe27{--width:20%;}.elementor-701 .elementor-element.elementor-element-6c6a4257{--width:20%;}.elementor-701 .elementor-element.elementor-element-875a871{--width:20%;}.elementor-701 .elementor-element.elementor-element-93b898c{--width:100%;}.elementor-701 .elementor-element.elementor-element-7edf1e31{--width:20%;}.elementor-701 .elementor-element.elementor-element-1d1c8790{--width:20%;}.elementor-701 .elementor-element.elementor-element-27f79520{--width:20%;}.elementor-701 .elementor-element.elementor-element-cb8df63{--width:20%;}.elementor-701 .elementor-element.elementor-element-6fa3d0f1{--width:20%;}.elementor-701 .elementor-element.elementor-element-3f429782{--width:48%;}.elementor-701 .elementor-element.elementor-element-be8bf12{--width:100%;}.elementor-701 .elementor-element.elementor-element-2358d7aa{--width:48%;}.elementor-701 .elementor-element.elementor-element-43a7bb1{--width:48%;}.elementor-701 .elementor-element.elementor-element-14c384b6{--width:100%;}.elementor-701 .elementor-element.elementor-element-bf097af{--width:50%;}.elementor-701 .elementor-element.elementor-element-21c9aa6e{--width:100%;}.elementor-701 .elementor-element.elementor-element-3732015e{--width:22%;}.elementor-701 .elementor-element.elementor-element-1edab6b9{--width:22%;}.elementor-701 .elementor-element.elementor-element-180eabcc{--width:22%;}.elementor-701 .elementor-element.elementor-element-a578caa{--width:22%;}.elementor-701 .elementor-element.elementor-element-221ce30{--width:22%;}.elementor-701 .elementor-element.elementor-element-20f9b76{--width:22%;}.elementor-701 .elementor-element.elementor-element-98a7032{--width:22%;}}@media(max-width:1024px) and (min-width:768px){.elementor-701 .elementor-element.elementor-element-7a8aa97e{--width:0px;}.elementor-701 .elementor-element.elementor-element-14c384b6{--width:100%;}.elementor-701 .elementor-element.elementor-element-bf097af{--width:100%;}}@media(max-width:767px){.elementor-701 .elementor-element.elementor-element-7450996f{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-59bc6d9{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-197cb4ab{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-519146b1{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-2db5c9d3{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-118b6bb1{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-4fa63105{--width:100%;}.elementor-701 .elementor-element.elementor-element-15b8ff1f{--width:100%;}.elementor-701 .elementor-element.elementor-element-5fcc3d48{--width:100%;}.elementor-701 .elementor-element.elementor-element-486f4807{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-38e2a448{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-7a8aa97e{--width:0px;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-27bdbdfe{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-7657314c{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-93b898c{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-1744a107{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-7edf1e31{--width:100%;}.elementor-701 .elementor-element.elementor-element-1d1c8790{--width:100%;}.elementor-701 .elementor-element.elementor-element-27f79520{--width:100%;}.elementor-701 .elementor-element.elementor-element-cb8df63{--width:100%;}.elementor-701 .elementor-element.elementor-element-6fa3d0f1{--width:100%;}.elementor-701 .elementor-element.elementor-element-6c57f391{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-3f429782{--width:100%;}.elementor-701 .elementor-element.elementor-element-be8bf12{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-2358d7aa{--width:100%;}.elementor-701 .elementor-element.elementor-element-58c6771b{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-43a7bb1{--width:100%;}.elementor-701 .elementor-element.elementor-element-14c384b6{--width:100%;}.elementor-701 .elementor-element.elementor-element-cf603e0 .elementor-icon-box-wrapper{text-align:start;}.elementor-701 .elementor-element.elementor-element-cf603e0 .elementor-icon{font-size:15px;}.elementor-701 .elementor-element.elementor-element-b14e966 .elementor-icon-box-wrapper{text-align:start;}.elementor-701 .elementor-element.elementor-element-b14e966 .elementor-icon{font-size:15px;}.elementor-701 .elementor-element.elementor-element-21c9aa6e{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-36ed172 .elementor-icon-box-wrapper{text-align:start;}.elementor-701 .elementor-element.elementor-element-36ed172 .elementor-icon{font-size:15px;}.elementor-701 .elementor-element.elementor-element-3875f09c{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-701 .elementor-element.elementor-element-3732015e{--width:100%;}.elementor-701 .elementor-element.elementor-element-1edab6b9{--width:100%;}.elementor-701 .elementor-element.elementor-element-180eabcc{--width:100%;}.elementor-701 .elementor-element.elementor-element-a578caa{--width:100%;}.elementor-701 .elementor-element.elementor-element-221ce30{--width:100%;}.elementor-701 .elementor-element.elementor-element-20f9b76{--width:100%;}.elementor-701 .elementor-element.elementor-element-98a7032{--width:100%;}}/* Start custom CSS for icon-box, class: .elementor-element-cf603e0 */.hours * {
    background:none !important;
    border:0;
    padding:2px 10px;
    font-size:small;
}
.hours td:not(last-child){
    border-bottom:1px solid var(--recessed);
}
.hours {
    width:unset;
}/* End custom CSS */
/* Start custom CSS for icon-box, class: .elementor-element-b14e966 */.hours * {
    background:none !important;
    border:0;
    padding:2px 10px;
    font-size:small;
}
.hours td:not(last-child){
    border-bottom:1px solid var(--recessed);
}
.hours {
    width:unset;
}/* End custom CSS */
/* Start custom CSS for icon-box, class: .elementor-element-36ed172 */.hours * {
    background:none !important;
    border:0;
    padding:2px 10px;
    font-size:small;
}
.hours td:not(last-child){
    border-bottom:1px solid var(--recessed);
}
.hours {
    width:unset;
}/* End custom CSS */
/* Start custom CSS */:root {
  --brand: #1F5F4B;        --accent: #1F5F4B;
  --chrome: #1F5F4B;
  --ground: #FAFAFB;      --recessed: #EFF2F2;
  --ink: #1A1A1A;            --ink-muted: #5C5C5C;
  --reversed: #FFFFFF;  --hairline: #E0E7E6;
  --dark: #151E1D;
  --band-tint: #F1F4F4;  --chrome-rgb: 31, 95, 75;
  /* Two shadows, and only two. Both are barely there: a shadow you can SEE is
     a shadow doing decoration rather than telling you a thing is lifted off
     the page. Cast in a brand-tinted near-black, never pure black. */
  --shadow-sm: 0 1px 2px rgba(15, 29, 27, .04), 0 2px 6px rgba(15, 29, 27, .05);
  --shadow-md: 0 2px 4px rgba(15, 29, 27, .05), 0 8px 22px rgba(15, 29, 27, .08);
  --pad: clamp(64px, 6.5vw, 112px);
  --gutter: clamp(20px, 5vw, 48px);
  --radius: 4px;
  /* See .or-site-header: a known height, not a derived one. */
  --header-h: 68px;  --header-h-compact: 52px;
  /* TWO grid widths. The content column is the narrower one, because its width
     is a reading decision. The chrome - top bar, header, footer - runs wider:
     it is the FRAME around the content, and a frame that sits inside the thing
     it frames looks accidental. Wider also puts the logo and the call to
     action nearer the page edges, which is where the eye goes looking for
     them. Both are still grids; neither is full-bleed. */
  --grid: 1200px;  --grid-wide: 1350px;
  --measure: 65ch;
  /* Relationship spacing. NOT one uniform gap - see SPACE in design-systems.or-ts. */
  --tight: 8px;  --snug: 16px;
  --loose: 32px;  --block: 64px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--ground); color: var(--ink);
  font: 17px/1.65 ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  overflow-x: hidden;                       /* invariant 1 */
}

/* ---- type ------------------------------------------------------------- */
h1, h2, h3 {
  margin: 0; line-height: 1.12; font-weight: 700; letter-spacing: -0.015em;
  /* No orphan on the last line of a heading, and no ugly break in a two-word
     phrase. Falls back to normal wrapping where unsupported, so it costs
     nothing to have. */
  text-wrap: pretty;
}
/* NEVER text-wrap: balance, anywhere, in any system. It is pretty or it is
   nothing. Balancing re-flows the whole heading to even the line lengths, so
   the same words break differently at two widths a few pixels apart and a
   headline approved at one size is a different shape at another. Pretty only
   rescues the last line and leaves the rest alone, which is the part that was
   actually wrong. Checked by assertNoBalance, not trusted. */
/* Body copy too - same orphan problem, and cheaper than fixing widows by hand. */
p, li { text-wrap: pretty; }
/* The hero is off the interior scale on purpose: a restaurant wants a loud
   hero and quiet interior headings, and one ratio cannot do both. */
h1 { font-size: clamp(34px, 6.2vw, 56px); }
h2 { font-size: clamp(26px, 3.4vw, 41px); }
h3 { font-size: 23px; line-height: 1.25; }
p  { margin: 0; max-width: var(--measure); }
.or-lead { font-size: 19px; color: var(--ink-muted); }
.or-eyebrow {
  font-size: 13px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--accent);
}

/* ---- the grid --------------------------------------------------------- */
/* EVERY section puts its content in the same column, full-bleed ones
   included, so nothing drifts out of alignment as you scroll. */
.or-section { padding: var(--pad) var(--gutter); }
.or-inner   { max-width: var(--grid); margin: 0 auto; width: 100%; }
.or-inner.or-wide { max-width: var(--grid-wide); }

/* ---- relationship spacing --------------------------------------------- */
/* An eyebrow, its heading and its paragraph are ONE idea and are spaced
   tightly. Space between ideas is larger than space within one - that is the
   whole of it, and using a single uniform gap is what made this look off. */
.or-group { display: flex; flex-direction: column; align-items: inherit; }
.or-group > .or-eyebrow + * { margin-top: var(--tight); }
.or-group > h1 + *, .or-group > h2 + *, .or-group > h3 + * { margin-top: var(--snug); }
.or-group > p + p { margin-top: var(--snug); }
.or-group > p + .or-btns, .or-group > .or-lead + .or-btns { margin-top: var(--loose); }
.or-group > .or-duo-list + .or-btns { margin-top: var(--loose); }
.or-group > h2 + .or-duo-list { margin-top: var(--snug); }
.or-blocks { display: flex; flex-direction: column; gap: var(--block); }

/* ---- surfaces --------------------------------------------------------- */
.or-ground   { background: var(--ground); }

/* A Recessed section that FADES IN from the page ground and steps out at the
   bottom. It does the chunking an angled divider was doing — marking where one
   part of a long argument ends — without the clip-path, and without the 2018
   date stamp an angled edge carries. One background declaration, and it cannot
   go out of fashion because it has no shape. */
.or-recessed { background: linear-gradient(to bottom, var(--ground) 0%, var(--recessed) 15%); }
.or-statement{ background: var(--brand); color: var(--reversed); }
.or-statement .or-eyebrow { color: rgba(255,255,255,.75); }
.or-statement p { color: rgba(255,255,255,.88); }

/* ---- buttons ---------------------------------------------------------- */
.or-btns { display: flex; gap: var(--snug); flex-wrap: wrap; align-items: center; }
/* 8 and 32, both on the spacing scale - the previous 15/30 was on neither.
   A wide, shallow button: the horizontal padding is what makes it read as a
   button, and the vertical padding was only ever making it tall.

   inline-flex rather than inline-block at every width, so the label stays
   centered when the mobile rule below raises the height. One layout mode, not
   one per breakpoint. */
.or-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 8px 32px; border-radius: var(--radius);
  font-size: 16px; font-weight: 600; text-decoration: none;
  background: var(--accent); color: #fff; border: 2px solid var(--accent);
}
.or-btn-out { background: transparent; color: var(--brand); border-color: var(--brand); }
.or-statement .or-btn { background: #fff; color: var(--brand); border-color: #fff; }
.or-statement .or-btn-out { background: transparent; color: #fff; border-color: rgba(255,255,255,.75); }
.or-photo .or-btn-out { color: #fff; border-color: rgba(255,255,255,.75); }

/* ---- photographic bands ----------------------------------------------- */
/* Vertical placement is a rule, not a system setting, and the two cases differ:

   THE OPENING HERO sits at the BOTTOM. It is the tallest thing on the site and
   the only one whose photograph has room to be a photograph - bottom-aligned
   text leaves the top two-thirds of the image alone, and it puts the headline
   next to the fold, which is where the eye already is when the page settles.
   It is also where the scrim is darkest, so the two agree.

   EVERY LATER BAND is CENTERED. A later band is half the height, so there is no
   spare image to protect, and bottom-aligned text in a short band reads as
   text that has fallen over rather than text that has been placed. */
.or-photo {
  position: relative; display: flex; align-items: center;
  background-size: cover; background-position: center;
  color: var(--reversed); padding: var(--pad) var(--gutter);
}
.or-photo.or-hero { align-items: flex-end; }
.or-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.65) 0%, rgba(0,0,0,.30) 45%, rgba(0,0,0,0) 80%); }
/* Content sits in the same 1200px column as every other section. */
.or-photo .or-inner { position: relative; z-index: 1; }
.or-photo .or-group { align-items: center; text-align: center; }
.or-photo .or-group p { margin-inline: auto; }
.or-photo p { color: rgba(255,255,255,.92); }
.or-photo .or-eyebrow { color: rgba(255,255,255,.8); }
.or-hero { min-height: 78vh; }

/* ---- interior title band ---------------------------------------------- */
/* A PHOTOGRAPH, but a short one. ~30vh against the hero's
   78vh.

   The treatment is the hero's - full-bleed image, scrim, reversed text - and
   the height is not, because height is what makes the opening hero the opening
   hero. An interior page is reached deliberately: someone at /about already
   knows where they are, and a full-height photograph delays the thing they came
   for. Borrow the language, not the drama.

   NO PHOTOGRAPH, NO PHOTOGRAPHIC BAND. Where the page has no image of its own
   it falls back to Ground rather than reaching for stock to fill the slot -
   invariant 8, and the same rule that turns the contact map into a photograph
   when there is no address. */
.or-title-band {
  position: relative; display: flex; align-items: center;
  min-height: 30vh;
  padding: var(--pad) var(--gutter);
  background: var(--ground);
}
.or-title-band h1 { font-size: clamp(30px, 4.4vw, 46px); }
.or-title-band .or-lead { margin-top: var(--snug); }

/* The photographic variant. Same scrim as the hero, so a headline is legible
   over an unknown image by the same means in both places. */
.or-title-band.or-photo { color: var(--reversed); background-size: cover; background-position: center; }
.or-title-band.or-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.65) 0%, rgba(0,0,0,.30) 45%, rgba(0,0,0,0) 80%); }
.or-title-band.or-photo .or-inner { position: relative; z-index: 1; }
.or-title-band.or-photo p { color: rgba(255,255,255,.92); }
.or-title-band.or-photo .or-eyebrow { color: rgba(255,255,255,.8); }

/* THE QUIET VARIANT. A tinted band with a faint pattern on it, and ordinary
   ink - no photograph, no scrim, no reversed text.

   Drawn in CSS rather than served as an image. A texture file is a request, a
   thing that can 404, and a fixed resolution that has to be decided in advance;
   two gradients are none of those and are the same three lines at any width.

   Three layers, each doing one job:
     1. a soft off-center highlight, so the band is not a dead flat rectangle;
     2. hairlines at 135 degrees, 6px apart at 4.5% - close to the threshold of
        visible, which is the point. A texture you notice is a pattern, and a
        pattern behind a headline is competing with it;
     3. the tint itself, mixed from the site's own chrome color so the band
        belongs to this site rather than looking like a stock paper texture. */
.or-title-band.or-texture {
  background-color: var(--band-tint);
  background-image:
    radial-gradient(120% 90% at 12% 0%, rgba(255,255,255,.6), transparent 62%),
    repeating-linear-gradient(135deg,
      rgba(var(--chrome-rgb), .045) 0 1px,
      transparent 1px 6px);
  border-bottom: 1px solid var(--hairline);
}

.or-band { min-height: 39vh; }

/* ---- components ------------------------------------------------------- */
.or-cards { display: flex; gap: var(--snug); }
.or-card {
  flex: 1 1 0; min-width: 0; background: #fff; border: 1px solid var(--hairline);
  border-radius: var(--radius); overflow: hidden;
  display: flex; flex-direction: column;
  /* A card is a thing sitting ON the page, so it gets the lift. The border
     stays: on a tinted surface the shadow alone does not define the edge. */
  box-shadow: var(--shadow-sm);
}
/* NO HOVER STATE. These cards are not links. A thing that reacts to the cursor
   is promising it can be pressed, and a card that lifts and then does nothing
   is a small lie told to every visitor who tries it. Hover belongs to anchors
   and buttons, and nothing else. */
a.or-card, button.or-btn { transition: box-shadow .18s ease, transform .18s ease; }
button.or-btn { cursor: pointer; font-family: inherit; }
a.or-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
/* A photograph at the top of the card. Three text cards in a row are three
   paragraphs wearing borders; a picture is the thing people actually look at.

   Ordinary landscape, never square: a card is already a narrow column, and a
   square picture at the top of one pushes the heading that explains it too far
   down. Square crops belong in the two-column rows, where the picture has half
   a page to fill. */
.or-card img {
  width: 100%; aspect-ratio: 1.5000;
  object-fit: cover; display: block;
}
.or-card-body { padding: var(--loose); display: flex; flex-direction: column; }
.or-card h3 + p { margin-top: var(--tight); }
.or-card p { font-size: 16px; color: var(--ink-muted); max-width: none; }

/* The actionable section under the hero: photograph on one side, the two
   things you want pressed on the other. */
.or-feature { display: flex; gap: clamp(32px, 5vw, 80px); align-items: center; }
.or-feature > * { flex: 1 1 0; min-width: 0; }
/* Near-square, and the SAME ratio the duo band uses - they are one situation,
   a picture beside a block of text, so they take one value. The cap stops a
   1:1 crop becoming a 900px wall on a wide monitor: past that height the
   picture crops instead of growing. */
.or-feature img, .or-split img {
  width: 100%; aspect-ratio: 1.5000;
  max-height: 62vh; object-fit: cover;
  border-radius: var(--radius); display: block;
  /* A photograph on a white ground has no edge of its own. The shadow gives it
     one without a border, which would fight the image. */
  box-shadow: var(--shadow-md);
}
.or-feature.or-rev { flex-direction: row-reverse; }

.or-split { display: flex; gap: clamp(32px, 5vw, 80px); align-items: center; }
.or-split > * { flex: 1 1 0; min-width: 0; }

/* A grid, not a flex row, because a photo grid is the one place invariant 5
   does not apply: photographs are not a row of content blocks that has to
   become a column, they are a set. One photograph per screen on a phone turns
   a nine-image grid into nine screens of scrolling and reads as nine separate
   statements. Two columns keeps it a set. */
.or-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--snug); }
.or-gallery img {
  width: 100%; aspect-ratio: 1; object-fit: cover;
  border-radius: var(--radius); display: block; box-shadow: var(--shadow-sm);
}

/* NO SHAPE DIVIDERS. Business separates Recessed from Ground with a gradient
   instead — same chunking job, impossible to date, one background declaration
   rather than a clip-path. See recessedEdge in design-systems.or-ts.

   The clip-path version lived here until 12 August 2026, guarded by a
   sys.or-shapeDividers field that does not exist on DesignSystem — so the guard
   had been evaluating to an empty string since the day dividers were dropped.
   Nothing caught it while the CSS sat in an untyped .or-mjs; moving it into a .or-ts
   file surfaced it in one compile. */

/* The top bar is desktop-only. Below this it cannot hold one line, and the
   same facts are in the footer. */
@media (max-width: 1024px) { .or-topbar { display: none; } }

@media (max-width: 900px) {
  /* Once every row is one column wide, every block is alone in its row - so
     the centering rule above applies to all of them. */
  .or-group { align-items: center; text-align: center; }
  .or-group p { margin-inline: auto; }
  .or-btns { justify-content: center; }

  /* EXCEPT WHERE THE SECTION CONTAINS A LIST.

     A list is read down its left edge. Centering it breaks the one thing that
     makes it a list - every item starting in the same place - and an icon list
     is worse still, because the icons stop forming a column and scatter. The
     ragged left edge that results reads as broken rather than as centered.

     The whole section opts out, not just the list, because a centered heading
     above a left-aligned list is a third alignment nobody chose. The has-list
     class is derived from the rendered markup, never declared by hand. */
  .or-has-list .or-group,
  .or-has-list .or-group p { text-align: left; margin-inline: 0; }
  .or-has-list .or-group { align-items: flex-start; }
  .or-has-list .or-btns { justify-content: flex-start; }

  /* invariant 5: rows stack, never a 2 + 1 orphan */
  .or-cards, .or-icon-cards, .or-split, .or-feature, .or-feature.or-rev, .or-duo, .or-contact-split { flex-direction: column; }
  /* Two across, not one. A column of four big numerals is four screens of
     scrolling for four facts meant to be taken in together.

     The separator stays VERTICAL, between the two columns - odd items open a
     row, even items are divided from the one beside them. A horizontal rule
     between rows would be a different component: it would group the figures
     into pairs, which is a claim about them that is not true. */
  .or-figures { flex-wrap: wrap; row-gap: var(--block); justify-content: flex-start; }
  .or-figure { flex: 0 0 50%; padding: 0 var(--snug); border-left: 1px solid var(--hairline); }
  .or-figure:nth-child(odd) { border-left: 0; padding-left: 0; }
  .or-figure:last-child { padding-right: 0; }
  /* Two columns, never one. An odd photograph spans both rather than sitting
     alone in a half-width slot, which is the 2 + 1 orphan invariant 5 forbids
     wearing a different hat. */
  .or-gallery { grid-template-columns: 1fr 1fr; }
  .or-gallery img:last-child:nth-child(odd) { grid-column: 1 / -1; aspect-ratio: 16/10; }
  .or-contact-split .or-map { flex: none; min-height: 240px; }
  /* The footer keeps its left edge on a phone. It is mostly lists, and a list
     is read down its left edge - the same reason has-list exists. */
  .or-foot-top { flex-direction: column; gap: var(--loose); }
  .or-foot-legal-row { flex-direction: column; align-items: flex-start; gap: var(--snug); }
  .or-foot-legal { margin-left: 0; }
  /* The band goes edge to edge; its TEXT still lines up with every other
     section's text. A full-width background is not a license to move the
     content out of the page's grid. */
  .or-duo-block { padding: var(--pad) var(--gutter); }

  /* The inline nav becomes a trigger, and the CTA leaves the header for the
     bottom of the screen - see .or-cta-bar. The header is now identity and
     navigation, nothing else. */
  .or-nav { display: none; }
  .or-nav-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; margin-left: auto;
    background: none; border: 0; color: inherit; cursor: pointer;
  }
  .or-header-cta { display: none; }
  .or-cta-bar { display: block; }
  /* Clear of the action bar rather than on top of it. */
  .or-to-top { bottom: 104px; }
  /* Nothing at the end of the page hides behind the floating bar. */
  body { padding-bottom: 104px; }
  /* 8px of padding makes a button about 39px tall, which is under the 44px
     minimum tap target. The PADDING is the design decision and it does not
     change; a floor on the height is added instead, and only here - a mouse
     has no such requirement, so the desktop button stays exactly as drawn. */
  .or-btn { min-height: 44px; }

  .or-duo-media { aspect-ratio: 16/10; max-height: none; }


}

/* ---- the top bar ------------------------------------------------------ */
/* Hours, address, phone — on ONE line above everything, desktop only.
   These are reference facts, not an argument: they belong where a returning
   visitor's eye already goes, not occupying the best position on the page
   directly under the hero. Hidden below 1024px, where a single line cannot
   hold them and where the same facts live in the footer instead. */
/* NEAR-BLACK, not the loud color. A saturated bar across the top of every page
   spends the loudest color on the least important content, and leaves the
   call to action further down with nothing left to say. Near-black recedes,
   and it is the one value that never fights a client palette.
   The loud color goes on the ICONS, where it does the whole job of drawing
   the eye at a twelfth of the area. */
.or-topbar {
  position: relative; z-index: 40;
  background: var(--dark); color: #fff;
  font-size: 13px; padding: 9px var(--gutter);
}
.or-topbar svg { color: var(--chrome); opacity: 1; }
.or-topbar .or-inner { display: flex; align-items: center; gap: var(--loose); }
.or-topbar-item { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.or-topbar-item svg { flex: none; }
.or-topbar-right { margin-left: auto; display: inline-flex; gap: var(--snug); }
.or-topbar a { color: #fff; text-decoration: none; }
.or-topbar a:hover { text-decoration: underline; }

/* ---- the site header -------------------------------------------------- */
/* Logo left, navigation right, ONE solid button at the far right.
   The button is the header's commercial job and the reason the arrangement is
   worth standardizing: it is the only call to action visible from every scroll
   position on every page. There is exactly one, and it is the same action the
   page's Statement section asks for - two different asks in two places is two
   people arguing.

   THIS SYSTEM SITS THE HEADER ABOVE THE HERO, solid, in one color, at one
     height. Business pages are an argument rather than an image and the header
     is a tool; a tool is more useful sitting still. */
/* HEADER HEIGHT IS A TOKEN, not a consequence of its contents. It has to be a
   known number because the transparent variant offsets the hero by exactly it,
   and because a header that changes height when a nav item is renamed is a
   header that shifts the whole page. */
.or-site-header .or-logo img {
  /* The bar is a fixed --header-h and compacts to --header-h-compact, so the
     logo has to fit inside the SMALLER of the two. A client's own artwork is
     the commonest thing that breaks a header, and it arrives at whatever size
     it arrives at, so the ceiling is enforced here rather than trusted. */
  max-height: calc(var(--header-h-compact) - 8px);
  width: auto; object-fit: contain;
}
.or-site-header.or-compact .or-logo img { max-height: calc(var(--header-h-compact) - 12px); }

.or-site-header {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center;
  height: var(--header-h); padding: 0 var(--gutter);
  /* Height and color are the only things that change on scroll, and both are
     transitioned so nothing jumps under the reader's eye. */
  transition: height .2s ease, background-color .2s ease, box-shadow .2s ease,
              transform .24s ease;
}
/* Gone on the way down, back on the way up. Transform rather than display, so
   it slides out rather than disappearing, and so nothing below it reflows. */
.or-site-header.or-gone { transform: translateY(-100%); }
@media (prefers-reduced-motion: reduce) {
  .or-site-header, .or-to-top, .or-cta-bar, .or-nav-panel { transition-duration: .01ms; }
}

/* SOLID, ABOVE THE HERO. One color, one height, no scroll-dependent contrast. */
.or-site-header { background: var(--ground); border-bottom: 1px solid var(--hairline); }
.or-site-header .or-logo { color: var(--brand); }
.or-site-header .or-nav a { color: var(--ink); }

/* COMPACTED. Applied by the one line of script at the foot of the page once
   the reader is 100px in. Solid at every system, because past the hero there
   is no longer a photograph to be transparent over, and a header that stays
   see-through across the body of a page is a header you cannot read. */
.or-site-header.or-compact {
  height: var(--header-h-compact);
  background: var(--ground); color: var(--ink);
  box-shadow: var(--shadow-md);
}
.or-site-header.or-compact .or-logo { color: var(--brand); }
.or-site-header.or-compact .or-nav a { color: var(--ink); }
.or-site-header.or-compact .or-nav a::after { background: var(--chrome); }

/* The BAR spans the window; its CONTENTS sit in the wide grid. */
.or-site-header > .or-inner { display: flex; align-items: center; gap: var(--loose); }
.or-logo {
  font-weight: 800; font-size: 20px; letter-spacing: -.02em;
  text-decoration: none; white-space: nowrap;
}
.or-nav { display: flex; align-items: center; gap: var(--loose); margin-left: auto; }
.or-nav a {
  position: relative; text-decoration: none; font-size: 16px;
  font-weight: 550; white-space: nowrap; padding: 4px 0;
}
/* An underline that grows from the middle, not a color change: on a
   transparent header over an unknown photograph, a color change may be
   invisible. A line is a line on anything. */
.or-nav a::after {
  content: ''; position: absolute; left: 50%; right: 50%; bottom: 0; height: 2px;
  background: var(--chrome); transition: left .18s ease, right .18s ease;
}
.or-nav a:hover::after, .or-nav a[aria-current="page"]::after { left: 0; right: 0; }
.or-header-cta { flex: none; }
/* The trigger only exists below the nav breakpoint. */
.or-nav-toggle { display: none; }

/* ---- the mobile call to action ---------------------------------------- */
/* ON A PHONE THE CALL TO ACTION LEAVES THE HEADER ENTIRELY and becomes a
   floating bar at the BOTTOM of the screen.

   The header is the worst place for it on a phone. A one-handed grip puts the
   thumb at the bottom of the device; the top corners are the hardest region to
   reach and the one most likely to need a hand shuffle. Putting the single
   action the site exists to get in the least reachable corner, next to the
   menu trigger it competes with, is a self-inflicted wound.

   So on a phone the header goes back to two things - identity and navigation -
   and the action sits under the thumb, centered, on every screen and every page.

   It reveals on scroll rather than being present from the first frame: the
   hero already carries the same two buttons, so a floating copy over the top of
   them is the same offer twice. */
.or-cta-bar {
  position: fixed; z-index: 55;
  left: 0; right: 0; bottom: 0;
  display: none;
  padding: var(--snug) var(--gutter) calc(var(--snug) + env(safe-area-inset-bottom, 0px));
  /* Not a solid bar. A fade means the button is legible over whatever happens
     to be behind it without stamping a slab across the bottom of every page. */
  background: linear-gradient(to top, var(--ground) 55%, transparent);
  /* Slides out of the way until earned. */
  transform: translateY(110%); transition: transform .24s ease;
  pointer-events: none;
}
.or-cta-bar[data-show="true"] { transform: translateY(0); pointer-events: auto; }
.or-cta-row { display: flex; gap: var(--tight); max-width: 480px; margin: 0 auto; align-items: stretch; }
/* The primary takes whatever the secondaries do not. It stays the widest thing
   in the bar at every count, which is what keeps it the primary. */
.or-cta-primary { flex: 1 1 auto; min-width: 0; box-shadow: var(--shadow-md); }
/* Secondary actions are icon-over-label, fixed width, quiet. They are a
   shortcut for someone who already knows what they want - not a second offer,
   which is why they are not buttons and carry no fill. */
.or-quick {
  flex: 0 0 64px; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 2px;
  min-height: 44px; padding: 6px 2px; border-radius: var(--radius);
  background: var(--ground); border: 1.5px solid var(--hairline);
  color: var(--ink); text-decoration: none; box-shadow: var(--shadow-sm);
}
.or-quick span { font-size: 10px; font-weight: 650; letter-spacing: .02em; }
.or-quick svg { color: var(--chrome); }

/* ---- back to top ------------------------------------------------------- */
/* Earned much later than the action bar - one and a half screens, by which
   point scrolling back by hand is a real cost. Shown at every width: a long
   page is long on a laptop too. It sits ABOVE the mobile bar rather than
   beside it, so it never competes with the thing it must not compete with. */
.or-to-top {
  position: fixed; right: var(--gutter); bottom: var(--gutter);
  z-index: 54; width: 44px; height: 44px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--ground); color: var(--ink);
  border: 1.5px solid var(--hairline); box-shadow: var(--shadow-md);
  cursor: pointer; opacity: 0; pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
  transform: translateY(8px);
}
.or-to-top[data-show="true"] { opacity: 1; pointer-events: auto; transform: translateY(0); }
.or-to-top:hover { color: var(--chrome); border-color: var(--chrome); }

/* ---- the mobile navigation -------------------------------------------- */
/* A full-screen overlay, not a drawer. A drawer has to decide how wide it is
   and then justify the strip of dimmed page beside it; an overlay has one job
   and does it at any screen size. Links are set large and spaced, because the
   thing being tapped is a thumb target rather than a line of text.

   THE CALL TO ACTION STAYS IN THE BAR. It does not go inside the menu. Burying
   the one action the site exists to get behind a tap is the most common and
   most expensive mistake in a mobile header. */
.or-nav-panel {
  position: fixed; inset: 0; z-index: 60;
  background: var(--dark); color: #fff;
  display: flex; flex-direction: column; justify-content: center;
  gap: var(--loose); padding: var(--gutter);
  /* Not display:none - a menu that is removed from the document cannot be
     transitioned, and it is the transition that tells a reader where the panel
     came from. */
  opacity: 0; visibility: hidden; transition: opacity .22s ease, visibility .22s;
}
.or-nav-panel[data-open="true"] { opacity: 1; visibility: visible; }
.or-nav-panel a {
  color: #fff; text-decoration: none; font-size: 31px;
  font-weight: 650; padding: 6px 0;
}
.or-nav-panel a:hover, .or-nav-panel a:focus-visible { color: var(--chrome); }
.or-nav-close {
  position: absolute; top: 14px; right: var(--gutter);
  width: 44px; height: 44px; display: inline-flex;
  align-items: center; justify-content: center;
  background: none; border: 0; color: #fff; cursor: pointer;
}

/* ---- footer ----------------------------------------------------------- */
/* TWO TIERS. An information row, then a quiet legal line.
   The information row exists because of a gap that only appears on a phone:
   the top bar is hidden below 1024px, so without it the hours and the address
   live nowhere on a small screen except the contact panel near the bottom of
   the page. The footer is where people go looking for exactly those two facts,
   and it is the last thing on every page rather than one section of one page.
   Half the section padding: the page has already ended by the time anyone
   reads it. */
.or-foot {
  background: var(--ground); border-top: 1px solid var(--hairline);
  padding: calc(var(--pad) / 2) var(--gutter);
  font-size: 15px; color: var(--ink-muted);
}
.or-foot-top { display: flex; gap: var(--block); align-items: flex-start; flex-wrap: wrap; }
.or-foot-brand { flex: 1 1 240px; min-width: 0; display: flex; flex-direction: column; gap: var(--snug); }
.or-foot-name { font-weight: 800; font-size: 19px; color: var(--brand); letter-spacing: -.01em; }
.or-foot-blurb { max-width: 34ch; }
.or-foot-col { flex: 0 1 auto; display: flex; flex-direction: column; gap: var(--snug); }
.or-foot-col h3 {
  font-size: 13px; font-weight: 700; letter-spacing: .09em;
  text-transform: uppercase; color: var(--ink);
}
.or-foot-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--tight); }
.or-foot-col li { display: flex; gap: 10px; align-items: flex-start; }
.or-foot-col svg { color: var(--chrome); flex: none; margin-top: 2px; }
.or-foot a { color: inherit; text-decoration: none; }
.or-foot a:hover { color: var(--brand); text-decoration: underline; }
/* The rule that separates the two tiers is the ONLY line in the footer. Two
   would make it a table. */
.or-foot-legal-row {
  display: flex; align-items: center; gap: var(--loose); flex-wrap: wrap;
  margin-top: var(--block); padding-top: var(--loose);
  border-top: 1px solid var(--hairline);
  font-size: 14px;
}
.or-foot-links { display: flex; gap: var(--loose); flex-wrap: wrap; }
.or-foot-legal { margin-left: auto; }

/* ---- socials ---------------------------------------------------------- */
.or-socials { display: flex; gap: var(--snug); }
.or-solo .or-socials { justify-content: center; }
.or-group > .or-lead + .or-socials { margin-top: var(--loose); }
.or-socials a {
  width: 44px; height: 44px; border-radius: var(--radius);
  display: inline-flex; align-items: center; justify-content: center;
  border: 1.5px solid var(--hairline); color: var(--brand); text-decoration: none;
  background: #fff; box-shadow: var(--shadow-sm);
  transition: box-shadow .18s ease, color .18s ease, border-color .18s ease;
}
.or-socials a:hover { border-color: var(--accent); color: var(--accent); box-shadow: var(--shadow-md); }

/* ---- containers that paint their own surface -------------------------- */
/* A CARD WITH ITS OWN BACKGROUND OR BORDER NEVER TOUCHES THE SCREEN EDGE ON
   MOBILE OR TABLET. A BAND ALWAYS DOES.

   The distinction is whether the container is an OBJECT ON a surface or a
   surface in its OWN RIGHT:

   .or-self-surface - a card. It is meant to be seen sitting on the page, so it
     needs the page on both sides of it. A card bleeding off both edges of a
     phone stops reading as a card and reads as the page changing color, so
     the thing it was there to distinguish stops being distinguished.

   .or-full-bleed - a band. Edge to edge is the point at every width. When the duo
     stacks on a phone, each half becomes its own full-width band - a gutter
     there would make it look like a card that had failed to be one.

   Anything inside .or-inner already has the page gutter and needs neither mark.
   Every painted container OUTSIDE .or-inner must carry one or the other, so the
   choice is recorded rather than defaulted - see assertSelfSurface. */
@media (max-width: 1024px) {
  .or-self-surface {
    margin-inline: var(--gutter);
    width: auto;
    border-radius: var(--radius);
    overflow: hidden;
  }
}
/* A band is full width; its CONTENT still sits in the page's grid. */
.or-full-bleed { width: 100%; }

/* ---- the figures band -------------------------------------------------- */
/* EVIDENCE, not mood. Business gets this where the other two get the duo.

   A supplier's page is an argument, and the strongest thing on one is usually a
   number somebody can check. Years in business beats "established and trusted";
   "3,400 lines held" beats "extensive range".

   No card boxes. Boxes would make this a card row, which the section above it
   already is, and the numbers are the object here - a border around each one
   just puts a fence between them. Hairlines between the columns instead, which
   is what a table of figures has always done.

   EVERY FIGURE CARRIES ITS SOURCE. See assertFigures: a number Orca invented
   would be the most damaging thing this system could emit, because it is the
   part a reader is most likely to believe and least able to check. */
/* THE COLUMN RULE IS THE COMPONENT. It is what makes four numerals a table of
   figures rather than four numerals, so it survives every breakpoint - it is
   not a desktop flourish that gets dropped when the row wraps. */
.or-figures { display: flex; }
.or-figure {
  flex: 1 1 0; min-width: 0; padding: 0 var(--loose);
  display: flex; flex-direction: column; gap: var(--tight);
  border-left: 1px solid var(--hairline);
}
.or-figure:first-child { border-left: 0; padding-left: 0; }
.or-figure:last-child { padding-right: 0; }

/* Tablet: still one row, but the columns stop being equal thirds and take the
   width their contents need, spaced apart. Equal columns at this width leave a
   two-character figure floating in the middle of a wide empty box. */
@media (max-width: 1024px) {
  .or-figures { justify-content: space-around; flex-wrap: wrap; row-gap: var(--loose); }
  .or-figure { flex: 0 1 auto; padding: 0 var(--loose); }
  .or-figure:first-child { padding-left: var(--loose); }
  .or-figure:last-child { padding-right: var(--loose); }
}
.or-figure b {
  font-size: clamp(38px, 4.6vw, 44px);
  font-weight: 800; line-height: 1; letter-spacing: -.03em;
  color: var(--brand); font-variant-numeric: tabular-nums;
}
.or-figure span { font-size: 17px; font-weight: 600; }
.or-figure small { font-size: 14px; color: var(--ink-muted); }

/* ---- the duo band ----------------------------------------------------- */
/* Half a square photograph, half a color block carrying copy. Edge to edge on
   desktop, no page gutter: the point is the hard vertical seam down the
   middle. Inset below 1024px by the rule above. */
.or-duo { display: flex; width: 100%; align-items: stretch; }
.or-duo > * { flex: 1 1 50%; min-width: 0; }
/* The ratio governs a BOX; the photograph fills it. Capped in viewport height
   as well, because half of a very wide window is a very large picture however
   sensible the ratio. */
.or-duo-media { aspect-ratio: 1.5000; max-height: 64vh; }
.or-duo-photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.or-duo-block {
  display: flex; align-items: center;
  padding: var(--pad) clamp(28px, 4vw, 72px);
  /* Not accent. A half-page of saturated color beside a photograph is two
     things shouting; this lets the photograph carry the section and saves the
     accent for the call to action immediately below it. */
  background: var(--recessed); color: var(--ink);
}
.or-duo-block .or-eyebrow { color: var(--brand); }
.or-duo-block svg { color: var(--accent); }
.or-duo-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--snug); }
.or-duo-list li { display: flex; gap: var(--snug); align-items: center; font-size: 17px; }
.or-panel .or-duo-list svg { color: var(--accent); }
.or-duo-list svg { flex: none; }

/* ---- centering --------------------------------------------------------- */
/* A block centers when it is ALONE IN ITS ROW - a hero, a full-width call to
   action. Beside a photograph it is a column, and a centered column next to an
   image reads as a mistake rather than a decision. So this is a property of
   the row, never of the system. */
.or-solo .or-group { align-items: center; text-align: center; }
.or-solo .or-group p { margin-inline: auto; }
.or-solo .or-group .or-btns { justify-content: center; }
/* Everything in a two-up row stays left, at every width above mobile. */
.or-feature .or-group, .or-duo-block .or-group { align-items: flex-start; text-align: left; }
.or-feature .or-group p, .or-duo-block .or-group p { margin-inline: 0; }
.or-feature .or-btns, .or-duo-block .or-btns { justify-content: flex-start; }

/* ---- the raised panel ------------------------------------------------- */
/* A block of GROUND color lifted off a tinted surface. The inverse of a
   Recessed section: instead of pushing a band back, it brings one block
   forward, which is a cheap and durable way to say "this bit matters" without
   color, a border or a heading two sizes up.
   
   ONE RULE, and it is absolute: a panel only works ON a non-Ground surface.
   Ground on Ground is invisible and the shadow becomes a smudge round nothing.
   So a panel implies a Recessed, Statement or Photographic section behind it. */
.or-panel {
  background: var(--ground); border-radius: var(--radius);
  padding: clamp(28px, 4vw, 56px);
  box-shadow: var(--shadow-md);
}
/* On a photograph it needs to be opaque and slightly tighter. */
.or-photo .or-panel { max-width: 640px; }
/* A panel wrapping a map has no padding on the map side - the map runs to the
   panel's edge and the radius clips it. Padding lives on the text side only. */
.or-panel.or-flush { padding: 0; overflow: hidden; }
.or-panel.or-flush .or-panel-body { padding: clamp(28px, 4vw, 56px); }

/* ---- the contact panel ------------------------------------------------ */
/* Full container width. It reads as a closing object because it is a raised
   panel on a tinted surface, not because it is narrower than the section above
   it - and at 75% the map column was too thin to be a map. */
.or-contact-panel { width: 100%; }
/* PADDING IS NEVER ZERO WHERE THE BACKGROUND CHANGES.

   A color change cannot do the job of spacing. Where a section's surface
   differs from its neighbor's, content jammed against the seam reads as a
   mistake however deliberate it was, and the eye has nowhere to rest between
   two different grounds.

   Zero padding is legal in exactly two places, both decided by mayCollapseTop
   below and nowhere else:

     1. Between two sections on the SAME surface, which are meant to read as
        one continuous block.
     2. Where the section's content is an inset panel with its own padding and
        its own shadow. The panel holds the content off the seam, so the
        section padding is adding height and nothing else. Per-system, because
        whether the seam survives it depends on how loud the seam is:
        contactFlush in design-systems.or-ts.

   Everywhere else the generator refuses to emit it. */
.or-section.or-tight-top { padding-top: 0; }
/* One third map, two thirds detail. The map is an orienting glance, not the
   content - a half-and-half split gives it equal billing with the thing you
   are meant to do next. */
.or-contact-split { display: flex; align-items: stretch; }
.or-contact-split .or-map { flex: 0 0 33.333%; }
.or-contact-split .or-panel-body { flex: 1 1 auto; min-width: 0; }

/* ---- map -------------------------------------------------------------- */
/* Fills the panel's full height rather than declaring one of its own, so the
   detail side decides how tall the card is. */
.or-map { position: relative; min-height: 100%; background: var(--recessed); }
.or-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
/* No address: the third becomes a photograph rather than an empty column or a
   map of somewhere the client does not do business at. Decorative by definition -
   it carries no information, so it carries no alt text either. */
.or-map-photo { background-size: cover; background-position: center; }

/* ---- icon cards -------------------------------------------------------- */
/* A LIST THAT IS ALONE IN ITS SECTION BECOMES CARDS.

   A list is measure-constrained - it has to be, or the lines get too long to
   read - so a bare list in a full-width section occupies about 55 characters
   of a 1200px row and leaves the other two thirds empty. That reads as a
   section that failed to load rather than one that was composed.

   Cards take the width they have been given. Three across turns the same three
   facts from a narrow column into a row that fills its section, and the icons
   stop being bullets and start being the thing the eye lands on.

   The rule is about the section, not the list: a list BESIDE something - the
   duo band's photograph, the contact panel's map - is already sharing its row
   and stays a list. */
.or-icon-cards { display: flex; gap: var(--snug); }
.or-icon-card {
  flex: 1 1 0; min-width: 0;
  display: flex; flex-direction: column; gap: var(--tight);
  padding: var(--loose);
  background: var(--ground); border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
}
/* THE ICON IS THE POINT OF THE CARD, so it is sized like one.
   At 26px it was a bullet that had wandered up from the list it replaced; a
   card whose picture is smaller than its heading has not really become a card.
   Thinner stroke at this size - 1.6px on a 48px glyph reads as heavy. */
.or-icon-card svg { color: var(--accent); width: 48px; height: 48px; stroke-width: 1.35; }
.or-icon-card b { font-size: 18px; font-weight: 650; }
.or-icon-card span { font-size: 16px; color: var(--ink-muted); }
.or-icon-card > svg + b { margin-top: var(--snug); }

/* ---- detail list ------------------------------------------------------ */
.or-details { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--snug); }
.or-details li { display: flex; gap: var(--snug); align-items: flex-start; }
.or-details svg { color: var(--accent); flex: none; margin-top: 3px; }
.or-details b { display: block; font-size: 17px; font-weight: 650; }
.or-details span { font-size: 15px; color: var(--ink-muted); }
.or-details a { color: inherit; text-decoration: none; }
.or-details a:hover { text-decoration: underline; }
.or-group > .or-details + .or-btns { margin-top: var(--loose); }
.or-group > h2 + .or-details { margin-top: var(--snug); }

/* Nothing else gets a shadow. Buttons stay flat: a raised button is a 2014
   idiom and the fill already says it is pressable. Full-width bands stay flat
   because a band is the page, not an object on it - shadowing one implies it
   floats over something, and there is nothing behind it. */

/* ---- accent call to action -------------------------------------------- */
/* Directly beneath the duo. The tint sets it up, the accent closes it. */
.or-accent-cta { background: var(--accent); color: var(--reversed); }
.or-accent-cta p { color: rgba(255,255,255,.9); }
.or-accent-cta .or-btn { background: #fff; color: var(--accent); border-color: #fff; }
.or-accent-cta .or-btn-out { background: transparent; color: #fff; border-color: rgba(255,255,255,.75); }

/* preview chrome only */
.or-meta {
  position: fixed; right: 12px; bottom: 12px; z-index: 9;
  background: rgba(20,20,20,.92); color: #fff; border-radius: 6px;
  padding: 10px 12px; font: 11px/1.55 ui-monospace, monospace; max-width: 280px;
}
.or-meta b { color: #8FD6BC; } .or-meta a { color: #8FD6BC; }/* End custom CSS */