/* Interior material studies: one visual language, room for the real work. */
.interior-page .interior-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
  align-items: center;
  gap: clamp(35px, 5vw, 90px);
  padding-top: 54px;
  padding-bottom: 64px;
}
.interior-intro-copy { min-width: 0; }
.interior-page .interior-intro .heading-row { display: block; }
.interior-page .interior-intro .eyebrow { margin-bottom: 23px; }
.interior-page .interior-intro h1 { font-size: clamp(43px, 4.7vw, 70px); line-height: 1.08; }
.interior-page .interior-intro .heading-row > p { max-width: 410px; margin-top: 27px; padding: 0; font-size: 16px; line-height: 1.85; }
.interior-art { position: relative; min-width: 0; margin: 0; padding: 20px 0 0 17px; }
.interior-art-canvas { position: relative; isolation: isolate; overflow: hidden; aspect-ratio: 1.22; background: #e9e3d6; }
.interior-art-canvas::after { content: ""; position: absolute; pointer-events: none; inset: 13px; border: 1px solid #f5f3ed52; }
.interior-art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; transform: translate3d(0, var(--art-y, 0px), 0) scale(1.08); }
.interior-art--color .interior-art-canvas { border-radius: 46% 46% 0 0; }
.interior-art--structure .interior-art-canvas { border-radius: 2px 72px 2px 2px; }
.interior-art--outdoors .interior-art-canvas { border-radius: 72px 2px 2px 2px; }
.interior-art--material .interior-art-canvas { border-radius: 50% 50% 2px 2px; aspect-ratio: 1.05; }
.interior-art--archive { padding: 16px 23px 0 16px; }
.interior-art--archive .interior-art-canvas { border-radius: 48% 48% 2px 2px; aspect-ratio: 1.1; }
.interior-art--archive img { object-position: 55% 50%; }
.interior-art--miniature .interior-art-canvas { border-radius: 50%; aspect-ratio: 1; }
.interior-art--miniature .interior-art-canvas::after { border-radius: 50%; }
.interior-art-number { position: absolute; z-index: 1; left: 20px; bottom: 18px; color: #fffaf0; text-shadow: 0 1px 9px #18322370; font-size: 13px; letter-spacing: .16em; }
.interior-art figcaption { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; padding-top: 17px; color: #3d5849; font-size: 13px; line-height: 1.5; }
.interior-art figcaption > span { max-width: 150px; }
.interior-art figcaption small { color: #6d8176; max-width: 175px; text-align: right; font-size: 13px; }
.interior-swatches { position: absolute; top: 0; left: 0; display: flex; gap: 5px; }
.interior-swatches i { display: block; width: 25px; height: 5px; background: #283c31; }
.interior-swatches i:nth-child(2) { background: #87ab96; }
.interior-swatches i:nth-child(3) { background: #c6a783; }
.interior-trace { position: absolute; z-index: 2; width: 128px; height: 128px; right: -27px; top: -12px; color: #537963; overflow: visible; pointer-events: none; }
.interior-trace path, .interior-group-mark path { fill: none; stroke: currentColor; stroke-width: 1.25; vector-effect: non-scaling-stroke; stroke-linejoin: round; stroke-linecap: round; }
.interior-art--structure .interior-trace { top: auto; bottom: 16px; right: -25px; width: 116px; height: 116px; color: #7b9486; }
.interior-art--outdoors .interior-trace { top: -12px; right: -18px; width: 115px; height: 115px; }
.interior-art--archive .interior-trace { top: -10px; right: -15px; width: 180px; height: 180px; color: #87ab96; }
.interior-art--material .interior-trace { top: -8px; right: -23px; }
.interior-art--miniature .interior-trace { top: -10px; right: -4px; width: 95px; height: 95px; }
.interior-page--flooring .interior-art img { object-position: 47% 65%; }
.interior-page--drywall .interior-art img { object-position: 56% 45%; }
.interior-page--pressure-washing .interior-art-canvas { border-radius: 50% 2px 50% 2px; }
.interior-page--plumbing-install .interior-art-canvas { border-radius: 2px 2px 74px 2px; }
.interior-page--demolition-service .interior-art-canvas { border-radius: 2px; }
.interior-page--contact .interior-intro, .interior-page--info-qr .interior-intro, .interior-page--partners .interior-intro { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); padding-top: 42px; padding-bottom: 50px; }
.interior-page--contact .interior-art, .interior-page--info-qr .interior-art { max-width: 315px; width: 100%; justify-self: end; }
.interior-page--partners .interior-art { max-width: 345px; width: 100%; justify-self: end; }
.interior-page--contact .interior-intro .heading-row > p, .interior-page--info-qr .interior-intro .heading-row > p { max-width: 530px; }
.interior-page--blog .interior-art-canvas { border-radius: 2px 70px 2px 70px; aspect-ratio: 1.45; }
.interior-group-mark { flex: 0 0 48px; width: 48px; height: 48px; color: #6d937d; margin-left: auto; }
.interior-page--services .service-group-top { gap: 12px; }
.interior-page--services .service-group h3 { font-size: 21px; }
.interior-page .service-detail-hero { border-radius: 2px 34px 2px 2px; }
.interior-page .closing-cta { position: relative; isolation: isolate; overflow: hidden; }
.interior-page .closing-cta::before { content: ""; position: absolute; z-index: -1; width: 420px; height: 540px; left: 40%; top: 30px; border: 1px solid #b6d3c21c; border-radius: 210px 210px 0 0; transform: rotate(18deg); box-shadow: 0 0 0 28px #b6d3c206, 0 0 0 56px #b6d3c206; pointer-events: none; }
.interior-motion-ready [data-interior-trace]:not(.is-drawn) path { stroke-dasharray: 100; stroke-dashoffset: 100; }
.interior-motion-ready [data-interior-trace].is-drawn path { stroke-dasharray: 100; stroke-dashoffset: 0; transition: stroke-dashoffset 1.35s cubic-bezier(.25,.6,.3,1); }
.interior-motion-ready [data-interior-trace].is-drawn path:nth-child(2) { transition-delay: .1s; }
.interior-motion-ready [data-interior-trace].is-drawn path:nth-child(n+3) { transition-delay: .2s; }
@media (min-width: 1600px) {
  .interior-page .interior-intro { padding-top: 70px; padding-bottom: 80px; }
}
@media (max-width: 1100px) {
  .interior-page .interior-intro { gap: 40px; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
  .interior-page .interior-intro h1 { font-size: clamp(40px, 5vw, 55px); }
  .interior-art { padding-left: 10px; }
  .interior-trace { width: 100px; height: 100px; right: -18px; }
  .interior-art--archive .interior-trace { width: 145px; height: 145px; }
  .interior-group-mark { width: 35px; height: 35px; flex-basis: 35px; }
}
@media (max-width: 800px) {
  .interior-page .interior-intro { gap: 32px; padding-top: 40px; padding-bottom: 50px; }
  .interior-page .interior-intro h1 { font-size: clamp(36px, 5.5vw, 47px); }
  .interior-page .interior-intro .eyebrow { font-size: 13px; margin-bottom: 20px; }
  .interior-page .interior-intro .heading-row > p { font-size: 14px; margin-top: 21px; }
  .interior-art-canvas { aspect-ratio: .95; }
  .interior-art--structure .interior-art-canvas { border-top-right-radius: 50px; }
  .interior-art--archive .interior-art-canvas { aspect-ratio: .85; }
  .interior-art figcaption { font-size: 13px; gap: 10px; flex-direction: column; padding-top: 12px; }
  .interior-art figcaption small { text-align: left; font-size: 13px; }
  .interior-art--structure .interior-trace { width: 88px; height: 88px; right: -12px; bottom: 55px; }
  .interior-art--archive .interior-trace { width: 125px; height: 125px; }
  .interior-page--contact .interior-intro, .interior-page--info-qr .interior-intro, .interior-page--partners .interior-intro { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 24px; }
  .interior-page--services .service-group h3 { font-size: 22px; }
}
@media (max-width: 600px) {
  .interior-page .interior-intro { grid-template-columns: 1fr; gap: 25px; padding-top: 34px; padding-bottom: 42px; }
  .interior-page .interior-intro h1 { font-size: clamp(38px, 10vw, 50px); }
  .interior-page .interior-intro .heading-row > p { max-width: 100%; font-size: 16px; margin-top: 23px; }
  .interior-art { width: 100%; padding: 14px 10px 0; }
  .interior-art-canvas, .interior-art--material .interior-art-canvas, .interior-art--archive .interior-art-canvas { aspect-ratio: 1.5; }
  .interior-art--color .interior-art-canvas { border-radius: 80px 80px 2px 2px; }
  .interior-art--material .interior-art-canvas { border-radius: 100px 100px 2px 2px; }
  .interior-art--archive .interior-art-canvas { border-radius: 115px 115px 2px 2px; }
  .interior-art--outdoors .interior-art-canvas { border-top-left-radius: 50px; }
  .interior-art img { object-position: center; }
  .interior-art figcaption { flex-direction: row; justify-content: space-between; padding-top: 12px; font-size: 13px; }
  .interior-art figcaption small { max-width: 150px; text-align: right; }
  .interior-art-number { left: 15px; bottom: 12px; font-size: 13px; }
  .interior-swatches { left: 0; }
  .interior-swatches i { width: 20px; height: 4px; }
  .interior-trace, .interior-art--outdoors .interior-trace, .interior-art--archive .interior-trace, .interior-art--material .interior-trace { width: 95px; height: 95px; top: -6px; right: -5px; }
  .interior-art--structure .interior-trace { width: 85px; height: 85px; right: -4px; bottom: 27px; }
  .interior-page--contact .interior-intro, .interior-page--info-qr .interior-intro, .interior-page--partners .interior-intro { grid-template-columns: 1fr; padding-top: 34px; padding-bottom: 40px; }
  .interior-page--contact .interior-art, .interior-page--info-qr .interior-art { width: 210px; max-width: 100%; justify-self: center; }
  .interior-page--partners .interior-art { max-width: 100%; justify-self: stretch; }
  .interior-art--miniature .interior-art-canvas { aspect-ratio: 1; }
  .interior-art--miniature figcaption { flex-direction: column; align-items: center; text-align: center; }
  .interior-art--miniature figcaption small { text-align: center; }
  .interior-art--miniature .interior-trace { width: 72px; height: 72px; right: -3px; top: 0; }
  .interior-page--blog .interior-art-canvas { aspect-ratio: 1.6; }
  .interior-page .service-detail-hero { border-top-right-radius: 24px; }
  .interior-page .closing-cta::before { left: 28%; top: 10px; width: 300px; height: 460px; border-top-left-radius: 150px; border-top-right-radius: 150px; }
}
@media (prefers-reduced-motion: reduce) {
  .interior-art img { transform: none; }
  .interior-page [data-interior-trace] path { stroke-dashoffset: 0; transition: none; }
}
@media print {
  .interior-page .interior-intro { display: block; }
  .interior-art { display: none; }
  .interior-page .closing-cta::before { display: none; }
}

.interior-page{--brand:#009640;--brand-strong:#007934;--sage:#009640;--dark:#007934}
.interior-page .interior-intro p,.interior-page .service-copy p{font-size:16px;line-height:1.75}
.interior-page .eyebrow,.interior-page .material-study-label{font-size:13px}
