/* styles.css */
:root{--purple:#5c287e;--ink:#183c4a;--dark:#0c3746;--mint:#e8f6f3;--paper:#f9fbfa;--white:#fff;--line:#bbd8d2;--fa:"Vazirmatn",sans-serif;--display:"Manrope","Vazirmatn",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--mint);color:var(--ink);font-family:var(--fa);margin:0;overflow-x:hidden}a{color:inherit}.site-header{align-items:center;background:rgba(249,251,250,.94);border-bottom:1px solid rgba(24,60,74,.08);display:flex;height:88px;justify-content:space-between;padding:0 clamp(22px,calc(4 * var(--vw, 1vw)),72px);position:sticky;top:0;z-index:50;backdrop-filter:blur(16px)}.brand{display:block;line-height:0}.brand img{height:48px;object-fit:contain;width:auto}.main-nav{align-items:center;display:flex;gap:clamp(16px,calc(2.3 * var(--vw, 1vw)),36px);margin-inline-start:calc(5 * var(--vw, 1vw))}.main-nav a,.client-link{font-size:12px;text-decoration:none;transition:color .2s}.main-nav a:hover,.client-link:hover{color:var(--purple)}.header-actions{align-items:center;display:flex;gap:22px}.header-cta,.button{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:700;gap:23px;justify-content:center;padding:14px 19px;text-decoration:none;transition:transform .2s,background .2s}.header-cta{background:var(--purple);color:white}.header-cta:hover,.button:hover{transform:translateY(-2px)}.header-cta span,.button span,.text-button span{font-family:Arial,sans-serif;font-size:17px}.menu-toggle{background:none;border:0;display:none}.menu-toggle span{background:var(--ink);display:block;height:1px;margin:5px;width:23px}.hero{align-items:center;display:grid;gap:clamp(42px,calc(6 * var(--vw, 1vw)),110px);grid-template-columns:.87fr 1.13fr;min-height:calc(100vh - 88px);padding:clamp(54px,calc(7 * var(--vw, 1vw)),115px) clamp(22px,calc(8 * var(--vw, 1vw)),150px)}.kicker{font-family:var(--display);font-size:10px;font-weight:700;letter-spacing:.1em;margin:0 0 19px}.kicker-purple{color:var(--purple)}h1,h2,h3,p{margin-top:0}.hero h1,.section-heading h2,.application-heading h2,.portable h2,.proof h2,.portal h2,.contact h2{font-family:var(--display);font-weight:600;letter-spacing:-.072em;line-height:.99}.hero h1{font-size:clamp(52px,calc(6.15 * var(--vw, 1vw)),104px);margin-bottom:32px}.hero h1 em,.portable h2 em,.portal h2 em{color:var(--purple);font-family:var(--fa);font-style:normal;font-weight:500}.hero-text{font-size:15px;line-height:2.05;max-width:500px}.hero-actions{align-items:center;display:flex;gap:24px;margin-top:38px}.button-dark{background:var(--dark);color:white}.text-button{font-size:12px;font-weight:700;text-decoration:none}.text-button span{margin-inline-start:8px}.hero-visual{border-radius:54px;min-height:535px;overflow:hidden;position:relative}.hero-visual:after{background:linear-gradient(140deg,rgba(92,40,126,.12),transparent 45%);content:"";inset:0;pointer-events:none;position:absolute}.hero-visual img{height:100%;object-fit:cover;position:absolute;width:100%}.hero-chip{background:rgba(255,255,255,.92);border-radius:999px;color:var(--purple);font-family:var(--display);font-size:10px;font-weight:800;letter-spacing:.1em;padding:11px 15px;position:absolute;z-index:2}.chip-top{inset-inline-end:23px;top:23px}.chip-bottom{bottom:23px;inset-inline-start:23px}.section{padding:clamp(80px,calc(11 * var(--vw, 1vw)),155px) clamp(22px,calc(8 * var(--vw, 1vw)),150px)}.intro{align-items:end;display:grid;gap:calc(10 * var(--vw, 1vw));grid-template-columns:1.2fr .8fr}.section-heading h2,.application-heading h2,.proof h2,.contact h2{font-size:clamp(44px,calc(5 * var(--vw, 1vw)),80px);margin:0}.intro-copy{font-size:15px;line-height:2.1}.intro-copy .text-button{display:inline-block;margin-top:22px}.solution-section{padding-top:0}.section-bar{align-items:start;border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:23px 0}.section-bar p:last-child{font-size:13px;line-height:1.9;margin:0;max-width:400px}.solution-grid{display:grid;gap:15px;grid-template-columns:1fr 1fr;margin-top:47px}.solution-card{border-radius:32px;min-height:342px;overflow:hidden;padding:28px;position:relative}.solution-card>span,.solution-card div>span,.equipment-card>span{font-family:var(--display);font-size:11px;font-weight:700}.solution-card h3{font-size:clamp(26px,calc(2.8 * var(--vw, 1vw)),43px);font-weight:500;letter-spacing:-.05em;line-height:1.14;margin:18px 0}.solution-card p{font-size:13px;line-height:1.9;margin:0;max-width:350px}.solution-card>a{align-items:center;border:1px solid currentColor;border-radius:50%;bottom:25px;display:flex;font-family:Arial,sans-serif;font-size:20px;height:43px;justify-content:center;inset-inline-end:25px;position:absolute;text-decoration:none;width:43px}.card-purple{background:var(--purple);color:white}.card-ink{background:var(--dark);color:white}.card-white{background:var(--white);color:var(--ink)}.image-card{color:white}.image-card img{height:100%;inset:0;object-fit:cover;position:absolute;width:100%}.image-card:after{background:linear-gradient(0deg,rgba(12,55,70,.9),rgba(12,55,70,.05) 75%);content:"";inset:0;position:absolute}.image-card div{bottom:20px;position:absolute;inset-inline-start:28px;z-index:1}.image-card a{z-index:2}.applications{background:var(--dark);color:white;display:grid;gap:calc(9 * var(--vw, 1vw));grid-template-columns:.8fr 1.2fr}.application-heading p:last-child{font-size:14px;line-height:2;margin:32px 0 0;max-width:360px}.application-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.application-grid a{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:26px;display:flex;flex-direction:column;min-height:218px;padding:25px;text-decoration:none;transition:background .25s,transform .25s}.application-grid a:hover{background:var(--purple);transform:translateY(-4px)}.application-grid span{font-family:var(--display);font-size:10px;opacity:.6}.application-grid b{font-size:21px;font-weight:500;margin-top:auto}.application-grid small{font-size:11px;line-height:1.7;margin-top:9px;opacity:.7}.application-grid i{font-family:Arial,sans-serif;font-size:20px;font-style:normal;margin-top:12px}.equipment{display:grid;column-gap:calc(9 * var(--vw, 1vw));grid-template-columns:1.2fr .8fr}.equipment-copy{font-size:15px;line-height:2.1;padding-top:35px}.equipment-grid{display:grid;gap:14px;grid-column:1/-1;grid-template-columns:1.3fr 1fr 1fr;margin-top:68px}.equipment-card{background:var(--white);border-radius:29px;min-height:292px;padding:23px;position:relative}.equipment-card h3{bottom:49px;font-size:20px;font-weight:600;margin:0;position:absolute}.equipment-card p{bottom:20px;font-size:11px;line-height:1.8;margin:0;max-width:190px;position:absolute}.equipment-image{grid-row:span 2;min-height:598px;overflow:hidden;padding:0}.equipment-image img{height:100%;object-fit:cover;position:absolute;width:100%}.equipment-image:after{background:linear-gradient(0deg,rgba(12,55,70,.93),transparent 65%);content:"";inset:0;position:absolute}.equipment-image div{bottom:22px;color:white;position:absolute;inset-inline-start:23px;z-index:1}.equipment-image div h3,.equipment-image div p{position:static}.equipment-image div h3{margin:14px 0 7px}.equipment-dark{background:var(--purple);color:white}.product-mark{height:132px;margin:17px}.fan-mark{align-items:center;display:flex;gap:9px;justify-content:center}.fan-mark i{animation:pulse 2.8s ease-in-out infinite;background:var(--purple);border-radius:999px;height:92px;width:13px}.fan-mark i:nth-child(2){height:60px}.fan-mark i:nth-child(3){height:112px}.fan-mark i:nth-child(4){height:75px}@keyframes pulse{50%{transform:translateY(9px)}}.filter-mark{display:grid;gap:6px;grid-template-columns:repeat(5,1fr);padding:18px}.filter-mark i{background:linear-gradient(135deg,#d9bee7,var(--purple));border-radius:4px}.portal-mark{border:2px solid var(--purple);margin:28px auto;width:72%}.portal-mark i{background:var(--purple);display:block;height:1px;margin:37px auto;width:72%}.signal-mark{align-items:center;display:flex;gap:12px;justify-content:center}.signal-mark i{background:white;border-radius:50%;height:11px;width:11px}.signal-mark i:first-child{box-shadow:0 0 0 20px rgba(255,255,255,.14),0 0 0 41px rgba(255,255,255,.08)}.portable{background:var(--purple);color:white;display:grid;grid-template-columns:1.1fr .9fr;padding-bottom:0;padding-top:0}.portable-image{min-height:570px;overflow:hidden}.portable-image img{height:100%;object-fit:cover;width:100%}.portable-copy{padding:clamp(70px,calc(9 * var(--vw, 1vw)),125px) clamp(28px,calc(7 * var(--vw, 1vw)),100px)}.portable h2{font-size:clamp(48px,calc(5 * var(--vw, 1vw)),82px);margin:0 0 27px}.portable h2 em{color:#dfc8ec}.portable-copy>p:not(.kicker){font-size:14px;line-height:2.08}.button-light{background:#dfc8ec;color:var(--purple);margin-top:21px}.portable-specs{background:#43185c;display:grid;grid-column:1/-1;grid-template-columns:repeat(3,1fr);padding:31px clamp(22px,calc(7 * var(--vw, 1vw)),100px)}.portable-specs div{border-inline-end:1px solid rgba(255,255,255,.18);display:flex;flex-direction:column;gap:8px;padding:0 25px}.portable-specs div:first-child{padding-inline-start:0}.portable-specs div:last-child{border:0}.portable-specs b{font-family:var(--display);font-size:17px}.portable-specs span{font-size:11px;line-height:1.7;opacity:.7}.proof-top{align-items:end;display:grid;gap:calc(9 * var(--vw, 1vw));grid-template-columns:1.2fr .8fr}.proof-top>p{font-size:14px;line-height:2.05;margin:0}.proof-grid{display:grid;gap:15px;grid-template-columns:repeat(3,1fr);margin-top:74px}.proof-grid article{background:var(--white);border-radius:27px;min-height:270px;padding:28px;position:relative}.proof-grid span{color:var(--purple);font-family:var(--display);font-size:10px;font-weight:800;letter-spacing:.08em}.proof-grid h3{font-size:21px;font-weight:600;line-height:1.6;margin:34px 0 10px}.proof-grid p{font-size:12px;line-height:1.9}.proof-grid a{bottom:24px;font-size:12px;font-weight:700;position:absolute;text-decoration:none}.proof-grid b{font-family:Arial,sans-serif;font-size:16px;margin-inline-start:6px}.portal{background:#d9ede9;display:grid;gap:calc(10 * var(--vw, 1vw));grid-template-columns:1fr 1fr;padding:clamp(82px,calc(10 * var(--vw, 1vw)),140px) clamp(22px,calc(8 * var(--vw, 1vw)),150px)}.portal-card{background:var(--dark);border-radius:34px;color:white;min-height:345px;padding:34px;position:relative}.status-dot{background:#c7f25a;border-radius:50%;height:9px;inset-inline-end:33px;position:absolute;top:35px;width:9px}.portal-card>p{color:#c7f25a;font-family:var(--display);font-size:10px;font-weight:700;letter-spacing:.09em;margin:0 0 42px}.portal-card h3{font-size:21px;font-weight:500;line-height:1.9;max-width:430px}.button-white{background:white;bottom:28px;color:var(--dark);position:absolute}.contact{background:var(--paper)}.contact>p:not(.kicker){font-size:14px;line-height:2;margin:24px 0 48px;max-width:580px}.project-form{display:grid;gap:18px;grid-template-columns:1fr 1fr;max-width:920px}.project-form label{color:#627d84;font-size:11px}.project-form input,.project-form select{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;color:var(--ink);display:block;font-family:var(--fa);font-size:14px;margin-top:8px;outline:none;padding:10px 0;width:100%}.project-form input:focus,.project-form select:focus{border-color:var(--purple)}.project-form button{background:var(--purple);border:0;border-radius:999px;color:white;cursor:pointer;font-family:var(--fa);font-size:13px;font-weight:700;justify-self:start;margin-top:12px;padding:15px 24px}.project-form button span{font-family:Arial,sans-serif;font-size:18px;margin-inline-start:14px}footer{align-items:center;background:var(--dark);color:white;display:flex;justify-content:space-between;padding:27px clamp(22px,calc(4 * var(--vw, 1vw)),72px)}footer .brand img{filter:brightness(0) invert(1);height:42px}footer p,footer span{font-size:11px;opacity:.7}@media(max-width:900px){.site-header{height:72px}.brand img{height:40px}.main-nav,.header-actions{display:none}.menu-toggle{display:block}.site-header.is-open{align-items:flex-start;height:310px;padding-top:18px}.site-header.is-open .main-nav{display:flex;flex-direction:column;gap:16px;position:absolute;inset-inline-start:25px;top:78px}.site-header.is-open .header-actions{align-items:flex-end;display:flex;flex-direction:column;gap:16px;inset-inline-end:25px;position:absolute;top:85px}.hero,.intro,.applications,.equipment,.portable,.proof-top,.portal{grid-template-columns:1fr}.hero{min-height:auto;padding-top:65px}.hero h1{font-size:clamp(49px,calc(13 * var(--vw, 1vw)),71px)}.hero-visual{min-height:370px}.section{padding:76px 22px}.intro{gap:38px}.section-bar{display:block}.section-bar p:last-child{margin-top:10px}.solution-grid,.application-grid,.proof-grid{grid-template-columns:1fr}.solution-card{min-height:300px}.equipment-copy{padding-top:0}.equipment-grid{grid-template-columns:1fr 1fr;margin-top:40px}.equipment-image{grid-column:span 2;grid-row:auto;min-height:400px}.portable{padding:0}.portable-image{min-height:360px}.portable-copy{padding:76px 22px}.portable-specs{grid-template-columns:1fr;padding:20px 22px}.portable-specs div,.portable-specs div:first-child{border-bottom:1px solid rgba(255,255,255,.18);border-inline-end:0;padding:17px 0}.portable-specs div:last-child{border-bottom:0}.proof-grid{margin-top:42px}.portal{gap:55px;padding:80px 22px}.project-form{grid-template-columns:1fr}footer{align-items:flex-start;flex-direction:column;gap:10px}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}

/* schilling-layout.css */
/* KGS visual system — rebuilt from the approved video reference: white canvas, purple panels, rounded editorial cards. */
:root{--ink:#30163e;--dark:#421a5b;--mint:#fbf9fc;--paper:#fff;--line:#e3d6eb}
body{background:#fff;color:var(--ink)}
.site-header{background:#fff;border-color:#eee6f3}.main-nav a,.client-link{color:#391a4a}.header-cta{background:var(--purple)}
.hero{background:#fff;display:grid;gap:0;grid-template-areas:"visual" "copy";grid-template-columns:1fr;min-height:0;padding:0 clamp(18px,calc(4 * var(--vw, 1vw)),64px) 70px}.hero-visual{border-radius:0 0 43px 43px;grid-area:visual;min-height:clamp(300px,calc(35 * var(--vw, 1vw)),510px)}.hero-visual:after{background:linear-gradient(90deg,rgba(92,40,126,.18),transparent 55%)}.hero-copy{background:var(--purple);border-radius:0 0 43px 43px;color:#fff;display:grid;grid-template-columns:1.35fr .65fr;grid-area:copy;margin:0 clamp(0px,calc(5 * var(--vw, 1vw)),90px);min-height:310px;padding:clamp(35px,calc(5 * var(--vw, 1vw)),70px) clamp(28px,calc(6 * var(--vw, 1vw)),95px);position:relative;z-index:2}.hero-copy .kicker{grid-column:1/-1;margin-bottom:17px;opacity:.76}.hero h1{font-size:clamp(47px,calc(5.65 * var(--vw, 1vw)),91px);margin:0}.hero h1 em{color:#fff;font-weight:700}.hero-text{align-self:end;font-size:14px;line-height:2.05;margin:0;max-width:360px}.hero-actions{align-items:flex-end;bottom:33px;inset-inline-end:clamp(28px,calc(6 * var(--vw, 1vw)),95px);margin:0;position:absolute}.button-dark{background:#fff;color:var(--purple)}.hero .text-button{color:#fff}.hero-chip{color:var(--purple)}
.section{background:#fff}.intro{padding-bottom:110px}.intro,.proof-top{gap:calc(8 * var(--vw, 1vw))}.section-heading h2,.application-heading h2,.proof h2,.contact h2{font-size:clamp(43px,calc(4.8 * var(--vw, 1vw)),76px)}.intro-copy{font-size:14px}.solution-section{background:#fff;padding-top:0}.section-bar{border-color:var(--line)}.solution-grid{gap:19px}.solution-card{border:1px solid #e6dbea;border-radius:28px;min-height:315px}.card-purple{background:var(--purple);border-color:var(--purple)}.card-ink{background:#421a5b;border-color:#421a5b}.card-white{background:#fff}.image-card:after{background:linear-gradient(0deg,rgba(62,19,83,.92),rgba(62,19,83,.05) 80%)}
.applications{background:#fff;color:var(--ink);grid-template-columns:.8fr 1.2fr}.application-grid a{background:#fff;border-color:#e2d8e8;color:var(--ink);min-height:226px}.application-grid a:hover{background:var(--purple);border-color:var(--purple);color:white}.application-heading p:last-child{color:#755f80}.application-grid small{color:#725f7b;opacity:1}.application-grid a:hover small{color:#fff;opacity:.75}
.equipment{background:#fbf9fc}.equipment-grid{gap:19px}.equipment-card{background:#fff;border:1px solid #e6ddea;border-radius:28px}.equipment-dark{background:var(--purple);border-color:var(--purple)}.equipment-image:after{background:linear-gradient(0deg,rgba(62,19,83,.9),transparent 70%)}.portable{background:#fff;color:var(--ink);padding:0 clamp(18px,calc(4 * var(--vw, 1vw)),64px) 95px}.portable-image{border-start-end-radius:39px;border-start-start-radius:0;border-end-start-radius:0;border-end-end-radius:39px;overflow:hidden}.portable-copy{background:var(--purple);border-start-end-radius:0;border-start-start-radius:39px;border-end-start-radius:39px;border-end-end-radius:0;color:#fff}.portable h2 em{color:#fff}.button-light{background:#fff;color:var(--purple)}.portable-specs{background:#421a5b;border-radius:0 0 39px 39px;margin:0;overflow:hidden}.portable-specs div{border-color:rgba(255,255,255,.24)}
.proof{background:#fff}.proof-grid article{border:1px solid #e6ddea;border-radius:28px}.portal{background:#f6f1f8}.portal-card{background:var(--purple);border-radius:34px}.status-dot{background:#fff}.portal-card>p{color:#fff;opacity:.72}.contact{background:#fff}.project-form input,.project-form select{border-color:#d7c6e0}.project-form button{background:var(--purple)}
.site-footer{background:#421a5b;color:#fff;display:block;padding:0 clamp(22px,calc(7 * var(--vw, 1vw)),125px)}.site-footer .brand img{filter:none;height:55px}.footer-top{align-items:center;border-bottom:1px solid rgba(255,255,255,.22);display:flex;gap:35px;justify-content:space-between;padding:36px 0}.footer-top p{font-size:13px;margin:0;opacity:.78}.footer-cta{background:#fff;border-radius:999px;color:var(--purple);font-size:12px;font-weight:800;padding:14px 20px;text-decoration:none}.footer-cta span{font-family:Arial,sans-serif;font-size:17px;margin-inline-start:18px}.footer-links{display:grid;gap:30px;grid-template-columns:repeat(4,1fr);padding:59px 0}.footer-links section{display:flex;flex-direction:column;gap:12px}.footer-links h3{font-size:13px;margin:0 0 9px}.footer-links a{font-size:12px;opacity:.75;text-decoration:none;transition:opacity .2s,transform .2s}.footer-links a:hover{opacity:1;transform:translateX(-3px)}.footer-bottom{align-items:center;border-top:1px solid rgba(255,255,255,.22);display:flex;font-size:10px;justify-content:space-between;opacity:.78;padding:22px 0}.footer-bottom div{display:flex;gap:23px}.footer-bottom a{text-decoration:none}.footer-bottom a:hover{opacity:.7}
@media(max-width:900px){.hero{padding:0 0 50px}.hero-visual{border-radius:0;min-height:330px}.hero-copy{border-radius:0 0 30px 30px;display:block;margin:0;min-height:0;padding:42px 25px 100px}.hero h1{font-size:clamp(45px,calc(13 * var(--vw, 1vw)),68px)}.hero-text{margin-top:26px}.hero-actions{bottom:31px;inset-inline-end:25px}.hero .text-button{display:none}.applications{grid-template-columns:1fr}.portable{padding:0 0 70px}.portable-image,.portable-copy{border-radius:0}.portable-specs{border-radius:0}.footer-top{align-items:flex-start;flex-direction:column}.footer-links{grid-template-columns:1fr 1fr;padding:42px 0}.footer-bottom{align-items:flex-start;flex-direction:column;gap:15px}.footer-bottom div{flex-wrap:wrap}}

/* tuning.css */
/* Density, slider and image-card tuning for the current KGS direction. */
.hero{padding-bottom:38px}.hero-visual{border-radius:0 0 38px 38px;min-height:clamp(310px,calc(33 * var(--vw, 1vw)),480px)}.hero-slides{height:100%;inset:0;position:absolute;width:100%}.hero-slides img{height:100%;inset:0;object-fit:cover;opacity:0;position:absolute;transition:opacity .65s ease;width:100%}.hero-slides img.is-active{opacity:1}.hero-copy{border-radius:0 0 38px 38px;display:block;margin:0;min-height:235px;padding:29px clamp(26px,calc(5 * var(--vw, 1vw)),78px)}.hero-copy .kicker{margin:0;position:absolute;inset-inline-start:clamp(26px,calc(5 * var(--vw, 1vw)),78px);top:28px}.hero-copy h1{font-size:clamp(34px,calc(3.9 * var(--vw, 1vw)),60px);line-height:1.02;margin:27px 0 0;max-width:600px}.hero-text{bottom:28px;inset-inline-end:clamp(26px,calc(5 * var(--vw, 1vw)),78px);line-height:1.9;position:absolute;width:min(calc(31 * var(--vw, 1vw)),380px)}.hero-actions{bottom:26px;inset-inline-end:clamp(26px,calc(5 * var(--vw, 1vw)),78px);transform:translateY(62px)}.hero-actions .text-button{display:none}.slider-controls{align-items:center;bottom:21px;color:white;display:flex;gap:11px;inset-inline-end:24px;position:absolute;z-index:5}.slider-controls button{background:rgba(55,19,76,.72);border:1px solid rgba(255,255,255,.55);color:white;cursor:pointer;font-family:Arial,sans-serif}.slider-prev,.slider-next{border-radius:50%;font-size:15px;height:32px;width:32px}.slider-dots{display:flex;gap:6px}.slider-dots button{border-radius:50%;height:8px;padding:0;width:8px}.slider-dots button.is-active{background:white;transform:scale(1.25)}.hero-chip{z-index:6}.chip-bottom{bottom:22px;inset-inline-start:23px}.section{padding-bottom:clamp(58px,calc(7 * var(--vw, 1vw)),96px);padding-top:clamp(58px,calc(7 * var(--vw, 1vw)),96px)}.intro{padding-bottom:70px}.solution-section{background:#f8f3fa;padding-top:48px}.solution-grid{margin-top:31px}.solution-card{min-height:295px}.solution-image{color:white}.solution-image>img{height:100%;inset:0;object-fit:cover;position:absolute;width:100%}.solution-image:after{background:linear-gradient(0deg,rgba(53,15,73,.94),rgba(53,15,73,.08) 76%);content:"";inset:0;position:absolute}.solution-image>span{position:relative;z-index:1}.solution-image>div{bottom:22px;position:absolute;inset-inline-start:28px;z-index:1}.solution-image>a{z-index:2}.applications{background:#f4ecf7;padding-bottom:75px;padding-top:75px}.application-grid a:nth-child(1),.application-grid a:nth-child(4){background:var(--purple);border-color:var(--purple);color:white}.application-grid a:nth-child(1) small,.application-grid a:nth-child(4) small{color:white;opacity:.8}.equipment{background:#fff;padding-bottom:75px;padding-top:75px}.equipment-dark{background:#421a5b}.portable{padding-bottom:62px}.proof{background:#f8f3fa;padding-bottom:75px;padding-top:75px}.portal{background:var(--purple);padding-bottom:75px;padding-top:75px}.portal>div:first-child{color:white}.portal h2 em{color:white}.portal-card{background:white;color:var(--purple)}.portal-card>p{color:var(--purple);opacity:.7}.portal-card .button-white{background:var(--purple);color:white}.status-dot{background:var(--purple)}.contact{padding-bottom:80px;padding-top:75px}
@media(max-width:900px){.hero{padding-bottom:26px}.hero-visual{min-height:300px}.hero-copy{min-height:315px;padding:27px 25px}.hero-copy .kicker{inset-inline-start:25px;top:25px}.hero-copy h1{font-size:clamp(37px,calc(11 * var(--vw, 1vw)),57px);margin-top:29px}.hero-text{bottom:25px;inset-inline-end:25px;width:calc(100% - 50px)}.hero-actions{bottom:22px;inset-inline-end:25px;transform:translateY(58px)}.slider-controls{bottom:16px;inset-inline-end:17px}.chip-top{top:17px}.chip-bottom{bottom:17px;inset-inline-start:17px}.section{padding-bottom:62px;padding-top:62px}.solution-section{padding-top:42px}.applications,.equipment,.proof,.portal,.contact{padding-bottom:62px;padding-top:62px}}
@media(prefers-reduced-motion:reduce){.hero-slides img{transition:none}}

/* tuning-hero.css */
.hero-text{bottom:auto;inset-inline-end:clamp(26px,calc(5 * var(--vw, 1vw)),78px);line-height:1.9;position:absolute;top:76px;width:min(calc(31 * var(--vw, 1vw)),380px)}.hero-actions{bottom:26px;inset-inline-end:clamp(26px,calc(5 * var(--vw, 1vw)),78px);transform:none}@media(max-width:900px){.hero-copy{min-height:355px}.hero-text{bottom:auto;inset-inline-end:25px;top:155px;width:calc(100% - 50px)}.hero-actions{bottom:22px;inset-inline-end:25px;transform:none}}

/* header-overlap.css */
/* Rounded purple navigation and the requested banner-to-purple-panel overlap. */
.site-header{background:var(--purple);border:0;border-radius:24px;color:white;height:76px;margin:16px clamp(14px,calc(3 * var(--vw, 1vw)),48px);padding:0 18px;top:0}.site-header .main-nav a,.site-header .client-link{color:white}.site-header .main-nav a:hover,.site-header .client-link:hover{color:white;opacity:.7}.site-header .brand{align-items:center;background:white;border-radius:999px;display:flex;height:48px;padding:5px 13px}.site-header .brand img{height:35px;max-width:88px;object-fit:contain}.site-header .header-cta{background:white;color:var(--purple);height:48px}.site-header .header-actions{gap:19px}.site-header .menu-toggle span{background:white}.hero{padding-top:0}.hero-visual{z-index:2}.hero-copy{margin-top:-112px;min-height:350px;padding-top:137px;z-index:1}.hero-copy .kicker{top:137px}.hero-copy h1{font-size:clamp(34px,calc(3.7 * var(--vw, 1vw)),57px);margin-top:24px}.hero-text{top:168px}.hero-actions{bottom:27px}.chip-bottom{bottom:23px;inset-inline-start:22px}.slider-controls{bottom:21px;inset-inline-end:25px}.slider-dots button{background:rgba(255,255,255,.55);border:0}.slider-dots button.is-active{background:var(--purple)}
@media(max-width:900px){.site-header{border-radius:18px;height:64px;margin:10px 12px;padding:0 12px}.site-header .brand{height:42px;padding:4px 11px}.site-header .brand img{height:30px;max-width:69px}.site-header .header-cta{font-size:10px;gap:8px;height:42px;padding:10px 12px}.site-header .client-link{display:none}.hero-copy{margin-top:-62px;min-height:405px;padding-top:90px}.hero-copy .kicker{top:90px}.hero-copy h1{font-size:clamp(36px,calc(10.5 * var(--vw, 1vw)),54px);margin-top:28px}.hero-text{top:225px}.hero-actions{bottom:23px}.chip-bottom{bottom:17px;inset-inline-start:17px}.slider-controls{bottom:17px;inset-inline-end:18px}}

/* radius-tuning.css */
/* Shared pill radius for navigation and its primary action; rounded banner on all four corners. */
.site-header,.site-header .header-cta{border-radius:999px}.hero-visual{border-radius:38px}.hero-visual .hero-slides{border-radius:inherit;overflow:hidden}@media(max-width:900px){.site-header,.site-header .header-cta{border-radius:999px}.hero-visual{border-radius:28px}}

/* rtl-alignment.css */
/* Shared horizontal boundaries and explicit Persian RTL alignment. */
body{direction:inherit;text-align:start}.site-header{margin-inline-end:clamp(18px,calc(4 * var(--vw, 1vw)),64px);margin-inline-start:clamp(18px,calc(4 * var(--vw, 1vw)),64px)}.hero-copy .kicker{direction:ltr;left:auto;right:clamp(26px,calc(5 * var(--vw, 1vw)),78px);text-align:right;top:154px;width:min(calc(31 * var(--vw, 1vw)),380px)}.hero-text{bottom:auto;direction:inherit;inset-inline-end:auto;inset-inline-start:clamp(26px,calc(5 * var(--vw, 1vw)),78px);text-align:start;top:178px;width:min(calc(31 * var(--vw, 1vw)),380px)}.hero-actions{inset-inline-end:auto;inset-inline-start:clamp(26px,calc(5 * var(--vw, 1vw)),78px)}.button,.header-cta,.footer-cta{direction:inherit}.project-form input,.project-form select{text-align:start}.project-form button{direction:inherit}.section-bar,.intro-copy,.equipment-copy,.proof-top>p,.application-heading p:last-child{direction:inherit;text-align:start}.footer-links section{direction:inherit;text-align:start}@media(max-width:900px){.site-header{margin-inline-end:12px;margin-inline-start:12px}.hero-copy .kicker{inset-inline-start:25px;top:112px;width:calc(100% - 50px)}.hero-text{inset-inline-start:25px;top:137px;width:calc(100% - 50px)}.hero-actions{inset-inline-start:25px}}

/* rtl-hero-fix.css */
/* Keep the Persian headline separate from the English label + explanatory copy. */
.hero-copy .kicker{inset-inline-end:clamp(26px,calc(5 * var(--vw, 1vw)),78px);inset-inline-start:auto;text-align:start}.hero-text{inset-inline-end:clamp(26px,calc(5 * var(--vw, 1vw)),78px);inset-inline-start:auto;text-align:start}@media(max-width:900px){.hero-copy{min-height:440px}.hero-copy .kicker{inset-inline-end:25px;inset-inline-start:auto;top:255px}.hero-text{inset-inline-end:25px;inset-inline-start:auto;top:280px}.hero-actions{inset-inline-start:25px}}

/* portable-overlap.css */
.portable{position:relative}.portable-image{position:relative;z-index:1}.portable-copy{position:relative;transform:translateX(88px);z-index:2}.portable-specs,.portable-specs b,.portable-specs span{color:#fff!important}.portable-specs{position:relative;z-index:3}@media(max-width:900px){.portable-copy{transform:none}}

/* hero-layout.css */
/* A true two-column hero: title on the right, explanatory content and CTA on the left. */
.hero-copy{align-items:center;display:flex;gap:70px;justify-content:space-between;padding:42px clamp(28px,calc(5 * var(--vw, 1vw)),78px);position:relative}.hero-heading{flex:1 1 auto}.hero-copy h1{margin:0;max-width:660px}.hero-detail{align-items:flex-start;display:flex;flex:0 1 500px;flex-direction:column}.hero-copy .hero-detail .kicker{direction:ltr;left:auto;margin:0 0 16px;position:static;right:auto;text-align:left;top:auto;width:100%}.hero-detail .hero-text{bottom:auto;direction:inherit;inset-inline-end:auto;line-height:2;position:static;inset-inline-start:auto;text-align:start;top:auto;width:100%}.hero-detail .hero-actions{bottom:auto;inset-inline-end:auto;margin-top:23px;position:static;inset-inline-start:auto;transform:none}.hero-detail .button{justify-content:flex-start;min-width:162px;text-align:start}@media(max-width:900px){.hero-copy{align-items:flex-start;display:flex;flex-direction:column;gap:31px;min-height:0;padding:52px 25px 31px}.hero-heading{width:100%}.hero-copy h1{font-size:clamp(40px,calc(11 * var(--vw, 1vw)),57px)}.hero-detail{flex-basis:auto;width:100%}.hero-copy .hero-detail .kicker{margin-bottom:12px}.hero-detail .hero-text{font-size:13px}.hero-detail .hero-actions{margin-top:20px}}

/* solution-card-reference.css */
/* Service-card interaction: image on top, readable content panel below. */
.solution-grid{align-items:stretch}.solution-card.solution-card-split{background:#fff;border:1px solid #e5d9eb;border-radius:27px;color:var(--ink);display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0;transition:border-color .28s ease,box-shadow .28s ease,transform .28s ease}.solution-card-split figure{height:clamp(175px,calc(16 * var(--vw, 1vw)),250px);margin:0;overflow:hidden;position:relative}.solution-card-split figure img{height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1);width:100%}.solution-card-split figure span{color:#fff;font-family:var(--display);font-size:12px;font-weight:800;inset-inline-end:21px;position:absolute;top:18px;text-shadow:0 1px 8px rgba(42,11,55,.4)}.solution-card-split .solution-card-body{align-items:flex-start;display:flex;flex:1;flex-direction:column;min-height:190px;padding:22px 24px 19px;position:relative;transition:background .28s ease,color .28s ease}.solution-card-split h3{font-size:clamp(24px,calc(2 * var(--vw, 1vw)),34px);font-weight:600;letter-spacing:-.045em;line-height:1.2;margin:0 0 10px}.solution-card-split p{font-size:12px;line-height:1.9;margin:0;max-width:390px}.solution-card-split a{align-items:center;border:1px solid currentColor;border-radius:50%;color:inherit;display:flex;font-family:Arial,sans-serif;font-size:18px;height:39px;justify-content:center;margin-top:auto;text-decoration:none;transition:background .28s ease,color .28s ease,transform .28s ease;width:39px}.solution-card-split:hover{border-color:var(--purple);box-shadow:0 14px 32px rgba(65,24,91,.14);transform:translateY(-4px)}.solution-card-split:hover figure img{transform:scale(1.055)}.solution-card-split:hover .solution-card-body{background:var(--purple);color:#fff}.solution-card-split:hover a{background:#fff;color:var(--purple);transform:rotate(-12deg)}.solution-card-split:focus-within .solution-card-body{background:var(--purple);color:#fff}.solution-card-split:focus-within a{background:#fff;color:var(--purple)}@media(max-width:900px){.solution-card-split figure{height:210px}.solution-card-split .solution-card-body{min-height:170px;padding:20px}.solution-card-split h3{font-size:27px}}
@media(prefers-reduced-motion:reduce){.solution-card.solution-card-split,.solution-card-split figure img,.solution-card-split .solution-card-body,.solution-card-split a{transition:none}}

/* mobile.css */
/* Mobile-first consolidation for the public KGS site and local editor. */
/* The technical editor may contain large-canvas absolute elements. On normal
   desktop, tablet and phone widths they must not create a second horizontal
   canvas or crop the public site. */
@media (max-width: 2200px) {
  html, body { max-width: 100%; overflow-x: clip; }
  main, .site-footer { max-width: 100%; overflow-x: clip; }
  /* The header must not clip: its dropdown submenus hang below it (Safari applies overflow-x:clip to both axes). */
  .site-header { max-width: 100%; overflow: visible; }
}

@media (max-width: 900px) {
  body { overflow-x: hidden; }
  .section, .applications, .equipment, .proof, .portal, .contact { padding-inline-end: 24px; padding-inline-start: 24px; }
  .hero, .intro, .proof-top, .applications, .equipment, .portable, .portal { gap: 38px; grid-template-columns: 1fr; }
  .hero { min-height: 0; padding: 0 0 34px; }
  .hero-visual { min-height: 330px; }
  .hero-copy { border-radius: 0 0 30px 30px; margin: 0; min-height: 0; padding: 42px 25px 31px; }
  .hero-copy .hero-detail { width: 100%; }
  .solution-grid, .application-grid, .proof-grid, .project-form { grid-template-columns: 1fr; }
  .portable { padding: 0 0 58px; }
  .portable-image, .portable-copy { border-radius: 0; }
  .portable-image { min-height: 360px; }
  .portable-copy { transform: none; }
  .portable-specs { border-radius: 0; grid-template-columns: 1fr; }
  .portable-specs div, .portable-specs div:first-child { border-bottom: 1px solid rgba(255,255,255,.18); border-inline-end: 0; padding: 17px 0; }
  .portable-specs div:last-child { border-bottom: 0; }
  .intro { align-items: start; }
  .equipment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .equipment-image { grid-column: 1 / -1; grid-row: auto; min-height: 430px; }
  .footer-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Desktop placements are authored on a wide canvas. Before that full canvas
   is available, the same content uses the native, fluid tablet grid. */
@media (min-width: 901px) and (max-width: 1899px) {
  html:not(.kgs-desktop-canvas) .portal { gap: 42px; grid-template-columns: minmax(0, 1fr); }
  html:not(.kgs-desktop-canvas) .portal-card { max-width: 100%; }
  html:not(.kgs-desktop-canvas) .portable { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  html:not(.kgs-desktop-canvas) .portable-copy, html:not(.kgs-desktop-canvas) .portable-image, html:not(.kgs-desktop-canvas) .portable-specs, html:not(.kgs-desktop-canvas) .footer-links > section { min-width: 0; }
}

@media (max-width: 900px) {
  html { -webkit-text-size-adjust: 100%; }
  body { min-width: 0; }
  .site-header { margin: 8px 10px; min-width: 0; }
  .site-header.is-open { height: 340px; }
  .site-header.is-open .main-nav { gap: 14px; inset-inline-start: 22px; top: 72px; }
  .site-header.is-open .header-actions { display: none; }
  .site-header .header-cta, .site-header .menu-toggle { min-height: 44px; }

  .hero { padding: 0 0 42px; }
  .hero-visual { min-height: 280px; }
  .hero-copy { border-radius: 0 0 28px 28px; margin: 0; padding: 38px 22px 30px; }
  .hero-copy[style*="height"] { height: auto !important; min-height: 0 !important; }
  .hero-copy h1, .hero h1 { font-size: clamp(38px, calc(11.5 * var(--vw, 1vw)), 54px); letter-spacing: -.055em; line-height: 1.08; }
  .hero-copy h1[style*="width"] { font-size: clamp(38px, calc(11.5 * var(--vw, 1vw)), 54px) !important; height: auto !important; max-width: 100% !important; width: 100% !important; }
  .hero-copy .hero-detail .kicker[style*="transform"] { height: auto !important; transform: none !important; width: 100% !important; }
  .hero-copy .hero-detail .kicker { font-size: 9px; letter-spacing: .08em; }
  .hero-detail .hero-text { font-size: 14px; line-height: 2; }
  .hero-detail .hero-actions { margin-top: 18px; }
  .hero-detail .button, .button, .header-cta, .footer-cta { min-height: 44px; }
  .chip-bottom { font-size: 9px; max-width: calc(100% - 105px); padding: 9px 11px; }
  .slider-controls { bottom: 16px; inset-inline-end: 15px; }
  .slider-dots button { height: 10px; width: 10px; }

  .section, .applications, .equipment, .proof, .portal, .contact { padding: 54px 20px; }
  .intro, .proof-top, .applications, .equipment, .portal { gap: 28px; }
  .section-heading h2, .application-heading h2, .proof h2, .contact h2 { font-size: clamp(36px, calc(10 * var(--vw, 1vw)), 48px); line-height: 1.12; }
  .section-bar { display: block; padding-top: 18px; }
  .section-bar p:last-child { font-size: 13px; margin-top: 11px; }

  .solution-grid, .application-grid, .proof-grid, .project-form { grid-template-columns: 1fr; }
  .solution-grid { gap: 14px; margin-top: 25px; }
  .solution-card.solution-card-split { border-radius: 22px; }
  .solution-card-split figure { height: 200px; }
  .solution-card-split .solution-card-body { min-height: 175px; padding: 20px; }
  .solution-card h3, .solution-card-split h3 { font-size: 28px; }
  .application-grid a { min-height: 184px; padding: 21px; }

  .equipment-grid { gap: 12px; grid-template-columns: 1fr; margin-top: 28px; }
  .equipment-image { grid-column: auto; min-height: 345px; }
  .equipment-card { min-height: 235px; }
  .equipment-card h3 { font-size: 19px; }
  .equipment-copy { padding-top: 0; }

  .portable { padding: 0 0 46px; }
  .portable-image { border-radius: 0; min-height: 300px; }
  .portable-copy { border-radius: 0; padding: 48px 22px; transform: none; }
  .portable h2 { font-size: clamp(39px, calc(11 * var(--vw, 1vw)), 54px); }
  .portable-specs { border-radius: 0; grid-template-columns: 1fr; padding: 8px 22px; }
  .portable-specs div, .portable-specs div:first-child { border-bottom: 1px solid rgba(255,255,255,.18); border-inline-end: 0; padding: 15px 0; }
  .portable-specs div:last-child { border-bottom: 0; }

  .portal { gap: 30px; }
  .portal-card { border-radius: 24px; min-height: 290px; padding: 25px; }
  .portal-card h3 { font-size: 18px; line-height: 1.9; }
  .project-form input, .project-form select { font-size: 16px; min-height: 46px; }
  .project-form button { min-height: 46px; width: 100%; }

  .site-footer { padding: 0 22px; }
  .footer-top { align-items: flex-start; gap: 20px; padding: 28px 0; }
  .footer-top p { line-height: 1.9; }
  .footer-cta { align-self: stretch; text-align: center; }
  .footer-links { gap: 28px 20px; grid-template-columns: 1fr; padding: 34px 0; }
  .footer-links h3 { font-size: 12px; }
  .footer-links a { font-size: 11px; line-height: 1.7; }
  .footer-bottom { font-size: 10px; padding: 20px 0 calc(22px + env(safe-area-inset-bottom)); }

  .review-bar { border-radius: 20px; bottom: max(10px, env(safe-area-inset-bottom)); inset-inline-end: 10px; max-width: calc(calc(100 * var(--vw, 1vw)) - 20px); padding: 5px; inset-inline-start: 10px; }
  .review-bar button, .review-bar .review-back { font-size: 10px; min-height: 38px; padding: 8px 9px; }
  .review-context { flex-wrap: wrap; gap: 5px; max-width: calc(calc(100 * var(--vw, 1vw)) - 20px); padding: 6px; }
  .review-context button, .review-color input, .review-font-size select { min-height: 34px; }
  .review-text-tools { flex-wrap: wrap; }
  .review-slider-card, .review-leave-card { border-radius: 20px; max-height: calc(100dvh - 28px); }
  .review-slide-row { grid-template-columns: 58px minmax(0, 1fr); }
  .review-slide-row img { height: 46px; width: 58px; }
  .review-slide-actions { grid-column: 1 / -1; }
  .review-slide-actions button { min-height: 36px; }
}

@media (max-width: 900px) {
  .site-header .header-cta { font-size: 9px; padding: 8px 10px; }
  .site-header .brand { padding: 4px 8px; }
  .hero-visual { min-height: 245px; }
  .hero-copy h1, .hero h1 { font-size: 37px; }
  .footer-links { grid-template-columns: 1fr; }
  .review-bar { overflow-x: auto; }
}

/* ux-polish.css */
/* Final public-site UX layer: preserves the KGS purple identity while making
   navigation, focus, anchors and responsive transitions predictable. */
:root { --kgs-focus: #d9b3ef; --kgs-radius: 28px; }
html { background: #fff; }
body { min-width: 0; }
section[id], footer[id] { scroll-margin-top: 112px; }

.skip-link { background: #fff; border-radius: 999px; box-shadow: 0 8px 24px rgba(35, 12, 52, .2); color: var(--purple); font-size: 13px; font-weight: 800; inset-inline-end: 16px; padding: 12px 16px; position: fixed; top: -64px; transition: top .2s ease; z-index: 9999; }
.skip-link:focus { outline: 3px solid var(--kgs-focus); outline-offset: 3px; top: 14px; }

a, button, select, input { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, select:focus-visible, input:focus-visible { outline: 3px solid var(--kgs-focus); outline-offset: 3px; }
.main-nav a, .client-link, .footer-links a, .text-button { text-underline-offset: 4px; }
.main-nav a:hover, .footer-links a:hover, .text-button:hover { text-decoration-thickness: 2px; }

.site-header { isolation: isolate; }
.site-header .main-nav a, .site-header .client-link, .header-cta, .footer-cta, .button, .text-button { transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease, background-color .2s ease; }
.site-header .main-nav a:focus-visible, .site-header .client-link:focus-visible { border-radius: 8px; outline-color: #fff; }
.header-cta:focus-visible, .button:focus-visible, .footer-cta:focus-visible { outline-color: var(--kgs-focus); }

.project-form label { font-weight: 700; }
.project-form input, .project-form select { min-height: 46px; }
.project-form button { min-height: 48px; }
.project-form .form-status { display: none; font-size: 13px; font-weight: 700; grid-column: 1 / -1; line-height: 1.9; margin: 0; }
.project-form .form-status.is-visible { display: block; }
.project-form .form-status.pending { color: #60406f; }
.project-form .form-status.success { color: #18734d; }
.project-form .form-status.error { color: #b42447; }
.project-form button:disabled { cursor: wait; opacity: .72; }

.kicker[dir="ltr"] { direction: ltr; text-align: left; unicode-bidi: embed; }
.hero-visual.is-loading::before { animation: kgs-shimmer 1.15s ease-in-out infinite alternate; background: linear-gradient(100deg, #ece5ef 8%, #faf7fb 36%, #e4d8ea 62%, #f8f4fa 88%); content: ""; inset: 0; pointer-events: none; position: absolute; z-index: 7; }
.hero-visual.is-loading .hero-slides img { opacity: 0 !important; }
.hero-visual.is-loading .hero-chip, .hero-visual.is-loading .slider-controls { opacity: 0; }
@keyframes kgs-shimmer { from { background-position: 0 0; } to { background-position: 180% 0; } }

.menu-toggle span { transform-origin: center; transition: transform .22s ease, opacity .18s ease; }
.site-header.is-open .menu-toggle span:first-child { transform: translateY(3px) rotate(45deg); }
.site-header.is-open .menu-toggle span:last-child { transform: translateY(-3px) rotate(-45deg); }

.equipment-card { display: flex; flex-direction: column; overflow: hidden; }
.equipment-card:not(.equipment-image) .product-mark { flex: 1 0 auto; }
.equipment-card:not(.equipment-image) h3, .equipment-card:not(.equipment-image) p { inset-inline: 23px; }

@media (max-width: 1100px) {
  html:not(.kgs-desktop-canvas) .site-header { margin-inline: 14px; }
  html:not(.kgs-desktop-canvas) .site-header .main-nav { gap: 18px; margin-inline-start: 0; }
  html:not(.kgs-desktop-canvas) .site-header .main-nav a { font-size: 11px; }
  html:not(.kgs-desktop-canvas) .site-header .header-actions { gap: 12px; }
}

@media (max-width: 920px) {
  html:not(.kgs-desktop-canvas) .site-header { height: 68px; margin: 10px 12px; padding: 0 14px; }
  html:not(.kgs-desktop-canvas) .site-header .brand { height: 44px; padding: 5px 10px; }
  html:not(.kgs-desktop-canvas) .site-header .brand img { height: 31px; max-width: 72px; }
  html:not(.kgs-desktop-canvas) .site-header .main-nav, html:not(.kgs-desktop-canvas) .site-header .client-link { display: none; }
  html:not(.kgs-desktop-canvas) .site-header .header-actions { display: flex; margin-inline-end: auto; }
  html:not(.kgs-desktop-canvas) .site-header .header-cta { font-size: 10px; gap: 8px; height: 44px; padding: 10px 13px; }
  html:not(.kgs-desktop-canvas) .site-header .menu-toggle { display: block; min-height: 44px; min-width: 44px; }
  html:not(.kgs-desktop-canvas) .site-header.is-open { align-items: flex-start; height: 324px; padding-top: 12px; }
  html:not(.kgs-desktop-canvas) .site-header.is-open .main-nav { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; inset-inline-end: 20px; margin: 0; inset-inline-start: 20px; top: 76px; }
  html:not(.kgs-desktop-canvas) .site-header.is-open .main-nav a { font-size: 12px; padding: 7px 0; }
  html:not(.kgs-desktop-canvas) .site-header.is-open .header-actions { display: none; }
  html:not(.kgs-desktop-canvas) .hero { scroll-margin-top: 88px; }
}

@media (max-width: 900px) {
  section[id], footer[id] { scroll-margin-top: 88px; }
  .site-header.is-open { height: 350px; }
  .site-header.is-open .main-nav { grid-template-columns: 1fr; gap: 6px; top: 70px; }
  .site-header.is-open .main-nav a { padding: 6px 0; }
  .site-header.is-open .header-actions { display: none !important; }
  .hero-copy .hero-heading, .hero-copy .hero-detail { min-width: 0; }
  .portable-copy p, .contact > p:not(.kicker), .portal-card h3 { overflow-wrap: anywhere; }
  .project-form { max-width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* canvas.css */
/* Desktop canvas (see desktop-canvas.js). Between 901px and 1919px the page
   content is laid out at 1920px and scaled with zoom; vw lengths resolve
   against the 1920px canvas through --vw (rewritten by build-styles.js). */
html.kgs-canvas .site-header,
html.kgs-canvas main,
html.kgs-canvas .site-footer { zoom: var(--kgs-zoom, 1); }
/* Editor controls that live inside sections keep their normal size. */
html.kgs-canvas .review-section-controls { zoom: calc(1 / var(--kgs-zoom, 1)); }

/* An image frame added in the editor but not sized for the current layout
   (e.g. placed on desktop only) follows the flow at full column width instead
   of rendering at the image's natural pixel size. */
.review-added-image-frame:not([style*="width"]) { border-radius: 22px; box-sizing: border-box; display: block; max-width: 100%; min-width: 0; overflow: hidden; width: auto; }
.review-added-image-frame:not([style*="width"]) > img { display: block; height: auto; max-width: 100%; width: 100%; }

/* mobile-fixes.css */
/* Mobile layout fixes (<=900px renders the 390px mobile canvas). */
@media (max-width: 900px) {
  /* Hero: the purple copy block tucks under the rounded slider, as on desktop,
     instead of floating below it with a white gap. */
  .hero { gap: 0; }
  .hero-visual { position: relative; z-index: 3; }
  .hero-copy { margin-top: -40px; padding-top: 82px; }

  /* Equipment cards: title and description follow the illustration in normal
     flow; absolute positioning made them overlap each other and the artwork. */
  .equipment-card:not(.equipment-image) { min-height: 0; }
  .equipment-card:not(.equipment-image) .product-mark { flex: 0 0 auto; height: 110px; margin-block: 14px 6px; }
  .equipment-card:not(.equipment-image) h3,
  .equipment-card:not(.equipment-image) p { bottom: auto; inset: auto; max-width: none; position: static; }
  .equipment-card:not(.equipment-image) h3 { margin-top: 14px; }
  .equipment-card:not(.equipment-image) p { margin-top: 6px; }

  /* Portable: copy and specs read as one block when the image is hidden. */
  .portable { row-gap: 0; }
}

/* nav.css */
/* The mobile call-to-action only exists inside the mobile panel. */
.site-header .main-nav .nav-cta { display: none; }
/* Main navigation: top-level items with dropdown submenus on desktop and an
   accordion panel on mobile. Structure in index.html:
   .main-nav > .nav-item[.has-sub] > a.nav-link + button.nav-sub-toggle + .nav-sub > a */
.site-header .main-nav { align-items: stretch; gap: 0; height: 100%; margin-inline-start: clamp(12px, calc(2 * var(--vw, 1vw)), 34px); }
.site-header .nav-item { align-items: center; display: flex; height: 100%; position: relative; }
.site-header .nav-item + .nav-item { margin-inline-start: clamp(4px, calc(.9 * var(--vw, 1vw)), 14px); }
.site-header .nav-link { border-radius: 999px; color: #fff; font-size: 12px; font-weight: 600; padding: 9px 12px; text-decoration: none; white-space: nowrap; }
.site-header .nav-link-latin { font-family: var(--display); letter-spacing: .01em; }
.site-header .nav-sub-toggle { align-items: center; background: none; border: 0; border-radius: 999px; color: #fff; cursor: pointer; display: inline-flex; height: 28px; justify-content: center; margin-inline-start: -8px; padding: 0; width: 24px; }
.site-header .nav-sub-toggle span { border-bottom: 1.5px solid currentColor; border-inline-end: 1.5px solid currentColor; display: block; height: 6px; transform: translateY(-2px) rotate(-45deg); transition: transform .2s ease; width: 6px; }
.site-header .nav-item:hover > .nav-link, .site-header .nav-item.is-open > .nav-link, .site-header .nav-item:focus-within > .nav-link { background: rgba(255, 255, 255, .13); opacity: 1; }
.site-header .nav-item:hover > .nav-sub-toggle span, .site-header .nav-item.is-open > .nav-sub-toggle span, .site-header .nav-item:focus-within > .nav-sub-toggle span { transform: translateY(1px) rotate(135deg); }
.site-header .nav-sub { background: #fff; border: 1px solid #e6ddea; border-radius: 20px; box-shadow: 0 22px 54px rgba(35, 12, 52, .22); display: grid; gap: 2px; min-width: 232px; opacity: 0; padding: 12px; pointer-events: none; position: absolute; inset-inline-start: 0; top: calc(100% - 10px); transform: translateY(6px); transition: opacity .18s ease, transform .18s ease; visibility: hidden; z-index: 60; }
.site-header .nav-sub::before { content: ""; height: 14px; inset: -14px 0 auto; position: absolute; }
.site-header .nav-sub-wide { grid-template-columns: 1fr 1fr; min-width: 430px; }
.site-header .nav-sub a { border-radius: 12px; color: #391a4a; font-size: 12.5px; font-weight: 500; line-height: 1.5; padding: 10px 14px; text-decoration: none; transition: background .15s ease, color .15s ease; }
.site-header .nav-sub a:hover, .site-header .nav-sub a:focus-visible { background: #f4ecf7; color: var(--purple); text-decoration: none; }
.site-header .nav-item:hover > .nav-sub, .site-header .nav-item.is-open > .nav-sub, .site-header .nav-item:focus-within > .nav-sub { opacity: 1; pointer-events: auto; transform: translateY(0); visibility: visible; }
.site-header .nav-item.is-closing > .nav-sub { opacity: 0 !important; pointer-events: none !important; visibility: hidden !important; }
.site-header .nav-item:nth-last-child(-n + 2) .nav-sub { inset-inline-end: 0; inset-inline-start: auto; }

@media (max-width: 900px) {
  /* The header stays a 64px pill; the menu is a panel under it. */
  /* backdrop-filter would make the header the containing block of the fixed
     panel; the mobile header is solid purple, so it is not needed there. */
  html .site-header { backdrop-filter: none; -webkit-backdrop-filter: none; }
  html .site-header.is-open { align-items: center !important; height: 64px !important; padding-top: 0 !important; }
  html .site-header.is-open .main-nav { background: #fff; border-radius: 24px; bottom: auto; max-height: calc(100vh - 96px); box-shadow: 0 24px 60px rgba(35, 12, 52, .28); display: flex !important; flex-direction: column; gap: 0 !important; height: auto; inset-inline: 12px !important; margin: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding: 10px 10px 22px; position: fixed !important; top: 84px !important; z-index: 80; }
  .site-header .nav-item { border-bottom: 1px solid #efe8f3; display: grid; grid-template-columns: 1fr auto; height: auto; }
  .site-header .nav-item + .nav-item { margin: 0; }
  .site-header .nav-item:last-child { border-bottom: 0; }
  .site-header .nav-link, .site-header.is-open .main-nav a.nav-link { border-radius: 0; color: #2b1340 !important; font-size: 15px !important; font-weight: 700; padding: 15px 10px !important; white-space: normal; }
  .site-header .nav-sub-toggle { color: var(--purple); height: 52px; margin: 0; width: 52px; }
  .site-header .nav-sub-toggle span { height: 8px; width: 8px; }
  .site-header .nav-item:hover > .nav-link, .site-header .nav-item:focus-within > .nav-link { background: none; }
  .site-header .nav-item:hover > .nav-sub-toggle span, .site-header .nav-item:focus-within > .nav-sub-toggle span { transform: translateY(-2px) rotate(-45deg); }
  .site-header .nav-item.is-open > .nav-sub-toggle span { transform: translateY(1px) rotate(135deg); }
  .site-header .nav-sub, .site-header .nav-item:hover > .nav-sub, .site-header .nav-item:focus-within > .nav-sub { background: #f8f3fa; border: 0; border-radius: 16px; box-shadow: none; display: none; grid-column: 1 / -1; grid-template-columns: 1fr; margin: 0 0 12px; min-width: 0; opacity: 1; padding: 6px; pointer-events: auto; position: static; transform: none; transition: none; visibility: visible; }
  .site-header .nav-item.is-open > .nav-sub { display: grid; }
  .site-header .nav-sub a, .site-header.is-open .main-nav .nav-sub a { font-size: 13.5px !important; padding: 11px 14px !important; }
  .site-header .nav-item.has-sub > .nav-link { padding-inline-end: 0 !important; }
  .site-header .main-nav .nav-cta { background: var(--purple); border-radius: 999px; color: #fff; display: flex; font-size: 14px; font-weight: 700; justify-content: center; margin: 14px 4px 0; padding: 15px; text-decoration: none; }
  .site-header .main-nav .nav-cta span { font-family: Arial, sans-serif; margin-inline-start: 10px; }
  body.nav-open { overflow: hidden; }
}

/* pages.css */
/* Inner knowledge pages (generated by build-pages.js). Authored for the same
   design canvases as the home page: 1920px on desktop, 390px on mobile. */
.kp-page { background: var(--paper); color: var(--ink); font-family: var(--fa); padding-bottom: 40px; }
.kp-wrap { margin: 0 auto; max-width: 1360px; padding: 0 56px; }
.kp-crumbs { align-items: center; color: #6b7f86; display: flex; flex-wrap: wrap; font-size: 15px; gap: 10px; margin: 36px 0 0; }
.kp-crumbs a { color: inherit; text-decoration: none; }
.kp-crumbs a:hover { color: var(--purple); }
.kp-hero { align-items: center; display: grid; gap: 64px; grid-template-columns: 1.15fr 1fr; padding: 44px 0 72px; }
.kp-hero.no-figure { grid-template-columns: 1fr; }
.kp-kicker { color: var(--purple); font-family: var(--display); font-size: 14px; font-weight: 700; letter-spacing: .12em; margin: 0 0 18px; }
.kp-hero h1 { font-family: var(--fa); font-size: 62px; font-weight: 700; letter-spacing: -.02em; line-height: 1.25; margin: 0 0 26px; }
.kp-lead { font-size: 21px; line-height: 2.1; margin: 0; max-width: 760px; }
.kp-hero-figure { background: linear-gradient(160deg, #eef4f2, #e3eeeb); border-radius: 36px; margin: 0; overflow: hidden; padding: 28px; }
.kp-hero-figure.is-photo { padding: 0; }
.kp-hero-figure img { display: block; height: auto; max-height: 560px; object-fit: contain; width: 100%; }
.kp-hero-figure.is-photo img { max-height: none; object-fit: cover; }
.kp-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.kp-btn { align-items: center; background: var(--dark); border-radius: 999px; color: #fff; display: inline-flex; font-size: 16px; font-weight: 700; gap: 18px; padding: 16px 28px; text-decoration: none; transition: transform .2s; }
.kp-btn:hover { transform: translateY(-2px); }
.kp-btn.ghost { background: transparent; border: 1.5px solid var(--dark); color: var(--dark); }
.kp-btn span { font-family: Arial, sans-serif; }

.kp-section { border-top: 1px solid rgba(24, 60, 74, .1); padding: 72px 0; }
.kp-section h2 { font-family: var(--fa); font-size: 40px; font-weight: 700; letter-spacing: -.01em; line-height: 1.4; margin: 0 0 14px; }
.kp-section-sub { color: #55707a; font-size: 19px; line-height: 2; margin: 0 0 36px; max-width: 900px; }
.kp-text p { font-size: 19px; line-height: 2.15; margin: 0 0 20px; max-width: 980px; }
.kp-text p:last-child { margin-bottom: 0; }

.kp-list { display: grid; gap: 14px 40px; grid-template-columns: repeat(2, 1fr); list-style: none; margin: 28px 0 0; padding: 0; }
.kp-list.one { grid-template-columns: 1fr; max-width: 980px; }
.kp-list li { font-size: 18px; line-height: 1.95; padding-inline-start: 34px; position: relative; }
.kp-list li::before { background: var(--mint); border: 2px solid var(--purple); border-radius: 50%; content: ""; height: 14px; inset-inline-start: 4px; position: absolute; top: 13px; width: 14px; }

.kp-cards { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); margin-top: 8px; }
.kp-cards.two { grid-template-columns: repeat(2, 1fr); }
.kp-cards.four { grid-template-columns: repeat(4, 1fr); }
.kp-card { background: #fff; border: 1px solid #e6ddea; border-radius: 28px; padding: 32px 30px 34px; }
.kp-card .kp-num { color: var(--purple); font-family: var(--display); font-size: 15px; font-weight: 700; letter-spacing: .1em; }
.kp-card h3 { font-size: 23px; font-weight: 700; line-height: 1.6; margin: 10px 0 12px; }
.kp-card p { color: #3f5a64; font-size: 17px; line-height: 2.05; margin: 0; }
.kp-card.accent { background: var(--dark); border-color: var(--dark); color: #fff; }
.kp-card.accent p { color: #cfe3e0; }
.kp-card.accent .kp-num { color: #dfc8ec; }

.kp-stats { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); margin: 8px 0 0; }
.kp-stat { background: var(--dark); border-radius: 28px; color: #fff; padding: 30px; }
.kp-stat b { display: block; font-family: var(--display); font-size: 42px; font-weight: 700; letter-spacing: -.03em; line-height: 1.2; }
.kp-stat span { color: #cfe3e0; display: block; font-size: 16px; line-height: 1.9; margin-top: 8px; }

.kp-table { border-collapse: separate; border-spacing: 0; font-size: 17px; width: 100%; }
.kp-table th, .kp-table td { border-bottom: 1px solid #dfe9e7; line-height: 1.95; padding: 16px 22px; text-align: start; vertical-align: top; }
.kp-table th { background: var(--mint); color: var(--dark); font-weight: 700; width: 26%; }
.kp-table tr:first-child th { border-start-start-radius: 18px; }
.kp-table tr:last-child th { border-end-start-radius: 18px; }
.kp-table-wrap { background: #fff; border: 1px solid #e6ddea; border-radius: 22px; overflow: hidden; }

.kp-gallery { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); margin: 0; }
.kp-gallery.two { grid-template-columns: repeat(2, 1fr); }
.kp-gallery.four { grid-template-columns: repeat(4, 1fr); }
.kp-gallery figure { align-self: start; background: linear-gradient(160deg, #eef4f2, #e3eeeb); border-radius: 26px; margin: 0; overflow: hidden; }
.kp-gallery img { aspect-ratio: 4 / 3; display: block; object-fit: contain; padding: 18px; width: 100%; }
.kp-gallery.photos img { aspect-ratio: 3 / 4; object-fit: cover; padding: 0; }
.kp-gallery.photos figure { background: #dfe9e7; }
.kp-gallery.wide img { aspect-ratio: 16 / 10; }
.kp-gallery.fit img { aspect-ratio: auto; object-fit: contain; padding: 18px; }
.kp-gallery figcaption { background: #fff; border-top: 1px solid #e6ddea; color: #3f5a64; font-size: 15px; line-height: 1.9; padding: 14px 20px 16px; }

.kp-en { background: #fff; border: 1px solid #e6ddea; border-radius: 24px; margin-top: 8px; padding: 6px 28px; }
.kp-en summary { cursor: pointer; font-family: var(--display); font-size: 16px; font-weight: 700; list-style: none; padding: 20px 0; }
.kp-en summary::after { content: "+"; float:inline-start; font-size: 22px; }
.kp-en[open] summary::after { content: "–"; }
.kp-en summary::-webkit-details-marker { display: none; }
.kp-en-body { color: #3f5a64; font-family: var(--display); font-size: 16px; line-height: 1.95; padding: 4px 0 24px; text-align:end; }
.kp-en-body h3 { color: var(--ink); font-size: 18px; margin: 22px 0 8px; }
.kp-en-body p { margin: 0 0 14px; }
.kp-en-body ul { margin: 0 0 14px; padding-inline-start: 22px; }

.kp-cta { background: var(--purple); border-radius: 36px; color: #fff; display: grid; gap: 30px; grid-template-columns: 1fr auto; margin: 24px 0 8px; padding: 46px 52px; align-items: center; }
.kp-cta h2 { color: #fff; font-size: 36px; margin: 0 0 8px; }
.kp-cta p { color: #e6d6f0; font-size: 18px; line-height: 2; margin: 0; }
.kp-cta .kp-btn { background: #fff; color: var(--purple); }

.kp-related { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); margin: 6px 0 0; }

/* Home page additions that use the knowledge base */
.about.section { display: grid; gap: 28px 56px; grid-template-columns: 1fr 1fr; padding-block: 72px; }
.about-head { grid-column: 1 / -1; }
.about-head h2 { font-family: var(--display); font-size: clamp(44px, calc(5 * var(--vw, 1vw)), 80px); font-weight: 600; letter-spacing: -.072em; line-height: .99; margin: 0; }
.about-copy p { font-size: 14px; line-height: 2.08; margin: 0 0 18px; }
.about-stats { display: grid; gap: 14px; grid-template-columns: repeat(3, 1fr); }
.about-stats div { background: var(--dark); border-radius: 22px; color: #fff; padding: 22px; }
.about-stats b { display: block; font-family: var(--display); font-size: 26px; letter-spacing: -.03em; }
.about-stats span { color: #cfe3e0; display: block; font-size: 11px; line-height: 1.8; margin-top: 6px; }
.about-vm { display: grid; gap: 18px; grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
.about-vm article { background: #fff; border: 1px solid #e6ddea; border-radius: 28px; padding: 28px; }
.about-vm span { color: var(--purple); font-family: var(--display); font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.about-vm p { font-size: 13px; line-height: 2; margin: 10px 0 0; }
.equipment-card .equipment-photo { display: block; height: 132px; margin: 17px 0; object-fit: contain; width: 100%; }
.equipment-card .card-link, .solution-card .card-link { inset: 0; position: absolute; z-index: 2; border-radius: inherit; }
.equipment-more { display: grid; grid-column: 1 / -1; margin-top: 34px; grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 900px) {
  .kp-wrap { padding: 0 20px; }
  .kp-hero { gap: 28px; grid-template-columns: 1fr; padding: 26px 0 40px; }
  .kp-hero h1 { font-size: 32px; margin-bottom: 16px; }
  .kp-lead { font-size: 16px; line-height: 2; }
  .kp-crumbs { font-size: 13px; margin-top: 22px; }
  .kp-hero-figure { border-radius: 24px; padding: 16px; }
  .kp-section { padding: 40px 0; }
  .kp-section h2 { font-size: 26px; }
  .kp-section-sub, .kp-text p { font-size: 15px; }
  .kp-list, .kp-cards, .kp-cards.two, .kp-cards.four, .kp-stats, .kp-gallery, .kp-gallery.two, .kp-gallery.four { grid-template-columns: 1fr; }
  .kp-list li { font-size: 15px; }
  .kp-card { border-radius: 22px; padding: 24px 22px; }
  .kp-card h3 { font-size: 19px; }
  .kp-card p { font-size: 15px; }
  .kp-stat b { font-size: 32px; }
  .kp-table th, .kp-table td { display: block; padding: 10px 16px; width: auto; }
  .kp-table th { padding-bottom: 4px; }
  .kp-table td { border-bottom: 1px solid #dfe9e7; padding-top: 4px; }
  .kp-table tr:first-child th, .kp-table tr:last-child th { border-radius: 0; }
  .kp-table { font-size: 15px; }
  .kp-gallery.photos img { aspect-ratio: 4 / 5; }
  .kp-gallery img { aspect-ratio: 4 / 3; }
  .kp-en { padding: 2px 18px; }
  .kp-en-body { font-size: 14px; }
  .kp-cta { grid-template-columns: 1fr; padding: 30px 24px; border-radius: 26px; }
  .kp-cta h2 { font-size: 24px; }
  .kp-cta p { font-size: 15px; }
  .kp-btn { font-size: 14px; padding: 14px 22px; }
  .about.section { gap: 20px; grid-template-columns: 1fr; padding-block: 36px; }
  .about-stats { grid-template-columns: 1fr; }
  .about-vm { grid-template-columns: 1fr; }
  .about-copy p { font-size: 14px; }
}


/* Large link cards (home equipment + related blocks on inner pages) */
.kp-rcard { align-items: center; background: #fff; border: 1px solid #e6ddea; border-radius: 26px; color: var(--ink); display: grid; gap: 18px; grid-template-columns: 112px minmax(0, 1fr) auto; min-height: 148px; padding-block:16px 16px;padding-inline:18px 22px; text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; }
.kp-rcard:hover { border-color: var(--purple); box-shadow: 0 16px 36px rgba(92, 40, 126, .14); transform: translateY(-4px); }
.kp-rcard-img { background: var(--mint); border-radius: 18px; display: block; height: 112px; overflow: hidden; width: 112px; }
.kp-rcard-img img { display: block; height: 100%; object-fit: cover; width: 100%; }
.kp-rcard-img img.is-logo { object-fit: contain; padding: 16px; }
.kp-rcard-body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.kp-rcard-body b { font-size: 21px; font-weight: 700; line-height: 1.5; }
.kp-rcard-body small { color: #4d6a72; font-size: 15px; line-height: 1.8; }
.kp-rcard i { align-items: center; background: var(--mint); border-radius: 50%; color: var(--purple); display: flex; font-family: Arial, sans-serif; font-size: 22px; font-style: normal; height: 46px; justify-content: center; transition: background .2s, color .2s; width: 46px; }
.kp-rcard:hover i { background: var(--purple); color: #fff; }
@media (max-width: 900px) {
  .equipment-more { grid-template-columns: 1fr; margin-top: 26px; }
  .kp-related { grid-template-columns: 1fr; gap: 12px; }
  .kp-rcard { border-radius: 20px; gap: 14px; grid-template-columns: 84px minmax(0, 1fr) auto; min-height: 112px; padding: 12px 14px; }
  .kp-rcard-img { border-radius: 14px; height: 84px; width: 84px; }
  .kp-rcard-body b { font-size: 17px; }
  .kp-rcard-body small { font-size: 13px; line-height: 1.7; }
  .kp-rcard i { font-size: 18px; height: 38px; width: 38px; }
}
/* Empty-state block for pages still waiting for content */
.kp-empty { align-items: center; background: #fff; border: 2px dashed #cdb8da; border-radius: 28px; display: flex; gap: 28px; padding: 40px 44px; }
.kp-empty-icon { border: 3px dashed var(--purple); border-radius: 50%; flex: 0 0 auto; height: 72px; position: relative; width: 72px; }
.kp-empty-icon::after { background: var(--purple); border-radius: 3px; content: ""; height: 26px; inset-inline-end: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%) rotate(45deg); width: 26px; opacity: .85; }
.kp-empty h2 { font-size: 28px; margin: 0 0 10px; }
.kp-empty p { color: #4d6a72; font-size: 18px; line-height: 2; margin: 0 0 18px; max-width: 760px; }
.kp-empty .kp-actions { margin-top: 4px; }
@media (max-width: 900px) {
  .kp-empty { align-items: flex-start; flex-direction: column; gap: 18px; padding: 26px 22px; border-radius: 22px; }
  .kp-empty-icon { height: 56px; width: 56px; }
  .kp-empty h2 { font-size: 21px; }
  .kp-empty p { font-size: 15px; }
}

/* Board of directors page */
.kp-chair { align-items: center; display: grid; gap: 64px; grid-template-columns: minmax(0, 420px) 1fr; }
.kp-chair-photo { aspect-ratio: 3 / 4; background: #efe7f8; border-radius: 36px; margin: 0; overflow: hidden; }
.kp-chair-photo img { display: block; height: 100%; object-fit: cover; width: 100%; }
.kp-chair-body h2 { font-size: 44px; margin: 0 0 8px; }
.kp-chair-body p:not(.kp-kicker) { font-size: 20px; line-height: 2.1; margin: 18px 0 0; max-width: 760px; }
.kp-member-role { color: var(--purple); display: block; font-size: 17px; font-weight: 700; }
.kp-members-title { margin: 72px 0 40px !important; text-align: center; }
.kp-members { display: grid; gap: 40px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kp-member { text-align: center; }
.kp-member-photo { aspect-ratio: 1; background: #efe7f8; border: 6px solid #fff; border-radius: 50%; box-shadow: 0 14px 40px rgba(60, 30, 100, .16); display: block; height: auto; margin: 0 auto 22px; overflow: hidden; width: min(100%, 220px); }
.kp-member-photo img { display: block; height: 100%; object-fit: cover; width: 100%; }
.kp-member h3 { font-size: 24px; margin: 0 0 4px; }
.kp-member p { font-size: 17px; line-height: 2; margin: 14px auto 0; max-width: 380px; text-align:start; }
.kp-board-note { color: #6b7f86; font-size: 14px; margin: 48px 0 0; text-align: center; }
@media (max-width: 900px) {
  .kp-chair { gap: 24px; grid-template-columns: 1fr; }
  .kp-chair-photo { border-radius: 24px; margin: 0 auto; max-width: 320px; width: 100%; }
  .kp-chair-body h2 { font-size: 28px; }
  .kp-chair-body p:not(.kp-kicker) { font-size: 16px; line-height: 2; }
  .kp-members { gap: 36px; grid-template-columns: 1fr; }
  .kp-members-title { margin: 44px 0 28px !important; }
  .kp-member p { font-size: 15px; }
}

/* Downloadable catalogues */
.kp-catalog-list { display: grid; gap: 14px; list-style: none; margin: 8px 0 0; padding: 0; }
.kp-catalog { align-items: center; background: #fff; border: 1px solid #e6ddea; border-radius: 22px; display: grid; gap: 22px; grid-template-columns: auto 1fr auto; padding: 22px 26px; }
.kp-catalog-icon { align-items: center; background: #f1e8f7; border-radius: 14px; color: var(--purple); display: flex; font-size: 13px; font-weight: 800; height: 56px; justify-content: center; letter-spacing: .04em; width: 56px; }
.kp-catalog h3 { font-size: 19px; margin: 0 0 4px; }
.kp-catalog p { color: #4a4453; font-size: 15px; line-height: 1.9; margin: 0; }
.kp-catalog small { color: #7b6f85; display: block; font-size: 12.5px; margin-top: 6px; text-align: start; }
.kp-catalog-dl { white-space: nowrap; }
@media (max-width: 900px) { .kp-catalog { gap: 14px; grid-template-columns: auto 1fr; padding: 18px; } .kp-catalog-dl { grid-column: 1 / -1; justify-content: center; } }

/* Encyclopedia posts */
.kp-posts { display: grid; gap: 22px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 8px 0 0; }
.kp-post { background: #fff; border: 1px solid #e6ddea; border-radius: 26px; color: inherit; display: flex; flex-direction: column; overflow: hidden; text-decoration: none; transition: transform .2s, box-shadow .2s; }
.kp-post:hover { box-shadow: 0 18px 40px rgba(58, 24, 79, .1); transform: translateY(-3px); }
.kp-post figure { aspect-ratio: 16 / 9; background: #f1e8f7; margin: 0; overflow: hidden; }
.kp-post figure img { display: block; height: 100%; object-fit: cover; width: 100%; }
.kp-post.no-cover figure { display: none; }
.kp-post-body { display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 22px 24px 24px; }
.kp-post time { color: var(--purple); font-size: 13px; font-weight: 700; }
.kp-post h3 { font-size: 20px; line-height: 1.6; margin: 0; }
.kp-post p { color: #4a4453; font-size: 15px; line-height: 1.9; margin: 0; }
.kp-post-more { color: var(--purple); font-size: 14px; font-weight: 700; margin-top: auto; padding-top: 8px; }
.kp-date { color: var(--purple); font-size: 15px; font-weight: 700; margin: 10px 0 0; }
@media (max-width: 900px) { .kp-posts { grid-template-columns: 1fr; } }

/* desktop-type.css */
/* Larger, more readable type on desktop (viewports above 900px). Sizes are in
   canvas pixels (1920px wide); inline sizes saved by the editor still win. */
@media (min-width: 901px) {
  .site-header .main-nav .nav-link, .site-header .main-nav > .nav-item > a { font-size: 17px; }
  .site-header .nav-sub a { font-size: 16px; }
  .site-header .header-cta { font-size: 16px; padding: 14px 24px; }
  .kicker { font-size: 16px; letter-spacing: .08em; margin-bottom: 22px; }
  .hero-copy .kicker, .hero .kicker { font-size: 16px; }
  .hero-text { font-size: 22px; line-height: 1.95; }
  .button, .text-button, .footer-cta { font-size: 17px; }
  .button { padding: 18px 28px; }
  .intro-copy p, .application-heading p, .equipment-copy p, .portable-copy p, .proof-top > p, .contact > p, .about-copy p { font-size: 20px; line-height: 2; }
  .section-bar p:not(.kicker) { font-size: 21px; }
  .solution-card-body p { font-size: 18px; line-height: 1.9; }
  .solution-card-body h3 { font-size: 38px; }
  .solution-card figure span { font-size: 15px; }
  .application-grid a span { font-size: 15px; }
  .application-grid a b { font-size: 26px; }
  .application-grid a small { font-size: 16px; line-height: 1.8; }
  .equipment-card > span { font-size: 15px; }
  .equipment-card h3 { font-size: 26px; bottom: 82px; }
  .equipment-card p { font-size: 16px; line-height: 1.8; max-width: calc(100% - 46px); bottom: 24px; }
  .equipment-card { min-height: 360px; }
  .equipment-card .equipment-photo { height: 150px; }
  .portable-specs b { font-size: 24px; }
  .portable-specs span { font-size: 15px; line-height: 1.8; }
  .proof-grid article > span { font-size: 15px; }
  .proof-grid article h3 { font-size: 26px; line-height: 1.5; }
  .proof-grid article p { font-size: 17px; line-height: 1.9; }
  .proof-grid article a { font-size: 17px; }
  .portal-card p { font-size: 15px; }
  .portal-card h3 { font-size: 26px; line-height: 1.7; }
  .project-form label { font-size: 17px; font-weight: 600; }
  .project-form input, .project-form select, .project-form textarea { font-size: 19px; padding-block: 14px; }
  .project-form button { font-size: 19px; }
  .form-status { font-size: 16px; }
  .about-stats b { font-size: 34px; }
  .about-stats span { font-size: 16px; }
  .about-vm span { font-size: 16px; }
  .about-vm p { font-size: 18px; }
  .kp-rcard { gap: 24px; grid-template-columns: 148px minmax(0, 1fr) auto; min-height: 196px; padding-block:22px 22px;padding-inline:26px 28px; }
  .kp-rcard-img { height: 148px; width: 148px; }
  .kp-rcard-body b { font-size: 26px; }
  .kp-rcard-body small { font-size: 18px; }
  .kp-rcard i { font-size: 26px; height: 56px; width: 56px; }
  /* The purple hero block tucks 112px under the slider; keep its content clear of the slider and its tabs. */
  .hero-copy { padding-bottom: 60px; padding-top: 160px; }
}

/* hero-tabs.css */
/* Hero slider tabs: five labelled tabs stretched across the full slide width */
.hero-visual .slider-controls { bottom: 0; display: block; gap: 0; inset-inline-end: 0; inset-inline-start: 0; width: 100%; z-index: 5; }
.hero-visual .slider-dots { display: flex; gap: 0; width: 100%; direction:inherit; }
.hero-visual .slider-dots button {
  background: rgba(12, 55, 70, .62); border: 0; border-inline-start: 1px solid rgba(255, 255, 255, .22);
  border-radius: 0; color: #fff; cursor: pointer; flex: 1 1 0; font-family: var(--fa); font-size: 18px; font-weight: 700;
  height: 64px; min-width: 0; padding: 0 6px; transform: none; transition: background .25s, color .25s;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); position: relative;
}
.hero-visual .slider-dots button:first-child { border-inline-start: 0; }
.hero-visual .slider-dots button:hover { background: rgba(92, 40, 126, .78); }
.hero-visual .slider-dots button.is-active { background: var(--purple); color: #fff; transform: none; }
.hero-visual .slider-dots button.is-active::after { background: #dfc8ec; bottom: 0; content: ""; height: 4px; inset-inline-end: 0; position: absolute; inset-inline-start: 0; }
.hero-visual .slider-dots button:focus-visible { outline: 3px solid #dfc8ec; outline-offset: -3px; }
.hero-visual .hero-chip { display: none; }
@media (max-width: 900px) {
  .hero-visual .slider-dots button { font-size: 14px; height: 46px; padding: 0 2px; }
  .hero-visual .slider-dots button.is-active::after { height: 3px; }
}
@media (max-width: 900px) {
  .hero-visual .slider-dots button { font-size: 12.5px; height: 42px; }
}

/* footer.css */
/* Footer: identity (logo + title) on the right, quick phone on the left,
   five link columns below with a contact column filling the left edge. */
.site-footer { background: linear-gradient(180deg, #421a5b, #34114b); }
.site-footer .footer-top { align-items: center; display: flex; gap: 32px; justify-content: space-between; padding: 44px 0; }
.site-footer .footer-id { align-items: center; display: flex; gap: 28px; min-width: 0; }
.site-footer .footer-id .brand img { height: 72px; width: auto; }
.site-footer .footer-title { border-inline-start: 1px solid rgba(255, 255, 255, .28); padding-inline-start: 28px; }
.site-footer .footer-title strong { display: block; font-size: 24px; font-weight: 700; line-height: 1.5; }
.site-footer .footer-title p { font-size: 18px; line-height: 1.8; margin: 4px 0 0; opacity: .85; }
.site-footer .footer-phone { align-items: center; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .22); border-radius: 999px; display: flex; flex: 0 0 auto; gap: 18px; padding-block:12px 12px;padding-inline:30px 14px; text-decoration: none; transition: background .25s, transform .25s; }
.site-footer .footer-phone:hover { background: rgba(255, 255, 255, .18); transform: translateY(-2px); }
.site-footer .footer-phone-icon { align-items: center; background: #fff; border-radius: 50%; color: var(--purple); display: flex; font-size: 26px; height: 56px; justify-content: center; width: 56px; }
.site-footer .footer-phone-text { display: flex; flex-direction: column; gap: 2px; }
.site-footer .footer-phone small { color: #c7f25a; font-size: 16px; font-weight: 700; }
.site-footer .footer-phone b { font-family: var(--display); font-size: 30px; letter-spacing: .03em; line-height: 1.2; text-align:end; }
.site-footer .footer-links { gap: 36px; grid-template-columns: repeat(var(--footer-cols, 5), minmax(0, 1fr)); padding: 56px 0; }
.site-footer .footer-links h3 { font-size: 19px; margin: 0 0 12px; }
.site-footer .footer-links a { font-size: 17px; line-height: 1.7; }
.site-footer .footer-links section { gap: 12px; }
.site-footer .footer-contact { background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); border-radius: 24px; padding: 26px; }
.site-footer .footer-line { display: flex; flex-direction: column; gap: 2px; opacity: 1; }
.site-footer .footer-line span { font-size: 14px; opacity: .6; }
.site-footer .footer-line b { font-family: var(--display); font-size: 17px; font-weight: 600; overflow-wrap: anywhere; text-align:start; }
.site-footer .footer-cta-small { align-self: flex-start; background: #fff; border-radius: 999px; color: var(--purple); font-size: 16px; font-weight: 800; margin-top: 6px; opacity: 1; padding: 12px 22px; }
.site-footer .footer-cta-small:hover { transform: translateY(-2px); }
.site-footer .footer-bottom { font-size: 15px; padding: 26px 0 112px; }
.site-footer .footer-bottom a { font-size: 15px; }
@media (max-width: 900px) {
  .site-footer .footer-top { align-items: stretch; flex-direction: column; gap: 22px; padding: 30px 0 26px; }
  .site-footer .footer-id { gap: 16px; }
  .site-footer .footer-id .brand img { height: 52px; }
  .site-footer .footer-title { padding-inline-start: 16px; }
  .site-footer .footer-title strong { font-size: 17px; }
  .site-footer .footer-title p { font-size: 13px; }
  .site-footer .footer-phone { justify-content: center; padding: 10px 16px; }
  .site-footer .footer-phone-icon { font-size: 20px; height: 44px; width: 44px; }
  .site-footer .footer-phone small { font-size: 13px; }
  .site-footer .footer-phone b { font-size: 22px; }
  .site-footer .footer-links { gap: 30px 18px; grid-template-columns: 1fr 1fr; padding: 34px 0; }
  .site-footer .footer-links h3 { font-size: 14px; }
  .site-footer .footer-links a { font-size: 13px; }
  .site-footer .footer-contact { grid-column: 1 / -1; padding: 20px; }
  .site-footer .footer-line span { font-size: 12px; }
  .site-footer .footer-line b { font-size: 15px; }
  .site-footer .footer-cta-small { align-self: stretch; font-size: 14px; text-align: center; }
  .site-footer .footer-bottom { font-size: 12px; padding: 20px 0 calc(88px + env(safe-area-inset-bottom)); }
  .site-footer .footer-bottom a { font-size: 12px; }
}
@media (max-width: 900px) {
  .site-footer .footer-links { grid-template-columns: 1fr 1fr; }
}

/* quick-contact.css */
/* Floating quick-contact button + popup form (elements live on <body>, so they
   use real pixels and are not scaled by the design canvas). */
.kc-fab { align-items: center; background: var(--purple, #5c287e); border: 0; border-radius: 999px; bottom: 24px; box-shadow: 0 10px 30px rgba(52, 17, 75, .38); color: #fff; cursor: pointer; display: inline-flex; font-family: var(--fa, "Vazirmatn", sans-serif); font-size: 16px; font-weight: 700; gap: 10px; padding-block:12px 12px;padding-inline:22px 14px; position: fixed; inset-inline-start: 24px; transition: transform .2s, box-shadow .2s, opacity .2s; z-index: 900; }
.kc-fab:hover { box-shadow: 0 14px 36px rgba(52, 17, 75, .5); transform: translateY(-3px); }
.kc-fab:focus-visible { outline: 3px solid #dfc8ec; outline-offset: 3px; }
.kc-fab-icon { align-items: center; background: rgba(255, 255, 255, .18); border-radius: 50%; display: flex; height: 44px; justify-content: center; width: 44px; }
.kc-fab::before { animation: kc-pulse 2.8s ease-out infinite; border-radius: inherit; box-shadow: 0 0 0 0 rgba(92, 40, 126, .5); content: ""; inset: 0; pointer-events: none; position: absolute; }
@keyframes kc-pulse { 0% { box-shadow: 0 0 0 0 rgba(92, 40, 126, .45); } 70%, 100% { box-shadow: 0 0 0 18px rgba(92, 40, 126, 0); } }
body.kc-open .kc-fab, body.nav-open .kc-fab { opacity: 0; pointer-events: none; }
body.kc-open { overflow: hidden; }

.kc-overlay { align-items: center; background: rgba(12, 28, 36, .62); display: flex; inset: 0; justify-content: center; opacity: 0; overflow-y: auto; padding: 20px; position: fixed; transition: opacity .2s; z-index: 1000; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.kc-overlay[hidden] { display: none; }
.kc-overlay.is-open { opacity: 1; }
.kc-dialog { background: #f9fbfa; border-radius: 28px; box-shadow: 0 30px 80px rgba(0, 0, 0, .35); color: var(--ink, #183c4a); direction:inherit; max-height: calc(100dvh - 40px); max-width: 640px; outline: none; overflow-y: auto; padding: 38px 40px 34px; position: relative; transform: translateY(14px) scale(.98); transition: transform .25s; width: 100%; }
.kc-overlay.is-open .kc-dialog { transform: none; }
.kc-close { background: #e8f6f3; border: 0; border-radius: 50%; color: var(--ink, #183c4a); cursor: pointer; font-size: 28px; height: 44px; inset-inline-end: 18px; line-height: 1; position: absolute; top: 18px; width: 44px; }
.kc-close:hover { background: var(--purple, #5c287e); color: #fff; }
.kc-kicker { color: var(--purple, #5c287e); font-family: var(--display, sans-serif); font-size: 13px; font-weight: 800; letter-spacing: .12em; margin: 0 0 8px; }
.kc-dialog h2 { font-size: 30px; font-weight: 700; line-height: 1.4; margin: 0 0 10px; }
.kc-lead { font-size: 16px; line-height: 1.9; margin: 0 0 22px; opacity: .85; }
.kc-lead a { color: var(--purple, #5c287e); font-weight: 700; text-decoration: none; }
.kc-form { display: grid; gap: 16px 18px; grid-template-columns: 1fr 1fr; }
.kc-form label { color: #3f5b63; font-size: 15px; font-weight: 600; min-width: 0; }
.kc-wide { grid-column: 1 / -1; }
.kc-form input, .kc-form select, .kc-form textarea { background: #fff; border: 1px solid var(--line, #bbd8d2); border-radius: 14px; color: var(--ink, #183c4a); display: block; font-family: var(--fa, "Vazirmatn", sans-serif); font-size: 16px; margin-top: 7px; min-height: 48px; outline: none; padding: 11px 14px; width: 100%; }
.kc-form textarea { min-height: 88px; resize: vertical; }
.kc-form input:focus, .kc-form select:focus, .kc-form textarea:focus { border-color: var(--purple, #5c287e); box-shadow: 0 0 0 3px rgba(92, 40, 126, .15); }
.kc-submit { background: var(--purple, #5c287e); border: 0; border-radius: 999px; color: #fff; cursor: pointer; font-family: var(--fa, "Vazirmatn", sans-serif); font-size: 17px; font-weight: 700; grid-column: 1 / -1; min-height: 52px; padding: 14px 28px; }
.kc-submit span { font-family: Arial, sans-serif; margin-inline-start: 10px; }
.kc-submit:disabled { opacity: .6; cursor: wait; }
.kc-status { display: none; font-size: 15px; grid-column: 1 / -1; line-height: 1.8; margin: 0; }
.kc-status.is-visible { display: block; }
.kc-status.success { color: #1c7a4b; }
.kc-status.error { color: #b3261e; }
@media (max-width: 900px) {
  .kc-fab { bottom: max(14px, env(safe-area-inset-bottom)); height: 58px; padding: 6px; inset-inline-start: 14px; width: 58px; justify-content: center; }
  .kc-fab-label { display: none; }
  .kc-fab-icon { height: 46px; width: 46px; }
  .kc-overlay { align-items: flex-end; padding: 0; }
  .kc-dialog { border-radius: 24px 24px 0 0; max-height: 94dvh; padding: 30px 20px calc(24px + env(safe-area-inset-bottom)); }
  .kc-dialog h2 { font-size: 22px; padding-inline-end: 50px; }
  .kc-lead { font-size: 14px; }
  .kc-form { grid-template-columns: 1fr; gap: 14px; }
  .kc-close { inset-inline-end: 12px; top: 12px; }
}
@media (prefers-reduced-motion: reduce) { .kc-fab::before { animation: none; } }

/* ui-fixes.css */
/* Round-3 UI fixes: mobile header CTA, hero text alignment, centered section bar,
   clickable solution cards, and a locked layout for the client-portal block. */

/* Mobile: the header "start project" pill is removed (the menu panel keeps its own CTA). */
@media (max-width: 900px) {
  .site-header .header-cta { display: none; }
}

/* Hero copy under the slider: everything right-aligned together. */
.hero-copy .hero-detail { align-items: stretch; direction:inherit; }
.hero-copy .hero-detail .kicker { direction: ltr; text-align: right; width: 100%; }
.hero-detail .hero-text { direction:inherit; max-width: none; text-align:start; width: 100%; }
.hero-detail .hero-actions { align-self: flex-start; justify-content: flex-start; }

/* "راهکارهای یکپارچه" heading + sentence centered. */
.solution-section .section-bar { align-items: center; display: flex; flex-direction: column; gap: 12px; justify-content: center; text-align: center; }
.solution-section .section-bar > p { margin: 0 auto; max-width: 640px; text-align: center; }
@media (min-width: 901px) {
  .solution-section .section-bar > p.kicker { font-size: 24px; margin-bottom: 0; }
}

/* Solution cards: the whole card is the link; "توضیحات بیشتر" sits next to the arrow. */
.solution-card-split .solution-card-body { position: static; }
.solution-card-split a.card-more { align-items: center; background: none; border: 0; border-radius: 0; display: inline-flex; font-family: var(--fa); font-size: 15px; font-weight: 700; gap: 12px; height: auto; margin-top: auto; padding-top: 14px; width: auto; }
.solution-card-split a.card-more::after { content: ""; inset: 0; position: absolute; z-index: 2; }
.card-more-arrow { align-items: center; border: 1px solid currentColor; border-radius: 50%; display: flex; font-family: Arial, sans-serif; font-size: 18px; height: 39px; justify-content: center; transition: background .28s ease, color .28s ease, transform .28s ease; width: 39px; }
.solution-card-split:hover a.card-more, .solution-card-split:focus-within a.card-more { background: none; color: #fff; transform: none; }
.solution-card-split:hover .card-more-arrow, .solution-card-split:focus-within .card-more-arrow { background: #fff; color: var(--purple); transform: rotate(-12deg); }
.solution-card-split a.card-more:focus-visible { outline: none; }
.solution-card-split a.card-more:focus-visible .card-more-arrow { outline: 3px solid #dfc8ec; outline-offset: 2px; }
@media (min-width: 901px) {
  .solution-card-split a.card-more { font-size: 18px; gap: 14px; }
  .card-more-arrow { font-size: 22px; height: 48px; width: 48px; }
}

/* Client portal: one clean grid; the progress image lives inside the white card and can't escape it. */
.portal { align-items: center; gap: clamp(28px, calc(5 * var(--vw, 1vw)), 90px); grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.portal-head h2 { font-size: clamp(34px, calc(3.4 * var(--vw, 1vw)), 60px); margin: 0; }
.portal-card { align-items: flex-start; display: flex; flex-direction: column; gap: 18px; min-height: 0; overflow: hidden; padding: 42px 44px 40px; transform: none; }
.portal-card > p { margin: 0; }
.portal-card h3 { margin: 0; max-width: 560px; }
.portal-card .button-white { align-self: flex-start; bottom: auto; position: static; }
.portal-steps { background: #fff; border: 1px solid #e6dbea; border-radius: 18px; display: block; height: auto; margin-top: 8px; max-width: 100%; width: 100%; }
@media (max-width: 900px) {
  .portal { grid-template-columns: minmax(0, 1fr); }
  .portal-head h2 { font-size: 30px; text-align: center; }
  .portal-card { border-radius: 24px; padding: 24px 20px 22px; }
  .portal-card .button-white { align-self: stretch; justify-content: center; }
}

/* Desktop paragraph sizes that older, more specific rules were still capping at 14px. */
@media (min-width: 901px) {
  .contact > p:not(.kicker) { font-size: 20px; line-height: 2; max-width: 760px; }
  .application-heading p:last-child { font-size: 20px; line-height: 2; max-width: 460px; }
  .portable-copy > p:not(.kicker) { font-size: 20px; line-height: 2; }
}
@media (max-width: 900px) {
  .solution-section .section-bar > p.kicker { font-size: 18px; }
  .solution-section .section-bar > p:last-child { font-size: 15px; line-height: 1.9; }
}

/* Top-level menu labels that own a submenu are not links. */
.site-header .nav-parent { cursor: default; user-select: none; -webkit-user-select: none; }
@media (max-width: 900px) { .site-header .nav-parent { cursor: pointer; } }

/* Dropdown submenus hang below the header; never clip it (Safari clips both axes with overflow-x:clip). */
html .site-header { overflow: visible !important; }

/* Portable section (desktop): the purple card no longer slides over the image
   (the old 88px overlap only looked right with the editor's offsets). Both top
   cards sit flush on the specs bar, so only their outer top corners are rounded. */
@media (min-width: 901px) {
  .portable-copy { transform: none !important; }
  .portable-image { border-radius: 0; border-start-start-radius: 39px; }
  .portable-copy { border-radius: 0; border-start-end-radius: 39px; }
}

/* Hero slider: three times the previous height (desktop canvas 480px -> 1440px,
   mobile 245px -> 735px). Tune --hero-visual-h to change it in one place. */
:root { --hero-visual-h: 720px; }
.hero-visual { min-height: var(--hero-visual-h) !important; }
@media (max-width: 900px) { :root { --hero-visual-h: 370px; } }

/* Solution cards: image area 20% taller (desktop 250px -> 300px, mobile 200px -> 240px). */
.solution-card-split figure { height: clamp(210px, calc(19.2 * var(--vw, calc(1 * var(--vw, 1vw)))), 300px); }
@media (max-width: 900px) { .solution-card-split figure { height: 240px; } }

/* Portable section image slider (three cutaway views). */
.portable-slider { position: relative; }
.portable-slider .portable-slides { height: 100%; inset: 0; position: absolute; width: 100%; }
.portable-slider .portable-slides img { height: 100%; inset: 0; object-fit: cover; opacity: 0; position: absolute; transition: opacity .7s ease; width: 100%; }
.portable-slider .portable-slides img.is-active { opacity: 1; }
.portable-slider .portable-dots { bottom: 22px; display: flex; gap: 8px; inset-inline-start: 26px; position: absolute; z-index: 2; }
.portable-slider .portable-dots button { background: rgba(92, 40, 126, .28); border: 0; border-radius: 999px; cursor: pointer; height: 10px; padding: 0; transition: background .25s ease, width .25s ease; width: 10px; }
.portable-slider .portable-dots button.is-active { background: var(--purple); width: 28px; }
@media (max-width: 900px) { .portable-slider .portable-dots { bottom: 16px; inset-inline-start: 20px; } }

/* "One technical partner" block sits in its own tinted card, separated from the white intro above it. */
.about.section { background: #f6f1fa; border: 1px solid #e8dff0; border-radius: 40px; margin: 8px 64px 40px; padding: 64px 72px 72px; }
.about-vm article { background: #fff; }
@media (max-width: 900px) { .about.section { border-radius: 26px; margin: 4px 12px 28px; padding: 36px 20px 40px; } }

/* cms-mobile.css */
/* Phone-only typography chosen in the admin panel's mobile mode.
   Every .cms-style span carries its desktop values inline (font-size / font-family) and, when set,
   the phone values as --m-fs / --m-ff / --m-ta. These rules apply the phone values up to 900px (the width
   range that renders the 390px mobile canvas) and leave desktop untouched.
   Alignment is applied to the element that contains the span (an inline span cannot align itself). */
@media (max-width: 900px) {
  .cms-style[style*="--m-fs"] { font-size: var(--m-fs) !important; }
  .cms-style[style*="--m-ff"] { font-family: var(--m-ff) !important; }
  :has(> .cms-style[style*="--m-ta:start"]) { text-align: start !important; }
  :has(> .cms-style[style*="--m-ta:center"]) { text-align: center !important; }
  :has(> .cms-style[style*="--m-ta:end"]) { text-align: end !important; }
}

/* ltr.css */
/* English (LTR) site: mirrored transforms and Latin typography. Everything
   else comes from the logical-property rewrite in build-styles.js. */
html[lang="en"] { --fa: "Manrope", "Vazirmatn", sans-serif; }
[dir="ltr"] .footer-links a:hover { transform: translateX(3px); }
[dir="ltr"] .hero-copy .hero-detail .kicker, [dir="ltr"] .kicker[dir="ltr"] { text-align: left; }
[dir="ltr"] .hero-copy .kicker { left: auto; right: auto; }
[dir="ltr"] .kp-kicker { text-align: left; }
[dir="ltr"] p, [dir="ltr"] li, [dir="ltr"] .kp-lead, [dir="ltr"] .hero-text { line-height: 1.75; }
[dir="ltr"] h1, [dir="ltr"] h2, [dir="ltr"] h3 { letter-spacing: -.01em; }

/* Language menu (FA / EN / AR): a pill button that opens the list of languages. */
.site-header .lang-menu { display: inline-flex; position: relative; }
.site-header .lang-switch { align-items: center; appearance: none; background: rgba(255, 255, 255, .14); border: 1.5px solid rgba(255, 255, 255, .55); border-radius: 999px; color: #fff; cursor: pointer; display: inline-flex; font-family: "Manrope", "Vazirmatn", sans-serif; font-size: 13px; font-weight: 800; gap: 7px; height: 40px; justify-content: center; letter-spacing: .08em; min-width: 54px; padding: 0 14px; text-decoration: none; transition: background .2s ease, color .2s ease; }
.site-header .lang-switch:hover, .site-header .lang-switch:focus-visible, .site-header .lang-menu.is-open .lang-switch { background: #fff; color: var(--purple); }
.site-header .lang-caret { flex: none; transition: transform .2s ease; }
.site-header .lang-menu.is-open .lang-caret { transform: rotate(180deg); }
.site-header .lang-list { background: #fff; border-radius: 16px; box-shadow: 0 18px 40px rgba(12, 55, 70, .24); display: none; flex-direction: column; inset-block-start: calc(100% + 8px); inset-inline-end: 0; min-width: 150px; padding: 6px; position: absolute; z-index: 80; }
.site-header .lang-list::before { content: ""; height: 10px; inset-block-start: -10px; inset-inline: 0; position: absolute; }
.site-header .lang-menu.is-open .lang-list { display: flex; }
@media (hover: hover) { .site-header .lang-menu:hover .lang-list { display: flex; } .site-header .lang-menu:hover .lang-switch { background: #fff; color: var(--purple); } .site-header .lang-menu:hover .lang-caret { transform: rotate(180deg); } }
.site-header .lang-list a { border-radius: 10px; color: var(--ink); display: block; font-family: "Vazirmatn", sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0; padding: 10px 14px; text-align: center; text-decoration: none; white-space: nowrap; }
.site-header .lang-list a[lang="en"] { font-family: "Manrope", "Vazirmatn", sans-serif; }
.site-header .lang-list a:hover, .site-header .lang-list a:focus-visible { background: var(--mint); outline: none; }
.site-header .lang-list a[aria-current="true"] { background: var(--mint); color: var(--purple); font-weight: 800; }
@media (max-width: 900px) { .site-header .lang-switch { font-size: 12px; height: 36px; min-width: 48px; padding: 0 12px; } }

/* English copy runs longer than Persian: slightly smaller display headings on desktop. */
[dir="ltr"] .hero-copy .hero-detail .kicker { text-align: left !important; }
@media (min-width: 901px) {
  [dir="ltr"] #solutions .section-heading h2, [dir="ltr"] #equipment .section-heading h2, [dir="ltr"] #knowledge h2, [dir="ltr"] .proof-top h2, [dir="ltr"] #contact h2 { font-size: 64px !important; line-height: 1.08 !important; }
  [dir="ltr"] #applications .application-heading h2 { font-size: 58px !important; line-height: 1.08 !important; }
  [dir="ltr"] .portable-copy h2 { font-size: 62px !important; line-height: 1.08 !important; }
  [dir="ltr"] #portal h2 { font-size: 52px !important; line-height: 1.12 !important; }
  [dir="ltr"] .kp-hero h1 { font-size: 54px !important; line-height: 1.12 !important; }
  [dir="ltr"] .kp-section h2 { font-size: 36px !important; line-height: 1.25 !important; }
}

/* Mobile: language switch sits beside the menu button; hero tabs fit the English labels. */
@media (max-width: 900px) {
  html .site-header .header-actions { margin-inline-start: auto !important; margin-inline-end: 0 !important; }
  [dir="ltr"] .hero-visual .slider-dots button { font-size: 11.5px; letter-spacing: 0; padding-inline: 2px; }
}

/* Drawn chevron: its borders are a shape, not a direction. */
[dir="ltr"] .site-header .nav-sub-toggle span { border-right: 0; border-left: 1.5px solid currentColor; }

/* Language switch repeated inside the mobile menu panel. */
.site-header .main-nav .nav-lang { display: none; }
@media (max-width: 900px) {
  .site-header .main-nav .nav-lang { align-items: center; border: 1.5px solid var(--purple); border-radius: 999px; color: var(--purple); display: flex; font-size: 14px; font-weight: 700; justify-content: center; margin: 14px 4px 0; padding: 13px; text-decoration: none; }
}

