/* Zemedya V2 — ortak bileşenler (V2-02). Yalnız Design:V2 açıkken yüklenir; değerler zm-tokens.css'ten.
   Legacy ile bir arada çalışır: Bootstrap 4.1 + main.css sayfa gövdeleri için yüklü kalır. Bu yüzden:
   - tüm sınıflar zm- önekli; legacy sınıf adı (navbar, dropdown, container, btn, section…) kullanılmaz,
   - main.css html font-size'ı %62.5 yaptığı için ölçüler px (rem değil),
   - main.css "a, a:focus, a:hover { color: inherit; display: inline-block }" kuralları bağlantı renklerini ezmesin diye
     renk taşıyan kurallar en az iki sınıf özgüllüğündedir.
   Kırılma noktaları: > 1100 geniş · 851–1100 kompakt · ≤ 850 mobil header/portföy · ≤ 550 mobil ince ayar. */

/* ---------- Temel (yalnız V2 sayfalarında) ---------- */
html.zm-v2 {
    scroll-padding-top: calc(var(--zm-header-h) + var(--zm-space-4));
}

html.zm-v2.zm-menu-open,
html.zm-v2.zm-menu-open body {
    overflow: hidden;
}

.zm-v2 :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--zm-focus);
    outline-offset: 3px;
}

/* Odak halkası zemine göre (karar 1B): koyu bölümlerde mercan, sektör kartlarında beyaz; değişken içerideki her öğeye miras kalır.
   Koyu zemine yeni bir bölüm eklenirse buraya eklenir. */
.zm-v2 :is(.zm-section--night, .zm-footer, .zm-home-cta, .zm-pf-cta, .zm-pd-cta, .zm-svc-hero__side, .zm-svc-package--highlight) {
    --zm-focus: var(--zm-focus-on-dark);
}

.zm-v2 .zm-home-sector {
    --zm-focus: var(--zm-focus-on-media);
}

/* Koyu bölümde açık kart: editör hizmet bölümünü "night" yapabilir (ServiceV2Section.Tones), kartlar beyaz kalır ve halka kartın
   zemininde çizilir (hizmet kartında içeride, pakette düğmenin çevresinde); açık ton geri alınır. */
.zm-v2 :is(.zm-svc-card, .zm-svc-package:not(.zm-svc-package--highlight)) {
    --zm-focus: var(--zm-focus-on-light);
}

/* WhatsApp düğmesi sabit konumda açık ve koyu zeminlerin üstünden geçer: halkanın içinde beyaz şerit (iki tonlu gösterge). */
.zm-v2 .zm-whatsapp:focus-visible {
    box-shadow: 0 0 0 3px var(--zm-white);
}

/* Bootstrap 4 reboot fareyle tıklanan düğmeye de "button:focus" çerçevesi çizer; V2 iskeletinde yalnız klavye odağı görünür. */
.zm-v2 :is(.zm-header, .zm-footer, .zm-portfolio-grid, .zm-filters, .zm-faq) :is(button, summary):focus:not(:focus-visible) {
    outline: none;
}

.zm-main {
    display: block;
}

.zm-main:focus {
    outline: none;
}

.zm-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.zm-skip-link {
    position: absolute;
    top: -200px;
    left: var(--zm-space-4);
    z-index: 10000;
    padding: var(--zm-space-3) var(--zm-space-4);
    background: var(--zm-ink);
    font: var(--zm-weight-semibold) 14px/1.2 var(--zm-font-sans);
}

.zm-v2 .zm-skip-link,
.zm-v2 .zm-skip-link:hover {
    color: var(--zm-white);
}

.zm-skip-link:focus {
    top: var(--zm-space-4);
}

/* ---------- Kapsayıcı ve editoryal düzen ---------- */
.zm-container {
    width: 100%;
    max-width: calc(var(--zm-content-max) + 2 * var(--zm-gutter));
    margin-right: auto;
    margin-left: auto;
    padding-right: var(--zm-gutter);
    padding-left: var(--zm-gutter);
}

.zm-section {
    padding-top: var(--zm-section-y);
    padding-bottom: var(--zm-section-y);
    font-family: var(--zm-font-sans);
    color: var(--zm-ink);
}

.zm-section--paper { background: var(--zm-paper); }
.zm-section--warm { background: var(--zm-warm); }
.zm-section--white { background: var(--zm-white); }
.zm-section--night { background: var(--zm-night); color: var(--zm-white); }
.zm-section--ruled { border-top: 1px solid var(--zm-rule); }

.zm-eyebrow {
    display: flex;
    align-items: center;
    gap: var(--zm-space-3);
    margin: 0 0 var(--zm-space-4);
    font-family: var(--zm-font-sans);
    font-size: var(--zm-text-eyebrow);
    font-weight: var(--zm-weight-bold);
    line-height: 1.4;
    letter-spacing: var(--zm-tracking-eyebrow);
    text-transform: uppercase;
}

.zm-eyebrow::before {
    content: "";
    flex: none;
    width: 28px;
    height: 2px;
    background: var(--zm-red);
}

.zm-display,
.zm-h2,
.zm-h3 {
    margin: 0;
    font-family: var(--zm-font-sans);
    font-weight: var(--zm-weight-bold);
    color: inherit;
}

.zm-display {
    font-size: var(--zm-text-display);
    line-height: var(--zm-leading-tight);
    letter-spacing: var(--zm-tracking-display);
}

.zm-h2 {
    font-size: var(--zm-text-h2);
    line-height: 1.08;
    letter-spacing: -0.03em;
}

.zm-h3 {
    font-size: var(--zm-text-h3);
    line-height: 1.25;
    letter-spacing: -0.01em;
}

.zm-lede {
    max-width: 62ch;
    margin: 0;
    font-size: var(--zm-text-lede);
    line-height: var(--zm-leading-body);
    color: var(--zm-muted);
}

.zm-section--night .zm-lede,
.zm-section--night .zm-muted {
    color: var(--zm-muted-on-dark);
}

.zm-muted { color: var(--zm-muted); }

.zm-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--zm-space-8);
    margin-bottom: var(--zm-space-12);
}

.zm-section-head > :last-child:not(:first-child) {
    max-width: 470px;
}

.zm-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(32px, 6vw, 96px);
    align-items: start;
}

.zm-split--lead {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr);
}

.zm-stack > * + * {
    margin-top: var(--zm-space-4);
}

/* ---------- Butonlar ve bağlantılar ---------- */
.zm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--zm-space-3);
    min-width: var(--zm-tap);
    min-height: 48px;
    padding: var(--zm-space-3) 22px;
    border: 1px solid transparent;
    border-radius: var(--zm-radius-sm);
    font: var(--zm-weight-semibold) 14px/1.2 var(--zm-font-sans);
    letter-spacing: 0.01em;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--zm-duration) var(--zm-ease), color var(--zm-duration) var(--zm-ease),
        border-color var(--zm-duration) var(--zm-ease), transform var(--zm-duration) var(--zm-ease);
}

.zm-btn:hover {
    transform: translateY(-2px);
}

/* Eski main.css'teki a, a:focus, a:hover { display: inline-block } (0,1,1) .zm-btn ve .zm-nav__link'in display'ini (0,1,0)
   üzerine gelince ve odakta eziyordu: menü metni 44 px kutunun tepesine zıplıyor (13,6 px), düğmenin flex yerleşimi bozuluyordu.
   Bu kural (0,2,0) temel display'i iki durumda da korur (26 Ekim 2026). */
.zm-btn:hover,
.zm-btn:focus,
.zm-nav__link:hover,
.zm-nav__link:focus {
    display: inline-flex;
}

.zm-btn.zm-btn--primary,
.zm-btn.zm-btn--primary:focus {
    background: var(--zm-red);
    border-color: var(--zm-red);
    color: var(--zm-white);
}

.zm-btn.zm-btn--primary:hover {
    background: var(--zm-red-dark);
    border-color: var(--zm-red-dark);
    color: var(--zm-white);
}

.zm-btn.zm-btn--secondary,
.zm-btn.zm-btn--secondary:focus {
    background: transparent;
    border-color: #a6a5a2;
    color: var(--zm-ink);
}

.zm-btn.zm-btn--secondary:hover {
    background: var(--zm-warm);
    color: var(--zm-ink);
}

.zm-btn.zm-btn--dark,
.zm-btn.zm-btn--dark:focus,
.zm-btn.zm-btn--dark:hover {
    background: var(--zm-ink);
    border-color: var(--zm-ink);
    color: var(--zm-white);
}

.zm-btn.zm-btn--on-dark,
.zm-btn.zm-btn--on-dark:focus {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.45);
    color: var(--zm-white);
}

.zm-btn.zm-btn--on-dark:hover {
    background: rgba(255, 255, 255, 0.08);
    color: var(--zm-white);
}

.zm-btn--block {
    width: 100%;
}

.zm-v2 .zm-link {
    display: inline;
    color: var(--zm-ink);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
}

.zm-v2 .zm-link:hover {
    color: var(--zm-red);
}

.zm-v2 .zm-link-arrow {
    display: inline-block;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.zm-link-arrow::after {
    content: "\2192";
    display: inline-block;
    margin-left: var(--zm-space-2);
    text-decoration: none;
}

/* ---------- Header ---------- */
.zm-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    border-top: 3px solid var(--zm-red);
    border-bottom: 1px solid var(--zm-rule);
    background: var(--zm-white);
    font-family: var(--zm-font-sans);
    color: var(--zm-ink);
}

.zm-header__bar {
    display: flex;
    align-items: center;
    gap: var(--zm-space-6);
    min-height: calc(var(--zm-header-h) - 4px);
}

.zm-v2 .zm-header__brand {
    display: flex;
    flex: none;
    align-items: center;
    min-height: var(--zm-tap);
}

.zm-header__logo {
    display: block;
    width: 150px;
    height: auto;
    /* Orijinal logo dosyası (logo-white.webp) açık zeminde koyu basılır; ayrı/yeni logo dosyası yok. */
    filter: brightness(0);
}

.zm-nav__list,
.zm-nav__submenu {
    margin: 0;
    padding: 0;
    list-style: none;
}

.zm-v2 .zm-nav__link,
.zm-v2 .zm-nav__sublink {
    color: var(--zm-ink);
    text-decoration: none;
    transition: color var(--zm-duration) var(--zm-ease);
}

.zm-v2 .zm-nav__link:hover,
.zm-v2 .zm-nav__sublink:hover,
.zm-v2 .zm-nav__link[aria-current="page"],
.zm-v2 .zm-nav__sublink[aria-current="page"] {
    color: var(--zm-red);
}

.zm-nav__link {
    display: inline-flex;
    align-items: center;
    min-height: var(--zm-tap);
    font-size: 14px;
    font-weight: var(--zm-weight-semibold);
    line-height: 1.2;
}

.zm-nav__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: var(--zm-tap);
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    cursor: pointer;
}

.zm-nav__chevron {
    transition: transform var(--zm-duration) var(--zm-ease);
}

.zm-nav__toggle[aria-expanded="true"] .zm-nav__chevron {
    transform: rotate(180deg);
}

.zm-nav__sublink {
    display: block;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.35;
}

.zm-lang {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: var(--zm-weight-bold);
    white-space: nowrap;
}

.zm-lang__current {
    color: var(--zm-red);
}

.zm-lang__sep {
    color: #b5b3ae;
}

.zm-v2 .zm-lang__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    min-height: var(--zm-tap);
    color: var(--zm-muted);
    text-decoration: none;
}

.zm-v2 .zm-lang__link:hover {
    color: var(--zm-ink);
}

.zm-header__cta.zm-btn {
    min-height: var(--zm-tap);
    padding: 10px 18px;
    white-space: nowrap;
}

.zm-header__menu-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: var(--zm-tap);
    height: var(--zm-tap);
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: var(--zm-radius-sm);
    background: var(--zm-ink);
    color: var(--zm-white);
    cursor: pointer;
}

.zm-burger,
.zm-burger::before,
.zm-burger::after,
.zm-burger > span {
    display: block;
    width: 20px;
    height: 2px;
    background: currentColor;
    transition: transform var(--zm-duration) var(--zm-ease), opacity var(--zm-duration) var(--zm-ease);
}

.zm-burger {
    position: relative;
    background: transparent;
}

.zm-burger::before,
.zm-burger::after {
    content: "";
    position: absolute;
    left: 0;
}

.zm-burger::before { top: -6px; }
.zm-burger::after { top: 6px; }

.zm-header__menu-toggle[aria-expanded="true"] .zm-burger > span { opacity: 0; }
.zm-header__menu-toggle[aria-expanded="true"] .zm-burger::before { transform: translateY(6px) rotate(45deg); }
.zm-header__menu-toggle[aria-expanded="true"] .zm-burger::after { transform: translateY(-6px) rotate(-45deg); }

/* Masaüstü: panel kendi kutusunu bırakır (display: contents), menü ve CTA çubuğun öğesi olur.
   Sıra: logo · menü · dil · CTA. */
@media (min-width: 851px) {
    .zm-header__panel {
        display: contents;
    }

    .zm-nav {
        order: 1;
        display: flex;
        flex: 1;
        justify-content: center;
        min-width: 0;
    }

    .zm-nav__list {
        display: flex;
        align-items: center;
        gap: clamp(14px, 2vw, 30px);
    }

    .zm-nav__item {
        position: relative;
        display: flex;
        align-items: center;
    }

    .zm-nav__item--parent .zm-nav__link {
        padding-right: 2px;
    }

    .zm-v2 .zm-nav__link[aria-current="page"] {
        box-shadow: inset 0 -2px 0 var(--zm-red);
    }

    .zm-nav__submenu {
        position: absolute;
        top: 100%;
        left: -16px;
        z-index: 2;
        display: none;
        min-width: 270px;
        padding: var(--zm-space-2);
        border: 1px solid var(--zm-rule);
        background: var(--zm-white);
        box-shadow: var(--zm-shadow-pop);
    }

    .zm-nav__item.is-open > .zm-nav__submenu,
    html:not(.zm-js) .zm-nav__item--parent:hover > .zm-nav__submenu,
    html:not(.zm-js) .zm-nav__item--parent:focus-within > .zm-nav__submenu {
        display: block;
    }

    .zm-nav__submenu li + li {
        border-top: 1px solid #efedea;
    }

    .zm-nav__sublink {
        padding: var(--zm-space-3);
    }

    .zm-lang {
        order: 2;
    }

    .zm-header__cta {
        order: 3;
    }
}

@media (min-width: 851px) and (max-width: 1100.98px) {
    .zm-header__bar {
        gap: var(--zm-space-4);
    }

    .zm-header__logo {
        width: 128px;
    }

    .zm-nav__list {
        gap: 12px;
    }

    .zm-nav__link {
        font-size: 13px;
    }

    .zm-header__cta.zm-btn {
        padding: 10px 14px;
        font-size: 13px;
    }
}

/* Mobil: logo · dil · menü düğmesi; menü paneli header'ın altında tam ekran. JS yoksa panel açık liste olarak akışta kalır. */
@media (max-width: 850.98px) {
    .zm-header__bar {
        flex-wrap: wrap;
        gap: var(--zm-space-3);
        min-height: var(--zm-header-h-mobile);
    }

    .zm-header__logo {
        width: 124px;
    }

    .zm-lang {
        margin-left: auto;
    }

    .zm-header__menu-toggle {
        display: inline-flex;
    }

    .zm-header__panel {
        order: 5;
        flex-basis: 100%;
        padding-bottom: var(--zm-space-6);
    }

    html.zm-js .zm-header__panel {
        position: fixed;
        top: calc(var(--zm-header-h-mobile) + 4px);
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1029;
        display: none;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: var(--zm-space-4) var(--zm-gutter) var(--zm-space-12);
        background: var(--zm-paper);
    }

    html.zm-js .zm-header.is-menu-open .zm-header__panel {
        display: block;
    }

    .zm-nav__item {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        border-bottom: 1px solid var(--zm-rule);
    }

    .zm-nav__link {
        flex: 1;
        min-height: 56px;
        font-size: 20px;
        letter-spacing: -0.01em;
    }

    .zm-nav__toggle {
        width: 56px;
        height: 56px;
    }

    .zm-nav__chevron {
        width: 16px;
        height: 16px;
    }

    .zm-nav__submenu {
        display: none;
        flex-basis: 100%;
        padding-bottom: var(--zm-space-3);
    }

    .zm-nav__item.is-open > .zm-nav__submenu,
    html:not(.zm-js) .zm-nav__submenu {
        display: block;
    }

    .zm-nav__sublink {
        padding: 11px 0 11px var(--zm-space-4);
        border-left: 2px solid var(--zm-red);
        font-size: 16px;
    }

    .zm-header__cta.zm-btn {
        width: 100%;
        min-height: 52px;
        margin-top: var(--zm-space-6);
    }
}

/* ---------- Footer ---------- */
.zm-footer {
    padding-top: var(--zm-space-16);
    background: var(--zm-night);
    font-family: var(--zm-font-sans);
    color: var(--zm-white);
}

.zm-footer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) repeat(5, minmax(0, 1fr));
    gap: var(--zm-space-8) var(--zm-space-6);
    padding-bottom: var(--zm-space-16);
}

.zm-footer__logo {
    display: block;
    width: 150px;
    height: auto;
}

.zm-v2 .zm-footer__logo-link {
    display: inline-block;
}

.zm-footer__social {
    display: flex;
    flex-wrap: wrap;
    gap: var(--zm-space-2);
    margin: var(--zm-space-6) 0 0;
    padding: 0;
    list-style: none;
}

.zm-v2 .zm-footer__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--zm-tap);
    height: var(--zm-tap);
    border: 1px solid var(--zm-rule-dark);
    border-radius: 50%;
    color: var(--zm-muted-on-dark);
    transition: color var(--zm-duration) var(--zm-ease), border-color var(--zm-duration) var(--zm-ease);
}

.zm-v2 .zm-footer__social-link:hover {
    border-color: var(--zm-red);
    color: var(--zm-white);
}

.zm-footer__social-link svg {
    width: 18px;
    height: 18px;
}

.zm-footer .zm-footer__title {
    margin: 0 0 var(--zm-space-4);
    font-family: var(--zm-font-sans);
    font-size: 12px;
    font-weight: var(--zm-weight-bold);
    line-height: 1.4;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--zm-white);
}

.zm-footer__links {
    margin: 0;
    padding: 0;
    list-style: none;
}

.zm-v2 .zm-footer__links a {
    display: inline-block;
    padding: 6px 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--zm-muted-on-dark);
    text-decoration: none;
}

.zm-v2 .zm-footer__links a:hover,
.zm-v2 .zm-footer__links a[aria-current="page"] {
    color: var(--zm-white);
    text-decoration: underline;
    text-underline-offset: 4px;
}

.zm-footer__address {
    display: grid;
    gap: var(--zm-space-1);
    margin: 0 0 var(--zm-space-3);
    font-size: 14px;
    font-style: normal;
    line-height: 1.6;
    color: var(--zm-muted-on-dark);
}

.zm-footer__office {
    font-weight: var(--zm-weight-semibold);
    color: var(--zm-white);
}

.zm-footer__bottom {
    border-top: 1px solid var(--zm-rule-dark);
}

.zm-footer__bottom-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--zm-space-3) var(--zm-space-6);
    padding-top: var(--zm-space-4);
    padding-bottom: var(--zm-space-4);
    font-size: 13px;
    color: var(--zm-muted-on-dark);
}

.zm-footer .zm-footer__copyright {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--zm-muted-on-dark);
}

.zm-v2 .zm-footer__copyright a,
.zm-v2 .zm-footer__legal a {
    display: inline;
    color: var(--zm-white);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.zm-footer__legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--zm-space-2) var(--zm-space-3);
}

.zm-footer .zm-footer__consent {
    display: inline-flex;
    align-items: center;
    min-height: var(--zm-tap);
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    color: var(--zm-white);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.zm-whatsapp {
    position: fixed;
    right: 10px;
    bottom: 0;
    z-index: 12;
    display: none;
}

@media (min-width: 768px) {
    .zm-v2 .zm-whatsapp {
        display: block;
    }
}

@media (max-width: 1100.98px) {
    .zm-footer__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .zm-footer__brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 550.98px) {
    .zm-footer {
        padding-top: var(--zm-space-12);
    }

    .zm-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--zm-space-6) var(--zm-space-4);
        padding-bottom: var(--zm-space-12);
    }

    .zm-footer__contact {
        grid-column: 1 / -1;
    }

    .zm-footer__bottom-inner {
        display: block;
    }

    .zm-footer__legal {
        margin-top: var(--zm-space-2);
    }
}

@media (max-width: 380.98px) {
    .zm-footer__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ---------- Proje kartı ve portföy ızgarası ----------
   Sözleşme (standart §3): masaüstü (> 850px) ilk iki proje eşit büyük (3 + 3 / 6 kolon), devamı her satırda üç eşit kart
   (2 + 2 + 2). Mobil (≤ 850px) büyükler tam genişlik, diğerleri iki sütun. Ad hoc span yok; büyük kart yalnız .is-featured. */
.zm-portfolio-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: var(--zm-space-4);
    margin: 0;
    padding: 0;
    list-style: none;
}

.zm-portfolio-grid > .zm-project-card {
    grid-column: span 2;
}

.zm-portfolio-grid > .zm-project-card.is-featured {
    grid-column: span 3;
}

.zm-portfolio-grid > [hidden] {
    display: none;
}

.zm-project-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--zm-rule-dark);
    background: var(--zm-night-2);
    font-family: var(--zm-font-sans);
    color: var(--zm-white);
    transition: border-color var(--zm-duration) var(--zm-ease), transform var(--zm-duration) var(--zm-ease);
}

.zm-project-card:hover,
.zm-project-card:focus-within {
    border-color: #c1525b;
    transform: translateY(-3px);
}

.zm-project-card:has(.zm-project-card__link:focus-visible) {
    outline: 3px solid var(--zm-focus);
    outline-offset: 3px;
}

.zm-project-card__media {
    position: relative;
    margin: 0;
    overflow: hidden;
    aspect-ratio: 1.43;
    background: linear-gradient(140deg, #404447, #17191b);
}

.zm-project-card.is-featured .zm-project-card__media {
    aspect-ratio: 1.55;
}

.zm-project-card__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    transition: transform 350ms var(--zm-ease);
}

.zm-project-card:hover .zm-project-card__media img {
    transform: scale(1.035);
}

.zm-project-card__body {
    display: flex;
    flex-direction: column;
    gap: var(--zm-space-2);
    min-height: 96px;
    padding: 18px 20px 20px;
}

.zm-project-card .zm-project-card__meta {
    margin: 0;
    font-size: 11px;
    line-height: 1.4;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--zm-muted-on-dark);
}

.zm-project-card .zm-project-card__title {
    margin: 0;
    font-family: var(--zm-font-sans);
    font-size: 18px;
    font-weight: var(--zm-weight-bold);
    line-height: 1.25;
    color: var(--zm-white);
}

.zm-project-card .zm-project-card__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--zm-muted-on-dark);
}

.zm-project-card.is-featured .zm-project-card__title {
    font-size: clamp(20px, 2vw, 26px);
}

.zm-v2 .zm-project-card__link {
    display: inline;
    color: inherit;
    text-decoration: none;
}

.zm-v2 .zm-project-card__link:focus-visible {
    outline: none;
}

/* Kartın tamamı tek bağlantı (tek odak noktası, tekrar eden link yok). */
.zm-project-card__link::after {
    content: "";
    position: absolute;
    inset: 0;
}

.zm-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--zm-space-2);
    margin: 0 0 var(--zm-space-6);
    font-family: var(--zm-font-sans);
}

.zm-filters__button {
    min-height: var(--zm-tap);
    padding: 10px 16px;
    border: 1px solid #d5d1cd;
    border-radius: var(--zm-radius-sm);
    background: var(--zm-white);
    font: 500 13px/1.2 var(--zm-font-sans);
    color: var(--zm-ink);
    cursor: pointer;
}

.zm-filters__button[aria-pressed="true"] {
    border-color: var(--zm-ink);
    background: var(--zm-ink);
    color: var(--zm-white);
}

.zm-filters__count {
    margin-left: auto;
    font-size: 12px;
    color: var(--zm-muted);
}

@media (max-width: 850.98px) {
    .zm-portfolio-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--zm-space-3);
    }

    .zm-portfolio-grid > .zm-project-card {
        grid-column: span 1;
    }

    .zm-portfolio-grid > .zm-project-card.is-featured {
        grid-column: span 2;
    }

    .zm-project-card__media {
        aspect-ratio: 1.05;
    }

    .zm-project-card.is-featured .zm-project-card__media {
        aspect-ratio: 1.52;
    }

    .zm-project-card__body {
        min-height: 84px;
        padding: 12px;
    }

    .zm-project-card .zm-project-card__title {
        font-size: 15px;
    }

    .zm-filters {
        flex-wrap: nowrap;
        overflow-x: auto;
    }

    .zm-filters__button {
        white-space: nowrap;
    }
}

/* V2-07: en dar telefonlar (< 360px). İki sütunlu küçük kartta metin kutusu ~106px; uzun kelimeler ("distribütörlüğünü",
   "çalışanlarından", 109–121px) kelime ortasından bölünüyordu (Chrome Türkçe hecelemiyor). Yalnız küçük kartlarda 12px metin ve 10px
   yatay iç boşluk: en uzun kelime ~104px, kutu ~110px. Seçici ana sayfa/portföy/hizmet kart kurallarından baskın. */
@media (max-width: 359.98px) {
    .zm-v2 .zm-portfolio-grid .zm-project-card:not(.is-featured) .zm-project-card__body {
        padding-right: 10px;
        padding-left: 10px;
    }

    .zm-v2 .zm-portfolio-grid .zm-project-card:not(.is-featured) .zm-project-card__text {
        font-size: 12px;
    }
}

/* ---------- Form görsel stilleri (yalnız görünüm; gönderim, doğrulama ve KVKK onayı sunucuda — FormBodyRenderer) ---------- */
.zm-form {
    font-family: var(--zm-font-sans);
    color: var(--zm-ink);
}

.zm-field {
    display: grid;
    gap: var(--zm-space-2);
    margin-bottom: 20px;
}

.zm-label {
    margin: 0;
    font-size: 14px;
    font-weight: var(--zm-weight-semibold);
    line-height: 1.4;
}

.zm-input,
.zm-select,
.zm-textarea {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: var(--zm-space-3) 14px;
    border: 1px solid #a5a19c;
    border-radius: var(--zm-radius-sm);
    background: var(--zm-white);
    font: 400 16px/1.4 var(--zm-font-sans);
    color: var(--zm-ink);
    transition: border-color var(--zm-duration) var(--zm-ease);
}

.zm-textarea {
    min-height: 140px;
    resize: vertical;
}

.zm-input:hover,
.zm-select:hover,
.zm-textarea:hover {
    border-color: var(--zm-ink);
}

.zm-input[aria-invalid="true"],
.zm-select[aria-invalid="true"],
.zm-textarea[aria-invalid="true"] {
    border-color: var(--zm-error);
    border-width: 2px;
}

.zm-help {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--zm-muted);
}

.zm-error {
    margin: 0;
    font-size: 13px;
    font-weight: var(--zm-weight-semibold);
    line-height: 1.5;
    color: var(--zm-error);
}

.zm-check {
    display: flex;
    align-items: flex-start;
    gap: var(--zm-space-3);
    font-size: 14px;
    line-height: 1.5;
}

.zm-check input {
    flex: none;
    width: 20px;
    height: 20px;
    margin: 2px 0 0;
    accent-color: var(--zm-red);
}

/* ---------- SSS (semantik details/summary; içerik kaynak HTML'de kalır) ---------- */
.zm-faq {
    border-top: 1px solid var(--zm-rule);
    font-family: var(--zm-font-sans);
}

.zm-faq details {
    border-bottom: 1px solid var(--zm-rule);
}

.zm-faq summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--zm-space-4);
    min-height: var(--zm-tap);
    padding: 18px 0;
    font-size: 16px;
    font-weight: var(--zm-weight-semibold);
    list-style: none;
    cursor: pointer;
}

.zm-faq summary::-webkit-details-marker {
    display: none;
}

.zm-faq summary::after {
    content: "+";
    flex: none;
    font-size: 22px;
    font-weight: 300;
    color: var(--zm-red);
}

.zm-faq details[open] summary::after {
    content: "\2212";
}

.zm-faq details > :not(summary) {
    margin: 0 0 18px;
    font-size: 15px;
    line-height: var(--zm-leading-body);
    color: var(--zm-muted);
}

/* ---------- Duyarlı düzen ---------- */
@media (max-width: 850.98px) {
    .zm-section-head {
        display: block;
    }

    .zm-section-head > * + * {
        margin-top: var(--zm-space-4);
    }

    .zm-split,
    .zm-split--lead {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ---------- Hareket azaltma ---------- */
@media (prefers-reduced-motion: reduce) {
    html.zm-v2 {
        scroll-behavior: auto;
    }

    .zm-v2 *,
    .zm-v2 *::before,
    .zm-v2 *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .zm-btn:hover,
    .zm-project-card:hover,
    .zm-project-card:focus-within,
    .zm-project-card:hover .zm-project-card__media img {
        transform: none;
    }
}

/* ---------- Çerez bildirimi, mobil ----------
   V2-03D'deki alta oturan şerit 19 Ekim 2026'da (karar 1A) tüm sayfalar için /css/consent.css'e taşındı; burada kural yok. */
