/* Responsive overrides. Keep breakpoint-specific changes in this file. */

@media (max-width: 1120px) {
    .primary-nav {
        gap: 1.25rem;
    }
    .primary-nav > a:not(.button) {
        font-size: 0.82rem;
    }
    .brand__name {
        font-size: 1.35rem;
    }
    .brand__tagline {
        font-size: 0.58rem;
    }
    .hero__inner {
        grid-template-columns: minmax(0, 0.9fr) minmax(460px, 1.1fr);
    }
    .service-grid {
        gap: 2rem;
    }
}
@media (max-width: 900px) {
    :root {
        --gutter: 1.25rem;
        --space-8: 5rem;
    }
    html {
        scroll-padding-top: 72px;
    }
    body {
        padding-top: 70px;
    }
    .site-header {
        position: fixed;
        top: 0;
        right: 0;
        left: 0;
        width: 100%;
    }
    .site-header__inner {
        min-height: 70px;
    }
    .brand__mark {
        display: none;
    }
    .brand__name {
        font-size: 1.35rem;
    }
    .brand__tagline {
        font-size: 0.55rem;
    }
    .nav-toggle {
        position: relative;
        z-index: 111;
        display: grid;
        width: 46px;
        height: 46px;
        padding: 9px;
        border: 0;
        background: transparent;
        cursor: pointer;
    }
    .nav-toggle__line {
        display: block;
        width: 100%;
        height: 2px;
        margin: auto;
        background: var(--color-primary);
        transition:
            transform var(--transition),
            opacity var(--transition);
    }
    .nav-open .nav-toggle__line:nth-child(1) {
        transform: translateY(9px) rotate(45deg);
    }
    .nav-open .nav-toggle__line:nth-child(2) {
        opacity: 0;
    }
    .nav-open .nav-toggle__line:nth-child(3) {
        transform: translateY(-9px) rotate(-45deg);
    }
    .primary-nav {
        position: fixed;
        z-index: 1;
        top: 70px;
        right: 0;
        display: flex;
        width: min(86vw, 390px);
        height: calc(100dvh - 70px);
        align-items: stretch;
        flex-direction: column;
        gap: 0;
        overflow-y: auto;
        padding: 1rem 1.5rem 2rem;
        overscroll-behavior: contain;
        background: var(--color-paper);
        /* box-shadow: -12px 0 30px rgba(42, 31, 20, 0.18); */
        visibility: hidden;
        transform: translateX(105%);
        transition:
            transform 220ms ease,
            visibility 0s linear 220ms;
    }
    .admin-bar .primary-nav {
        top: 116px;
        height: calc(100dvh - 116px);
    }
    .nav-open .primary-nav {
        visibility: visible;
        transform: translateX(0);
        transition-delay: 0s;
    }
    .primary-nav > a:not(.button) {
        padding: 1rem 0;
        border-bottom: 1px solid var(--color-line);
        font-size: 0.95rem;
    }
    .primary-nav__cta {
        margin-top: 1.5rem;
    }
    .nav-backdrop {
        position: fixed;
        z-index: 99;
        inset: 0;
        display: block;
        pointer-events: none;
        background: rgba(42, 31, 20, 0.45);
        opacity: 0;
        transition: opacity var(--transition);
    }
    .nav-open .nav-backdrop {
        pointer-events: auto;
        opacity: 1;
    }
    .hero__inner {
        min-height: 0;
        grid-template-columns: 1fr;
    }
    .hero__content {
        z-index: 6;
        max-width: none;
        padding: 2.8rem 0 0;
    }
    .hero__content h1 {
        margin-bottom: 1.3rem;
    }
    .hero__lead {
        max-width: none;
        font-size: 1.02rem;
    }
    .hero__visual {
        min-height: 630px;
        margin-top: -1rem;
    }
    .hero__visual img {
        right: 50%;
        bottom: 0;
        width: min(92%, 520px);
        max-height: 95%;
        transform: translateX(50%);
    }
    .hero__disc {
        bottom: -14%;
        width: 500px;
        transform: translateX(50%);
        right: 20%;
    }
    .hero__symbol {
        top: 3%;
        left: 0;
        font-size: 22rem;
    }
    .hero__actions {
        position: absolute;
        z-index: 5;
        right: var(--gutter);
        bottom: 2rem;
        left: var(--gutter);
        display: grid;
        gap: 0.9rem;
    }
    .hero__actions::before {
        position: absolute;
        z-index: 0;
        inset: -5rem calc(-1 * var(--gutter)) -2rem;
        background: linear-gradient(
            to top,
            var(--color-paper) 0%,
            rgba(250, 246, 240, 0.94) 48%,
            rgba(250, 246, 240, 0) 100%
        );
        content: '';
        pointer-events: none;
    }
    .hero__actions .button {
        z-index: 1;
        width: 100%;
    }

    .container{
        width: 100%;
        padding: 0 1rem;
    }

    .services{padding-top: 0;}
    .container.about__grid{ padding: 0;}

    .number-card-grid,
    .service-grid,
    .about__grid,
    .feature-grid,
    .contact__grid,
    .site-footer__grid {
        grid-template-columns: 1fr;
    }
    .number-card-grid {
        gap: 1.25rem;
    }
    .number-card {
        min-height: 0;
    }
    .audience__grid {
        width: 100%;
        grid-template-columns: 1fr;
        padding:0;
    }
    .audience__image,
    .audience__image img {
        min-height: 480px;
    }
    .audience__content {
        width: 100%;
        padding: 3.5rem 4.5rem;
        margin-inline: 0;
    }
    .service-grid {
        gap: 2rem;
    }
    .about__copy {
        padding: 3.5rem var(--gutter);
    }
    .about__copy--intro {
        order: 1;
    }
    .about__image--standing {
        order: 2;
    }
    .about__image--green {
        order: 3;
    }
    .about__copy--why {
        order: 4;
    }

    .about__image:nth-of-type(2){
        order:4;
    }
    .about__copy--why{
        order:3;
    }
    .feature-grid {
        max-width: 620px;
        margin-inline: auto;
    }
    .contact__grid {
        gap: 3rem;
    }
    .blog-grid {
        display: grid;
        grid-auto-columns: min(84vw, 390px);
        grid-auto-flow: column;
        grid-template-columns: none;
        gap: 1rem;
        overflow-x: auto;
        padding: 0.3rem var(--gutter) 1.2rem;
        margin-right: calc(-1 * var(--gutter));
        scroll-snap-type: x mandatory;
    }
    .blog-card {
        scroll-snap-align: start;
    }
    .contact-card {
        margin-inline: auto;
    }
    .site-footer__grid {
        gap: 3rem;
    }
    .site-footer__nav,
    .site-footer__brand {
        align-items: center;
        text-align: center;
    }
    .site-footer__newsletter {
        text-align: center;
    }
    .about__copy:nth-of-type(2):before,
    .audience__content::before{
        right: 0;
        width: 100vw;
    }

    .about__copy::before{
        left: 0;
                width: 100vw;

    }
}
@media (max-width: 560px) {
    :root {
        --gutter: 1rem;
        --space-8: 4.2rem;
    }
    body {
        font-size: 16px;
    }
    h1 {
        font-size: clamp(2.45rem, 11vw, 3.3rem);
    }
    h2 {
        font-size: clamp(1.8rem, 8vw, 2.4rem);
    }
    .section-heading {
        margin-bottom: 2.3rem;
    }
    .button {
        min-height: 48px;
        padding-inline: 1rem;
        font-size: 0.78rem;
    }
    .hero__content {
        padding-top: 2.2rem;
    }
    .hero__visual {
        min-height: 570px;
    }
    .hero__visual img {
        width: 105%;
        max-width: none;
    }
    .hero__disc {
        bottom: -20%;
        width: 100%;
        right: 0;

    }
    .blog .hero__disc{
        max-width: 100%;
    }
    .hero__symbol {
        top: -10%;
        left: 0;
        font-size: 30rem;
    }
    .hero__actions {
        bottom: 1.4rem;
    }
    .pain-points {
        padding-top: 3.7rem;
    }
    .number-card {
        padding: 1.35rem 1.25rem 1.5rem;
    }
    .number-card__number {
        font-size: 3.1rem;
    }
    .centered-cta {
        margin-top: 3rem;
    }
    .centered-cta .button {
        width: 100%;
    }
    .audience__image,
    .audience__image img {
        min-height: 440px;
    }
    .audience__content {
        padding-block: 3.2rem 4rem;
        padding: 3.5rem 1.5rem;
    }
    .service-card__header,
    .service-card__body {
        padding-inline: 1.25rem;
    }
    .service-card__header {
        padding-block: 1.5rem;
    }
    .service-card__body {
        padding-block: 1.2rem 1.35rem;
    }
    .about {
        padding-top: 0;
    }
    .about__copy {
        padding-block: 3.3rem;
    }
    .about__image,
    .about__image img {
        min-height: 500px;
    }
    .method {
        padding-top: 4.7rem;
    }
    .method__symbol {
        top: 1rem;
        font-size: 14rem;
    }
    .feature-card {
        padding: 1.8rem 1.2rem;
    }
    .freebie-list {
        align-items: stretch;
    }
    .freebie-option {
        width: 100%;
        max-width: 100%;
        flex-basis: 100%;
        min-height: 0;
        padding: 1.35rem;
    }
    .form-card {
        padding: 1.35rem;
    }
    .blog-card__body h3 {
        font-size: 1.25rem;
    }
    .contact-card {
        grid-template-columns: 1fr;
    }
    .contact-card > img {
        min-height: 360px;
    }
    .contact-card__details {
        padding-block: 2.4rem;
    }
    .site-footer {
        padding-top: 3.5rem;
    }
    .site-footer__bottom {
        flex-direction: column;
        text-align: center;
        padding: 1rem 0;
    }
}
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
