*{box-sizing:border-box}body{margin:var(--s0);font:var(--regular) var(--body)/var(--leading) var(--font);color:var(--ink);background:var(--white)}img{max-width:100%;height:auto;display:block}a{color:var(--green);text-underline-offset:var(--s1)}button,input,select,textarea{font:inherit}:focus-visible{outline:var(--ring) solid var(--focus);outline-offset:var(--s1)}h1,h2,h3,p{margin:var(--s0) var(--s0) var(--s4)}h1,h2,h3{color:var(--green);font-weight:var(--heavy);line-height:var(--tight);overflow-wrap:anywhere}h1{font-size:var(--h1)}h2{font-size:var(--h2)}h3{font-size:var(--h3)}p{max-width:var(--measure)}.wrap{width:min(100% - var(--s6),var(--page));margin-inline:auto}.section{padding-block:var(--section)}.sage{background:var(--sage)}.dark{background:var(--green);color:var(--white);--focus:var(--white)}.dark h2,.dark h3,.dark a{color:var(--white)}.top-bar{padding-block:var(--s2);font-size:var(--small)}.top-bar .wrap,.actions,.header-row{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}.top-bar .hours{margin-inline-start:auto}.top-bar a{padding-block:var(--s2)}.header{position:sticky;top:var(--s0);z-index:var(--layer-header);background:var(--white);border-bottom:var(--border) solid var(--sage)}.header-row{padding-block:var(--s4);justify-content:space-between}.logo{display:block;max-width:var(--logo)}.nav{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2)}.nav>a,.nav summary,.nav details a{display:inline-flex;align-items:center;min-height:var(--target);padding:var(--s2) var(--s3);font-weight:var(--bold)}details summary{cursor:pointer}summary::marker{color:var(--green)}.nav details{position:relative}.dropdown{background:var(--white);border:var(--border) solid var(--sage);border-radius:var(--round);padding:var(--s4)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--target);padding:var(--s3) var(--s5);border:var(--border) solid var(--green);border-radius:var(--pill);font-weight:var(--bold);text-decoration:none;text-align:center;color:var(--green);background:var(--white)}.button.primary{background:var(--yellow)}.button.whatsapp{background:var(--green);color:var(--white)}.dark .button.primary{color:var(--green)}.skip{position:absolute;left:var(--s4);top:var(--s4);transform:translateY(var(--skip-hidden));z-index:var(--layer-skip);background:var(--yellow);padding:var(--s4)}.skip:focus{transform:none}.hero{display:grid;gap:var(--s6);align-items:center}.hero h1,.hero h2{font-size:var(--h1);font-style:italic}.hero picture img{border-radius:var(--round);aspect-ratio:var(--photo-ratio);object-fit:cover}.trust{display:flex;flex-wrap:wrap;gap:var(--s5);padding-block:var(--s5);font-weight:var(--bold)}.grid{display:grid;gap:var(--s5)}.card{background:var(--white);border-radius:var(--round);overflow:hidden;border:var(--border) solid var(--sage)}.card-body{padding:var(--s5)}.card picture img{width:100%;aspect-ratio:var(--photo-ratio);object-fit:cover}.price{font-size:var(--h2);font-weight:var(--heavy);color:var(--green)}.process img{width:var(--character);margin-inline:auto}.process .card-body{text-align:center}.faq details{padding:var(--s5) var(--s0);border-bottom:var(--border) solid var(--green)}.faq summary{min-height:var(--target);font-size:var(--h3);font-weight:var(--bold);color:var(--green)}.faq p{margin-top:var(--s4)}.cta{padding:var(--s7);border-radius:var(--round)}.footer{padding-block:var(--section)}.footer .badge img{width:var(--badge)}.footer a{display:inline-flex;min-height:var(--target);align-items:center}.swatches{display:flex;flex-wrap:wrap;gap:var(--s4)}.swatch{border:var(--border) solid currentColor;border-radius:var(--round);padding:var(--s5);font-weight:var(--bold)}.green{background:var(--green);color:var(--white)}.yellow{background:var(--yellow);color:var(--green)}.charcoal{background:var(--ink);color:var(--white)}.guide-title{border-bottom:var(--s2) solid var(--yellow);padding-bottom:var(--s5)}.muted{font-size:var(--small)}
/* Breakpoints are central layout constants: CSS variables cannot be used in media conditions. */
@media(min-width:48rem){.hero{grid-template-columns:1fr 1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.process{grid-template-columns:repeat(4,minmax(0,1fr))}.nav details[open] .dropdown{position:absolute;min-width:var(--logo);box-shadow:var(--shadow)}}
@media(min-width:75rem){.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:47.999rem){.top-bar .hours{margin-inline-start:var(--s0)}.header-row{gap:var(--s3)}.logo{max-width:min(var(--logo),var(--logo-mobile))}.nav{width:100%}.cta{padding:var(--s5)}}

.top-bar a{display:inline-flex;align-items:center;min-height:var(--target)}figure{margin:var(--s0)}
/* Mobile/header layout thresholds share the existing 48rem and 75rem constants. */
[hidden]{display:none!important}.mobile-menu,.mobile-controls,.action-bar{display:none}.city-choice{position:relative}.city-choice summary,.city-list a,.mobile-menu summary,.mobile-menu a,.contact-icon{display:flex;align-items:center;min-height:var(--target);padding:var(--s2) var(--s3)}.city-list{display:grid;gap:var(--s2);padding:var(--s3);background:var(--white);color:var(--green);border:var(--border) solid var(--green);border-radius:var(--round)}.dark .city-list a{color:var(--green)}.city-list a{overflow-wrap:anywhere}.language-switcher a{min-height:var(--target);display:inline-flex;align-items:center}.top-bar summary{list-style:revert}.contact-icon{font-size:var(--icon-size);justify-content:center;min-width:var(--target)}
@media(max-width:74.999rem){.header .nav{display:none}.header-row{position:relative}.mobile-menu{display:block;width:100%}.mobile-menu nav{display:grid}.mobile-controls{display:flex;gap:var(--s2);align-items:center}.header .logo{max-width:var(--mobile-logo)}.header{position:relative}}
@media(max-width:47.999rem){body{padding-bottom:calc(var(--action-reserve) + env(safe-area-inset-bottom))}.top-bar{display:none}.header-row{gap:var(--s2)}.mobile-controls{flex-wrap:wrap}.action-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr);gap:var(--s2);position:fixed;inset:auto var(--s0) var(--s0);z-index:var(--layer-actions);padding:var(--s2);padding-bottom:calc(var(--s2) + env(safe-area-inset-bottom));background:var(--white);border-top:var(--border) solid var(--green)}.action-bar summary{justify-content:center;font-weight:var(--bold);border:var(--border) solid var(--green);border-radius:var(--pill);color:var(--green);list-style:none}.action-bar .city-choice{position:static}.action-bar .city-list{left:var(--s2);right:var(--s2);position:absolute;bottom:calc(100% + var(--s2));width:auto;box-shadow:var(--shadow)}.action-bar .button{padding-inline:var(--s2)}html.form-typing .action-bar,body:has(form :focus) .action-bar{display:none}}
.quote-form{background:var(--white);padding:var(--s5);border:var(--border) solid var(--green);border-radius:var(--round);min-width:var(--s0);max-width:var(--form-width)}.quote-form>label{display:block;font-weight:var(--bold);margin-top:var(--s4)}.quote-form input:not([type=checkbox]):not([type=hidden]),.quote-form select,.quote-form textarea{width:100%;min-height:var(--target);border:var(--border) solid var(--green);border-radius:var(--field-radius);padding:var(--s3);background:var(--white);color:var(--ink)}.quote-form fieldset{min-width:var(--s0);margin:var(--s5) var(--s0);padding:var(--s3);border:var(--border) solid var(--green)}.quote-form .check-label{display:flex;align-items:center;gap:var(--s3);min-height:var(--target);font-weight:var(--regular)}.check-label input{width:var(--check-size);height:var(--check-size);flex-shrink:0;accent-color:var(--green)}.home-with-form{display:grid;gap:var(--s6);align-items:start}@media(min-width:75rem){.home-with-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

.home-with-form .hero{grid-template-columns:minmax(0,1fr)}
.select-wrap{position:relative}.select-wrap select{appearance:none;padding-inline-end:var(--s7)!important}.select-wrap::after{content:"";position:absolute;inset-inline-end:var(--s4);top:50%;width:var(--s2);height:var(--s2);border-inline-end:var(--border) solid var(--green);border-bottom:var(--border) solid var(--green);transform:translateY(-50%) rotate(var(--chevron-angle));pointer-events:none}.service-select{margin-block:var(--s5);border:var(--border) solid var(--green);border-radius:var(--field-radius);padding:var(--s3)}.service-select summary{min-height:var(--target);display:list-item;align-content:center;font-weight:var(--bold)}.quote-form .service-select fieldset{margin-block:var(--s3);border:var(--s0);padding:var(--s0)}.contact-layout>.quote-form{margin-inline:auto}.contact-layout>h1,.contact-layout>p{text-align:center;margin-inline:auto}.hero .actions{justify-content:center}.review-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s3);margin-top:var(--s5)}.google-badge{display:grid;gap:var(--s1);padding:var(--s4);background:var(--white);border:var(--border) solid var(--green);border-radius:var(--round);color:var(--green);text-decoration:none;text-align:center;font-size:var(--small)}.review-stars{color:var(--green);font-size:var(--h3);letter-spacing:var(--review-star-spacing)}

.review-stars{display:inline-grid;justify-self:center}.review-stars>span{grid-area:1/1}.stars-fill{width:var(--rating-fill);overflow:hidden;white-space:nowrap}
/* Shared closed-control shape; triangle points are fixed geometric proportions. */
.quote-form .service-select{padding:var(--s0)}.service-select summary{padding:var(--s3);min-height:var(--target)}.quote-form .service-select fieldset{padding:var(--s3)}.quote-form .select-wrap select{min-height:calc(var(--target) + var(--border) + var(--border));padding-inline-start:var(--s6);font-weight:var(--bold)}.select-wrap::after{inset-inline-start:var(--s3);inset-inline-end:auto;width:var(--s3);height:var(--s3);border:var(--s0);background:var(--green);clip-path:polygon(0 0,100% 50%,0 100%);transform:translateY(-50%)}
.review-stars{color:var(--yellow);background:var(--green);padding:var(--s1) var(--s2);border-radius:var(--field-radius)}
.footer{padding-block:var(--s6)}.footer-grid{display:grid;gap:var(--s5)}.footer h2{font-size:var(--h3);margin-top:var(--s3)}.footer .badge img{width:var(--footer-badge)}.footer p{margin-bottom:var(--s2)}.footer-city{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s4)}.footer-social{display:flex;flex-direction:column;align-items:start}.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--s4);border-top:var(--border) solid var(--white);padding-top:var(--s3)}.footer-bottom>div{display:flex;flex-wrap:wrap;gap:var(--s4)}
@media(min-width:48rem){.footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr)}.footer-bottom{grid-column:1/-1}}
@media(max-width:47.999rem){.header-row{flex-wrap:nowrap}.header .logo{max-width:var(--mobile-logo);min-height:var(--target);display:flex;align-items:center}.mobile-controls{display:none}.mobile-menu{width:auto;margin-inline-start:auto;position:static}.mobile-menu summary{display:flex;justify-content:center;gap:var(--s2);min-width:var(--target);min-height:var(--target);border:var(--border) solid var(--green);border-radius:var(--field-radius);color:var(--green);font-weight:var(--bold);list-style:none}.mobile-menu summary::before{content:"☰";font-size:var(--icon-size)}.mobile-menu nav{position:absolute;inset-inline:var(--s0);top:100%;background:var(--white);padding:var(--s4);border-bottom:var(--border) solid var(--green);box-shadow:var(--shadow)}.action-bar{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.action-bar summary,.action-bar>.button{height:var(--action-height);min-height:var(--action-height);padding:var(--s2);font-size:var(--small);line-height:var(--leading)}.hero .actions .primary{display:none}}
.hero-copy-short{display:none}@media(max-width:47.999rem){.hero-copy-full{display:none}.hero-copy-short{display:inline}}
@media(max-width:47.999rem){.mobile-menu nav a{justify-content:flex-end;text-align:end}}

.page-intro p{max-width:none}

.guide-reading{max-width:var(--measure);margin-inline:auto}
.reviews-feature{border-radius:var(--round);padding:var(--s7)}.reviews-feature-header{display:grid;grid-template-columns:minmax(0,1fr) var(--character);gap:var(--s6);align-items:center;margin-bottom:var(--s7);text-align:center}.reviews-feature-header h2{font-size:var(--h1)}.reviews-feature-header p{margin-inline:auto}.reviews-feature-header .actions{justify-content:center}.reviews-mascot img{width:var(--character);height:auto}.reviews-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s7)}.review-quote{min-width:var(--s0)}.review-quote blockquote{margin:var(--s0)}.review-stars{color:var(--yellow);font-size:var(--h3);letter-spacing:var(--review-star-spacing)}.review-source{font-size:var(--small)}
@media(max-width:47.999rem){.reviews-feature{padding:var(--s5)}.reviews-feature-header{grid-template-columns:minmax(0,1fr);gap:var(--s4)}.reviews-mascot{justify-self:center}.reviews-mascot img{max-width:var(--badge)}.reviews-feature-grid{grid-template-columns:minmax(0,1fr);gap:var(--s6)}}
.reviews-mascot img{border-radius:var(--round)}

.home-brand-row{display:grid;gap:var(--s6);align-items:center}.home-brand-row>div{min-width:var(--s0)}.home-brand-art{width:100%;max-width:var(--marketing-art-width);justify-self:center}.home-brand-art img{width:100%;height:auto;object-fit:contain}.home-area-copy .actions{margin-bottom:var(--s5)}
@media(min-width:48rem){.home-brand-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

@media(max-width:47.999rem){
  .home-with-form .hero :is(h1,p){margin-block-end:var(--s3)}
  .home-with-form .review-badges{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:26rem;
    margin:var(--s2) auto var(--s0);
    gap:var(--s2);
  }
  .home-with-form .google-badge{padding:var(--s2);line-height:1.25}
  .home-with-form .review-stars{font-size:var(--body)}
}

.gallery-card-link {
  display: grid;
  gap: var(--s3);
  height: 100%;
  border-radius: var(--round);
  text-decoration: none;
}
.gallery-card img, .project-related img {
  width: 100%;
  aspect-ratio: var(--gallery-card-ratio);
  object-fit: cover;
  object-position: var(--gallery-photo-position);
  border-radius: var(--round);
}
.gallery-card h2 { font-size: var(--h3); }
.gallery-card-link:hover h2 { text-decoration: underline; }
.gallery-feature .gallery-card-link {
  gap: var(--s0);
  background: var(--green);
  color: var(--white);
}
.gallery-feature .gallery-card-copy {
  align-self: center;
  padding: var(--s5);
}
.gallery-feature h2 {
  color: var(--white);
  font-size: var(--h2);
}
.gallery-card-action {
  display: inline-flex;
  align-items: center;
  min-height: var(--target);
  font-weight: var(--bold);
  text-decoration: underline;
}
.project-photos { margin-block: var(--s5); }
.project-photo { margin: var(--s0); }
.project-photo img {
  width: 100%;
  max-width: var(--project-photo-width);
  border-radius: var(--round);
}
.project-related { margin-top: var(--s7); }
.project-related-link {
  display: grid;
  gap: var(--s2);
  font-weight: var(--bold);
}
@media (min-width: 48rem) {
  .gallery-feature { grid-column: 1 / -1; }
  .gallery-feature .gallery-card-link {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  }
  .gallery-feature .gallery-card-copy { padding: var(--s6); }
}

@media (max-width: 47.999rem) {
  .home-with-form .hero > div:first-child { text-align: center; }
  .home-with-form .hero > div:first-child > p { margin-inline: auto; }
  .reviews-feature-header .actions + .actions { margin-block-start: var(--s4); }
}
