/* Retain the original homepage's sections, visual mask, banners and staggered cards. */
body.homepage { color:#666; background:#fff; }
.homepage main > section { padding:140px 40px; }
.homepage main .title { font-size:64px; line-height:1.25; color:#111; text-align:center; margin-bottom:60px; font-weight:700; letter-spacing:-.04em; }
.homepage main .title > span { display:block; margin-bottom:16px; color:#666; font-size:18px; line-height:1.6; font-weight:400; letter-spacing:0; }
.homepage main section article, .homepage main .title, .homepage main .sub-title { opacity:1; transform:none; }
.homepage main .btn-more { font-size:16px; min-height:48px; gap:20px; padding:8px 26px; }
.homepage main .homepage-visual { padding:0; }
.homepage-visual .visual-mask { position:relative; height:145svh; }
.homepage-visual .mask-wrap.co-brand-stage { position:sticky; top:var(--site-header-height); height:calc(100svh - var(--site-header-height)); min-height:650px; background:#fff; border-radius:0; overflow:hidden; isolation:isolate; }
.homepage-visual .mask { position:absolute; z-index:0; width:calc(100% - 40px); max-width:1400px; height:62%; bottom:18px; left:50%; transform:translateX(-50%); border-radius:40px; transition:width .8s,height .8s,bottom .8s,border-radius .8s; }
.homepage-visual .co-brand-slider { z-index:0; }
.homepage-visual .visual-txt { position:absolute; z-index:2; left:50%; top:36%; width:min(820px,calc(100% - 96px)); padding:0; margin:0; transform:translate(-50%,-50%); pointer-events:none; }
.homepage .homepage-visual h1 { color:#111; font-size:48px; line-height:1.3; font-weight:600; letter-spacing:-.035em; transition:color .8s; }
.homepage .homepage-visual h1 em { color:var(--color-point); }
.homepage .homepage-visual .visual-txt .emphasis { font-size:108px; font-weight:700; line-height:1.5; letter-spacing:.05em; color:#fff; }
.homepage-visual.active .mask { width:100%; max-width:none; height:100%; bottom:0; border-radius:0; }
.homepage-visual.active .visual-txt { top:32%; }
.homepage .homepage-visual.active h1, .homepage .homepage-visual.active h1 em { color:#fff; }
.homepage-visual-shade { position:absolute; inset:0; z-index:1; background:linear-gradient(0deg,#102749a6,transparent 65%); pointer-events:none; }
.homepage-visual-actions { position:absolute; z-index:3; bottom:30px; left:40px; right:40px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.homepage .homepage-visual-actions .co-button { background:#ffffffeb; color:#00519b; border-color:#fff; border-radius:30px; }
.homepage .co-slider-controls { color:#fff; }
.homepage .service-inner { max-width:1320px; gap:40px; }
.homepage .service article { min-width:0; padding:0; border:0; }
.homepage .service article .img { height:300px; border-radius:20px; background-position:center; }
.homepage .service article dl { margin:24px 0 0; height:auto; }
.homepage .service article .card-title { font-size:30px; line-height:1.4; color:#111; margin-bottom:12px; font-weight:600; }
.homepage .service article dd { position:static; opacity:1; visibility:visible; font-size:18px; color:#666; line-height:1.7; }
.homepage .service article .more { display:inline-flex; align-items:center; gap:18px; margin-top:18px; font-size:15px; color:#00519b; }
.homepage main .solution { margin:0 20px; padding:100px 40px; border-radius:40px; }
.homepage .solution-inner { max-width:1320px; display:grid; grid-template-columns:220px minmax(0,1fr); gap:40px; align-items:start; }
.homepage .solution .title { position:sticky; top:160px; color:#fff; text-align:left; font-size:62px; margin-top:55px; }
.homepage .solution .title > span { color:#d5e3fa; font-size:17px; }
.homepage .solution .card-wrap { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.homepage .solution .card-wrap article { width:auto; height:580px; min-width:0; margin:0; border-radius:20px; background:#ffffff1c; border:1px solid #ffffff38; }
.homepage .solution .card-wrap article:first-child { margin-top:100px; }
.homepage .solution .card-wrap article:last-child { margin-top:0; }
.homepage .solution article a { padding:36px; }
.homepage .solution article dt { font-size:38px; font-weight:600; line-height:1.35; }
.homepage .solution article dd { font-size:18px; line-height:1.6; }
.homepage .solution article .product-english { font-size:13px; color:#d1e1f7; margin-top:4px; }
.homepage .solution article .product-description { margin-top:26px; }
.homepage .solution article .txt-hover { font-size:16px; }
.homepage .solution article figure { bottom:65px; right:10px; left:20px; height:190px; }
.homepage .solution article figure img { width:auto; max-width:90%; max-height:100%; margin-left:auto; margin-right:10px; object-fit:contain; }
.homepage .solution article .more-detail { opacity:1; visibility:visible; transform:none; color:#fff; font-size:15px; gap:20px; }
.homepage .solution article:hover, .homepage .solution article:focus-within { background:#0b82f1; box-shadow:0 18px 42px #051e6650; }
.homepage .solution article:hover dl, .homepage .solution article:hover dt { color:#fff; }
.homepage .solution article:focus-within figure { opacity:0; visibility:hidden; }
.homepage .solution article:focus-within .txt-hover { opacity:1; visibility:visible; transform:none; }
.homepage .solution article .txt-hover:before { background:#ffffff5c; }
.homepage main .co-showcase { background:#fff; }
.homepage .co-showcase > .co-wrap > h2, .homepage #datalens h2 { font-size:48px; }
.homepage .co-showcase .co-eyebrow { color:#00519b; }
.homepage .co-showcase-layout { grid-template-columns:260px minmax(0,1fr); }
.homepage main #datalens { margin:0 20px; border-radius:40px; background:#f2f6fc; }
.homepage .co-data-flow { background:#fff; border-radius:20px; }
.homepage .si-inner { display:grid; grid-template-columns:260px minmax(0,1fr); max-width:1320px; gap:80px; }
.homepage .si .title { text-align:left; }
.homepage .si .title .btn-more { margin-top:30px; }
.homepage .si .case-wrap { display:block; }
.homepage .si .case-wrap article { padding:30px 0; }
.homepage .si .case-wrap dt { color:#111; font-size:26px; }
.homepage .si .case-wrap dd { font-size:17px; }
.homepage main .client { padding-top:20px; text-align:center; }
.homepage .client-inner { display:block; max-width:100%; }
.homepage .co-client-ribbon { margin-top:18px; }
.homepage .client .co-client-logos { flex-wrap:nowrap; gap:22px; padding-right:22px; }
.homepage .client .co-client-logos li { width:150px; height:68px; min-height:68px; padding:6px 12px; border:1px solid #e2e2e2; border-radius:10px; box-sizing:border-box; }
.homepage .client .co-client-logos img { width:100%; max-height:50px; object-fit:contain; }
.homepage .client .co-client-ribbon:not([data-running]) .co-client-logos li { width:auto; }
.homepage .co-client-ribbon[data-direction='rtl'] .co-client-track { animation-direction:reverse; }
.homepage .client .btn-more { margin-top:30px; }
.homepage main .contact-link { padding-top:0; }
.homepage .contact-link-inner { max-width:1320px; padding:80px 100px; border-radius:40px; }
.homepage .contact-link .sub-title { font-size:44px; font-weight:600; color:#111; }
.homepage .contact-link p:not(.sub-title) { font-size:20px; }
@media(max-width:1100px) {
.homepage main > section { padding:100px 28px; }
.homepage main .title { font-size:52px; }
.homepage .solution-inner { grid-template-columns:1fr; }
.homepage .solution .title { position:static; margin:0; text-align:left; }
.homepage .solution .title br { display:none; }
.homepage .solution .card-wrap article:first-child { margin-top:40px; }
.homepage .solution .card-wrap article { height:540px; }
.homepage .solution article figure { height:160px; }
.homepage .si-inner { grid-template-columns:220px minmax(0,1fr); gap:40px; }
.homepage .co-showcase-layout { grid-template-columns:220px minmax(0,1fr); gap:30px; }
.homepage .contact-link-inner { padding:70px 60px; }
}
@media(max-width:800px) {
.homepage-visual .visual-mask { height:130svh; }
.homepage-visual .mask-wrap.co-brand-stage { min-height:650px; }
.homepage .homepage-visual h1 { font-size:40px; }
.homepage .homepage-visual .visual-txt .emphasis { font-size:88px; }
.homepage .service-inner { flex-direction:column; gap:45px; }
.homepage .service article, .homepage .service article:hover { flex:auto; }
.homepage .service article .img { height:260px; }
.homepage .solution .card-wrap { grid-template-columns:1fr; }
.homepage .solution .card-wrap article:first-child { margin-top:0; }
.homepage .co-showcase-layout { grid-template-columns:1fr; }
.homepage .si-inner { grid-template-columns:1fr; gap:10px; }
.homepage .si .title { margin-bottom:25px; }
.homepage .si .title > br { display:none; }
.homepage .si .title .btn-more { display:flex; width:max-content; margin:20px 0 0; }
.homepage .contact-link-inner { padding:55px 35px; }
}
@media(max-width:600px) {
.homepage main > section { padding:80px 20px; }
.homepage main .title { font-size:40px; margin-bottom:36px; }
.homepage main .title > span { font-size:15px; margin-bottom:12px; }
.homepage-visual .visual-mask { height:120svh; min-height:740px; }
.homepage-visual .mask-wrap.co-brand-stage { min-height:610px; }
.homepage-visual .mask { width:calc(100% - 24px); bottom:12px; height:63%; border-radius:24px; }
.homepage-visual .visual-txt { width:calc(100% - 64px); top:34%; }
.homepage .homepage-visual h1 { font-size:31px; }
.homepage .homepage-visual .visual-txt .emphasis { font-size:68px; line-height:1.6; }
.homepage-visual .co-brand-slider .swiper-slide img { object-position:60% center; }
.homepage-visual-actions { bottom:24px; left:20px; right:20px; flex-direction:column; align-items:flex-start; gap:18px; }
.homepage .homepage-visual-actions .co-button { padding:12px 18px; font-size:14px; gap:15px; min-height:48px; }
.homepage .homepage-visual-actions .co-slider-controls { align-self:flex-start; }
.homepage .service article .img { height:200px; }
.homepage .service article .card-title { font-size:28px; }
.homepage .service article dd { font-size:16px; }
.homepage main .solution { padding:60px 24px; margin:0 12px; border-radius:24px; }
.homepage .solution-inner { gap:34px; }
.homepage .solution .title { font-size:40px; margin:0; }
.homepage .solution .card-wrap { grid-template-columns:1fr; gap:24px; }
.homepage .solution .card-wrap article, .homepage .solution .card-wrap article:first-child { height:auto; min-height:530px; margin:0; }
.homepage .solution article a { padding:28px; }
.homepage .solution article dt { font-size:34px; }
.homepage .solution article dd { font-size:16px; }
.homepage .solution article .txt-hover { opacity:1; visibility:visible; transform:none; font-size:15px; }
.homepage .solution article figure { position:static; height:130px; margin:20px 0; }
.homepage .solution article:hover figure, .homepage .solution article:focus-within figure { opacity:1; visibility:visible; transform:none; }
.homepage .solution article .more-detail { font-size:15px; }
.homepage .co-showcase > .co-wrap > h2, .homepage #datalens h2 { font-size:34px; }
.homepage main #datalens { margin:0 12px; padding-left:12px; padding-right:12px; border-radius:24px; }
.homepage .co-wrap { width:100%; }
.homepage .si .case-wrap dt { font-size:24px; }
.homepage .si .case-wrap dd { font-size:16px; }
.homepage .client .co-client-logos li { width:125px; height:60px; min-height:60px; }
.homepage .contact-link-inner { padding:45px 26px; border-radius:24px; gap:24px; }
.homepage .contact-link .sub-title { font-size:36px; }
.homepage .contact-link p:not(.sub-title) { font-size:17px; }
}
@media(prefers-reduced-motion:reduce) {
.homepage-visual .mask { transition:none; }
.homepage .client .co-client-logos { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.homepage .client .co-client-logos li { width:auto; }
}

/* Product refinement: readable text, real screens, and the existing CHAFLE icons. */
.homepage .co-eyebrow { font-size:14px; letter-spacing:.07em; }
.homepage main :is(h2,h3,dt) { text-wrap:balance; }
.homepage main :is(p,dd) { word-break:keep-all; overflow-wrap:anywhere; }
.homepage .solution .card-wrap article { height:auto; min-height:640px; }
.homepage .solution article a { min-height:640px; }
.homepage .solution article dt { font-size:44px; font-weight:700; }
.homepage .solution article .product-category { font-size:22px; }
.homepage .solution article .product-english { font-size:16px; }
.homepage .solution article .product-description { font-size:23px; line-height:1.6; font-weight:500; }
.homepage .solution article .txt-hover { font-size:18px; line-height:1.75; }
.homepage .solution article .more-detail { font-size:18px; font-weight:600; }
.homepage .service article .more, .homepage .si .case-wrap .order-company { font-size:17px; }
.homepage .si .case-wrap .device { font-size:13px; }
.homepage .co-showcase > .co-wrap > h2, .homepage #datalens h2 { font-size:52px; line-height:1.3; color:#142c48; }
.homepage .co-showcase-layout { grid-template-columns:minmax(0,1fr); gap:36px; margin-top:42px; }
.homepage .co-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:8px; border-radius:20px; background:#f4f3f8; }
.homepage .co-tabs button, .homepage .co-tabs button:first-child { display:flex; gap:14px; border:0; border-radius:14px; padding:18px 22px; }
.homepage .co-tabs button[aria-selected='true'] { color:#6540b6; background:#fff; box-shadow:0 4px 16px #3c235a10; }
.homepage .co-tabs button > span:first-child { display:block; font-size:14px; color:inherit; }
.homepage .co-tabs button strong { font-size:28px; font-weight:700; }
.homepage .co-tabs button small { display:block; font-size:16px; color:#626777; line-height:1.5; }
.homepage .co-product-panel { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); align-items:center; gap:48px; padding:36px; border:1px solid #e6e2ef; border-radius:28px; background:#fcfbfe; }
.homepage .co-product-copy { grid-column:2; grid-row:1; min-width:0; }
.homepage .co-product-media { grid-column:1; grid-row:1; min-width:0; }
.homepage .co-product-panel h3 { margin:0!important; font-size:36px!important; line-height:1.4; color:#172d46; font-weight:700; letter-spacing:-.045em; }
.homepage .co-product-panel h3 > span { display:block; line-height:inherit; }
.homepage .co-product-panel .co-lead { margin-top:20px!important; font-size:20px; line-height:1.8; color:#556273; }
.homepage .co-product-media .co-image-window { min-height:360px; aspect-ratio:auto; display:grid; place-items:center; padding:14px; border:1px solid #ded7ed; border-radius:16px; background:#ede8f6; box-shadow:0 18px 30px -24px #4022774d; }
.homepage .co-product-media .co-image-window img { width:100%; height:auto; object-fit:contain; border-radius:6px; }
.homepage .co-product-media .co-phone-window img { width:auto; max-height:350px; max-width:100%; }
.homepage .co-image-caption { font-size:15px; color:#636774; line-height:1.6; }
.homepage .co-product-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:26px!important; padding-top:24px; border-top:1px solid #e0d9eb; }
.homepage .co-product-benefits li { display:flex; flex-direction:column; align-items:flex-start; gap:8px; min-width:0; }
.homepage .co-product-benefits img { width:48px; height:48px; object-fit:contain; }
.homepage .co-product-benefits strong { font-size:17px; font-weight:600; color:#514461; word-break:keep-all; }
.homepage .co-showcase-bottom .co-text-link, .homepage #datalens .co-text-link { font-size:18px; }
.homepage #datalens .co-data-layout { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:64px; }
.homepage #datalens .co-lead { font-size:21px; line-height:1.8; }
@media(max-width:1100px) {
.homepage .co-product-panel { grid-template-columns:1fr; gap:28px; padding:30px; }
.homepage .co-product-copy, .homepage .co-product-media { grid-column:1; grid-row:auto; }
.homepage .co-product-copy { max-width:760px; }
.homepage .co-product-benefits { max-width:580px; }
.homepage .co-tabs button, .homepage .co-tabs button:first-child { padding:16px 12px; gap:10px; }
.homepage .co-tabs button strong { font-size:25px; }
.homepage .co-tabs button small { font-size:14px; }
.homepage #datalens .co-data-layout { grid-template-columns:1fr; gap:40px; }
.homepage #datalens .co-data-visual { max-width:740px; width:100%; margin:auto; }
}
@media(max-width:800px) {
.homepage .co-tabs { padding:5px; border-radius:14px; }
.homepage .co-tabs button, .homepage .co-tabs button:first-child { justify-content:center; padding:15px 3px; text-align:center; border-radius:10px; }
.homepage .co-tabs button > span:first-child, .homepage .co-tabs button small { display:none; }
.homepage .co-tabs button strong { font-size:18px; }
}
@media(max-width:600px) {
.homepage .co-eyebrow { font-size:12px; }
.homepage .solution article a { min-height:0; padding:26px; }
.homepage .solution .card-wrap article { min-height:0; }
.homepage .solution article dt { font-size:38px; }
.homepage .solution article .product-category { font-size:20px; }
.homepage .solution article .product-english { font-size:15px; }
.homepage .solution article .product-description { font-size:21px; }
.homepage .solution article .txt-hover { font-size:17px; }
.homepage .solution article .more-detail { font-size:17px; }
.homepage .solution article figure { height:150px; }
.homepage .co-showcase > .co-wrap > h2, .homepage #datalens h2 { font-size:36px; }
.homepage .co-product-panel { padding:24px 18px; border-radius:20px; gap:24px; }
.homepage .co-product-panel h3 { font-size:30px!important; }
.homepage .co-product-panel .co-lead { font-size:18px; margin-top:16px!important; }
.homepage .co-product-benefits { gap:8px; margin-top:22px!important; padding-top:20px; }
.homepage .co-product-benefits img { width:44px; height:44px; }
.homepage .co-product-benefits strong { font-size:15px; }
.homepage .co-product-media .co-image-window { min-height:0; padding:8px; aspect-ratio:auto; }
.homepage .co-product-media .co-image-window img { width:100%; height:auto; object-fit:contain; }
.homepage .co-product-media .co-phone-window img { width:auto; max-height:300px; }
.homepage .co-image-caption { align-items:flex-start; flex-direction:column; gap:0; font-size:14px; }
.homepage #datalens .co-lead { font-size:18px; }
}

/* Tago: service screens remain legible, with a swipeable gallery on small screens. */
.homepage .co-tago-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:24px 18px; border:1px solid #e4dbf0; border-radius:20px; background:linear-gradient(145deg,#f4effb,#eae3f5); }
.homepage .co-tago-gallery figure { min-width:0; margin:0; }
.homepage .co-tago-gallery a { display:grid; place-items:center; overflow:hidden; aspect-ratio:1080 / 2340; border:5px solid #253047; border-radius:20px; background:#fff; box-shadow:0 12px 24px -14px #30224580; }
.homepage .co-tago-gallery a:focus-visible { outline:3px solid #7251c7; outline-offset:4px; }
.homepage .co-tago-gallery img { display:block; width:100%; height:100%; object-fit:contain; }
.homepage .co-tago-gallery figcaption { margin-top:14px; color:#514461; font-size:16px; font-weight:600; text-align:center; }
.homepage .co-tago-gallery-note { margin-top:16px; color:#636774; font-size:14px; line-height:1.7; }
.homepage .co-tago-gallery-hint { display:none; }
@media(max-width:1100px) {
.homepage #panel-tago .co-product-media { width:100%; max-width:740px; margin:auto; }
}
@media(max-width:600px) {
.homepage .co-tago-gallery { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:min(65vw,200px); gap:16px; padding:20px 16px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scroll-padding-inline:16px; scrollbar-width:thin; scrollbar-color:#b8a5d2 transparent; }
.homepage .co-tago-gallery figure { scroll-snap-align:start; }
.homepage .co-tago-gallery-hint { display:block; margin-top:12px; color:#6540a3; font-size:14px; line-height:1.6; }
.homepage .co-tago-gallery-note { margin-top:8px; }
}
