/* Yongrad shared styles (extracted from home.html) */
:root {
            --tp-theme-color: #0c2461;      /* yongrad navy */
            --tp-secoundery-color: #0303B8; /* yongrad blue accent */
            --tp-orange-color: #0303B8;     /* yongrad blue accent */
        }
        /* ===== Yongrad preloader (flat, logo wipe + droplet dots) ===== */
        #loading { background-color: #0303B8; }
        .ygp { display:flex; flex-direction:column; align-items:center; gap:34px; }
        .ygp-logo-wrap { position:relative; width:clamp(200px, 30vw, 340px); }
        .ygp-logo { display:block; width:100%; height:auto; }
        .ygp-logo-ghost { opacity:.16; }
        .ygp-logo-reveal {
            position:absolute; inset:0;
            clip-path:inset(0 100% 0 0);
            /* Runs once. It used to loop, against a preloader held for a flat 3000ms — so the
               1.9s wipe finished, started over, and got cut off 1.1s into the second pass.
               One pass is already a whole gesture: wipe on, hold, wipe off. `both` keeps the
               final frame so nothing snaps back while the screen fades. */
            animation:ygpWipe 1.9s cubic-bezier(.65,0,.35,1) 1 both;
        }
        @keyframes ygpWipe {
            0%   { clip-path:inset(0 100% 0 0); }
            45%  { clip-path:inset(0 0 0 0); }
            70%  { clip-path:inset(0 0 0 0); }
            100% { clip-path:inset(0 0 0 100%); }
        }
        @media (prefers-reduced-motion:reduce) {
            .ygp-logo-reveal { animation:none; clip-path:none; }
            .ygp-logo-ghost { opacity:0; }
        }
        /* ===== tp-btn colors tuned for the yongrad blue palette ===== */
        /* Filled primary button: white label on blue, white icon dot, blue arrow on the hover circle */
        .tp-btn { color: var(--tp-white-color); }
        .tp-btn .tp-btn-icon::before { background-color: var(--tp-white-color); }
        .tp-btn .tp-btn-icon svg { color: var(--tp-secoundery-color); }
        .tp-btn:hover { background-color: #02027e; }
        .tp-btn:hover, .tp-btn:hover .tp-btn-text { color: var(--tp-white-color); }
        /* Outline button (header "Contact Us"): navy on transparent, fills navy on hover */
        .tp-btn-border { color: var(--tp-theme-color); background-color: transparent; }
        .tp-btn-border .tp-btn-icon::before { background-color: var(--tp-theme-color); }
        .tp-btn-border .tp-btn-icon svg { color: var(--tp-white-color); }
        .tp-btn-border:hover { background-color: var(--tp-theme-color); color: var(--tp-white-color); }
        .tp-btn-border:hover .tp-btn-icon::before { background-color: var(--tp-white-color); }
        .tp-btn-border:hover .tp-btn-icon svg { color: var(--tp-theme-color); }
        /* header nav text a little smaller */
        .tp-header-menu > nav > ul > li > a,
        .tp-header-menu > nav > ul > li > span { font-size: 15px; }
        .tp-header-menu .sub-menu li a { font-size: 14px; }
        /* dropdowns: compact rounded panel, inset highlight on hover (no edge-to-edge fill fighting the rounded corners) */
        .tp-header-menu ul li .sub-menu { width: max-content; min-width: 210px; max-width: 320px; padding: 8px; border-radius: 14px; left: -14px; }
        .tp-header-menu ul li .sub-menu li a { padding: 10px 16px; white-space: nowrap; border-radius: 9px; transition: background .18s ease, color .18s ease; }
        .tp-header-menu .sub-menu li > a span::before { display: none; } /* remove template underline */
        .tp-header-menu .sub-menu li:hover > a { background: #0303B8; color: #fff; }
        .tp-header-menu .sub-menu li:hover > a span { color: #fff; }
        /* right-arrow slides in on hover */
        .tp-header-menu .sub-menu li > a::after {
            content: "\f061"; font-family: "Font Awesome 6 Pro"; font-weight: 900; font-size: 10px;
            position: absolute; right: 14px; top: 50%; transform: translateY(-50%) translateX(-4px);
            color: #fff; opacity: 0; transition: opacity .2s ease, transform .2s ease;
        }
        .tp-header-menu .sub-menu li:hover > a::after { opacity: 1; transform: translateY(-50%); }
        /* about section spacing: image fills the taller text column on desktop; gap when stacked */
        .tp-about-area .tp-about-thumb { height: 100%; }
        @media (max-width: 991px) {
            .tp-about-area .tp-about-thumb { height: auto; margin-bottom: 30px; }
        }
        /* ---- about slider ----
           Four photographs in the frame that used to hold one. The slider borrows the product
           slider's classes so it inherits that behaviour and its dot/arrow styling; only the
           sizing is different, because this frame is not a fixed square but has to match the
           height of the text column beside it. */
        .tp-about-thumb .yg-about__swiper,
        .tp-about-thumb .yg-about__swiper .swiper-wrapper,
        .tp-about-thumb .yg-about__swiper .swiper-slide { height: 100%; }
        .tp-about-thumb .yg-about__swiper { border-radius: 20px; }
        @media (max-width: 991px) {
            /* stacked, the thumb is height:auto, so a chain of height:100% resolves to nothing
               and the frame collapses. Below the breakpoint it carries its own box instead,
               on the 4:3 of the photographs. */
            .tp-about-thumb .yg-about__swiper { height: auto; aspect-ratio: 4 / 3; }
        }
        /* ===== Language switcher (yg-langswitch) — bordered pill matching the header buttons ===== */
        .yg-langswitch { --acc:#0303B8; --nv:#0c2461; position:relative; display:inline-flex; }
        .yg-langswitch__btn {
            display:inline-flex; align-items:center; gap:9px; padding:6px 14px 6px 7px;
            background:#fff; border:1px solid rgba(12,36,97,.16); border-radius:999px; cursor:pointer;
            transition:background .25s ease, border-color .25s ease, box-shadow .25s ease;
        }
        .yg-langswitch__btn:hover { border-color:var(--acc); background:rgba(3,3,184,.04); }
        /* open: the pill fills navy, code + arrow flip to white */
        .yg-langswitch.is-open .yg-langswitch__btn { background:var(--nv); border-color:var(--nv); }
        .yg-langswitch.is-open .yg-langswitch__code { color:#fff; }
        .yg-langswitch.is-open .yg-langswitch__arw { color:#fff; opacity:1; transform:rotate(180deg); }
        .yg-langswitch__btn:focus-visible { outline:2px solid var(--acc); outline-offset:2px; }
        .yg-langswitch__flag { width:24px; height:24px; border-radius:50%; object-fit:cover; display:block; border:none; }
        .yg-langswitch__code { font:600 12px/1 var(--title-font,"Space Grotesk",sans-serif); letter-spacing:.08em; color:var(--nv); transition:color .25s ease; }
        .yg-langswitch__arw { color:var(--nv); opacity:.55; transition:transform .3s ease, color .25s ease, opacity .25s ease; }
        .yg-langswitch__list {
            position:absolute; top:calc(100% + 12px); right:0; z-index:120;
            width:max-content; min-width:200px; margin:0; padding:8px; list-style:none;
            background:#fff; border:1px solid rgba(12,36,97,.08); border-radius:18px;
            box-shadow:0 30px 70px rgba(6,19,58,.18), 0 6px 18px rgba(6,19,58,.07);
            opacity:0; transform:translateY(-10px) scale(.95); transform-origin:top right; pointer-events:none;
            transition:opacity .28s cubic-bezier(.34,1.4,.64,1), transform .28s cubic-bezier(.34,1.4,.64,1);
        }
        /* caret pointing at the button */
        .yg-langswitch__list::before {
            content:""; position:absolute; top:-5px; right:24px; width:10px; height:10px;
            background:#fff; border-left:1px solid rgba(12,36,97,.08); border-top:1px solid rgba(12,36,97,.08);
            transform:rotate(45deg);
        }
        .yg-langswitch.is-open .yg-langswitch__list { opacity:1; transform:none; pointer-events:auto; }
        /* staggered item reveal */
        .yg-langswitch__list li { opacity:0; transform:translateY(-7px); transition:opacity .3s ease, transform .3s ease; }
        .yg-langswitch.is-open .yg-langswitch__list li { opacity:1; transform:none; }
        .yg-langswitch.is-open .yg-langswitch__list li:nth-child(1) { transition-delay:.04s; }
        .yg-langswitch.is-open .yg-langswitch__list li:nth-child(2) { transition-delay:.08s; }
        .yg-langswitch.is-open .yg-langswitch__list li:nth-child(3) { transition-delay:.12s; }
        .yg-langswitch.is-open .yg-langswitch__list li:nth-child(4) { transition-delay:.16s; }
        .yg-langswitch.is-open .yg-langswitch__list li:nth-child(5) { transition-delay:.20s; }
        .yg-langswitch.is-open .yg-langswitch__list li:nth-child(6) { transition-delay:.24s; }
        .yg-langswitch__item {
            width:100%; display:flex; align-items:center; gap:11px; padding:10px 12px;
            background:none; border:none; cursor:pointer; border-radius:12px;
            color:var(--nv); text-align:left;
            transition:background .18s ease, transform .18s ease;
        }
        .yg-langswitch__item img { width:22px; height:22px; border-radius:50%; object-fit:cover; display:block; }
        .yg-langswitch__item span { font:500 13.5px/1 var(--body-font,"Inter",sans-serif); }
        .yg-langswitch__item:hover, .yg-langswitch__item:focus-visible { background:rgba(3,3,184,.05); transform:translateX(3px); outline:none; }
        .yg-langswitch__item.is-active { background:rgba(3,3,184,.07); }
        .yg-langswitch__item.is-active span { color:var(--acc); font-weight:600; }
        /* switcher entries are anchors now (crawlable + middle-clickable), so the
           link defaults a <button> never had have to be neutralised */
        a.yg-langswitch__item, a.yg-flags__btn { text-decoration:none; color:inherit; }
        a.yg-langswitch__item:hover, a.yg-flags__btn:hover { text-decoration:none; }

        .yg-langswitch__item.is-active::after {
            content:""; margin-left:auto; width:13px; height:13px; flex-shrink:0; background:var(--acc);
            -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3 8.5l3.2 3.2L13 5'/%3E%3C/svg%3E") center/contain no-repeat;
            mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3 8.5l3.2 3.2L13 5'/%3E%3C/svg%3E") center/contain no-repeat;
        }
        @media (max-width:575px) {
            .yg-langswitch__code { display:none; }
            .yg-langswitch__btn { padding:5px 10px 5px 6px; }
            .yg-langswitch__list { right:-4px; }
            .yg-langswitch__list::before { right:16px; }
        }
        @media (prefers-reduced-motion:reduce) {
            .yg-langswitch__list, .yg-langswitch__arw, .yg-langswitch__btn, .yg-langswitch__code,
            .yg-langswitch__list li, .yg-langswitch__item { transition:none !important; }
        }
    

        .yg-old {
            --navy-900:#06133a; --navy-800:#0a1f57; --navy-700:#0c2461; --navy-600:#123a86;
            --blue:#0303B8; --blue-500:#0303B8; --blue-400:#0303B8; --blue-300:#0303B8;
            --magenta:#0303B8; --magenta-600:#02027e;
            --ink:#0c2461; --body:#51617f; --muted:#8794ac; --line:#e4eaf4; --paper:#f3f7fd; --white:#fff;
            --title-font:"Space Grotesk","Segoe UI",system-ui,sans-serif;
            --body-font:"Inter","Segoe UI",system-ui,sans-serif;
            --container:1240px; --gutter:clamp(18px,4vw,40px);
            --ease:cubic-bezier(0.22,0.61,0.36,1); --header-h:106px;
            font-family:var(--body-font); line-height:1.65;
        }
        .yg-old *, .yg-old *::before, .yg-old *::after { box-sizing:border-box; border-radius:0 !important; }
        .yg-old img { max-width:100%; display:block; }
        .yg-old a { color:inherit; text-decoration:none; }
        .yg-old ul { margin:0; padding:0; list-style:none; }
        .yg-old h1, .yg-old h2, .yg-old h3, .yg-old h4 { font-family:var(--title-font); color:var(--ink); margin:0; line-height:1.1; letter-spacing:-0.02em; font-weight:700; }
        .yg-old p { margin:0; }
        .yg-old .container { width:100%; max-width:var(--container); margin:0 auto; padding:0 var(--gutter); }
        .yg-old .eyebrow { display:inline-flex; align-items:center; gap:10px; font-family:var(--title-font); font-weight:600; font-size:13px; letter-spacing:0.18em; text-transform:uppercase; color:var(--blue); }
        .yg-old .eyebrow::before { content:""; width:26px; height:2px; background:var(--magenta); }
        /* buttons */
        .yg-old .btn { --b-sweep:var(--navy-700); --b-fgh:#fff; position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 28px; border:none; border-radius:999px !important; font-family:var(--title-font); font-weight:600; font-size:15px; letter-spacing:0.01em; white-space:nowrap; overflow:hidden; isolation:isolate; box-shadow:none; transition:color 0.15s var(--ease); cursor:pointer; }
        .yg-old .btn::before { content:""; position:absolute; top:0; bottom:0; left:-16%; width:132%; z-index:-1; background:var(--b-sweep); transform:translateX(-118%) skewX(-12deg); transition:transform 0.5s var(--ease); }
        .yg-old .btn:hover::before { transform:translateX(0) skewX(-12deg); }
        .yg-old .btn:hover { color:var(--b-fgh); transition:color 0.2s var(--ease) 0.2s; }
        .yg-old .btn i { transition:transform 0.35s var(--ease); }
        .yg-old .btn:hover i { transform:translateX(4px); }
        .yg-old .btn--magenta { background:var(--magenta); color:#fff; --b-sweep:var(--navy-900); --b-fgh:#fff; }
        .yg-old .btn--ghost { background:rgba(255,255,255,0.12); color:#fff; --b-sweep:#fff; --b-fgh:var(--navy-700); }
        /* hero */
        .yg-old.hero { position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:center; text-align:left; color:#fff; min-height:540px; padding:calc(var(--header-h) + 28px) 0 44px; background:#06133a; }
        @media (min-width:992px) { .yg-old.hero { aspect-ratio:16 / 7; min-height:460px; padding:calc(var(--header-h) + 40px) 0 0; } }
        /* hero background is a 5-image slider; the blue .hero__box sits in .hero__inner
           above it and never moves. Only .hero__track translates. */
        .yg-old .hero__slides { position:absolute; inset:0; z-index:-1; overflow:hidden; }
        .yg-old .hero__track {
            display:flex; width:100%; height:100%;
            transition:transform .9s cubic-bezier(.65,0,.35,1);
            will-change:transform;
        }
        .yg-old .hero__img { flex:0 0 100%; width:100%; height:100%; background-size:cover; background-position:center; }
        @media (prefers-reduced-motion:reduce) { .yg-old .hero__track { transition:none; } }

        /* manual controls — one frosted pill split by a hairline; each half fills with a
           blue iris that blooms from the centre while the arrow slides through. */
        .yg-old .hero__nav {
            --hn-e:cubic-bezier(.65,0,.35,1);
            --hn-h:clamp(52px,4.6vw,62px);
            display:flex; width:max-content;
            margin:clamp(22px,3vw,34px) 0 0 auto;
            /* !important beats the legacy `.yg-old * { border-radius:0 !important }` scope rule */
            border-radius:999px !important; overflow:hidden;
            border:1px solid rgba(255,255,255,.34);
            background:rgba(255,255,255,.09);
            -webkit-backdrop-filter:blur(12px) saturate(150%); backdrop-filter:blur(12px) saturate(150%);
            box-shadow:0 14px 38px rgba(6,19,58,.30);
        }
        .yg-old .hero__navbtn {
            width:calc(var(--hn-h) * 1.22); height:var(--hn-h); flex:none; padding:0;
            display:grid; place-items:center; position:relative; overflow:hidden;
            border:0; border-radius:0 !important; background:none; color:#fff; cursor:pointer;
        }
        /* hairline between the two halves */
        .yg-old .hero__navbtn + .hero__navbtn::before {
            content:""; position:absolute; left:0; top:24%; bottom:24%; width:1px; z-index:2;
            background:rgba(255,255,255,.30);
        }
        /* the iris */
        .yg-old .hero__navbtn::after {
            content:""; position:absolute; inset:0; z-index:1;
            background:var(--blue); border-radius:50% !important;
            transform:scale(0); opacity:0;
            transition:transform .5s var(--hn-e), opacity .3s var(--hn-e);
        }
        .yg-old .hero__navbtn:hover::after,
        .yg-old .hero__navbtn:focus-visible::after { transform:scale(1.75); opacity:1; }
        .yg-old .hero__navbtn:focus-visible { outline:2px solid #fff; outline-offset:-4px; }
        .yg-old .hero__navicon { position:relative; z-index:3; display:grid; place-items:center; width:16px; height:16px; }
        .yg-old .hero__navicon svg { grid-area:1/1; transition:transform .35s var(--hn-e); }
        /* single arrow per half; it nudges toward its own direction on hover */
        .yg-old .hero__navbtn--next:hover .hero__navicon svg { transform:translateX(3px); }
        .yg-old .hero__navbtn--prev:hover .hero__navicon svg { transform:translateX(-3px); }
        .yg-old .hero__navbtn:active .hero__navicon { transform:scale(.88); transition:transform .12s var(--hn-e); }
        @media (prefers-reduced-motion:reduce) {
            .yg-old .hero__navbtn::after, .yg-old .hero__navicon svg, .yg-old .hero__navicon { transition:none; }
        }
        @media (max-width:575px) { .yg-old .hero__nav { margin-right:auto; margin-left:0; } }
        .yg-old .hero__inner { width:100%; position:relative; z-index:1; }
        .yg-old .hero__box { max-width:430px; padding:clamp(20px,2.2vw,32px); background:var(--blue); color:#fff; box-shadow:0 26px 60px rgba(6,19,58,0.4); }
        .yg-old .hero__box .eyebrow { color:#fff; font-size:11.5px; }
        .yg-old .hero__box .eyebrow::before { background:#fff; width:20px; }
        .yg-old .hero__title { color:#fff; font-size:clamp(1.3rem,1rem + 1vw,1.85rem); line-height:1.12; letter-spacing:-0.015em; margin:11px 0 0; }
        .yg-old .hero__title .hl { color:#fff; -webkit-text-fill-color:#fff; background:none; }
        .yg-old .hero__text { color:rgba(255,255,255,0.9); font-size:clamp(0.88rem,0.86rem + 0.12vw,0.96rem); line-height:1.62; margin:12px 0 0; max-width:none; }
        .yg-old .hero__cta { display:flex; flex-wrap:wrap; gap:11px; margin-top:20px; }
        .yg-old .hero__cta .btn { padding:11px 20px; font-size:13.5px; }
        /* hero + footer use the site's tp-btn; restore pill radius (yg-old squares everything) + colors for the blue background */
        .yg-old .tp-btn { border-radius:52px !important; }
        .yg-old .tp-btn-icon, .yg-old .tp-btn-icon::before { border-radius:50% !important; }
        /* primary → white button, blue label (pops on the blue background) */
        .yg-old .tp-btn, .yg-old .tp-btn .tp-btn-text { background:#fff; color:var(--blue); }
        .yg-old .tp-btn .tp-btn-text { background:none; }
        .yg-old .tp-btn .tp-btn-icon::before { background:var(--blue); }
        .yg-old .tp-btn .tp-btn-icon svg { color:#fff; }
        .yg-old .tp-btn:hover, .yg-old .tp-btn:hover .tp-btn-text { background:#fff; color:var(--blue); }
        .yg-old .tp-btn:hover .tp-btn-text { background:none; }
        /* outline → white border + white label, fills white on hover */
        .yg-old .tp-btn-border, .yg-old .tp-btn-border .tp-btn-text { background:transparent; color:#fff; }
        .yg-old .tp-btn-border { border:1.5px solid #fff; }
        .yg-old .tp-btn-border .tp-btn-icon::before { background:#fff; }
        .yg-old .tp-btn-border .tp-btn-icon svg { color:var(--blue); }
        .yg-old .tp-btn-border:hover, .yg-old .tp-btn-border:hover .tp-btn-text { background:#fff; color:var(--blue); }
        .yg-old .tp-btn-border:hover { border-color:#fff; }
        .yg-old .tp-btn-border:hover .tp-btn-text { background:none; }
        .yg-old .tp-btn-border:hover .tp-btn-icon::before { background:var(--blue); }
        .yg-old .tp-btn-border:hover .tp-btn-icon svg { color:#fff; }
        .yg-old .hero__box .btn--magenta { background:#fff; color:var(--blue); --b-sweep:var(--navy-900); --b-fgh:#fff; }
        @media (max-width:600px) { .yg-old .hero__cta { flex-direction:column; align-items:stretch; } .yg-old .hero__cta .btn { width:100%; } }
        /* scroll reveal */
        .yg-old .reveal, .yg-foot .reveal { opacity:0; transform:translateY(40px); transition:opacity 0.8s var(--ease), transform 0.8s var(--ease); will-change:opacity, transform; }
        .yg-old .reveal.is-in, .yg-foot .reveal.is-in { opacity:1; transform:none; }
        @media (prefers-reduced-motion:reduce) { .yg-old .reveal, .yg-foot .reveal { opacity:1 !important; transform:none !important; } }

        /* ===== Fix: white icons/text on theme-blue circle elements =====
           The blue re-skin left the inner icon/text of these elements dark
           (some used the same theme variable as their own background). */
        /* magic cursor ball (view/drag labels + arrows) */
        #ball .ball-view,
        #ball .ball-drag,
        #ball .ball-drag::before,
        #ball .ball-drag::after { color:#fff; }
        /* circle arrow shown on blog/project card hover */
        .tpportfolio__button a { color:#fff; }
        /* back-to-top button */
        .back-to-top-btn { color:#fff; }
        /* swiper nav buttons get a blue bg on hover */
        .tp-btn-swiper:hover { color:#fff; }
        .tp-btn-swiper:hover svg path { stroke:currentcolor; }
        /* header hamburger: blue circle, bars were hardcoded dark navy */
        .header-sidebar-btn span { background:#fff; }
        /* homepage about section: theme's 200px bottom padding is excessive */
        @media (min-width:992px) {
            .tp-about-area.tp-about-spacing { padding-bottom:80px; }
        }

        /* ===== yg-mmenu — full-screen mobile menu ===== */
        .yg-mmenu {
            position:fixed; inset:0; z-index:9999; background:#0303B8; color:#fff;
            display:flex; flex-direction:column;
            clip-path:circle(0px at calc(100% - 42px) 42px);
            visibility:hidden; pointer-events:none;
            transition:clip-path 0.65s cubic-bezier(0.65, 0, 0.35, 1), visibility 0s linear 0.65s;
        }
        .yg-mmenu.is-open {
            clip-path:circle(150% at calc(100% - 42px) 42px);
            visibility:visible; pointer-events:auto;
            transition:clip-path 0.65s cubic-bezier(0.65, 0, 0.35, 1);
        }
        html.yg-mmenu-lock, html.yg-mmenu-lock body { overflow:hidden !important; }
        /* faded watermark */
        .yg-mmenu::after {
            content:""; position:absolute; right:-40px; bottom:-30px; width:min(320px, 70vw); height:180px;
            background:url("../img/logo-beyaz.png") right bottom / contain no-repeat;
            opacity:0.08; pointer-events:none;
        }
        .yg-mmenu__top {
            flex:none; display:flex; align-items:center; justify-content:space-between;
            padding:18px clamp(18px, 5vw, 34px);
        }
        .yg-mmenu__top img { height:52px; width:auto; }
        .yg-mmenu__close {
            width:46px; height:46px; border-radius:50%; border:1px solid rgba(255,255,255,0.35);
            background:none; color:#fff; display:grid; place-items:center; cursor:pointer;
            transition:background 0.25s var(--ease), transform 0.25s var(--ease);
        }
        .yg-mmenu__close:hover { background:#fff; color:#0303B8; transform:rotate(90deg); }
        .yg-mmenu__scroll { flex:1 1 auto; overflow-y:auto; padding:8px clamp(18px, 5vw, 34px) 26px; -webkit-overflow-scrolling:touch; }
        .yg-mmenu__nav ul { list-style:none; margin:0; padding:0; }
        .yg-mmenu__item { border-bottom:1px solid rgba(255,255,255,0.14); }
        /* staggered rise-in */
        .yg-mmenu__item, .yg-mmenu__foot {
            opacity:0; transform:translateY(26px);
            transition:opacity 0.45s var(--ease), transform 0.45s var(--ease);
        }
        .yg-mmenu.is-open .yg-mmenu__item, .yg-mmenu.is-open .yg-mmenu__foot { opacity:1; transform:none; }
        .yg-mmenu.is-open .yg-mmenu__item:nth-child(1) { transition-delay:0.18s; }
        .yg-mmenu.is-open .yg-mmenu__item:nth-child(2) { transition-delay:0.24s; }
        .yg-mmenu.is-open .yg-mmenu__item:nth-child(3) { transition-delay:0.30s; }
        .yg-mmenu.is-open .yg-mmenu__item:nth-child(4) { transition-delay:0.36s; }
        .yg-mmenu.is-open .yg-mmenu__item:nth-child(5) { transition-delay:0.42s; }
        .yg-mmenu.is-open .yg-mmenu__item:nth-child(6) { transition-delay:0.48s; }
        .yg-mmenu.is-open .yg-mmenu__foot { transition-delay:0.56s; }
        .yg-mmenu__row { display:flex; align-items:center; gap:14px; }
        .yg-mmenu__link {
            flex:1 1 auto; display:flex; align-items:baseline; gap:12px;
            padding:14px 0; color:#fff; text-decoration:none;
            font-family:var(--title-font); font-weight:600; letter-spacing:0;
            font-size:clamp(1.05rem, 4vw, 1.25rem); line-height:1.2;
        }
        .yg-mmenu__link::before {
            content:attr(data-no); flex:none;
            font-size:11px; font-weight:600; letter-spacing:0.18em; color:rgba(255,255,255,0.5);
        }
        .yg-mmenu__link:active, .yg-mmenu__link:hover { color:#fff; }
        .yg-mmenu__tgl {
            flex:none; width:36px; height:36px; border-radius:50%;
            border:1px solid rgba(255,255,255,0.3); background:none; color:#fff;
            display:grid; place-items:center; cursor:pointer;
            transition:transform 0.3s var(--ease), background 0.25s var(--ease), color 0.25s var(--ease);
        }
        .yg-mmenu__item.is-exp .yg-mmenu__tgl { background:#fff; color:#0303B8; transform:rotate(45deg); }
        .yg-mmenu__sub { list-style:none; margin:0; padding:0; max-height:0; overflow:hidden; transition:max-height 0.4s var(--ease); }
        .yg-mmenu__sub li a {
            display:block; padding:9px 0 9px 34px; color:rgba(255,255,255,0.75); text-decoration:none;
            font-family:var(--body-font, "Inter", sans-serif); font-size:15px; line-height:1.4;
            border-left:1px solid rgba(255,255,255,0.22); margin-left:6px;
            transition:color 0.2s var(--ease), border-color 0.2s var(--ease);
        }
        .yg-mmenu__sub li a:hover, .yg-mmenu__sub li a:active { color:#fff; border-color:#fff; }
        .yg-mmenu__sub li:last-child a { padding-bottom:18px; }
        .yg-mmenu__foot { margin-top:26px; }
        .yg-mmenu__cta {
            display:inline-flex; align-items:center; gap:10px;
            background:#fff; color:#0303B8 !important; text-decoration:none;
            font-family:var(--title-font); font-weight:600; font-size:15px;
            padding:14px 26px; border-radius:999px; margin-bottom:22px;
            transition:transform 0.25s var(--ease);
        }
        .yg-mmenu__cta:active { transform:scale(0.97); }
        .yg-mmenu__contact { display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
        .yg-mmenu__contact a {
            color:rgba(255,255,255,0.8); text-decoration:none;
            font-family:var(--body-font, "Inter", sans-serif); font-size:14.5px;
        }
        .yg-mmenu__contact a:hover { color:#fff; }
        .yg-mmenu__social { display:flex; gap:9px; }
        .yg-mmenu__social a {
            width:42px; height:42px; border-radius:50%; display:grid; place-items:center;
            background:rgba(255,255,255,0.1); color:#fff; font-size:15px; text-decoration:none;
            transition:background 0.25s var(--ease), color 0.25s var(--ease), transform 0.25s var(--ease);
        }
        .yg-mmenu__social a:hover { background:#fff; color:#0303B8; transform:translateY(-3px); }
        @media (prefers-reduced-motion:reduce) {
            .yg-mmenu, .yg-mmenu.is-open, .yg-mmenu__item, .yg-mmenu__foot, .yg-mmenu__tgl, .yg-mmenu__sub { transition:none !important; }
        }

        /* ===== yg-app — uygulamalar: görsel + 2x2 kart tek panelde ===== */
        .yg-app__panel {
            display:grid; grid-template-columns:.82fr 1.18fr; align-items:stretch;
            background:#f3f7fd; border:1px solid #e4eaf4; border-radius:26px; overflow:hidden;
        }
        .yg-app__panel > * { min-width:0; }
        /* image fills its half edge-to-edge */
        .yg-app__media { position:relative; margin:0; overflow:hidden; min-height:100%; }
        .yg-app__media img {
            position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
            transition:transform 1.1s cubic-bezier(.22,.61,.36,1);
        }
        .yg-app__panel:hover .yg-app__media img { transform:scale(1.04); }
        .yg-app__body { padding:clamp(28px,3.2vw,44px); }
        .yg-app__lede { font-size:14.5px; line-height:1.7; color:#51617f; margin:14px 0 0; max-width:48ch; }
        /* 2x2 white mini-cards */
        .yg-app__grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:24px; }
        .yg-app__item {
            background:#fff; border:1px solid #e4eaf4; border-radius:16px; padding:18px 18px 16px;
            transition:border-color .28s cubic-bezier(.22,.61,.36,1), transform .28s cubic-bezier(.22,.61,.36,1);
        }
        .yg-app__item:hover { border-color:rgba(3,3,184,.35); transform:translateY(-3px); }
        .yg-app__no {
            display:inline-grid; place-items:center; width:26px; height:26px; border-radius:8px;
            background:rgba(3,3,184,.08); color:#0303B8; margin-bottom:11px;
            font:700 11px/1 var(--title-font,"Space Grotesk",sans-serif); letter-spacing:.04em;
            transition:background .28s ease, color .28s ease;
        }
        .yg-app__item:hover .yg-app__no { background:#0303B8; color:#fff; }
        .yg-app__item h3 { margin:0 0 6px; font:700 15px/1.35 var(--title-font,"Space Grotesk",sans-serif); color:#0c2461; }
        .yg-app__item p { margin:0; font-size:13px; line-height:1.6; color:#51617f; }
        @media (max-width:991px) {
            .yg-app__panel { grid-template-columns:1fr; }
            .yg-app__media { min-height:0; }
            .yg-app__media img { position:static; aspect-ratio:16/9; }
        }
        @media (max-width:575px) { .yg-app__grid { grid-template-columns:1fr; } }
        @media (prefers-reduced-motion:reduce) {
            .yg-app__media img, .yg-app__item, .yg-app__no { transition:none; }
        }
        /* ===== yg-proc — süreç + kalite eşli kartlar, altında teknikler (hizmet sayfaları) ===== */
        .yg-proc__duo { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:stretch; }
        .yg-proc__duo > * { min-width:0; }
        .yg-proc__card {
            position:relative; overflow:hidden; border-radius:24px;
            padding:clamp(30px,3.4vw,44px); display:flex; flex-direction:column;
        }
        .yg-proc__card--process { background:#0303B8; color:#fff; }
        .yg-proc__card--quality { background:#f3f7fd; color:#51617f; border:1px solid #e4eaf4; }
        /* full-width third card, sits below the pair inside the same duo grid */
        .yg-proc__card--speed { grid-column:1 / -1; background:#fff; color:#51617f; border:1px solid #e4eaf4; }
        .yg-proc__card--speed .yg-proc__ic { background:rgba(3,3,184,.08); color:#0303B8; }
        .yg-proc__card--speed h3 { color:#0c2461; }
        .yg-proc__card--speed .yg-proc__intro { color:#51617f; max-width:78ch; }
        .yg-proc__head { display:flex; align-items:center; gap:14px; margin-bottom:14px; }
        .yg-proc__ic { flex:none; width:48px; height:48px; border-radius:14px; display:grid; place-items:center; }
        .yg-proc__card--process .yg-proc__ic { background:rgba(255,255,255,.15); color:#fff; }
        .yg-proc__card--quality .yg-proc__ic { background:rgba(3,3,184,.08); color:#0303B8; }
        .yg-proc__card h3 {
            font:800 clamp(1.35rem,1rem + .9vw,1.7rem)/1.2 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:-.01em; margin:0;
        }
        .yg-proc__card--process h3 { color:#fff; }
        .yg-proc__card--quality h3 { color:#0c2461; }
        .yg-proc__intro { font-size:15px; line-height:1.75; margin:0 0 6px; }
        .yg-proc__card--process .yg-proc__intro { color:rgba(255,255,255,.85); }
        .yg-proc__card--quality .yg-proc__intro { color:#51617f; }

        /* SÜREÇ — ordered sequence rendered as a vertical timeline */
        .yg-proc__steps { list-style:none; margin:24px 0 0; padding:0; counter-reset:ygproc; position:relative; }
        .yg-proc__steps li { position:relative; counter-increment:ygproc; padding:0 0 22px 46px; }
        .yg-proc__steps li:last-child { padding-bottom:0; }
        /* numbered node */
        .yg-proc__steps li::before {
            content:counter(ygproc,decimal-leading-zero);
            position:absolute; left:0; top:0; width:30px; height:30px; border-radius:50%;
            display:grid; place-items:center;
            font:700 11px/1 var(--title-font,"Space Grotesk",sans-serif); letter-spacing:.04em;
            background:#fff; color:#0303B8;
        }
        /* connector line between nodes */
        .yg-proc__steps li::after {
            content:""; position:absolute; left:14.5px; top:34px; bottom:4px; width:1px;
            background:rgba(255,255,255,.3);
        }
        .yg-proc__steps li:last-child::after { display:none; }
        .yg-proc__steps strong {
            display:block; margin:5px 0 5px;
            font:700 15.5px/1.3 var(--title-font,"Space Grotesk",sans-serif); color:#fff;
        }
        .yg-proc__steps span { display:block; font-size:14px; line-height:1.65; color:rgba(255,255,255,.82); }

        /* KALİTE — criteria as bordered rows */
        .yg-proc__crit { list-style:none; margin:24px 0 0; padding:0; display:flex; flex-direction:column; gap:12px; }
        .yg-proc__crit li {
            background:#fff; border:1px solid #e4eaf4; border-radius:14px; padding:16px 18px;
            transition:border-color .25s cubic-bezier(.22,.61,.36,1), transform .25s cubic-bezier(.22,.61,.36,1);
        }
        .yg-proc__crit li:hover { border-color:rgba(3,3,184,.35); transform:translateX(4px); }
        .yg-proc__crit strong {
            display:flex; align-items:center; gap:9px; margin-bottom:6px;
            font:700 15px/1.3 var(--title-font,"Space Grotesk",sans-serif); color:#0c2461;
        }
        .yg-proc__crit strong::before { content:""; flex:none; width:7px; height:7px; border-radius:2px; background:#0303B8; transform:rotate(45deg); }
        .yg-proc__crit span { display:block; font-size:14px; line-height:1.65; color:#51617f; }

        /* TEKNİKLER — below the pair */
        .yg-proc__techhead { margin:clamp(38px,4vw,54px) 0 22px; }
        .yg-proc__techhead h3 {
            font:700 clamp(1.2rem,1rem + .6vw,1.45rem)/1.3 var(--title-font,"Space Grotesk",sans-serif);
            color:#0c2461; margin:0;
        }
        .yg-proc__tech { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; }
        .yg-proc__techcard {
            position:relative; overflow:hidden; background:#fff; border:1px solid #e4eaf4;
            border-radius:18px; padding:26px 24px;
            transition:border-color .3s cubic-bezier(.22,.61,.36,1), transform .3s cubic-bezier(.22,.61,.36,1);
        }
        .yg-proc__techcard::before {
            content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:#0303B8;
            transform:scaleY(0); transform-origin:top; transition:transform .4s cubic-bezier(.22,.61,.36,1);
        }
        .yg-proc__techcard:hover { border-color:rgba(3,3,184,.35); transform:translateY(-4px); }
        .yg-proc__techcard:hover::before { transform:scaleY(1); }
        .yg-proc__techno { font:700 12px/1 var(--title-font,"Space Grotesk",sans-serif); letter-spacing:.18em; color:#0303B8; }
        .yg-proc__techcard h3 { font:700 16.5px/1.3 var(--title-font,"Space Grotesk",sans-serif); color:#0c2461; margin:10px 0 8px; }
        .yg-proc__techcard p { font-size:14px; line-height:1.65; color:#51617f; margin:0; }
        @media (max-width:991px) { .yg-proc__duo { grid-template-columns:1fr; } }
        @media (prefers-reduced-motion:reduce) {
            .yg-proc__crit li, .yg-proc__techcard, .yg-proc__techcard::before { transition:none; }
        }
        /* ===== yg-vm — paired cards + numbered grid (shared: hakkımızda, hizmet sayfaları) ===== */
        .yg-vm { padding: 60px 0 0; }
        .yg-vm__duo { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
        .yg-vm__duo > * { min-width: 0; }
        .yg-vm__card { border-radius: 24px; padding: clamp(30px, 3.6vw, 46px); }
        .yg-vm__card--vision { background: #0303B8; color: #fff; }
        .yg-vm__card--mission { background: #f3f7fd; color: #51617f; }
        .yg-vm__ic { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; margin-bottom: 22px; }
        .yg-vm__card--vision .yg-vm__ic { background: rgba(255, 255, 255, 0.14); color: #fff; }
        .yg-vm__card--mission .yg-vm__ic { background: rgba(3, 3, 184, 0.08); color: #0303B8; }
        .yg-vm__card h3 {
            font-family: "Space Grotesk", "Segoe UI", system-ui, sans-serif; font-weight: 800; letter-spacing: -0.01em;
            font-size: clamp(1.4rem, 1rem + 1vw, 1.8rem); margin: 0 0 14px;
        }
        .yg-vm__card--vision h3 { color: #fff; }
        .yg-vm__card--mission h3 { color: #0c2461; }
        .yg-vm__card p { margin: 0; line-height: 1.75; font-size: 15.5px; }
        .yg-vm__card--vision p { color: rgba(255, 255, 255, 0.85); }
        /* definition list inside a card (e.g. process components / quality factors) */
        .yg-vm__list { list-style: none; margin: 22px 0 0; padding: 0; display: flex; flex-direction: column; }
        .yg-vm__list li { padding: 14px 0; }
        .yg-vm__list li + li { border-top: 1px solid rgba(12, 36, 97, 0.10); }
        .yg-vm__card--vision .yg-vm__list li + li { border-top-color: rgba(255, 255, 255, 0.18); }
        .yg-vm__list strong {
            display: flex; align-items: center; gap: 9px; margin-bottom: 5px;
            font-family: "Space Grotesk", "Segoe UI", system-ui, sans-serif; font-weight: 700; font-size: 15.5px; color: #0c2461;
        }
        .yg-vm__list strong::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: #0303B8; }
        .yg-vm__card--vision .yg-vm__list strong { color: #fff; }
        .yg-vm__card--vision .yg-vm__list strong::before { background: #fff; }
        .yg-vm__list span { display: block; font-size: 14px; line-height: 1.65; color: #51617f; }
        .yg-vm__card--vision .yg-vm__list span { color: rgba(255, 255, 255, 0.82); }
        .yg-vm__values-title {
            font-family: "Space Grotesk", "Segoe UI", system-ui, sans-serif; font-weight: 700; color: #0c2461;
            font-size: clamp(1.2rem, 1rem + 0.6vw, 1.45rem); margin: 46px 0 22px;
        }
        .yg-vm__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); gap: 18px; }
        .yg-vm__val {
            background: #fff; border: 1px solid #e4eaf4; border-radius: 18px; padding: 24px;
            transition: transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1), border-color 0.3s, box-shadow 0.3s;
        }
        .yg-vm__val:hover { transform: translateY(-4px); border-color: rgba(3, 3, 184, 0.35); box-shadow: 0 16px 34px rgba(12, 36, 97, 0.08); }
        .yg-vm__no { font-family: "Space Grotesk", "Segoe UI", system-ui, sans-serif; font-weight: 700; font-size: 12px; letter-spacing: 0.18em; color: #0303B8; }
        .yg-vm__val h4 { font-family: "Space Grotesk", "Segoe UI", system-ui, sans-serif; font-weight: 700; color: #0c2461; font-size: 16.5px; margin: 10px 0 8px; }
        .yg-vm__val p { margin: 0; font-size: 14px; line-height: 1.65; color: #51617f; }
        @media (max-width: 991px) { .yg-vm { padding-top: 45px; } .yg-vm__duo { grid-template-columns: 1fr; } }
        @media (prefers-reduced-motion: reduce) { .yg-vm__val { transition: none; } }
        /* =====================================================================
           yg-srv — service page sections (elektrokaplama)
           ===================================================================== */
        .yg-srv { --s-blue:#0303B8; --s-navy:#0c2461; --s-line:#e4eaf4; --s-body:#51617f;
                  --s-title:"Space Grotesk","Segoe UI",system-ui,sans-serif;
                  --s-ease:cubic-bezier(.22,.61,.36,1); }
        .yg-srv__sec { padding:clamp(56px,7vw,96px) 0; }
        .yg-srv__sec--tint { background:#f3f7fd; }
        .yg-srv__lede { font-size:clamp(1rem,.97rem + .3vw,1.16rem); line-height:1.8; color:var(--s-body); max-width:70ch; margin:0; }
        .yg-srv__p { font-size:15.5px; line-height:1.85; color:var(--s-body); margin:0 0 1.1em; }
        .yg-srv__p:last-child { margin-bottom:0; }

        /* "Hizmetler" is a dropdown parent that navigates nowhere (there is no services
           index page), so it is a <span> rather than an <a>. The theme only styles `li a`,
           which left it unstyled — mirror the anchor rules, hover underline included. */
        .tp-header-menu ul li > span {
            display: inline-block;
            font-size: 17px;   /* theme baseline; the top-level override above trims it to 15px */
            font-weight: 600;
            color: var(--tp-theme-color);
            padding: 17.5px 0;
            line-height: 1;
            position: relative;
            transform: translateY(-2px);
            cursor: pointer;
        }
        .tp-header-menu ul li > span::before {
            position: absolute;
            content: "";
            background-color: var(--tp-secoundery-color);
            width: 0;
            height: 1.5px;
            border-radius: 10px;
            bottom: 12px;
            left: auto;
            right: 0;
            transition: 0.3s;
        }
        .tp-header-menu ul li:hover > span::before { width: 100%; left: 0; right: auto; }
        /* sub-menu labels are also wrapped in <span>; keep them on the theme's own styling */
        .tp-header-menu ul li .sub-menu li > a > span {
            display: inline; font-size: inherit; font-weight: inherit; color: inherit;
            padding: 0; line-height: inherit; transform: none;
        }

        /* ===== product-page sidebar: narrower column, smaller type =====
           scoped to .tp-services-details-area so blog/other sidebars keep their sizes */
        @media (min-width:992px) {
            .tp-services-details-area .col-lg-4 { flex:0 0 auto; width:28%; }
            .tp-services-details-area .col-lg-8 { flex:0 0 auto; width:72%; }
            .tp-services-details-area .tp-services-details-wrap.pl-50 { padding-left:40px; }
        }
        .tp-services-details-area .tp-sidebar-widget.tp-sidebar-category-bg { padding:26px 24px; }
        .tp-services-details-area .tp-sidebar-title { font-size:19px; line-height:1.3; }
        .tp-services-details-area .tp-sidebar-category ul li a {
            font-size:14.5px; line-height:1.45; padding:12px 16px;
        }
        .tp-services-details-area .tp-sidebar-cta { padding:16px; padding-top:34px; }
        .tp-services-details-area .tp-sidebar-cta-title { font-size:20px; line-height:1.3; }
        .tp-services-details-area .tp-sidebar-cta-title a { font-size:18px; }
        .tp-services-details-area .tp-sidebar-cta-logo img { max-width:120px; }
        .tp-services-details-area .tp-sidebar-cta-img { padding-top:22px; }
        .tp-services-details-area .tp-sidebar-cta-link a { font-size:14.5px; padding:14px; }

        /* about-area used with a single image instead of the slider — the swiper used to
           supply the sizing, so restate it here */
        /* about-area used as a page intro: the section below brings its own top padding,
           so drop the trailing 145px rather than stacking the two */
        .yg-about--flush { padding-bottom:0 !important; }

        /* The intro no longer carries an image, so it reads as a centred lead-in rather than a
           two-column block: less air above it, centred copy, and type a step down so the
           section supports the H1 above instead of competing with it. */
        .yg-about--flush { padding-top:clamp(72px,9vw,120px) !important; }
        .yg-about--flush .tp-about-heading { padding-bottom:clamp(34px,4.1vw,54px) !important; }
        .yg-about--flush .tp-section-title { font-size:clamp(27px,2.8vw,36px); line-height:1.18; }
        .yg-about--flush .tp-about-deg p { font-size:clamp(15px,1.28vw,17px); line-height:1.72; text-align:center; }
        .yg-about--flush .tp-about-deg p:last-child { margin-bottom:0; }

        /* Half the top padding on the product detail section. main.css steps .tp-career-spacing
           down at three breakpoints (145 / 120 / 100 / 70), so each step is halved rather than
           setting one flat value — otherwise the phone layout would gain space instead of
           losing it. Scoped with the two classes together so other .tp-career-spacing sections
           keep the template's own rhythm. */
        .tp-services-details-area.tp-career-spacing { padding-top:72.5px; }
        @media (max-width:1199.98px) { .tp-services-details-area.tp-career-spacing { padding-top:60px; } }
        @media (max-width:991.98px)  { .tp-services-details-area.tp-career-spacing { padding-top:50px; } }
        @media (max-width:767.98px)  { .tp-services-details-area.tp-career-spacing { padding-top:35px; } }

        /* Intro heading on the product pages. The template ships .tp-section-title at 40px/600
           for full-width section headings; here it sits in a 755px column beside the nav, so
           it is stepped down and weighted up to read as a lead-in rather than a page title. */
        .tp-services-details-top .tp-section-title.mb-30 {
            font-size:clamp(21px,2.05vw,27px); font-weight:800; line-height:1.24;
            letter-spacing:-.015em;
        }

        /* Full-width run below the nav+intro row. The sidebar column above it carries the
           template's pl-50 indent; this one must not, or the sections would sit inset from
           the container for no reason. */
        /* flow-root keeps the first section's top margin INSIDE this wrapper. Without it that
           margin collapses out through the column and the row, and the space above the first
           rule only survives because nothing else sits above it — one added element and it
           would vanish. */
        .tp-services-details-wrap.yg-wide { padding-left:0; display:flow-root; }
        .tp-services-details-wrap.yg-wide > .tp-services-details-support-main:first-child { padding-top:0; }

        /* ===== yg-prod — ürün sayfasındaki malzeme bölümleri =====
           Redesign. What the previous version got wrong: four identical stacked blocks with
           no rhythm, bordered fact-cards sitting inside an already-boxed column, and a passive
           image that left dead space beside tall text.

           Now: a full-width header band carrying an oversized ghost index and the grade code,
           then a two-column body whose image STICKS beside the copy, and specs as a plain
           definition list — labels, not cards. Even-numbered grades mirror the columns, so the
           four sections alternate instead of repeating. */
        .yg-prod {
            --p-blue:#0303B8; --p-navy:#0c2461; --p-ink:#51617f; --p-line:#e4eaf4;
            --p-e:cubic-bezier(.22,.61,.36,1);
            display:grid;
            grid-template-columns:minmax(0,34%) minmax(0,1fr);
            column-gap:clamp(26px,3.2vw,52px);
            /* The rule sits BETWEEN sections, not on top of one: equal margin above it and
               padding below, so it floats in the middle of the gap instead of reading as the
               next section's lid. */
            margin-top:clamp(40px,4.6vw,66px);
            padding:clamp(40px,4.6vw,66px) 0 0;
            border-top:1px solid var(--p-line);
        }
        /* the first grade carries the rule too, so the run opens the same way it continues */
        .yg-prod:first-child { margin-top:clamp(28px,3.2vw,44px); }

        /* ---- header band ----
           The index is a solid blue disc — the only filled block of colour in the section, so
           it reads as the marker for "grade 1 of 4". aspect-ratio rather than a matching
           width/height pair keeps it a true circle as the clamp scales it. */
        .yg-prod__head {
            grid-column:1 / -1; position:relative;
            display:flex; align-items:center; gap:clamp(14px,1.5vw,20px);
            margin-bottom:clamp(20px,2.2vw,28px);
        }
        .yg-prod__index {
            flex:0 0 auto;
            display:grid; place-items:center;
            width:clamp(44px,3.9vw,54px); aspect-ratio:1; height:auto;
            border-radius:50%; background:var(--p-blue); color:#fff;
            font:800 clamp(15px,1.35vw,19px)/1 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:.02em; user-select:none;
        }
        .yg-prod__title {
            margin:0; min-width:0; flex:0 1 auto;
            font:800 clamp(23px,2.3vw,32px)/1.12 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:-.02em; color:var(--p-navy);
        }
        /* full name drops to its own line, lighter — the grade code is what people scan for */
        .yg-prod__sub {
            display:block; margin-top:6px;
            font:500 clamp(14px,1.28vw,17px)/1.4 "Inter",sans-serif;
            letter-spacing:0; color:var(--p-ink);
        }

        /* ---- media: sticky, so the photo stays with its text through a tall section ---- */
        .yg-prod__media { grid-column:1; margin:0; position:sticky; top:96px; }
        /* Square, not the previous 4:5 portrait. At 379px wide that made the photo 474px tall
           against 420–444px of copy, so it overhung the column and left dead space under the
           FAQ. A square lands just under the shortest copy block, which also gives the sticky
           image something to travel through — and it stays the safer bet across the other
           sub-pages, where copy length varies far more than the image ever will. */
        .yg-prod__media img {
            width:100%; height:auto; display:block;
            border-radius:18px; aspect-ratio:1/1; object-fit:cover;
        }
        /* ---- two-photo slider ----
           The radius lives on the frame and the images inside are square-cornered, so the
           crossfade cannot show a corner seam where two rounded rectangles overlap. */
        .yg-prod__swiper { border-radius:18px; overflow:hidden; position:relative; }
        .yg-prod__swiper .yg-prod__media img,
        .yg-prod__swiper img { border-radius:0; }
        /* pagination: circles. The active one grows rather than changing shape, so the row keeps
           its rhythm — a dot that widened into a bar shifted its neighbours sideways. */
        .yg-prod__swpag {
            position:absolute; left:0; right:0; bottom:14px; z-index:3;
            display:flex; justify-content:center; align-items:center; gap:9px;
            pointer-events:none;
        }
        .yg-prod__swdot {
            pointer-events:auto; cursor:pointer;
            width:7px; height:7px; border-radius:50%; flex:0 0 auto;
            background:rgba(255,255,255,.5);
            box-shadow:0 1px 3px rgba(6,19,58,.3);
            transition:background .3s var(--p-e), transform .3s var(--p-e);
        }
        .yg-prod__swdot:hover { background:rgba(255,255,255,.85); }
        .yg-prod__swdot.is-active { background:#fff; transform:scale(1.45); }

        /* ---- arrows ----
           Injected by yongrad.js, so no product section carries navigation markup. They rest at
           86% and settle to full size on hover of the frame; on touch, where there is no hover
           to reveal them, they are simply always there. */
        .yg-prod__swnav {
            position:absolute; top:50%; margin-top:-18px; z-index:3;
            display:grid; place-items:center;
            width:36px; height:36px; padding:0;
            border:0; border-radius:50%;
            color:var(--p-navy); background:rgba(255,255,255,.88);
            -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
            box-shadow:0 4px 14px rgba(6,19,58,.18);
            cursor:pointer; opacity:0; transform:scale(.86);
            transition:opacity .28s var(--p-e), transform .28s var(--p-e), background .2s var(--p-e);
        }
        .yg-prod__swnav--prev { left:12px; }
        .yg-prod__swnav--next { right:12px; }
        .yg-prod__swnav svg { width:12px; height:12px; display:block; }
        .yg-prod__swiper:hover .yg-prod__swnav,
        .yg-prod__swnav:focus-visible { opacity:1; transform:scale(1); }
        .yg-prod__swnav:hover { background:#fff; }
        .yg-prod__swnav:focus-visible { outline:2px solid #fff; outline-offset:2px; }
        /* loop:true means an end is never reached, but guard the class anyway */
        .yg-prod__swnav.swiper-button-disabled { opacity:0; pointer-events:none; }
        /* On touch there is no hover to reveal them, so they rest visible — and at 36px they sat
           under the 44px touch minimum, which matters most exactly where the pointer is a
           fingertip. The glyph keeps its size; only the hit area grows. */
        @media (hover:none) {
            .yg-prod__swnav { opacity:1; transform:none; width:44px; height:44px; margin-top:-22px; }
        }

        /* the photographs are dark at the bottom on some frames — a whisper of shade keeps the
           dots legible without putting a visible band across the picture */
        .yg-prod__swiper::after {
            content:""; position:absolute; left:0; right:0; bottom:0; height:64px; z-index:1;
            background:linear-gradient(to top, rgba(6,19,58,.28), rgba(6,19,58,0));
            pointer-events:none;
        }
        @media (prefers-reduced-motion:reduce) {
            .yg-prod__swdot, .yg-prod__swnav { transition:none; }
            .yg-prod__swdot.is-active, .yg-prod__swnav { transform:none; }
        }
        .yg-prod__body { grid-column:2; min-width:0; }

        /* The image stays on the left in every section — no mirroring. */

        /* the lead runs the full section width under the header, above the image/copy split */
        .yg-prod__lead {
            grid-column:1 / -1;
            margin:0 0 clamp(22px,2.4vw,30px);
            font-size:clamp(15px,1.12vw,16.5px); line-height:1.72; color:var(--p-ink);
        }

        /* ---- specs: icon cards ----
           Two cards side by side, each led by its own icon in a tinted tile. Kept as a <dl>
           with each dt/dd pair wrapped in a div — a div is a legal child of <dl> for exactly
           this grouping, so the cards are visual without giving up label/value semantics. */
        .yg-prod__specs {
            display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
            gap:clamp(12px,1.3vw,16px);
            margin:0 0 clamp(24px,2.6vw,32px);
        }
        .yg-prod__spec {
            display:flex; flex-direction:column;
            padding:clamp(16px,1.5vw,20px);
            background:#fff; border:1px solid var(--p-line); border-radius:14px;
            transition:border-color .3s var(--p-e), box-shadow .3s var(--p-e), transform .3s var(--p-e);
        }
        .yg-prod__spec:hover {
            border-color:#c5d1ea;
            box-shadow:0 10px 28px rgba(12,36,97,.07);
            transform:translateY(-2px);
        }
        .yg-prod__ico {
            display:grid; place-items:center; flex:0 0 auto;
            width:38px; height:38px; margin-bottom:14px;
            border-radius:11px; background:#eef1fb; color:var(--p-blue);
            transition:background .3s var(--p-e), color .3s var(--p-e);
        }
        .yg-prod__spec:hover .yg-prod__ico { background:var(--p-blue); color:#fff; }
        .yg-prod__specs dt {
            margin-bottom:8px;
            font:700 11px/1.45 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:.1em; text-transform:uppercase; color:var(--p-navy);
        }
        .yg-prod__specs dd {
            margin:0; font-size:13.8px; line-height:1.68; color:var(--p-ink);
        }
        /* Some grades arrive as a bulleted spec list rather than a sentence. Markers are drawn
           as a pseudo-element instead of list-style, so the hanging indent is exact and the
           dot sits on the first line's optical centre whatever the wrap. */
        .yg-prod__specs dd ul { margin:0; padding:0; list-style:none; }
        .yg-prod__specs dd li { position:relative; padding-left:15px; }
        .yg-prod__specs dd li + li { margin-top:7px; }
        /* component/model names lead their bullet — navy at 600 reads as a label rather than
           shouted body text, which is what browser-default <strong> gives at this size */
        .yg-prod__specs dd strong { font-weight:600; color:var(--p-navy); }
        .yg-prod__specs dd li::before {
            content:""; position:absolute; left:0; top:.66em;
            width:5px; height:5px; border-radius:50%;
            background:var(--p-blue); opacity:.55;
        }
        /* Closing note after the last grade — borrows the section separator so it reads as the
           end of the run rather than a stray paragraph glued to the final FAQ. */
        .yg-prod-close {
            margin-top:clamp(40px,4.6vw,66px);
            padding-top:clamp(32px,3.6vw,48px);
            border-top:1px solid #e4eaf4;
        }
        .yg-prod-close h2 { font:800 clamp(21px,2.05vw,27px)/1.24 var(--title-font,"Space Grotesk",sans-serif); color:#0c2461; margin:0 0 14px; }
        .yg-prod-close p { margin:0; max-width:78ch; font-size:clamp(15px,1.12vw,16.5px); line-height:1.72; color:#51617f; }
        .yg-prod-close p + p { margin-top:16px; }
        /* contact line: the separator is decorative, so the two links carry the weight */
        .yg-prod-close__cta { font-weight:600; }
        .yg-prod-close__cta span { margin:0 8px; color:#c7d3ea; }
        .yg-prod-close a {
            color:#0303B8; text-decoration:none;
            border-bottom:1px solid rgba(3,3,184,.28);
            transition:border-color .25s cubic-bezier(.22,.61,.36,1);
        }
        .yg-prod-close a:hover { border-bottom-color:#0303B8; }

        /* An odd number of cards would leave a half-width orphan on the last row; let it span
           instead, so a 3-card section reads 2-over-1 rather than 2-plus-a-gap. */
        .yg-prod__spec:last-child:nth-child(odd) { grid-column:1 / -1; }
        /* Two-column layout only: between 992 and 1199 the body column is too narrow to carry
           two cards side by side. Below 992 the section stacks and the body regains the full
           container width, so the pair fits again — the single column returns at phone width. */
        @media (min-width:992px) and (max-width:1199.98px) {
            .yg-prod__specs { grid-template-columns:minmax(0,1fr); }
        }
        @media (prefers-reduced-motion:reduce) {
            .yg-prod__spec, .yg-prod__ico { transition:none; }
            .yg-prod__spec:hover { transform:none; }
        }

        /* ---- FAQ ----
           Rows are hairlines; the open row grows a blue rule on its left edge and steps in
           behind it, which marks the open item without a box or a fill.

           main.css paints .tp-faq itself as a #f5f5f5 panel, 20px radius, 10px padding — that
           grey card is what made the block read as bolted on, and its padding pushed the rows
           out of alignment with the spec cards above. Reset the wrapper, not just the rows.
           The top rule moved here from the heading that used to sit above it, so the FAQ is
           still separated from the cards. */
        .yg-prod__faq {
            background:none; border-radius:0; padding:0;
            padding-top:clamp(6px,.8vw,10px);
            border-top:1px solid var(--p-line);
        }
        .yg-prod__faq .tp-faq-item {
            background:none; background-color:transparent;
            border:0; border-bottom:1px solid var(--p-line);
            margin:0; border-radius:0; box-shadow:none;
        }
        .yg-prod__faq .tp-faq-item:last-child { border-bottom:0; }
        .yg-prod__faq .tp-faq-button {
            position:relative; display:block; width:100%; text-align:left;
            padding:13px 30px 13px 0; background:none; border:0; box-shadow:none;
            font:600 14.5px/1.5 "Inter",sans-serif; color:var(--p-navy);
            transition:color .25s var(--p-e), padding-left .3s var(--p-e);
        }
        .yg-prod__faq .tp-faq-button:hover,
        .yg-prod__faq .tp-faq-button:not(.collapsed) { color:var(--p-blue); }
        /* the left rule: wipes down on open, and the row steps in behind it */
        .yg-prod__faq .tp-faq-button::before {
            content:""; position:absolute; left:0; top:13px; bottom:13px; width:2px;
            border-radius:1px; background:var(--p-blue);
            transform:scaleY(0); transform-origin:top;
            transition:transform .32s var(--p-e);
        }
        .yg-prod__faq .tp-faq-button:hover { padding-left:7px; }
        .yg-prod__faq .tp-faq-button:not(.collapsed) { padding-left:14px; }
        .yg-prod__faq .tp-faq-button:not(.collapsed)::before { transform:scaleY(1); }
        /* Three classes deep on purpose: main.css sets the circle border via
           `.tp-faq-button.collapsed .tp-faq-arrow`, which beats a two-class rule. */
        .yg-prod__faq .tp-faq-button .tp-faq-arrow {
            position:absolute; right:0; top:50%; transform:translateY(-50%);
            width:12px; height:12px; margin:0; border:0; border-radius:0;
            background:none; font-size:0; line-height:0;
        }
        .yg-prod__faq .tp-faq-button .tp-faq-arrow::before,
        .yg-prod__faq .tp-faq-button .tp-faq-arrow::after {
            content:""; position:absolute; left:50%; top:50%;
            background:currentColor; border-radius:1px;
            transition:transform .32s var(--p-e), opacity .2s linear;
        }
        /* transform:none is load-bearing — main.css centres its glyph with
           translate(-50%,-50%), which would stack on the margin centring below. */
        .yg-prod__faq .tp-faq-button .tp-faq-arrow::before { width:12px; height:1.5px; margin:-.75px 0 0 -6px; transform:none; }
        .yg-prod__faq .tp-faq-button .tp-faq-arrow::after  { width:1.5px; height:12px; margin:-6px 0 0 -.75px; }
        .yg-prod__faq .tp-faq-button:not(.collapsed) .tp-faq-arrow::after { transform:rotate(90deg); opacity:0; }
        /* answer sits on the same step as the open question, under the blue rule */
        .yg-prod__faq .tp-faq-body { padding:0 30px 16px 14px; }
        .yg-prod__faq .tp-faq-body p { font-size:13.5px; line-height:1.68; color:var(--p-ink); }

        /* Tablet and below stack. The column split is a percentage of the Bootstrap container,
           and the container steps down to 720px at 991px — which left the photo 237px square
           beside 433px of copy, while the sticky column still reserved ~780px of height for it.
           Stacking hands the image the full container instead of a third of a narrow one. */
        @media (max-width:991.98px) {
            /* single column: header, image, copy — mirroring is meaningless when stacked.
               minmax(0,1fr), not 1fr: a bare fr keeps an automatic min-content floor, and
               Swiper lays its slides out side by side before it measures, so the track was
               resolving to the width of both slides (702px inside a 351px section) and the
               frame was being clipped in half. Pinning the minimum to 0 breaks that loop. */
            .yg-prod { grid-template-columns:minmax(0,1fr); row-gap:clamp(18px,2.4vw,26px); }
            .yg-prod__media, .yg-prod__body,
            .yg-prod:nth-of-type(even) .yg-prod__media,
            .yg-prod:nth-of-type(even) .yg-prod__body { grid-column:1; grid-row:auto; }
            /* nothing left for it to travel past once the copy is below rather than beside */
            .yg-prod__media { position:static; }
            /* a full-width square would stand 720px tall on a tablet and push the copy off the
               fold entirely; the landscape crop keeps the section scannable */
            .yg-prod__media img { aspect-ratio:16/10; }
        }
        @media (max-width:767.98px) {
            .yg-prod__specs { grid-template-columns:minmax(0,1fr); }
            .yg-prod__head { gap:12px; }
        }
        @media (prefers-reduced-motion:reduce) {
            .yg-prod__faq .tp-faq-button .tp-faq-arrow::before,
            .yg-prod__faq .tp-faq-button .tp-faq-arrow::after,
            .yg-prod__faq .tp-faq-button::before,
            .yg-prod__faq .tp-faq-button { transition:none; }
        }

        /* ===== yg-fam — ürün ailesi gezinmesi =====
           Desktop: a numbered list where the blue sweeps in from the left on hover, the same
           gesture the tiles and category cards use elsewhere on the site.
           Tablet/phone: the sidebar stops being a sidebar and stacks full width, where a tall
           8-item column is a wall of text — so the same markup becomes a horizontally
           scrollable, snapping chip rail. No duplicate markup, no JS. */
        .yg-fam {
            --f-blue:#0303B8; --f-navy:#0c2461; --f-line:#e4eaf4;
            --f-e:cubic-bezier(.22,.61,.36,1);
            display:block; background:#fff;
            border:1px solid var(--f-line); border-radius:20px; padding:22px 20px;
        }
        .yg-fam__title {
            position:relative; margin:0 0 16px; padding-bottom:14px;
            display:flex; align-items:center; gap:10px;
            font:700 16px/1.3 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:-.01em; color:var(--f-navy);
            border-bottom:1px solid var(--f-line);
        }
        /* short accent rule sitting on the divider */
        .yg-fam__title::after {
            content:""; position:absolute; left:0; bottom:-1px; width:42px; height:2px;
            background:var(--f-blue);
        }
        .yg-fam__title a {
            color:inherit; text-decoration:none;
            transition:color .25s var(--f-e);
        }
        .yg-fam__title a:hover { color:var(--f-blue); }
        .yg-fam__count {
            margin-left:auto; min-width:20px; height:20px; padding:0 5px;
            display:inline-grid; place-items:center; border-radius:999px;
            background:#eef1fb; color:var(--f-blue);
            font:700 10.5px/1 "Inter",sans-serif;
        }
        .yg-fam__list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:3px; }
        .yg-fam__link {
            position:relative; isolation:isolate; overflow:hidden;
            display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px;
            padding:10px 11px; border-radius:12px;
            text-decoration:none; color:var(--f-navy);
            transition:color .35s var(--f-e);
        }
        /* the fill is a scaled pseudo-element rather than a background-position animation, so
           it composites on the GPU and cannot jitter the text baseline */
        .yg-fam__link::before {
            content:""; position:absolute; inset:0; z-index:-1; background:var(--f-blue);
            transform:scaleX(0); transform-origin:left center;
            transition:transform .4s var(--f-e);
        }
        /* the current sub-category wears the hover state permanently — same treatment, so the
           list reads as one control rather than two competing highlight styles */
        .yg-fam__link:hover, .yg-fam__link:focus-visible, .yg-fam__link.is-active { color:#fff; }
        .yg-fam__link:hover::before, .yg-fam__link:focus-visible::before, .yg-fam__link.is-active::before { transform:scaleX(1); }
        .yg-fam__link:focus-visible { outline:2px solid var(--f-blue); outline-offset:2px; }
        .yg-fam__no {
            font:700 10px/1 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:.06em; color:var(--f-blue); transition:color .35s var(--f-e);
        }
        .yg-fam__link:hover .yg-fam__no, .yg-fam__link:focus-visible .yg-fam__no,
        .yg-fam__link.is-active .yg-fam__no { color:rgba(255,255,255,.72); }
        /* sub-category names run long ("Polipropilen (PP) Fabrikasyonlar"), so the label is
           sized to sit calmly in a ~290px column and its leading tightened for the two-line
           case rather than pretending they all fit on one */
        .yg-fam__label { font:600 13px/1.3 "Inter",sans-serif; }
        .yg-fam__link.is-active .yg-fam__label { font-weight:700; }
        .yg-fam__ar { opacity:.45; transition:transform .35s var(--f-e), opacity .35s var(--f-e); }
        .yg-fam__link:hover .yg-fam__ar, .yg-fam__link:focus-visible .yg-fam__ar,
        .yg-fam__link.is-active .yg-fam__ar { opacity:1; transform:translateX(3px); }

        /* 991.98, not 991: Bootstrap turns col-lg-* off at 992, so a fractional viewport
           (browser zoom, some scrollbar widths) would otherwise land in a gap where the
           columns had already stacked but this sidebar was still styled for the rail. */
        @media (max-width:991.98px) {
            /* the promo card is decorative and, stacked full width, its type would outgrow the
               page's own headings — so it is desktop-only */
            .tp-sidebar-widget.yg-swid-host { display:none; }

            /* The list keeps its desktop form here: a vertical stack of full-width rows.
               It was previously turned into a horizontal pill scroller, which clipped a
               row mid-word against the card's padding and read as a broken layout. Only
               the card padding tightens for the narrower viewport — everything about the
               rows themselves is inherited from the rules above. */
            .yg-fam { padding:18px 16px; }
            /* the rows are the page's primary navigation once the sidebar stacks above the
               content, so they take a full 44px touch height instead of the 37px the desktop
               padding alone produces */
            .yg-fam__link { min-height:44px; align-content:center; }
        }
        @media (prefers-reduced-motion:reduce) {
            .yg-fam__link, .yg-fam__link::before, .yg-fam__no, .yg-fam__ar { transition:none; }
        }

        /* ===== yg-swid — sidebar kartı =====
           Every value below is measured off the supplied reference and expressed as a
           proportion of a 660px-wide card (the width it has in that artwork), so the card is
           the same drawing at whatever width the column gives it — not a re-interpretation.
             card 660x752 r28 · padding 42/40/45 · title 30 · subtitle 16, 10 under the title
             body 15/1.32, 65 under the subtitle · panel 566x415 r20, 73 under the body
           The container is the WRAPPER, not the card: an element cannot query itself, so with
           container-type on .yg-swid its own padding and radius resolved against the viewport
           while its children resolved against the card — padding came out 4x too large and the
           type half the size it should be. */
        .yg-swid-host { container-type:inline-size; }
        .yg-swid {
            background:#f0f0f0; border-radius:4.24cqw;
            padding:6.36cqw 6.06cqw 6.82cqw;
        }
        .yg-swid__head { display:flex; align-items:flex-start; justify-content:space-between; gap:3cqw; }
        .yg-swid__headtext { min-width:0; }
        .yg-swid__title {
            margin:0 0 1.51cqw;
            font:400 4.545cqw/1.15 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:-.005em; color:#1a1a1a;
        }
        .yg-swid__sub { margin:0; font:400 2.424cqw/1.3 "Inter",sans-serif; color:#7AC143; }
        /* the site favicon; it is square where the reference mark is landscape, so the width
           is matched to the reference and the height follows */
        .yg-swid__logo { flex:0 0 auto; width:12.88cqw; line-height:0; }
        .yg-swid__logo img { width:100%; height:auto; display:block; }
        .yg-swid__text {
            margin:9.85cqw 0 0;
            font:400 2.273cqw/1.32 "Inter",sans-serif; color:#a3a3a3;
        }
        /* empty panel, as in the reference — a flat grey plate, no photograph */
        .yg-swid__img {
            margin-top:11.06cqw;
            border-radius:3.03cqw; aspect-ratio:566/415; background:#d9d9d9;
        }

        /* Breathing room above every content block in the product pages. The template ships
           these with padding-bottom only (pb-45), so consecutive blocks — cards, then the
           feature accordion — met with nothing between them but the previous block's own
           bottom padding. Applies to the first block too, pushing the cards further clear of
           the intro copy above. */
        .tp-services-details-support-main.pb-45 { padding-top:clamp(26px,3vw,48px); }

        /* larger body copy where the about section carries the page intro */
        .tp-about-deg--lg p { font-size:17.5px; line-height:1.85; }
        @media (max-width:767px) { .tp-about-deg--lg p { font-size:16.5px; line-height:1.8; } }

        .tp-about-image--single { overflow:hidden; border-radius:20px; }
        /* No fixed ratio: the category image is the same asset as that product's homepage
           tile, and most of those are panoramic (2.42:1). Forcing a 4:3 crop would hide
           ~45% of the width and cut the outer units off a product render, so the frame
           follows the image instead. */
        .tp-about-image--single img { width:100%; height:auto; display:block; }
        /* the image is then shorter than the text column — centre it so that reads as intent */
        @media (min-width:992px) {
            .yg-about--flush .row > [class*="col-lg-5"] { align-self:center; }
        }

        /* ===== yg-cat — kategori vitrini: tam görsel kartlar (foto + lacivert scrim + içerik) ===== */
        .yg-cat { --c-blue:#0303B8; --c-navy:#0c2461; --c-ink:#06133a;
                  --c-e:cubic-bezier(.22,.61,.36,1);
                  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
        /* The card outline is the supplied vector (Untitled-2.svg, 290.14 x 182.55): a rounded
           rectangle with its bottom-left corner cut away by the white plate. The notch is NOT
           a pair of tangent ellipse quarters — it is a flat top, a convex round, a straight
           ~42° diagonal, then a concave round into the bottom edge. border-radius cannot draw
           that, so the plate is painted from the path itself (::before below) and every other
           measurement is expressed in container units against the same drawing.
           The aspect ratio is therefore locked at all breakpoints: changing it would shear the
           notch, since the artwork is stretched to the card box. */
        .yg-cat__card {
            position:relative; display:block; overflow:hidden; isolation:isolate;
            aspect-ratio:290.14/182.55;
            /* The white plate IS this background — the photo above is clipped away from the
               notch and lets it through. Nothing white is painted over the photo. */
            background:#fff;
            border-radius:3.257% / 5.177%;   /* r = 9.45 in the drawing, rounded once, here */
            container-type:size;
            /* no translateZ(0): promoting the card to its own GPU layer makes its fractional
               box (547 x 344.15625) a resampled texture, which softens every edge inside it */
        }
        /* The notch clip lives on this wrapper, NOT on the image. clip-path is defined in the
           element's own coordinate space, so it is transformed along with the element — the
           hover scale(1.06) would carry the cutout with it and let the photo swell past the
           plate edge. The wrapper never moves, so the notch stays put while the image zooms
           inside it. */
        .yg-cat__media {
            position:absolute; inset:0; display:block;
            clip-path:url(#yg-cat-photo);
        }
        .yg-cat__img {
            position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
            transition:transform .8s var(--c-e);
        }
        .yg-cat__card:hover .yg-cat__img { transform:scale(1.06); }
        /* navy gradient keeps the text readable on any photo */
        /* photo stays clean; a light shade top and bottom just keeps the white chip and
           arrow legible over pale images */
        .yg-cat__scrim {
            position:absolute; inset:0; z-index:1;
            background:linear-gradient(to bottom, rgba(6,19,58,.30) 0%, rgba(6,19,58,0) 26%),
                       linear-gradient(to top,    rgba(6,19,58,.30) 0%, rgba(6,19,58,0) 24%);
            clip-path:url(#yg-cat-photo);
        }
        /* hover: the pgrid fill — a solid blue disc blooming from the bottom-left corner.
           The disc is grown with an animated gradient stop rather than clip-path:circle(),
           because clip-path is needed here for the notch: the fill has to stop at the plate
           exactly like the photo does, and an element gets only one clip-path. Registering
           --yg-bloom is what makes it animatable. */
        @property --yg-bloom {
            syntax:"<percentage>"; inherits:false; initial-value:0%;
        }
        .yg-cat__card::after {
            content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
            /* the rest value is the registered initial-value above, so :hover is the only
               declaration and there is no specificity subtlety with inherits:false */
            /* both stops at the same position = a hard circular edge; the second colour is
               transparent BLUE, not `transparent`, which would interpolate through black */
            background:radial-gradient(circle at 13% 86%,
                       var(--c-blue) var(--yg-bloom), rgba(3,3,184,0) var(--yg-bloom));
            clip-path:url(#yg-cat-photo);
            transition:--yg-bloom .55s cubic-bezier(.65,0,.35,1);
        }
        .yg-cat__card:hover::after { --yg-bloom:100%; }
        .yg-cat__no {
            position:absolute; top:18px; left:18px; z-index:2;
            font:700 12.5px/1 var(--title-font,"Space Grotesk",sans-serif); letter-spacing:.08em;
            color:#fff; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.28);
            padding:8px 11px; border-radius:999px;
            -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
            transition:opacity .3s var(--c-e);
        }
        /* Arrow + label. The label is always in the layout at full width; at rest the whole
           group is pushed right by exactly its own width minus the circle, which parks the
           circle on the anchor and carries the label off the card, where overflow:hidden
           hides it. Hover returns it to translateX(0), so the circle slides left by precisely
           the label's width + gap.

           Animating a width instead would need either a guessed max-width (the reveal then
           finishes before the motion does) or a 0fr -> 1fr track, which collapses to zero
           inside a shrink-to-fit absolutely positioned box. A transform has neither problem
           and costs no layout. */
        .yg-cat__cta {
            --go:46px;                       /* must match .yg-cat__go's width */
            position:absolute; right:18px; bottom:18px; z-index:3;
            display:flex; align-items:center; gap:14px;
            transform:translateX(calc(100% - var(--go)));
            transition:transform .5s var(--c-e);
        }
        .yg-cat__card:hover .yg-cat__cta { transform:none; }
        .yg-cat__go {
            width:46px; height:46px; display:grid; place-items:center; border-radius:50%;
            color:#fff; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.3);
            -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
            transition:background .35s var(--c-e), border-color .35s var(--c-e), transform .35s var(--c-e);
        }
        .yg-cat__go svg { transition:transform .35s var(--c-e); }
        .yg-cat__card:hover .yg-cat__go { background:#fff; border-color:transparent; color:var(--c-blue); }
        .yg-cat__card:hover .yg-cat__go svg { transform:translate(1px,-1px); }
        .yg-cat__label {
            white-space:nowrap;
            font:700 clamp(12px,2.9cqw,16px)/1.1 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:-.01em; color:#fff;
            opacity:0;
            transition:opacity .35s var(--c-e);
        }
        .yg-cat__card:hover .yg-cat__label { opacity:1; }

        /* ---- white plate carved into the bottom-left corner ----
           Painted as the drawing's own path, stretched over the whole card. The path is the
           INVERSE of the supplied outline — the region the blue shape leaves empty — plus the
           card's own bottom-left corner (r = 9.45), traced in the original coordinates:

             (0,126.35) -> concave fillet r17.41 -> (17.41,143.76)   plate meets the left edge
             flat top to (103.27,143.76)
             convex round to (126.33,149.63)
             straight diagonal to (156.03,176.65)                    dx 29.7, dy 27.02 => 42.3°
             concave fillet to (179.13,182.55)                       plate meets the bottom edge
             back along the bottom, r9.45 card corner, up the left edge

           There is no white element. The plate is the card's own background, uncovered by
           clipping the photo, the scrim and the hover fill to the drawing (#yg-cat-photo in
           includes/header.php). Every earlier attempt painted white ON TOP of the photo, which
           puts two antialiased edges in the same place — as an image the white edge resampled
           into a light rim, and as a second clip it disagreed with the card's own rounded
           corner by a fraction of a pixel and let the photo through as a hairline. One
           surface ending where another begins cannot do either. */
        /* Text box sits inside the notch: 143.76 -> 182.55 of 182.55 is the bottom 21.25%.
           Its width stops short of the diagonal so the copy never runs onto the chamfer. */
        .yg-cat__body {
            position:absolute; left:0; bottom:0; z-index:3;
            width:58cqw; height:21.25cqh;
            /* Sitting the title low in the plate is what buys it width: the chamfer runs at
               42°, so every pixel further down is ~1.1px more room before the diagonal. */
            display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end;
            padding:0 2cqw 3.8cqh 3.6cqw;
        }
        /* Type is sized in cqw so the composition stays the drawing at every card width —
           the plate is a fixed 21.25% of the card height, so absolute type would outgrow it.
           Poppins is loaded per-page (only these two carry cards) alongside Space Grotesk. */
        .yg-cat__title {
            /* An <h3>: these four labels are the page's real sub-headings. margin:0 is load
               bearing — the theme's default heading margin would otherwise push it off the
               plate the moment the tag changed from a span. */
            margin:0;
            /* 20px is the ceiling: "Nötralizasyon Üniteleri" is the longest label and at 21px
               it touches the chamfer with no margin at all. */
            font:700 clamp(12px,3.62cqw,20px)/1.25 "Poppins","Space Grotesk",sans-serif;
            letter-spacing:-.01em; color:var(--c-navy);
            white-space:nowrap;
        }
        /* Hover blurb. Occupies the band between the number chip and the white plate — the
           area the blue fill uncovers — so it never overlaps the plate, the chip or the CTA.
           Both edges are pinned (top below the chip, bottom above the plate) rather than
           letting the box grow from one side: these paragraphs run to ~500 characters and an
           unpinned box would climb straight through the chip.
           Size is in cq units throughout so the panel holds the same amount of text at every
           card width instead of reflowing into a different number of lines. */
        .yg-cat__desc {
            margin:0;                              /* a <p>: kill the theme's block margin */
            position:absolute; left:5cqw; right:5cqw; z-index:3;
            top:calc(3.3cqh + 9.6cqh + 3cqh);      /* chip inset + chip height + gap */
            bottom:calc(21.25cqh + 2.6cqh);        /* notch height + gap */
            overflow:hidden; pointer-events:none;
            display:flex; align-items:center; justify-content:center; text-align:center;
            font:400 clamp(10.5px,2.65cqw,15px)/1.55 "Inter",sans-serif;
            color:rgba(255,255,255,.93);
            /* Hidden with opacity, never display:none or visibility:hidden — the paragraph
               stays in the rendered box tree and in the served HTML, so a crawler reads it as
               ordinary page text rather than as markup it has to execute something to reach. */
            opacity:0; transform:translateY(12px);
            transition:opacity .45s var(--c-e), transform .55s var(--c-e);
            transition-delay:0s;                   /* leaving: go at once, with the fill */
        }
        /* Arriving: wait for the blue fill (.55s) to land before the text starts. The delay
           lives only on the :hover rule, so mouse-out reverts to the 0s above and the text
           does not linger over the returning photo. */
        .yg-cat__card:hover .yg-cat__desc {
            opacity:1; transform:none;
            transition-delay:.5s;
        }
        /* Holding the floor at 10.5px on a phone-width card costs ~14px of height that the
           band does not have, so the small card buys it back: tighter leading, a narrower
           side inset and a smaller gap above the plate. Keyed on the CARD (it is a size
           container), not the viewport — below 992px the grid is single-column, so a
           viewport query would also catch 550px-wide cards that need no such thing. */
        @container (max-width:420px) {
            .yg-cat__desc {
                left:4cqw; right:4cqw;
                bottom:calc(21.25cqh + 1.2cqh);
                line-height:1.4;
            }
            /* At 10.5px the longest paragraph runs to nine lines and its first line reaches
               past the number chip. Nine lines cannot fit below the chip at this size, so the
               chip yields while the blurb is up — it is decorative, and the blurb is not. */
            .yg-cat__card:hover .yg-cat__no { opacity:0; }
        }
        /* Opt-in two-line variant. Labels like "Polipropilen (PP) Fabrikasyonlar" are ~32
           characters and cannot fit the plate on one line at any size consistent with the
           other pages. Narrowing the text box as well as allowing the break is the point:
           the box must be narrower than the chamfer allows, or a title breaks only after it
           has already run onto the photo. Two 20px lines still clear the notch height. */
        .yg-cat--wrap .yg-cat__title { white-space:normal; }
        .yg-cat--wrap .yg-cat__body { width:46cqw; }
        .yg-cat__card:focus-visible { outline:3px solid var(--c-blue); outline-offset:3px; }
        /* One column from tablet down. Two 340px-wide cards would leave the 21.25%-tall notch
           too short for the longest taglines, and the notch height cannot be traded away
           without departing from the drawing. */
        @media (max-width:991px) {
            .yg-cat { grid-template-columns:1fr; gap:16px; }
        }
        @media (max-width:575px) {
            .yg-cat__no { top:14px; left:14px; }
            .yg-cat__cta { right:14px; bottom:14px; --go:42px; }
            .yg-cat__go { width:42px; height:42px; }
        }
        @media (prefers-reduced-motion:reduce) {
            .yg-cat__img, .yg-cat__go, .yg-cat__go svg, .yg-cat__card::after,
            .yg-cat__cta, .yg-cat__label, .yg-cat__desc { transition:none; }
            .yg-cat__card:hover .yg-cat__img { transform:none; }
        }
        /* ===== yg-iacc — ikonlu akordeon (FAQ görünümlü özellik listeleri) ===== */
        .yg-iacc { --ia-blue:#0303B8; --ia-navy:#0c2461; --ia-body:#51617f; --ia-line:#e4eaf4;
                   --ia-e:cubic-bezier(.22,.61,.36,1); display:flex; flex-direction:column; gap:12px; }
        /* ---- outer tier: each heading is itself collapsible, holding its own accordion ---- */
        .yg-iacc__item--group { background:#f7faff; }
        .yg-iacc__head--group { padding:20px 22px; grid-template-columns:1fr auto; }
        .yg-iacc__head--group .yg-iacc__title { font-size:19px; }
        .yg-iacc__head--group .yg-iacc__arrow { width:34px; height:34px; }
        .yg-iacc__item--group:has(> .collapse.show) { background:#fff; }
        .yg-iacc__groupbody { padding:2px 18px 18px; }
        /* children are plain rows — icon + title + text, always visible */
        .yg-iacc__list { display:flex; flex-direction:column; gap:10px; }
        /* static rows — no hover state (they are not interactive) */
        .yg-iacc__row {
            display:grid; grid-template-columns:auto 1fr; align-items:start; gap:16px;
            padding:16px 20px; background:#fff;
            border:1px solid var(--ia-line); border-radius:14px;
        }
        .yg-iacc__row .yg-iacc__ic { margin-top:1px; }
        .yg-iacc__rowtitle {
            font:700 15.5px/1.35 var(--title-font,"Space Grotesk",sans-serif);
            color:var(--ia-navy); letter-spacing:-.01em; margin:0 0 5px;
        }
        .yg-iacc__rowtext p { margin:0; font-size:15px; line-height:1.7; color:var(--ia-body); }
        @media (max-width:575px) {
            .yg-iacc__row { gap:12px; padding:14px 16px; }
            .yg-iacc__rowtitle { font-size:15px; }
        }
        .yg-iacc__item { background:#fff; border:1px solid var(--ia-line); border-radius:16px; overflow:hidden;
                         transition:border-color .3s var(--ia-e), box-shadow .3s var(--ia-e); }
        .yg-iacc__item:has(.collapse.show) { border-color:rgba(3,3,184,.32); box-shadow:0 10px 30px rgba(12,36,97,.07); }
        .yg-iacc__head {
            width:100%; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px;
            padding:16px 20px; background:none; border:0; text-align:left; cursor:pointer;
        }
        .yg-iacc__ic {
            width:44px; height:44px; flex:none; border-radius:13px; display:grid; place-items:center;
            background:rgba(3,3,184,.08); color:var(--ia-blue);
            transition:background .3s var(--ia-e), color .3s var(--ia-e);
        }
        .yg-iacc__ic svg { width:24px; height:24px; }
        .yg-iacc__title {
            font:700 16.5px/1.35 var(--title-font,"Space Grotesk",sans-serif);
            color:var(--ia-navy); letter-spacing:-.01em; transition:color .3s var(--ia-e);
        }
        .yg-iacc__arrow {
            width:30px; height:30px; flex:none; border-radius:50%; display:grid; place-items:center;
            border:1px solid var(--ia-line); color:var(--ia-navy);
            transition:transform .35s var(--ia-e), background .3s var(--ia-e), color .3s var(--ia-e), border-color .3s var(--ia-e);
        }
        .yg-iacc__head:not(.collapsed) .yg-iacc__ic { background:var(--ia-blue); color:#fff; }
        .yg-iacc__head:not(.collapsed) .yg-iacc__title { color:var(--ia-blue); }
        .yg-iacc__head:not(.collapsed) .yg-iacc__arrow { transform:rotate(180deg); background:var(--ia-blue); color:#fff; border-color:transparent; }
        .yg-iacc__head:hover .yg-iacc__ic { background:rgba(3,3,184,.16); }
        .yg-iacc__head:focus-visible { outline:2px solid var(--ia-blue); outline-offset:-2px; }
        /* body indents to sit under the title, not the icon */
        .yg-iacc__body { padding:0 20px 18px calc(20px + 44px + 16px); }
        .yg-iacc__body p { margin:0; font-size:15px; line-height:1.75; color:var(--ia-body); }
        @media (max-width:575px) {
            .yg-iacc__head { gap:12px; padding:14px 16px; }
            .yg-iacc__ic { width:38px; height:38px; border-radius:11px; }
            .yg-iacc__ic svg { width:20px; height:20px; }
            .yg-iacc__title { font-size:15px; }
            .yg-iacc__body { padding:0 16px 16px calc(16px + 38px + 12px); }
        }
        @media (prefers-reduced-motion:reduce) {
            .yg-iacc__item, .yg-iacc__ic, .yg-iacc__title, .yg-iacc__arrow { transition:none; }
        }

        /* ===== yg-rel — ürün ailesi kartları (ilgili ürünler) ===== */
        .yg-rel { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:24px; }
        .yg-rel__card {
            display:flex; flex-direction:column; background:#fff;
            border:1px solid #e4eaf4; border-radius:22px; overflow:hidden;
            transition:transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s cubic-bezier(.22,.61,.36,1);
        }
        .yg-rel__card:hover { transform:translateY(-6px); border-color:rgba(3,3,184,.3); }
        .yg-rel__media { margin:0; overflow:hidden; aspect-ratio:1/1; background:#f3f7fd; }
        .yg-rel__media img { width:100%; height:100%; object-fit:cover; display:block;
            transition:transform .7s cubic-bezier(.22,.61,.36,1); }
        .yg-rel__card:hover .yg-rel__media img { transform:scale(1.05); }
        .yg-rel__body { padding:22px 24px 26px; }
        .yg-rel__body h3 {
            font:700 17px/1.3 var(--title-font,"Space Grotesk",sans-serif);
            color:#0c2461; margin:0 0 9px; letter-spacing:-.01em;
        }
        .yg-rel__body p { font-size:14.5px; line-height:1.7; color:#51617f; margin:0; }
        @media (max-width:575px) { .yg-rel { grid-template-columns:1fr; } }

        /* FAQ answer bodies on service pages: multi-paragraph answers + bulleted detail lists
           (used where several Q&A sections were merged into one accordion) */
        .tp-faq-body p + p { margin-top:.9em; }
        .tp-faq-list { list-style:none; margin:14px 0 0; padding:0; }
        .tp-faq-list li { position:relative; padding-left:20px; margin-bottom:9px; line-height:1.7; }
        .tp-faq-list li:last-child { margin-bottom:0; }
        .tp-faq-list li::before {
            content:""; position:absolute; left:0; top:.63em;
            width:6px; height:6px; border-radius:50%; background:#0303B8;
        }
        .tp-faq-list li strong { color:#0c2461; font-weight:600; }
        .yg-srv__split { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,4vw,60px); align-items:center; }
        .yg-srv__split > * { min-width:0; }
        .yg-srv__figure { position:relative; border-radius:22px; overflow:hidden; }
        .yg-srv__figure img { width:100%; max-width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; display:block; }
        /* match the intro slider''s ratio on desktop */
        @media (min-width:992px) { .yg-srv__figure img { aspect-ratio:3/2; } }
        .yg-srv__figure--tall img { aspect-ratio:3/4; }
        /* ---- a figure holding more than one photograph ----
           The single image above is what gives the figure its shape, so once the image is
           inside a slider the frame has to carry that shape instead: same ratios, same
           radius. The slide images then simply fill it, which means their own aspect-ratio
           rule has to be switched off or it fights the frame. */
        .yg-srv__figure .yg-srv__swiper { aspect-ratio:1/1; border-radius:22px; overflow:hidden; }
        @media (min-width:992px) { .yg-srv__figure .yg-srv__swiper { aspect-ratio:3/2; } }
        .yg-srv__figure--tall .yg-srv__swiper { aspect-ratio:3/4; }
        .yg-srv__figure .yg-srv__swiper .swiper-wrapper,
        .yg-srv__figure .yg-srv__swiper .swiper-slide { height:100%; }
        .yg-srv__figure .yg-srv__swiper img {
            width:100%; height:100%; aspect-ratio:auto; object-fit:cover; display:block; border-radius:0;
        }
        /* numbered process steps */
        .yg-srv__steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:18px; counter-reset:ygstep; }
        .yg-srv__step {
            position:relative; background:#fff; border:1px solid var(--s-line); border-radius:20px;
            padding:28px 24px 24px; counter-increment:ygstep;
            transition:border-color .3s var(--s-ease), transform .3s var(--s-ease);
        }
        .yg-srv__step:hover { border-color:rgba(3,3,184,.35); transform:translateY(-4px); }
        .yg-srv__step::before {
            content:counter(ygstep,decimal-leading-zero);
            display:block; margin-bottom:14px;
            font:800 13px/1 var(--s-title); letter-spacing:.16em; color:var(--s-blue);
        }
        .yg-srv__step h4 { font:700 17px/1.3 var(--s-title); color:var(--s-navy); margin:0 0 8px; }
        .yg-srv__step p { font-size:14px; line-height:1.65; color:var(--s-body); margin:0; }
        /* metal chips */
        .yg-srv__metals { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:14px; }
        .yg-srv__metal {
            display:flex; gap:14px; align-items:flex-start;
            background:#fff; border:1px solid var(--s-line); border-radius:16px; padding:18px 20px;
            transition:border-color .25s var(--s-ease), transform .25s var(--s-ease);
        }
        .yg-srv__metal:hover { border-color:rgba(3,3,184,.35); transform:translateX(4px); }
        .yg-srv__swatch { flex:none; width:34px; height:34px; border-radius:50%; box-shadow:inset 0 0 0 1px rgba(12,36,97,.12); }
        .yg-srv__metal strong { display:block; font:700 15px/1.3 var(--s-title); color:var(--s-navy); margin-bottom:4px; }
        .yg-srv__metal span { display:block; font-size:13.5px; line-height:1.6; color:var(--s-body); }
        /* technique cards */
        .yg-srv__tech { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }
        .yg-srv__techcard {
            position:relative; overflow:hidden; background:#fff; border:1px solid var(--s-line);
            border-radius:20px; padding:30px 26px; transition:border-color .3s var(--s-ease);
        }
        .yg-srv__techcard::before {
            content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--s-blue);
            transform:scaleY(0); transform-origin:top; transition:transform .4s var(--s-ease);
        }
        .yg-srv__techcard:hover { border-color:rgba(3,3,184,.35); }
        .yg-srv__techcard:hover::before { transform:scaleY(1); }
        .yg-srv__techcard h4 { font:700 18px/1.3 var(--s-title); color:var(--s-navy); margin:0 0 10px; }
        .yg-srv__techcard p { font-size:14.5px; line-height:1.7; color:var(--s-body); margin:0; }
        /* benefits on blue */
        .yg-srv__benefits { background:var(--s-blue); border-radius:26px; padding:clamp(30px,4vw,54px); color:#fff; }
        .yg-srv__benefits .tp-section-title { color:#fff; }
        .yg-srv__blist { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px 32px; margin-top:32px; }
        .yg-srv__bitem { display:flex; gap:14px; align-items:flex-start; }
        .yg-srv__bcheck {
            flex:none; width:26px; height:26px; border-radius:50%; display:grid; place-items:center;
            background:rgba(255,255,255,.16); color:#fff; margin-top:2px;
        }
        .yg-srv__bitem strong { display:block; font:700 15.5px/1.35 var(--s-title); color:#fff; margin-bottom:5px; }
        .yg-srv__bitem span { display:block; font-size:14px; line-height:1.65; color:rgba(255,255,255,.82); }
        /* industry tiles */
        .yg-srv__inds { display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:16px; }
        .yg-srv__ind {
            background:#fff; border:1px solid var(--s-line); border-radius:18px; padding:24px 22px;
            transition:border-color .3s var(--s-ease), transform .3s var(--s-ease);
        }
        .yg-srv__ind:hover { border-color:rgba(3,3,184,.35); transform:translateY(-4px); }
        .yg-srv__indic {
            width:44px; height:44px; border-radius:13px; display:grid; place-items:center; margin-bottom:16px;
            background:rgba(3,3,184,.07); color:var(--s-blue);
        }
        .yg-srv__ind h3 { font:700 16px/1.3 var(--s-title); color:var(--s-navy); margin:0 0 7px; }
        .yg-srv__ind p { font-size:13.5px; line-height:1.6; color:var(--s-body); margin:0; }
        /* factors strip */
        .yg-srv__factors { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); border:1px solid var(--s-line); border-radius:20px; overflow:hidden; background:#fff; }
        .yg-srv__factor { padding:26px 24px; border-right:1px solid var(--s-line); }
        .yg-srv__factor:last-child { border-right:0; }
        .yg-srv__factor h4 { font:700 16px/1.3 var(--s-title); color:var(--s-navy); margin:0 0 8px; display:flex; align-items:center; gap:9px; }
        .yg-srv__factor h4::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--s-blue); flex:none; }
        .yg-srv__factor p { font-size:14px; line-height:1.65; color:var(--s-body); margin:0; }
        @media (max-width:991px) {
            .yg-srv__split { grid-template-columns:1fr; }
            .yg-srv__factor { border-right:0; border-bottom:1px solid var(--s-line); }
            .yg-srv__factor:last-child { border-bottom:0; }
        }
        @media (prefers-reduced-motion:reduce) {
            .yg-srv__step, .yg-srv__metal, .yg-srv__techcard, .yg-srv__techcard::before, .yg-srv__ind { transition:none; }
        }

        /* =====================================================================
           yg-foot — footer (theme blue, matches the CTA / hero card language)
           ===================================================================== */
        .yg-foot { background:#f3f7fd; padding:0 clamp(8px,1.8vw,22px) clamp(8px,1.8vw,22px); }
        .yg-foot__panel {
            position:relative; overflow:hidden; isolation:isolate;
            background:#0303B8; color:rgba(255,255,255,.8);
            border-radius:clamp(22px,2.4vw,32px);
            padding:clamp(34px,4.4vw,64px) clamp(22px,3.4vw,58px) clamp(18px,2vw,26px);
        }
        /* cap the content width inside the full-bleed card */
        .yg-foot__panel > * { max-width:1240px; margin-left:auto; margin-right:auto; }
        .yg-foot__panel::after {
            content:""; position:absolute; right:-70px; bottom:-90px; width:320px; height:320px;
            border:1px solid rgba(255,255,255,.14); border-radius:50%; pointer-events:none;
        }
        /* --- top row: contact + flags --- */
        .yg-foot__top {
            display:flex; align-items:flex-end; justify-content:space-between; gap:26px; flex-wrap:wrap;
            padding-bottom:clamp(24px,3vw,38px); border-bottom:1px solid rgba(255,255,255,.18);
        }
        .yg-foot__eyebrow {
            display:inline-flex; align-items:center; gap:10px; margin-bottom:14px;
            font:700 12px/1 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.72);
        }
        .yg-foot__eyebrow::before { content:""; width:8px; height:8px; border-radius:50%; background:#fff; }
        .yg-foot__title {
            font:800 clamp(1.35rem,1rem + 1.5vw,2.1rem)/1.16 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:-.02em; color:#fff; margin:0;
        }
        .yg-foot__contact { display:flex; gap:10px; flex-wrap:wrap; }
        .yg-foot__pill {
            display:inline-flex; align-items:center; gap:10px;
            background:#fff; color:#0303B8; text-decoration:none;
            font:600 14.5px/1 var(--title-font,"Space Grotesk",sans-serif);
            padding:14px 24px; border-radius:999px;
            transition:transform .25s cubic-bezier(.34,1.5,.64,1);
        }
        .yg-foot__pill--ghost { background:rgba(255,255,255,.1); color:#fff; border:1px solid rgba(255,255,255,.3); }
        .yg-foot__pill:hover { transform:translateY(-3px); color:#0303B8; }
        .yg-foot__pill--ghost:hover { background:rgba(255,255,255,.2); color:#fff; }
        /* --- link columns --- */
        .yg-foot__grid {
            display:grid; grid-template-columns:1.6fr repeat(3,1fr) 1.2fr; gap:clamp(22px,2.6vw,40px);
            padding:clamp(28px,3.4vw,46px) 0;
        }
        .yg-foot__logo { height:64px; width:auto; margin-bottom:18px; }
        .yg-foot__desc { font-size:13.5px; line-height:1.7; margin:0 0 20px; max-width:33ch; color:rgba(255,255,255,.75); }
        .yg-foot__social { display:flex; gap:9px; }
        .yg-foot__social a {
            width:40px; height:40px; border-radius:50%; display:grid; place-items:center;
            background:rgba(255,255,255,.12); color:#fff; font-size:14px; text-decoration:none;
            transition:background .25s ease, color .25s ease, transform .25s ease;
        }
        .yg-foot__social a:hover { background:#fff; color:#0303B8; transform:translateY(-3px); }
        .yg-foot__col h3 {
            font:700 11.5px/1 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:.16em; text-transform:uppercase; color:#fff; margin:0 0 16px;
        }
        .yg-foot__col ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
        .yg-foot__col a { font-size:14px; color:rgba(255,255,255,.75); text-decoration:none; }
        .yg-foot__col a:hover { color:#fff; }
        .yg-foot__addr { font-size:13.5px; line-height:1.75; color:rgba(255,255,255,.75); }
        .yg-foot__addr strong {
            display:block; color:#fff; margin-bottom:16px;
            font:700 11.5px/1 var(--title-font,"Space Grotesk",sans-serif); letter-spacing:.16em; text-transform:uppercase;
        }
        /* --- inline language flags --- */
        .yg-flags { display:flex; align-items:center; gap:9px; }
        .yg-flags__btn {
            width:30px; height:30px; padding:0; border-radius:50%; cursor:pointer; overflow:hidden;
            background:none; border:0; opacity:.5; filter:saturate(.7);
            transition:opacity .25s ease, transform .25s cubic-bezier(.34,1.5,.64,1), filter .25s ease, box-shadow .25s ease;
        }
        .yg-flags__btn img { width:100%; height:100%; object-fit:cover; display:block; }
        .yg-flags__btn:hover { opacity:1; filter:none; transform:translateY(-2px) scale(1.08); }
        .yg-flags__btn.is-active { opacity:1; filter:none; box-shadow:0 0 0 2px #fff; }
        .yg-flags__btn:focus-visible { outline:2px solid #fff; outline-offset:3px; }
        /* flags row above the bottom bar, aligned right */
        .yg-foot__flagsrow { display:flex; justify-content:flex-end; padding-bottom:16px; }
        @media (max-width:480px) { .yg-foot__flagsrow { justify-content:flex-start; } }

        /* --- bottom bar --- */
        .yg-foot__bottom {
            display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
            padding-top:clamp(16px,2vw,22px); border-top:1px solid rgba(255,255,255,.18);
        }
        .yg-foot__copy { margin:0; font-size:12.5px; color:rgba(255,255,255,.62); }
        .yg-foot .ex-footer__bottom-links .disc { margin:0; font-size:12.5px; color:rgba(255,255,255,.62); }
        .yg-foot .ex-footer__bottom-links .disc a { color:#fff; text-decoration:none; transition:opacity .2s ease; }
        .yg-foot .ex-footer__bottom-links .disc a:hover { text-decoration:underline; text-underline-offset:3px; }
        /* "Cookie preferences" - added to the footer by yg-consent.js so consent can be
           taken back. It is appended next to the credit line, so it needs its own spacing
           rather than inheriting the .disc paragraph's. */
        .yg-foot .ex-footer__bottom-links .yg-consent-open {
            display:inline-block; margin-top:6px;
            font-size:12.5px; color:rgba(255,255,255,.62); text-decoration:none;
            transition:color .2s ease;
        }
        .yg-foot .ex-footer__bottom-links .yg-consent-open:hover {
            color:#fff; text-decoration:underline; text-underline-offset:3px;
        }
        @media (max-width:1199px) { .yg-foot__grid { grid-template-columns:1.5fr 1fr 1fr; row-gap:32px; } }
        @media (max-width:767px) {
            .yg-foot__grid { grid-template-columns:1fr 1fr; }
            .yg-foot__brandcol, .yg-foot__addr { grid-column:1 / -1; }
            .yg-foot__top { align-items:flex-start; }
        }
        @media (max-width:480px) {
            .yg-foot__grid { grid-template-columns:1fr; }
            .yg-foot__bottom { flex-direction:column; align-items:flex-start; }
            /* on a phone the two pills shared one row, which squeezed the phone
               number onto two lines; stack them full-width instead */
            .yg-foot__contact { width:100%; flex-direction:column; align-items:stretch; }
            .yg-foot__pill { width:100%; justify-content:center; white-space:nowrap; }
        }
        @media (prefers-reduced-motion:reduce) {
            .yg-foot__pill, .yg-foot__social a, .yg-flags__btn { transition:none; }
        }
        /* ===== section title (tp-section-title) — universal: 40px, theme blue ===== */
        .tp-section-title { font-size:40px; color:#0303B8; }
        @media (max-width:1199px) { .tp-section-title { font-size:34px; } }
        @media (max-width:767px)  { .tp-section-title { font-size:28px; } }

        /* product-page lead paragraph: same blue title treatment, a step smaller than a
           real section heading so it doesn't outrank the h2s further down the page */
        .tp-services-details-wrap h3.tp-section-title { font-size:30px; line-height:1.32; }
        @media (max-width:1199px) { .tp-services-details-wrap h3.tp-section-title { font-size:26px; } }
        @media (max-width:767px)  { .tp-services-details-wrap h3.tp-section-title { font-size:23px; } }

        /* ===== section eyebrow (tp-section-sub-title) — universal redesign ===== */
        .tp-section-sub-title {
            display:inline-flex; align-items:center; gap:9px;
            font-family:var(--title-font,"Space Grotesk",sans-serif);
            font-weight:700; font-size:12.5px; letter-spacing:.16em; text-transform:uppercase;
            color:#0303B8;
            background:rgba(3,3,184,.06);
            border:1px solid rgba(3,3,184,.16);
            border-radius:999px; line-height:1; padding:10px 18px 10px 15px;
        }
        .tp-section-sub-title::before {
            content:""; flex:none; width:7px; height:7px; border-radius:50%;
            background:#0303B8; box-shadow:0 0 0 3px rgba(3,3,184,.16);
        }
        /* on dark/blue backgrounds */
        .tp-section-sub-title-sec,
        .tp-bg-black .tp-section-sub-title, .tp-bg-blue .tp-section-sub-title,
        .yg-old .tp-section-sub-title {
            color:#fff; background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.28);
        }
        .tp-section-sub-title-sec::before,
        .tp-bg-black .tp-section-sub-title::before, .tp-bg-blue .tp-section-sub-title::before,
        .yg-old .tp-section-sub-title::before { background:#fff; box-shadow:0 0 0 3px rgba(255,255,255,.22); }
        /* solid variant */
        .tp-section-sub-title-trd {
            color:#fff; background:#0303B8; border-color:transparent;
        }
        .tp-section-sub-title-trd::before { background:#fff; box-shadow:0 0 0 3px rgba(255,255,255,.25); }
        .tp-section-sub-title-land { font-size:13.5px; }
        @media (max-width:574.98px) {
            .tp-section-sub-title { font-size:11.5px; letter-spacing:.14em; padding:9px 15px 9px 13px; gap:8px; }
        }

        /* ===== yg-aslider — hakkımızda image slider ===== */
        .yg-aslider { position:relative; width:100%; min-width:0; }
        .yg-aslider__sw { width:100%; max-width:100%; overflow:hidden; border-radius:20px; }
        .yg-aslider .swiper-slide { width:100%; max-width:100%; height:auto; border-radius:20px; overflow:hidden; background:#eef2f9; }
        
        .yg-aslider .swiper-slide img {
            width:100%; max-width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; display:block;
            transform:scale(1.06); transition:transform 1.1s cubic-bezier(.22,.61,.36,1);
        }
        /* desktop: fixed 1 : 1.5 height-to-width (landscape 3:2) at every desktop size */
        @media (min-width:992px) { .yg-aslider .swiper-slide img { aspect-ratio:3/2; } }
        .yg-aslider .swiper-slide-active img { transform:scale(1); }
        /* controls */
        .yg-aslider__ui {
            display:flex; align-items:center; gap:14px; margin-top:20px;
        }
        .yg-aslider__btn {
            flex:none; width:46px; height:46px; border-radius:50%; cursor:pointer;
            display:grid; place-items:center;
            background:#fff; border:1px solid rgba(12,36,97,.16); color:#0c2461;
            transition:background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
        }
        .yg-aslider__btn:hover { background:#0303B8; border-color:#0303B8; color:#fff; transform:translateY(-2px); }
        .yg-aslider__btn.swiper-button-disabled { opacity:.35; pointer-events:none; }
        /* progress rail doubles as pagination */
        .yg-aslider__rail {
            position:relative; flex:1; height:3px; border-radius:999px;
            background:rgba(12,36,97,.12); overflow:hidden;
        }
        .yg-aslider__rail .swiper-pagination-progressbar-fill {
            position:absolute; inset:0; background:#0303B8; transform-origin:left top;
        }
        .yg-aslider__count {
            flex:none; font:600 13px/1 var(--title-font,"Space Grotesk",sans-serif);
            color:#0c2461; letter-spacing:.06em; min-width:52px; text-align:right;
        }
        .yg-aslider__count b { color:#0303B8; font-weight:700; }
        @media (max-width:991px) { .yg-aslider .swiper-slide { width:100%; max-width:100%; height:auto; border-radius:20px; overflow:hidden; background:#eef2f9; } }
        @media (max-width:575px) { .yg-aslider .swiper-slide { width:100%; max-width:100%; height:auto; border-radius:20px; overflow:hidden; background:#eef2f9; } .yg-aslider__btn { width:42px; height:42px; } }
        @media (prefers-reduced-motion:reduce) {
            .yg-aslider .swiper-slide, .yg-aslider .swiper-slide img, .yg-aslider__btn { transition:none; }
            .yg-aslider .swiper-slide img { transform:none; }
        }

        /* ===== yg-pgrid — homepage product-group mosaic (after hero) ===== */
        .yg-pgrid { padding:clamp(70px,8vw,110px) 0 0; }
        /* when the grid is the last section on a page, it needs its own closing space —
           elsewhere the following section supplies it */
        .yg-pgrid--last { padding-bottom:clamp(70px,8vw,110px); }
        .yg-pgrid__head { text-align:center; max-width:820px; margin:0 auto clamp(28px,3.6vw,48px); }
        
        .yg-pgrid__grid { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:225px; gap:14px; }
        .yg-tile { position:relative; display:block; overflow:hidden; border-radius:18px; isolation:isolate; border:1px solid #e4eaf4; transition:border-color .3s ease; }
        .yg-tile:hover { border-color:rgba(3,3,184,.35); }
        .yg-tile::after {
            content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
            background:#0303B8;
            clip-path:circle(0px at 13% 86%);
            transition:clip-path .55s cubic-bezier(.65,0,.35,1);
        }
        .yg-tile:hover::after { clip-path:circle(150% at 13% 86%); }
        .yg-tile img {
            width:100%; height:100%; object-fit:cover; display:block;
            transform:scale(1.02);
            transition:transform .8s cubic-bezier(.22,.61,.36,1);
        }
        .yg-tile:hover img { transform:scale(1.08); }
        /* white pill button carrying the product-group name */
        .yg-tile__btn {
            position:absolute; left:18px; bottom:18px; z-index:2; overflow:hidden;
            display:inline-flex; align-items:center; gap:9px; white-space:nowrap;
            background:#0303B8; color:#fff;
            font:600 13.5px/1 var(--title-font,"Space Grotesk",sans-serif); letter-spacing:.01em;
            padding:12px 19px; border-radius:999px; transform-origin:left bottom;
            transition:font-weight .35s ease, letter-spacing .45s cubic-bezier(.34,1.5,.64,1),
                       padding .45s cubic-bezier(.34,1.5,.64,1),
                       transform .55s cubic-bezier(.34,1.5,.64,1);
        }
        /* light sweeps across the pill as it grows */
        .yg-tile__btn::before {
            content:""; position:absolute; top:0; bottom:0; left:-60%; width:45%; z-index:-1;
            background:linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent);
            transform:skewX(-18deg); transition:left .7s cubic-bezier(.22,.61,.36,1);
        }
        .yg-tile:hover .yg-tile__btn::before { left:130%; }
        .yg-tile__btn svg { flex:none; transition:transform .5s cubic-bezier(.34,1.6,.64,1); }
        .yg-tile:hover .yg-tile__btn {
            transform:scale(2);
            font-weight:800; letter-spacing:.03em; padding:12px 22px;
        }
        .yg-tile:hover .yg-tile__btn svg { transform:translateX(5px) scale(1.15); }
        /* mosaic spans (mirrors the reference layout) */
        .yg-tile--a { grid-column:1/8;  grid-row:1/3; }
        .yg-tile--b { grid-column:8/13; grid-row:1/2; }
        .yg-tile--c { grid-column:8/13; grid-row:2/3; }
        .yg-tile--d { grid-column:1/6;  grid-row:3/4; }
        .yg-tile--e { grid-column:1/6;  grid-row:4/5; }
        .yg-tile--f { grid-column:6/13; grid-row:3/5; }
        @media (max-width:991px) {
            .yg-pgrid__grid { grid-auto-rows:200px; }
            .yg-tile--a { grid-column:1/13; grid-row:auto; }
            .yg-tile--b { grid-column:1/7;  grid-row:auto; }
            .yg-tile--c { grid-column:7/13; grid-row:auto; }
            .yg-tile--d { grid-column:1/7;  grid-row:auto; }
            .yg-tile--e { grid-column:7/13; grid-row:auto; }
            .yg-tile--f { grid-column:1/13; grid-row:auto; }
        }
        @media (max-width:575px) {
            .yg-pgrid__grid { grid-auto-rows:190px; gap:12px; }
            .yg-tile--a, .yg-tile--b, .yg-tile--c, .yg-tile--d, .yg-tile--e, .yg-tile--f { grid-column:1/13; }
            .yg-tile__btn { left:14px; bottom:14px; padding:11px 16px; font-size:13px; }
        }
        @media (prefers-reduced-motion:reduce) { .yg-tile img, .yg-tile__btn, .yg-tile__btn::before, .yg-tile__btn svg, .yg-tile::after { transition:none; } }

        /* footer credit line */
        .yg-old .ex-footer__bottom-links .disc {
            margin:0; font-size:13px; color:rgba(255,255,255,.62);
        }
        .yg-old .ex-footer__bottom-links .disc a {
            color:rgba(255,255,255,.85); text-decoration:none;
            transition:color .2s var(--ease);
        }
        .yg-old .ex-footer__bottom-links .disc a:hover { color:#fff; text-decoration:underline; text-underline-offset:3px; }

        /* ===== yg-cta — homepage contact call-to-action ===== */
        .yg-cta { padding:0 0 110px; }
        .yg-cta__card {
            position:relative; overflow:hidden; border-radius:28px; background:#0303B8; color:#fff;
            padding:clamp(34px,4.4vw,62px);
            display:grid; grid-template-columns:1.25fr 1fr; gap:clamp(26px,3.4vw,54px); align-items:center;
        }
        .yg-cta__card::after {
            content:""; position:absolute; right:-60px; bottom:-70px; width:300px; height:300px;
            border:1px solid rgba(255,255,255,.14); border-radius:50%; pointer-events:none;
        }
        .yg-cta__eyebrow {
            display:inline-flex; align-items:center; gap:10px; margin-bottom:14px;
            font:700 12px/1 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.75);
        }
        .yg-cta__eyebrow::before { content:""; width:22px; height:2px; background:#fff; }
        .yg-cta__title {
            font:800 clamp(1.5rem,1rem + 1.7vw,2.35rem)/1.15 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:-.02em; color:#fff; margin:0 0 14px;
        }
        .yg-cta__text { color:rgba(255,255,255,.82); font-size:15.5px; line-height:1.75; margin:0; max-width:52ch; }
        .yg-cta__side { position:relative; z-index:1; display:flex; flex-direction:column; gap:12px; }
        .yg-cta__row {
            display:flex; align-items:center; gap:14px; padding:14px 18px;
            background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.16); border-radius:16px;
            color:#fff; text-decoration:none;
            transition:background .25s ease, transform .25s ease, border-color .25s ease;
        }
        .yg-cta__row:hover { background:#fff; color:#0303B8; border-color:#fff; transform:translateX(4px); }
        .yg-cta__ic {
            position:relative; flex:none; width:46px; height:46px; border-radius:15px;
            display:grid; place-items:center; color:#fff;
            background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22);
            transition:background .3s cubic-bezier(.22,.61,.36,1), border-color .3s ease,
                       color .3s ease, transform .35s cubic-bezier(.34,1.4,.64,1), border-radius .3s ease;
        }
        /* soft inner highlight so the tile reads as glass, not a flat square */
        .yg-cta__ic::after {
            content:""; position:absolute; inset:1px; border-radius:14px; pointer-events:none;
            background:linear-gradient(160deg, rgba(255,255,255,.22), transparent 55%);
            opacity:1; transition:opacity .3s ease;
        }
        .yg-cta__ic svg { position:relative; z-index:1; }
        .yg-cta__row:hover .yg-cta__ic {
            background:#0303B8; border-color:#0303B8; color:#fff;
            border-radius:50%; transform:rotate(-8deg) scale(1.05);
        }
        .yg-cta__row:hover .yg-cta__ic::after { opacity:0; }
        /* only the text spans stack — the icon tile keeps its centering grid */
        .yg-cta__row > span > span, .yg-cta__row > span:not(.yg-cta__ic) { display:block; }
        .yg-cta__row .yg-cta__ic { display:grid; place-items:center; }
        .yg-cta__lbl { font:600 11px/1 var(--title-font,"Space Grotesk",sans-serif); letter-spacing:.14em; text-transform:uppercase; opacity:.7; margin-bottom:5px; }
        .yg-cta__val { font:600 15.5px/1.3 var(--title-font,"Space Grotesk",sans-serif); }
        .yg-cta__btn {
            display:inline-flex; align-items:center; gap:10px; align-self:flex-start; margin-top:6px;
            background:#fff; color:#0303B8; text-decoration:none; border-radius:999px; padding:14px 28px;
            font:600 15px/1 var(--title-font,"Space Grotesk",sans-serif);
            transition:transform .25s ease;
        }
        .yg-cta__btn:hover { transform:translateY(-2px); color:#0303B8; }
        @media (max-width:991px) { .yg-cta { padding-bottom:80px; } .yg-cta__card { grid-template-columns:1fr; } }
        @media (prefers-reduced-motion:reduce) { .yg-cta__row, .yg-cta__btn, .yg-cta__ic { transition:none; } }

        /* ===== third-level menu (Ürünler > kategori > ürün) ===== */
        .tp-header-menu ul li .sub-menu li.yg-has-sub { position:relative; }
        /* chevron marking a category that opens a flyout */
        .tp-header-menu .sub-menu li.yg-has-sub > a::after {
            content:"\f054"; font-family:"Font Awesome 6 Pro"; font-weight:900; font-size:9px;
            position:absolute; right:14px; top:50%; transform:translateY(-50%);
            opacity:.45; color:currentColor; transition:opacity .2s ease, right .2s ease;
        }
        .tp-header-menu .sub-menu li.yg-has-sub:hover > a::after { opacity:1; right:11px; color:#fff; }
        /* the flyout itself */
        .tp-header-menu ul li .sub-menu li.yg-has-sub > .sub-menu {
            left:calc(100% + 6px); top:-8px; width:max-content; min-width:225px; max-width:280px;
            padding:8px; border-radius:14px;
            box-shadow:0 24px 55px rgba(6,19,58,.16), 0 3px 10px rgba(6,19,58,.06);
            opacity:0; visibility:hidden; transform:translateX(-6px);
            transition:opacity .22s ease, transform .22s ease, visibility .22s ease;
        }
        .tp-header-menu ul li .sub-menu li.yg-has-sub:hover > .sub-menu {
            top:-8px; opacity:1; visibility:visible; transform:none;
        }
        /* flip to the left when the flyout would leave the viewport */
        .tp-header-menu ul li .sub-menu li.yg-has-sub.yg-flip > .sub-menu { left:auto; right:calc(100% + 6px); }
        .tp-header-menu ul li .sub-menu li.yg-has-sub.yg-flip > a::after { content:"\f053"; right:auto; left:14px; }
        .tp-header-menu ul li .sub-menu li.yg-has-sub.yg-flip:hover > a::after { left:11px; }
        .tp-header-menu .sub-menu li.yg-has-sub > .sub-menu li a { white-space:nowrap; }

        /* mobile menu: category groups inside the Ürünler accordion */
        .yg-mmenu__subcat {
            margin:14px 0 6px; padding-left:34px;
            font:700 11.5px/1.3 var(--title-font,"Space Grotesk",sans-serif);
            letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55);
        }
        .yg-mmenu__subcat:first-child { margin-top:4px; }

        /* ===== yg-rp — recent posts card (blog detail sidebar) ===== */
        .yg-rp { background:#f3f7fd; border-radius:22px; padding:26px 20px; }
        .yg-rp__title {
            display:flex; align-items:center; gap:10px; padding-left:6px; margin:0 0 16px;
            font:700 17px/1.2 var(--title-font,"Space Grotesk",sans-serif); color:#0c2461;
        }
        .yg-rp__dot { width:8px; height:8px; border-radius:50%; background:#0303B8; flex:none; }
        .yg-rp__list { display:flex; flex-direction:column; gap:6px; }
        .yg-rp__item {
            display:flex; align-items:center; gap:14px; padding:10px; border-radius:16px; text-decoration:none;
            transition:background .25s ease, transform .25s ease;
        }
        .yg-rp__item:hover { background:#fff; transform:translateX(4px); }
        .yg-rp__thumb { flex:none; width:60px; height:60px; border-radius:14px; overflow:hidden; }
        .yg-rp__thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease, ease); }
        .yg-rp__item:hover .yg-rp__thumb img { transform:scale(1.09); }
        .yg-rp__body { min-width:0; }
        .yg-rp__name {
            display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
            font:600 14.5px/1.35 var(--title-font,"Space Grotesk",sans-serif); color:#0c2461;
            transition:color .2s ease;
        }
        .yg-rp__item:hover .yg-rp__name { color:#0303B8; }
        .yg-rp__date { display:block; margin-top:5px; font:500 12px/1 var(--body-font,"Inter",sans-serif); color:#8794ac; }
        .yg-rp__arw {
            margin-left:auto; flex:none; color:#0303B8;
            opacity:0; transform:translate(-6px,6px);
            transition:opacity .25s ease, transform .25s ease;
        }
        .yg-rp__item:hover .yg-rp__arw { opacity:1; transform:none; }
        @media (max-width:991px) { .yg-rp { margin-top:40px; } }
        @media (prefers-reduced-motion:reduce) { .yg-rp__item, .yg-rp__thumb img, .yg-rp__name, .yg-rp__arw { transition:none !important; } }

        /* ===== yg-consent — KVKK cookie banner ===== */
        .yg-consent {
            position:fixed; left:18px; bottom:18px; z-index:9500;
            max-width:390px; background:#fff; border-radius:18px;
            box-shadow:0 22px 55px rgba(6,19,58,0.22), 0 3px 10px rgba(6,19,58,0.10);
            padding:20px 22px;
            opacity:0; transform:translateY(16px); pointer-events:none;
            transition:opacity 0.35s var(--ease), transform 0.35s var(--ease);
        }
        .yg-consent.is-show { opacity:1; transform:none; pointer-events:auto; }
        .yg-consent__text { margin:0 0 14px; font-family:var(--body-font, "Inter", sans-serif); font-size:13.5px; line-height:1.6; color:#51617f; }
        .yg-consent__text a { color:#0303B8; font-weight:600; text-decoration:underline; text-underline-offset:2px; }
        .yg-consent__btns { display:flex; gap:9px; }
        .yg-consent__btn {
            flex:1; padding:11px 0; border-radius:999px; cursor:pointer;
            font-family:var(--title-font, "Space Grotesk", sans-serif); font-weight:600; font-size:13.5px;
            transition:background 0.2s var(--ease), color 0.2s var(--ease), transform 0.2s var(--ease);
        }
        .yg-consent__accept { border:none; background:#0303B8; color:#fff; }
        .yg-consent__accept:hover { background:#02027e; }
        .yg-consent__deny { background:none; border:1px solid rgba(12,36,97,0.25); color:#0c2461; }
        .yg-consent__deny:hover { background:rgba(12,36,97,0.06); }
        .yg-consent__btn:active { transform:scale(0.97); }
        @media (max-width:480px) { .yg-consent { left:12px; right:12px; bottom:12px; max-width:none; } }
        @media (prefers-reduced-motion:reduce) { .yg-consent { transition:none; } }

        /* ===== header bar + its clearance =====
           <header> is position:absolute over the page, so <main> has to carry the header's
           exact height as top padding. Any surplus shows up as a strip of page background
           between the bar and the hero — which is what the three values below remove: the
           clearance was a flat 140/110 against real header heights of 126/110/72.

           Padding, not margin: a top margin here collapses through <main> and ScrollSmoother
           stops counting it, which cut the last ~140px of scroll and hid the footer.

           These live here rather than in each page's inline <style> so there is one place to
           correct if the header's contents ever change height.

           Scoped to :has(.ab-hero) because the home page is the only page with no breadcrumb
           hero — its own hero already carries a 146px top padding to clear the header and
           starts at y=0, so an unscoped rule pushed it down by the header height again. */
        #smooth-content main:has(.ab-hero) { padding-top:126px; }

        /* 768–1199: theme drops .tp-header-spacing to 20px, header measures 110px */
        @media (max-width:1199.98px) {
            #smooth-content main:has(.ab-hero) { padding-top:110px; }
        }

        /* Phone: the bar was noticeably thinner here than on any other breakpoint, so it gets
           more room — 24px against the theme's 15px, taking the header to 90px. The theme's
           own phone rule is also split across two queries that leave 575–575.98px uncovered
           and falling back to the 28px desktop padding; one query closes that hole. */
        @media (max-width:767.98px) {
            .tp-header-spacing { padding:24px 0; }
            #smooth-content main:has(.ab-hero) { padding-top:90px; }
        }

/* ===========================================================================
   Arabic — Cairo
   ---------------------------------------------------------------------------
   Space Grotesk and Inter carry no Arabic glyphs, so every Arabic page was
   falling through to whatever the operating system happened to pick. Cairo is
   drawn for Arabic and carries a matching Latin set, so mixed strings
   ("مضخات PP", "Yongrad") stay in one typeface instead of two.

   Scoped to html[lang="ar"], which is on the <html> element of the Arabic tree
   only — the other three languages are untouched and download nothing extra.

   The theme reaches font-family through variables in three different places, so
   all three are redirected rather than fighting each rule individually:
     main.css      body and h1-h6  -> var(--tp-theme-font)
     yongrad.css   components      -> var(--title-font) / var(--body-font)
     page <style>  .ab-hero        -> var(--ab-font)
   The handful of selectors that hardcode the family instead of using a variable
   are listed explicitly at the end.

   Icon fonts are deliberately not touched: Font Awesome sets its own family on
   the icon elements, and a blanket rule here would turn every glyph into a box.
   =========================================================================== */
html[lang="ar"] {
    --tp-theme-font:    "Cairo", "Segoe UI", system-ui, sans-serif;
    --tp-poppins-font:  "Cairo", "Segoe UI", system-ui, sans-serif;
    --tp-sora-font:     "Cairo", "Segoe UI", system-ui, sans-serif;
    --tp-playfair-font: "Cairo", "Segoe UI", system-ui, serif;
    --title-font:       "Cairo", "Segoe UI", system-ui, sans-serif;
    --body-font:        "Cairo", "Segoe UI", system-ui, sans-serif;
}

/* the hero block is styled by a <style> tag inside each page, which comes after
   this file — the extra attribute in the selector wins on specificity, not order */
html[lang="ar"] .ab-hero { --ab-font: "Cairo", "Segoe UI", system-ui, sans-serif; }

/* safety net: anything that inherits rather than declaring its own family */
html[lang="ar"] body,
html[lang="ar"] input,
html[lang="ar"] textarea,
html[lang="ar"] select,
html[lang="ar"] button {
    font-family: "Cairo", "Segoe UI", system-ui, sans-serif;
}

/* Selectors that name the family directly instead of going through a variable.
   These matter more than they look: several carry Arabic body copy — the product
   sub-heading, the FAQ question buttons, the family tiles — and were set in Inter,
   which has no Arabic glyphs at all, so the browser was quietly substituting some
   system font for those runs while the rest of the page was Cairo. */
html[lang="ar"] .yg-vm__card h3,
html[lang="ar"] .yg-vm__list strong,
html[lang="ar"] .yg-vm__values-title,
html[lang="ar"] .yg-vm__no,
html[lang="ar"] .yg-vm__val h4,
html[lang="ar"] .yg-prod__sub,
html[lang="ar"] .tp-faq-button,
html[lang="ar"] .tp-faq-arrow,
html[lang="ar"] .yg-fam__count,
html[lang="ar"] .yg-fam__label,
html[lang="ar"] .yg-swid__sub,
html[lang="ar"] .yg-swid__text,
html[lang="ar"] .yg-cat__desc {
    font-family: "Cairo", "Segoe UI", system-ui, sans-serif;
}

/* Three Arabic pages style themselves from a <style> block in the page rather than
   from this file — the contact card and the two policy pages. Those blocks are
   emitted after this stylesheet, so the extra attribute in the selector is what
   wins, not the order. Same problem as above: Arabic headings and Arabic contact
   details were set in Space Grotesk, which has no Arabic glyphs. */
html[lang="ar"] .yg-cinfo { --c-font: "Cairo", "Segoe UI", system-ui, sans-serif; }

html[lang="ar"] .yg-post-body h2,
html[lang="ar"] .yg-post-body h3,
html[lang="ar"] .yg-post-body h4,
html[lang="ar"] .yg-post-meta,
html[lang="ar"] .yg-post-body > p:first-of-type::first-letter,
html[lang="ar"] .yg-post-body ol > li::before {
    font-family: "Cairo", "Segoe UI", system-ui, sans-serif;
}

/* .yg-old re-declares --title-font and --body-font on itself. Custom properties
   resolve from the nearest ancestor that defines them, so for everything inside
   .yg-old that local pair shadowed the html[lang="ar"] pair entirely — which is why
   the homepage eyebrows and buttons stayed on Space Grotesk while the rest of the
   page had already moved to Cairo. Redirect the variables at that scope too. */
html[lang="ar"] .yg-old {
    --title-font: "Cairo", "Segoe UI", system-ui, sans-serif;
    --body-font:  "Cairo", "Segoe UI", system-ui, sans-serif;
}

/* category tile headings hardcode Poppins rather than using a variable */
html[lang="ar"] .yg-cat__title,
html[lang="ar"] .yg-blog__flag,
html[lang="ar"] .yg-cta__eyebrow,
html[lang="ar"] .yg-foot__eyebrow {
    font-family: "Cairo", "Segoe UI", system-ui, sans-serif;
}

/* ---------------------------------------------------------------------------
   Arabic — generated sweep

   Every selector below names a Latin family directly instead of going through a
   custom property, so the scoped variable block above cannot reach them. Left
   alone they render Arabic text in a font with no Arabic glyphs, and the browser
   silently substitutes a system face — which is what was still happening on the
   blog index and the service pages after the first pass.

   Generated by scratchpad/ar_font_sweep.php; re-run it if the stylesheets change.
   --------------------------------------------------------------------------- */
html[lang="ar"] .yg-cat__desc,
html[lang="ar"] .yg-cat__title,
html[lang="ar"] .yg-fam__count,
html[lang="ar"] .yg-fam__label,
html[lang="ar"] .yg-prod__faq .tp-faq-button,
html[lang="ar"] .yg-prod__sub,
html[lang="ar"] .yg-swid__sub,
html[lang="ar"] .yg-swid__text,
html[lang="ar"] .yg-vm__card h3,
html[lang="ar"] .yg-vm__list strong,
html[lang="ar"] .yg-vm__no,
html[lang="ar"] .yg-vm__val h4,
html[lang="ar"] .yg-vm__values-title {
    font-family: "Cairo", "Segoe UI", system-ui, sans-serif;
}

/* The blog index and the service pages each define their own private font variable
   on a wrapper — --b-title and --s-title. Custom properties resolve from the nearest
   ancestor that sets them, so these shadowed the html[lang="ar"] values for everything
   inside those wrappers, leaving Arabic post titles and service headings in a Latin
   face. Completes the set: --ab-font, --b-title, --body-font, --c-font, --s-title,
   --title-font and the four --tp-* theme fonts are now all redirected for Arabic. */
html[lang="ar"] .yg-blog { --b-title: "Cairo", "Segoe UI", system-ui, sans-serif; }
html[lang="ar"] .yg-srv  { --s-title: "Cairo", "Segoe UI", system-ui, sans-serif; }

/* ---------------------------------------------------------------------------
   Intrinsic image dimensions
   Every <img> now carries its real width and height so the browser can reserve
   the correct box before the file arrives — the logo is styled width-only and
   used to make the page jump as it loaded.

   A browser only derives the height from that aspect ratio when CSS leaves the
   height free. Without this the attribute height is taken literally — the header
   logo, sized by main.js from its data-width, rendered 730px tall.

   This is deliberately a bare element selector, the lowest specificity there is,
   so every existing rule that sets a real height (the 21px flag icons, the 64px
   footer logo) still wins. It restores exactly the pre-attribute rendering while
   keeping the aspect ratio the browser now knows in advance.
   --------------------------------------------------------------------------- */
img { height: auto; }

/* ---------------------------------------------------------------------------
   Arabic typography

   Three Latin typographic habits in this theme were being applied to the whole
   /ar/ tree, and Arabic cannot take any of them:

   · letter-spacing — Arabic is a CONNECTED script. Positive tracking pulls the
     joins apart into disconnected stumps; negative tracking (-0.8px on every
     section title here) crushes them into each other. Either way the word stops
     reading as a word. Latin and Cyrillic tolerate tracking because their
     letters stand alone; Arabic does not.
   · font-style: italic — Arabic has no italic form. Asked for one, the browser
     synthesises an oblique by shearing the glyphs, which distorts the connected
     strokes and the dot positions.
   · the heading <span> stack ended in `serif` while the heading around it ended
     in `sans-serif`, so any glyph Cairo does not cover fell back to a different
     face mid-heading — the lighter, differently-shaped word in
     "الطلاء والبلاستيك والعمليات الصناعية".

   Scoped to [lang="ar"] on purpose: the italic second half of a heading is a
   deliberate design element and stays exactly as it is in the Latin and
   Cyrillic trees, where it is typographically valid.

   Tracking is set by rules like `.ab-hero .ab-eyebrow` that outrank any selector
   built from element names, so the reset is !important. That is the case it
   exists for: a whole-script correction that has to beat every component rule,
   confined to one language tree.
   --------------------------------------------------------------------------- */
[lang="ar"],
[lang="ar"] * {
    letter-spacing: normal !important;
    font-style: normal !important;
}

/* one family for the whole heading, span included */
[lang="ar"] h1, [lang="ar"] h2, [lang="ar"] h3, [lang="ar"] h4,
[lang="ar"] h1 span, [lang="ar"] h2 span,
[lang="ar"] h3 span, [lang="ar"] h4 span {
    font-family: Cairo, "Segoe UI", system-ui, sans-serif;
}

/* The section headings alone run right-to-left, as requested — the rest of the
   Arabic tree keeps its left-to-right layout.

   Only `direction` is set. text-align on these headings is `start`, which
   resolves to the right edge by itself once the base direction is rtl, and the
   one centred heading stays centred. Writing text-align:right explicitly would
   flatten that difference. */
[lang="ar"] .tp-section-title { direction: rtl; }
