/* Local project refinements. No remote assets are required. */
html { scroll-behavior: smooth; }
body { overflow-wrap: anywhere; }
img { max-width: 100%; height: auto; }
.site-main { width: 100%; min-width: 0; display: block; }
.site-header { display: contents; }
.navigation-link-anchor,
.navigation-cta-anchor,
.navigation-brand { text-decoration: none; color: inherit; }
.navigation-hamburger,
.navigation-close { border: 0; background: transparent; font: inherit; }
.navigation-hamburger:focus-visible,
.navigation-close:focus-visible,
.navigation-link-anchor:focus-visible,
.navigation-cta-anchor:focus-visible,
.navigation-brand:focus-visible,
.ivoral-footer-legal-link:focus-visible,
.btn:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}
.skip-link {
  position: fixed;
  left: 1rem;
  top: 1rem;
  z-index: 3000;
  padding: .7rem 1rem;
  color: var(--color-on-primary);
  background: var(--color-primary);
  border-radius: var(--border-radius-sm);
  transform: translateY(-200%);
  transition: transform .15s ease;
  text-decoration: none;
}
.skip-link:focus { transform: translateY(0); }
body.menu-open { overflow: hidden; }
.ivoral-footer-legal-nav { display: flex; flex-wrap: wrap; gap: var(--spacing-lg); align-items: center; }
.ivoral-footer-link { cursor: default; }
.ivoral-footer-contact-item { min-width: 0; }
.ivoral-footer-text { overflow-wrap: anywhere; }
.form-input, .form-select, .form-textarea { max-width: 100%; }
.form-textarea { min-height: 9rem; resize: vertical; }
.legal-back-link { display: inline-flex; align-items: center; gap: .4rem; margin-bottom: var(--spacing-lg); color: var(--color-primary); text-decoration: none; font-weight: 600; }

@media (max-width: 767px) {
  .navigation-mobile-overlay { width: 100vw; max-width: 100vw; }
  body.menu-open .navigation-mobile-overlay { display: flex; }
  .navigation-overlay-links { width: 100%; box-sizing: border-box; }
  .navigation-overlay-link, .navigation-overlay-cta { max-width: 100%; }
  .ivoral-footer-inner { padding-left: var(--spacing-xl); padding-right: var(--spacing-xl); }
  .ivoral-footer-main-row { gap: var(--spacing-xl); align-items: flex-start; flex-direction: column; }
  .ivoral-footer-bottom-row { width: 100%; }
  .ivoral-footer-legal-nav { gap: var(--spacing-sm) var(--spacing-lg); }
  .hero-title, h1 { overflow-wrap: break-word; }
  .btn { white-space: normal; }
}
@media (max-width: 420px) {
  .navigation-capsule { width: 100%; }
  .navigation-logo-link { min-width: 0; }
  .company-logo-text { max-width: 13rem; overflow: hidden; text-overflow: ellipsis; }
  .ivoral-footer-inner { padding-left: var(--spacing-md); padding-right: var(--spacing-md); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Preserved local fallback from original project. */
@supports not (backdrop-filter: blur(1px)) {
                    .navigation-capsule {
                      background: var(--color-surface);
                    }
                  }

/* Predictable sizing prevents legal/content padding from widening the viewport. */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; width: 100%; max-width: 100%; }

/* Page-specific responsive safeguards. These only override generated desktop rules. */
@media (max-width: 767px) {
  .homepage-site-ivoral-hero-elm { min-height: auto; padding: var(--spacing-xl) 0; }
  .homepage-site-ivoral-hero-inner-elm {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--spacing-xl);
    padding: 0 var(--spacing-xl);
  }
  .homepage-site-ivoral-hero-lifestyle-elm,
  .homepage-site-ivoral-hero-still-life-elm,
  .homepage-site-ivoral-mission-media-elm,
  .homepage-site-ivoral-mission-content-elm { min-width: 0; width: 100%; }
  .homepage-site-ivoral-hero-still-life-frame-elm {
    width: min(72vw, 280px);
    max-width: 100%;
  }
  .homepage-site-ivoral-hero-provenance-elm { max-width: 100%; }
  .homepage-site-ivoral-mission-panel-elm {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--spacing-xl);
    width: calc(100% - (2 * var(--spacing-xl)));
    padding: var(--spacing-xl);
    border-bottom-left-radius: 40px;
  }
  .homepage-site-ivoral-mission-media-elm { min-height: 300px; border-bottom-left-radius: 36px; }
  .homepage-site-ivoral-mission-content-elm { padding: 0; }
  .homepage-site-ivoral-signature-container-elm,
  .homepage-site-ivoral-highlights-header-elm,
  .homepage-site-ivoral-highlights-strip-elm,
  .homepage-site-ivoral-gallery-inner-elm { padding-left: var(--spacing-xl); padding-right: var(--spacing-xl); }
  .homepage-site-ivoral-gallery-grid-elm { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .homepage-site-ivoral-gallery-header-elm { gap: var(--spacing-md); align-items: flex-start; flex-direction: column; }
}

@media (max-width: 479px) {
  .homepage-site-ivoral-hero-inner-elm,
  .homepage-site-ivoral-signature-container-elm,
  .homepage-site-ivoral-highlights-header-elm,
  .homepage-site-ivoral-highlights-strip-elm,
  .homepage-site-ivoral-gallery-inner-elm { padding-left: var(--spacing-md); padding-right: var(--spacing-md); }
  .homepage-site-ivoral-hero-overlay-elm {
    left: var(--spacing-md);
    right: var(--spacing-md);
    bottom: var(--spacing-md);
    padding: var(--spacing-lg);
  }
  .homepage-site-ivoral-mission-panel-elm {
    width: calc(100% - (2 * var(--spacing-md)));
    padding: var(--spacing-lg);
  }
  .homepage-site-ivoral-signature-list-elm,
  .homepage-site-ivoral-gallery-grid-elm { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
  body.menu-open .navigation-hamburger { visibility: hidden; }
}
