/* BMD Vision — public presentation layer. Application logic stays in PHP/JS. */
.vision-public::before { display: none; }
.vision-public h1, .vision-public h2, .vision-public h3 {
    font-family: var(--font-sans); font-weight: 500; text-transform: none;
    line-height: 1.1; letter-spacing: -.045em;
}
.vision-public .section-index { color: var(--accent-ink); font-size: .62rem; letter-spacing: .15em; font-weight: 500; }
.vision-public .site-motion-rail { display: none; }
.vision-public .site-header, .vision-public .site-header.is-scrolled {
    background: color-mix(in srgb, var(--bg) 96%, transparent);
    color: var(--text); border-bottom: 1px solid var(--line); backdrop-filter: blur(16px);
}
.vision-public .site-header__inner { grid-template-columns: minmax(230px,1fr) auto minmax(210px,1fr); gap: 28px; }
.vision-public .brand { gap: 12px; }
.vision-public .brand__mark { width: 38px; height: 38px; }
.vision-public .brand__copy strong { color: var(--text-strong); font-size: 1.24rem; letter-spacing: -.045em; font-weight: 700; }
.vision-public .brand__copy small { color: var(--muted); font-size: .48rem; letter-spacing: .13em; }
.vision-public .main-nav { gap: clamp(18px,2vw,32px); }
.vision-public .main-nav a { padding-block: 33px 31px; font-size: .72rem; letter-spacing: .01em; text-transform: none; font-weight: 500; }
.vision-public .main-nav a::after { height: 2px; bottom: 21px; }
.vision-public .main-nav a[aria-current="page"] { color: var(--text-strong); }
.vision-public .header-control { color: var(--text); }
.vision-public .button { min-height: 52px; padding-inline: 24px; clip-path: none; font-size: .72rem; letter-spacing: .01em; text-transform: none; font-weight: 500; }
.vision-public .button--accent { background: var(--accent); color: var(--accent-contrast); }
.vision-public .button:hover { transform: translateY(-2px); }
.vision-public .page-intro { padding-top: calc(var(--header-height) + 80px); padding-bottom: 64px; }
.vision-public .page-intro h1 { font-size: clamp(2.65rem,5.2vw,5rem); line-height: 1.05; max-width: 870px; white-space: pre-line; margin-top: 24px; }
.vision-public .page-intro > p { font-size: .98rem; max-width: 380px; }
.vision-public .site-footer { background: var(--bg-alt); border-top: 1px solid var(--line); margin-top: 0; }
.vision-public .site-footer__top { padding-block: 65px; grid-template-columns: 1.25fr .7fr .85fr .8fr auto; gap: 30px; }
.vision-public .footer-wordmark { font-family: var(--font-sans); font-size: clamp(1.7rem,2.5vw,2.5rem); letter-spacing: -.075em; font-weight: 700; }
.footer-wordmark__dot { color: var(--accent); }
.vision-public .footer-nav a, .vision-public .footer-nav button { font-size: .73rem; letter-spacing: 0; text-transform: none; font-weight: 400; }
.vision-public .footer-title { font-size: .58rem; font-weight: 500; color: var(--text); }
.vision-public .site-footer__bottom { font-size: .55rem; letter-spacing: .04em; }

/* Archive: generous images and quiet captions. */
.vision-public .category-grid { grid-template-columns: repeat(3,minmax(0,1fr)); border-left: 0; gap: 32px 24px; padding-block: 50px 100px; }
.vision-public .category-card { background: transparent; border: 0; grid-template-rows: auto 110px; }
.vision-public .category-card__media { aspect-ratio: 3 / 2; background: var(--bg-alt); }
.vision-public .category-card img, .vision-public .category-card:hover img { filter: none; }
.vision-public .category-card__body { padding-inline: 0; }
.vision-public .category-card__title strong { font-size: clamp(1.15rem,1.7vw,1.6rem); font-weight: 500; text-transform: none; line-height: 1.25; }
.vision-public .project-grid { gap: 28px 22px; border: 0; }
.vision-public .project-card { background: transparent; border: 0; }
.vision-public .project-card__meta, .vision-public .project-card__body { padding-inline: 0; }
.vision-public .project-card__meta strong { font-weight: 500; text-transform: none; line-height: 1.3; }
.vision-public .project-card img { filter: none; }
.vision-public .gallery-toolbar { padding-block: 20px; }
.vision-public .gallery-views a { font-size: .7rem; text-transform: none; letter-spacing: 0; font-weight: 500; }
.vision-public .gallery-views a[aria-current="page"] { border-color: var(--line); box-shadow: inset 0 -2px var(--accent); }

/* Catalogue keeps product photography uncropped, including printed artwork. */
.vision-public .product-families { border: 0; gap: 32px 24px; padding-block: 48px 90px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.vision-public .product-family { border: 0; padding: 0 0 22px; background: transparent; gap: 15px; border-bottom: 1px solid var(--line); }
.vision-public .product-family:hover { padding-inline: 0; background: transparent; transform: none; }
.vision-public .product-family:nth-child(4n+1) { border-left: 0; }
.vision-public .product-family h2 { font-size: 1.55rem; }
.vision-public .product-family p { max-width: 90%; font-size: .85rem; }
.vision-public .product-family > span { font-size: .6rem; color: var(--accent-ink); }
.vision-public .product-family__cover { aspect-ratio: 3 / 2; transition: filter .3s; }
.vision-public .product-family:hover .product-family__cover { filter: brightness(1.08); }
.vision-public .product-family__arrow { border: 0; width: 32px; height: 32px; }
.vision-public .product-family--with-cover > .product-family__arrow { grid-row: 3; align-self: start; }
.vision-public .product-grid { border: 0; gap: 28px 20px; }
.vision-public .product-card { border: 0; background: transparent; }
.vision-public .product-card:hover { background: transparent; }
.vision-public .product-card__copy { padding-inline: 0; }
.vision-public .product-card__title { font-family: var(--font-sans); font-weight: 500; text-transform: none; line-height: 1.3; font-size: 1rem; letter-spacing: -.02em; }
.vision-public .product-card__footer { border-top: 1px solid var(--line); }
.vision-public .product-card__visual { background: var(--bg-alt); }
.vision-public .product-card--recent { border: 1px solid var(--line); }
.vision-public .product-card--recent .product-card__copy { padding-inline: 12px; }
.vision-public .products-cta, .vision-public .about-cta { padding-block: 65px; border-top: 1px solid var(--line); }
.vision-public .products-cta h2 { font-size: clamp(1.8rem,3.3vw,3.2rem); text-transform: none; }
.vision-public .product-detail__identity h1 { font-size: clamp(2rem,3.5vw,3.6rem); line-height: 1.1; letter-spacing: -.04em; text-transform: none; }
.vision-public .product-detail__stage { background: var(--bg-alt); }
.vision-public .product-detail__panel { background: transparent; border-color: var(--line); }
.vision-public .product-detail__price { color: var(--text-strong); }
.vision-public .project-detail__header h1 { font-size: clamp(2rem,4vw,4rem); line-height: 1.12; letter-spacing: -.04em; text-transform: none; }
.vision-public .project-detail__header { grid-template-columns: 1fr; gap: 24px; }
.vision-public .project-detail__actions { justify-content: flex-start; }
.vision-public .project-detail__gallery { gap: 18px; }
.vision-public .project-detail__image { border: 0; background: var(--bg-alt); }
.vision-public .project-detail__image--main { grid-column: 1 / -1; aspect-ratio: 16 / 9; max-height: 760px; }
.vision-public .project-detail__image img { object-fit: contain; }
.vision-public .project-detail__facts { border-left: 0; gap: 20px; }
.vision-public .project-detail__facts div { background: transparent; border-right: 0; padding-inline: 0; }
.vision-public .project-detail__facts dd { margin-left: 0; font-family: var(--font-sans); text-transform: none; font-size: 1.2rem; font-weight: 500; }
.vision-public .project-detail__related-grid { gap: 22px; }
.vision-public .project-detail__related-grid a { background: transparent; border: 0; }
.vision-public .project-detail__related-grid strong { text-transform: none; font-family: var(--font-sans); font-weight: 500; line-height: 1.3; }
.vision-public .project-detail__story h2, .vision-public .project-detail__cta h2 { text-transform: none; line-height: 1.15; }

/* Story and contact use the same editorial rhythm. */
.vision-public .about-overview { padding-block: 70px; }
.vision-story-image { width: min(100%,var(--content-width)); margin: 50px auto 0; padding-inline: var(--page-gutter); }
.vision-story-image > a { display: block; background: var(--bg-alt); }
.vision-story-image img { width: 100%; height: clamp(260px,45vw,620px); object-fit: contain; }
.vision-story-image figcaption { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-top: 18px; color: var(--muted); font-size: .65rem; }
.vision-story-image figcaption > span { color: var(--accent-ink); font-size: .6rem; letter-spacing: .12em; }
.vision-public .about-overview__copy h2 { font-size: clamp(1.9rem,3.2vw,3.3rem); line-height: 1.15; }
.vision-public .about-facts dd { font-family: var(--font-sans); font-size: 1.2rem; font-weight: 500; text-transform: none; }
.vision-public .about-process li { padding-block: 32px; }
.vision-public .contact-channel { background: transparent; }
.vision-public .contact-channel > span { border-radius: 50%; width: 42px; height: 42px; }
.vision-public .contact-guide { background: var(--bg-alt); border: 1px solid var(--line); padding: 32px; align-self: start; }
.vision-public .contact-guide h2 { font-size: 1.9rem; }
.vision-public .contact-form input, .vision-public .contact-form select, .vision-public .contact-form textarea { background: var(--surface); padding-inline: 14px; }
.vision-public .contact-form label { text-transform: none; letter-spacing: .02em; font-size: .78rem; font-weight: 400; }
.vision-public .contact-form select option { background: var(--surface); }
.vision-public .search-panel, .vision-public .mobile-menu { background: var(--bg); }
.vision-public .cookie-banner { width: min(680px,calc(100% - 32px)); padding: 24px; gap: 24px; box-shadow: 0 12px 70px #0004; }
.vision-public .cookie-banner h2 { font-size: 1.7rem; margin-top: 10px; }
.vision-public .cookie-banner p { font-size: .78rem; margin-top: 12px; }
.vision-public .cookie-banner__copy > a { font-size: .6rem; }

@media (max-width: 1120px) {
    .vision-public .site-header__inner { grid-template-columns: 1fr auto; }
    .vision-public .main-nav { display: none; }
    .vision-public .menu-toggle { display: grid; }
    .vision-public .site-footer__top { grid-template-columns: 1fr 1fr 1fr; }
}
@media (max-width: 760px) {
    .vision-public { --header-height: 74px; }
    .vision-public .site-header__inner { gap: 12px; }
    .vision-public .brand__mark { width: 30px; height: 30px; }
    .vision-public .brand { gap: 9px; }
    .vision-public .brand__copy strong { font-size: 1.05rem; }
    .vision-public .brand__copy { display: grid; }
    .vision-public .brand__copy small { font-size: .4rem; }
    .vision-public .header-actions { gap: 3px; }
    .vision-public .header-control { width: 34px; height: 40px; }
    .vision-public .header-control--account > span { display: none; }
    .vision-public .page-intro { padding-top: calc(var(--header-height) + 48px); padding-bottom: 40px; grid-template-columns: 1fr; gap: 24px; }
    .vision-public .page-intro h1 { font-size: clamp(2.45rem,9vw,3.6rem); margin-top: 18px; }
    .vision-public .category-grid, .vision-public .product-families { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 14px; padding-block: 35px 60px; }
    .vision-public .product-family h2 { font-size: 1.2rem; }
    .vision-public .product-family p { font-size: .76rem; max-width: 100%; }
    .vision-public .product-family--with-cover > .product-family__arrow { grid-row: 4; }
    .vision-public .category-card__title strong { font-size: 1.1rem; }
    .vision-public .product-grid { gap: 24px 12px; }
    .vision-public .product-card__title { font-size: .86rem; }
    .vision-public .site-footer__top { grid-template-columns: 1fr 1fr; gap: 35px 24px; padding-block: 45px; }
    .vision-public .site-footer__top > div:first-child { grid-column: 1 / -1; }
    .vision-public .site-footer__bottom { flex-wrap: wrap; padding-block: 20px; gap: 15px; }
    .vision-public .contact-guide { padding: 24px; }
    .vision-public .project-detail__image--main { aspect-ratio: 16 / 9; }
    .vision-public .cookie-banner { grid-template-columns: 1fr; gap: 16px; padding: 20px; max-height: 80svh; overflow-y: auto; }
    .vision-public .cookie-banner__actions { gap: 8px; }
}
@media (max-width: 390px) {
    .vision-public .brand__copy small { display: none; }
    .vision-public .brand__copy strong { font-size: .95rem; }
    .vision-public .brand__mark { width: 26px; height: 26px; }
    .vision-public .header-control { width: 30px; }
    .vision-public .header-actions { gap: 0; }
    .vision-public .menu-toggle { width: 32px; margin-left: 2px; }
    .vision-public .site-header__inner { gap: 6px; }
}
@media (prefers-reduced-motion: reduce) {
    .vision-public *, .vision-public *::before, .vision-public *::after { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
