/* Photography, editorial spacing and coordinated motion across public pages. */
:root { --wy-soft-shadow: 0 12px 36px rgba(40, 40, 40, .08); }

/* Each interior hero pairs its own content with a relevant image. */
.at-pagehero:has(.wy-hero-media) {
    display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    align-items: center; gap: clamp(2rem, 5vw, 5rem);
    padding: calc(var(--at-header-h) + 2.5rem) max(1.5rem, calc((100% - 80rem) / 2)) 4rem;
    background: #faf7f5; color: var(--ch); border-bottom: 1px solid #e8dfdc;
}
.at-pagehero:has(.wy-hero-media)::before { background: radial-gradient(ellipse at 0 0, rgba(232,96,144,.1), transparent 65%); }
.at-pagehero:has(.wy-hero-media)::after { display: none; }
.at-pagehero:has(.wy-hero-media) > .at-wrap { width: 100%; max-width: none; margin: 0; }
.at-pagehero:has(.wy-hero-media) h1 { max-width: 18ch; color: var(--ch); text-shadow: none; font-size: clamp(2.5rem, 4.6vw, 4.7rem); line-height: 1.04; }
.at-pagehero:has(.wy-hero-media) h1 em { background: none; display: inline; padding: 0; margin: 0; transform: none; color: var(--pk) !important; }
.at-pagehero:has(.wy-hero-media) p:not(.at-eyebrow) { color: var(--at-muted); font-size: 1.05rem; }
.at-pagehero .at-byline { color: var(--at-muted); }
.wy-hero-media { position: relative; margin: 0; overflow: hidden; border-radius: 12rem 12rem 1.5rem 1.5rem; aspect-ratio: 5/4.5; isolation: isolate; background: #e8dfdc; box-shadow: 0 20px 60px rgba(40,40,40,.12); }
.wy-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.05) translateY(var(--wy-photo-y, 0px)); }
.wy-hero-media::after { content: ''; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent,rgba(20,20,20,.75)); pointer-events: none; }
.wy-hero-media figcaption { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.5rem; z-index: 1; color: #fff; font-size: .8rem; line-height: 1.6; letter-spacing: .03em; }
.wy-hero-media figcaption span { color: #ffbbcf; margin-right: .4rem; }
.vb-hero--service { background: #faf7f5; }
.vb-hero--service .vb-hero__in { grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); }
.vb-hero--service .vb-h1 { line-height: 1.12; }
.wy-service-hero { width: 100%; }

.wy-corporate { background: #f7f5f3; }
.wy-feature-photo { position: relative; margin: 0; border-radius: 1.5rem; overflow: hidden; background: #e8dfdc; }
.wy-feature-photo img { display: block; width: 100%; aspect-ratio: 4/4.2; height: auto; object-fit: cover; transition: transform 1s var(--at-ease); }
.wy-feature-photo figcaption { position: absolute; inset: auto 0 0; padding: 3rem 1.5rem 1.5rem; background: linear-gradient(transparent,rgba(0,0,0,.8)); color: #fff; font-size: .85rem; }
.wy-photo-grid { display: grid; grid-template-columns: repeat(var(--photo-count, 3), minmax(0, 1fr)); gap: 1.5rem; }
.wy-photo { position: relative; margin: 0; overflow: hidden; border-radius: 1.25rem; background: #e8dfdc; }
.wy-photo img { display: block; width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform 1s var(--at-ease); }
.wy-photo figcaption { position: absolute; inset: auto 0 0; padding: 3rem 1.3rem 1.3rem; color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.7)); font: 700 1.15rem var(--at-display); }
.wy-photo-grid > :only-child { max-height: 32rem; }
.wy-photo-grid > :only-child img { aspect-ratio: 16/9; }
@media (max-width: 1200px) {
}

@media (prefers-reduced-motion: no-preference) {
    .vb-copy, .at-pagehero > .at-wrap { animation: wyEnter .85s var(--at-ease) both; }
    .vb-art, .wy-hero-media { animation: wyPhotoEnter 1.1s var(--at-ease) .12s both; }
    .vb-copy .vb-cta { animation: wyEnter .85s var(--at-ease) .15s both; }
    .wy-photo.is-in img, .wy-feature-photo.is-in img { animation: wyPhotoSettle 1.2s var(--at-ease); }
    @keyframes wyEnter { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
    @keyframes wyPhotoEnter { from { opacity: 0; transform: translateY(28px) scale(.98); } to { opacity: 1; transform: none; } }
    @keyframes wyPhotoSettle { from { transform: scale(1.08); } to { transform: scale(1); } }
}
@media (hover: hover) and (pointer: fine) {
    .wy-photo:hover img, .wy-feature-photo:hover img { transform: scale(1.04); }
}
@media (max-width: 900px) {
    .vb-hero--service .vb-hero__in { grid-template-columns: minmax(0,1fr); }
    .at-pagehero:has(.wy-hero-media) { grid-template-columns: minmax(0,1fr); padding-inline: 1.5rem; gap: 2rem; }
    .wy-hero-media { width: 100%; max-width: 42rem; aspect-ratio: 16/10; border-radius: 1.5rem; }
    .at-pagehero:has(.wy-hero-media) h1 { max-width: 22ch; }
    .wy-photo-grid { gap: 1rem; }
}
@media (max-width: 760px) {
    .at-pagehero:has(.wy-hero-media) { padding: calc(var(--at-header-h) + 1.5rem) 1rem 2.5rem; }
    .at-pagehero:has(.wy-hero-media) h1 { font-size: clamp(2.3rem, 9.5vw, 3.8rem); }
    .wy-feature-photo img { aspect-ratio: 4/3; }
    .wy-photo-grid { grid-template-columns: minmax(0,1fr); }
    .wy-photo-grid .wy-photo img { aspect-ratio: 4/3; }
    .wy-hero-media figcaption { left: 1rem; right: 1rem; bottom: 1rem; font-size: .75rem; }
    .wy-corporate .at-split { gap: 2rem; }
}
@media (prefers-reduced-motion: reduce) {
    .wy-hero-media img { transform: none; }
    html { scroll-behavior: auto; }
}
