[hidden]{display:none!important}
.image-placeholder{display:block;width:100%;height:100%;background:#ececef}
.material-placeholder{height:220px;background:#ececef}
#pagination{flex-direction:column;align-items:center;gap:16px}
.pagination-links{display:flex;align-items:center;justify-content:center;gap:8px}
#pagination a,#pagination .page-disabled{display:grid;place-items:center;width:44px;height:44px;border:1px solid #d9dce2;border-radius:3px;color:#25324a;text-decoration:none;font-weight:600}
#pagination a:hover{background:#f1f3f6}
#pagination a:focus-visible{outline:2px solid #172849;outline-offset:3px}
.page-ellipsis{width:24px;text-align:center;color:#656b76}
@media(max-width:479px){.pagination-links{gap:4px}#pagination a,#pagination .page-disabled{width:34px;height:42px}.page-ellipsis{width:16px}}
#pagination a[aria-current=page]{background:#c82030;color:#fff;border-color:#c82030}
#pagination .page-disabled{opacity:.4}
#hero-open:disabled{cursor:default}
.projects.list .image-placeholder{width:100%}
.card-hover dd{overflow-wrap:anywhere}
@media(max-width:767px){.projects.list .image-placeholder{width:100%}.material-placeholder{height:240px}}
.applied-card .material-detail-link{margin-top:0}
.applied-card button:disabled{cursor:default;opacity:.55}
.projects.mosaic{--masonry-columns:3;grid-auto-rows:auto}
.projects.mosaic .project-card{height:auto}
.projects.mosaic .card-open>img{height:auto}
.projects.mosaic .image-placeholder{aspect-ratio:4/3}
.projects.mosaic.masonry-ready{display:block;position:relative}
.projects.mosaic.masonry-ready .project-card{position:absolute}
.projects.mosaic.masonry-ready .card-open>img{height:100%;object-fit:contain}
@media(max-width:767px){.projects.mosaic{--masonry-columns:2}}
@media(max-width:479px){.projects.mosaic{--masonry-columns:1}}
.patterns-page .pattern-card:focus-visible,.pattern-nav a:focus-visible,.pattern-detail-photo:focus-visible{outline:2px solid #152447;outline-offset:4px}
.patterns-page .pattern-thumb .image-placeholder{aspect-ratio:1}
.pattern-detail-photo:disabled{cursor:default}
.pattern-similar-placeholder{width:126px;height:126px;flex:none;background:#ececef}
.back-to-patterns{display:inline-block;margin:24px 0 40px;color:#152447;font-weight:600}
.pattern-detail-info h1{overflow-wrap:anywhere}

/* Review revisions: preserve keyboard focus without pointer-click outlines. */
html[data-pointer-navigation] :is(button,a,input,select,textarea,[tabindex]):focus{outline:none!important}
html:not([data-pointer-navigation]) .search-box:focus-within{outline:2px solid #172849;outline-offset:3px}
.list .card-image-link{display:block;width:350px;flex:none;height:100%}
.list .card-image-link img{display:block;width:100%;height:100%;object-fit:cover}
.list .card-hover{min-width:0;justify-content:center;pointer-events:auto}
.list .card-hover h3 a{text-decoration:none}
.list .card-hover dt{text-align:center}
.card-hover dl>div:last-child,.pattern-specs>div:last-child{border-bottom:0}
.project-info dl,.case-detail .breadcrumb{font-size:16px}
.patterns-page .pattern-controls{padding-top:32px}
.patterns-page .pattern-controls .search-box{margin-bottom:32px}
.patterns-page .pattern-controls .search-box + .filter-line{min-height:0;margin-top:0}
@media(max-width:767px){
 .list .card-image-link{width:36%}
 .list .project-card{height:auto;min-height:230px}
 .list .card-image-link{height:auto}
 .list .card-hover dl>div{flex-wrap:wrap;gap:2px}
 .list .card-hover dt{width:auto;flex-basis:100%}
 .list .card-hover dd{min-width:0}
 #photo-dialog{padding:48px 12px 16px}
 .lightbox-stage{height:calc(100dvh - 280px)}
 .lightbox-thumbnails{grid-template-columns:repeat(12,minmax(48px,1fr));overflow-x:auto;padding:4px;gap:8px}
}

html:has(#photo-dialog[open]),html:has(#photo-dialog[open]) body{overflow:hidden}

.public-float-consult{position:fixed;z-index:110;right:20px;bottom:20px;border-radius:30px;overflow:hidden}
.public-float-consult img{display:block;width:60px;height:89px}
@media(max-width:767px){
 .public-float-consult{right:14px;bottom:calc(16px + env(safe-area-inset-bottom,0px));transition:opacity .3s ease,transform .3s ease}
 .public-float-consult img{width:46px;height:auto}
 .public-float-consult:not(.is-visible){visibility:hidden;opacity:0;transform:translateY(12px);pointer-events:none}
}
@media(prefers-reduced-motion:reduce){.public-float-consult{transition:none}}

.public-mobile-language { display: flex; align-items: center; gap: 5px; margin-right: 8px; color: inherit; font-size: 12px; }

.public-mobile-language select { width: 86px; min-height: 44px; padding: 0 4px; border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; }
.public-mobile-language select option { color: #222; background: #fff; }

.public-mobile-language select:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

.public-translation-notice { position: fixed; bottom: 16px; left: 16px; z-index: 10000; max-width: calc(100vw - 32px); padding: 10px 16px; border: 1px solid #ccc; background: #fff; color: #222; font-size: 14px; line-height: 1.5; text-align: left; }
.public-translation-notice[hidden], .public-translation-notice [hidden] { display: none !important; }
.public-translation-notice img { display: block; width: 176px; height: 16px; max-width: none; }
.public-translation-notice summary { cursor: pointer; }
.public-translation-notice summary:focus-visible, .public-translation-notice a:focus-visible { outline: 2px solid #222; outline-offset: 2px; }
.public-translation-notice details > p { max-width: 320px; max-height: 50dvh; overflow-y: auto; margin: 8px 0 0; font-size: 12px; line-height: 1.7; white-space: normal; }
.public-translation-status { margin: 0; white-space: normal; }
[data-translation-unit][data-translated] br { display: none; }
.home-page .lxn-hero-title[data-translated] { white-space: normal; }
/* keep-all prevents line breaks in machine-translated Japanese/Chinese text, which has no word spaces. */
html:lang(ja) body *, html:lang(zh) body * { word-break: normal !important; }
