/*
 * Global visual refinement pass
 * Balances typography, image heights and vertical rhythm across all pages.
 */

body {
    font-size: 16px;
}

.section {
    padding: clamp(74px, 7vw, 96px) 0;
}

.section-heading {
    gap: clamp(28px, 5vw, 52px);
    margin-bottom: 38px;
}

.section-heading h2,
.about-copy h2 {
    max-width: 800px;
    font-size: clamp(2.15rem, 3.8vw, 4.1rem);
    line-height: 1.02;
    letter-spacing: -0.045em;
}

.section-heading > p,
.about-copy > p:not(.eyebrow) {
    max-width: 570px;
    font-size: 0.98rem;
    line-height: 1.72;
}

.eyebrow {
    margin-bottom: 14px;
    font-size: 0.72rem;
    letter-spacing: 0.13em;
}

/* Homepage hero */
.photo-hero {
    min-height: 820px;
    padding-top: 136px;
    padding-bottom: 48px;
}

.photo-hero-content {
    grid-template-columns: minmax(0, 1.12fr) minmax(320px, 0.62fr);
    align-items: center;
    gap: clamp(32px, 6vw, 82px);
}

.photo-hero-copy {
    max-width: 790px;
    padding: clamp(32px, 4vw, 52px);
    border-radius: 32px;
}

.photo-hero-copy h1 {
    max-width: 680px;
    font-size: clamp(3.05rem, 5.25vw, 5.55rem);
    line-height: 0.94;
    letter-spacing: -0.058em;
}

.photo-hero-copy > p:not(.eyebrow) {
    max-width: 650px;
    margin-top: 22px;
    font-size: clamp(1rem, 1.25vw, 1.13rem);
    line-height: 1.68;
}

.photo-hero-copy .hero-actions {
    margin-top: 28px;
}

.photo-hero-tags {
    margin-top: 25px;
}

.hero-command {
    padding: 27px;
    border-radius: 26px;
}

.hero-command h2 {
    margin-top: 42px;
    margin-bottom: 15px;
    font-size: clamp(1.7rem, 2.45vw, 2.65rem);
    line-height: 1.02;
}

.hero-command > p {
    font-size: 0.94rem;
    line-height: 1.65;
}

.hero-command-grid {
    margin-top: 27px;
}

.hero-command-grid div {
    min-height: 88px;
    padding: 14px;
}

.hero-command-grid span {
    margin-top: 14px;
}

.hero-proof-bar {
    margin-top: 36px;
    border-radius: 22px;
}

.hero-proof-bar div {
    padding: 19px 23px;
}

.hero-proof-bar strong {
    font-size: 1.05rem;
}

/* Service photography */
.photo-service-grid {
    gap: 20px;
}

.photo-service-card {
    border-radius: 25px;
}

.photo-service-media,
.photo-service-featured .photo-service-media {
    aspect-ratio: auto;
}

.photo-service-media {
    height: 255px;
}

.photo-service-featured .photo-service-media {
    height: 340px;
}

.photo-service-copy {
    padding: 24px 25px 28px;
}

.photo-service-copy h2 {
    font-size: clamp(1.3rem, 1.9vw, 1.85rem);
    line-height: 1.08;
}

.photo-service-copy p {
    margin-top: 13px;
    font-size: 0.92rem;
    line-height: 1.65;
}

.photo-service-number,
.photo-service-arrow {
    width: 43px;
    height: 43px;
}

/* Sliders */
.slider-shell {
    padding: 20px;
    border-radius: 30px;
}

.slider-toolbar {
    padding-bottom: 18px;
}

.cinematic-project-track {
    grid-auto-columns: minmax(350px, 47%);
}

.cinematic-project-slide,
.cinematic-project-slide img {
    min-height: 540px;
}

.cinematic-project-slide {
    border-radius: 25px;
}

.premium-slide .slide-content {
    right: 22px;
    bottom: 23px;
    left: 22px;
}

.premium-slide .slide-content h2 {
    font-size: clamp(1.55rem, 2.25vw, 2.35rem);
    line-height: 1.02;
}

.premium-slide .slide-content span {
    font-size: 0.79rem;
    line-height: 1.5;
}

.representative-badge {
    top: 16px;
    left: 16px;
    padding: 8px 10px;
    font-size: 0.62rem;
}

.slide-number {
    top: 16px;
    right: 16px;
    width: 42px;
    height: 42px;
}

.team-cinema-track {
    grid-auto-columns: minmax(320px, 39%);
}

.team-cinema-slide,
.team-cinema-slide img {
    min-height: 555px;
}

.slider-footer {
    padding-top: 14px;
}

/* Company story */
.operational-story {
    padding-top: 72px;
}

.operational-story-grid {
    gap: clamp(38px, 7vw, 88px);
}

.story-photo,
.story-photo img {
    min-height: 510px;
}

.story-photo {
    border-radius: 29px;
}

.story-copy h2 {
    font-size: clamp(2.35rem, 4.1vw, 4.35rem);
    line-height: 0.99;
}

.story-copy > p:not(.eyebrow) {
    margin-top: 21px;
    font-size: 0.98rem;
    line-height: 1.75;
}

.story-principles {
    margin-top: 30px;
}

.story-principles > div {
    padding: 18px 0;
}

.story-principles p {
    font-size: 0.9rem;
    line-height: 1.6;
}

/* Developer environments */
.developer-marquee span {
    min-width: 185px;
    min-height: 92px;
    padding: 19px 25px;
    border-radius: 21px;
    font-size: 1.12rem;
}

.developer-links {
    margin-top: 28px;
}

/* Blog */
.photographic-blog-card .blog-image,
.blog-image {
    aspect-ratio: auto;
    height: 225px;
}

.blog-card-body {
    padding: 23px;
}

.blog-card h2 {
    font-size: clamp(1.25rem, 1.75vw, 1.65rem);
    line-height: 1.14;
}

.blog-card-body > p:not(.blog-meta) {
    font-size: 0.9rem;
    line-height: 1.62;
}

/* Premium final CTA */
.premium-close-section {
    padding-top: 70px;
    padding-bottom: 70px;
}

.premium-close-card {
    min-height: 430px;
    border-radius: 32px;
}

.premium-close-copy {
    max-width: 680px;
    padding: clamp(40px, 6vw, 72px);
}

.premium-close-copy h2 {
    font-size: clamp(2.35rem, 4.35vw, 4.45rem);
    line-height: 0.99;
}

/* Internal page heroes */
.page-hero {
    padding-top: 136px;
    padding-bottom: 68px;
}

.page-hero-grid {
    grid-template-columns: minmax(0, 1.06fr) minmax(330px, 0.68fr);
    gap: clamp(38px, 6vw, 76px);
}

.page-hero-copy h1 {
    max-width: 760px;
    font-size: clamp(2.75rem, 4.8vw, 5rem);
    line-height: 0.98;
}

.page-hero-lead {
    margin-top: 21px;
    font-size: clamp(0.98rem, 1.2vw, 1.12rem);
    line-height: 1.72;
}

.page-hero-visual,
.page-hero-visual img {
    min-height: 430px;
}

.page-hero-visual {
    border-radius: 29px;
}

/* General internal visuals */
.editorial-visual,
.editorial-visual img {
    min-height: 440px;
}

.editorial-visual {
    border-radius: 29px;
}

.editorial-copy h2 {
    font-size: clamp(2.2rem, 3.8vw, 4rem);
}

.image-card-media {
    aspect-ratio: auto;
    height: 270px;
}

.image-card-body {
    padding: 25px;
}

.image-card-body h2 {
    font-size: clamp(1.3rem, 2vw, 1.9rem);
}

.visual-category-card img {
    aspect-ratio: auto;
    height: 250px;
}

.contact-visual,
.contact-visual img {
    min-height: 510px;
}

.contact-information h2,
.quote-action h2 {
    font-size: clamp(2.3rem, 4vw, 4.15rem);
}

.quote-checklist h2 {
    font-size: clamp(2rem, 3.35vw, 3.45rem);
}

.footer-cta-card h2 {
    font-size: clamp(2.15rem, 3.9vw, 4rem);
}

/* Tablet */
@media (max-width: 1080px) {
    .photo-hero {
        min-height: auto;
    }

    .photo-hero-content,
    .page-hero-grid {
        grid-template-columns: 1fr;
    }

    .hero-command {
        max-width: 660px;
    }

    .page-hero-visual {
        max-width: 720px;
    }

    .cinematic-project-track,
    .team-cinema-track {
        grid-auto-columns: minmax(360px, 66%);
    }

    .story-photo {
        max-width: 720px;
    }
}

/* Mobile */
@media (max-width: 720px) {
    .section {
        padding: 62px 0;
    }

    .section-heading {
        margin-bottom: 29px;
    }

    .section-heading h2,
    .about-copy h2 {
        font-size: clamp(2rem, 10vw, 3rem);
    }

    .photo-hero {
        padding-top: 118px;
        padding-bottom: 28px;
    }

    .photo-hero-copy,
    .hero-command {
        padding: 25px 21px;
        border-radius: 24px;
    }

    .photo-hero-copy h1 {
        font-size: clamp(2.65rem, 12.5vw, 4rem);
        line-height: 0.97;
    }

    .photo-hero-copy > p:not(.eyebrow) {
        font-size: 0.96rem;
    }

    .hero-command h2 {
        margin-top: 31px;
        font-size: 1.75rem;
    }

    .hero-proof-bar {
        margin-top: 25px;
    }

    .photo-service-media,
    .photo-service-featured .photo-service-media {
        height: 230px;
    }

    .cinematic-project-track,
    .team-cinema-track {
        grid-auto-columns: 86%;
    }

    .cinematic-project-slide,
    .cinematic-project-slide img,
    .team-cinema-slide,
    .team-cinema-slide img {
        min-height: 470px;
    }

    .story-photo,
    .story-photo img {
        min-height: 410px;
    }

    .story-copy h2 {
        font-size: clamp(2.2rem, 10vw, 3.2rem);
    }

    .developer-marquee span {
        min-width: 155px;
        min-height: 80px;
        font-size: 1rem;
    }

    .photographic-blog-card .blog-image,
    .blog-image {
        height: 210px;
    }

    .premium-close-card {
        min-height: 510px;
    }

    .premium-close-copy h2 {
        font-size: clamp(2.25rem, 10.5vw, 3.4rem);
    }

    .page-hero {
        padding-top: 118px;
        padding-bottom: 55px;
    }

    .page-hero-copy h1 {
        font-size: clamp(2.45rem, 11.5vw, 3.8rem);
    }

    .page-hero-visual,
    .page-hero-visual img,
    .editorial-visual,
    .editorial-visual img,
    .contact-visual,
    .contact-visual img {
        min-height: 360px;
    }

    .image-card-media,
    .visual-category-card img {
        height: 220px;
    }
}
