:root {
    --pzl-ink: #2d2529;
    --pzl-muted: #6f5961;
    --pzl-surface: #fff6f8;
    --pzl-accent: #efb4c7;
    --pzl-border: rgba(45, 37, 41, 0.15);
}

body { color: var(--pzl-ink); }
.section { border-color: var(--pzl-border); }
.section--alt, .hero__media, .offer-card__media, .portfolio__link { background: var(--pzl-surface); }
.eyebrow, .hero__eyebrow, .hero__lead, .offer__subtitle, .portfolio__subtitle, .about__lead, .about__p, .contact__text, .footer__tagline, .footer__bottom { color: var(--pzl-muted); }
.separator, .offer-card__accent { background: var(--pzl-accent); }
.btn, .nav-toggle { border-color: var(--pzl-ink); }
.btn--primary, .skip-link, .cta-strip, .portfolio__filter[aria-pressed='true'] { background: var(--pzl-ink); }
.btn--outline:hover, .btn--primary:hover { background: var(--pzl-accent); border-color: var(--pzl-accent); color: var(--pzl-ink); }
.site-header, .site-nav { border-color: var(--pzl-border); }
.nav-toggle__bar { background: var(--pzl-ink); }
.offer-card, .about__img, .process__item, .form__input, .form__textarea, .portfolio__filter, .portfolio__link, .footer, .footer__top { border-color: var(--pzl-border); }
.offer-card--premium { border-color: var(--pzl-accent); }
.offer-card__badge, .portfolio__filter[aria-pressed='true'] { background: var(--pzl-ink); }
.cta-strip .btn--primary { background: var(--pzl-accent); border-color: var(--pzl-accent); color: var(--pzl-ink); }
.cta-strip--light { background: var(--pzl-surface); color: var(--pzl-ink); }
.cta-strip--light .cta-strip__title { color: var(--pzl-ink); }
.cta-strip--light .about__lead { color: var(--pzl-muted); }
.form__input:focus, .form__textarea:focus { outline-color: var(--pzl-accent); border-color: var(--pzl-accent); }
.contact__link, .footer__link { color: var(--pzl-ink); }
.site-logo__image, .footer__logo { object-fit: contain; object-position: center; }
.site-logo__image { width: 164px; height: 62px; }
.site-logo__text { display: none; }
.footer__logo { width: 148px; height: 54px; }
.footer__delivered { color: var(--pzl-muted); font-size: .85rem; font-weight: 400; }
.footer__delivered .footer__link { font-weight: 400; }
.footer__brand { display: none; }

.hero, .about { padding: 0; }
.hero__content, .about__content { padding: 88px 0; }
.hero__media, .about__media { border: 0; margin: 0; }
.contact__address { margin: 0; color: var(--pzl-muted); font-style: normal; line-height: 1.7; }
.form__privacy { margin: 0; color: var(--pzl-muted); font-size: .85rem; }
.form__privacy a { color: var(--pzl-ink); text-decoration: underline; text-underline-offset: 3px; }
.privacy__notice { padding: 18px 20px; border: 1px solid var(--pzl-border); background: var(--pzl-surface); color: var(--pzl-muted); }
.privacy__content { display: grid; gap: 14px; margin-top: 32px; }
.privacy__content h2 { margin: 22px 0 0; font-size: 1.5rem; }
.privacy__content p { color: var(--pzl-muted); }
.pswp__custom-caption-title { display: block; font-family: Georgia, serif; font-size: 18px; font-weight: 500; margin-bottom: 6px; }
.pswp__custom-caption-desc { display: block; }
.pswp__custom-caption { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 48px 20px 20px; color: #fff; background: linear-gradient(to top, rgba(0, 0, 0, .78), rgba(0, 0, 0, 0)); font-size: 14px; line-height: 1.45; }

body.menu-open { overflow: hidden; }

@media (max-width: 820px) {
    .site-nav {
        position: fixed;
        top: var(--site-header-height, 72px);
        right: 0;
        bottom: 0;
        left: 0;
        min-height: calc(100dvh - var(--site-header-height, 72px));
        display: none;
        align-content: start;
        justify-items: center;
        gap: 24px;
        background: rgba(255, 255, 255, .78);
        backdrop-filter: blur(18px);
        text-align: center;
        padding-top: 32px;
    }
    .site-nav.is-open { display: grid; }
    .site-nav__link { font-size: 1.05rem; }
    .site-nav__cta { justify-self: center; }
}

@media (max-width: 560px) {
    .site-logo__image { width: 134px; height: 52px; }
    .hero__content, .about__content { padding: 60px 0; }
}
