/* WordPress controls extend the shared semantic design system. */
.tm-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; height:48px; padding:0 24px; font-size:14px; font-weight:500; border-radius:4px; color:var(--primary-foreground); background:var(--primary); cursor:pointer; transition:background-color .2s, transform .2s; }
.tm-button:hover { background:color-mix(in oklch,var(--primary) 88%,black); }
.tm-link-button { display:inline-flex; align-items:center; gap:8px; font-size:14px; color:var(--primary); font-weight:500; cursor:pointer; }
.tm-link-button svg { transition:transform .2s; }
.tm-link-button:hover svg { transform:translate(2px,-2px); }
.tm-icon-button { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; color:var(--primary); background:transparent; cursor:pointer; }
.tm-filter { font-size:12px; padding:10px 16px; border-radius:3px; color:var(--foreground); cursor:pointer; background:transparent; }
.tm-filter[aria-pressed=true] { background:var(--secondary); color:var(--primary); }
.tm-product-dialog { width:min(520px,calc(100% - 32px)); padding:28px; border:1px solid var(--border); border-radius:5px; color:var(--foreground); background:var(--background); margin:auto; }
.tm-product-dialog::backdrop { background:color-mix(in oklch,var(--foreground) 65%,transparent); }
.tm-product-dialog h2 { font-family:var(--font-display); font-size:26px; }
.tm-product-dialog img { width:100%; height:240px; object-fit:contain; background:var(--muted); margin-block:22px; }
.tm-product-dialog p { font-size:13px; line-height:1.9; color:var(--muted-foreground); margin-bottom:24px; }
.tm-dialog-close { position:absolute; top:10px; right:10px; font-size:23px; cursor:pointer; color:var(--primary); }
.tm-editor-content { font-size:15px; line-height:1.9; max-width:950px; }
.tm-editor-content h2,.tm-editor-content h3 { font-family:var(--font-display); font-weight:400; margin-block:32px 16px; }
.tm-editor-content p { margin-bottom:20px; }
.tm-editor-content a { text-decoration:underline; color:var(--primary); }
.tm-editor-content ul,.tm-editor-content ol { padding-left:25px; margin-bottom:24px; }
.tm-editor-content img { max-width:100%; height:auto; }
.tm-post { padding-block:30px; border-bottom:1px solid var(--border); }
.tm-post h2 { font-family:var(--font-display); font-size:32px; margin-bottom:12px; }
.screen-reader-text { clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; width:1px; position:absolute; overflow:hidden; }
.alignwide { max-width:1200px; } .alignfull { width:100%; } .wp-caption-text { font-size:12px; color:var(--muted-foreground); }
:focus-visible { outline:2px solid var(--ring); outline-offset:4px; }
[hidden] { display:none!important; }
/* Readability pass: lift template text that was set at 9-12px. Unlayered, so it wins over the utility classes in the markup. */
main a.h-12 { font-size:14px; border-radius:4px; }
main a.h-12:hover svg, main a.h-auto:hover svg { transform:translate(2px,-2px); }
main a.h-12 svg, main a.h-auto svg { transition:transform .2s; }
main a.p-0 { font-size:14px; }
.trust-item p:first-child { font-size:14px; }
.trust-item p + p { font-size:12px; }
.product-body > span { font-size:11px; letter-spacing:.14em; }
.page-intro .text-sm, .bg-primary .max-w-sm { font-size:16px; line-height:1.75; }
.cta-band .section-title { font-size:36px; }
.footer p.text-xs { font-size:14px; }
.footer h2 { font-size:11px; letter-spacing:.14em; }
.footer .text-\[10px\] { font-size:12px; }
@media(max-width:767px) {
 .trust-item p:first-child { font-size:12px; }
 .cta-band .section-title { font-size:28px; }
}
/* Kernel photos have white backgrounds; a white well keeps them seamless instead of boxed. */
.product-image { background:var(--card); border-bottom:1px solid var(--border); }
.field { font-size:15px; min-height:48px; border-radius:4px; }
.field-label { font-size:13px; }

.footer-logo { display:inline-block; margin-bottom:20px; padding:10px 14px; background:var(--background); border-radius:6px; }
.footer-logo img { width:170px; height:auto; }

/* Content sections from the 2026 company profile. */
.page-lead { margin-top:20px; max-width:620px; font-size:17px; line-height:1.75; color:var(--muted-foreground); }
.cta-note { margin-top:12px; max-width:560px; font-size:15px; line-height:1.7; color:var(--muted-foreground); }
.video-play { position:absolute; left:50%; top:50%; display:inline-flex; align-items:center; justify-content:center; width:68px; height:68px; border-radius:50%; color:var(--primary); background:var(--background); box-shadow:var(--shadow-product); transform:translate(-50%,-50%); transition:transform .2s; }
.video-play:hover { transform:translate(-50%,-50%) scale(1.06); }
.stat-row { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:32px; padding-top:24px; border-top:1px solid var(--border); max-width:520px; }
.stat-row dt { font-family:var(--font-display); font-size:32px; line-height:1; color:var(--primary); }
.stat-row dd { margin-top:8px; font-size:13px; line-height:1.5; color:var(--muted-foreground); }
.process-item > svg + h3 { margin-top:22px; }
.value-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:56px; list-style:none; padding:0; }
.value-row li { padding:9px 16px; font-size:13px; font-weight:500; border:1px solid color-mix(in oklch,var(--primary-foreground) 30%,transparent); border-radius:999px; }
.cert-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:20px; margin-top:40px; }
.cert-card { padding:26px; background:var(--card); border:1px solid var(--border); border-radius:8px; }
.cert-icon { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; color:var(--primary); background:var(--secondary); }
.cert-card h3 { margin-top:18px; font-family:var(--font-display); font-size:21px; font-weight:400; }
.cert-card p { margin-top:10px; font-size:14px; line-height:1.7; color:var(--muted-foreground); }
.timeline { position:relative; display:grid; grid-template-columns:repeat(6,1fr); gap:24px; margin-top:56px; list-style:none; padding:0; }
.timeline:before { content:""; position:absolute; top:7px; left:0; right:0; height:1px; background:var(--border); }
.timeline li { position:relative; padding-top:34px; }
.timeline li:before { content:""; position:absolute; top:0; left:0; width:15px; height:15px; border-radius:50%; background:var(--background); border:2px solid var(--accent); }
.timeline-year { font-family:var(--font-display); font-size:28px; color:var(--primary); }
.timeline h3 { margin-top:6px; font-size:15px; font-weight:600; }
.timeline p { margin-top:8px; font-size:14px; line-height:1.7; color:var(--muted-foreground); }
.check-list { display:grid; gap:12px; margin-top:24px; list-style:none; padding:0; max-width:520px; }
.check-list li { display:flex; gap:12px; font-size:15px; line-height:1.6; }
.check-list svg { flex-shrink:0; margin-top:4px; color:var(--primary); }
.styles-layout { align-items:start; }
.styles-table-wrap { overflow-x:auto; border:1px solid var(--border); border-radius:8px; }
.styles-table { width:100%; border-collapse:collapse; font-size:14px; }
.styles-table th, .styles-table td { padding:14px 18px; text-align:left; border-bottom:1px solid var(--border); }
.styles-table thead th { font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted-foreground); background:var(--muted); }
.styles-table tbody th { font-weight:600; color:var(--primary); white-space:nowrap; }
.styles-table tbody tr:last-child > * { border-bottom:none; }
.contact-details { display:grid; gap:18px; margin-top:36px; padding-top:28px; border-top:1px solid var(--border); }
.contact-details a, .contact-details p { display:flex; gap:14px; align-items:flex-start; font-size:15px; line-height:1.6; }
.contact-details a { color:var(--primary); }
.contact-details p { color:var(--muted-foreground); }
.contact-details svg { flex-shrink:0; margin-top:2px; }
@media(max-width:1100px) {
 .timeline { grid-template-columns:repeat(3,1fr); row-gap:40px; }
 .timeline:before { display:none; }
}
@media(max-width:767px) {
 .process-grid { grid-template-columns:1fr; gap:32px; }
 .timeline { grid-template-columns:1fr; }
 .stat-row dt { font-size:26px; }
 .page-lead { font-size:15px; }
}

/* Header, shared with the PAEM site: full-width compact bar, logo on a white tile, uppercase links, brown quote button.
   Transparent over the homepage hero (overlapping it via a negative margin), solid cream once scrolled and on inner pages. */
:root { --brand-brown:#8a4636; --brand-brown-dk:#6f3528; --brand-gold:#e0b65a; --forest:#1c3526; --cream:#f3eedd; --header-h:56px; }
.site-header { position:sticky; top:0; z-index:50; height:var(--header-h); background:transparent; border:0; box-shadow:none; transition:background-color .3s, box-shadow .3s; }
.site-header.is-overlay { margin-bottom:calc(-1 * var(--header-h)); }
.site-header.is-solid, .site-header.is-scrolled, .site-header.menu-open { background:color-mix(in oklch,var(--background) 95%,transparent); backdrop-filter:blur(10px); box-shadow:0 1px 0 var(--border); }
.admin-bar .site-header { top:32px; }
.site-header-inner { display:flex; align-items:center; gap:20px; height:100%; padding:0 28px 0 22px; }
.site-logo-link { display:flex; flex-shrink:0; }
.site-logo { width:auto; height:32px; padding:2px 5px; background:var(--background); border-radius:6px; box-shadow:0 2px 8px rgb(0 0 0 / .12); }
/* Once the bar is solid the tile is the same white as the bar, so drop its shadow and let the logo sit flush. */
.is-solid .site-logo, .is-scrolled .site-logo, .menu-open .site-logo { box-shadow:none; }
.tm-navigation { display:flex; align-items:center; margin-left:auto; }
.tm-menu { display:flex; gap:22px; align-items:center; list-style:none; margin:0; padding:0; }
.tm-menu li { position:relative; }
.tm-menu a, .tm-menu .nav-link { position:relative; padding:0; font-size:13px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; color:var(--foreground); transition:color .3s; }
.tm-menu a:after { content:""; position:absolute; left:0; right:100%; bottom:-5px; height:2px; background:var(--brand-gold); transition:right .25s; }
.tm-menu a:hover:after, .tm-menu a[aria-current]:after, .tm-menu .current-menu-item>a:after { right:0; }
.tm-menu .nav-link[data-status="active"]:after { width:auto; height:2px; border-radius:0; left:0; bottom:-5px; }
.is-overlay:not(.is-scrolled):not(.menu-open) .tm-menu a { color:var(--cream); }
.tm-menu .sub-menu { display:none; position:absolute; left:0; top:calc(100% + 12px); min-width:200px; padding:12px; background:var(--background); border:1px solid var(--border); border-radius:8px; list-style:none; }
.tm-menu li:hover>.sub-menu, .tm-menu li:focus-within>.sub-menu { display:block; }
.tm-menu .sub-menu a { display:block; padding:8px; color:var(--foreground); }
.tm-quote-button { display:inline-flex; align-items:center; height:32px; padding:0 16px; font-size:12px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap; color:#fff; background:var(--brand-brown); border-radius:6px; transition:background-color .2s, transform .2s; }
.tm-quote-button:hover { background:var(--brand-brown-dk); transform:translateY(-1px); }
.tm-mobile-contact { display:none; }
.tm-menu-toggle { display:none; align-items:center; justify-content:center; width:36px; height:36px; margin-left:auto; color:var(--foreground); background:transparent; cursor:pointer; }
.is-overlay:not(.is-scrolled):not(.menu-open) .tm-menu-toggle { color:var(--cream); }
@media(max-width:900px) {
 .site-header-inner { gap:12px; padding:0 16px; }
 .site-logo { height:30px; }
 .tm-menu-toggle:not([hidden]) { display:inline-flex; }
 .tm-header-contact { display:none; }
 .tm-navigation { position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; margin:0; padding:8px 24px 20px; background:var(--background); box-shadow:0 12px 20px -12px rgb(0 0 0 / .2); }
 .tm-js .tm-navigation { display:none; } .tm-js .tm-navigation.is-open { display:flex; }
 .tm-menu { flex-direction:column; align-items:stretch; gap:0; }
 .tm-menu li { border-bottom:1px solid var(--border); }
 .tm-menu a, .tm-menu .nav-link { display:block; padding:14px 0; font-size:16px; color:var(--foreground)!important; }
 .tm-menu a:after { display:none; }
 .tm-menu .sub-menu { position:static; display:block; border:0; padding:0 0 8px 16px; }
 .tm-mobile-contact { display:inline-flex; justify-content:center; margin-top:16px; height:46px; }
 body:not(.tm-js) .hero { margin-top:300px; }
}
@media(max-width:782px) { .admin-bar .site-header { top:46px; } }

/* Homepage hero: dark forest overlay (as on PAEM) so the transparent header and cream type read over the photo. */
.hero-content { padding-top:calc(var(--header-h) + 30px); color:var(--cream); }
.hero .eyebrow, .hero-title em, .hero .text-primary { color:var(--brand-gold); }
.hero-title { color:var(--cream); }
.hero-description { color:color-mix(in oklch,var(--cream) 82%,transparent); }
.hero .tm-button { background:var(--brand-brown); color:#fff; }
.hero .tm-button:hover { background:var(--brand-brown-dk); }
.hero .tm-link-button, .hero-origin, .hero .tm-icon-button { color:var(--cream); }

/* Hero slideshow: each slide carries its own photo, overlay, and wording. Photos crossfade and slowly zoom/pan;
   the wording of the incoming slide rises in line by line. --slide-duration comes from the Customizer. */
.hero:after { content:none; }
.hero-slide { position:absolute; inset:0; z-index:0; opacity:0; visibility:hidden; transition:opacity 1.2s ease, visibility 0s linear 1.2s; }
.hero-slide.is-active { z-index:1; opacity:1; visibility:visible; transition:opacity 1.2s ease, visibility 0s; }
.hero-slide:before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg, rgb(18 36 26 / .92) 0%, rgb(18 36 26 / .82) 34%, rgb(18 36 26 / .45) 58%, rgb(18 36 26 / .12) 80%, transparent), linear-gradient(to bottom, rgb(18 36 26 / .55), transparent 160px), linear-gradient(to top, rgb(18 36 26 / .7), transparent 30%); }
.hero-slide .hero-photo { z-index:0; opacity:1; transform-origin:70% 50%; will-change:transform; }
.hero-slide .hero-content { position:relative; z-index:2; }
.hero-bottom { z-index:3; }
.hero-tagline { margin-top:12px; font-family:var(--font-display); font-size:20px; color:var(--brand-gold); }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin-top:32px; }
.hero-slide.is-active .hero-photo { animation:hero-pan calc(var(--slide-duration, 7s) + 1.5s) ease-out both; }
.hero-slide:nth-of-type(even).is-active .hero-photo { animation-name:hero-pan-alt; }
@keyframes hero-pan { from { transform:scale(1.14) translate3d(-1.5%,0,0); } to { transform:scale(1.02) translate3d(0,0,0); } }
@keyframes hero-pan-alt { from { transform:scale(1.02) translate3d(1%,1%,0); } to { transform:scale(1.14) translate3d(-1%,-1%,0); } }
.hero-anim { opacity:0; transform:translateY(24px); }
.hero-slide.is-active .hero-anim { animation:hero-rise .9s cubic-bezier(.2,.7,.2,1) both; }
.hero-slide.is-active .hero-anim:nth-child(1) { animation-delay:.35s; }
.hero-slide.is-active .hero-anim:nth-child(2) { animation-delay:.5s; }
.hero-slide.is-active .hero-anim:nth-child(3) { animation-delay:.68s; }
.hero-slide.is-active .hero-anim:nth-child(4) { animation-delay:.84s; }
.hero-slide.is-active .hero-anim:nth-child(5) { animation-delay:1s; }
.hero-slide.is-active .hero-title em { display:inline-block; animation:hero-reveal 1.1s cubic-bezier(.2,.7,.2,1) .75s both; }
@keyframes hero-rise { from { opacity:0; transform:translateY(24px); filter:blur(4px); } to { opacity:1; transform:none; filter:none; } }
@keyframes hero-reveal { from { opacity:0; clip-path:inset(0 100% 0 0); } to { opacity:1; clip-path:inset(0 0 0 0); } }
@media(max-width:767px) {
 .hero-slide:before { background:linear-gradient(180deg, rgb(18 36 26 / .6), rgb(18 36 26 / .82) 45%, rgb(18 36 26 / .92)); }
 .hero-tagline { font-size:17px; }
 .hero-actions { gap:16px; margin-top:24px; }
}
@media(prefers-reduced-motion:reduce) {
 .hero-slide, .hero-slide.is-active { transition:none; }
 .hero-slide.is-active .hero-photo, .hero-slide.is-active .hero-anim, .hero-slide.is-active .hero-title em { animation:none; }
 .hero-anim { opacity:1; transform:none; }
}

/* Homepage "Who we are": wording left, a 2×2 grid of four editable photos right, on the green offset backdrop. */
.story-mosaic { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.story-photo.story-mosaic img { width:100%; height:200px; object-fit:cover; border-radius:6px; }
.story-mosaic .story-caption { grid-column:1 / -1; }
@media(max-width:767px) {
 .story-photo.story-mosaic img { height:140px; }
 .story-mosaic { gap:10px; }
}
/* Key facts opening the homepage "Who we are" column: divider below instead of above. */
.stat-row-lead { margin:24px 0 32px; padding:0 0 24px; border-top:0; border-bottom:1px solid var(--border); }

/* Outlined pill label for section-level links such as "View all products". */
.tm-pill-link { display:inline-flex; align-items:center; gap:10px; height:46px; padding:0 22px; font-size:15px; font-weight:600; white-space:nowrap; color:var(--primary); background:var(--card); border:1.5px solid var(--primary); border-radius:999px; transition:background-color .2s, color .2s, transform .2s; }
.tm-pill-link svg { transition:transform .2s; }
.tm-pill-link:hover { color:var(--primary-foreground); background:var(--primary); transform:translateY(-1px); }
.tm-pill-link:hover svg { transform:translate(2px,-2px); }

/* Intro copy that runs the full width of the section instead of the narrow reading column. */
.section-copy.section-copy-wide { max-width:none; }

/* Certification cards carry their own logos; a fixed-height row keeps the headings aligned across cards. */
.cert-logos { display:flex; align-items:center; gap:14px; height:64px; }
.cert-logos img { width:auto; max-width:150px; max-height:64px; object-fit:contain; }
.cert-logos + h3 { margin-top:18px; }
.cert-grid { grid-template-columns:repeat(3,1fr); }
@media(max-width:900px) { .cert-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px) { .cert-grid { grid-template-columns:1fr; } }

/* Certificate previews and viewer (same pattern as the PAEM site): hover a logo or link for a thumbnail, click for the full certificate. */
.cert-view { position:relative; padding:0; font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
.cert-view:hover, .cert-view:focus-visible { z-index:30; }
.cert-logo { display:inline-flex; border-radius:8px; transition:transform .2s, box-shadow .2s; }
.cert-logo:hover, .cert-logo:focus-visible { transform:translateY(-2px) scale(1.04); }
.cert-logo img { display:block; }
.cert-pop { position:absolute; bottom:calc(100% + 12px); left:50%; z-index:20; width:180px; padding:8px 8px 6px; text-align:center; background:#fff; border-radius:12px; box-shadow:0 18px 40px -12px rgb(0 0 0 / .4); opacity:0; visibility:hidden; transform:translate(-50%,8px); transition:opacity .2s, transform .2s, visibility .2s; pointer-events:none; }
.cert-pop:after { content:""; position:absolute; top:100%; left:50%; margin-left:-7px; border:7px solid transparent; border-top-color:#fff; }
.cert-pop img { display:block; width:100%; height:auto; max-height:none; border:1px solid #eee; border-radius:6px; }
.cert-pop span { display:block; margin-top:6px; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--primary); }
.cert-view:hover .cert-pop, .cert-view:focus-visible .cert-pop { opacity:1; visibility:visible; transform:translate(-50%,0); }
@media(hover:none) { .cert-pop { display:none; } }
.cert-links { display:flex; flex-wrap:wrap; gap:6px 22px; margin-top:16px; }
.cert-link { font-size:14px; font-weight:600; color:var(--primary); }
.cert-link .vc { display:inline-flex; align-items:center; gap:8px; padding-bottom:2px; border-bottom:1px solid color-mix(in oklch,var(--primary) 30%,transparent); transition:border-color .2s; }
.cert-link:hover .vc { border-color:var(--primary); }
.cert-view:focus-visible { outline:2px solid var(--brand-gold); outline-offset:3px; }
.cert-dialog { width:min(920px,calc(100vw - 32px)); max-height:calc(100vh - 32px); margin:auto; padding:0; color:var(--foreground); background:var(--card); border:0; border-radius:18px; box-shadow:0 30px 80px -20px rgb(0 0 0 / .5); overflow:hidden; }
.cert-dialog[open] { display:flex; flex-direction:column; }
.cert-dialog::backdrop { background:rgb(18 36 26 / .75); backdrop-filter:blur(3px); }
.cd-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:20px 24px 14px; border-bottom:1px solid var(--border); }
.cd-head .eyebrow { margin-bottom:4px; }
.cd-head h3 { font-family:var(--font-display); font-size:24px; font-weight:400; line-height:1.25; }
.cd-close { display:grid; place-items:center; flex-shrink:0; width:40px; height:40px; color:var(--foreground); background:#fff; border:1px solid var(--border); border-radius:50%; cursor:pointer; }
.cd-close:hover { background:var(--secondary); }
.cd-body { display:grid; grid-template-columns:1.3fr 1fr; gap:24px; min-height:0; padding:20px 24px; overflow:auto; }
.cd-doc { overflow:hidden; background:#fff; border:1px solid var(--border); border-radius:10px; }
.cd-doc img { display:block; width:100%; height:auto; }
.cd-meta { display:grid; align-content:start; gap:4px; margin:0; }
.cd-meta dt { margin-top:14px; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-foreground); }
.cd-meta dt:first-child { margin-top:0; }
.cd-meta dd { margin:0; font-size:15px; font-weight:500; line-height:1.55; }
.cd-foot { display:flex; flex-wrap:wrap; gap:12px; padding:14px 24px 20px; border-top:1px solid var(--border); }
.cd-foot .tm-button, .cd-foot .tm-pill-link { white-space:nowrap; }
body.dialog-open { overflow:hidden; }
@media(max-width:700px) {
 .cd-body { grid-template-columns:1fr; padding:16px 18px; }
 .cd-meta { order:-1; }
 .cd-head { padding:16px 18px 12px; }
 .cd-foot { padding:12px 18px 16px; }
 .cd-foot > a { flex:1; justify-content:center; }
}
.cert-logos .cert-pop img { width:100%; max-width:none; max-height:none; }

/* Footer copyright line, centred. */
.footer-bottom { text-align:center; }
/* Two-column footer: brand on the left, contact details on the right. */
.footer-grid { grid-template-columns:1.6fr 1fr; }

/* Careers (same layout as the PAEM site): vacancy cards on /careers/, and a sticky Job details box on each vacancy. */
.tm-button-sm { height:40px; padding:0 18px; font-size:13px; }
.jobs-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:24px; padding-bottom:16px; border-bottom:1px solid var(--border); }
.jobs-head h2 { font-family:var(--font-display); font-size:clamp(26px,3vw,34px); font-weight:400; }
.jobs-count { font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-foreground); }
.jobs { display:grid; gap:16px; }
.job-card { display:flex; justify-content:space-between; align-items:center; gap:28px; padding:22px 26px; background:var(--card); border:1px solid var(--border); border-left:4px solid var(--brand-gold); border-radius:12px; transition:box-shadow .3s, transform .3s; }
.job-card:hover { box-shadow:var(--shadow-product); transform:translateY(-2px); }
.job-main h3 { margin-bottom:8px; font-family:var(--font-display); font-size:22px; font-weight:400; }
.job-main h3 a:hover { color:var(--primary); }
.job-main p { max-width:680px; margin-top:10px; font-size:15px; line-height:1.7; color:var(--muted-foreground); }
.job-meta { display:flex; flex-wrap:wrap; gap:6px 18px; margin:0; padding:0; list-style:none; font-size:14px; font-weight:600; color:var(--primary); }
.job-meta li { display:flex; align-items:center; gap:6px; }
.job-side { display:flex; flex:none; flex-direction:column; align-items:flex-end; gap:12px; text-align:right; }
.job-closing { font-size:14px; font-weight:700; }
.job-closing small { display:block; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-foreground); }
.jobs-empty { max-width:620px; margin:20px auto; padding:40px 28px; text-align:center; background:var(--card); border:1px dashed var(--border); border-radius:16px; }
.jobs-empty .page-lead { margin:0 auto 22px; }
.jobs-note { display:flex; align-items:center; gap:10px; margin-top:28px; font-size:14px; color:var(--muted-foreground); }
.jobs-note svg { flex:none; padding:3px; color:#fff; background:var(--primary); border-radius:50%; }
.jobs-note a { font-weight:700; color:var(--primary); }
.job-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:48px; align-items:start; }
.job-body { max-width:none; font-size:16px; }
.job-body > :first-child { margin-top:0; }
.job-closed-note { display:flex; align-items:center; gap:10px; padding:12px 16px; font-size:15px; font-weight:600; color:#8a2a17; background:#f8e4df; border-radius:10px; }
.job-closed-note svg { flex:none; }
.job-aside { position:sticky; top:calc(var(--header-h) + 24px); }
.job-box { padding:24px; background:var(--card); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow-product); }
.job-box h3 { margin-bottom:14px; font-family:var(--font-display); font-size:20px; font-weight:400; }
.job-box dl { display:grid; grid-template-columns:auto 1fr; gap:10px 16px; margin:0 0 20px; }
.job-box dt { padding-top:3px; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted-foreground); }
.job-box dd { margin:0; font-weight:600; }
.job-box .tm-button { width:100%; }
.job-how { margin-top:12px; font-size:13px; line-height:1.6; color:var(--muted-foreground); }
.job-how a { font-weight:700; color:var(--primary); }
.job-back { display:inline-block; margin-top:16px; font-weight:700; color:var(--primary); }
@media(max-width:900px) { .job-layout { grid-template-columns:1fr; } .job-aside { position:static; } }
@media(max-width:640px) {
 .job-card { flex-direction:column; align-items:flex-start; padding:20px; }
 .job-side { align-items:flex-start; width:100%; text-align:left; }
 .job-side .tm-button { width:100%; }
}
/* Editor content (vacancies, posts, extra page content): real heading sizes and visible list markers. */
.tm-editor-content h2 { font-size:clamp(24px,2.6vw,30px); line-height:1.25; }
.tm-editor-content h3 { font-size:21px; line-height:1.3; }
.tm-editor-content ul { list-style:disc; }
.tm-editor-content ol { list-style:decimal; }
.tm-editor-content li { margin-bottom:6px; }
/* "Get in touch" sits against the right edge of the footer on wider screens (it stacks under the logo on phones). */
@media(min-width:768px) { .footer-grid > :last-child { justify-self:end; } }

/* "Submit Your Resume" pop-up on the Careers page. */
.cv-dialog { width:min(620px,calc(100vw - 24px)); max-height:calc(100vh - 24px); margin:auto; padding:0; color:var(--foreground); background:var(--card); border:0; border-radius:12px; box-shadow:0 30px 80px -20px rgb(0 0 0 / .5); overflow:hidden; }
.cv-dialog[open] { display:flex; }
.cv-dialog::backdrop { background:rgb(18 36 26 / .7); backdrop-filter:blur(3px); }
.cv-form { display:flex; flex-direction:column; width:100%; min-height:0; }
.cv-head { display:flex; flex:none; align-items:center; justify-content:space-between; gap:16px; padding:16px 28px; color:#fff; background:var(--primary); }
.cv-head h2 { font-family:var(--font-display); font-size:26px; font-weight:400; }
.cv-close { display:grid; place-items:center; width:36px; height:36px; color:#fff; background:transparent; border-radius:50%; cursor:pointer; }
.cv-close:hover { background:rgb(255 255 255 / .15); }
.cv-body { flex:1; min-height:0; padding:24px 28px 8px; overflow:auto; }
.cv-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px 16px; margin-bottom:18px; }
.cv-body .field-label { font-weight:600; }
.cv-body .field { background:#fafaf8; border-radius:8px; }
.cv-body .field:focus { background:#fff; border-color:var(--primary); box-shadow:0 0 0 3px color-mix(in oklch,var(--primary) 15%,transparent); }
.cv-file { margin-bottom:18px; }
.cv-drop { position:relative; display:flex; align-items:center; justify-content:center; gap:10px; min-height:58px; padding:12px; font-weight:600; color:var(--foreground); background:color-mix(in oklch,var(--primary) 6%,white); border:2px dashed var(--primary); border-radius:10px; cursor:pointer; transition:background-color .2s; }
.cv-drop input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.cv-drop:hover, .cv-drop.is-over { background:color-mix(in oklch,var(--primary) 12%,white); }
.cv-drop.has-file { border-style:solid; }
.cv-drop:focus-within { outline:2px solid var(--brand-gold); outline-offset:2px; }
.cv-letter { display:block; }
.cv-letter textarea { min-height:104px; resize:vertical; }
.cv-position { margin-bottom:16px; font-weight:600; color:var(--primary); }
.cv-status { margin:16px 0 4px; padding:12px 14px; font-size:14px; line-height:1.5; background:var(--secondary); border-radius:8px; }
.cv-status.is-ok { color:#1f5130; background:#e3efe2; border:1px solid #b9d6b6; }
.cv-status.is-error { color:#8a2a17; background:#f8e4df; border:1px solid #ecc0b4; }
.cv-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.cv-foot { display:flex; flex:none; justify-content:flex-end; gap:12px; margin:0 28px; padding:16px 0 20px; border-top:1px solid var(--border); }
.cv-cancel, .cv-submit { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:44px; padding:0 22px; font-size:14px; font-weight:600; color:#fff; border-radius:8px; cursor:pointer; transition:filter .2s, transform .2s; }
.cv-cancel { background:#6b7280; }
.cv-submit { background:var(--primary); }
.cv-cancel:hover, .cv-submit:hover { filter:brightness(1.08); transform:translateY(-1px); }
.cv-submit:disabled { opacity:.7; cursor:wait; transform:none; }
@media(max-width:560px) {
 .cv-grid { grid-template-columns:1fr; }
 .cv-head, .cv-body { padding-inline:18px; }
 .cv-foot { margin:0 18px; }
 .cv-foot > button { flex:1; }
}

/* Scroll motion (assets/js/motion.js), modelled on incofin.com. Everything here is skipped for visitors who prefer reduced motion. */
html.lenis, html.lenis body { height:auto; }
.lenis.lenis-smooth { scroll-behavior:auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior:contain; }
.lenis.lenis-stopped { overflow:hidden; }
.lenis.lenis-scrolling iframe { pointer-events:none; }
section[id] { scroll-margin-top:calc(var(--header-h) + 12px); }
.tm-parallax { position:relative; display:block; width:100%; overflow:hidden; isolation:isolate; }
.tm-parallax > img { display:block; width:100%; will-change:transform; }
@media (prefers-reduced-motion:no-preference) {
 .tm-reveal { opacity:0; }
 .tm-reveal.is-in { opacity:1; animation:tm-fade-up 1s cubic-bezier(.33,1,.68,1) var(--reveal-delay,0s) backwards; }
 .tm-reveal-zoom.is-in { animation-name:tm-fade-zoom; }
 /* Inner-page intros rise in on load (pure CSS, so there is no flash before the script runs). */
 .page-intro .site-wrap > * { animation:tm-fade-up 1s cubic-bezier(.33,1,.68,1) backwards; }
 .page-intro .site-wrap > :nth-child(2) { animation-delay:.1s; }
 .page-intro .site-wrap > :nth-child(3) { animation-delay:.2s; }
 .page-intro .site-wrap > :nth-child(4) { animation-delay:.3s; }
}
@keyframes tm-fade-up { from { opacity:0; transform:translate3d(0,5vh,0); } to { opacity:1; transform:none; } }
@keyframes tm-fade-zoom { from { opacity:0; transform:scale(1.1); } to { opacity:1; transform:none; } }

/* Contact page map ("Find us"). */
.map-section { background:var(--muted); }
.map-head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:20px 32px; margin-bottom:32px; }
.map-head .section-copy { margin-top:12px; }
.map-frame { position:relative; overflow:hidden; aspect-ratio:16 / 7; background:var(--secondary); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow-product); }
.map-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
@media(max-width:767px) { .map-frame { aspect-ratio:4 / 5; } .map-head .tm-pill-link { width:100%; justify-content:center; } }
