.craft-section { background: #f2f0eb; }
.craft-grid, .social-grid, .review-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.craft-grid article { border-top: 1px solid #c8c4bc; padding: 1.25rem 0 0; }
.craft-grid span, .card-kicker, .review-grid span { color: #75716a; font-size: .73rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.craft-grid h3, .social-grid h3, .review-grid h3 { font-size: 1.45rem; line-height: 1.1; margin: 1.25rem 0 .75rem; }
.craft-grid p, .social-grid p, .review-grid p { color: #5f5b54; line-height: 1.55; }
.follow-section { background: #161616; color: #fff; }
.follow-section .section-heading p, .follow-section .social-grid p { color: #c8c4bc; }
.social-grid article { border: 1px solid #45433e; border-radius: 1.25rem; display: flex; flex-direction: column; min-height: 18rem; padding: 1.5rem; }
.social-grid .social-mark { align-items: center; border: 1px solid #76716a; border-radius: 50%; display: inline-flex; font-size: 1.15rem; height: 2.5rem; justify-content: center; width: 2.5rem; }
.social-grid .card-kicker { color: #ef6c36; margin: 1.75rem 0 0; }
.social-grid h3 { color: #fff; }
.social-grid .status-tag { color: #c8c4bc; font-size: .8rem; margin-top: auto; }
.social-grid .contact-card { background: #ef6c36; border-color: #ef6c36; }
.social-grid .contact-card .card-kicker, .social-grid .contact-card p { color: #2b170e; }
.social-grid .contact-card h3 { color: #161616; }
.social-grid .contact-card a { color: #161616; font-weight: 700; margin-top: auto; text-decoration: none; }
.reviews-section { background: #fff; }
.review-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.review-grid article { background: #f2f0eb; border-radius: 1.25rem; display: flex; flex-direction: column; min-height: 14rem; padding: 1.5rem; }
.review-grid .review-stars { color: #ef6c36; font-size: 1.05rem; letter-spacing: .08em; margin: 0 0 1.25rem; }
.review-grid article > p:not(.review-stars) { color: #1f1e1c; font-family: Georgia, serif; font-size: 1.15rem; line-height: 1.35; }
.review-grid article > span { margin-top: auto; }
.review-grid .review-link { background: #1a1a1a; color: #fff; }
.review-grid .review-link > span { color: #ef6c36; font-size: 1.6rem; }
.review-grid .review-link h3 { margin-top: auto; }
.review-grid .review-link p { color: #d2cec6; }
.visual-figures { display: grid; gap: 1rem; }
.visual-figures figure { margin: 0; }
.visual-figures figure + figure { margin-left: 2.25rem; }
.visual-figures figcaption { color: #75716a; font-size: .75rem; margin-top: .5rem; }
.previous-work { background: #eeece6; }
.gallery-controls { display: flex; gap: .6rem; justify-content: flex-end; margin: -5.6rem 0 2.2rem; }
.gallery-controls button { align-items: center; background: transparent; border: 1px solid #a8a39a; border-radius: 50%; color: #1f1e1c; cursor: pointer; display: inline-flex; font-size: 1.25rem; height: 2.85rem; justify-content: center; transition: background 180ms ease, color 180ms ease; width: 2.85rem; }
.gallery-controls button:hover, .gallery-controls button:focus-visible { background: #1f1e1c; color: #fff; }
.work-gallery { display: flex; gap: 1rem; margin: 0 calc((100vw - min(100vw - 48px, var(--shell))) / -2); overflow-x: auto; padding: 0 max(24px, calc((100vw - var(--shell)) / 2)) 1rem; scroll-snap-type: x mandatory; scrollbar-color: #ef6c36 transparent; scrollbar-width: thin; }
.work-gallery figure { flex: 0 0 min(62vw, 440px); margin: 0; overflow: hidden; scroll-snap-align: start; }
.work-gallery .work-feature { flex-basis: min(76vw, 590px); }
.work-gallery img { aspect-ratio: 1 / .78; border-radius: 1.25rem; height: 100%; object-fit: cover; width: 100%; }
.work-provenance { color: #5f5b54; font-size: .83rem; margin: 1.4rem 0 0; }
.hero-van { bottom: -7%; max-width: none; pointer-events: none; position: absolute; right: -6%; width: min(63vw, 920px); z-index: 1; }
.hero-content { z-index: 2; }
.owner-pose { bottom: 0; height: auto; max-width: none; object-fit: contain; pointer-events: none; position: absolute; width: min(6vw, 55px); z-index: 2; }
.approach-photo > img.owner-pose-approach { min-height: 0; right: 3%; width: min(6vw, 55px); }
.contact-photo > img.owner-pose-estimate { bottom: 0; height: auto; right: 3%; width: min(22vw, 220px); }
.contact-photo > div { z-index: 3; }
.estimate-callout { align-self: center; max-width: 38rem; padding: 3rem; }
.estimate-callout h3 { font-family: Georgia, serif; font-size: clamp(2rem, 3vw, 3rem); letter-spacing: -.045em; line-height: 1.05; margin: 0 0 1rem; }
.estimate-callout > p:not(.form-label) { color: #5f5b54; font-size: 1.05rem; line-height: 1.6; margin: 0; }
.estimate-callout .form-button { margin-top: 2rem; width: auto; }
@media (max-width: 1080px) { .hero-van { opacity: .72; right: -20%; width: min(80vw, 820px); } .approach-photo > img.owner-pose-approach { right: 2%; width: min(5.5vw, 50px); } .contact-photo > img.owner-pose-estimate { right: 2%; width: min(20vw, 195px); } }
@media (max-width: 760px) { .craft-grid, .social-grid, .review-grid { grid-template-columns: 1fr; } .visual-figures figure + figure { margin-left: 0; } .gallery-controls { margin: -1rem 0 1.5rem; } .work-gallery { margin: 0 -20px; padding: 0 20px 1rem; } .work-gallery figure, .work-gallery .work-feature { flex-basis: 83vw; } .hero-van, .owner-pose { display: none; } }
