:root{color:#102a42;background:#fff;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #102a42;--muted: #5c6975;--red: #c8323c;--blue: #348dc8;--paper: #f6f7f8;--line: #dbe1e6;--green: #087f51;--page-width: 1160px}*{box-sizing:border-box}html{scroll-behavior:smooth}section[id]{scroll-margin-top:88px}body{margin:0;min-width:320px;min-height:100vh;background:#fff}button,a{font:inherit}a{color:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #1c82be;outline-offset:3px}.site-shell{overflow:clip}.section-wrap{width:min(calc(100% - 48px),var(--page-width));margin-inline:auto}.reveal-on-scroll{opacity:0;transform:translateY(16px);transition:opacity .52s ease,transform .52s cubic-bezier(.2,.7,.3,1)}.reveal-on-scroll.is-visible{opacity:1;transform:translateY(0)}.site-header{position:sticky;top:0;z-index:10;background:#fffffff7;border-bottom:1px solid rgba(16,42,66,.08)}.header-inner{min-height:82px;width:min(calc(100% - 48px),var(--page-width));margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:inline-flex;flex:0 0 auto;align-items:center}.brand img{display:block;width:214px;height:auto}.desktop-nav{display:flex;align-items:center;gap:clamp(18px,3vw,38px)}.desktop-nav a,.footer-links a{text-decoration:none;color:var(--ink);font-size:14px;font-weight:600}.desktop-nav a:hover,.footer-links a:hover,.contact-actions>a:not(.button):hover{color:var(--blue)}.mobile-menu{display:none;position:relative}.hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-areas:"copy gallery";align-items:center;gap:clamp(42px,7vw,90px);padding-block:50px 78px}.hero-copy{grid-area:copy;padding-block:20px}.gallery{grid-area:gallery;min-width:0}.eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 16px;color:#536271;font-size:12px;font-weight:700;letter-spacing:.12em;line-height:1.4;text-transform:uppercase}.eyebrow>span{width:42px;height:3px;flex:0 0 42px;background:var(--red)}h1,h2,h3,p{margin-top:0}h1,h2{color:var(--ink);letter-spacing:-.035em}h1{max-width:540px;margin-bottom:16px;font-size:clamp(36px,4.2vw,54px);font-weight:700;line-height:1.07}.hero-description{max-width:500px;margin-bottom:20px;color:#3f4f5e;font-size:18px;line-height:1.55}.family-note{max-width:480px;margin-bottom:24px;color:var(--muted);font-size:15px;line-height:1.65}.family-note strong{color:var(--ink);font-weight:700}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;padding:0 20px;text-decoration:none;font-size:15px;font-weight:700;transition:background-color .15s ease,border-color .15s ease}.button-primary{color:#fff;background:var(--green);border:1px solid var(--green)}.button-primary:hover{background:#066a44;border-color:#066a44}.button-secondary{color:var(--ink);border:1px solid #aeb9c2;background:#fff}.button-secondary:hover{border-color:var(--ink)}.service-area{margin:18px 0 0;color:#6c7882;font-size:13px}.gallery-frame{position:relative;width:100%;aspect-ratio:1.18 / 1;overflow:hidden;border-radius:13px;background:#e9eef1;touch-action:pan-y}.gallery-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center 48%;animation:photo-arrive .52s cubic-bezier(.2,.7,.3,1) both}.gallery-photo.focus-rooftop{object-position:center 4%}.gallery-toggle{position:absolute;top:13px;right:13px;z-index:1;width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(16,42,66,.14);border-radius:50%;color:var(--ink);background:#fffffff0;box-shadow:0 2px 8px #102a4224;cursor:pointer}.gallery-toggle:hover{color:var(--blue);background:#fff}.gallery-toggle svg{width:18px;height:18px;fill:currentColor;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.gallery-toggle svg path:first-child:last-child{fill:none}.gallery-caption{position:absolute;left:14px;bottom:14px;max-width:calc(100% - 28px);border-radius:5px;padding:9px 12px;color:#fff;background:#102a42e6;font-size:13px;font-weight:600}.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px}.gallery-step{min-width:44px;min-height:44px;border:0;padding:0 5px;background:transparent;color:var(--ink);font-size:13px;font-weight:600;cursor:pointer}.gallery-step:hover{color:var(--blue)}.gallery-pagination{display:flex;align-items:center;gap:4px}.gallery-dot{width:32px;height:40px;display:inline-grid;place-items:center;border:0;background:transparent;cursor:pointer}.gallery-dot:after{content:"";width:7px;height:7px;border-radius:50%;background:#bac4cc;transition:width .16s ease,background-color .16s ease}.gallery-dot.is-active:after{width:19px;border-radius:4px;background:var(--red)}.gallery-count{flex:0 0 auto;color:#6b7882;font-variant-numeric:tabular-nums;font-size:12px;white-space:nowrap}.services-section{padding-block:76px 92px;border-top:1px solid var(--line)}.section-heading{max-width:650px;margin-bottom:30px}.section-heading h2,.family-copy h2,.contact-inner h2{margin-bottom:12px;font-size:clamp(29px,3.2vw,40px);line-height:1.15}.section-heading>p:last-child{margin-bottom:0;color:var(--muted);font-size:16px;line-height:1.6}.services-list{border-top:1px solid var(--line)}.service-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:20px;min-height:104px;padding:18px 4px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.service-row:hover .service-link{color:var(--red)}.service-number{color:var(--blue);font-size:13px;font-weight:700;letter-spacing:.06em}.service-copy{display:grid;gap:5px}.service-copy strong{color:var(--ink);font-size:18px}.service-copy>span{max-width:630px;color:var(--muted);font-size:14px;line-height:1.55}.service-link{color:var(--ink);font-size:13px;font-weight:700}.family-section{padding-block:82px;background:var(--paper)}.family-inner{display:grid;grid-template-columns:minmax(230px,.75fr) minmax(0,1.25fr);gap:clamp(40px,7vw,90px);align-items:start}.family-copy{padding-top:8px}.family-copy>p:not(.eyebrow){max-width:440px;color:var(--muted);font-size:16px;line-height:1.7}.family-copy .experience-line{padding-top:8px;color:var(--ink)}.experience-line strong{color:var(--ink)}.text-link{display:inline-block;margin-top:5px;color:var(--ink);font-size:14px;font-weight:700;text-decoration-color:var(--blue);text-decoration-thickness:2px;text-underline-offset:5px}.team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.team-member{min-width:0;display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:14px;padding:13px;border:1px solid #e0e4e7;border-radius:8px;background:#fff}.team-member img{display:block;width:76px;height:76px;border-radius:5px;object-fit:cover}.team-member h3{margin-bottom:4px;color:var(--ink);font-size:14px;line-height:1.3}.team-member p{margin-bottom:0;color:var(--muted);font-size:12px;line-height:1.45}.reviews-section{padding-block:82px 90px}.reviews-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.review{margin:0;padding:18px 0 0;border-top:2px solid var(--blue)}.review:nth-child(2){border-color:var(--red)}.review p{min-height:72px;margin-bottom:16px;color:#394b5a;font-size:15px;line-height:1.65}.review cite{color:var(--ink);font-size:13px;font-style:normal;font-weight:700}.contact-section{padding-block:66px;color:#fff;background:var(--ink)}.contact-inner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);align-items:center;gap:50px}.contact-inner .eyebrow,.contact-inner h2{color:#fff}.contact-inner>div:first-child>p:last-child{max-width:530px;margin-bottom:0;color:#d3dce3;font-size:15px;line-height:1.65}.contact-actions{display:grid;justify-items:start;gap:14px}.contact-actions>a:not(.button){color:#fff;font-size:15px;font-weight:600;text-decoration-color:#7db9dc;text-underline-offset:4px}.contact-actions>span{color:#c3ced7;font-size:13px}.site-footer{padding-block:36px 22px;background:#f3f5f6}.footer-inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:32px;row-gap:20px}.footer-brand img{width:170px}.footer-inner>p{max-width:390px;margin:0;color:var(--muted);font-size:13px;line-height:1.5}.footer-links{display:flex;gap:20px}.footer-inner>small{grid-column:1 / -1;padding-top:16px;border-top:1px solid #d9dfe3;color:#66727c;font-size:12px}@keyframes photo-arrive{0%{opacity:.45;transform:scale(1.025) translateY(5px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(max-width:820px){.section-wrap,.header-inner{width:min(calc(100% - 40px),var(--page-width))}.header-inner{min-height:72px}.brand img{width:190px}.desktop-nav{gap:15px}.desktop-nav a{font-size:13px}.hero{gap:34px;padding-block:38px 60px}.hero-actions{align-items:stretch;flex-direction:column}.hero-actions .button{width:100%}.family-inner{gap:36px}.team-grid{grid-template-columns:1fr}}@media(max-width:650px){.section-wrap,.header-inner{width:min(calc(100% - 32px),480px)}.header-inner{min-height:68px}.brand img{width:174px}.desktop-nav{display:none}.mobile-menu{display:block}.mobile-menu summary{min-width:54px;min-height:44px;display:flex;align-items:center;justify-content:center;list-style:none;color:var(--ink);font-size:13px;font-weight:700;cursor:pointer}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{position:absolute;top:calc(100% + 9px);right:0;min-width:200px;display:grid;gap:0;padding:7px 15px;border:1px solid var(--line);border-radius:7px;background:#fff}.mobile-menu nav a{padding:12px 2px;color:var(--ink);font-size:14px;font-weight:600;text-decoration:none}.mobile-menu nav a+a{border-top:1px solid var(--line)}.hero{grid-template-columns:1fr;grid-template-areas:"gallery" "copy";gap:22px;padding-block:16px 54px}.gallery-frame{aspect-ratio:.78 / 1;border-radius:10px}.gallery-photo{object-position:center 48%}.gallery-photo.focus-rooftop{object-position:center 0%}.gallery-caption{left:10px;bottom:10px;padding:8px 10px;font-size:12px}.gallery-controls{padding-top:7px}.gallery-step{font-size:12px}.hero-copy{padding-block:0}.eyebrow{margin-bottom:12px;font-size:10px;letter-spacing:.1em}.eyebrow>span{width:32px;flex-basis:32px}h1{max-width:390px;margin-bottom:12px;font-size:clamp(30px,8vw,37px);line-height:1.08}.hero-description{margin-bottom:13px;font-size:16px;line-height:1.5}.family-note{margin-bottom:18px;font-size:14px;line-height:1.58}.hero-actions{gap:9px}.button{min-height:50px;border-radius:6px;font-size:14px}.service-area{margin-top:12px;font-size:12px;line-height:1.5}.services-section{padding-block:54px 60px}.section-heading{margin-bottom:22px}.section-heading h2,.family-copy h2,.contact-inner h2{font-size:29px}.section-heading>p:last-child{font-size:15px}.service-row{grid-template-columns:33px minmax(0,1fr);gap:12px;min-height:90px;padding-block:16px}.service-number{align-self:start;padding-top:3px}.service-copy strong{font-size:16px}.service-copy>span{font-size:13px}.service-link{grid-column:2;margin-top:-6px;font-size:12px}.family-section{padding-block:56px}.family-inner{grid-template-columns:1fr;gap:25px}.family-copy>p:not(.eyebrow){font-size:15px}.team-grid{grid-template-columns:1fr 1fr;gap:9px}.team-member{grid-template-columns:52px minmax(0,1fr);gap:8px;padding:8px}.team-member img{width:52px;height:52px}.team-member h3{font-size:12px}.team-member p{font-size:10px}.reviews-section{padding-block:56px 62px}.reviews-list{grid-template-columns:1fr;gap:23px}.review p{min-height:auto;margin-bottom:10px;font-size:14px}.contact-section{padding-block:52px}.contact-inner{grid-template-columns:1fr;gap:24px}.contact-actions{width:100%;gap:13px}.contact-actions .button{width:100%}.site-footer{padding-block:28px 20px}.footer-inner{grid-template-columns:1fr;gap:16px}.footer-brand img{width:168px}.footer-inner>p{font-size:13px}.footer-inner>small{grid-column:1;padding-top:13px;line-height:1.55}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal-on-scroll,.reveal-on-scroll.is-visible{opacity:1;transform:none}}
