/*
Theme Name: Certified of NY
Theme URI: https://certifiedconstruction.com/
Author: Certified of NY
Description: Custom WordPress conversion of the existing Certified Construction website, preserving the original visual design and one-page navigation.
Version: 2.1.0
Text Domain: certified-of-ny
*/
html { scroll-behavior: auto; }
body.cny-original-site { margin: 0; overflow-x: hidden; }
body.admin-bar nav.navbar.fixed-top { top: 32px; }
@media (max-width: 782px) { body.admin-bar nav.navbar.fixed-top { top: 46px; } }

/* Editable-theme additions */
.cny-inner-page { padding-top: 70px; min-height: 70vh; }
.cny-page-section { padding-top: 70px; padding-bottom: 70px; }
.cny-page-content { font-size: 1rem; line-height: 1.75; }
.cny-page-content img { max-width: 100%; height: auto; }
.cny-project-gallery { margin-bottom: 35px; }
.cny-project-gallery img { width: 100%; height: 260px; object-fit: cover; margin-bottom: 30px; }
.cny-project-meta { padding-top: 10px; }
.navbar-nav .menu-item { list-style: none; }
.navbar-nav .menu-item > a { display:block; padding:.5rem .75rem; color:rgba(0,0,0,.5); text-decoration:none; }
.navbar-nav .menu-item.current-menu-item > a,
.navbar-nav .menu-item > a:hover { color:rgba(0,0,0,.9); }
.navbar-brand img { max-height: 54px; width: auto; }
@media (max-width:782px){
    .cny-inner-page{padding-top:80px}
    .cny-page-section{padding-top:45px}
}

/* =========================================================
 * Desktop compact proportions — v2.8.3
 * Makes the site feel less visually zoomed-in without using
 * CSS zoom, transforms, or artificial page-width expansion.
 * Desktop only; mobile/tablet layouts remain unchanged.
 * ========================================================= */
@media (min-width: 1200px) {
    /* Header / navigation */
    html body.cny-original-site nav.navbar .navbar-brand img,
    html body.cny-original-site nav.navbar .navbar-brand .custom-logo {
        max-height: 48px !important;
        width: auto !important;
    }

    html body.cny-original-site nav.navbar .navbar-nav .nav-link,
    html body.cny-original-site nav.navbar .navbar-nav a {
        font-size: 15px !important;
        padding-left: 11px !important;
        padding-right: 11px !important;
    }

    /* Homepage hero — keep image framing, reduce oversized copy */
    html body.cny-original-site #home.cny-hero-luxury .cny-hero-copy {
        width: min(980px, 74vw) !important;
    }

    html body.cny-original-site #home.cny-hero-luxury .cny-hero-copy h1 {
        font-size: clamp(40px, 4vw, 64px) !important;
    }

    html body.cny-original-site #home.cny-hero-luxury .cny-hero-copy p {
        font-size: clamp(14px, 1.05vw, 18px) !important;
    }

    html body.cny-original-site #home.cny-hero-luxury .carousel-control-prev-icon,
    html body.cny-original-site #home.cny-hero-luxury .carousel-control-next-icon {
        width: 48px !important;
        height: 48px !important;
    }

    /* About */
    html body.cny-original-site #about.cny-about-redesign {
        padding: 48px 32px 52px !important;
    }

    html body.cny-original-site #about .cny-about-inner {
        width: min(1220px, 86vw) !important;
    }

    html body.cny-original-site #about .cny-about-title h1 {
        font-size: clamp(40px, 3.7vw, 58px) !important;
    }

    html body.cny-original-site #about .cny-about-layout {
        grid-template-columns: minmax(0, 1.32fr) minmax(300px, .68fr) !important;
        gap: 38px !important;
    }

    html body.cny-original-site #about .cny-about-portrait-frame {
        max-width: 340px !important;
    }

    html body.cny-original-site #about .cny-about-founder-quote {
        max-width: 430px !important;
    }

    html body.cny-original-site #about .cny-about-founder-quote p {
        font-size: clamp(22px, 1.6vw, 28px) !important;
    }

    /* Portfolio */
    html body.cny-original-site #portfolio {
        padding: 36px 24px 44px !important;
    }

    html body.cny-original-site #portfolio .title-wrapper h1 {
        font-size: 2.4rem !important;
    }

    html body.cny-original-site #portfolio .title-wrapper h4 {
        font-size: 1.1rem !important;
    }

    html body.cny-original-site #portfolio > .row:last-of-type {
        width: 82% !important;
        max-width: 1240px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    /* Contact */
    html body.cny-original-site #contact .cny-contact-main,
    html body.cny-original-site #contact .cny-contact-bottom-actions {
        width: calc(100% - 120px) !important;
        max-width: 1280px !important;
    }

    html body.cny-original-site #contact .contact-block {
        padding: 32px 36px 30px !important;
    }

    html body.cny-original-site #contact .contact-block > h2 {
        font-size: clamp(38px, 3vw, 50px) !important;
        max-width: 560px !important;
    }

    html body.cny-original-site #contact .cny-contact-intro {
        max-width: 560px !important;
        font-size: 15px !important;
        margin-bottom: 22px !important;
    }

    /* Team page sizing is controlled by page-team.php. */

    /* Generic inner pages */
    html body.cny-original-site .cny-inner-page .container {
        max-width: 1180px !important;
    }

    html body.cny-original-site .cny-page-section {
        padding-top: 55px !important;
        padding-bottom: 55px !important;
    }
}

/* =========================================================
 * Navigation hover cleanup — v2.8.4
 * The homepage Home link receives the "active" class. Legacy
 * app.css adds a navy background on active:hover; keep hover
 * transparent so Home matches the other navigation tabs.
 * ========================================================= */
.cny-main-navbar .navbar-nav .nav-item.nav-link.active:hover,
.cny-main-navbar .navbar-nav .nav-item.nav-link.active:focus {
    background: transparent !important;
}

/* =========================================================
 * Certified of NY - Pure White background (v2.8.7)
 * STAGING ONLY
 * Uses a true #FFFFFF background with NO image or texture.
 * Keeps the original landing hero, project photos, lightbox,
 * navigation, and dark Contact section unchanged.
 * ========================================================= */
html body.cny-original-site,
html body.cny-original-site #about.cny-about-redesign,
html body.cny-original-site #portfolio,
html body.cny-original-site .cny-mtt-page,
html body.cny-original-site .cny-inner-page,
html body.cny-original-site .cny-inner-page .cny-page-section,
html body.cny-original-site .cny-page-section:not(#contact) {
    background-color: #FFFFFF !important;
    background-image: none !important;
    background-repeat: no-repeat !important;
    background-attachment: scroll !important;
}

/* Preserve the original high-contrast areas and their images. */
html body.cny-original-site #home.cny-hero-luxury,
html body.cny-original-site #contact {
    background-image: none !important;
}

/* Landing-stage image backgrounds remain editable via the
 * existing Certified Landing Page settings. */


/* =========================================================
 * Certified of NY - Mobile portrait alignment (v2.8.8)
 * STAGING ONLY
 *
 * Fixes two sources of sideways alignment on narrow devices:
 * 1. About Us: 94vw inner width exceeded the parent's padded
 *    content width (section has 18px padding on each side).
 * 2. Portfolio: Bootstrap's -15px row gutters extended beyond
 *    its unpadded section on mobile.
 * Keep all desktop styles and project image sizes unchanged.
 * ========================================================= */
@media screen and (max-width: 767.98px) and (orientation: portrait) {
    html,
    body.cny-original-site {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    html body.cny-original-site > article,
    html body.cny-original-site article > section#home,
    html body.cny-original-site article > section#about,
    html body.cny-original-site article > section#portfolio,
    html body.cny-original-site article > section#contact {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    /* Match the About Us inner width to the room left by padding. */
    html body.cny-original-site #about.cny-about-redesign {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }
    html body.cny-original-site #about.cny-about-redesign .cny-about-inner {
        display: block;
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    html body.cny-original-site #about .cny-about-story-section,
    html body.cny-original-site #about .cny-about-story-photos,
    html body.cny-original-site #about .cny-about-story-photo-card,
    html body.cny-original-site #about .cny-about-michael-header,
    html body.cny-original-site #about .cny-about-layout {
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
    html body.cny-original-site #about .cny-about-story-photo-frame {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Keep native Bootstrap row gutters inside the viewport. */
    html body.cny-original-site #portfolio {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    html body.cny-original-site #portfolio > .row {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    html body.cny-original-site #portfolio > .row > .col-sm-12 {
        box-sizing: border-box !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    html body.cny-original-site #portfolio .portfolio-wrapper {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Mobile navbar and full-screen landing cannot exceed the viewport. */
    html body.cny-original-site nav.cny-main-navbar > .container {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
    html body.cny-original-site nav.cny-main-navbar .navbar-brand img {
        max-width: min(66vw, 230px) !important;
        height: auto !important;
    }
    .certified-landing {
        box-sizing: border-box !important;
        max-width: 100% !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    .certified-landing .certified-landing-stage {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
}


/* =========================================================
 * Certified of NY - Responsive tablet fit (v2.8.9)
 * Portrait + landscape tablets, 768px to 1199px CSS viewport.
 * Desktop 1200px+ and approved phone layout below 768px
 * remain unchanged. No browser zoom or global transforms.
 * ========================================================= */
@media screen and (min-width: 768px) and (max-width: 1199.98px) {
    html, body.cny-original-site {
        max-width: 100% !important;
    }
    html body.cny-original-site,
    html body.cny-original-site article,
    html body.cny-original-site article > section {
        box-sizing: border-box !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    /* Keep the Bootstrap layout centered, without widening the page. */
    html body.cny-original-site nav.cny-main-navbar > .container {
        box-sizing: border-box !important;
        width: calc(100% - 32px) !important;
        max-width: 1140px !important;
        min-width: 0 !important;
        margin-inline: auto !important;
    }
    html body.cny-original-site nav.cny-main-navbar .navbar-brand img,
    html body.cny-original-site nav.cny-main-navbar .navbar-brand .custom-logo {
        max-height: 45px !important;
        width: auto !important;
        max-width: min(240px, 35vw) !important;
        object-fit: contain !important;
    }

    /* The hero text scales with available tablet width, not desktop pixels. */
    html body.cny-original-site #home.cny-hero-luxury .cny-hero-stage {
        height: clamp(430px, calc(100dvh - 120px), 675px) !important;
        max-width: 100% !important;
    }
    html body.cny-original-site #home.cny-hero-luxury .cny-hero-copy {
        width: min(88%, 860px) !important;
        max-width: calc(100% - 110px) !important;
    }
    html body.cny-original-site #home.cny-hero-luxury .cny-hero-copy h1 {
        font-size: clamp(36px, 5.2vw, 60px) !important;
        line-height: 1.1 !important;
    }
    html body.cny-original-site #home.cny-hero-luxury .cny-hero-copy p {
        font-size: clamp(13px, 1.5vw, 18px) !important;
        line-height: 1.5 !important;
    }

    /* About Us - contain all editable sections within the tablet viewport. */
    html body.cny-original-site #about.cny-about-redesign {
        padding: 46px 24px 58px !important;
    }
    html body.cny-original-site #about .cny-about-inner,
    html body.cny-original-site #about .cny-about-story-section,
    html body.cny-original-site #about .cny-about-michael-header,
    html body.cny-original-site #about .cny-about-layout {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-inline: auto !important;
    }
    html body.cny-original-site #about .cny-about-story-photos {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: clamp(20px, 3vw, 38px) !important;
    }
    html body.cny-original-site #about .cny-about-story-photo-card,
    html body.cny-original-site #about .cny-about-story-photo-frame {
        box-sizing: border-box !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
    html body.cny-original-site #about .cny-about-story-title {
        font-size: min(var(--cny-story-title-size, 72px), 7vw) !important;
    }
    html body.cny-original-site #about .cny-about-story-intro {
        max-width: 800px !important;
        font-size: min(var(--cny-story-intro-size, 18px), 18px) !important;
    }
    html body.cny-original-site #about .cny-about-story-photo-label {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        letter-spacing: .10em !important;
        white-space: nowrap !important;
        text-align: center !important;
        justify-content: center !important;
        overflow: hidden !important;
        font-size: min(var(--cny-story-old-label-size, 18px), 1.55vw) !important;
    }
    html body.cny-original-site #about .cny-about-story-photo-label--now {
        font-size: min(var(--cny-story-now-label-size, var(--cny-story-old-label-size, 18px)), 1.55vw) !important;
    }
    html body.cny-original-site #about .cny-about-michael-heading {
        font-size: min(var(--cny-michael-heading-size, 52px), 5.2vw) !important;
    }
    html body.cny-original-site #about .cny-about-layout {
        grid-template-columns: minmax(0, 1fr) minmax(260px, 35%) !important;
        gap: 26px !important;
        transform: none !important;
    }
    html body.cny-original-site #about .cny-about-history {
        padding-right: 22px !important;
        min-width: 0 !important;
    }
    html body.cny-original-site #about .cny-about-founder {
        min-width: 0 !important;
    }

    /* Portfolio: two wider, readable masonry columns are calculated by
       portfolio.js at this breakpoint, so no CSS-only positioning hacks. */
    html body.cny-original-site #portfolio {
        padding-left: 14px !important;
        padding-right: 14px !important;
        box-sizing: border-box !important;
    }
    html body.cny-original-site #portfolio > .row {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box !important;
    }
    html body.cny-original-site #portfolio > .row > .col-sm-12 {
        min-width: 0 !important;
        max-width: 100% !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    html body.cny-original-site #portfolio > .row:last-of-type {
        width: 100% !important;
        max-width: 1040px !important;
        margin-inline: auto !important;
    }
    html body.cny-original-site #portfolio .portfolio-wrapper {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-inline: auto !important;
    }
    html body.cny-original-site #portfolio .title-wrapper h1 {
        font-size: min(var(--cny-portfolio-heading-size, 44px), 4.4vw) !important;
        line-height: 1.12 !important;
    }
    html body.cny-original-site #portfolio .construction-options {
        max-width: 100% !important;
    }

    /* Contact form/map is allowed to stack before either becomes cramped. */
    html body.cny-original-site #contact .cny-contact-main,
    html body.cny-original-site #contact .cny-contact-bottom-actions {
        box-sizing: border-box !important;
        width: calc(100% - 32px) !important;
        max-width: 1040px !important;
        margin-inline: auto !important;
    }
    html body.cny-original-site #contact .cny-contact-left,
    html body.cny-original-site #contact .cny-contact-right,
    html body.cny-original-site #contact .contact-form-wrapper {
        min-width: 0 !important;
        max-width: 100% !important;
    }
    html body.cny-original-site #contact .contact-block {
        padding: 30px 30px 28px !important;
    }
    html body.cny-original-site #contact .contact-block > h2 {
        font-size: clamp(36px, 4.2vw, 48px) !important;
    }
    html body.cny-original-site #contact .cny-map-info-block {
        min-width: 0 !important;
        padding: 12px !important;
    }
    html body.cny-original-site #contact .cny-map-info-block strong {
        font-size: 16px !important;
    }

    /* Project detail and Team layouts must remain inside tablet width. */
    html body.cny-original-site .cny-inner-page .container,
    html body.cny-original-site .cny-mtt-page {
        box-sizing: border-box !important;
        max-width: 100% !important;
    }
}

/* Small tablet portrait: provide real reading width for captions/history. */
@media screen and (min-width: 768px) and (max-width: 899.98px) and (orientation: portrait) {
    html body.cny-original-site #about .cny-about-story-photos {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 26px !important;
        max-width: 610px !important;
        margin-inline: auto !important;
    }
    html body.cny-original-site #about .cny-about-story-photo-label,
    html body.cny-original-site #about .cny-about-story-photo-label--now {
        font-size: min(var(--cny-story-old-label-size, 18px), 18px) !important;
        letter-spacing: .12em !important;
    }
    html body.cny-original-site #about .cny-about-layout {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 32px !important;
    }
    html body.cny-original-site #about .cny-about-history {
        border-right: 0 !important;
        padding-right: 0 !important;
    }
    html body.cny-original-site #about .cny-about-founder {
        width: min(100%, 520px) !important;
        margin-inline: auto !important;
    }

    /* Keep the two landing photos on their own rows, with room for the brand. */
    html body.cny-original-site .certified-landing {
        padding: 12px !important;
    }
    html body.cny-original-site .certified-landing-stage {
        box-sizing: border-box !important;
        width: min(100%, 720px) !important;
        max-width: 100% !important;
        min-height: 0 !important;
        height: calc(100dvh - 24px) !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-rows: minmax(0, 1fr) auto minmax(0, 1fr) !important;
        gap: 10px !important;
    }
    html body.cny-original-site .certified-landing-panel {
        min-height: 0 !important;
    }
    html body.cny-original-site .certified-landing-brand {
        margin: 2px 0 !important;
    }
}

/* Mid-size landscape tablets have room for two landing panels. */
@media screen and (min-width: 901px) and (max-width: 1199.98px) {
    html body.cny-original-site .certified-landing {
        padding: 20px !important;
    }
    html body.cny-original-site .certified-landing-stage {
        box-sizing: border-box !important;
        width: min(100%, 1120px) !important;
        max-width: 100% !important;
        height: min(86dvh, 820px) !important;
        min-height: 0 !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        gap: clamp(14px, 2vw, 26px) !important;
    }
    html body.cny-original-site .certified-landing-copy strong {
        font-size: clamp(26px, 3.2vw, 41px) !important;
    }
    html body.cny-original-site .certified-landing-brand-main {
        font-size: clamp(54px, 7vw, 85px) !important;
    }
    html body.cny-original-site .certified-landing-button {
        padding: 11px 15px !important;
        min-width: min(230px, 75%) !important;
        letter-spacing: .14em !important;
        font-size: 11px !important;
    }
}

/* Keep nav text and logo from colliding before Bootstrap collapses it. */
@media screen and (min-width: 992px) and (max-width: 1199.98px) {
    html body.cny-original-site nav.cny-main-navbar .cny-primary-nav .nav-link {
        font-size: 13px !important;
        padding-left: 7px !important;
        padding-right: 7px !important;
    }
    html body.cny-original-site nav.cny-main-navbar .navbar-brand img,
    html body.cny-original-site nav.cny-main-navbar .navbar-brand .custom-logo {
        max-width: 195px !important;
    }
}

/* Preserve readable controls in landscape at the iPad Pro desktop breakpoint. */
@media screen and (min-width: 1200px) and (max-width: 1366px) and (pointer: coarse) {
    html body.cny-original-site nav.cny-main-navbar > .container {
        max-width: calc(100% - 40px) !important;
    }
    html body.cny-original-site #about .cny-about-inner {
        width: min(1220px, 94%) !important;
    }
}
