/* PMEXO site v2 r4: hero 3D viewer + production photo sections */
.ph-media{min-width:0}
.hv3d .v3d-stage{aspect-ratio:4/3;max-height:none}
.hv3d .v3d-lbl{position:absolute;left:12px;top:12px;font-family:var(--f-m);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text);background:rgba(255,253,249,.85);border:1px solid var(--rule);padding:4px 8px;pointer-events:none;z-index:2}
.hv3d .v3d-hint{position:absolute;right:12px;bottom:10px;font-size:.66rem;pointer-events:none;z-index:2;background:rgba(255,253,249,.7);padding:2px 6px}
.hv3d .v3d-load{bottom:auto;top:50%;transform:translate(-50%,-50%);background:var(--white);color:var(--text);border-color:var(--rule-2)}
.hv3d .v3d-load:active{transform:translate(-50%,-50%)}
.hv3d .v3d-bar{margin:10px 0 0}
.hv3d .v3d-tools{width:100%}
.hv3d .v3d-tools button{flex:1 1 auto;padding:0 12px;min-height:40px;font-size:.7rem}
.hv3d .v3d-note{font-size:.78rem;color:var(--muted);margin:8px 0 0;line-height:1.4}
.ph-thumbs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.ph-thumbs figure{margin:0;min-width:0}
.ph-thumbs img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:var(--paper-3)}
.ph-thumbs figcaption{font-size:.76rem;color:var(--muted);margin-top:6px;line-height:1.35}
@media (max-width:959px){.prod-hero .hero-grid .ph-media{order:-1}}
@media (max-width:640px){.hv3d .v3d-tools button{padding:0 6px;font-size:.66rem;letter-spacing:.03em}.ph-thumbs{gap:8px}.ph-thumbs figcaption{font-size:.72rem}}
.prodsec .gallery.wide{grid-template-columns:repeat(2,1fr)}
@media (min-width:900px){.prodsec .gallery.wide{grid-template-columns:repeat(4,1fr)}}
.prodsec .gallery figure > img{aspect-ratio:4/3}
.prodstrip .gallery.wide{grid-template-columns:repeat(2,1fr)}
@media (min-width:760px){.prodstrip .gallery.wide{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1100px){.prodstrip .gallery.wide{grid-template-columns:repeat(6,1fr)}}
.ph-thumbs figure.wide img{object-fit:contain;background:#fff}
.hv3d .v3d-tools button[data-opt=preset]{text-transform:none;letter-spacing:.02em}
@media (max-width:959px){.prod-hero .ph-thumbs{display:none}.prod-hero .hero-grid{gap:24px}}
.prodsec .fineprint,.prodstrip .fineprint{margin-top:1.1em}
/* r5: home hero = copy + 3D showcase (light panel on the dark hero; neutral controls, the CTA stays the only orange) */
.home-hero.hh3d{min-height:0;display:block}
.home-hero.hh3d .hh3-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:center;padding-top:clamp(28px,4.5vw,72px);padding-bottom:clamp(36px,4.5vw,72px)}
.home-hero.hh3d .hh-copy{max-width:none;min-width:0}
.home-hero.hh3d h1{font-size:clamp(2.1rem,1.15rem + 2.7vw,3.9rem);max-width:17ch;line-height:.98}
.home-hero.hh3d .lead{max-width:50ch}
.hh-show{min-width:0}
.hs3d{background:var(--paper);color:var(--text);padding:10px;border:1px solid var(--ink-line);box-shadow:0 24px 60px -30px rgba(0,0,0,.6)}
.hs3d .v3d-stage{background:linear-gradient(180deg,#fbf9f5,#efebe4)}
.hs-switch{display:flex;flex-wrap:wrap;border:1px solid var(--rule-2);margin-top:10px}
.hs-switch button{flex:1 1 auto;font:inherit;font-family:var(--f-m);font-size:.72rem;letter-spacing:.02em;min-height:42px;padding:0 10px;border:0;border-right:1px solid var(--rule-2);background:transparent;color:var(--text);cursor:pointer;transition:background .25s,color .25s;white-space:nowrap}
.hs-switch button:last-child{border-right:0}
.hs-switch button:hover{background:var(--white)}
.hs-switch button[aria-pressed=true]{background:var(--ink);color:var(--on-ink)}
.hs-switch button:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}
.hs-meta{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;margin:10px 2px 0;font-size:.95rem}
.hs-name{font-weight:650;letter-spacing:-.005em}
.hs-link{color:var(--text);font-weight:600;font-size:.88rem;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rule-2)}
.hs-link:hover{text-decoration-color:currentColor}
.hs3d .v3d-note{margin:6px 2px 2px}
@media (min-width:960px){.home-hero.hh3d .hh3-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:clamp(32px,4vw,64px)}}
@media (max-width:959px){.home-hero.hh3d .hh-show{order:-1}}
@media (max-width:640px){.hs3d{padding:8px;margin:0 calc(var(--gut) * -0.5)}.hs-switch{border-bottom:0}.hs-switch button:nth-child(3){border-right:0}.hs-switch button{flex:1 1 30%;border-bottom:1px solid var(--rule-2);font-size:.68rem;padding:0 6px}.hs-meta{font-size:.9rem}}
/* r5: element cards = 3D illustration with the real photo as an inset (stacked under the illustration on phones) */
.navcard .ci.ci3d{background:linear-gradient(180deg,#faf8f4,#ebe6dd)}
.navcard .ci.ci3d::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:32px 32px;opacity:.3}
.navcard .ci3d img.c3d{position:relative;width:100%;aspect-ratio:4/3;object-fit:contain;padding:4% 24% 12% 2%}
.navcard .ci3d:not(:has(.cph)) img.c3d{padding:6% 4% 12%}
.navcard .ci3d .cph{position:absolute;right:10px;bottom:10px;width:31%;border:3px solid var(--white);box-shadow:0 6px 18px -8px rgba(0,0,0,.45);background:var(--paper-3);line-height:0;z-index:1}
.navcard .ci3d .cph img{aspect-ratio:4/3;object-fit:cover}
a.navcard:hover .ci3d img{transform:none}
a.navcard:hover .ci3d img.c3d{transform:scale(1.03)}
.navcard .ci3d .t3d{position:absolute;right:8px;top:8px;font-family:var(--f-m);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:rgba(255,253,249,.85);border:1px solid var(--rule);padding:3px 6px;line-height:1.2}
@media (max-width:639px){
  .cards.kfp .navcard .ci3d img.c3d,.cards .navcard .ci3d img.c3d{aspect-ratio:4/3;padding:2% 2% 12%}
  .navcard .ci3d .cph{position:static;display:block;width:100%;border:0;border-top:1px solid var(--rule);box-shadow:none}
  .cards.kfp .navcard .ci3d .cph img,.cards .navcard .ci3d .cph img{aspect-ratio:4/3}
  .navcard .ci3d .t3d{right:auto;left:4px;top:auto;bottom:4px;font-size:.5rem;padding:1px 3px;letter-spacing:.03em}
  .navcard .ci3d:has(.cph) .t3d{bottom:calc(50% + 4px)}
}
.ph-thumbs figure.wide img{aspect-ratio:auto;height:auto;background:transparent}
/* r5: GS "Where to measure" drawn illustrations: never crop (natural aspect), two up from tablet */
.gallery.wide.illus{grid-template-columns:1fr}
@media (min-width:760px){.gallery.wide.illus{grid-template-columns:repeat(2,1fr)}}
.gallery.illus figure > img{aspect-ratio:auto;height:auto;object-fit:contain;background:transparent}
