/* Shared editorial treatment for Union Project interior pages. */
.up-inner { background: #f2f3ef !important; }
.up-inner #main { padding-top: 0; }
.lumera-home.up-inner .site-header .nav-link, .lumera-home.up-inner .site-header .lang-btn, .lumera-home.up-inner .burger { color:#252b28; }
.up-inner .nav-item:first-child { display:block; }
.up-inner .site-header, .up-inner .site-header.is-scrolled { color: #252b28; }
.up-inner .brand-logo { filter: none; }
.up-inner .nav-link, .up-inner .lang-btn, .up-inner .lang-btn.is-active { color: #252b28; }
.up-inner .header-phone { display: none !important; }
.up-inner .lang-btn.is-active { border-color: #252b28; }
.up-inner .ip-wrap { width: min(90%, 1480px); margin-inline: auto; }
.up-inner .ip-hero { padding:clamp(80px,10vw,150px) 0 72px; background:radial-gradient(ellipse at 78% 12%,#e2e5dc 0,#f2f3ef 55%); }
.up-inner .ip-hero-inner { display: flex; align-items: end; justify-content: space-between; gap: 32px; }
.up-inner .ip-hero h1 { max-width: 1050px; margin: 0; font-size: clamp(52px, 9vw, 132px); line-height: .98; letter-spacing: -.075em; }
.up-inner .ip-hero p { max-width: 620px; margin: 28px 0 0; color: #56605a; font-size: clamp(17px, 1.6vw, 21px); }
.up-inner .ip-hero h1 { text-wrap:balance; }
.up-inner .ip-index { padding-bottom: 10px; font-size: 13px; letter-spacing: .12em; color: #737d6c; }
.up-inner .ip-section { padding: clamp(58px, 8vw, 112px) 0; }
.up-inner .ip-section-soft { background: #e0e4da; }
.up-inner .ip-heading { max-width: 820px; margin: 0 0 42px; font-size: clamp(36px, 5vw, 68px); line-height: 1.08; }
.up-inner .ip-glass { background: rgba(255,255,255,.64); border: 1px solid rgba(255,255,255,.82); border-radius: 28px; box-shadow: 0 18px 55px rgba(29,43,34,.07); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.up-inner .about-grid { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(220px,.7fr); gap: clamp(35px,8vw,130px); align-items: center; }
.up-inner .about-body { color: #4d5650; font-size: clamp(16px,1.25vw,19px); line-height: 1.8; }
.up-inner .about-body p + p { margin-top: 20px; }
.up-inner .about-visual { padding: 32px; }
.up-inner .about-visual svg { width: 100%; max-height: 430px; }
.up-inner .av-grid line,.up-inner .av-line line { stroke: #a4ae98; stroke-width: 1; fill: none; }
.up-inner .av-grid .faint { opacity: .3; }.up-inner .about-visual rect { fill: none; stroke: #66735f; stroke-width: 1.5; }
.up-inner .av-fill { fill: #cdd5c3 !important; stroke: none !important; }.up-inner .av-fill-2 { fill: #bac5ad !important; stroke: none !important; }.up-inner .av-dot { fill: #836a53; }
.up-inner .principles-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.up-inner .principle-card { min-height: 190px; padding: 28px; display:flex; flex-direction:column; justify-content:space-between; background:rgba(255,255,255,.55); border:1px solid #fff; border-radius:24px; }
.up-inner .principle-num,.up-inner .service-num { color:#5f685e; font-size:12px; letter-spacing:.12em; }
.up-inner .principle-card h3 { margin:20px 0 0; font-size:clamp(25px,3vw,38px); }
.up-inner .services-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.up-inner .service-block { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(140px,.8fr); gap:20px; align-items:center; padding:clamp(23px,3vw,42px); background:rgba(255,255,255,.66); border:1px solid #fff; border-radius:26px; box-shadow:0 14px 40px #1d2b220a; }
.up-inner .service-block.wide { grid-column:1/-1; }
.up-inner .service-text h3, .up-inner .service-text h2 { margin:16px 0 12px; font-size:clamp(27px,3vw,40px); }
.up-inner .service-text p { color:#56605a; }
.up-inner .service-list { margin:24px 0 0; padding:0; list-style:none; color:#515b54; }
.up-inner .service-list li { padding:10px 0 10px 18px; border-top:1px solid #dce2d5; position:relative; }
.up-inner .service-list li::before { content:'—'; position:absolute; left:0; color:#836a53; }
.up-inner .service-visual { padding:14px; border-radius:20px; background:#e0e4da; }
.up-inner .service-visual svg,.up-inner .private-block-house { width:100%; }
.up-inner .service-visual rect,.up-inner .service-visual line,.up-inner .service-visual polygon { fill:none; stroke:#73806f; stroke-width:2; }
.up-inner .service-visual .sv-fill,.up-inner .service-visual .sv-fill-2,.up-inner .service-visual .sv-slab { fill:#cdd5c3; stroke:none; }
.up-inner .private-block { padding:clamp(28px,6vw,76px); background:linear-gradient(135deg,#dfe4d7,#f2f3ef); border-radius:32px; }
.up-inner .private-block-inner { max-width:850px; margin:auto; text-align:center; }
.up-inner .private-block-house { max-width:200px; margin:0 auto 24px; }
.up-inner .private-block-inner h2 { font-size:clamp(36px,5vw,66px); }
.up-inner .projects-filter { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:30px; }
.up-inner .filter-btn { min-height:44px; padding:10px 18px; border:1px solid #ced5c8; border-radius:999px; background:transparent; cursor:pointer; }
.up-inner .filter-btn.is-active,.up-inner .filter-btn:hover { background:#252b28; border-color:#252b28; color:#fff; }
.up-inner .projects-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.up-inner .project-card { overflow:hidden; border:1px solid #fff; border-radius:24px; background:rgba(255,255,255,.7); box-shadow:0 16px 45px #1d2b220b; }
.up-inner .project-thumb { aspect-ratio:4/3; background:linear-gradient(145deg,#e2e7dc,#cbd5bf 58%,#e9eee3); position:relative; overflow:hidden; }
.up-inner .project-thumb::after { content:'UNION PROJECT'; position:absolute; right:17px; bottom:15px; font-size:10px; letter-spacing:.14em; color:#626f5b; }
.up-inner .project-thumb-img { width:100%; height:100%; object-fit:cover; }
.up-inner .project-body { padding:23px; }
.up-inner .projects-grid:has(> .project-card:only-child) { grid-template-columns:1fr; max-width:1120px; margin-inline:auto; }
.up-inner .projects-grid > .project-card:only-child { display:grid; grid-template-columns:1fr 1fr; }
.up-inner .projects-grid > .project-card:only-child .project-thumb { aspect-ratio:auto; min-height:450px; }
.up-inner .project-thumb::after { content:none; }
.up-inner .concept-details { border-top:1px solid #d1d9ca; margin:20px 0; }
.up-inner .concept-details summary { min-height:48px; display:flex; align-items:center; cursor:pointer; font-weight:500; }
.up-inner .concept-details summary::after { content:'+'; margin-left:auto; font-size:22px; }
.up-inner .concept-details[open] summary::after { content:'−'; }
.up-inner .concept-stages { padding-left:22px; color:#56605a; font-size:14px; }
.up-inner .concept-stages li { padding:8px 0; }
.up-inner .inquiry-preview { display:grid; gap:12px; margin-top:24px; padding-top:24px; border-top:1px solid #d1d9ca; scroll-margin-top:110px; }
.up-inner .inquiry-preview[hidden] { display:none; }
.up-inner .inquiry-preview textarea { width:100%; padding:16px; border:1px solid #c3cebc; border-radius:14px; font:inherit; resize:vertical; background:#f5f7f0; }
.up-inner .form-copy { justify-self:start; min-height:48px; padding:12px 22px; border:1px solid #252b28; border-radius:999px; background:#252b28; color:white; cursor:pointer; }
.up-inner .project-cat { display:inline-flex; padding:7px 11px; border:1px solid #d3d8ce; border-radius:99px; color:#626c60; font-size:11px; }
.up-inner .project-title { margin:17px 0 6px; font-size:27px; }
.up-inner .project-meta { color:#5f685e; font-size:13px; }.up-inner .project-desc { color:#56605a; }
.up-inner .project-demo { display:inline-flex; align-items:center; min-height:30px; margin:0 8px 8px 0; padding:5px 10px; border:1px solid #d3d8ce; border-radius:99px; color:#626c60; font-size:11px; letter-spacing:.04em; }
.up-inner .project-scope { margin-top:16px; padding-top:14px; border-top:1px solid #dce2d5; color:#515b54; }
.up-inner .project-stages { display:grid; gap:9px; margin:16px 0 0; padding:0; list-style:none; }
.up-inner .project-stage { display:grid; grid-template-columns:30px 1fr; gap:10px; align-items:start; padding:11px 12px; border-radius:13px; background:#eff3e8; color:#515b54; font-size:14px; }
.up-inner .project-stage-number { color:#836a53; font-size:11px; letter-spacing:.08em; }
.up-inner button.project-details, .up-inner .project-details { display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin-top:16px; padding:10px 17px; border:1px solid #252b28; border-radius:99px; background:#252b28; color:#fff; font:inherit; text-decoration:none; cursor:pointer; }
.up-inner button.project-details:hover, .up-inner .project-details:hover { background:#e0e4da; color:#252b28; }
.up-inner .contact-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; align-items:start; width:min(90%,1480px); margin-inline:auto; }
.up-inner .contact-info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.up-inner .info-card { min-height:125px; display:flex; gap:15px; padding:22px; border-radius:22px; background:rgba(255,255,255,.66); border:1px solid #fff; }
.up-inner .info-icon { width:10px; height:10px; margin-top:7px; flex:0 0 10px; border-radius:50%; background:#836a53; }
.up-inner .info-label { display:block; margin-bottom:8px; color:#5f685e; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.up-inner .info-value { overflow-wrap:anywhere; font-size:16px; }
.up-inner .map-wrap { margin-top:15px; overflow:hidden; border-radius:24px; border:1px solid #fff; }
.up-inner .map-wrap iframe { display:block; width:100%; height:300px; border:0; filter:grayscale(.8) sepia(.12); }
.up-inner .contact-form-wrap { padding:clamp(22px,3vw,38px); }
.up-inner .form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.up-inner .form-field { min-width:0; }.up-inner .form-field.span-2 { grid-column:1/-1; }
.up-inner .form-field label { display:block; margin-bottom:8px; font-size:13px; color:#5b564f; }
.up-inner .form-field input,.up-inner .form-field textarea { width:100%; min-height:50px; padding:13px 15px; border:1px solid #ddd5ca; border-radius:12px; background:#fbfaf8; color:#252b28; font:inherit; }
.up-inner .form-field textarea { min-height:140px; resize:vertical; }.up-inner .form-field input:focus,.up-inner .form-field textarea:focus { outline:2px solid #836a53; outline-offset:2px; }
.up-inner .field-error { display:block; min-height:1em; color:#a33326; font-size:12px; }.up-inner .has-error input,.up-inner .has-error textarea { border-color:#a33326; }
.up-inner .form-submit { margin-top:10px; min-height:54px; padding:12px 23px; border:0; border-radius:999px; background:#252b28; color:#fff; font:inherit; cursor:pointer; }
.up-inner .form-status { margin-top:12px; color:#56605a; }.up-inner .form-handoff { margin-top:12px; color:#606c5d; font-size:13px; }
.up-inner .cta { padding:clamp(55px,8vw,110px) 5%; }.up-inner .cta-inner { max-width:930px; margin:auto; padding:clamp(30px,6vw,72px); text-align:center; border:1px solid #fff; border-radius:32px; background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(224,228,218,.84)); box-shadow:0 18px 55px #1d2b220c; backdrop-filter:blur(12px); }
.up-inner .cta-inner h2 { font-size:clamp(36px,5vw,66px); }.up-inner .cta-inner p { margin:16px auto 26px; max-width:640px; color:#56605a; }
.up-inner .ip-cta-link { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:12px 24px; border-radius:99px; background:#252b28; color:#fff !important; }
.up-inner .lx-footer { margin-top:0; }
@media(max-width:900px) { .up-inner .projects-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.up-inner .services-grid { grid-template-columns:1fr; }.up-inner .service-block.wide { grid-column:auto; }.up-inner .contact-layout { grid-template-columns:1fr; } }
@media(max-width:600px) { .up-inner .ip-wrap { width:89%; }.up-inner .ip-hero { padding:132px 0 48px; }.up-inner .ip-hero-inner { align-items:start; }.up-inner .ip-index { padding-top:10px; }.up-inner .ip-section { padding:58px 0; }.up-inner .about-grid { grid-template-columns:1fr; }.up-inner .about-visual { max-width:280px; margin-inline:auto; }.up-inner .principles-grid { grid-template-columns:1fr; }.up-inner .principle-card { min-height:130px; }.up-inner .service-block { grid-template-columns:1fr; }.up-inner .service-visual { max-width:230px; justify-self:end; }.up-inner .projects-grid { grid-template-columns:1fr; }.up-inner .contact-info-grid { grid-template-columns:1fr; }.up-inner .map-wrap iframe { height:240px; }.up-inner .form-grid { grid-template-columns:1fr; }.up-inner .form-field.span-2 { grid-column:auto; }.up-inner .cta { padding-inline:5.5%; }.up-inner .cta-inner { border-radius:24px; } }
@media(prefers-reduced-motion:reduce) { .up-inner *, .up-inner *::before, .up-inner *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; } }
@media(max-width:600px) {
  .up-inner .ip-hero { padding:64px 0 48px; }
  .up-inner .ip-hero-inner { display:block; position:relative; }
  .up-inner .ip-hero h1 { font-size:clamp(42px,11vw,56px); }
  .up-inner .ip-index { position:absolute; right:0; top:-28px; padding:0; }
  .up-inner .projects-grid > .project-card:only-child { display:block; }
  .up-inner .projects-grid > .project-card:only-child .project-thumb { aspect-ratio:4/3; min-height:0; }
}

/* Portfolio: whole thumbnail opens the photo viewer */
.project-thumb .project-open { position:absolute; inset:0; width:100%; height:100%; border:0; padding:0; background:transparent; cursor:zoom-in; }
.project-thumb .project-open:focus-visible { outline:3px solid #fff; outline-offset:-6px; }
.project-thumb .project-count { position:absolute; left:14px; bottom:14px; padding:5px 10px; border-radius:999px; background:rgba(20,22,20,.72); color:#fff; font-size:12px; letter-spacing:.04em; }
.lightbox { position:fixed; inset:0; z-index:1000; background:#0e0f0e; display:flex; flex-direction:column; }
.lightbox[hidden] { display:none; }
body.lb-open { overflow:hidden; }
.lightbox .lb-bar { display:flex; align-items:center; gap:16px; padding:14px 18px; color:#f2f1ec; }
.lightbox .lb-title { margin:0; flex:1; font-size:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lightbox .lb-counter { font-size:13px; opacity:.75; }
.lightbox .lb-stage { flex:1; margin:0; display:flex; align-items:center; justify-content:center; min-height:0; padding:0 64px 24px; }
.lightbox .lb-img { max-width:100%; max-height:100%; object-fit:contain; }
.lightbox button { background:transparent; border:0; color:#f2f1ec; cursor:pointer; font-size:34px; line-height:1; }
.lightbox .lb-close { font-size:32px; padding:0 6px; }
.lightbox .lb-prev, .lightbox .lb-next { position:absolute; top:50%; transform:translateY(-50%); width:52px; height:72px; font-size:48px; }
.lightbox .lb-prev { left:6px; } .lightbox .lb-next { right:6px; }
.lightbox button:focus-visible { outline:2px solid #f2f1ec; }
@media (max-width:700px) {
  .lightbox .lb-stage { padding:0 0 16px; }
  .lightbox .lb-prev, .lightbox .lb-next { top:auto; bottom:10px; transform:none; background:rgba(0,0,0,.4); border-radius:50%; width:48px; height:48px; font-size:34px; }
}

/* Partners (about page) */
.up-inner .partners-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:16px; }
.up-inner .partner-logo { aspect-ratio:1; display:flex; align-items:center; justify-content:center; padding:18px; background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:20px; }
.up-inner .partner-logo img { width:100%; height:100%; object-fit:contain; filter:grayscale(1); opacity:.85; transition:filter .3s, opacity .3s; }
.up-inner .partner-logo:hover img { filter:none; opacity:1; }
@media(max-width:600px) { .up-inner .partners-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } }
.up-inner .contact-info-grid .info-card:last-child { grid-column:1/-1; }
/* Audit 12.11: every SVG shape in the service illustrations is outline-only (no default black fill). */
.up-inner .service-visual path,.up-inner .service-visual circle,.up-inner .service-visual ellipse,.up-inner .service-visual polyline,
.up-inner .private-block-house path,.up-inner .private-block-house rect,.up-inner .private-block-house line,.up-inner .private-block-house polygon,.up-inner .private-block-house polyline,.up-inner .private-block-house circle { fill:none; stroke:#73806f; stroke-width:2; }
.up-inner .service-visual .sv-dot { fill:#836a53; stroke:none; }
.up-inner .service-visual .sv-seal { fill:#f2f3ef; }
.up-inner .service-visual .sv-grid line { stroke:#c9cfc2; stroke-width:1; }
.up-inner .private-block-house .fill { fill:#cdd5c3; stroke:none; }
/* Audit 12.11: bigger tap targets, no layout jump while the project grid renders. */
.lightbox .lb-close { min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
.up-inner #projectsGrid:empty { min-height:100vh; }
.up-inner .info-value { display:inline-block; padding:10px 0; margin:-10px 0; }
.up-inner .principle-card h3 { overflow-wrap:anywhere; hyphens:auto; font-size:clamp(22px,2.6vw,38px); }
