/* Internal technologies are intentionally quieter than commercial products. */
.duovia-ai-chips { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 18px 0; max-width: 100%; }
.duovia-ai-chips__label { width: 100%; font-size: .7rem; letter-spacing: .05em; font-weight: 600; text-transform: uppercase; opacity: .75; }
.duovia-ai-chip { display: inline-flex; }
.duovia-ai-chip button { appearance: none; font: inherit; font-size: .72rem; letter-spacing: .04em; font-weight: 650; padding: 7px 10px; color: inherit; background: transparent; border: 1px solid currentColor; border-radius: 6px; cursor: pointer; }
.duovia-ai-chip button:hover, .duovia-ai-chip button:focus-visible { outline: 2px solid var(--gold, #c09238); outline-offset: 3px; }
.duovia-ai-tooltip { position: absolute; z-index: 10; left: 0; bottom: calc(100% + 8px); width: min(300px, 100%); padding: 12px 14px; border: 1px solid #c09238; border-radius: 8px; background: #0b1c2a; color: #fff; box-shadow: 0 6px 20px #0002; font-size: .8rem; line-height: 1.5; }
.duovia-ai-tooltip[hidden] { display: none; }
.duovia-ai-panel { min-width: 0; }
.duovia-ai-panel .section-heading h2 { font-size: clamp(1.5rem, 2.3vw, 2.1rem); }
.duovia-ai-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; align-items: start; }
.duovia-ai-technology { position: relative; min-width: 0; padding: 0; border: 1px solid var(--line, #d9d4c4); border-radius: 12px; background: #fffefa; scroll-margin-top: 110px; box-shadow: 0 14px 36px #071a2910; }
.duovia-ai-technology__details > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; border-top: 1px solid #c5a66940; border-radius: 0 0 11px 11px; background: #0a2233; color: #f3ead8; cursor: pointer; list-style: none; font-size: .78rem; font-weight: 600; }
.duovia-ai-technology__details > summary::-webkit-details-marker { display: none; }
.duovia-ai-technology__details > summary > span { font-size: 1.35rem; line-height: 1; color: #e4c58d; }
.duovia-ai-technology__details[open] > summary { border-radius: 0; }
.duovia-ai-technology__details[open] > summary > span { transform: rotate(45deg); }
.duovia-ai-technology__details > summary:focus-visible { outline: 2px solid #c09238; outline-offset: -4px; }
.duovia-ai-technology__copy { padding: 8px 22px 22px; }
.duovia-ai-media { display: block; position: relative; isolation: isolate; overflow: hidden; border-radius: 11px 11px 0 0; background: #071a29; cursor: zoom-in; }
.duovia-ai-media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; }
.duovia-ai-media__zoom { position: absolute; right: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 7px; padding: 7px 11px; border: 1px solid #f0d99d66; border-radius: 6px; color: #fff; background: #071a29ed; font-size: .68rem; line-height: 1.4; pointer-events: none; }
.duovia-ai-media__zoom .site-icon { width: 15px; height: 15px; }
.duovia-ai-media:hover .duovia-ai-media__zoom, .duovia-ai-media:focus-visible .duovia-ai-media__zoom { background: #b9821f; }
.duovia-ai-lightbox { width: min(1448px, calc(100vw - 48px)); max-width: none; max-height: calc(100dvh - 48px); padding: 0; border: 1px solid #d0a24a70; border-radius: 12px; background: #071a29; color: #fff; box-shadow: 0 24px 100px #0008; }
.duovia-ai-lightbox::backdrop { background: #020b14d9; backdrop-filter: blur(5px); }
.duovia-ai-lightbox__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 18px; border-bottom: 1px solid #ffffff26; }
.duovia-ai-lightbox__bar > div { display: flex; align-items: center; gap: 12px; }
.duovia-ai-lightbox__bar strong { letter-spacing: .12em; font-size: .9rem; }
.duovia-ai-lightbox button { border: 1px solid #ffffff50; border-radius: 5px; color: #fff; background: transparent; cursor: pointer; padding: 7px 10px; font: inherit; font-size: .75rem; }
.duovia-ai-lightbox [data-ai-close] { padding: 0; width: 36px; height: 36px; font-size: 1.65rem; line-height: 1; }
.duovia-ai-lightbox__canvas { overflow: auto; overscroll-behavior: contain; max-height: calc(100dvh - 120px); background: #071a29; }
.duovia-ai-lightbox__canvas img { display: block; width: auto; max-width: 100%; max-height: calc(100dvh - 120px); height: auto; margin-inline: auto; }
.duovia-ai-lightbox__canvas.is-full-size img { width: auto; max-width: none; max-height: none; margin: 0; }
html:has(.duovia-ai-lightbox[open]) { overflow: hidden; }
.duovia-ai-mosaic { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; min-width: 0; }
.duovia-ai-mosaic .duovia-ai-media { border-radius: 8px; border: 1px solid #f0d99d40; }
.duovia-ai-mosaic .duovia-ai-media__zoom span { display: none; }
.duovia-ai-technology p { font-size: .88rem; line-height: 1.65; }
.duovia-ai-technology ul { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 15px 0 0; padding: 0; list-style: none; color: var(--ink-soft); font-size: .72rem; }
.duovia-ai-mapping { margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--line, #d9d4c4); }
.duovia-ai-mapping h3 { font-size: 1.15rem; }
.duovia-ai-mapping > p { max-width: 850px; color: var(--ink-soft); }
.duovia-ai-mapping > ul { list-style: none; padding: 0; margin: 22px 0 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 35px; }
.duovia-ai-mapping > ul > li { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-width: 0; }
.duovia-ai-mapping a { font-size: .9rem; font-weight: 650; }
.duovia-ai-mapping .duovia-ai-chips { margin: 0; }
.duovia-ai-mapping__arrow { color: var(--ink-soft); }
.duovia-ai-mapping .duovia-ai-mapping__detail { width: 100%; margin: 0; font-size: .8rem; line-height: 1.6; color: var(--ink-soft); }
.duovia-ai-note { font-size: .8rem; color: var(--ink-soft); }
.duovia-ai-note--hero { color: inherit; opacity: .8; max-width: 760px; }
.duovia-ai-method { margin-top: 36px; }
.duovia-ai-method details, .enterprise-page .faq-list details { border-top: 1px solid var(--line, #d9d4c4); padding: 18px 0; }
.duovia-ai-method summary, .enterprise-page .faq-list summary { cursor: pointer; font-weight: 650; }
.duovia-ai-method .check-list { margin-top: 20px; }
.enterprise-page .faq-list details p { max-width: 850px; line-height: 1.7; }
.duovia-ai-page .technology-visual { min-width: 0; max-width: 100%; }
@media (max-width: 680px) {
  .duovia-ai-grid, .duovia-ai-mapping > ul { grid-template-columns: 1fr; }
  .duovia-ai-technology__copy { padding: 22px; }
  .duovia-ai-lightbox { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); }
  .duovia-ai-lightbox__bar { gap: 8px; padding: 10px 12px; }
  .duovia-ai-lightbox__bar > div { gap: 8px; }
  .duovia-ai-lightbox__canvas { max-height: calc(100dvh - 90px); }
  .duovia-ai-lightbox__canvas:not(.is-full-size) img { max-height: calc(100dvh - 90px); }
  .duovia-ai-mapping .duovia-ai-chips { width: 100%; }
  .duovia-ai-mapping__arrow { display: none; }
}
