/* Shared presentation layer; inquiry actions and language routing stay unchanged. */
.ltt-language-switcher {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px;
    border: 1px solid #dfe4ea;
    border-radius: 8px;
    background: #fff;
    letter-spacing: 0;
    vertical-align: middle;
}
.language .ltt-language-link,
.language_phone .ltt-language-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 0 12px;
    border-radius: 5px;
    color: #405267;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0;
    text-decoration: none;
    white-space: nowrap;
}
.language .ltt-language-link.is-current,
.language_phone .ltt-language-link.is-current {
    background: #edf4ff;
    color: #00469a;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 4px;
}
.ltt-language-link:hover {
    background: #f1f5f9;
}
.ltt-language-link:focus-visible {
    outline: 2px solid #005bc6;
    outline-offset: 1px;
}
.inquiry-cart-widget {
    /* Position changes must follow the notice immediately, without sliding through it. */
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
@media (min-width: 1170px) {
    .cd-nav > .language {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 6px;
        height: 44px;
        margin: 3px 24px 4px 0;
        letter-spacing: 0;
    }
    .language .ltt-language-switcher {
        padding: 0;
        border: 0;
    }
    .cd-nav > .language > .social-icon {
        padding: 8px;
    }
    .cd-main-header .cd-logo {
        top: auto;
        /* Align the visible artwork with the menu text, allowing for SVG whitespace. */
        bottom: 12px;
        left: 10px;
        width: 260px;
    }
    .cd-main-header .cd-logo img {
        width: 100%;
        height: auto;
        object-fit: contain;
    }
    .cd-primary-nav {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 12px;
        max-width: 100%;
        padding: 0 24px;
    }
    .cd-primary-nav > li {
        float: none;
        flex: 0 0 auto;
        margin: 0;
    }
    .cd-primary-nav > li > a {
        display: flex;
        align-items: center;
        height: 44px;
        margin: 0;
        padding: 0 10px;
        font-size: 16px;
        line-height: 1.4;
        letter-spacing: .03em;
        white-space: nowrap;
        /* Hover keeps the red text; only an expanded menu gets the inset line. */
        background-image: none;
        box-shadow: none;
    }
    .cd-primary-nav > .has-children > a {
        margin: 0;
        padding-right: 24px !important;
    }
    .cd-primary-nav > .has-children > a::before {
        display: none;
    }
    .cd-primary-nav > .has-children > a::after {
        width: 6px;
        height: 6px;
        right: 10px;
        margin: -3px 0 0;
        border: 0;
        border-right: 1.5px solid currentColor;
        border-bottom: 1.5px solid currentColor;
        background: transparent;
        transform: rotate(45deg);
        transition: transform .15s ease;
    }
    .cd-primary-nav > .has-children > a.selected::after {
        width: 6px;
        transform: rotate(225deg);
    }
    .cd-primary-nav > li > a.selected {
        box-shadow: inset 0 -3px 0 var(--color-primary);
    }
    /* The transformed primary row is the containing block, not the full header. */
    .cd-primary-nav > .has-children > :is(.cd-secondary-nav, .cd-nav-gallery, .cd-nav-icons) {
        top: 100%;
    }
}
@media (min-width: 1170px) and (max-width: 1279px) {
    .cd-primary-nav {
        gap: 8px;
    }
    .cd-primary-nav > li > a {
        padding-left: 8px;
        padding-right: 8px;
        font-size: 15px;
    }
}
@media (max-width: 1169px) {
    .cd-main-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        height: 56px;
        padding: 0 12px;
        transition: background .3s ease, box-shadow .3s ease, transform .3s ease;
    }
    .cd-main-header .cd-logo-phone {
        display: block;
        position: static;
        flex: 1 1 auto;
        min-width: 0;
        max-width: 260px;
        width: auto;
        margin: 0;
    }
    .cd-logo-phone img {
        display: block;
        width: 100%;
        height: 44px;
        max-height: none;
        object-fit: fill;
        object-position: left center;
    }
    .cd-main-header .cd-header-buttons {
        position: static;
        display: flex;
        align-items: center;
        flex: 0 0 auto;
        gap: 6px;
        margin: 0;
    }
    .cd-main-header .cd-header-buttons > li {
        display: block;
        float: none;
    }
    .cd-main-header .language_phone {
        position: static;
        display: block;
        width: auto;
        letter-spacing: 0;
    }
    .language_phone .ltt-language-switcher {
        padding: 0;
        gap: 0;
        border: 0;
    }
    .language_phone .ltt-language-link {
        padding: 0 8px;
    }
    .cd-main-header .cd-nav-trigger {
        box-shadow: none;
    }
}
@media (max-width: 767px) {
    body {
        padding-bottom: calc(var(--ltt-cookie-obstruction, 0px) + env(safe-area-inset-bottom, 0px));
    }
    .inquiry-cart-widget {
        top: auto;
        right: 16px;
        bottom: calc(var(--ltt-cookie-obstruction, 0px) + 16px + env(safe-area-inset-bottom, 0px));
        width: 64px;
        height: 64px;
    }
    .inquiry-cart-widget .text {
        font-size: 12px;
    }
    .btn-add-to-inquiry,
    .inquiry-btn {
        min-height: 44px;
        padding: 10px 14px;
        border-radius: 6px;
    }
    #scroll-to-top {
        bottom: calc(var(--ltt-cookie-obstruction, 0px) + 92px + env(safe-area-inset-bottom, 0px));
    }
}
/* Shared body gutters at every breakpoint; banners and the header stay full width. */
.cd-main-content {
    --ltt-content-gutter: 16px;
}
/* Static inner banners must contain long translated titles at real page zoom. */
@media (max-width: 1169px) {
    body.nav-is-fixed .cd-main-content > [data-paralasic]:not(.lasertek_ads) {
        margin-top: calc(var(--ltt-mobile-header-offset, 56px) + env(safe-area-inset-top, 0px));
    }
    .cd-main-content > [data-paralasic]:not(.lasertek_ads) {
        box-sizing: border-box;
        position: relative;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 8px;
        height: auto;
        min-height: clamp(160px, 33vw, 260px);
        padding: 24px var(--ltt-content-gutter, 16px);
        background-size: cover;
        background-position: center;
    }
    .cd-main-content > [data-paralasic]:not(.lasertek_ads) > :is(h2, h5) {
        position: static;
        width: 100%;
        margin: 0;
        text-align: left;
        white-space: normal;
        overflow-wrap: break-word;
    }
    .cd-main-content > [data-paralasic]:not(.lasertek_ads) > h2 {
        font-size: clamp(22px, 3.5vw, 32px);
        line-height: 1.35;
        text-wrap: balance;
    }
    .cd-main-content > [data-paralasic]:not(.lasertek_ads) > h5 {
        font-size: 14px;
        line-height: 1.5;
    }
}
@media (min-width: 768px) and (max-width: 1169px) {
    /* Leave room for the existing fixed inquiry widget at tablet widths. */
    .cd-main-content > [data-paralasic]:not(.lasertek_ads) > :is(h2, h5) {
        width: calc(100% - 112px);
    }
}
.cd-main-content > :is(.ltt_container_img, .ltt_container) > section {
    box-sizing: border-box;
    padding-left: var(--ltt-content-gutter);
    padding-right: var(--ltt-content-gutter);
}
.cd-main-content > :is(.ltt_container_img, .ltt_container) > section .ltt_box_content_all {
    max-width: min(100%, 1155px);
}
.cd-main-content > :is(.ltt_container_img, .ltt_container) > section > :is(.ltt_box_content_all, .ltt_news_content),
.cd-main-content > :is(.ltt_container_img, .ltt_container) > section > #content > :is(.ltt_box_content_all, .ltt_news_content) {
    width: 100%;
    max-width: 1155px;
    margin-left: auto;
    margin-right: auto;
}
.cd-main-content > :is(.ltt_container_img, .ltt_container) > section > .product_menu {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}
.cd-main-content > :is(.ltt_container_img, .ltt_container) > section > .product_menu > .product_menu_ul {
    width: 100%;
    max-width: 1155px;
    margin-left: auto;
    margin-right: auto;
}
.cd-main-content .product_menu_select_02 {
    max-width: 100%;
}
.cd-main-content > :is(.ltt_container_img, .ltt_container) > section > #breadcrumbs {
    padding-left: 0;
    padding-right: 0;
}
/* Intrinsically wide tables scroll locally on tablets and desktops as well. */
.cd-main-content.ltt-mobile-tables-ready :not(table):has(> .ltt-mobile-table-scroll[data-ltt-table-wrapper]) {
    min-width: 0;
    max-width: min(100%, 1155px);
    overflow: visible;
}
.cd-main-content.ltt-mobile-tables-ready .ltt-mobile-table-scroll[data-ltt-table-wrapper] {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
@media (min-width: 768px) {
    .cd-main-content {
        --ltt-content-gutter: 24px;
    }
    /* Keep informational navigation rows inside the same reading width. */
    .cd-main-content .product_menu_ul:has(> .product_menu_light_service) {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        align-items: stretch;
        gap: 8px;
        width: 100%;
        max-width: 1155px;
        margin-left: auto;
        margin-right: auto;
    }
    .cd-main-content .product_menu_ul:has(> .product_select33.product_menu_light_service) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .cd-main-content .product_menu_ul > .product_menu_light_service {
        min-width: 0;
        width: 100%;
        float: none;
        margin: 0;
    }
}
@media (min-width: 1170px) {
    .cd-main-content {
        --ltt-content-gutter: 32px;
    }
    .cd-main-content > :is(.ltt_container_img, .ltt_container) > section {
        /* Balance the existing 8px red border on the left without removing it. */
        padding-right: calc(var(--ltt-content-gutter) + 8px);
    }
}
/* The legacy 799px menu rule adds 9px outside its 100% width. The mobile
   gutter reset already covers <=767px; bridge only the remaining tablet band. */
@media (min-width: 768px) and (max-width: 799px) {
    .cd-main-content > :is(.ltt_container_img, .ltt_container) > section > .product_menu {
        margin-left: 0;
        margin-right: 0;
    }
}

/* Product-category dropdown cards: equal rows, with every select aligned at the bottom. */
.cd-main-content .product_menu_ul:has(> :is(.product_select25, .product_select33):not(.product_menu_light_service)) {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
    gap: 8px;
    width: 100%;
    max-width: 1155px;
    margin: 10px auto;
}
.cd-main-content .product_menu_ul:has(> .product_select33:not(.product_menu_light_service)) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.cd-main-content .product_menu_ul > :is(.product_select25, .product_select33):not(.product_menu_light_service) {
    display: flex;
    align-items: stretch;
    float: none;
    width: auto;
    min-width: 0;
    height: auto;
    margin: 0;
    overflow: visible;
}
.cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table {
    display: grid;
    grid-template-columns: minmax(48px, 32%) minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    width: 100%;
    min-width: 0;
    padding: 8px;
}
.cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table .product_menu_table_img {
    float: none;
    width: auto;
    min-width: 0;
}
.cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table .product_menu_table_img img {
    display: block;
    width: 100%;
    max-width: 80px;
    height: 64px;
    margin: auto;
    object-fit: contain;
}
.cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table .product_menu_table_select {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    align-self: stretch;
    gap: 6px;
    float: none;
    width: 100%;
    min-width: 0;
    line-height: 1.4;
}
.cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table .product_menu_table_select > .product_select100 {
    float: none;
    width: 100%;
    min-width: 0;
}
.cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table .product_menu_table_select > .typeface_bold_white {
    align-self: center;
    min-height: 2.8em;
    padding: 0;
    font-size: 14px;
    line-height: 1.4;
    overflow-wrap: anywhere;
}
.cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table .product_menu_table_select .product_menu_select {
    width: 100%;
    margin: 0;
}
.cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table .product_menu_table_select .product_menu_select > li {
    display: block;
    width: 100%;
}
.cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table .product_menu_table_select select {
    display: block;
    float: none;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: 44px;
    margin: 0;
    padding: 8px 30px 8px 10px;
    font-size: 14px;
    line-height: 1.4;
}
@media (max-width: 799px) {
    .cd-main-content > :is(.ltt_container_img, .ltt_container) > section:has(> .product_menu > .product_menu_ul > :is(.product_select25, .product_select33):not(.product_menu_light_service)) > h3 {
        overflow-wrap: anywhere;
    }
    .cd-main-content .product_menu_ul:has(> :is(.product_select25, .product_select33):not(.product_menu_light_service)) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
    /* The category image is hidden here by the legacy CSS: remove its grid track. */
    .cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
        padding: 12px;
    }
    .cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table .product_menu_table_select {
        grid-column: 1 / -1;
        width: 100%;
        min-width: 0;
    }
    .cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table .product_menu_table_select > .typeface_bold_white {
        text-align: left;
    }
    .cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table .product_menu_table_select select {
        padding-left: 12px;
        padding-right: 32px;
        font-size: 16px;
        text-align: left;
    }
}
@media (max-width: 499px) {
    .cd-main-content .product_menu_ul:has(> :is(.product_select25, .product_select33):not(.product_menu_light_service)) {
        grid-template-columns: minmax(0, 1fr);
    }
    .cd-main-content .product_menu_ul > li:not(.product_menu_light_service) > .product_menu_table .product_menu_table_select > .typeface_bold_white {
        font-size: 16px;
    }
}

/* Public footer: all links stay available without JavaScript. */
.ltt-site-footer {
    --ltt-footer-gutter: 24px;
    display: flow-root;
    text-align: left;
    letter-spacing: normal;
}
.ltt-site-footer .footer_all {
    float: none;
    display: flow-root;
    background: #f8fafc;
}
.ltt-site-footer .footer_office,
.ltt-site-footer .footer_left_right_all {
    width: calc(100% - var(--ltt-footer-gutter) - var(--ltt-footer-gutter));
    max-width: 1155px;
    margin: 0 auto;
}
.ltt-site-footer .footer_office {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    padding: 32px 0;
}
.ltt-site-footer .footer_office_01 {
    float: none;
    width: auto;
    min-width: 0;
    padding: 0;
    font-size: 16px;
    line-height: 1.5;
}
.ltt-site-footer .footer_office_01 > p {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 700;
}
.ltt-site-footer .footer_office_01 ul {
    margin: 0;
    padding: 8px 0 0;
    border-color: #ccd7e1;
    text-align: left;
}
.ltt-site-footer .footer_office_01 li,
.ltt-site-footer .footer_office_01 li h3 {
    margin: 0;
    padding: 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
}
.ltt-site-footer .footer_office_01 a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 6px 0;
    line-height: 1.5;
    word-break: normal;
    overflow-wrap: anywhere;
}
.ltt-site-footer .footer_office_01 li h3 a { color: #334e68; }
.ltt-site-footer .footer_office_01 a:hover { color: #00469a; text-decoration: underline; }
.ltt-site-footer .ltt-footer-overview { display: none; }
.ltt-site-footer [hidden] { display: none !important; }
.ltt-site-footer .ltt-footer-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    min-height: 52px;
    padding: 12px 0;
    border: 0;
    background: transparent;
    color: #243b53;
    font: 700 17px/1.5 Arial, sans-serif;
    text-align: left;
    cursor: pointer;
}
.ltt-footer-toggle-icon {
    flex: 0 0 8px;
    width: 8px;
    height: 8px;
    margin-right: 4px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
}
.ltt-footer-toggle[aria-expanded="true"] .ltt-footer-toggle-icon { transform: rotate(225deg); }
.ltt-site-footer .footer_left_right {
    float: none;
    padding: 24px 0 calc(24px + var(--ltt-cookie-obstruction, 0px));
    background: #edf1f4;
}
.ltt-site-footer .footer_left_right_all {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 24px;
    align-items: start;
}
.ltt-site-footer .footer_left,
.ltt-site-footer .footer_right {
    float: none;
    width: auto;
    min-width: 0;
    padding: 0;
    text-align: left;
}
.ltt-site-footer .footer_left p,
.ltt-site-footer .footer_right p {
    margin: 0;
    padding: 0;
    font-size: 16px;
    line-height: 1.65;
    text-align: left;
    overflow-wrap: anywhere;
}
.ltt-site-footer .footer_left .ltt-footer-company {
    margin-bottom: 8px;
    color: #243b53;
    font-size: 18px;
    font-weight: 700;
}
.ltt-footer-legal,
.ltt-site-footer .ltt-footer-contact {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0 16px;
}
.ltt-site-footer .footer_right a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: #00469a;
    font-size: 16px;
    line-height: 1.5;
    text-decoration: underline;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
}
.ltt-footer-contact > span { display: inline-flex; flex-wrap: wrap; align-items: center; min-height: 44px; }
@media (min-width: 1170px) {
    .ltt-site-footer { --ltt-footer-gutter: 40px; }
}
@media (min-width: 600px) and (max-width: 999px) {
    .ltt-site-footer .footer_office { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .ltt-site-footer .footer_left_right_all { grid-template-columns: minmax(0, 1fr); }
    .ltt-site-footer .ltt-footer-legal,
    .ltt-site-footer .ltt-footer-contact { justify-content: flex-start; }
    /* Reserve both notice and floating controls, even inside a legacy fixed-height main. */
    .ltt-site-footer .footer_left_right { padding-bottom: calc(120px + var(--ltt-cookie-obstruction, 0px) + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 599px) {
    .ltt-site-footer { --ltt-footer-gutter: 16px; }
    .ltt-site-footer .footer_office { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 16px 0; }
    .ltt-site-footer .footer_office_01 { border-bottom: 1px solid #ccd7e1; }
    .ltt-site-footer .footer_office_01:last-child { border-bottom: 0; }
    .ltt-site-footer .footer_office_01 ul { border: 0; padding: 4px 0 12px; }
    .ltt-site-footer .footer_office_01 .ltt-footer-overview { display: block; }
    .ltt-site-footer .ltt-footer-overview a { color: #00469a; font-weight: 600; }
}
