/* Project photos and customer feedback. Uses the existing brand tokens. */
.projects-section{background:#fff}
.projects-section .eyebrow,.reviews-section .eyebrow{color:#96520b!important}
.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.project-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 12px 32px rgba(9,35,63,.06)}
.project-photo{position:relative;background:#e8edf1;aspect-ratio:4/3;overflow:hidden}
.project-photo img{width:100%;height:100%;object-fit:cover}
.project-photo-label,.comparison-badge{position:absolute;left:18px;bottom:18px;background:var(--navy);color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:7px;padding:6px 11px;font-size:.76rem;font-weight:700}
.project-copy{padding:26px 28px 30px}
.project-copy .project-service{margin:0 0 9px;color:#96520b;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.project-location{display:block;color:var(--muted);margin-top:5px}
.project-copy h3{margin:0 0 12px;color:var(--navy);font-size:1.45rem;line-height:1.25;letter-spacing:-.025em}
.project-copy>p:last-child{margin:0;color:var(--muted);font-size:.97rem}
.reference-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:36px;padding-top:30px;border-top:1px solid var(--line)}
.reference-cta p{margin:0;color:var(--navy);font-size:1.12rem;font-weight:700}
.reference-cta .btn{text-align:center}
.reviews-section{background:#e8f1f6}
.reviews-empty{display:grid;grid-template-columns:64px 1fr;gap:24px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--orange);padding:36px;border-radius:var(--radius)}
.review-symbol{font:80px/1 Georgia,serif;color:var(--navy)}
.reviews-empty h3{margin:0;color:var(--navy);font-size:1.5rem}
.reviews-empty p{max-width:700px;color:var(--muted);margin:10px 0 18px}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.review-card{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;overflow-wrap:anywhere}
.review-card blockquote{margin:0 0 24px;white-space:pre-line}
.review-card blockquote p{margin:0}
.review-card figcaption strong{color:var(--navy)}
.review-stars{margin:0 0 16px;color:#96520b;letter-spacing:.1em;font-size:1.25rem}
.review-meta{font-size:.85rem;color:var(--muted)}
/* Without JavaScript, paired photos remain visible next to one another. */
.comparison-stage{position:relative;display:grid;grid-template-columns:1fr 1fr;background:#e8edf1}
.comparison-layer{min-width:0;aspect-ratio:4/3}
.comparison-layer img{width:100%;height:100%;object-fit:cover}
.comparison-before{grid-column:1;grid-row:1}
.comparison-after{grid-column:2;grid-row:1}
.comparison-badge{top:14px;bottom:auto;left:14px;z-index:2;pointer-events:none}
.after-badge{left:auto;right:14px}
.comparison-divider{display:none}
.comparison.is-interactive .comparison-stage{display:block;aspect-ratio:4/3;touch-action:pan-y;cursor:ew-resize}
.comparison.is-interactive .comparison-layer{position:absolute;inset:0;aspect-ratio:auto}
.comparison.is-interactive .comparison-before{clip-path:inset(0 calc(100% - var(--split)) 0 0)}
.comparison.is-interactive .comparison-divider{display:block;position:absolute;left:var(--split);top:0;bottom:0;width:3px;transform:translateX(-50%);background:#fff;pointer-events:none;box-shadow:0 0 3px #09233f}
.comparison-divider>span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:44px;height:44px;border:2px solid white;border-radius:50%;background:var(--navy);color:white;font-size:24px}
.comparison-controls{padding:18px 22px;background:#f4f7fa}
.comparison-controls[hidden]{display:none}
.comparison-controls label{font-size:.9rem;font-weight:700;color:var(--navy)}
.comparison-controls input{display:block;width:100%;height:44px;margin:0;accent-color:var(--navy);cursor:ew-resize}
.comparison-controls p{margin:0;font-size:.78rem;color:var(--muted)}
.comparison:focus-within .comparison-stage{outline:3px solid var(--navy);outline-offset:-3px}
.projects-section :focus-visible,.reviews-section :focus-visible{outline:3px solid var(--navy);outline-offset:5px}
@media(min-width:1001px){.projects-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.project-photo{aspect-ratio:3/4}.project-copy{padding:23px 21px 26px}.project-copy h3{font-size:1.3rem}}
@media(max-width:1000px){.reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reference-cta{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.projects-grid,.reviews-grid{grid-template-columns:1fr}.project-photo{aspect-ratio:4/3}.project-copy{padding:24px}.reviews-empty{padding:25px;grid-template-columns:1fr;gap:4px}.review-symbol{font-size:56px}.reference-cta .btn{width:100%}}

/* AI illustrations are visibly identified separately from real project photos. */
.illustrations{margin-top:64px;padding-top:48px;border-top:1px solid var(--line)}
.illustrations-heading{max-width:820px;margin-bottom:30px}
.illustrations-heading h3{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.15;letter-spacing:-.035em;color:var(--navy);margin:14px 0}
.illustrations-heading p{color:var(--muted);margin:0}
.illustrations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.illustration-disclosure{margin:0;padding:12px 18px;background:#fff3df;color:#654009;font-weight:700;font-size:.8rem;line-height:1.5;border-bottom:1px solid #e7c991}
.illustration-card .project-copy{padding:25px 28px 30px}
.illustration-card h4{margin:0 0 12px;color:var(--navy);font-size:1.45rem;line-height:1.25;letter-spacing:-.025em}
.comparison-layer{overflow:hidden;position:relative;aspect-ratio:var(--comparison-ratio,4/3)}
.comparison.is-interactive .comparison-stage{aspect-ratio:var(--comparison-ratio,4/3);overflow:hidden}
.comparison-layer .diptych-image{position:absolute;top:0;left:0;width:200%;max-width:none;height:100%;object-fit:fill}
.comparison-layer .diptych-after{left:-100%}
.comparison-controls label{display:block}
@media(max-width:700px){.illustrations-grid{grid-template-columns:1fr}.illustrations{margin-top:42px;padding-top:36px}.illustration-card .project-copy{padding:24px}}

/* Manual review carousel; the static grid remains the no-JavaScript fallback. */
.reviews-slider.is-interactive .reviews-grid{display:flex;gap:24px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:4px;overscroll-behavior-x:contain;padding:4px 4px 16px;scrollbar-width:thin;scrollbar-color:var(--navy) transparent}
.reviews-slider.is-interactive .review-card{flex:0 0 calc((100% - 48px)/3);min-width:0;scroll-snap-align:start;display:flex;flex-direction:column}
.reviews-slider.is-interactive figcaption{margin-top:auto}
.reviews-slider .reviews-grid:focus-visible{outline-offset:2px}
.reviews-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:14px}
.reviews-controls[hidden]{display:none}
.reviews-position{margin:0;color:var(--muted);font-size:.9rem}
.reviews-arrows{display:flex;gap:10px}
.reviews-arrows button{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--navy);border-radius:50%;background:var(--navy);color:#fff;font-size:1.4rem;cursor:pointer}
.reviews-arrows button:hover:not(:disabled){background:var(--orange);color:var(--navy)}
.reviews-arrows button:disabled{background:#dce4eb;border-color:#b9c6d0;color:#536477;cursor:default}
@media(max-width:1000px){.reviews-slider.is-interactive .review-card{flex-basis:calc((100% - 24px)/2)}}
@media(max-width:700px){.reviews-slider.is-interactive .review-card{flex-basis:100%}}

/* Editorial review cards: natural heights, quotation mark and clear attribution. */
.reviews-slider.is-interactive .reviews-grid{align-items:flex-start}
.reviews-slider .review-card{padding:24px 26px;border-top:3px solid var(--orange);background:linear-gradient(150deg,#fff9ef 0,#fff 42%);box-shadow:0 6px 18px rgba(9,35,63,.045)}
.review-card-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:8px;min-height:36px}
.review-quote{font:64px/.8 Georgia,serif;color:#a75a09;height:38px;overflow:hidden}
.review-card-heading .review-stars{margin:0;font-size:1.1rem;color:#96520b}
.reviews-slider .review-card blockquote{font-size:1rem;line-height:1.7;margin:0 0 22px}
.reviews-slider .review-card figcaption{display:flex;align-items:center;gap:12px;margin-top:0;padding-top:18px;border-top:1px solid var(--line)}
.review-avatar{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;font-size:.85rem;font-weight:800;letter-spacing:.03em}
.review-author{min-width:0}
.review-author strong{font-size:.94rem;line-height:1.35;display:block}
.review-author .review-meta{margin:4px 0 0;font-size:.8rem}
@media(max-width:700px){.reviews-slider .review-card{padding:22px}}

.real-comparisons{margin-top:64px;padding-top:48px;border-top:1px solid var(--line)}
.real-comparison{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.real-comparison .project-copy{padding:32px;align-self:center}
.real-comparison h4{margin:0 0 16px;color:var(--navy);font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.2}
.real-comparison .project-copy>p{color:var(--muted)}
.real-comparison .project-copy .comparison-note{font-size:.82rem;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.real-comparison+.real-comparison{margin-top:28px}
@media(max-width:700px){.real-comparison{grid-template-columns:1fr}.real-comparison .project-copy{padding:24px}.real-comparisons{margin-top:42px;padding-top:36px}}
.comparison-addition{margin-top:28px;scroll-margin-top:120px}

.project-gallery-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;background:#e8edf1;scrollbar-width:thin}
.project-gallery-frame{flex:0 0 100%;min-width:0;aspect-ratio:4/3;scroll-snap-align:start}
.project-gallery-frame img{width:100%;height:100%;object-fit:contain}
.project-gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;background:#f4f7fa;border-bottom:1px solid var(--line)}
.project-gallery-controls[hidden]{display:none}
.project-gallery-controls span{font-size:.8rem;color:var(--navy);font-weight:700}
.project-gallery-controls button{width:40px;height:40px;border:1px solid var(--navy);background:var(--navy);color:white;border-radius:50%;cursor:pointer}
.project-gallery-controls button:disabled{background:#dce4eb;color:#536477;border-color:#b9c6d0;cursor:default}
.project-gallery-track:focus-visible{outline-offset:-3px}
@media(min-width:1001px){.project-gallery-frame{aspect-ratio:3/4}}
