/* IRVU additions on top of the template styles (no animation or font changes). */

/* header + mobile menu logo */
.tf-header .logo-site img { height: 34px; width: auto; }
.offcanvas-menu .canvas_head .logo-site img { height: 30px; width: auto; }

/* expertise words in the partner marquee (template expects logos) */
.infiniteSlide_partner.irvu-words span {
    flex-shrink: 0;
    font-size: 27px;
    line-height: 1;
    font-weight: 600;
    color: var(--neutral-400);
    letter-spacing: -0.02em;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 64px;
}
.infiniteSlide_partner.irvu-words span::after {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--brand);
}

/* I / R / V / U letters in the meaning list (template expects award logos) */
.awards-item .irvu-letter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: var(--brand);
    color: var(--white);
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
}

/* contact rows are links now */
a.contact-item { color: inherit; }
a.contact-item:hover .text { color: var(--brand); }
.form-contact a.attachment { color: inherit; }
.form-contact a.attachment:hover { color: var(--brand); }
.form-contact .form-note { margin-top: 12px; font-size: 14px; color: var(--secondary); }

/* word-only price labels */
.pricing-item .price-number { letter-spacing: -0.03em; }

/* Turkish menu labels are longer than the template's: give the pill room */
@media (min-width: 992px) {
    .tf-header.header2 .header-inner { max-width: 900px; }
}

/* the Turkish hero badge is longer than the template's: let it fit on phones */
@media (max-width: 575px) {
    .section-hero .content-wrap .sub { max-width: calc(100% - 8px); font-size: 13px; white-space: normal; text-align: center; }
}

/* about heading: the template tucks it 17px under the cards, which cuts Turkish descenders (ğ, ş, j) — keep it clear */
.section-about-us .heading-section { margin-bottom: 16px; }
.section-about-us .heading-title { padding-bottom: 6px; }

/* about-card globe: dotted globe + a Turkey layer that blinks + the 81-province goal box */
.section-about-us .col-left .irvu-globe {
    position: relative;
    margin-top: -25px;
    border-radius: 38px;
    overflow: hidden;
}
.section-about-us .col-left .irvu-globe img { margin-top: 0; display: block; border-radius: 0; }
.section-about-us .col-left .irvu-globe .irvu-globe-tr,
.irvu-globe .irvu-globe-fx {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}
/* the glow is drawn once; only opacity animates, so the blink stays on the compositor instead of repainting */
.irvu-globe .irvu-globe-tr { filter: drop-shadow(0 0 10px rgba(245, 102, 32, .75)); will-change: opacity; animation: irvu-turkey-blink 1.8s ease-in-out infinite; }
@keyframes irvu-turkey-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: .15; }
}
.irvu-globe .irvu-globe-fx { font-family: "Urbanist", sans-serif; }
.irvu-globe .irvu-goal-num { fill: #F56620; stroke: none; font-size: 64px; font-weight: 700; letter-spacing: -0.02em; }
.irvu-globe .irvu-goal-title { fill: #fff; font-size: 28px; font-weight: 600; }
.irvu-globe .irvu-goal-sub { fill: #A1A1AA; font-size: 21px; font-weight: 500; }
@media (max-width: 575px) {
    /* the globe is ~340px wide on phones: keep the goal box readable */
    .irvu-globe .irvu-goal-sub { display: none; }
    .irvu-globe .irvu-goal-title { font-size: 46px; transform: translateY(24px); }
    .irvu-globe .irvu-goal-num { font-size: 72px; }
}

/* contact form: hidden honeypot + status line */
.irvu-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-contact .form-note.is-error { color: #C83A0A; }

/* responsible person / author card (template quote box, light background) */
.irvu-author-box { align-items: center; }
.irvu-author-box .image img { aspect-ratio: 1; object-fit: cover; }
.irvu-author-box .heading-sub { display: inline-flex; }
.irvu-author-box .irvu-author-bio { margin: 8px 0 12px; }
.irvu-author-box .irvu-author-social { margin-top: 16px; justify-content: flex-start; }

/* blog post body coming from the editor */
.blog-single-wrap .irvu-post-h { margin-bottom: -16px; }
.blog-single-wrap .irvu-post-list { padding-left: 20px; display: grid; gap: 8px; list-style: disc; }

/* hero headings are real h1s; keep the template colour (h1 element rule would turn them pure black) */
h1.title.text-display-2 { color: inherit; }

/* demo note hanging under the floating header; never moves the header's own layout */
.tf-header .header-inner { position: relative; }
.irvu-demo { position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px 4px 4px; border-radius: 999px; background: rgba(255, 255, 255, .82); border: 1px solid rgba(9, 9, 11, .07); box-shadow: 0 6px 18px rgba(9, 9, 11, .06); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); font-size: 12px; line-height: 16px; color: #52525b; white-space: nowrap; pointer-events: none; z-index: 1; }
.irvu-demo b { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: 999px; background: var(--brand); color: #fff; font-weight: 600; letter-spacing: .08em; font-size: 10px; line-height: 14px; text-transform: uppercase; }
.irvu-demo b::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: #fff; animation: irvu-demo-nabiz 1.8s ease-in-out infinite; }
@keyframes irvu-demo-nabiz { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }
@media (max-width: 575px) { .irvu-demo { font-size: 11px; padding: 3px 10px 3px 3px; gap: 6px; } }

/* ---------- team pages (/ekibimiz, /ekip/{id}) ---------- */
:root { --irvu-yumusak: cubic-bezier(.22, 1, .36, 1); }

/* team card: template's dark team-item, the whole card opens the profile */
.irvu-ekip-kart { position: relative; display: flex; flex-direction: column; transition: transform .6s var(--irvu-yumusak), box-shadow .6s var(--irvu-yumusak); }
.irvu-ekip-kart .image { aspect-ratio: 1 / 1; overflow: hidden; transition: border-color .5s var(--irvu-yumusak); }
.irvu-ekip-kart .image img { transition: transform .9s var(--irvu-yumusak); will-change: transform; }
.irvu-ekip-kart .sub { margin-bottom: 24px; }
.irvu-ekip-kart-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; z-index: 1; }
.irvu-ekip-kart-alt { margin-top: auto; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 16px; }
.irvu-ekip-kart-alt .tf-social { position: relative; z-index: 2; }
.irvu-ekip-kart-alt .social-item { width: 44px; height: 44px; font-size: 20px; transition: transform .4s var(--irvu-yumusak), color .3s; }
.irvu-ekip-kart-alt .social-item:hover { transform: translateY(-3px); color: var(--brand); }
.irvu-ekip-incele { display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; border-radius: 99px; font-size: 14px; font-weight: 600; color: var(--neutral-300); border: 1px solid rgba(255, 255, 255, .12); transition: color .4s, border-color .4s, background-color .4s; }
.irvu-ekip-incele .icon { transition: transform .5s var(--irvu-yumusak); }
@media (hover: hover) {
  .irvu-ekip-kart:hover { transform: translateY(-8px); }
  .irvu-ekip-kart:hover .image { border-color: rgba(245, 102, 32, .55); }
  .irvu-ekip-kart:hover .image img { transform: scale(1.06); }
  .irvu-ekip-kart:hover .name { color: var(--brand); }
  .irvu-ekip-kart:hover .irvu-ekip-incele { color: var(--white); border-color: rgba(245, 102, 32, .6); background-color: rgba(245, 102, 32, .12); }
  .irvu-ekip-kart:hover .irvu-ekip-incele .icon { transform: translate(3px, -3px); }
}
.irvu-ekip-kart-link:focus-visible { outline: none; }
.irvu-ekip-kart:has(.irvu-ekip-kart-link:focus-visible) { outline: 2px solid var(--brand); outline-offset: 4px; }
.irvu-ekip-katil .image { background: #E9E9EB; }
.irvu-ekip-giris { max-width: 620px; margin: 24px auto 0; }

/* a long role in the hero pill wraps instead of widening the page */
.section-hero .heading-section .heading-sub { max-width: 100%; width: fit-content; white-space: normal; }

/* profile: sticky dark card on the left, story on the right */
.irvu-profil { min-height: unset !important; }
.irvu-profil-kart { position: sticky; top: 120px; padding: 16px 16px 32px; }
.irvu-profil-kart .image { position: relative; aspect-ratio: 7 / 8; overflow: hidden; margin-bottom: 28px; }
.irvu-profil-kart .name { margin-bottom: 6px; }
.irvu-profil-kart .sub { margin-bottom: 24px; padding: 0 16px; }
.irvu-profil-rozet { position: absolute; left: 16px; bottom: 16px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 99px; font-size: 13px; font-weight: 600; color: var(--white); background: rgba(9, 9, 11, .55); border: 1px solid rgba(255, 255, 255, .16); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.irvu-profil-rozet .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--brand); box-shadow: 0 0 0 4px rgba(245, 102, 32, .25); }
.irvu-profil-rakamlar { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin: 0 16px 24px; border-radius: 20px; overflow: hidden; background: rgba(255, 255, 255, .08); }
.irvu-profil-rakam { display: flex; flex-direction: column; gap: 2px; padding: 16px 12px; background: var(--neutral-900, #18181B); }
.irvu-profil-rakam:only-child, .irvu-profil-rakam:last-child:nth-child(odd) { grid-column: 1 / -1; }
.irvu-profil-rakam .h4 { margin: 0; font-variant-numeric: tabular-nums; }
.irvu-profil-rakam small { font-size: 13px; color: var(--neutral-400); }
.irvu-profil-kart .tf-social { margin-bottom: 24px; flex-wrap: wrap; }
.irvu-profil-kart .social-item { transition: transform .4s var(--irvu-yumusak), color .3s; }
.irvu-profil-kart .social-item:hover { transform: translateY(-3px); color: var(--brand); }
.irvu-profil-cta { margin: 0 16px; width: calc(100% - 32px) !important; }
.irvu-profil .mission-box .heading-sub { margin-bottom: 24px; }
.irvu-profil-metin p { margin-bottom: 16px; color: var(--neutral-600, #52525B); }
.irvu-profil-metin p:last-child { margin-bottom: 0; }
.irvu-profil-metin h2, .irvu-profil-metin h3 { font-size: 20px; line-height: 28px; margin: 24px 0 12px; }
.irvu-profil .mission-box > h6 { margin: 32px 0 16px; }
.irvu-etiketler .tags-item { display: inline-flex; padding: 7px 15px; border-radius: 99px; font-size: 14px; color: var(--neutral-700, #3F3F46); background: var(--white); border: 1px solid var(--neutral-200, #E4E4E7); transition: border-color .3s, color .3s; }
.irvu-etiketler .tags-item:hover { border-color: rgba(245, 102, 32, .5); color: var(--brand); }
.irvu-profil-soz .image { width: 120px !important; height: 160px !important; }
@media (max-width: 991px) { .irvu-profil-kart { position: relative; top: 0; max-width: 520px; margin: 0 auto; } }
@media (max-width: 575px) { .irvu-profil-soz { flex-direction: column; align-items: flex-start !important; } }

/* work cards: services and projects the person runs, text only */
.irvu-is-kart { display: flex; flex-direction: column; color: inherit; transition: transform .6s var(--irvu-yumusak), box-shadow .6s var(--irvu-yumusak); }
.irvu-is-kart .icon { margin-bottom: 0 !important; transition: transform .6s var(--irvu-yumusak), background-color .4s; }
.irvu-is-ust { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 28px; }
.irvu-is-tur { padding: 5px 12px; border-radius: 99px; font-size: 13px; font-weight: 600; color: var(--neutral-500, #71717A); background: var(--white); border: 1px solid var(--neutral-200, #E4E4E7); }
.irvu-is-kart .title { margin-bottom: 10px; }
.irvu-is-metin { font-size: 15px; line-height: 24px; margin-bottom: 20px; }
.irvu-is-git { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; color: var(--neutral-900, #18181B); }
.irvu-is-git .icon { transition: transform .5s var(--irvu-yumusak); }
@media (hover: hover) {
  .irvu-is-kart:hover { transform: translateY(-6px); color: inherit; }
  .irvu-is-kart:hover .icon { transform: rotate(-8deg) scale(1.06); background-color: var(--brand); }
  .irvu-is-kart:hover .irvu-is-git { color: var(--brand); }
  .irvu-is-kart:hover .irvu-is-git .icon { transform: translate(3px, -3px); }
}

/* portfolio entries (no images on purpose) */
.irvu-portfoy { background-color: var(--neutral-100); border-radius: 40px; padding: 36px 36px 40px; box-shadow: 0px 7.77px 2.21px 0px rgba(0, 0, 0, .0588), 0px 3px 3px 0px rgba(0, 0, 0, .102), 0px -8px 0px 0px rgba(0, 0, 0, .051) inset, 0px 4px 0px 0px rgba(255, 255, 255, .6) inset; }
.irvu-portfoy-ust { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.irvu-portfoy-ust .heading-sub { margin-bottom: 0 !important; }
.irvu-portfoy-yil { font-size: 14px; font-weight: 600; color: var(--neutral-400); font-variant-numeric: tabular-nums; }
.irvu-portfoy-rol { margin-top: 6px; font-size: 14px; font-weight: 600; color: var(--brand); }
.irvu-portfoy .line { margin: 20px 0; height: 1px; background: linear-gradient(90deg, rgba(212, 212, 216, 0) 0%, #D4D4D8 50%, rgba(212, 212, 216, 0) 100%); }
.irvu-portfoy .text { color: var(--neutral-600, #52525B); margin: 0; }
@media (max-width: 767px) { .irvu-portfoy { padding: 28px 24px; border-radius: 28px; } }

/* experience timeline */
.irvu-zaman { list-style: none; margin: 0; padding: 0; position: relative; }
.irvu-zaman::before { content: ""; position: absolute; left: 159px; top: 8px; bottom: 8px; width: 1px; background: linear-gradient(180deg, rgba(212, 212, 216, 0), #D4D4D8 12%, #D4D4D8 88%, rgba(212, 212, 216, 0)); }
.irvu-zaman li { display: grid; grid-template-columns: 136px 1fr; gap: 48px; padding: 0 0 36px; position: relative; }
.irvu-zaman li::before { content: ""; position: absolute; left: 154px; top: 6px; width: 11px; height: 11px; border-radius: 50%; background: var(--white); border: 2px solid var(--brand); }
.irvu-zaman-donem { text-align: right; color: var(--brand); font-variant-numeric: tabular-nums; }
.irvu-zaman-icerik h6 { margin-bottom: 6px; }
.irvu-zaman-icerik p { margin: 0; }
@media (max-width: 575px) {
  .irvu-zaman::before { left: 5px; }
  .irvu-zaman li { grid-template-columns: 1fr; gap: 4px; padding-left: 32px; }
  .irvu-zaman li::before { left: 0; }
  .irvu-zaman-donem { text-align: left; }
}

/* signed-in preview of a pending or hidden profile */
.irvu-onizleme { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 9999; display: flex; align-items: center; gap: 10px; max-width: calc(100% - 32px); padding: 10px 18px 10px 10px; border-radius: 99px; font-size: 14px; color: var(--white); background: rgba(9, 9, 11, .88); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 12px 32px rgba(0, 0, 0, .25); }
.irvu-onizleme b { padding: 4px 10px; border-radius: 99px; background: var(--brand); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }

/* author card name links to the profile */
.irvu-author-ad { display: inline-flex; align-items: center; gap: 6px; }
.irvu-author-ad .icon { font-size: 16px; transition: transform .5s var(--irvu-yumusak); }
.irvu-author-ad:hover .icon { transform: translate(3px, -3px); }

/* initials instead of a photo; fills whatever image box it sits in */
.irvu-bas-harf { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 100%; aspect-ratio: inherit; border-radius: inherit; container-type: inline-size; color: var(--white); background: radial-gradient(120% 90% at 20% 0%, rgba(255, 255, 255, .28) 0%, rgba(255, 255, 255, 0) 55%), linear-gradient(160deg, #F56620 0%, #C2410C 55%, #18181B 130%); overflow: hidden; }
.irvu-bas-harf span { font-weight: 600; font-size: 34cqi; line-height: 1; letter-spacing: -.04em; transform: translateY(-2%); transition: transform .9s var(--irvu-yumusak); }
@media (hover: hover) { .irvu-ekip-kart:hover .irvu-bas-harf span { transform: translateY(-2%) scale(1.06); } }

/* WhatsApp: "work with X" opens IRVU's WhatsApp with a ready message naming the person */
.irvu-wa-ikon { display: block; flex-shrink: 0; }
.social-item.irvu-wa { position: relative; z-index: 2; transition: transform .4s var(--irvu-yumusak), color .3s, background .3s; }
.social-item.irvu-wa:hover { transform: translateY(-3px); color: var(--white); background: #25D366; }
.irvu-wa-cta { display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
.irvu-wa-cta .irvu-wa-ikon { transition: transform .5s var(--irvu-yumusak); }
.irvu-wa-cta:hover .irvu-wa-ikon { transform: rotate(-10deg) scale(1.08); color: #25D366; }
.irvu-profil-form { display: block; margin-top: 14px; font-size: 14px; color: var(--neutral-400); text-decoration: underline; text-underline-offset: 3px; transition: color .3s; }
.irvu-profil-form:hover { color: var(--white); }
.irvu-wa-baglanti { display: inline-flex !important; align-items: center; gap: 8px; }
.irvu-wa-baglanti .irvu-wa-ikon { width: 20px; height: 20px; color: #1DA851; }

/* ---------- speed ---------- */
/* a fixed background is repainted on every scroll frame; scrolling it with the page looks the same at the top */
.section-hero .hero-image { background-attachment: scroll; }
/* the sticky header blurs whatever moves under it on every frame: a smaller radius costs far less and looks alike */
.tf-header .header-inner { -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }

/* ---------- Strateji / Tasarım / Reklam … cards (ana sayfa scatter + Hakkımızda network) ----------
   HTML cards so the label uses Urbanist and the Lucide icon can draw itself in. Sizes are in container
   units, so one card works at 104px, 80px or 50px wide. */
.irvu-arac {
    --i: 1;
    container-type: inline-size;
    aspect-ratio: 1;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: #fff; color: #F56620;
    border: 1px solid rgba(9, 9, 11, .06);
    border-radius: 17%;
    font-weight: 600; line-height: 1.1;
    box-shadow: 0 -3px 0 0 #E9E9E9 inset, 0 1px 0 0 rgba(255, 255, 255, .7) inset, 0 3px 3px rgba(0, 0, 0, .14);
    transition: scale .35s cubic-bezier(.22, 1, .36, 1), box-shadow .35s;
}
.irvu-arac-ad { margin-top: 9cqw; color: #3F3F46; font-size: 12.5cqw; letter-spacing: -.01em; white-space: nowrap; }
.irvu-arac-ikon {
    width: 44cqw; height: 44cqw; border-radius: 12cqw;
    display: grid; place-items: center;
    background: rgba(245, 102, 32, .1);
    transition: rotate .45s cubic-bezier(.22, 1, .36, 1);
}
.irvu-arac-ikon svg { width: 56%; height: 56%; overflow: visible; }
.irvu-arac--koyu { background: radial-gradient(120% 90% at 30% 0%, #2A2A2E 0%, #09090B 70%); border-color: rgba(255, 255, 255, .08);
    box-shadow: 0 -3px 0 0 #000 inset, 0 1px 0 0 rgba(255, 255, 255, .18) inset, 0 3px 3px rgba(0, 0, 0, .14); }
.irvu-arac--koyu .irvu-arac-ad { color: #fff; }
.irvu-arac--koyu .irvu-arac-ikon { background: rgba(245, 102, 32, .16); }
.irvu-arac--turuncu { background: linear-gradient(160deg, #FF7A35 0%, #E0520F 100%); color: #fff; border-color: transparent;
    box-shadow: 0 -3px 0 0 #B8420A inset, 0 1px 0 0 rgba(255, 255, 255, .35) inset, 0 3px 3px rgba(0, 0, 0, .14); }
.irvu-arac--turuncu .irvu-arac-ad { color: #fff; }
.irvu-arac--turuncu .irvu-arac-ikon { background: rgba(255, 255, 255, .18); }
.irvu-arac:hover { scale: 1.07; }
.irvu-arac:hover .irvu-arac-ikon { rotate: -8deg; }
/* small cards: icon only */
@container (max-width: 70px) {
    .irvu-arac-ad { display: none; }
    .irvu-arac-ikon { width: 70cqw; height: 70cqw; background: transparent !important; }
}

/* ana sayfa scatter: same placement as the template images */
.section-tools > .irvu-arac { position: absolute; z-index: 1; box-shadow: 4.3px 18.6px 28.7px rgba(0, 0, 0, .1), 0 -3px 0 0 rgba(0, 0, 0, .06) inset; }
.section-tools > .irvu-arac--koyu { box-shadow: 4.3px 18.6px 28.7px rgba(0, 0, 0, .18), 0 -3px 0 0 #000 inset; }
.section-tools > .irvu-arac--turuncu { box-shadow: 4.3px 18.6px 28.7px rgba(224, 82, 15, .25), 0 -3px 0 0 #B8420A inset; }

/* Hakkımızda network */
.tool-wrap .irvu-arac { width: 104px; animation: irvuAracSuz 6s ease-in-out infinite; animation-delay: calc(var(--i) * -1s); }
.tool-wrap .irvu-arac:hover { box-shadow: 0 18px 30px -12px rgba(224, 82, 15, .45), 0 -3px 0 0 #E9E9E9 inset; }
/* the card ring is pulled up under the paragraph; keep the paragraph inside the gap between the cards */
.tool-wrap .text { max-width: 540px; margin-left: auto; margin-right: auto; position: relative; z-index: 3; }
.tool-wrap .image-center::after {
    content: ""; position: absolute; inset: -10px; border-radius: 16px;
    border: 1.5px solid rgba(245, 102, 32, .55);
    animation: irvuHalka 2.5s ease-out infinite; pointer-events: none;
}

/* icons draw themselves in when the section scrolls into view (irvu.js sets pathLength=1 and .irvu-gorundu) */
.irvu-arac-ikon svg > * { stroke-dasharray: 1; stroke-dashoffset: 1; }
.irvu-gorundu .irvu-arac-ikon svg > * { animation: irvuCiz 1.1s cubic-bezier(.65, 0, .35, 1) forwards; animation-delay: calc(var(--i, 1) * .12s + .2s); }
/* a signature motion per icon once it is drawn */
.irvu-gorundu .irvu-arac-ikon--radar svg > path:last-of-type { transform-origin: 12px 12px; animation: irvuCiz 1.1s cubic-bezier(.65, 0, .35, 1) forwards .5s, irvuTara 2.8s linear infinite 1.6s; }
.irvu-gorundu .irvu-arac-ikon--square-terminal svg > path:nth-of-type(2) { animation: irvuCiz .6s ease forwards .8s, irvuImlec 1.1s steps(1) infinite 1.6s; }
.irvu-gorundu .irvu-arac-ikon--message-circle-heart svg { animation: irvuNabiz 2.4s ease-in-out infinite 1.8s; }
.irvu-gorundu .irvu-arac-ikon--waypoints svg > circle { transform-box: fill-box; transform-origin: center; animation: irvuCiz 1.1s cubic-bezier(.65, 0, .35, 1) forwards .3s, irvuDurak 3s ease-in-out infinite 1.6s; }
.irvu-gorundu .irvu-arac-ikon--waypoints svg > circle:nth-of-type(2) { animation-delay: .3s, 2.1s; }
.irvu-gorundu .irvu-arac-ikon--waypoints svg > circle:nth-of-type(3) { animation-delay: .3s, 2.6s; }
.irvu-gorundu .irvu-arac-ikon--waypoints svg > circle:nth-of-type(4) { animation-delay: .3s, 3.1s; }
.irvu-gorundu .irvu-arac-ikon--pen-tool svg { transform-origin: 50% 90%; animation: irvuKalem 4s ease-in-out infinite 1.8s; }
.irvu-gorundu .irvu-arac-ikon--clapperboard svg > path:nth-of-type(-n+3) { transform-origin: 3px 11px; animation: irvuCiz 1.1s cubic-bezier(.65, 0, .35, 1) forwards .6s, irvuKlaket 3.2s ease-in-out infinite 2s; }

@keyframes irvuAracSuz { 0%, 100% { translate: 0 0; } 50% { translate: 0 -7px; } }
@keyframes irvuCiz { to { stroke-dashoffset: 0; } }
@keyframes irvuTara { to { transform: rotate(360deg); } }
@keyframes irvuImlec { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
@keyframes irvuNabiz { 0%, 100% { scale: 1; } 12% { scale: 1.16; } 24% { scale: 1; } 36% { scale: 1.1; } 48% { scale: 1; } }
@keyframes irvuDurak { 0%, 100% { scale: 1; } 15% { scale: 1.45; } 30% { scale: 1; } }
@keyframes irvuKalem { 0%, 100% { rotate: 0deg; } 20% { rotate: -10deg; } 40% { rotate: 6deg; } 55% { rotate: 0deg; } }
@keyframes irvuKlaket { 0%, 70%, 100% { transform: rotate(0deg); } 78% { transform: rotate(-14deg); } 86% { transform: rotate(0deg); } }
@keyframes irvuHalka { 0% { opacity: .9; scale: .96; } 100% { opacity: 0; scale: 1.18; } }

@media (max-width: 1199px) {
    .tool-wrap .text { max-width: 480px; }
}
@media (max-width: 767px) {
    .tool-wrap .text { max-width: none; }
    .tool-wrap .tool-image-box { margin-bottom: 28px; }
    .tool-wrap .irvu-arac { width: 52px !important; border-radius: 12px; }
}
/* tablet + phone: the scattered, rotated cards collide with the text; line them up in a tidy row under the button */
@media (max-width: 1199px) {
    .section-tools:has(> .irvu-arac) { padding-bottom: 170px !important; }
    .section-tools > .irvu-arac {
        --k: 64px; --b: 14px;
        width: var(--k) !important; top: auto !important; right: auto !important; bottom: 64px;
        left: calc(50% - (6 * var(--k) + 5 * var(--b)) / 2 + (var(--i) - 1) * (var(--k) + var(--b))) !important;
        transform: none !important;
        animation: irvuAracSuz 5s ease-in-out infinite; animation-delay: calc(var(--i) * -.8s);
    }
}
@media (max-width: 575px) {
    .section-tools:has(> .irvu-arac) { padding-bottom: 140px !important; }
    .section-tools > .irvu-arac { --k: 46px; --b: 9px; bottom: 48px; }
}

/* ---------- Bir Bakışta slot: scroll-lit paragraph ---------- */
.irvu-anlatim { padding: 120px 0; }
.irvu-anlatim-ic { max-width: 1120px; }
.irvu-anlatim-metin {
    margin: 28px 0 40px;
    font-size: 38px; line-height: 1.24; font-weight: 500; letter-spacing: -.025em;
    color: #fff;
}
.irvu-anlatim-k { color: rgba(255, 255, 255, .16); transition: color .35s ease; }
.irvu-anlatim-k.is-acik { color: #fff; }
.irvu-anlatim-k.is-vurgu.is-acik { color: #F56620; }
.irvu-anlatim-link {
    display: inline-flex; align-items: center; gap: 12px;
    color: #fff; font-size: 18px; font-weight: 600;
    padding-bottom: 6px; border-bottom: 1px solid rgba(255, 255, 255, .25);
    transition: border-color .3s, gap .3s;
}
.irvu-anlatim-link i { color: #F56620; transition: transform .3s; }
.irvu-anlatim-link:hover { color: #fff; border-color: #F56620; gap: 16px; }
.irvu-anlatim-link:hover i { transform: translate(2px, -2px); }
@media (max-width: 1199px) { .irvu-anlatim-metin { font-size: 32px; } }
@media (max-width: 767px) {
    .irvu-anlatim { padding: 72px 0; }
    .irvu-anlatim-metin { font-size: 24px; line-height: 1.3; margin: 20px 0 28px; }
    .irvu-anlatim-metin br { display: none; }
}

/* inner-page hero: the icon shapes hang ~22px below their box and the template leaves only 5px under the title,
   so the shapes sat on the paragraph. Give the paragraph room. */
.section-hero .content-wrap h1.title:has(.title-icon) { margin-bottom: 40px !important; }
@media (max-width: 767px) { .section-hero .content-wrap h1.title:has(.title-icon) { margin-bottom: 28px !important; } }

/* blog cards: one-line clamp cut every Turkish title in half; allow two lines */
.article-blog .infor_name { -webkit-line-clamp: 2; }

/* Hakkımızda network on tablet: don't tuck the cards under the paragraph */
@media (min-width: 768px) and (max-width: 1199px) {
    .tool-wrap .tool-image-box { margin: 32px 0 -40px; }
    .tool-wrap .text { max-width: 560px; }
}

/* spacing helpers used in templates but missing from the theme */
.mt-32 { margin-top: 32px !important; }
.mt-40 { margin-top: 40px !important; }

/* rotating scenarios: all paragraphs share one grid cell so the height never jumps */
.irvu-anlatim-sahne { display: grid; }
.irvu-anlatim-sahne > .irvu-anlatim-metin { grid-area: 1 / 1; }
.irvu-anlatim.is-donen .irvu-anlatim-metin { opacity: 0; transition: opacity .6s ease; pointer-events: none; }
.irvu-anlatim.is-donen .irvu-anlatim-metin.is-aktif { opacity: 1; pointer-events: auto; }
.irvu-anlatim-noktalar { display: flex; gap: 8px; margin: -16px 0 36px; }
.irvu-anlatim-noktalar span { width: 22px; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .15); overflow: hidden; position: relative; }
.irvu-anlatim-noktalar span.is-aktif::after { content: ""; position: absolute; inset: 0; background: #F56620; transform-origin: left; animation: irvuDolum 10s linear forwards; }
@keyframes irvuDolum { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (max-width: 767px) { .irvu-anlatim-noktalar { margin: -8px 0 28px; } }

/* ---------- Proje sayfası: marka sahnesi (blok_marka_isareti) ----------
   The change between colour pairs is a shutter: bars in the new mark colour close over the stage, the layers swap
   behind them, and the bars carry on and open onto the new colour. It never depends on the logo's shape,
   so any mark works the same. Everything that moves is transform or opacity (run by assets/js/irvu.js). */
.irvu-sahne-giris { max-width: 720px; margin-bottom: 32px; }
.irvu-sahne {
    --yazi: #FFFFFF; --panjur: #FFFFFF; --px: 50%; --py: 45%; --mx: 0; --my: 0; --sure: 6s;
    --ih: .58; --oyn: .46; --oran: .75;
    position: relative; overflow: hidden; overflow: clip; isolation: isolate;
    aspect-ratio: 16 / 9; min-height: 520px; max-height: max(78vh, 460px); width: 100%; border-radius: 28px;
    background: #09090B; color: var(--yazi); transition: color .6s var(--irvu-yumusak);
    clip-path: inset(10% 8% 10% 8% round 60px); transform: scale(.94);
}
.irvu-sahne.irvu-gorundu { animation: irvuSahneAc 1.2s cubic-bezier(.76, 0, .24, 1) forwards; }
@keyframes irvuSahneAc { to { clip-path: inset(0 0 0 0 round 28px); transform: none; } }

.irvu-sahne-katmanlar, .irvu-sahne-katman, .irvu-sahne-ic { position: absolute; inset: 0; }
.irvu-sahne-katman { background: var(--zemin); visibility: hidden; }
.irvu-sahne-katman.is-aktif { visibility: visible; }
.irvu-sahne-ic { overflow: hidden; transform-origin: 50% calc(var(--oyn) * 100%); }

/* a glow in the mark colour sits behind the mark and follows the pointer */
.irvu-sahne-ic::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(circle min(46vw, 560px) at var(--px) var(--py), color-mix(in srgb, var(--renk) 24%, transparent), transparent 70%);
}

/* the project name runs behind the mark in huge outlined type */
.irvu-sahne-serit {
    position: absolute; left: 0; right: 0; top: calc(var(--oyn) * 100% + 4%); transform: translate3d(calc(var(--mx) * -18px), calc(-50% + var(--my) * -10px), 0);
    white-space: nowrap; pointer-events: none; transition: transform .9s var(--irvu-yumusak);
}
.irvu-sahne-serit-ak { display: inline-flex; animation: irvuSerit 40s linear infinite; }
.irvu-sahne-serit span {
    padding-right: .45em; font-size: clamp(110px, 17vw, 260px); font-weight: 800; line-height: 1; letter-spacing: -0.045em;
    color: transparent; -webkit-text-stroke: 1.5px var(--renk); opacity: .2;
}
.irvu-sahne-serit span:nth-child(even) { color: var(--renk); -webkit-text-stroke: 0; opacity: .07; }
@keyframes irvuSerit { to { transform: translateX(-50%); } }

/* the mark */
.irvu-sahne-isaret-kap {
    position: absolute; left: 50%; top: calc(var(--oyn) * 100%); height: calc(var(--ih) * 100%); aspect-ratio: var(--oran);
    transform: translate3d(calc(-50% + var(--mx) * 26px), calc(-50% + var(--my) * 20px), 0) rotate(calc(var(--mx) * 4deg));
    transition: transform .9s var(--irvu-yumusak);
}
.irvu-sahne-isaret-gir { position: absolute; inset: 0; }
.irvu-sahne-isaret {
    position: absolute; inset: 0; display: block; overflow: hidden; background: var(--renk);
    -webkit-mask: var(--maske) center / contain no-repeat; mask: var(--maske) center / contain no-repeat;
    animation: irvuIsaretNefes 6s ease-in-out infinite;
}
.irvu-sahne-isaret i { position: absolute; inset: -30%; display: block; background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, .6) 50%, transparent 60%); transform: translateX(-130%); }
@keyframes irvuIsaretNefes { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-10px) rotate(-1.5deg); } }

/* shutter bars: one column each, a hair wider than their slot so no seam can show */
.irvu-sahne-panjur { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.irvu-sahne-panjur span {
    position: absolute; top: -1px; bottom: -1px; left: calc(var(--n) * 100% / 7 - 1px); width: calc(100% / 7 + 2px);
    background: var(--panjur); transform: translate3d(0, 102%, 0); will-change: transform;
}
.irvu-sahne-panjur span:nth-child(even) { transform: translate3d(0, -102%, 0); }

/* still film grain (no blending, no animation) */
.irvu-sahne-tahil {
    position: absolute; inset: 0; z-index: 4; pointer-events: none; opacity: .07;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.irvu-sahne-kose { position: absolute; z-index: 5; top: 28px; right: 32px; overflow: hidden; }
.irvu-sahne-sayac { display: inline-flex; gap: 4px; font-size: 14px; font-weight: 600; letter-spacing: .06em; font-variant-numeric: tabular-nums; opacity: .75; }
.irvu-sahne-sayac b { display: inline-block; font-weight: 800; }

/* colour pair picker: a plain typographic index along the bottom, no boxes */
.irvu-sahne-secici { position: absolute; z-index: 5; left: 36px; right: 36px; bottom: 30px; display: flex; gap: 40px; align-items: flex-end; }
.irvu-sahne-secici button {
    position: relative; display: flex; align-items: flex-start; gap: 8px; padding: 0 0 14px; border: 0; background: none; text-align: left; cursor: pointer;
    color: var(--yazi); opacity: .38; transition: opacity .45s, color .6s var(--irvu-yumusak);
}
.irvu-sahne-secici button:hover, .irvu-sahne-secici button.is-aktif { opacity: 1; }
.irvu-sahne-no { font-size: 11px; font-weight: 700; letter-spacing: .1em; font-variant-numeric: tabular-nums; line-height: 1; padding-top: 3px; }
.irvu-sahne-ad { font-size: clamp(15px, 1.45vw, 21px); font-weight: 600; letter-spacing: -0.015em; line-height: 1.1; white-space: nowrap; }
.irvu-sahne-cubuk { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: color-mix(in srgb, var(--yazi) 22%, transparent); overflow: hidden; transform: scaleX(0); transform-origin: left; transition: transform .6s var(--irvu-yumusak); }
.irvu-sahne-secici button.is-aktif .irvu-sahne-cubuk, .irvu-sahne-secici button:hover .irvu-sahne-cubuk { transform: none; }
.irvu-sahne-cubuk i { position: absolute; inset: 0; background: var(--yazi); transform: scaleX(0); transform-origin: left; }
.irvu-sahne.is-oynuyor .irvu-sahne-secici button.is-aktif .irvu-sahne-cubuk i { animation: irvuCubuk var(--sure) linear forwards; }
@keyframes irvuCubuk { to { transform: scaleX(1); } }
.irvu-sahne-not { margin: 18px 0 0; font-size: 15px; }

@media (max-width: 991px) {
    .irvu-sahne { aspect-ratio: 4 / 3; min-height: 0; --ih: .5; --oyn: .42; }
    .irvu-sahne-secici { left: 28px; right: 28px; bottom: 24px; gap: 28px; }
}
@media (max-width: 767px) {
    .irvu-sahne { aspect-ratio: 3 / 4; border-radius: 22px; --ih: .4; --oyn: .38; }
    @keyframes irvuSahneAc { to { clip-path: inset(0 0 0 0 round 22px); transform: none; } }
    .irvu-sahne-kose { top: 18px; right: 20px; }
    .irvu-sahne-secici { left: 18px; right: 18px; bottom: 18px; gap: 14px; }
    .irvu-sahne-secici button { flex: 1 1 0; min-width: 0; flex-direction: column; gap: 6px; padding-bottom: 10px; }
    .irvu-sahne-ad { font-size: 14px; white-space: normal; }
}

/* responsible person: a plain credit line under the content, on project, service and blog pages */
.irvu-kredi-ic { border-top: 1px solid var(--neutral-300, #D4D4D8); padding-top: 20px; }
.irvu-kredi-etiket { font-size: 13px; line-height: 20px; color: var(--neutral-500, #71717A); margin-bottom: 24px; }
.irvu-kredi-sira { display: grid; grid-template-columns: 64px minmax(190px, 1fr) minmax(0, 2fr) auto; align-items: center; gap: 24px 32px; }
.irvu-kredi-foto { width: 64px; height: 64px; border-radius: 14px; overflow: hidden; }
.irvu-kredi-foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.irvu-kredi-foto .irvu-bas-harf { background: var(--neutral-900, #18181B); }
.irvu-kredi-foto .irvu-bas-harf span { letter-spacing: 0; }
.irvu-kredi-ad { font-size: 19px; line-height: 26px; font-weight: 600; color: var(--black); }
.irvu-kredi-gorev { margin-top: 2px; font-size: 14px; line-height: 20px; color: var(--neutral-500, #71717A); }
.irvu-kredi-bio { margin: 0; font-size: 15px; line-height: 24px; color: var(--neutral-600, #52525B); max-width: 60ch; }
.irvu-kredi-baglantilar { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.irvu-kredi-yaz .icon { font-size: 14px; }
.irvu-kredi-yaz { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; line-height: 24px; font-weight: 600; color: var(--black); white-space: nowrap; }
.irvu-kredi-yaz .irvu-wa-ikon { width: 18px; height: 18px; color: #1DA851; }
.irvu-kredi-yaz span { background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat; transition: background-size .4s var(--irvu-yumusak); }
@media (hover: hover) { .irvu-kredi-yaz:hover span { background-size: 0 1px; background-position: 100% 100%; } }
@media (max-width: 991px) {
    .irvu-kredi-sira { grid-template-columns: 64px minmax(0, 1fr); }
    .irvu-kredi-bio, .irvu-kredi-baglantilar { grid-column: 1 / -1; }
    .irvu-kredi-baglantilar { flex-direction: row; flex-wrap: wrap; gap: 8px 24px; }
}

/* project notes: heading on the left, text on the right, separated by a thin rule */
.irvu-proje-notlar { margin-bottom: 60px; border-bottom: 1px solid var(--neutral-300, #D4D4D8); }
.irvu-proje-notlar:last-child { margin-bottom: 0; border-bottom: 0; }
.irvu-proje-not { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 16px 48px; padding: 36px 0 40px; border-top: 1px solid var(--neutral-300, #D4D4D8); }
.irvu-proje-not-baslik { font-size: 26px; line-height: 34px; font-weight: 600; letter-spacing: -.015em; }
.irvu-proje-not-metin { font-size: 16px; line-height: 26px; color: var(--neutral-600, #52525B); max-width: 62ch; }
.irvu-proje-not-metin p + p { margin-top: 14px; }
@media (max-width: 767px) {
    .irvu-proje-not { grid-template-columns: 1fr; padding: 26px 0 30px; }
    .irvu-proje-not-baslik { font-size: 22px; line-height: 29px; }
    input, textarea, select { font-size: 16px; }
}

/* mobile menu: every row follows the same rhythm, however many links the panel lists */
.offcanvas-menu.show .nav-ul-mb li:nth-child(n) .item { transition-delay: calc(.4s + var(--sira, 0) * .06s); }
.offcanvas-menu.show .canvas_foot { transition-delay: .85s; }

/* service sections added from the panel */
.irvu-hizmet-maddeler { display: grid; gap: 6px; margin-top: 14px; }
.irvu-hizmet-maddeler li { position: relative; padding-left: 16px; }
.irvu-hizmet-maddeler li::before { content: ""; position: absolute; left: 0; top: 11px; width: 5px; height: 5px; border-radius: 50%; background: var(--brand); }
.irvu-hizmet-bolum-gorsel { display: block; width: 100%; max-width: 560px; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 16px; margin-top: 20px; }

/* profile card: the member's posts sit under the main action */
.irvu-profil-yazilar { display: inline-flex !important; align-items: center; justify-content: center; gap: 6px; margin-top: 12px; }

/* Performance: the template kept a GPU layer for every animated block for the whole visit; GSAP promotes them only while they move. */
.textFadeUp3, .scroll-fadeZoom, .effectFade, .animate-box, .image-2, .overflow-hidden > * { will-change: auto; }
/* Looping animations rest while they are off screen (irvu.js toggles the class). */
.irvu-duraklat, .irvu-duraklat::before, .irvu-duraklat::after { animation-play-state: paused !important; }
@media (max-width: 991px) {
    .light-box { -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); }
}
