/* 3.0 — shared responsive and editorial layer, loaded after site.css. */
body.smartoo-site{--s-header-height:90px;--s-shell:min(1240px,calc(100% - 64px));padding-top:var(--s-header-height)!important;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body.smartoo-site *,body.smartoo-site *::before,body.smartoo-site *::after{box-sizing:border-box}
.s-shell{width:var(--s-shell);max-width:1240px;min-width:0}
main,section,article,figure,form,.s-shell>*,.s-hero__grid>*,.s-two-col>*,.s-consult__grid>*,.s-form__row>*,.s-source-story>*,.s-finder,.s-service-card{min-width:0}
body.smartoo-site h1,body.smartoo-site h2,body.smartoo-site h3{max-width:100%;overflow-wrap:normal;word-break:normal;hyphens:none;text-wrap:pretty}
body.smartoo-site h2{font-size:clamp(28px,3.2vw,44px)!important;line-height:1.14!important}
body.smartoo-site h3{font-size:clamp(22px,2vw,28px)!important;line-height:1.22!important}
.s-section{padding:76px 0}
.s-section-head{max-width:840px;margin-bottom:30px}
.s-section-head p{font-size:17px!important;line-height:1.65!important}
.s-two-col{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:48px}
.s-kicker{line-height:1.6!important;letter-spacing:.13em!important}
body.smartoo-site .s-light .s-kicker,body.smartoo-site .s-stone .s-kicker{color:#74571f!important}
body.smartoo-site .s-dark .s-kicker{color:#e2c985!important}
.s-word{display:inline;opacity:1;transform:none;will-change:auto}
.reveal{opacity:1;transform:none}
body.smartoo-site a:focus-visible,body.smartoo-site button:focus-visible,body.smartoo-site summary:focus-visible{outline:3px solid #a87f32!important;outline-offset:4px}
body.smartoo-site .s-dark a:focus-visible,body.smartoo-site .s-dark button:focus-visible{outline-color:#e2c985!important}
body.smartoo-site [hidden]{display:none!important}

/* Header: a direct call is available before the mobile menu is opened. */
.s-header__inner{height:var(--s-header-height)!important;gap:22px}
.s-brand{width:178px;flex-basis:178px}
.s-brand img{width:158px;max-height:84px;object-fit:contain}
.s-nav{gap:19px}
.s-nav a{font-size:13px}
.s-header__actions{gap:12px}
.s-header-call{display:none}
.s-header .s-btn--small{font-size:12px!important;padding:12px 17px!important}
.s-mobile-nav.is-open{top:100%!important;max-height:calc(100dvh - var(--s-header-height) - 70px);overflow:auto}
.s-menu{margin-left:0}
.s-sticky-subnav{top:var(--s-header-height)!important;max-width:100%}
.s-sticky-subnav .s-shell{width:var(--s-shell);min-width:0;padding-block:7px}
.s-sticky-subnav a{flex:0 0 auto;min-height:38px;display:flex;align-items:center}
.s-service-layout section[id],#consultation,#directions,#projects,#main-content{scroll-margin-top:calc(var(--s-header-height) + 72px)}
body.smartoo-site.admin-bar{padding-top:var(--s-header-height)!important}
.admin-bar .s-sticky-subnav{top:calc(var(--s-header-height) + 32px)!important}

/* Hero: bounded type, a single offer, no text over imagery. */
.s-hero,.s-hero--home{padding:58px 0 54px!important}
.s-hero:before{display:none}
.s-hero-web{opacity:.32}
.s-hero__grid{grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr);gap:54px}
body.smartoo-site .s-hero h1{font-size:clamp(36px,4.2vw,58px)!important;line-height:1.08!important;letter-spacing:-.03em!important;margin-bottom:22px!important}
.s-hero__copy>p{font-size:18px!important;line-height:1.7!important;margin-bottom:28px!important;max-width:760px!important}
.s-hero--home .s-kicker{max-width:570px;font-size:10px!important;margin-bottom:21px}
.s-hero--home .s-hero__copy{max-width:735px}
.s-hero--home .s-hero__media{min-height:0!important;height:490px;border-radius:10px!important;box-shadow:none;border-color:rgba(226,201,133,.18)}
.s-hero__media:after{display:none}
.s-hero__media img{filter:none;object-position:50% 62%}
.s-actions{gap:16px;align-items:center}
.s-btn{max-width:100%;white-space:normal!important;text-align:center;gap:12px;line-height:1.3!important;overflow-wrap:normal}
.s-hero .s-btn--ghost{background:transparent!important;border-color:transparent!important;color:#e6dfd3!important;font-weight:600!important;padding-inline:12px!important}
.s-hero .s-btn--ghost:hover{color:#fffdf8!important;text-decoration:underline;text-underline-offset:6px}
.s-hero-trust{display:flex;flex-wrap:wrap;gap:10px 20px;border-top:1px solid rgba(255,253,248,.17);padding-top:20px;margin-top:30px;font-size:12px;line-height:1.5}
.s-hero-trust span{max-width:100%}
.s-hero-next{display:inline-flex;align-items:center;gap:26px;margin-top:30px;color:#e2c985!important;font-size:12px;letter-spacing:.04em;padding-block:8px}
.s-hero--no-media .s-hero__copy{max-width:1030px}
.s-hero--no-media .s-hero__copy>p{max-width:880px!important}
.s-hero--legal{min-height:0}
.s-hero--legal .s-shell{width:var(--s-shell)!important}
.s-hero--legal h1{max-width:1030px!important}
.s-hero--portrait .s-hero__media{min-height:410px;border-radius:12px}
.s-breadcrumbs{flex-wrap:wrap;overflow-wrap:normal;max-width:100%;font-size:12px!important;margin-bottom:28px!important}

/* Seven practices, compact information cards with a consistent reading order. */
.s-direction-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.s-direction{position:relative;display:flex;flex-direction:column;min-height:246px;padding:22px;background:#fffdf8;border:1px solid #dcd3c3;border-radius:8px;box-shadow:none;overflow:visible;isolation:auto;transition:background .2s,border-color .2s,transform .2s}
.s-direction:hover,.s-direction:focus-visible{background:#f0e7d7;border-color:#a88749;box-shadow:none;transform:translateY(-3px)}
.s-direction__number{display:block;font-size:11px;line-height:1;letter-spacing:.15em;color:#80622b!important;margin-bottom:20px}
body.smartoo-site .s-direction h3{font-size:24px!important;line-height:1.2!important;letter-spacing:-.015em!important;color:#182022!important;margin:0 0 12px!important}
body.smartoo-site .s-direction p{font-size:13px!important;line-height:1.55!important;color:#57554d!important;margin:0 0 20px!important}
.s-direction__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:13px;border-top:1px solid #e3dacb;font-size:12px;font-weight:700;color:#74571f!important}
.s-direction__footer b{font-size:20px;line-height:1;font-weight:400}
.s-project{display:flex;align-items:center;justify-content:space-between;gap:36px;border-top:1px solid #c7bda9;border-bottom:1px solid #c7bda9;padding-block:34px}
.s-project>div{max-width:720px}
.s-project h2{margin-bottom:14px!important}
.s-project p{max-width:670px;margin:0;font-size:17px!important}
.s-project .s-btn{flex-shrink:0}

/* Shared content: more structure, fewer decorative stock photos. */
.s-source-process-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.s-source-process-card{display:block;min-height:0;border-radius:8px;box-shadow:none}
.s-source-process-card>div{padding:26px}
.s-source-process-card b{margin-bottom:25px;border:0;border-radius:0;display:block;width:auto;height:auto;font-size:12px}
body.smartoo-site .s-source-process-card h3{font-size:25px!important}
.s-source-story,.s-source-story--reverse{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px}
.s-source-story__media,.s-source-story__media img{min-height:0;height:auto!important}
.s-source-story__media{border-radius:10px;box-shadow:none}
.s-source-story__media img{aspect-ratio:3/2;object-fit:cover;filter:none}
.s-source-story__copy p{font-size:17px!important;line-height:1.8!important}
.s-proof-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
body.smartoo-site .s-light .s-proof{background:#fffdf8;border-color:#dcd3c3}
body.smartoo-site .s-light .s-proof h3{color:#172022!important}
body.smartoo-site .s-light .s-proof p{color:#514d44!important}
.s-company-facts article{min-height:170px;border-radius:8px;padding:24px}
.s-company-facts strong{font-size:28px!important;overflow-wrap:normal}
.s-team-principle{flex-direction:column;border-radius:8px;gap:18px}
.s-principle-number{color:#74571f!important;font-size:12px;letter-spacing:.12em}
.s-source-review-card{min-height:0}
.s-source-review-card img{height:260px!important}
.s-source-review-card span{min-height:48px}
.s-service-card{border-radius:10px}
.s-contact-card a,.s-contact-mini a,.s-contact-strip a,.s-footer a{overflow-wrap:normal}
.s-link-grid a>span,.s-faq summary>span{min-width:0;overflow-wrap:normal}
.s-link-grid a,.s-problems a,.s-finder__results a{min-width:0;overflow-wrap:normal}
.s-link-grid,.s-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
body.smartoo-site .s-step h3{font-size:20px!important}
.s-link-grid b,.s-faq summary b{flex-shrink:0}
.s-article-body img,.s-rich img{max-width:100%;height:auto!important}
.s-article-body table,.s-rich table{display:block;max-width:100%;overflow-x:auto}

/* The form's intrinsic input sizes must never determine grid width on iOS. */
.s-consult__grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:56px}
body.smartoo-site .s-consult h2{font-size:clamp(30px,3.5vw,46px)!important;line-height:1.12!important}
body.smartoo-site .s-consult__subject{font-size:18px!important;line-height:1.5!important;color:#e2c985!important;overflow-wrap:normal;margin-bottom:18px}
.s-consult p{font-size:17px!important;line-height:1.75!important}
.s-form{width:100%;max-width:100%;min-width:0;padding:28px;border-radius:14px}
.s-form__row{grid-template-columns:repeat(2,minmax(0,1fr))}
.s-form label,.s-form input,.s-form textarea,.s-form button{min-width:0;max-width:100%}
.s-form input[type=text],.s-form input[type=tel],.s-form input[type=email],.s-form textarea{font-size:16px!important;line-height:1.5!important;min-height:48px}
.s-form input[type=file]{width:100%;font-size:13px!important;line-height:1.8}
.s-file{overflow:hidden}
.s-check{grid-template-columns:20px minmax(0,1fr)!important}
.s-check span{overflow-wrap:normal}
.s-check input{width:18px;height:18px;accent-color:#c7a35b}
.s-form__notice{overflow-wrap:normal}
.s-form input:focus-visible,.s-form textarea:focus-visible{outline:2px solid #e2c985!important;outline-offset:2px}

/* The route button and address stay usable even if the third-party map is unavailable. */
.s-map-wrap{padding:56px 0 64px}
.s-map-info{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-bottom:25px}
.s-map-info>div{max-width:770px}
.s-map-info h2{margin-bottom:15px!important}
.s-map-info p{font-size:15px!important;margin-bottom:8px}
.s-map-info .s-btn{flex-shrink:0}
.s-map-section{width:100%;height:400px;border:1px solid #cfc5b4;border-radius:10px;overflow:hidden;background:#e8dfcf}
.s-map-section iframe{display:block;width:100%;height:100%;border:0}
.s-footer h2{font-size:12px!important}
.s-footer__bottom{align-items:flex-start}
.s-footer__legal{max-width:900px}

@media(max-width:1100px){
  .s-hero__grid{grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);gap:30px}
  .s-hero--home .s-hero__media{height:440px}
  .s-direction-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .s-source-process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .s-consult__grid{gap:32px}
  .s-source-story,.s-source-story--reverse{gap:32px}
}
@media(max-width:900px){
  .s-direction-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .s-source-story,.s-source-story--reverse{grid-template-columns:1fr}
  .s-source-story__media{max-width:720px}
  .s-consult__grid,.s-two-col{grid-template-columns:minmax(0,1fr);gap:30px}
  .s-proof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .s-project,.s-map-info{align-items:flex-start;flex-direction:column;gap:24px}
  .s-team-principles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:782px){
  body.smartoo-site{--s-header-height:78px;--s-shell:calc(100% - 36px);padding-bottom:calc(66px + env(safe-area-inset-bottom,0px))!important}
  .s-header__inner{height:78px!important;gap:12px}
  .s-brand{flex:0 1 146px;width:146px;margin-right:auto}
  .s-brand img{width:136px;max-height:72px}
  .s-header__actions{display:none!important}
  .s-header-call{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 8px;color:#e2c985!important;font-size:13px;font-weight:700;white-space:nowrap}
  .s-menu{display:flex!important;flex:0 0 44px;margin-left:0!important}
  .s-hero,.s-hero--home,.s-hero--legal{padding:36px 0 40px!important}
  .s-hero__grid,.s-hero--home .s-hero__grid{grid-template-columns:minmax(0,1fr)!important;gap:30px!important}
  .s-hero--home .s-hero__media{display:none}
  body.smartoo-site .s-hero h1{font-size:clamp(34px,6.3vw,46px)!important;line-height:1.12!important}
  .s-hero--home .s-kicker{font-size:10px!important;letter-spacing:.08em!important;margin-bottom:16px}
  .s-hero__copy>p,.s-hero--legal .s-hero__copy>p{font-size:16px!important;line-height:1.65!important;margin-bottom:24px!important}
  .s-actions,.s-hero--home .s-actions{display:flex;flex-wrap:wrap;gap:12px}
  .s-hero--home .s-actions .s-btn{width:auto}
  .s-hero-trust{font-size:11px;gap:10px 16px;margin-top:22px;padding-top:17px}
  .s-hero-next{margin-top:19px}
  .s-section{padding:50px 0}
  .s-source-process-grid{gap:12px}
  .s-mobile-bar{grid-template-columns:repeat(3,minmax(0,1fr));padding:6px 12px calc(6px + env(safe-area-inset-bottom,0px));min-height:58px}
  .s-mobile-bar a{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:12px;padding:8px 2px}
  .s-footer{padding-bottom:28px}
  .s-footer__bottom{padding-bottom:0}
  .admin-bar .s-sticky-subnav{top:calc(var(--s-header-height) + 46px)!important}
  .s-map-wrap{padding:42px 0}
  .s-map-section{height:340px}
  .s-company-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .s-company-facts article{grid-template-rows:auto auto;gap:15px}
  .s-filter-chips{margin-inline:0!important;padding-inline:0!important;width:100%!important;scroll-padding-inline:0!important}
}
@media(max-width:560px){
  body.smartoo-site{--s-shell:calc(100% - 32px)}
  .s-hero .s-actions{display:flex;flex-direction:column;align-items:stretch}
  .s-hero .s-actions .s-btn{width:100%}
  .s-hero .s-actions .s-btn--ghost{min-height:44px;padding-block:9px!important}
  .s-direction-grid{grid-template-columns:minmax(0,1fr);gap:10px}
  .s-direction{min-height:0;padding:20px 22px}
  .s-direction__number{margin-bottom:12px}
  body.smartoo-site .s-direction h3{font-size:25px!important;line-height:1.18!important;margin-bottom:10px!important}
  body.smartoo-site .s-direction p{font-size:14px!important;margin-bottom:16px!important}
  .s-direction__footer{padding-top:11px}
  .s-source-process-grid,.s-proof-grid,.s-team-principles{grid-template-columns:minmax(0,1fr)}
  .s-link-grid,.s-profile-grid{grid-template-columns:minmax(0,1fr)}
  .s-source-process-card>div{padding:22px}
  .s-source-process-card b{margin-bottom:16px}
  .s-source-review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .s-source-review-card img{height:190px!important;min-height:0!important}
  .s-source-review-card span{font-size:11px!important;padding:10px 10px 4px}
  .s-source-review-card b{padding:0 10px 12px}
  .s-source-reviews__head{gap:16px;margin-bottom:26px}
  .s-form{padding:20px 16px}
  .s-form__row{grid-template-columns:minmax(0,1fr);gap:0}
  .s-file{padding:12px 10px}
  .s-form .s-btn{padding-inline:16px!important}
  .s-contact-mini{margin-top:20px}
  .s-company-facts{grid-template-columns:minmax(0,1fr)}
  .s-company-facts article{min-height:0}
  .s-project .s-btn,.s-map-info .s-btn{width:100%;flex-shrink:1}
  .s-contact-card{padding:22px}
  .s-breadcrumbs{font-size:11px!important;gap:6px!important;margin-bottom:20px!important}
  .s-sticky-subnav .s-shell{gap:20px}
}
@media(max-width:360px){
  .s-header__inner{gap:8px}
  .s-brand{flex-basis:128px}
  .s-brand img{width:125px}
  .s-header-call{font-size:12px;padding-inline:2px}
  body.smartoo-site .s-hero h1{font-size:31px!important}
  .s-mobile-bar{padding-inline:5px}
  .s-mobile-bar a{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  .s-direction,.s-btn,.s-source-review-card{transition:none!important;transform:none!important}
}
