EN
EL
DTAutomation
Από τον Κώδικα στη Θέση σε Λειτουργία
(function() { function scaleP1() { var panel = document.getElementById('dta-p1-panel'); var name = document.getElementById('dta-p1-name'); var sub = document.getElementById('dta-p1-sub'); var logo = document.getElementById('dta-p1-logo'); var profile = document.getElementById('dta-p1-profile'); if (!panel || !name) return; var w = panel.offsetWidth; if (w >= 500) { var scale = w / 800; var namePx = Math.min(52, Math.max(16, Math.round(52 * scale))); var subPx = Math.min(26, Math.max(11, Math.round(26 * scale))); var assetPx = Math.min(120, Math.max(55, Math.round(120 * scale))); var langPx = Math.min(13, Math.max(9, Math.round(13 * scale))); document.querySelectorAll('.dta-p1-lang-btn').forEach(function(b) { b.style.setProperty('font-size', langPx + 'px', 'important'); }); name.style.setProperty('max-height', namePx + 'px', 'important'); name.style.setProperty('max-width', '100%', 'important'); name.style.setProperty('height', 'auto', 'important'); sub.style.setProperty('font-size', subPx + 'px', 'important'); logo.style.setProperty('height', assetPx + 'px', 'important'); profile.style.setProperty('width', assetPx + 'px', 'important'); profile.style.setProperty('height', assetPx + 'px', 'important'); } else { name.style.removeProperty('max-height'); name.style.removeProperty('max-width'); name.style.removeProperty('height'); sub.style.removeProperty('font-size'); logo.style.removeProperty('height'); profile.style.removeProperty('width'); profile.style.removeProperty('height'); } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', scaleP1); } else { scaleP1(); } window.addEventListener('resize', scaleP1); setTimeout(scaleP1, 300); setTimeout(scaleP1, 800); /* ── DTA CONFIG LINKS ── */ function applyConfig() { var cfg = window.dtaConfig || {}; var logoLink = document.getElementById('dta-p1-logo-link'); var profileLink = document.getElementById('dta-p1-profile-link'); var personLink = document.getElementById('dta-p1-person-link'); if (logoLink) logoLink.href = 'mailto:' + (cfg.emailInfo || '[email protected]'); if (profileLink) profileLink.href = cfg.linkedin || 'https://www.linkedin.com/in/dimitrios-tsiolchas/'; if (personLink) personLink.href = 'mailto:' + (cfg.emailPersonal || '[email protected]'); } applyConfig(); setTimeout(applyConfig, 500); })();
13.5+Χρόνια ΕμπειρίαςΒΙΟΜΗΧΑΝΙΚΟΣ ΕΛΕΓΧΟΣ
& ΑΥΤΟΜΑΤΙΣΜΟΣ
6+Χρόνια ΕμπειρίαςΒΙΟΜΗΧΑΝΙΚΑ ΕΝΣΟΜΑΤΩΜΕΝΑ
ΗΛΕΚΤΡΟΝΙΚΑ ΣΥΣΤΗΜΑΤΑ
43+Παραδοτέα Έργα
≈ 0FAT/SAT Εκπλήξεις
EUΕξ Αποστάσεως
& On-Site
≈ 0FAT/SAT Εκπλήξεις
EUΕξ Αποστάσεως
& On-Site

PLC
PLC
i
HMI
HMI
i
SCADA
SCADA
i
Robotics
Robotics
i
Motion
Motion
i
Robotics
Robotics
i
Motion
Motion
i
Ποιος Ειμαι

Είμαι ο Δημήτριος Τσιολχάς — Senior Μηχανικός Αυτοματισμού με έδρα τη Θεσσαλονίκη, διαθέσιμος για ανεξάρτητη (Freelance) και επί συμβολαίου εργασία σε όλη την ΕΕ. Ένας μηχανικός που αναλαμβάνει τον πλήρη κύκλο ζωής ενός έργου — από την ιδέα ως τη θέση σε λειτουργία — χωρίς εκπλήξεις, είναι σπάνιος. Αυτό ακριβώς παρέχουν οι υπηρεσίες μου.

Με 13,5+ χρόνια εμπειρίας σε Προγραμματιζόμενους Λογικούς Ελεγκτές (PLC), Οθόνες Διεπαφής Ανθρώπου-Μηχανής (HMI), Εποπτικό Έλεγχο (SCADA), Ρομποτική & Προηγμένο Πολυαξονικό Συγχρονισμένο Έλεγχο Κίνησης, αναλαμβάνω πλήρως τη μηχανουργική διαδικασία — σχεδιασμό, ενσωμάτωση, προγραμματισμό και θέση σε λειτουργία FAT/SAT. Δεν μεταβιβάζω προβλήματα. Τα λύνω.

Διαθέσιμος · Freelance · Επί Συμβολαίου · Εξ Αποστάσεως · On-Site · ΕΕ
Τι Λενε οι Αλλοι
Evangelos Katsos
Evangelos Katsos
Προϊστάμενος Ηλεκτρολογικών & Αυτοματισμών · AKTOR SA
Sep 2019

It was a great experience for me to work together with Dimitrios and I learned a lot during our cooperation.

Dimitrios is a passionate, yet a self-motivated senior engineer as well, who is specialized in Control and Automation Application Projects, while during the time we jointly collaborated, he attained expertise in the field of Automated Wastewater Treatment Plants.

Key strengths, which I distinguish, include, a dynamic cognitive background, proven competency of effective communication, as well as fast adaptation in diverse technical business environments.

Most importantly, not only he demonstrates in-depth engineering experience in large scale Automation Projects, in programming of PLC and SCADA, in Networking and FieldBus Communications and in VFD applications, but he effectively administers exploitation of available resources and creative problem solving, through abstract, lateral and concrete thinking, as well.

I'm looking forward collaborating with him on a future project!

Alexander Astaras
Alexander Astaras
Επίκουρος Καθηγητής · ACT & Ερευνητής · ΑΠΘ
Sep 2011

Dimitrios is a bright, innovative and hard-working automation engineer. I have been his teacher in digital electronics and also supervised his final year project. He aced both my undergraduate courses, while during his project he demonstrated his ability to take an engineering challenge from a paper napkin sketch to a fully tested, documented and working electronics system. During the project he also proved that he can generate and fulfill design requirements, prepare a realistic Gantt chart and stick to its deadlines, foresee future problems and take action ahead of time, as well as take mishaps in stride. He is a well mannered team player and collaborating with him has been a joy.

(function() { /* ── PILL SCALING ── */ function scalePill() { var pill = document.getElementById('dta-p3-pill'); var text = document.getElementById('dta-p3-pill-text'); if (!pill || !text) return; text.style.fontSize = ''; var pillW = pill.offsetWidth; var available = pillW - 60; text.style.fontSize = '15px'; var textW = text.scrollWidth; if (textW > available) { var ratio = available / textW; var newSize = Math.max(9, Math.floor(15 * ratio)); text.style.setProperty('font-size', newSize + 'px', 'important'); } else { text.style.setProperty('font-size', '15px', 'important'); } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', scalePill); } else { scalePill(); } window.addEventListener('resize', scalePill); setTimeout(scalePill, 300); setTimeout(scalePill, 800); /* ── ACCORDION ── */ var accordion = document.getElementById('dta-p3-ref-accordion'); var toggle = document.getElementById('dta-p3-ref-toggle'); if (toggle && accordion) { toggle.addEventListener('click', function() { accordion.classList.toggle('open'); }); } /* ── SLIDER ── */ var track = document.getElementById('dta-p3-ref-track'); var current = 0; var total = 2; function goTo(idx) { current = idx; if (track) track.style.transform = 'translateX(-' + (current * 100) + '%)'; var prevBtns = [document.getElementById('dta-p3-btn-prev'), document.getElementById('dta-p3-btn-prev2')]; var nextBtns = [document.getElementById('dta-p3-btn-next'), document.getElementById('dta-p3-btn-next2')]; prevBtns.forEach(function(b) { if (!b) return; current === 0 ? b.classList.add('hidden') : b.classList.remove('hidden'); }); nextBtns.forEach(function(b) { if (!b) return; current === total - 1 ? b.classList.add('hidden') : b.classList.remove('hidden'); }); var counter = document.getElementById('dta-p3-counter'); if (counter) counter.textContent = (current + 1) + ' / ' + total; } ['dta-p3-btn-next', 'dta-p3-btn-next2'].forEach(function(id) { var btn = document.getElementById(id); if (btn) btn.addEventListener('click', function() { if (current < total - 1) goTo(current + 1); }); }); ['dta-p3-btn-prev', 'dta-p3-btn-prev2'].forEach(function(id) { var btn = document.getElementById(id); if (btn) btn.addEventListener('click', function() { if (current > 0) goTo(current - 1); }); }); /* reset to card 1 on accordion close */ if (accordion) { var obs = new MutationObserver(function() { if (!accordion.classList.contains('open')) { goTo(0); } }); obs.observe(accordion, { attributes: true, attributeFilter: ['class'] }); } /* outside click to close accordion */ document.addEventListener('click', function(e) { if (!accordion || !accordion.classList.contains('open')) return; var panel = document.getElementById('dta-p3-panel'); if (panel && panel.contains(e.target)) return; accordion.classList.remove('open'); }); /* expose close function for Panel 2 to call before dimming */ window.dtaP3CloseAccordion = function() { if (accordion) accordion.classList.remove('open'); }; })();
Υπηρεσιες
  • ⚙️⚙️
    Ολοκληρωμένη Ανάπτυξη Συστημάτων Βιομηχανικού Αυτοματισμού

    Από την αρχική ιδέα — συμπεριλαμβανομένης Εφαρμοσμένης Έρευνας & Ανάπτυξης — έως τον πλήρη προγραμματισμό PLC, HMI, Ρομποτική, Έλεγχο Κίνησης και την ενσωμάτωση συστημάτων με Mitsubishi MELSEC & Siemens SIMATIC — πλατφόρμες που κατέχω σε βάθος, χωρίς καμία καμπύλη εκμάθησης. Παραδίδω αξιόπιστες, συντηρήσιμες λύσεις έτοιμες για παραγωγή από την πρώτη μέρα.

  • ⚙️⚙️
    Ενσωμάτωση Ρομποτικής & Προηγμένου Ελέγχου Κίνησης

    Πλήρης ενσωμάτωση βιομηχανικών ρομπότ FANUC και Mitsubishi MELFA με συστήματα συγχρονισμένης κίνησης υψηλών επιδόσεων (AC Σερβοενισχυτές, MELSERVO, Βηματικά Ενσωματωμένα Σερβομοτέρ Κλειστού Βρόχου, VFD). Εξειδίκευση σε ρομποτική συγκόλληση, προσαρμοσμένη παλετοποίηση, τροφοδοσία και χειρισμός μηχανών, pick-and-place και πολύπλοκες πολυαξονικές εφαρμογές.

  • ⚙️⚙️
    Θέση σε Λειτουργία, FAT/SAT & Υποστήριξη On-Site / Εξ Αποστάσεως

    Πλήρεις εργοστασιακές δοκιμές αποδοχής καθώς και δοκιμές αποδοχής εγκαταστάσεων παραγωγής, ολοκληρωμένη θέση σε λειτουργία, αντιμετώπιση βλαβών και συνεχής τεχνική υποστήριξη — επιτόπια και εξ αποστάσεως. Εγγυώμαι μηδενικές εκπλήξεις κατά την εκκίνηση και ταχεία επίλυση κάθε προβλήματος παραγωγής.

  • ⚙️⚙️
    Στρατηγική Συμβουλευτική Αυτοματισμού & Βελτιστοποίηση Πλατφόρμας

    Εξειδικευμένη συμβουλευτική για σύνθετα έργα αυτοματισμού, αξιοποιώντας την εις βάθος εμπειρία μου στη Mitsubishi και Siemens, για βελτιστοποίηση & αναβάθμιση νέων και παλαιών συστημάτων. Σχεδιάζω συστήματα ασφάλειας SIL3, υλοποιώ ολοκληρωμένη Turnkey ενσωμάτωση μεταξύ μηχανών, ρομποτικής και ανωτέρου επιπέδου συστημάτων, και παρέχω στρατηγικό σχεδιασμό για αποδοτικότητα και επεκτασιμότητα.

  • ⚙️⚙️
    Παραμετροποίηση, Προγραμματισμός & Θέση σε Λειτουργία Μεμονωμένων Υλικών Αυτοματισμού

    Αυτόνομες υπηρεσίες για επιμέρους μονάδες βιομηχανικού υλικού αυτοματισμού, συμπεριλαμβανομένης προσαρμοσμένης παραμετροποίησης, προγραμματισμού και θέσης σε λειτουργία συστημάτων PLC, HMI, SCADA, Ρομποτικής & Ελέγχου Κίνησης. Ιδανικό για στοχευμένες αναπτύξεις εφαρμογών, αναβαθμίσεις ή αντιμετώπιση βλαβών, με πλήρη υποστήριξη Mitsubishi, Siemens, FANUC και συναφών τεχνολογιών.

(function() { function initP4() { var panel = document.querySelector('.dta-p4'); var items = document.querySelectorAll('.dta-p4-item'); if (!panel || !items.length) return; items.forEach(function(item) { if (item.dataset.p4init) return; item.dataset.p4init = 'true'; var header = item.querySelector('.dta-p4-header'); if (!header) return; header.addEventListener('click', function() { var isOpen = item.classList.contains('open'); items.forEach(function(i) { i.classList.remove('open'); }); if (!isOpen) { item.classList.add('open'); panel.classList.add('has-open'); } else { panel.classList.remove('has-open'); } }); }); } initP4(); setTimeout(initP4, 300); setTimeout(initP4, 800); /* ── OUTSIDE CLICK TO CLOSE ── */ document.addEventListener('click', function(e) { if (!e.target.closest('.dta-p4')) { var panel = document.querySelector('.dta-p4'); var items = document.querySelectorAll('.dta-p4-item'); if (panel) panel.classList.remove('has-open'); items.forEach(function(i) { i.classList.remove('open'); }); } }); })();
Χαρτοφιλακιο Εργων
  • 🗂️📄
    #43Applied R&D, Full-Stack, Life Cycle, Continuous Improvement Development: Machinery Operation Philosophy Enhancement & Design, Integration, Configuration, Programming, Commissioning & Functional Integrity Verification (FAT/SAT) of all underline Industrial Automation Equipment involved (PLC, HMI, Industrial Robots, Servo Drives, Stepper Drives, VFDs)Jan 2020 – Present
  • 🗂️📄
    #42Single Servo-Axis Flow Pack MachineJun 2019
  • 🗂️📄
    #41Automated Metal Hinge Drilling and Tapping Processing MachineFeb 2019 – Apr 2019
  • 🗂️📄
    #40Automated Sheet Metal Feeder & Iron Casting Press MachineSep 2018 – Nov 2018
  • 🗂️📄
    #39A Proprietary Application User Interface Tool For Calibrating And Evaluating The Taught Points Inside A Fanuc Teach Pendant ProgramJul 2018 – Aug 2018
  • 🗂️📄
    #38Automated Robotic Cell For Weight Plates DistributionJun 2018 – Aug 2018
  • 🗂️📄
    #37Troubleshooting & Maintenance Of An Automated Silicone Tube Production MachineApr 2018
  • 🗂️📄
    #36Operational Functioning Review Of A Theater Automation System Infrastructure And Overall Optimization Of Its Underlying PLC And HMI Software In Order To Comply Accordingly With The Standards Of Din 56950-1 And IEC 61508 (SIL3)Sep 2017 – Dec 2017
  • 🗂️📄
    #353 Servo-Axis Flow Pack MachineDec 2017
  • 🗂️📄
    #34Re-Design, Re-Program And Re-Implementation Of A Process Automation System For The Transportation And Supply Of Empty Cans To A Canning Plant's Fruit Filling StationsJun 2017 – Jul 2017
  • 🗂️📄
    #33Obsolete Fruit Juice-Puree Aseptic/Filling Process Automation Machine Maintenance, Troubleshooting & CommissioningJun 2017
  • 🗂️📄
    #32Asphalt Process Automation Production Plant TroubleshootingFeb 2017 – Mar 2017
  • 🗂️📄
    #31Automated Robotic Cell For MIG Welding Process2016 – 2017
  • #30Design, Development And Implementation Of A Real-Time And Fault-Tolerant ModBus RTU Master Function-Block Library For Mitsubishi iQ-F FX5 PLC2017
  • 🗂️📄
    #29Troubleshooting, Maintenance & Optimization Of A Fruit Juice/Puree Aseptic/Filling Process Automation MachineNov 2016
  • 🗂️📄
    #28Maintenance And Update Of A Fruit Juice/Puree Aseptic/Filling Process Automation MachineNov 2016
  • 🗂️📄
    #27Motion Control System Upgrade Of "Pack Line PXM Filling And Sealing Machine"Oct 2016
  • 🗂️📄
    #26Automated Robotic Cell For "Assembly & Welding Of Vertical Type Micro-Wind Turbine Parts"2014 – 2016
  • #25Design, Development And Implementation Of Function-Block Library For Driving Delta Inverters Through Modbus With Simatic S7-1200 PLC2016
  • #24Design, Development And Implementation Of Function-Block Library For Driving Solocom & Hapn VFD's Through Modbus With Simatic S7-1200 PLC2016
  • 🗂️📄
    #23Improvement And Optimization Of Animal Food Production Process2016
  • 🗂️📄
    #22Industrial Automation Infrastructure Upgrade At The Facilities Of Biological Wastewater Treatment Of Thessaloniki (Greece)2015 – 2016
(function() { function initP5() { var list = document.getElementById('dta-p5-list'); if (!list) return; var s = document.createElement('style'); s.textContent = '#dta-p5-list{max-height:420px!important;overflow-y:scroll!important;overscroll-behavior:contain!important;}'; document.head.appendChild(s); list.addEventListener('wheel', function(e) { e.stopPropagation(); }, { passive: true }); } initP5(); setTimeout(initP5, 300); setTimeout(initP5, 800); })();
Επικοινωνια

Ευχαριστώ — το μήνυμά σας στάλθηκε.
Θα επικοινωνήσω μαζί σας το συντομότερο δυνατό.

(function() { function positionWatermark() { var panel = document.getElementById('dta-p8-panel'); var wm = panel ? panel.querySelector('.dta-p8-watermark') : null; if (!wm) return; var w = panel.offsetWidth; if (w < 520) { wm.style.setProperty('top', '12px', 'important'); wm.style.setProperty('bottom', 'auto', 'important'); wm.style.setProperty('width', '44px', 'important'); } else { wm.style.setProperty('bottom', '14px', 'important'); wm.style.setProperty('top', 'auto', 'important'); wm.style.setProperty('width', '72px', 'important'); } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', positionWatermark); } else { positionWatermark(); } window.addEventListener('resize', positionWatermark); setTimeout(positionWatermark, 300); setTimeout(positionWatermark, 800); })();
DTAutomation
Από τον Κώδικα στη Θέση σε Λειτουργία
© dt-automation.gr
Με επιφύλαξη παντός δικαιώματος
Επάνω
Διαθέσιμος · Freelance · Επί Συμβολαίου · Εξ Αποστάσεως · On-Site · ΕΕ
Δημήτριος Τσιολχάς · Ελεύθερος Επαγγελματίας · +30 694 294 8395
ΦΠΑ: 125691570 · ΔΟΥ: Ε' Θεσσαλονίκης · ΓΕΜΗ:
Αγίας Τριάδος 26 · ΤΚ 57010 · Ασβεστοχώρι – Θεσσαλονίκη
(function() { var yr = document.getElementById('dta-p7-year'); if (yr) yr.textContent = new Date().getFullYear(); function applyConfig() { var cfg = window.dtaConfig || {}; var emailLink = document.getElementById('dta-p7-email-link'); var linkedinLink = document.getElementById('dta-p7-linkedin-link'); if (emailLink) emailLink.href = 'mailto:' + (cfg.emailInfo || '[email protected]'); if (linkedinLink) linkedinLink.href = cfg.linkedin || 'https://www.linkedin.com/in/dimitrios-tsiolchas/'; } applyConfig(); setTimeout(applyConfig, 500); /* ── SCROLL TO CONTACT + SET SUBJECT + FLASH ── */ window.dtaScrollToContact = function(subjectValue) { var panel = document.getElementById('dta-p8-panel'); if (!panel) return; var y = panel.getBoundingClientRect().top + window.pageYOffset - 60; window.scrollTo({ top: y, behavior: 'smooth' }); setTimeout(function() { /* Clear all fields except subject */ var name = document.getElementById('dta-p8-name'); var email = document.getElementById('dta-p8-email'); var company = document.getElementById('dta-p8-company'); var message = document.getElementById('dta-p8-message'); if (name) name.value = ''; if (email) email.value = ''; if (company) company.value = ''; if (message) message.value = ''; /* Set subject */ var select = document.getElementById('dta-p8-subject'); if (select) { var tmp = document.createElement('div'); tmp.innerHTML = subjectValue; var decoded = tmp.textContent || tmp.innerText || subjectValue; select.value = decoded; select.dispatchEvent(new Event('change')); } /* Focus name field */ var nameField = document.getElementById('dta-p8-name'); if (nameField) nameField.focus(); /* Bounce panel */ if (window.bouncePanel) window.bouncePanel(); /* Multi-flash Name label + Subject label for 3 seconds */ var nameLabel = document.querySelector('label[for="dta-p8-name"]'); var subjectLabel = document.querySelector('label[for="dta-p8-subject"]'); [nameLabel, subjectLabel].forEach(function(lbl) { if (!lbl) return; lbl.classList.remove('dta-p8-label-flash'); void lbl.offsetWidth; lbl.classList.add('dta-p8-label-flash'); setTimeout(function() { lbl.classList.remove('dta-p8-label-flash'); }, 3100); }); }, 800); }; function scaleP7() { var panel = document.getElementById('dta-p7-panel'); if (!panel) return; var w = panel.offsetWidth; if (w < 600 && window.innerHeight > window.innerWidth) { panel.style.setProperty('grid-template-columns', '1fr', 'important'); panel.style.setProperty('justify-items', 'center', 'important'); var left = document.getElementById('dta-p7-left'); var right = document.getElementById('dta-p7-right'); if (left) left.style.setProperty('align-items', 'center', 'important'); if (right) { right.style.setProperty('justify-content', 'center', 'important'); right.style.setProperty('align-items', 'center', 'important'); right.style.setProperty('align-self', 'auto', 'important'); var r1=document.getElementById('dta-p7-row1');var r2=document.getElementById('dta-p7-row2'); if(r1)r1.style.setProperty('justify-content','center','important'); if(r2)r2.style.setProperty('justify-content','center','important'); } } else { panel.style.setProperty('grid-template-columns', 'auto minmax(0, 1fr) auto', 'important'); panel.style.removeProperty('justify-items'); var left = document.getElementById('dta-p7-left'); var right = document.getElementById('dta-p7-right'); if (left) left.style.removeProperty('align-items'); if (right) { right.style.setProperty('justify-content', 'space-between', 'important'); right.style.setProperty('align-items', 'flex-end', 'important'); right.style.setProperty('align-self', 'stretch', 'important'); var r1=document.getElementById('dta-p7-row1');var r2=document.getElementById('dta-p7-row2'); if(r1)r1.style.setProperty('justify-content','center','important'); if(r2)r2.style.setProperty('justify-content','center','important'); } } var isLandscape = window.innerWidth > window.innerHeight && window.innerHeight < 500; var effectiveW = isLandscape ? window.innerWidth : Math.max(w, 400); var lf = isLandscape ? 0.78 : 1.0; var scale = effectiveW / 900; var brandPx = Math.min(22, Math.max(14, Math.round(22 * scale * lf))); var taglinePx = Math.min(10, Math.max(6, Math.round(10 * scale * lf))); var copyPx = Math.min(10, Math.max(6, Math.round(10 * scale * lf))); var topPx = Math.min(12, Math.max(8, Math.round(12 * scale * lf))); var pillPx = Math.min(11, Math.max(6, Math.round(11 * scale * lf))); var linkPx = Math.min(12.5, Math.max(7, Math.round(12.5 * scale * lf))); var detailsPx = Math.min(11, Math.max(6, Math.round(11 * scale * lf))); var contactPx = Math.min(11, Math.max(6, Math.round(11 * scale * lf))); var brand = document.getElementById('dta-p7-brand'); if (brand) brand.style.setProperty('height', brandPx + 'px', 'important'); document.getElementById('dta-p7-tagline').style.setProperty('font-size', taglinePx + 'px', 'important'); document.getElementById('dta-p7-copy').style.setProperty('font-size', copyPx + 'px', 'important'); var topLink = document.getElementById('dta-p7-top-link'); if (topLink) topLink.style.setProperty('font-size', topPx + 'px', 'important'); var pill = document.getElementById('dta-p7-pill'); if (pill) { pill.style.setProperty('font-size', pillPx + 'px', 'important'); pill.style.setProperty('white-space', isLandscape ? 'normal' : '', 'important'); } var d1 = document.getElementById('dta-p7-details-1'); var d2 = document.getElementById('dta-p7-details-2'); var d3 = document.getElementById('dta-p7-details-3'); if (d1) { d1.style.setProperty('font-size', detailsPx + 'px', 'important'); d1.style.setProperty('white-space', isLandscape ? 'normal' : '', 'important'); } if (d2) { d2.style.setProperty('font-size', detailsPx + 'px', 'important'); d2.style.setProperty('white-space', isLandscape ? 'normal' : '', 'important'); } if (d3) { d3.style.setProperty('font-size', detailsPx + 'px', 'important'); d3.style.setProperty('white-space', isLandscape ? 'normal' : '', 'important'); } var cb = document.getElementById('dta-p7-contact-btn'); if (cb) cb.style.setProperty('font-size', contactPx + 'px', 'important'); document.querySelectorAll('.dta-p7-link').forEach(function(l) { l.style.setProperty('font-size', linkPx + 'px', 'important'); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', scaleP7); } else { scaleP7(); } window.addEventListener('resize', scaleP7); setTimeout(scaleP7, 300); setTimeout(scaleP7, 800); })();