/* Live-source update 2026-09-02. Loaded after legacy theme; keeps brand and hero. */
:root{--app-border:var(--border);--app-panel:var(--surface);--app-accent:var(--link);}
html{scroll-padding-top:100px;}body{overflow-x:clip;}*,*:before,*:after{box-sizing:border-box;}
.wrap{width:calc(100% - clamp(32px,6vw,112px));max-width:1760px;margin-inline:auto;}
img,video,canvas{max-width:100%;}.split>*,.service-copy>*,.section-top>*,.footer-grid>*,.media-editor-grid>*{min-width:0;}
.app-icon{display:inline-block!important;flex:none;width:20px!important;height:20px!important;object-fit:contain;filter:invert(1);vertical-align:middle;}
.app-nav-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;text-decoration:none;border-radius:9px;padding:9px 10px;font:inherit;}
.app-nav-link[aria-current=page]{color:var(--link);background:var(--surface-alt);}
.app-nav-link:hover{background:var(--surface-alt);color:var(--text);}
.site-header .nav{gap:24px;min-height:84px;}.site-header .menu{gap:3px;align-items:center;}
.site-header .brand-logo{flex-shrink:0;}.site-header .brand-image{width:210px;height:65px;object-fit:contain;}
.site-header .menu a{font-size:13px;}.app-menu-toggle{display:none;}.app-dock{display:none;}
.app-menu-toggle,.app-dock button,.cookie-panel button{color:var(--text);border:1px solid var(--app-border);background:var(--surface);cursor:pointer;}
a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:4px;}
.page-hero p,.service-detail-hero p{max-width:900px;}
.solution-grid{background:transparent!important;gap:18px!important;}
.section-top h2{overflow-wrap:anywhere;}.legal{max-width:1050px;}.cms-rich{overflow-wrap:anywhere;}
.subservice-card h3{font-size:clamp(18px,1.6vw,25px);}.catalog-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.catalog-card-actions{flex-wrap:wrap;}.catalog-card-actions>a{flex:1 1 130px;min-height:48px;}
.service-gallery{gap:clamp(10px,1.4vw,24px);}.gallery-tile{border-radius:14px;}.gallery-tile img{object-fit:contain;background:var(--canvas);}
.gallery-browser-controls{flex-wrap:wrap;gap:10px;}.gallery-page-numbers{display:flex;align-items:center;gap:6px;}.gallery-page-button{width:42px;min-height:42px;border-radius:10px;}
.gallery-page-button[aria-current]{background:var(--surface-hover);color:var(--text);border-color:var(--border);}.gallery-page-button:disabled{opacity:.35;cursor:default;}.gallery-page-status{width:100%;text-align:center;color:var(--text-muted);font-size:13px;}
.lightbox{position:fixed;inset:0;width:min(1500px,96vw);max-width:96vw;height:min(950px,94dvh);max-height:94dvh;padding:0;border:1px solid var(--border);border-radius:18px;background:var(--canvas);color:var(--text);box-shadow:0 30px 100px var(--shadow);overflow:hidden;}
.lightbox:not([open]){display:none;}.lightbox::backdrop{background:var(--backdrop);backdrop-filter:blur(5px);}
.lightbox-toolbar{height:60px;display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-bottom:1px solid var(--border);}
.lightbox button{border:1px solid var(--border);border-radius:50%;width:44px;height:44px;background:var(--surface);color:var(--text);cursor:pointer;display:grid;place-items:center;z-index:2;}
.lightbox-stage{position:relative;height:calc(100% - 60px);display:flex;align-items:center;justify-content:center;padding:18px 70px;}
.lightbox figure{margin:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;}
.lightbox figure img{width:100%;height:calc(100% - 75px);min-height:0;object-fit:contain;transition:opacity .15s;}
.lightbox figcaption{min-height:38px;max-height:65px;overflow:auto;text-align:center;max-width:80ch;line-height:1.5;color:var(--text);font-size:14px;}
.lightbox-prev,.lightbox-next{position:absolute;top:46%;}.lightbox-prev{left:12px;}.lightbox-next{right:12px;}
.lightbox-state{position:absolute;top:40%;left:12%;right:12%;text-align:center;pointer-events:none;}.lightbox-state:empty{display:none;}
.footer-grid{grid-template-columns:1.1fr .75fr 1.15fr;gap:clamp(25px,5vw,100px);}.footer address{font-style:normal;color:var(--text-muted);margin:16px 0;}
.footer-bottom{align-items:flex-start;gap:24px;}.footer-bottom nav{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;}.footer-bottom a{margin:0!important;}
.text-button{border:0;background:none;color:var(--link);text-decoration:underline;font:inherit;padding:0;cursor:pointer;}
.cookie-panel{position:fixed;z-index:1500;bottom:24px;left:24px;width:min(560px,calc(100% - 48px));padding:24px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 20px 60px var(--shadow);}
.cookie-panel[hidden]{display:none;}.cookie-panel p{font-size:14px;color:var(--text);line-height:1.7;}.cookie-panel>div{display:flex;gap:10px;flex-wrap:wrap;}.cookie-panel button:not(.text-button){padding:12px 18px;border-radius:8px;font:inherit;}.cookie-panel a{color:var(--link);}
.floating{display:grid;place-items:center;}.floating .app-icon{width:23px!important;height:23px!important;}
.admin-container{max-width:1760px!important;}.admin-form{max-width:1100px;}.admin-login .admin-form{max-width:100%;}.admin-login{width:100%;max-width:540px;}
.admin-main{padding:40px clamp(16px,3vw,56px) 80px;}.admin-header{padding:15px 28px;}
.admin-body.has-admin-nav{padding-left:228px;}.has-admin-nav .admin-header{position:fixed;left:0;top:0;bottom:0;width:228px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:28px;z-index:200;border-right:1px solid var(--app-border);overflow-y:auto;}
.has-admin-nav .admin-header nav{display:flex;flex-direction:column;gap:5px;}.admin-header .app-nav-link{justify-content:flex-start;font-size:14px;}
.admin-header .admin-logo img{width:175px;height:58px;object-fit:contain;}.admin-header .app-menu-toggle{display:none;}
.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));}.admin-stats a{min-width:0;}.admin-stats small{display:block;color:var(--text-muted);}
.admin-form textarea{min-height:120px;}.admin-form select{max-width:100%;min-height:46px;border:1px solid var(--border);border-radius:8px;background:var(--field);color:var(--text);padding:10px;font:inherit;}
.admin-form input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);}.admin-form input:not([type=checkbox]),.admin-form textarea{min-width:0;width:100%;}
.admin-form [hidden],[hidden].admin-upload-overlay,[hidden].site-loading-overlay{display:none!important;}
.admin-panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}
.app-panel{padding:24px;border:1px solid var(--app-border);border-radius:16px;background:var(--app-panel);min-width:0;}.app-panel h2{font-size:23px;margin-top:0;}.app-panel p{color:var(--text-muted);}
.app-panel ul{padding-left:22px;}.app-panel li{margin:10px 0;}.status-pill{display:inline-block;padding:5px 10px;border:1px solid var(--border);border-radius:20px;font-size:12px;color:var(--link);}
.admin-notice,.admin-error{overflow-wrap:anywhere;}.media-edit-layout{max-width:none;}
.media-assignment-option span{white-space:normal;flex-wrap:wrap;}.media-assignment-option b{white-space:normal;}
@media(min-width:1800px){.wrap{max-width:1840px;}}
@media(max-width:1250px){.site-header .menu a{font-size:12px;padding:9px 6px;}.site-header .brand-image{width:175px;}.site-header .nav{gap:12px;}.site-header .menu .app-icon{display:none!important;}}
@media(max-width:1050px){.catalog-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr));}.admin-body.has-admin-nav{padding-left:200px;}.has-admin-nav .admin-header{width:200px;padding:18px;}.admin-panel-grid{grid-template-columns:1fr;}.footer-grid{gap:30px;}}
@media(max-width:800px){
 body{padding-bottom:calc(76px + env(safe-area-inset-bottom));}.wrap{width:calc(100% - 32px);}.site-header .brand-image{width:165px;height:54px;}.site-header .nav{min-height:70px;}
 .app-menu-toggle{display:flex!important;gap:8px;align-items:center;justify-content:center;padding:8px 12px;border-radius:10px;min-height:44px;margin-left:auto;}
 .site-header .menu,.has-admin-nav .admin-header nav{display:none;position:fixed;top:78px;right:16px;left:16px;bottom:auto;max-height:calc(100dvh - 180px);overflow:auto;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 20px 60px var(--shadow);z-index:510;}
 .site-header .menu.open,.has-admin-nav .admin-header nav.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
 .site-header .menu a{font-size:14px;justify-content:flex-start;padding:12px;}.site-header .menu .app-icon{display:block!important;}
 .app-dock{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;z-index:500;border-top:1px solid var(--border);background:var(--surface);padding:7px 8px calc(7px + env(safe-area-inset-bottom));backdrop-filter:blur(18px);}
 .app-dock .app-nav-link{flex-direction:column;gap:3px;padding:5px 2px;font-size:10px;font-weight:600;min-height:52px;border:0;background:transparent;color:var(--text-muted);}
 .app-dock .app-nav-link[aria-current=page]{color:var(--link);background:var(--surface-alt);}
 .app-dock .app-icon{width:21px!important;height:21px!important;}
 .floating.phone{display:none;}.floating.whatsapp{bottom:calc(92px + env(safe-area-inset-bottom));right:16px;}
 .footer-grid{grid-template-columns:1fr;}.footer-bottom{flex-direction:column;}.footer-bottom nav{justify-content:flex-start;gap:14px;}
 .page-hero{padding:50px 0;}.page-hero h1,.service-detail-hero h1{font-size:clamp(30px,7.6vw,48px);letter-spacing:-1px;}
 .subservice-grid{gap:12px;}.subservice-card-copy{padding:16px;}.section-top{gap:20px;}.service-gallery{grid-template-columns:repeat(2,minmax(0,1fr));}
 .lightbox{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0;}.lightbox-stage{padding:10px 12px 68px;}.lightbox-prev,.lightbox-next{top:auto;bottom:14px;}.lightbox-prev{left:calc(50% - 60px);}.lightbox-next{right:calc(50% - 60px);}
 .lightbox figure img{height:calc(100% - 85px);}.lightbox figcaption{max-height:78px;}.cookie-panel{bottom:calc(86px + env(safe-area-inset-bottom));left:12px;width:calc(100% - 24px);padding:20px;}
 .admin-body.has-admin-nav{padding-left:0;}.has-admin-nav .admin-header{position:sticky;top:0;width:100%;height:76px;min-height:76px;flex-direction:row;align-items:center;justify-content:space-between;overflow:visible;padding:10px 16px;gap:8px;border-bottom:1px solid var(--app-border);}
 .admin-header .admin-logo img{width:148px;}.admin-main{padding:24px 16px 45px;}.admin-header .app-nav-link{font-size:13px;}.admin-intro h1{font-size:30px;}.media-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.admin-form{max-width:100%;}
 .app-panel{padding:20px;}.admin-stats{gap:10px;}.admin-stats a{padding:17px;}.admin-stats b{font-size:26px;}
}
@media(max-width:480px){.gallery-page-numbers{gap:3px;}.gallery-page-button{width:36px;}.catalog-card-grid{grid-template-columns:1fr;}.subservice-grid{grid-template-columns:1fr;}.media-admin-card-body{padding:10px;}.media-admin-card-body h2{font-size:14px;}.admin-stats small{font-size:12px;}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important;}}
@media(max-width:1000px){.media-edit-layout{grid-template-columns:1fr;}.media-edit-preview{position:static;}.media-admin-toolbar{grid-template-columns:1fr;}.split{grid-template-columns:1fr;}}
@media(max-width:800px){.admin-stats-four{grid-template-columns:repeat(2,minmax(0,1fr))!important;}.site-header{z-index:600;}.admin-header{z-index:600!important;}}
/* r11: one explicit catalogue layout; never inherit legacy full-width image rules. */
.catalog-solution-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:clamp(16px,1.5vw,26px)!important;align-items:stretch;background:transparent!important;}
.catalog-solution-card{display:flex!important;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:16px;background:var(--surface)!important;text-decoration:none;color:var(--text);padding:0!important;}
.catalog-solution-card:before,.catalog-solution-card:after{display:none!important;}
.portrait-cover{position:relative!important;display:block;aspect-ratio:16/9!important;overflow:hidden;min-width:0;background:var(--canvas);}
.portrait-cover>img{position:static!important;display:block;width:100%!important;height:100%!important;aspect-ratio:16/9!important;object-fit:var(--cover-fit,cover)!important;object-position:var(--cover-x,50%) var(--cover-y,50%)!important;filter:none!important;opacity:1!important;transition:transform .35s ease;}
.catalog-solution-card .solution-card-media{width:100%;height:auto!important;flex:none;}
.catalog-solution-card .solution-card-copy{position:relative!important;inset:auto!important;padding:22px!important;flex:1;display:flex;flex-direction:column;gap:12px;min-height:0!important;background:var(--surface);color:var(--text);}
.catalog-solution-card .solution-card-copy>span{color:var(--success);font-size:11px;font-weight:700;letter-spacing:.06em;}
.catalog-solution-card h3{font-size:clamp(19px,1.4vw,26px);line-height:1.3;margin:0!important;color:var(--text);}
.catalog-solution-card p{font-size:14px;line-height:1.65;margin:0;color:var(--text-muted);overflow-wrap:anywhere;}
.catalog-solution-card .solution-card-copy>b{margin-top:auto;padding-top:8px;color:var(--link);font-size:13px;}
.cover-placeholder{display:grid;place-content:center;gap:16px;height:100%;padding:25px;text-align:center;color:var(--link);font-size:18px;}
.catalog-all-link{margin-top:28px;}.solutions-hero{padding:48px 0!important;}.solutions-hero h1{font-size:clamp(34px,4vw,60px);}
.solution-jump-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;}.solution-jump-links a{padding:9px 13px;border:1px solid var(--border);background:var(--surface);border-radius:30px;font-size:13px;color:var(--text);min-height:44px;}
.solutions-catalog{padding-top:40px!important;}.solutions-approach{padding-block:40px!important;}
.project-approach{margin-top:25px;border:1px solid var(--border);border-radius:14px;padding:22px;}.project-approach summary{cursor:pointer;font-size:19px;font-weight:600;}.project-approach .cms-rich{margin-top:24px;}
.service-gallery .gallery-tile{aspect-ratio:16/9!important;}.gallery-tile>span{background:var(--surface);}
.cover-editor-layout{display:grid;grid-template-columns:minmax(160px,230px) minmax(0,1fr);gap:28px;align-items:start;}
.cover-editor-preview{border:1px solid var(--border);border-radius:14px;}.cover-editor input[type=range]{accent-color:var(--accent);min-height:35px;padding:0;}.cover-editor output{float:right;color:var(--link);}
.cover-editor small{display:block;color:var(--text-muted);margin-top:18px;}.cover-editor .admin-field-note{max-width:75ch;}
.media-admin-card-image{aspect-ratio:16/9;}.media-admin-card-image img{object-fit:contain;}
@media(hover:hover){.catalog-solution-card:hover .portrait-cover>img,.gallery-tile:hover>img{transform:scale(1.035);}.catalog-solution-card:hover{border-color:var(--border);box-shadow:0 12px 30px var(--shadow);}}
@media(max-width:1150px){.catalog-solution-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}}
@media(max-width:800px){.catalog-solution-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;}.catalog-solution-card .solution-card-copy{padding:15px!important;}.catalog-solution-card h3{font-size:18px;}.catalog-solution-card p{font-size:13px;}.solution-jump-links{gap:6px;}.solution-jump-links a{font-size:12px;}.solutions-hero{padding-block:32px!important;}.cover-editor-layout{grid-template-columns:140px minmax(0,1fr);gap:16px;}}
.solutions-catalog .section-top h2{font-size:clamp(28px,3vw,46px);}
@media(max-width:800px){.solution-jump-links{display:none;}.solutions-catalog .section-top{margin-bottom:24px;}}
@media(max-width:380px){.catalog-solution-card h3{font-size:16px;}.catalog-solution-card .solution-card-copy{padding:12px!important;}.cover-editor-layout{grid-template-columns:1fr;}.cover-editor-preview{max-width:200px;}}
@media(prefers-reduced-motion:reduce){.portrait-cover>img{transition:none!important;}.catalog-solution-card:hover .portrait-cover>img,.gallery-tile:hover>img{transform:none!important;}}
.catalog-solution-card:hover{transform:none!important;}
/* r12 horizontal covers; preserve per-image focal points and original modal. */
.cover-editor-layout{grid-template-columns:minmax(230px,360px) minmax(0,1fr);}
.sitemap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start;}
.sitemap-group{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:24px;min-width:0;}
.sitemap-group h2{font-size:23px;line-height:1.3;margin:0 0 18px;}.sitemap-group ul{list-style:none;padding:0;margin:0;}
.sitemap-group li+li{border-top:1px solid var(--border);}.sitemap-group a{display:flex;gap:16px;justify-content:space-between;align-items:center;min-height:48px;padding:12px 0;color:var(--text);overflow-wrap:anywhere;font-size:15px;}
.sitemap-group a:hover{color:var(--text);}.sitemap-group a span{flex-shrink:0;}.sitemap-note,.sitemap-count{color:var(--text-muted);font-size:14px;}
.sitemap-note{margin-top:32px;}
@media(max-width:1100px){.sitemap-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:800px){.cover-editor-layout{grid-template-columns:1fr;}.cover-editor-preview{max-width:360px;}.sitemap-grid{grid-template-columns:1fr;}.sitemap-group{padding:20px;}}
/* WhatsApp composer: an honest handoff, never an artificial online-agent status. */
.whatsapp-dialog{position:fixed;inset:auto 22px 88px auto;margin:0;width:min(420px,calc(100% - 32px));max-height:calc(100dvh - 110px);padding:0;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 24px 90px var(--shadow);overflow:auto;}
.whatsapp-dialog::backdrop{background:var(--backdrop);backdrop-filter:blur(3px);}
.whatsapp-dialog header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;padding:22px;background:var(--surface);border-bottom:1px solid var(--border);}
.whatsapp-dialog h2{font-size:24px;margin:5px 0;}.whatsapp-dialog header p{font-size:14px;margin:0;}
.whatsapp-dialog header button{display:grid;place-items:center;background:var(--surface-alt);border:1px solid var(--border);border-radius:50%;width:42px;height:42px;flex-shrink:0;color:inherit;cursor:pointer;}
.whatsapp-dialog form{padding:22px;display:grid;gap:14px;}.whatsapp-dialog label{display:grid;gap:8px;font-weight:600;}
.whatsapp-dialog textarea{width:100%;background:var(--field);border:1px solid var(--border);border-radius:12px;color:var(--text);font:inherit;padding:12px;resize:vertical;}
.whatsapp-greeting{padding:14px;background:var(--surface);border-radius:0 14px 14px;margin:0;}
.whatsapp-dialog .button{width:100%;justify-content:center;background:var(--success-bg);color:var(--text);border-radius:10px;}
.whatsapp-status{font-size:14px;line-height:1.6;color:var(--success);margin:0;}.whatsapp-status:empty{display:none;}
.whatsapp-dialog .admin-helper{font-size:12px;line-height:1.6;color:var(--text-muted);margin:0;}
[data-whatsapp-submit][aria-busy=true]{opacity:.65;cursor:wait;}
@media(max-width:800px){.whatsapp-dialog{inset:auto 12px calc(84px + env(safe-area-inset-bottom)) auto;width:calc(100% - 24px);max-height:calc(100dvh - 120px);}}
