/* RENOV 417 — blue, graphite and a clear architectural rhythm. */
:root{--blue:#174aa0;--blue-dark:#123c83;--ink:#182331;--muted:#566272;--line:#dce2e9;--pale:#f2f5f8;--white:#fff;--radius:3px;--container:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--white);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #faad39;outline-offset:5px}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}.container{width:min(calc(100% - 96px),var(--container));margin-inline:auto}.section-space{padding-block:100px}.skip-link{position:fixed;top:-100px;left:16px;padding:12px 20px;background:var(--white);border:2px solid var(--blue);z-index:50}.skip-link:focus{top:10px}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}.header-inner{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;flex-direction:column;line-height:1.1}.brand-name{font-weight:900;font-size:1.875rem;letter-spacing:-1.3px;color:var(--blue)}.brand-name b{color:#5b6673}.brand-subtitle{font-size:0.75rem;letter-spacing:1.55px;color:#586471;margin-top:8px}.main-nav{display:flex;align-items:center;gap:30px;font-size:0.875rem;font-weight:600}.main-nav>a:not(.nav-contact){padding-block:12px}.main-nav>a:hover{color:var(--blue)}.main-nav .nav-contact{background:var(--blue);color:var(--white);padding:15px 20px;display:flex;gap:22px;align-items:center;border-radius:var(--radius)}.main-nav .nav-contact:hover{background:var(--blue-dark);color:white}.menu-toggle{display:none}.hero{padding-top:60px}.hero-grid{display:grid;grid-template-columns:1.04fr 1fr;gap:55px;align-items:center}.eyebrow{text-transform:uppercase;font-size:0.75rem;font-weight:700;letter-spacing:1.8px;line-height:1.6;color:var(--blue);margin-bottom:23px;display:flex;align-items:center;gap:13px}.short-rule{width:30px;height:2px;background:var(--blue);flex:none}h1{font-size:clamp(2.75rem,4.6vw,4.0625rem);line-height:1.05;font-weight:800;letter-spacing:-2.6px;margin-bottom:27px}h1 span{color:var(--blue)}.hero-intro{max-width:430px;color:var(--muted);font-size:1.125rem;line-height:1.75;margin-bottom:30px}.hero-intro strong{font-weight:600;color:var(--ink)}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:25px;min-height:54px;padding:15px 24px;font-size:0.9375rem;font-weight:700;border-radius:var(--radius);border:1px solid transparent;transition:background .18s,color .18s}.button span{font-size:1.375rem;line-height:1}.button-blue{background:var(--blue);color:white}.button-blue:hover{background:var(--blue-dark)}.button-outline{color:var(--blue);background:white;border-color:var(--line)}.button-outline:hover{background:var(--pale);border-color:var(--blue)}.hero-audience{margin-top:20px;font-size:0.75rem;color:var(--muted);letter-spacing:.15px}.hero-visual{margin:0;height:540px;position:relative;background:var(--blue);overflow:hidden}.hero-type{color:white;padding:36px 40px}.hero-type>span{font-weight:800;font-size:2rem;letter-spacing:5px}.hero-type strong{display:block;font-size:clamp(8.125rem,15vw,13.125rem);line-height:1.05;letter-spacing:-14px}.hero-type p{font-size:1.875rem;line-height:1.2;margin-top:20px}.visual-caption{position:absolute;bottom:0;left:0;right:0;padding:23px 25px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:white;background:rgba(17,33,52,.83);font-size:0.75rem;letter-spacing:1.2px;line-height:1.6}.visual-caption>span:last-child{font-size:1.625rem}.hero-image{width:100%;height:100%;object-fit:cover}.value-strip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:60px;padding-block:26px;gap:25px}.value-strip>div{display:flex;gap:20px;align-items:center}.value-strip>div+div{border-left:1px solid var(--line);padding-left:28px}.value-index{font-size:0.8125rem;color:var(--blue);align-self:flex-start;padding-top:2px}.value-strip p{display:flex;flex-direction:column;gap:3px}.value-strip strong{font-size:1rem;font-weight:700}.value-strip p>span{font-size:0.8125rem;color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:45px;margin-bottom:46px}.section-heading>.eyebrow{margin-bottom:10px}h2{font-size:clamp(2.125rem,3.3vw,2.8125rem);line-height:1.12;letter-spacing:-1.4px;font-weight:750}.section-heading>p{max-width:370px;color:var(--muted);line-height:1.75;padding-bottom:3px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service{padding:29px 30px 35px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:244px;transition:background .15s}.service:hover{background:var(--pale)}.service-number{font-size:0.75rem;letter-spacing:1px;color:var(--blue);font-weight:700;display:block;margin-bottom:28px}.service h3{font-size:1.25rem;line-height:1.25;margin-bottom:14px;letter-spacing:-.3px}.service p{font-size:0.9375rem;color:var(--muted);line-height:1.7}.projects{background:var(--pale)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.project-card{margin:0}.project-card img{width:100%;height:350px;object-fit:cover;background:#e2e8ef}.project-card figcaption{padding-top:19px}.project-card h3{font-size:1.25rem;line-height:1.3;margin-bottom:5px}.project-card p{font-size:0.875rem;color:var(--muted)}.projects .section-heading>p{font-size:1rem}.clients{background:#172537;color:white}.clients .eyebrow{color:#a7c6f3}.clients .section-heading{margin-bottom:48px}.client-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}.client-grid article{border-top:1px solid #586574;padding-top:25px}.client-label{font-size:0.75rem;color:#a8bedb;letter-spacing:.5px}.client-grid h3{font-size:1.6875rem;line-height:1.2;margin-top:19px;margin-bottom:20px;font-weight:600;letter-spacing:-.6px;min-height:65px}.client-grid p{font-size:1rem;line-height:1.8;color:#d1d8e0}.contact{background:#f2f5f8}.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:100px;align-items:center}.contact h2{font-size:clamp(2.4375rem,4vw,3.4375rem);margin-bottom:25px}.contact h2 span{color:var(--blue)}.contact-copy>p:last-child{max-width:405px;color:var(--muted);line-height:1.8}.contact-card{padding:40px;background:white;border:1px solid var(--line);box-shadow:0 12px 40px rgba(25,45,67,.05)}.contact-person{font-size:0.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:12px}.contact-card h3{font-size:1.5rem;line-height:1.2}.contact-company{font-size:0.875rem;color:var(--muted);margin-top:8px}.phone-number{display:block;color:var(--blue);font-size:clamp(1.75rem,2.8vw,2.25rem);font-weight:750;letter-spacing:-.7px;margin-block:27px}.phone-number:hover{text-decoration:underline;text-underline-offset:5px}.contact-card .button{display:flex;width:100%;margin-top:12px}.contact-note{font-size:0.75rem;color:var(--muted);line-height:1.65;margin-top:20px}.site-footer{background:white;border-top:1px solid var(--line);padding-block:30px}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap}.footer-brand{font-size:1.375rem;font-weight:800;color:var(--blue);letter-spacing:-.7px}.footer-brand b{color:var(--muted)}.footer-inner>p{font-size:0.8125rem;color:var(--muted)}.footer-inner>a:not(.footer-brand){font-size:0.875rem;color:var(--blue);font-weight:700}.footer-inner>span{font-size:0.75rem;color:var(--muted)}
@media(min-width:1500px){.hero-grid{gap:75px}.hero{padding-top:70px}}
@media(max-width:1050px){.container{width:calc(100% - 64px)}.main-nav{gap:18px}.main-nav .nav-contact{padding-inline:15px;gap:12px}.hero-grid{gap:35px}.hero-visual{height:500px}h1{font-size:3.1875rem}.hero-intro{font-size:1.0625rem}.value-strip{gap:15px}.value-strip>div{gap:12px}.value-strip>div+div{padding-left:17px}.service{padding:26px 24px}.contact-grid{gap:55px}.contact-card{padding:32px}.footer-inner{justify-content:flex-start}.footer-inner>span{margin-left:auto}}
@media(max-width:780px){html{scroll-padding-top:90px}.container{width:calc(100% - 40px)}.section-space{padding-block:65px}.header-inner{min-height:80px;gap:15px;flex-wrap:wrap}.brand-name{font-size:1.625rem}.brand-subtitle{font-size:0.75rem;letter-spacing:1.1px}.menu-toggle{display:flex;gap:12px;align-items:center;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:3px;padding:8px 12px;font-size:0.875rem;min-height:44px}.menu-toggle span{font-size:1.0625rem}.main-nav{width:100%;display:none;padding-bottom:20px;flex-direction:column;align-items:stretch;gap:5px}.main-nav.open{display:flex}.main-nav>a:not(.nav-contact){padding:12px 0}.main-nav .nav-contact{justify-content:space-between;padding:14px 16px}.hero{padding-top:40px}.hero-grid{grid-template-columns:1fr;gap:35px}.hero-copy{max-width:530px}h1{font-size:clamp(2.6875rem,8.6vw,3.9375rem);letter-spacing:-2px}.hero-intro{max-width:470px;font-size:1.0625rem}.eyebrow{font-size:0.75rem;letter-spacing:1.3px;margin-bottom:20px}.hero-audience{font-size:0.75rem}.hero-visual{height:400px}.hero-type strong{font-size:10rem;letter-spacing:-10px}.hero-type p{margin-top:10px;font-size:1.625rem}.value-strip{margin-top:35px;grid-template-columns:1fr;padding-block:0;gap:0}.value-strip>div{padding-block:17px;gap:20px}.value-strip>div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}.value-strip p>span{font-size:0.875rem}.section-heading{display:block;margin-bottom:32px}.section-heading>p{margin-top:22px;max-width:480px}.service-grid{grid-template-columns:1fr 1fr}.service{min-height:230px;padding:25px 23px}.service-number{margin-bottom:23px}.service h3{font-size:1.25rem}.service p{font-size:1rem}.project-grid{gap:25px}.project-card img{height:270px}.client-grid{grid-template-columns:1fr;gap:32px}.client-grid h3{font-size:1.75rem;min-height:0;margin-top:12px;margin-bottom:13px}.client-grid h3 br{display:none}.client-grid h3 br:after{content:' '}.client-grid p{max-width:560px}.contact-grid{grid-template-columns:1fr;gap:35px}.contact h2{font-size:2.8125rem}.contact-copy>p:last-child{max-width:500px}.contact-card{padding:30px}.phone-number{font-size:2.125rem}.footer-inner{gap:16px}.footer-brand{flex-basis:100%}.footer-inner>p{flex-basis:100%}.footer-inner>span{margin-left:0}.footer-inner>a:not(.footer-brand){margin-right:auto}}
@media(max-width:460px){.container{width:calc(100% - 36px)}.hero{padding-top:35px}h1{font-size:2.75rem;letter-spacing:-1.8px}.hero-intro{font-size:1rem}.hero .button{font-size:0.9375rem}.hero-visual{height:350px}.hero-type{padding:25px 27px}.hero-type strong{font-size:8.875rem}.hero-type>span{font-size:1.625rem}.hero-type p{font-size:1.4375rem}.visual-caption{padding:18px 20px;font-size:0.75rem;letter-spacing:1px}.service-grid{grid-template-columns:1fr}.service{min-height:0;padding:25px}.service-number{margin-bottom:18px}.service h3{font-size:1.375rem}.service p{font-size:1rem}.project-grid{grid-template-columns:1fr;gap:32px}.project-card img{height:310px}.contact-card{padding:26px 22px}.contact h2{font-size:2.625rem}.contact-card .button{padding-inline:17px;font-size:0.875rem}.phone-number{font-size:2rem}.contact-note{font-size:0.8125rem}.footer-inner>span{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Show the complete supplied project photographs at their original proportions. */
.projects .project-card img{height:auto;aspect-ratio:4/3;object-fit:contain}
.projects .project-grid-interior{grid-template-columns:repeat(2,minmax(0,1fr))}
.projects .project-grid-interior img{aspect-ratio:3/4}
.projects .project-grid-interior .project-opening img{aspect-ratio:auto}
@media(max-width:780px){.projects .project-grid{grid-template-columns:1fr;gap:32px}}

/* Original RENOV 417 logo: trim only its empty margins in the layout. */
html{scroll-padding-top:170px}
.site-header{background:#020202;color:#f4f7fc;border-bottom-color:#29313c}
.header-inner{min-height:152px}
.brand{flex:none}
.brand-logo-frame{display:block;position:relative;width:164px;height:140px;overflow:hidden;flex:none}
.brand-logo{position:absolute;left:-25px;top:-38px;width:212px;height:212px;max-width:none}
.main-nav>a:hover{color:#a4cfff}
.site-footer{background:#020202;color:#f4f7fc;border-top-color:#29313c;padding-block:20px}
.footer-brand{display:inline-flex}
.footer-inner>p,.footer-inner>span{color:#b9c4d2}
.footer-inner>a:not(.footer-brand){color:#a4cfff}
.footer-brand .brand-logo-frame{width:138px;height:118px}
.footer-brand .brand-logo{left:-23px;top:-33px;width:182px;height:182px}
@media(max-width:780px){
  html{scroll-padding-top:144px}
  .header-inner{min-height:130px}
  .brand-logo-frame{width:138px;height:118px}
  .brand-logo{left:-23px;top:-33px;width:182px;height:182px}
  .menu-toggle{color:#f4f7fc;border-color:#5a6675}
  .menu-toggle:hover{background:#172537}
  .main-nav{padding-top:4px}
}

/* Photographs of the actual project, shown in their original proportions. */
.hero-visual-project{height:auto;background:var(--pale)}
.hero-visual-project .hero-image{height:auto;aspect-ratio:4/3;object-fit:contain}
.hero-visual-project .visual-caption{position:static;background:#172537;padding:16px 20px;font-size:.875rem;letter-spacing:.3px}
.hero-visual-project .visual-caption>span:last-child{font-size:inherit}
.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
.project-photo{margin:0;min-width:0}
.project-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#e2e8ef}
.project-photo figcaption{padding-top:15px;font-size:1rem;line-height:1.5;font-weight:600}
.project-group+.project-group{margin-top:60px;padding-top:55px;border-top:1px solid var(--line)}
.project-heading{margin-bottom:26px}
.project-heading h3{font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.2;letter-spacing:-.5px}
.project-heading p{margin-top:12px;max-width:700px;color:var(--muted)}
.project-card h4{margin:0 0 5px;font-size:1.25rem;line-height:1.3;text-wrap:balance}
@media(min-width:781px){.main-nav{flex-wrap:wrap;justify-content:flex-end;column-gap:24px;row-gap:4px}.main-nav>a{white-space:nowrap}}
@media(max-width:780px){.project-gallery{grid-template-columns:1fr;gap:30px}.project-photo figcaption{padding-top:12px}}

/* Original photo areas from the supplied posters, with readable HTML captions. */
.project-comparison-photo{position:relative;overflow:hidden;aspect-ratio:var(--comparison-ratio,3 / 2);background:#e2e8ef}
.projects .project-comparison-photo img{position:absolute;top:var(--crop-top);left:var(--crop-left);width:var(--crop-width);max-width:none;height:auto;aspect-ratio:auto;object-fit:contain}
.projects .project-sidr-photo img{height:auto;aspect-ratio:16/9;object-fit:cover;object-position:center 18%}

/* Commercial renovation: interiors, then the facade before and after. */
.projects .project-commercial-interior{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start}
.projects .project-commercial-interior img{height:clamp(280px,33vw,390px);aspect-ratio:auto;object-fit:contain}
.project-commercial-facades{margin-top:40px;align-items:start}
.projects .project-commercial-facades img{height:auto;aspect-ratio:auto}
@media(max-width:780px){
  .projects .project-commercial-interior{grid-template-columns:1fr}
  .projects .project-commercial-interior img{height:auto;max-height:480px;aspect-ratio:auto}
  .project-commercial-facades{margin-top:32px}
}

/* The dental project, told through the artisan's account and two photographs. */
.project-story{padding:clamp(22px,4vw,46px);background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}
.story-heading .eyebrow{font-size:.875rem;margin-bottom:16px}
.story-heading h3{font-size:clamp(2rem,3.7vw,3rem);line-height:1.12;letter-spacing:-1.2px;font-weight:750}
.story-heading h3 span{color:var(--blue)}
.story-intro{max-width:780px;margin-top:20px;color:var(--muted);font-size:1rem;line-height:1.75}
.story-personal{margin-block:30px 36px;padding:26px 30px;background:#f1f5fc;border-left:3px solid var(--blue)}
.story-personal h4{margin:0 0 12px;color:var(--blue);font-size:.875rem;text-transform:uppercase;letter-spacing:.7px;line-height:1.5}
.story-personal>p{font-size:1.125rem;line-height:1.7;max-width:900px}
.story-signature{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 12px;margin-top:16px;font-size:.875rem}
.story-signature span{color:var(--muted)}
.story-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;align-items:start}
.story-gallery>*{min-width:0}
.story-photo{margin:0}
.story-photo-label{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-weight:700;font-size:1rem;line-height:1.5}
.story-photo-label span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:30px;background:#f1f5fc;color:var(--blue);border-radius:50%;font-size:.8125rem}
.story-photo img{width:100%;height:auto;border-radius:2px}
.story-photo figcaption{padding-top:12px;color:var(--muted);font-size:.875rem;line-height:1.65}
.story-intervention{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.story-intervention h4{margin:0 0 10px;font-size:1rem;line-height:1.5}
.story-intervention ul{margin:0;padding-left:20px;color:var(--muted);font-size:1rem;line-height:1.65}
.story-intervention li+li{margin-top:4px}
.story-closing{margin-top:32px;padding-top:20px;border-top:1px solid var(--line);font-size:.875rem;color:var(--muted)}
@media(max-width:780px){.story-gallery{grid-template-columns:1fr;gap:32px}.story-personal{padding:21px 22px;margin-block:26px 30px}.story-personal>p{font-size:1rem}.story-heading h3{letter-spacing:-.7px}}
@media(max-width:460px){.project-story{padding:22px 18px}.story-heading .eyebrow{letter-spacing:1px}.story-personal{padding:20px 18px}.story-photo-label{font-size:.9375rem;gap:8px}}

/* The company's confirmed RSE commitments. */
.rse{background:var(--white)}
.rse .eyebrow{font-size:.875rem}
.rse-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.rse-card{border-top:3px solid var(--blue);padding-top:24px}
.rse-card h3{font-size:1.25rem;line-height:1.3;margin-bottom:14px}
.rse-card p{font-size:1rem;line-height:1.75;color:var(--muted)}
@media(min-width:781px){.rse-card h3{min-height:2.6em}}
@media(max-width:780px){.rse-grid{grid-template-columns:1fr;gap:30px}.rse-card{padding-top:20px}}
