:root{--sky:#80c348;--sky-dark:#589d29;--sky-pale:#f1f7eb;--sky-soft:#e0efcf;--display:Arial,Helvetica,sans-serif;--body:Arial,Helvetica,sans-serif;--shell:min(1240px,calc(100% - 64px))}html{scroll-behavior:smooth}body{font-family:var(--body);margin:0}*{box-sizing:border-box}img{max-width:100%}a{color:inherit}h1,h2,h3{font-family:var(--display);text-transform:uppercase;letter-spacing:-.04em;line-height:1.05}h1{font-size:clamp(40px,5.5vw,76px)}h2{font-size:clamp(30px,3.3vw,48px)}p{line-height:1.7}.site-shell{width:var(--shell);margin:auto}.site-header .brand{min-width:0}.brand img{width:285px;height:auto}.header-inner{justify-content:space-between}.main-nav{gap:26px}.main-nav a{font-size:13px}.agency-hero{position:relative;display:block!important;min-height:740px!important}.agency-hero-stage{padding:64px 0;grid-template-columns:1fr 1fr;max-width:1240px;min-height:740px}.agency-hero-media{position:absolute;inset:0;min-height:100%;margin:0;z-index:0}.agency-hero-media:after{content:'';position:absolute;inset:0;background:rgba(15,24,20,.27)}.agency-hero-media img{width:100%;height:100%;object-fit:cover}.agency-hero-copy{border-left:4px solid var(--sky);padding:42px!important;color:white;background:rgba(22,35,31,.94);align-self:center}.agency-hero .agency-hero-kicker,.agency-hero .agency-hero-services,.agency-hero .agency-hero-text,.agency-hero .agency-hero-text strong{color:white!important}.agency-hero h1{font-size:clamp(48px,5.4vw,76px);color:var(--sky)!important;line-height:.98}.agency-hero-kicker{font-size:26px}.agency-hero-services{font-size:20px}.hero-actions .button{flex:1;white-space:nowrap}.button-primary{background:var(--sky-dark);border-color:var(--sky-dark);color:#fff}.hero-actions .button-secondary{color:white;border-color:#adb9b3;background:transparent}.hero-wizard-shell{align-self:center;box-shadow:0 24px 64px #06140b44}.repair-wizard{min-height:505px;padding:32px}.repair-wizard-head h2{font-size:30px;max-width:320px}.repair-wizard-progress span{width:25%;background:var(--sky-dark)}.wizard-choice-grid span{min-height:66px;background:#f4f7f1;border-color:#dce6d6}.wizard-choice-grid input:focus-visible+span{outline:3px solid var(--sky-dark);outline-offset:3px}.wizard-choice-grid input:checked+span{box-shadow:inset 4px 0 var(--sky);background:#24352b}.wizard-footnote{font-size:11px;text-align:center;color:#66746b;margin:16px 0 0}.wizard-actions{display:flex;gap:12px;margin-top:auto;padding-top:22px}.wizard-next,.wizard-submit{flex:1}.wizard-step label:not(.wizard-choice-grid label){display:block;font-size:14px;margin:12px 0 6px}input:not([type=radio]),textarea{display:block;width:100%;padding:13px;border:1px solid #ccd7c6;border-radius:6px;font:inherit;background:white}textarea{resize:vertical}.wizard-step h3{font-size:23px}#wizard-error{color:#a32727;font-size:13px;min-height:16px;margin:10px 0 0}#summary{font-size:14px;line-height:1.6;white-space:pre-wrap;margin-bottom:18px}.service-strip{display:grid;grid-template-columns:repeat(6,1fr);border-bottom:1px solid var(--line);padding:0}.service-strip a{display:flex;gap:10px;align-items:center;padding:25px 12px;font-size:12px;font-weight:750;text-transform:uppercase;text-decoration:none;border-right:1px solid var(--line)}.service-strip small{color:var(--sky-dark)}.section{padding-top:90px;padding-bottom:90px}.section-head{max-width:720px;margin-bottom:38px}.section-head h2{margin:10px 0 22px}.section-head p{color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.service-tile{display:block;border:1px solid #dfe5dc;text-decoration:none;transition:transform .2s,box-shadow .2s;background:white}.service-tile:hover{transform:translateY(-4px);box-shadow:0 14px 30px #243b2214}.service-tile>img{width:100%;height:230px;object-fit:cover;display:block}.service-tile>div{padding:26px}.tile-number{color:var(--sky-dark);font-size:12px;font-weight:800}.service-tile h3{font-size:25px;margin:14px 0}.service-tile p{font-size:15px;color:var(--muted);min-height:76px}.tile-link{display:block;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;margin-top:24px;color:var(--sky-dark)}.about-band{background:#f2f5ef;padding:85px 0}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.about-grid>img{width:100%;height:450px;object-fit:cover}.about-grid h2{margin:12px 0 26px}.about-grid p{color:var(--muted)}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:35px}.process-grid article{border:1px solid #dfe7da;padding:28px;border-radius:14px}.process-grid span{color:var(--sky-dark);font-weight:800;font-size:28px}.process-grid h3{font-size:21px;margin:25px 0 15px}.process-grid p{color:var(--muted);font-size:14px}.footer-logo{width:250px;background:white;padding:10px;height:auto}.site-footer{background:#1b2a22}.site-footer p{color:#b7c7bc;font-size:14px}.footer-grid{grid-template-columns:1.15fr 1fr 1.2fr 1.1fr}.site-footer h2{font-size:13px;color:var(--sky)}.site-footer a{font-size:13px}.detail-hero{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding-top:70px;padding-bottom:70px}.detail-hero img{width:100%;height:460px;object-fit:cover}.intro{font-size:20px;max-width:650px;color:var(--muted);margin-bottom:30px}.reading{max-width:850px}.reading p{font-size:18px;color:var(--muted)}.text-link{color:var(--sky-dark);font-weight:750}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start;margin-top:50px}.contact-big{display:block;font-size:clamp(24px,3vw,35px);color:var(--sky-dark);text-decoration:none;font-weight:bold}.faq-list{margin-top:40px}.faq-list details{padding:22px 0;border-bottom:1px solid #dae4d4}.faq-list summary{cursor:pointer;font-weight:750;font-size:20px}.cta-band .eyebrow{color:var(--sky)}.cta-band .button-secondary{border-color:#849b8b;color:white}.main-nav a.active{color:var(--sky-dark)}[hidden]{display:none!important}.menu-toggle{border:0;background:none;cursor:pointer}.menu-toggle span{background:#24352b}.wizard-back{cursor:pointer}button{font:inherit}
@media(min-width:1101px){.menu-toggle{display:none!important}.main-nav{display:flex!important}}@media(max-width:1100px){.main-nav{display:none}.main-nav.is-open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:white;padding:20px 32px;gap:0;box-shadow:0 15px 25px #0002}.main-nav a{padding:14px 0}.header-inner{min-height:85px}.agency-hero-stage{grid-template-columns:1fr 1fr;gap:20px;width:calc(100% - 40px)}.agency-hero-copy{padding:30px!important}.repair-wizard{padding:26px 22px}.repair-wizard-head{gap:12px}.repair-wizard-count{font-size:10px}.repair-wizard-head h2{font-size:26px}.service-strip{grid-template-columns:repeat(3,1fr)}.hero-actions .button{white-space:normal}.process-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){:root{--shell:calc(100% - 36px)}.brand img{width:235px}.header-inner{min-height:80px}.agency-hero-stage{grid-template-columns:1fr;padding:30px 0;gap:24px;width:calc(100% - 28px)}.agency-hero-copy{padding:34px 24px!important}.agency-hero h1{font-size:60px}.agency-hero-kicker{font-size:25px}.agency-hero-text{margin:24px 0}.hero-wizard-shell{max-width:none}.repair-wizard{min-height:490px;padding:28px 22px}.repair-wizard-head h2{font-size:29px}.service-strip{grid-template-columns:repeat(2,1fr)}.service-strip a{padding:18px 8px}.section{padding-top:60px;padding-bottom:60px}.service-grid{grid-template-columns:1fr}.service-tile>img{height:250px}.service-tile p{min-height:0}.about-grid,.detail-hero,.contact-grid{grid-template-columns:1fr;gap:30px}.about-grid>img{height:300px}.about-band{padding:55px 0}.process-grid{grid-template-columns:1fr 1fr;gap:12px}.process-grid article{padding:20px}.process-grid h3{font-size:18px}.footer-grid{grid-template-columns:1fr 1fr;gap:35px}.detail-hero{padding-top:45px;padding-bottom:30px}.detail-hero img{height:300px}.contact-grid{margin-top:30px}.reading p{font-size:16px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Keep the Primus process cards independent of the legacy two-column layout. */
.home-v2 .process-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}
.home-v2 .process-grid article {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  min-width: 0;
  min-height: 0;
  padding: 28px;
  border: 1px solid #dfe7da;
  border-radius: 14px;
}
.home-v2 .process-grid article > span {
  display: block;
  font-size: 36px;
  line-height: 1;
  margin: 0 0 24px;
}
.home-v2 .process-grid article > h3 {
  width: 100%;
  margin: 0 0 14px;
  font-size: 21px;
  line-height: 1.2;
  overflow-wrap: normal;
  word-break: normal;
}
.home-v2 .process-grid article > p {
  width: 100%;
  max-width: none;
  margin: 0;
  font-size: 15px;
  line-height: 1.65;
  overflow-wrap: normal;
  word-break: normal;
}
@media (max-width: 1100px) {
  .home-v2 .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .home-v2 .process-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .home-v2 .process-grid article { padding: 24px; }
  .home-v2 .process-grid article > span { margin-bottom: 18px; }
}

/* Shared finishing touches across all Primus pages. */
.service-grid, .about-grid, .detail-hero, .contact-grid { min-width: 0; }
.service-grid > *, .about-grid > *, .detail-hero > *, .contact-grid > * { min-width: 0; }
.service-tile { border-radius: 12px; overflow: hidden; }
.service-tile h3 { line-height: 1.15; }
.detail-hero > img, .about-grid > img { border-radius: 12px; }
.reading > h1 { margin-bottom: 28px; }
.main-nav.is-open { height: auto; }
@media (max-width: 480px) {
  .footer-grid { grid-template-columns: minmax(0, 1fr); }
}
.detail-hero h1 { overflow-wrap: anywhere; hyphens: auto; }
@media (max-width: 760px) {
  .detail-hero h1 { font-size: clamp(34px, 9vw, 48px); }
}

/* Each photo has one dedicated place; overview cards remain text-focused. */
.service-tile > div { padding: 30px; }
.service-tile .tile-number { font-size: 28px; line-height: 1; }
.service-tile h3 { margin-top: 22px; }
.service-tile .tile-link { margin-top: 28px; }
.about-grid.about-grid-text { grid-template-columns: minmax(0, 1fr); }
.about-grid-text > div { max-width: 760px; }
.detail-hero.detail-hero-text { grid-template-columns: minmax(0, 1fr); padding-bottom: 40px; }
.detail-hero-text > div { max-width: 850px; }
.detail-hero-text + .reading { padding-top: 40px; }
@media (max-width: 760px) { .service-tile > div { padding: 26px; } }

/* Accessible before/after preview; the two illustrations are placeholders. */
.comparison-section { padding: 80px 0; background: #f5f7f2; }
.comparison-heading { display: grid; grid-template-columns: 1fr minmax(240px, 400px); align-items: end; gap: 40px; margin-bottom: 32px; }
.comparison-heading h2 { margin: 0; }
.comparison-heading > p { color: var(--muted); font-size: 16px; }
.comparison { margin: 0; }
.comparison-stage { position: relative; height: clamp(300px, 36vw, 460px); overflow: hidden; border-radius: 16px; isolation: isolate; background: #b88c55; }
.comparison-surface { position: absolute; inset: 0; display: grid; place-items: center; background-size: 160px 100%, 100% 100%; }
.comparison-after { background-image: repeating-linear-gradient(90deg, transparent 0 78px, #73502c55 79px 80px), repeating-linear-gradient(2deg, #bb8b50 0 4px, #c99d63 6px 10px, #d2aa76 12px 15px, #c19860 18px 21px); }
.comparison-before { clip-path: inset(0 calc(100% - var(--split)) 0 0); background-image: repeating-linear-gradient(90deg, transparent 0 78px, #554c3d77 79px 80px), repeating-linear-gradient(2deg, #847763 0 4px, #9d907a 6px 10px, #a59a84 12px 15px, #8b7e68 18px 21px); }
.comparison-before::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(145deg, transparent 0 90px, #dfd9ca66 91px 93px, transparent 94px 165px), radial-gradient(ellipse at 25% 65%, #514e4144, transparent 35%); }
.comparison-surface > span { position: absolute; bottom: 30px; color: #fff; padding: 8px 14px; border-radius: 6px; font-size: 12px; background: #1b2a22b8; }
.comparison-before > span { left: 24px; }
.comparison-after > span { right: 24px; }
.comparison-labels { position: absolute; inset: 22px 24px auto; display: flex; justify-content: space-between; pointer-events: none; }
.comparison-labels > span { color: #fff; background: #1b2a22e6; padding: 8px 14px; border-radius: 6px; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.comparison-divider { position: absolute; inset: 0 auto 0 var(--split); width: 3px; transform: translateX(-50%); background: #fff; pointer-events: none; box-shadow: 0 0 16px #14221933; }
.comparison-divider > span { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); display: grid; place-items: center; width: 58px; height: 58px; background: #fff; color: var(--sky-dark); border: 2px solid var(--sky-dark); border-radius: 50%; font-size: 29px; font-weight: 800; box-shadow: 0 5px 22px #14221933; }
input.comparison-range:not([type=radio]) { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; appearance: none; -webkit-appearance: none; background: transparent; border: 0; border-radius: 16px; cursor: ew-resize; touch-action: pan-y; }
.comparison-range::-webkit-slider-runnable-track { height: 100%; background: transparent; }
.comparison-range::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 1px; height: 100%; background: transparent; border: 0; }
.comparison-range::-moz-range-track { height: 100%; background: transparent; }
.comparison-range::-moz-range-thumb { width: 1px; height: 100%; background: transparent; border: 0; }
input.comparison-range:focus-visible { outline: 4px solid var(--sky-dark); outline-offset: -4px; }
.comparison-help { margin: 18px 0 9px; color: var(--graphite); font-size: 13px; font-weight: 700; text-align: center; }
.comparison-note { max-width: 760px; margin: auto; color: var(--muted); font-size: 13px; text-align: center; }
@media (max-width: 760px) {
  .comparison-section { padding: 55px 0; }
  .comparison-heading { grid-template-columns: minmax(0,1fr); gap: 18px; margin-bottom: 26px; }
  .comparison-stage { height: 320px; }
  .comparison-labels { inset: 16px 16px auto; }
  .comparison-surface > span { bottom: 18px; font-size: 10px; padding: 7px 9px; }
  .comparison-before > span { left: 12px; }
  .comparison-after > span { right: 12px; }
  .comparison-divider > span { width: 50px; height: 50px; }
}
.comparison-section { scroll-margin-top: 96px; }
@media (max-width: 760px) { .comparison-section { scroll-margin-top: 80px; } }

/* Original photographs replace the illustrative floor surfaces. */
.comparison-surface { display: block; background: #e3e8df; }
.comparison-surface > img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.comparison-before::before { content: none; }
.detail-hero-text > .text-link { justify-self: start; margin-top: 4px; }

/* Illustrated services: distinct overview motifs and additional detail photographs. */
.service-tile { display: flex; flex-direction: column; }
.service-tile > img { height: 235px; width: 100%; object-fit: cover; object-position: center; }
.service-tile > div { display: flex; flex-direction: column; flex: 1; padding: 26px; }
.service-tile h3 { margin: 0 0 16px; }
.service-tile p { margin: 0 0 22px; min-height: 0; }
.service-tile .tile-link { margin-top: auto; padding-top: 12px; }
.service-strip a { justify-content: center; text-align: center; }
.home-v2 .process-grid article > h3 { margin-top: 0; }
.service-editorial { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 64px; align-items: center; }
.service-explanation h2 { margin: 0 0 26px; }
.service-explanation p { color: var(--muted); font-size: 17px; margin: 0 0 22px; }
.service-explanation .text-link { display: inline-block; margin-top: 8px; }
.service-detail-photo { margin: 0; min-width: 0; }
.service-detail-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; }
.service-detail-photo figcaption { color: var(--muted); font-size: 13px; line-height: 1.6; margin-top: 14px; }
@media(max-width:1000px){.service-editorial{gap:36px}}
@media(max-width:760px){.service-editorial{grid-template-columns:minmax(0,1fr);gap:30px}.service-tile > img{height:240px}.service-explanation p{font-size:16px}.service-detail-photo img{aspect-ratio:4/3}}
