/* Website responsiveness. Deliberately scoped outside invitation artwork and WP admin. */
.nvi-site, .nvi-gallery-studio { min-width:0; max-width:100%; overflow-x:clip; }
.nvi-site *, .nvi-gallery-studio * { box-sizing:border-box; }
.nvi-site :is(main,section,article,form,fieldset), .nvi-gallery-studio :is(article,section,label) { min-width:0; }
.nvi-site :is(img,video,iframe), .nvi-gallery-studio img { max-width:100%; }
.nvi-site :is(input,select,textarea), .nvi-gallery-studio :is(input,select) { min-width:0; max-width:100%; }
.nvi-site :is(button,a), .nvi-gallery-studio :is(button,a) { touch-action:manipulation; }
.nvi-site :is(.nvi-site-header,.nvi-attari-header) { isolation:isolate; }
.nvi-site :is(.nvi-site-nav,.nvi-attari-nav) { gap:clamp(12px,1.5vw,26px); }
.nvi-site :is(.nvi-site-nav,.nvi-attari-nav) > * { flex-shrink:0; }
.nvi-site .nvi-nav-submenu { max-width:calc(100vw - 32px); }
.nvi-site :is(.nvi-site-header__cta,.nvi-attari-order) { flex-shrink:0; white-space:normal; text-align:center; }
.nvi-site :is(.nvi-service-hero,.nvi-contact-hero,.nvi-mc-hero,.nvi-inner-hero) { min-height:min(780px,calc(100svh - 86px)); }
.nvi-site :is(.nvi-mc-form-grid,.nvi-contact-form-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
.nvi-site :is(.nvi-mc-form-grid,.nvi-contact-form-grid) > * { min-width:0; }
.nvi-gallery-studio .nvi-portfolio-card .nvi-collection-actions { flex-wrap:wrap; }
.nvi-gallery-studio .nvi-portfolio-card .nvi-collection-actions a { min-height:44px; display:inline-flex; align-items:center; }
.nvi-gallery-studio .nvi-collection-toolbar > * { min-width:0; }
@media(min-width:768px) and (max-width:1024px) {
  :root { --nvi-web-logo:36px; --nvi-web-hero:52px; --nvi-web-section:32px; --nvi-web-description:20px; --nvi-web-gutter:32px; --nvi-web-space:72px; --nvi-web-catalog-top:88px; --nvi-web-catalog-gutter:32px; }
  .nvi-gallery-studio .nvi-collection-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nvi-gallery-hero { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
}
@media(max-width:1024px) {
  body .nvi-site :is(.nvi-site-header,.nvi-attari-header) { min-height:72px; gap:12px; }
  .nvi-site :is(.nvi-menu-toggle,.nvi-attari-menu) { display:block; min-width:44px; min-height:44px; }
  .nvi-site :is(.nvi-site-nav,.nvi-attari-nav) { position:absolute; inset:100% 0 auto; display:none; flex-direction:column; align-items:stretch; width:100%; padding:20px var(--nvi-web-gutter,24px); max-height:calc(100vh - 110px); max-height:calc(100dvh - 110px); overflow:auto; background:#171b20; color:white; z-index:100; box-shadow:0 12px 20px #0002; }
  .nvi-site :is(.nvi-site-nav,.nvi-attari-nav).is-open { display:flex; opacity:1; visibility:visible; pointer-events:auto; transform:none; }
  .nvi-site :is(.nvi-site-nav,.nvi-attari-nav) :is(a,button) { min-height:44px; display:flex; align-items:center; color:inherit; }
  .nvi-site .nvi-nav-submenu { position:static; width:100%; max-width:100%; box-shadow:none; background:transparent; padding:8px 12px; }
  .nvi-site .nvi-nav-submenu a { white-space:normal; }
  body .nvi-site :is(.nvi-service-hero,.nvi-contact-hero,.nvi-mc-hero,.nvi-inner-hero) { min-height:0; padding-block:var(--nvi-web-space,72px); }
}
@media(max-width:767px) {
  :root { --nvi-web-gutter:20px; --nvi-web-space:56px; --nvi-web-catalog-top:64px; --nvi-web-button:14px; --nvi-web-footer:13px; }
  body .nvi-site :is(.nvi-attari-about,.nvi-service-about,.nvi-mc-about) { padding-inline:var(--nvi-web-gutter); }
  .nvi-site :is(.nvi-site-header,.nvi-attari-header) { flex-wrap:wrap; }
  .nvi-site :is(.nvi-attari-brand,.nvi-site-brand) { flex:1 1 50%; }
  .nvi-site :is(.nvi-attari-brand img,.nvi-site-brand img) { max-width:100%; object-fit:contain; }
  .nvi-site :is(.nvi-site-header__cta,.nvi-attari-order) { max-width:100%; }
  .nvi-site :is(input,select,textarea) { font-size:16px; }
  .nvi-site :is(button,input[type=submit],.nvi-button,.nvi-mc-button) { min-height:44px; }
  .nvi-site :is(.nvi-mc-form-grid,.nvi-contact-form-grid) { grid-template-columns:minmax(0,1fr); }
  .nvi-site :is(.nvi-mc-subnav__links,.nvi-gallery-collection-tabs) { max-width:100%; }
  .nvi-site :is(.nvi-mc-subnav__links,.nvi-mc-hero-actions) { flex-wrap:wrap; }
  .nvi-gallery-studio .nvi-collection-toolbar { grid-template-columns:minmax(0,1fr); }
  .nvi-gallery-studio .nvi-collection-toolbar > * { grid-column:1; }
  .nvi-gallery-studio .nvi-gallery-hero__art { max-width:100%; overflow:clip; }
  .nvi-site [role=dialog] { max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px); overflow:auto; }
}
@media(max-width:374px) {
  .nvi-gallery-studio .nvi-portfolio-grid { grid-template-columns:minmax(0,1fr); }
  .nvi-gallery-studio .nvi-gallery-stats { flex-wrap:wrap; }
  .nvi-site :is(.nvi-attari-brand,.nvi-site-brand) { font-size:28px; }
}
@media(hover:hover) and (pointer:fine) {
  .nvi-gallery-studio .nvi-portfolio-card { transition:box-shadow .2s ease; }
}

/* v1.16.3: remove the Heritage promotion, including previously saved widgets. */
[data-nvi-popup],.nvi-attari-popup { display:none!important; }
body.nvi-popup-open { overflow:auto; }
body .nvi-site .nvi-attari-hero { min-height:100svh; height:auto; }
body .nvi-site .nvi-attari-hero h1 { height:auto; font-size:clamp(34px,6vw,88px); }
body .nvi-site .nvi-attari-hero h1 span { white-space:normal; overflow-wrap:break-word; }
.nvi-site :is(.nvi-attari-products,.nvi-portfolio-grid) { grid-template-columns:repeat(3,minmax(0,1fr)); }
.nvi-site :is(.nvi-attari-product,.nvi-portfolio-card) { min-width:0; }
.nvi-site :is(.nvi-attari-tabs,.nvi-filter-tabs,.nvi-demo-filters) { display:flex; flex-wrap:wrap; gap:8px; }
.nvi-site :is(.nvi-attari-tabs,.nvi-filter-tabs,.nvi-demo-filters) button { white-space:normal; min-height:44px; }
@media(max-width:1024px) {
  .nvi-site :is(.nvi-attari-products,.nvi-portfolio-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:767px) {
  body .nvi-site .nvi-attari-hero { padding-top:144px; padding-bottom:72px; }
  body .nvi-site .nvi-attari-hero__actions { width:100%; gap:12px; }
  body .nvi-site .nvi-attari-hero__actions a { min-width:0; max-width:100%; flex:1 1 220px; }
  body .nvi-site .nvi-attari-topbar { font-size:10px; letter-spacing:.04em; padding-inline:12px; }
  .nvi-site :is(.nvi-attari-product__actions,.nvi-collection-actions) { flex-wrap:wrap; }
}
@media(max-width:480px) {
  .nvi-site :is(.nvi-attari-products,.nvi-portfolio-grid) { grid-template-columns:minmax(0,1fr); }
}
@media(max-height:520px) and (orientation:landscape) {
  body .nvi-site .nvi-attari-hero { min-height:100svh; padding-block:120px 56px; }
}
