/* Shared Glifix site-page layout. Brand variables and themes come from glifix.css. */
html:has(body.gx-site-page) { height: auto; overflow: auto; }
body.gx-site-page { height: auto; min-height: 100vh; overflow: visible; line-height: 1.65; }
.gx-site-page a { color: var(--accent); }
.gx-site-page a:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.gx-site-header, .gx-site-main, .gx-site-footer { position: relative; max-width: 1100px; margin: auto; padding: 24px; }
.gx-site-header { display: flex; justify-content: space-between; align-items: center; gap: 20px; border-bottom: 1px solid var(--divider); }
.gx-site-logo { display: block; width: 140px; max-width: 100%; }
.gx-site-main h1 { font-size: clamp(2rem, 5vw, 3.2rem); line-height: 1.15; margin: 30px 0 20px; }
.gx-site-lead { font-size: 1.3rem; }
.gx-site-notice { border-left: 3px solid var(--accent); padding: 12px 18px; margin: 24px 0; background: var(--bg-surface); color: var(--text-secondary); }
.gx-site-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.gx-site-grid .gx-card { margin: 0; padding: 24px; }
.gx-site-grid h2 { font-size: 1.25rem; margin: 0 0 12px; }
.gx-site-products, .gx-site-contact { margin-top: 32px; }
.gx-site-products nav { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 12px; }
.gx-site-footer { border-top: 1px solid var(--divider); }
@media (max-width: 640px) { .gx-site-grid { grid-template-columns: 1fr; } .gx-site-header { flex-wrap: wrap; } }

/* Website Builder homepage: shared Glifix styling, isolated editorial layout. */
html.gx-web-document, html.gx-web-document body { height:auto; overflow:visible; }
.gx-home { width:min(1240px,100%); margin:auto; padding:32px 24px; color:var(--text-primary); }
.gx-home a, .gx-web-error a { color:var(--accent); } .gx-home h1, .gx-home h2, .gx-home h3 { color:var(--text-primary); }
.gx-home-hero { display:grid; grid-template-columns:1.4fr 1fr; gap:32px; align-items:center; padding:28px 0 48px; }
.gx-home-hero h1 { font-size:clamp(2rem,4vw,3.3rem); line-height:1.15; margin:12px 0 22px; }
.gx-home-eyebrow { text-transform:uppercase; letter-spacing:.16em; color:var(--accent); font-size:.8rem; font-weight:700; }
.gx-home-hero-image { width:100%; height:270px; object-fit:cover; border-radius:16px; }
.gx-home-paths { display:grid; grid-template-columns:260px minmax(0,1fr); gap:24px; align-items:start; }
.gx-home-consulting { padding:24px; } .gx-home-consulting ul { padding:0; list-style:none; } .gx-home-consulting li { padding:12px 0; border-bottom:1px solid var(--divider); }
.gx-home-product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.gx-home-product { margin:0; padding:22px; height:100%; display:flex; flex-direction:column; }
.gx-home-product-logo { display:block; height:80px; width:100%; object-fit:contain; margin-bottom:22px; }
.gx-home-product p { font-size:.95rem; } .gx-home-product nav { display:flex; gap:16px; flex-wrap:wrap; margin-top:auto; }
.gx-home-cta { font-weight:700; } .gx-home-contact { padding:40px 0 12px; }
.gx-home-theme { padding:8px 12px; color:var(--text-primary); background:var(--bg-card); border:1px solid var(--divider); border-radius:6px; }
.gx-home :focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
@media(max-width:950px) { .gx-home-paths { grid-template-columns:1fr; } .gx-home-consulting ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } }
@media(max-width:640px) { .gx-home-hero,.gx-home-product-grid { grid-template-columns:1fr; } .gx-home-consulting ul { display:block; } .gx-home { padding:20px 16px; } .gx-home-hero-image { height:190px; } }

/* Editorial Glifix revision: common slideshow typography and genuine packaged logos. */
html{scroll-behavior:smooth}.gx-site-main{max-width:1080px;margin:auto;padding:56px 28px 40px;font-family:'Nunito Sans',sans-serif}.gx-site-main h1,.gx-site-main h2,.gx-site-main h3,.gx-home h1,.gx-home h2,.gx-home h3{font-family:'Nunito',sans-serif;font-weight:800}.gx-site-main h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1.12;letter-spacing:-.025em;margin:20px 0 24px}.gx-site-lead{font-size:1.2rem;line-height:1.65;color:var(--text-secondary)}.gx-site-main p{color:var(--text-secondary);line-height:1.8}.gx-page-emblem{display:block;max-width:180px;height:78px;object-fit:contain;object-position:left;filter:var(--logo-filter);margin:0 0 24px}.gx-site-main .gx-card{box-shadow:none;border:1px solid var(--divider);padding:28px;background:var(--bg-card)}.gx-site-main .gx-card:hover{box-shadow:none}.gx-site-main a{color:var(--accent);text-decoration:none}.gx-site-main a:hover{text-decoration:underline}.gx-site-footer,.gx-editorial-footer{max-width:1080px;padding:30px 28px;margin:40px auto 0;border-top:1px solid var(--divider);color:var(--text-muted);font:13px 'Nunito Sans',sans-serif}.gx-editorial-footer a{color:var(--accent)}.gx-editorial-content{max-width:850px}.gx-editorial-content h2{font-size:1.65rem;margin:40px 0 18px}.gx-editorial-content h3{margin:30px 0 16px}.gx-editorial-content img{max-width:100%;height:auto;border-radius:14px;margin:18px 0}.gx-editorial-content table{width:100%;color:var(--text-primary)}.gx-editorial-content li{margin:12px 0;line-height:1.7;color:var(--text-secondary)}.gx-home-product nav,.gx-home-theme{display:none}.gx-home{padding-top:54px}.gx-home-product,.gx-home-consulting{box-shadow:none;border:1px solid var(--divider)}.gx-editorial-page{overflow:visible}.gx-editorial-page .s_website_form{background:var(--bg-card);padding:28px;border:1px solid var(--divider);border-radius:16px}.gx-editorial-page input,.gx-editorial-page textarea,.gx-editorial-page select{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--divider)}.gx-editorial-page .s_website_form label{color:var(--text-primary)}
#wrapwrap:has(.gx-home:not(.gx-home-odoo-framework))>header,#wrapwrap:has(.gx-editorial-page)>header,#wrapwrap:has(.gx-home)>footer,#wrapwrap:has(.gx-editorial-page)>footer{display:none!important}
.gx-has-site-bar .wrap{padding-top:42px}.gx-has-site-bar .map-row .chart-frame{min-width:0}.gx-has-site-bar .map-row .side-index{flex-basis:28%}.gx-has-site-bar .node:hover .shape{stroke:var(--accent);stroke-width:3}.gx-editorial-footer strong{font-family:'Nunito',sans-serif;font-size:20px;color:var(--text-primary)}
@media(max-width:700px){.gx-site-main{padding:34px 20px}.gx-has-site-bar .map-row{flex-direction:column}.gx-has-site-bar .side-index{width:100%;box-sizing:border-box}.gx-has-site-bar .chart-frame{width:100%;box-sizing:border-box}}

#wrapwrap:has(.gx-web-error)>header,#wrapwrap:has(.gx-web-error)>footer{display:none!important}

/* Map legibility and multilingual labels */
#panel-tech .si-title{font-size:.88rem;line-height:1.4}#panel-tech .si-desc{font-size:.76rem;line-height:1.6;color:var(--text-secondary)}#panel-tech .si-item{padding:10px 12px}.node-sub{fill:var(--text-secondary)}.gx-language-panel a span:last-child{font-family:"Nunito Sans","Noto Sans SC","Noto Sans KR",sans-serif}

/* Native Website image compositing */
.gx-site-brand img,.gx-page-emblem{filter:none!important}

/* Three full-size entries, without the additional consulting sidebar. */
.gx-home-three-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;align-items:stretch}.gx-home-large-panel{display:flex;flex-direction:column;min-height:370px;padding:32px!important;text-decoration:none!important;color:var(--text-primary)!important;border:1px solid var(--divider);border-radius:18px;background:var(--bg-card);box-sizing:border-box}.gx-home-large-panel:hover{border-color:var(--accent);background:var(--bg-card-hover)}.gx-home-large-panel h2{font-size:2rem;margin:12px 0 20px}.gx-home-large-panel p{color:var(--text-secondary);line-height:1.8;margin-bottom:26px}.gx-home-large-panel .gx-home-product-logo{height:90px;margin-bottom:20px}.gx-home-large-panel .gx-home-cta{margin-top:auto;color:var(--accent)}.gx-home-discovery{padding:52px 0 16px;max-width:1000px}.gx-home-discovery h2{font-size:clamp(1.6rem,3vw,2.3rem)}.gx-home-discovery p{font-size:1.1rem;color:var(--text-secondary);line-height:1.8}.gx-dnadiet-demo-link{margin:16px 0}.gx-dnadiet-demo-link a{color:var(--accent);font-weight:700}@media(max-width:800px){.gx-home-three-panels{grid-template-columns:1fr}.gx-home-large-panel{min-height:300px}.gx-home-large-panel .gx-home-product-logo{object-position:left}}

/* Original photographs and original editorial content of the Home cards. */
.gx-home-large-panel:has(.gx-home-panel-image){padding:0!important;overflow:hidden;min-height:0}.gx-home-panel-image{display:block;width:100%;height:220px;object-fit:cover;object-position:center}.gx-home-panel-body{display:flex;flex-direction:column;flex:1;padding:24px 28px 30px}.gx-home-panel-body h2{font-size:1.75rem;margin:0 0 18px;line-height:1.25}.gx-home-panel-body p{line-height:1.65;margin:0 0 14px}.gx-home-panel-body .gx-home-cta{padding-top:20px}.gx-home-panel-body strong{color:var(--text-primary)}@media(max-width:800px){.gx-home-panel-image{height:auto;aspect-ratio:16/9}.gx-home-panel-body{padding:24px}}

.gx-controlflow-rafting{object-position:center 48%}.gx-footer-wide{max-width:none;width:calc(100% - 64px);box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:12px 24px;padding:24px 0;flex-wrap:wrap}.gx-footer-wide p,.gx-footer-wide small,.gx-footer-wide strong{margin:0;white-space:nowrap}.gx-footer-wide strong{font-size:16px}.gx-footer-wide small{font-size:12px}@media(max-width:720px){.gx-footer-wide{width:calc(100% - 40px);justify-content:flex-start}.gx-footer-wide p{white-space:normal}}

/* Home: the three original service panels are the main content. */
.gx-home.gx-home-panels-only{width:100%;max-width:1440px;padding:100px 32px 12px;margin:auto;box-sizing:border-box}.gx-home-panels-only .gx-controlflow-question{font-size:1.35rem;line-height:1.35;margin:0 0 16px}.gx-home-panels-only .gx-controlflow-motto{color:var(--text-primary);font-weight:700}.gx-home-panels-only .gx-home-panel-image{height:clamp(220px,18vw,285px)}@media(max-width:800px){.gx-home.gx-home-panels-only{padding:94px 20px 12px}.gx-home-panels-only .gx-home-panel-image{height:auto;aspect-ratio:16/9}}

/* Odoo owns the homepage header and session controls. */
body:has(.gx-home-odoo-framework).gx-has-site-bar{padding-top:0!important}.gx-home.gx-home-odoo-framework{padding-top:20px}.gx-home-tools.gx-site-bar{position:relative;inset:auto;min-height:40px;padding:0 0 16px;margin:0 0 4px;border:0;background:none;backdrop-filter:none;z-index:100}.gx-home-tools .gx-controls{margin-left:auto}.gx-home-tools .gx-menu-panel{top:calc(100% + 8px)}body:has(.gx-home-odoo-framework) #top{background:var(--nav-bg)!important;color:var(--text-primary);border-bottom:1px solid var(--divider)}body:has(.gx-home-odoo-framework) #top .navbar{background:var(--nav-bg)!important;color:var(--text-primary)}body:has(.gx-home-odoo-framework) #top .nav-link,body:has(.gx-home-odoo-framework) #top .navbar-toggler{color:var(--text-secondary)!important}body:has(.gx-home-odoo-framework) #top .nav-link:hover{color:var(--accent)!important}body:has(.gx-home-odoo-framework) #top .dropdown-menu,body:has(.gx-home-odoo-framework) #top .offcanvas{background:var(--bg-surface);color:var(--text-primary)}body:has(.gx-home-odoo-framework) #top .dropdown-item{color:var(--text-secondary)}body:has(.gx-home-odoo-framework) #top .dropdown-item:hover{background:var(--bg-card)}body:has(.gx-home-odoo-framework) #top .js_language_selector{display:none!important}body:has(.gx-home-odoo-framework) #top .navbar-brand img{max-width:140px;object-fit:contain}@media(max-width:800px){.gx-home.gx-home-odoo-framework{padding-top:16px}.gx-home-tools.gx-site-bar{flex-wrap:nowrap}}

/* Native Odoo navigation uses the shared Glifix palette and typography. */
body:has(.gx-home-odoo-framework) #top{font:600 14px 'Nunito Sans',sans-serif;backdrop-filter:blur(16px);box-shadow:none!important}body:has(.gx-home-odoo-framework) #top .navbar{font:inherit;min-height:68px;box-shadow:none!important}body:has(.gx-home-odoo-framework) #top .o_main_nav{max-width:1380px;gap:18px}body:has(.gx-home-odoo-framework) #top .navbar-brand img{width:130px!important;height:auto!important;max-height:40px;filter:var(--logo-filter)}body:has(.gx-home-odoo-framework) #top .nav-link{font:inherit;border-radius:8px;padding:8px 12px}body:has(.gx-home-odoo-framework) #top a[href='/web/login']{border:1px solid var(--divider)!important;background:var(--bg-card);color:var(--text-primary)!important;padding:8px 18px}body:has(.gx-home-odoo-framework) #top a[href='/web/login']:hover{border-color:var(--accent)!important;background:var(--bg-card-hover)}body:has(.gx-home-odoo-framework) #top .dropdown-menu{border:1px solid var(--divider);border-radius:14px;box-shadow:var(--shadow-card);padding:10px}body:has(.gx-home-odoo-framework) #top .dropdown-item{font:600 14px 'Nunito Sans',sans-serif;border-radius:8px;padding:10px 12px}body:has(.gx-home-odoo-framework) #top .offcanvas{font:600 14px 'Nunito Sans',sans-serif}body:has(.gx-home-odoo-framework) #top .btn-close{filter:var(--logo-filter)}body:has(.gx-home-odoo-framework) #wrapwrap{background:transparent;color:var(--text-primary)}body:has(.gx-home-odoo-framework) #wrap{font-family:'Nunito Sans',sans-serif}body:has(.gx-home-odoo-framework) #wrap h2,body:has(.gx-home-odoo-framework) #wrap h3{font-family:Nunito,sans-serif}body:has(.gx-home-odoo-framework) #top .o_navlink_background{background:var(--bg-card);color:var(--text-primary)}

/* Commercial maps scroll as documents, independently of the slideshow layout. */
html.gx-commercial-map-document{height:auto;overflow-x:hidden;overflow-y:auto}
body.gx-commercial-map-page{height:auto;min-height:100vh;overflow:visible}
.gx-commercial-map-page .commercial-map,.gx-commercial-map-page .detail{scroll-margin-top:calc(var(--gx-bar-total,68px) + 24px)}
.gx-map-return{grid-column:1/-1;justify-self:start;padding:10px 16px;border:1px solid var(--accent);border-radius:10px;background:var(--bg-card);color:var(--accent);cursor:pointer;font-weight:700}
.gx-map-return:hover{background:var(--bg-card-hover)}
