.visual-section{padding:96px 0;background:var(--paper)}
.visual-section.cream{background:var(--cream)}
.visual-section.dark{background:var(--deep);color:#fff}
.visual-intro{max-width:800px;margin-bottom:38px}
.visual-intro h2,.story-copy h2,.faq-heading h2{font:400 clamp(2.6rem,4.8vw,4.65rem)/.97 Georgia,serif;letter-spacing:-.05em;margin:12px 0 18px}
.visual-intro p,.story-copy p,.faq-heading p{color:var(--muted)}
.dark .visual-intro p,.dark .story-copy p,.dark .faq-heading p{color:#b8c8bf}
.photo-mosaic{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:250px;gap:14px}
.photo-mosaic figure{position:relative;margin:0;overflow:hidden;background:var(--stone)}
.photo-mosaic figure:nth-child(1),.photo-mosaic figure:nth-child(4){grid-column:span 7}
.photo-mosaic figure:nth-child(2),.photo-mosaic figure:nth-child(3){grid-column:span 5}
.photo-mosaic figure:nth-child(5),.photo-mosaic figure:nth-child(6){grid-column:span 6}
.photo-mosaic img{height:100%;object-fit:cover;transition:transform .45s}
.photo-mosaic figure:hover img{transform:scale(1.025)}
.photo-mosaic figcaption,.photo-caption{position:absolute;left:14px;right:14px;bottom:14px;padding:10px 12px;background:rgba(9,31,25,.88);color:#fff;font-size:.7rem;font-weight:850;letter-spacing:.04em}
.photo-triptych{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.photo-triptych figure{margin:0;background:#fff;border:1px solid var(--line)}
.photo-triptych img{height:330px;object-fit:cover}
.photo-triptych figcaption{padding:17px 18px;color:var(--muted);font-size:.78rem}
.photo-triptych strong{display:block;color:var(--forest);font:400 1.35rem/1.1 Georgia,serif;margin-bottom:5px}
.story-grid{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;min-height:610px}
.story-grid.reverse .story-copy{order:-1}
.story-grid>img{height:100%;min-height:560px;object-fit:cover}
.story-copy{padding:clamp(48px,7vw,90px);background:var(--cream);display:flex;flex-direction:column;justify-content:center}
.story-copy.dark{background:var(--deep);color:#fff}
.story-copy ul{padding-left:18px;margin:14px 0 24px}
.story-copy li{margin:7px 0}
.number-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:27px}
.number-list article{background:var(--paper);padding:24px}
.number-list b{display:block;color:var(--terracotta);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase}
.number-list h3{font:400 1.55rem/1.05 Georgia,serif;margin:9px 0}
.number-list p{font-size:.8rem;margin:0;color:var(--muted)}
.faq-wrap{display:grid;grid-template-columns:.72fr 1.28fr;gap:55px;align-items:start}
.faq-list{display:grid;gap:10px}
.faq-list details{background:#fff;border:1px solid var(--line);padding:18px 20px}
.faq-list summary{cursor:pointer;font-family:Georgia,serif;font-size:1.2rem;font-weight:700}
.faq-list p{color:var(--muted);font-size:.84rem;margin:12px 0 3px}
.image-break{position:relative;min-height:560px;display:flex;align-items:end;color:#fff;background:var(--deep)}
.image-break img{position:absolute;inset:0;height:100%;object-fit:cover;opacity:.82}
.image-break:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,31,25,.9),rgba(9,31,25,.05) 70%)}
.image-break .container{position:relative;z-index:1;width:100%;padding-bottom:50px}
.image-break h2{max-width:800px;font:400 clamp(2.8rem,5.4vw,5rem)/.94 Georgia,serif;letter-spacing:-.05em;margin:10px 0}
.compact-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}
.compact-gallery img{height:360px;object-fit:cover}
.compact-gallery img:first-child{height:520px;grid-row:span 2}
.compact-gallery img:nth-child(2),.compact-gallery img:nth-child(3){height:254px}
.rich-columns{columns:2;column-gap:55px}
.rich-columns p{break-inside:avoid;margin-top:0;margin-bottom:20px;color:var(--muted)}
.service-proof{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:35px}
.service-proof article{padding:22px;background:#fff;border-top:4px solid var(--sage)}
.service-proof strong{display:block;font:400 1.4rem Georgia,serif}
.service-proof span{font-size:.75rem;color:var(--muted)}
.page-hero{padding:90px 0 74px}
.page-hero h1{font-size:clamp(3.7rem,7.2vw,6.35rem);max-width:1050px}
.page-hero p{font-size:1.02rem;max-width:820px}
@media(max-width:980px){.photo-mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:280px}.photo-mosaic figure:nth-child(n){grid-column:span 1}.photo-triptych,.service-proof{grid-template-columns:repeat(2,1fr)}.story-grid,.faq-wrap{grid-template-columns:1fr}.story-grid.reverse .story-copy{order:0}.compact-gallery{grid-template-columns:1fr 1fr}.compact-gallery img:first-child{grid-column:1/3;height:480px;grid-row:auto}.compact-gallery img:nth-child(2),.compact-gallery img:nth-child(3){height:280px}}
@media(max-width:640px){.visual-section{padding:70px 0}.photo-mosaic,.photo-triptych,.number-list,.service-proof,.compact-gallery{grid-template-columns:1fr}.photo-mosaic{grid-auto-rows:260px}.photo-mosaic figure:nth-child(n),.compact-gallery img:first-child{grid-column:auto}.photo-triptych img,.compact-gallery img:first-child,.compact-gallery img:nth-child(2),.compact-gallery img:nth-child(3){height:280px}.story-grid>img{min-height:380px}.story-copy{padding:55px 22px}.rich-columns{columns:1}.image-break{min-height:480px}}
@media(prefers-reduced-motion:reduce){.photo-mosaic img{transition:none}}
