.service-details{font-size:11px!important;margin-top:12px!important;padding-top:12px!important}
.site-header .brand{flex-shrink:1;min-width:0;max-width:440px}.site-header .brand>span{min-width:0}.site-header .brand strong{font-size:clamp(14px,1.6vw,21px);overflow-wrap:anywhere}.site-header .brand>img{flex-shrink:0}.site-header nav{flex-shrink:0}
@media(max-width:700px){.site-header .brand{max-width:calc(100% - 85px)}.site-header .brand small{letter-spacing:.5px;font-size:7px}.footer-top .brand{flex-shrink:1;min-width:0}.footer-top .brand strong{overflow-wrap:anywhere}}
.service-area{border-left:3px solid var(--theme-accent);background:var(--theme-panel);padding:18px 22px;margin-top:28px}.service-area p{margin:5px 0 0;color:var(--theme-muted);font-size:13px}
.contact-shortcuts{display:flex;gap:12px;margin:20px 0;flex-wrap:wrap}.contact-shortcuts a{border:1px solid var(--theme-line);border-radius:5px;padding:10px 16px;font-size:12px;background:var(--theme-panel);color:var(--theme-text)}
.mobile-contact{display:none}.comparison-project{margin-top:35px;border-top:1px solid var(--theme-line);padding-top:20px}.comparison-project>p{color:var(--theme-muted);max-width:800px}
.comparison-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.comparison-pair figure{margin:0;position:relative}.comparison-pair img{width:100%;height:330px;object-fit:cover;border-radius:6px}.comparison-pair figcaption{position:absolute;left:15px;bottom:15px;background:var(--theme-header);color:var(--theme-text);padding:6px 16px;border-radius:4px;font-size:12px}
.customer-reviews{border-top:1px solid var(--theme-line)}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:30px}.review-grid figure{margin:0;border:1px solid var(--theme-line);background:var(--theme-panel);padding:25px;border-radius:6px}.review-grid blockquote{margin:0 0 20px;font-size:15px;white-space:pre-line;overflow-wrap:anywhere}.review-grid figcaption{color:var(--theme-accent);font-size:12px}
.request-consent{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:11px}.request-consent input{display:inline-block;width:18px;height:18px;margin:0 7px 0 0}.request-consent a{text-decoration:underline}
.request-result{border:1px solid var(--theme-line);padding:20px;margin:18px 0;font-size:12px;overflow-wrap:anywhere}.request-result p{margin-bottom:0}.brief-button{width:100%;background:none;border:0;color:var(--theme-text);padding:16px;font-size:12px;text-decoration:underline}
.honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.detail-page{padding-top:70px;padding-bottom:80px;max-width:850px}.detail-page h1{font-size:clamp(36px,5vw,60px);overflow-wrap:anywhere}.detail-page h2{font-size:25px;margin-top:40px}.detail-page p{color:var(--theme-muted);margin:22px 0}.detail-page a:not(.button){text-decoration:underline}
@media(max-width:700px){.review-grid{grid-template-columns:1fr}.comparison-pair{gap:10px}.comparison-pair img{height:220px}.mobile-contact{display:flex;position:fixed;left:0;right:0;bottom:0;margin:0;padding:10px 16px;background:var(--theme-header);border-top:1px solid var(--theme-line);z-index:25}.mobile-contact a{flex:1;text-align:center}.has-mobile-contact #theme-trigger{bottom:85px}.has-mobile-contact #theme-picker{bottom:140px;max-height:calc(100dvh - 170px)}.has-mobile-contact footer{padding-bottom:130px}}

body{font-size:18px;line-height:1.75}
h1,h2,h3{overflow-wrap:anywhere}
.intro,.hero .intro{font-size:18px;max-width:100%}
.section-heading>p,.service-card p,.approach-intro>p:not(.eyebrow),.steps p,.faqs p,.contact-copy>p:not(.eyebrow),.service-area p,.review-grid blockquote{font-size:18px}
.eyebrow,.service-ribbon,.hero-note,.image-label,.photo-tag,.project-meta small,.project-meta>span:last-child,.fine-print,.preview-note strong,.preview-note p,.footer-bottom,.brand small,.preview-bar{font-size:14px}
.hero-note-copy{white-space:pre-line}.hero-note .line-icon{flex-shrink:0}
.service-ribbon{flex-wrap:wrap;justify-content:center;text-align:center;letter-spacing:.6px}
.service-ribbon>span:nth-child(odd){flex:1 1 150px}
.service-card h3{font-size:22px;overflow-wrap:anywhere}
.service-card a,.service-card .service-details{font-size:16px!important;min-height:48px;align-items:center}
.contact-placeholder,.contact-shortcuts a,.contact-copy #contact-details,.form-privacy,.request-consent,.request-result,.form-result,.form-result p,.brief-button,.optional,.footer-top>p{font-size:16px}
#project-form label{font-size:18px}#project-form input,#project-form select,#project-form textarea{font-size:18px;max-width:100%}
#project-form input:not([type="checkbox"]),#project-form select{min-height:48px}
.request-consent input{width:24px;height:24px;flex-shrink:0}
.form-row,.contact-layout,.hero-layout,.service-grid,.faq-section{min-width:0}
.form-row>*,.contact-layout>*,.hero-layout>*,.service-grid>*,.faq-section>*{min-width:0}
.button,.hero-actions .button,.hero-actions .text-link,.text-link,.filter,.site-header nav,.site-header .menu-toggle{font-size:16px}
.button,.text-link,.filter,.site-header nav>a,.site-header .menu-toggle,.contact-shortcuts a,.brief-button,.download-link{min-height:48px}
.text-link,.site-header nav>a,.contact-shortcuts a,.download-link{display:inline-flex;align-items:center}
.faqs summary{font-size:18px;min-height:48px;align-items:center}
.faqs summary:after{flex-shrink:0}
.footer-top .brand{max-width:60%;min-width:0;flex-shrink:1}.footer-top .brand strong,.footer-bottom{overflow-wrap:anywhere}
.footer-top{gap:24px}.footer-bottom a{display:inline-flex;align-items:center;min-height:44px}
#theme-trigger{font-size:16px;min-height:48px}
#theme-picker>p{font-size:16px}.theme-choice strong{font-size:16px}.theme-choice small{font-size:13px}
.theme-choice{grid-template-columns:28px minmax(0,1fr) 20px;gap:8px}.theme-choice input{width:20px;height:20px}
#theme-close,.dialog-close{min-width:44px;min-height:44px}
:where(a,button,input,textarea,select,summary):focus-visible{outline:3px solid var(--theme-accent);outline-offset:4px}
.projects-section :where(a,button):focus-visible{outline-color:var(--theme-gallery-text)}
@media(max-width:1000px){.hero-layout{grid-template-columns:1fr}.hero-visual{height:420px}.section-heading{display:block}.section-heading>p{max-width:100%}.contact-layout,.faq-section,.approach{grid-template-columns:1fr}.contact-copy>p:not(.eyebrow),.approach-intro>p:not(.eyebrow){max-width:100%}.service-ribbon>span:nth-child(even){display:none}}
@media(max-width:700px){.footer-top .brand{max-width:100%}.brand small{font-size:12px}.form-row{grid-template-columns:1fr}.preview-note{max-width:100%}.service-grid{grid-template-columns:1fr}.service-card{padding:24px}.hero-actions{align-items:stretch}.hero-actions>.button{width:100%}.service-ribbon{grid-template-columns:1fr 1fr;gap:16px}.theme-options{grid-template-columns:1fr}.comparison-pair{grid-template-columns:1fr}.comparison-pair img{height:auto}.has-mobile-contact #theme-trigger{bottom:100px}.has-mobile-contact #theme-picker{bottom:158px;max-height:calc(100dvh - 180px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}
.hero,.contact-section{background-image:none}
.hero-visual.customer-photo{display:block;overflow:hidden;border:1px solid var(--theme-line);border-radius:16px;background:var(--theme-panel);height:auto;aspect-ratio:4/3;margin:0}
.hero-visual.customer-photo>img{width:100%;height:100%;max-width:none;max-height:none;border-radius:0;object-fit:cover;object-position:center;box-shadow:none}
.hero-visual.customer-photo .visual-stamp{display:none}
.project-grid{align-items:start;grid-template-columns:repeat(3,minmax(0,1fr))}
.project-card{min-width:0}
.real-photo .project-image{display:block;height:auto;aspect-ratio:4/3;background:var(--theme-header);border:1px solid var(--theme-line)}
.real-photo .project-image>img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:center}
.real-photo .project-meta{padding-top:14px}.real-photo .project-meta strong{font-size:18px}
.real-photo .photo-tag{font-size:11px;letter-spacing:.5px}
.real-photo:hover img{transform:none}
#photo-dialog #dialog-image{width:auto;height:auto;max-width:100%;max-height:65vh;object-fit:contain;margin:auto}
.digital-contact{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:start;gap:40px;border-top:1px solid var(--theme-line);scroll-margin-top:110px}
.digital-contact.has-illustration .digital-contact-media{display:contents}
.digital-contact-media{display:grid;justify-items:start;gap:24px;min-width:0}
.digital-contact-media>img{width:100px;height:130px;object-fit:contain;border-radius:8px;background:var(--theme-panel)}
.digital-contact-copy>p{max-width:780px}.contact-role{color:var(--theme-accent)}
.digital-contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.digital-contact-actions a{overflow-wrap:anywhere}
.illustrated-card{grid-column:1/-1;justify-self:center;margin:0;width:100%;max-width:680px}
.illustrated-card a{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--theme-line)}
.illustrated-card img{display:block;width:100%;height:auto;object-fit:contain}
.illustrated-card figcaption{font-size:16px;color:var(--theme-muted);margin-top:12px}
.contact-card-services{padding-left:24px;margin:16px 0 24px;font-size:18px;line-height:1.7}
.digital-contact-copy h3{font-size:22px;margin-top:24px}
.digital-contact-actions a:first-child{font-size:20px;font-weight:700}
@media(max-width:1000px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.digital-contact,.digital-contact.has-illustration{grid-template-columns:1fr;gap:20px}.digital-contact-actions{flex-direction:column}.project-grid{grid-template-columns:1fr}.real-photo .project-image{height:auto}.hero-visual.customer-photo{height:auto}}

@media(min-width:801px){.service-grid:has(>.service-card:nth-child(5):not([hidden])){grid-template-columns:repeat(6,1fr)}.service-grid:has(>.service-card:nth-child(5):not([hidden]))>.service-card{grid-column:span 2}.service-grid:has(>.service-card:nth-child(5):not([hidden]))>.service-card:nth-child(n+4){grid-column:span 3}}
@media(min-width:701px) and (max-width:800px){.service-grid>.service-card:nth-child(5){grid-column:1/-1}}
/* Supplied project photos are small (about 320px); show them whole instead of zooming/cropping them. */
.real-photo .project-image>img{object-fit:contain}