/* Small native React interactions over the preserved reference design. */
:root { --scrollbar-width: 15px; }
body { overflow-x: hidden; }
main#page-content { display: contents; }
img { color: transparent; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid #ff7b1c; outline-offset: 5px; }
.next-gallery { width: 100%; height: 100%; position: relative; }
.next-slideshow { overflow: hidden; }
.next-slideshow .slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .7s ease; }
.next-slideshow .slide.active { opacity: 1; }
.gallery-arrow { position: absolute; top: 50%; transform: translateY(-50%); border: 0; background: #0007; color: white; font: 42px/1 Arial,sans-serif; padding: 7px 15px; z-index: 3; border-radius: 3px; }
.gallery-arrow.previous { left: 16px; }
.gallery-arrow.next { right: 16px; }
.next-slideshow .gallery-arrow { opacity: 0; transition: opacity .2s; }
.next-slideshow:hover .gallery-arrow, .next-slideshow:focus-within .gallery-arrow { opacity: 1; }
.next-photo-grid { display: grid; height: auto; grid-template-columns: repeat(4,minmax(0,1fr)); grid-auto-rows: auto; gap: 10px; }
.gallery-thumbnail { border: 0; padding: 0; background: #111; overflow: hidden; min-width: 0; min-height: 0; aspect-ratio: 1; }
.gallery-thumbnail img { width: 100%; height: 100%; min-height: 90px; object-fit: cover; transition: transform .25s; display: block; }
.gallery-thumbnail:hover img { transform: scale(1.04); }
.photo-dialog { position: fixed; inset: 0; padding: 50px 65px; border: 0; max-width: none; max-height: none; width: 100vw; height: 100dvh; box-sizing: border-box; background: #080b0df7; color: #fff; z-index: 100000; }
.photo-dialog[open] { display: flex; align-items: center; justify-content: center; }
.photo-dialog::backdrop, .navigation-dialog::backdrop { background: #000b; }
.photo-dialog > img { max-width: 100%; max-height: 100%; object-fit: contain; }
.photo-count { position: absolute; bottom: 20px; left: 0; width: 100%; text-align: center; font: 16px Arial,sans-serif; }
.dialog-close { position: absolute; top: 16px; right: 24px; z-index: 10; border: 0; color: #fff; background: transparent; font: 40px/1 Arial,sans-serif; padding: 10px; }
.navigation-dialog { position: fixed; inset: 0 0 0 auto; margin: 0; box-sizing: border-box; width: min(420px,100vw); max-width: 100%; height: 100dvh; max-height: none; padding: 85px 40px 40px; border: 0; background: #101516; color: #fff; }
.navigation-dialog nav { display: flex; flex-direction: column; gap: 18px; }
.navigation-dialog a { font: 600 23px/1.35 madefor-display-bold,Arial,sans-serif; text-decoration: none; color: white; }
.navigation-dialog a[aria-current="page"], .navigation-dialog a:hover { color: #ff7b1c; }
.navigation-dialog a.sub-link { font-size: 17px; padding-left: 24px; }
html:has(dialog[open]) { overflow: hidden; }
.floating-contact { position: fixed; right: 35px; bottom: 30px; z-index: 1000; display: flex; align-items: center; gap: 8px; text-decoration: none; background: transparent; padding: 0; border: 0; }
.floating-contact span { position: relative; padding: 7px 14px; border-radius: 12px; background: white; color: #333; font: 16px/1 Arial,sans-serif; }
.floating-contact span::after { content: ''; position: absolute; right: -6px; top: 11px; border-width: 5px 0 5px 7px; border-color: transparent transparent transparent white; border-style: solid; }
.floating-contact img { width: 60px; height: 60px; object-fit: contain; background: black; border-radius: 50%; }
[data-testid="menuItemDepth0"]:hover > [data-testid="positionBox"], [data-testid="menuItemDepth0"]:focus-within > [data-testid="positionBox"], [data-testid="menuItemDepth0"][data-expanded="true"] > [data-testid="positionBox"] { display: block !important; visibility: visible !important; opacity: 1 !important; pointer-events: auto !important; }
[data-testid="menuItemDepth0"]:hover [class*="__animationBox"], [data-testid="menuItemDepth0"]:focus-within [class*="__animationBox"], [data-expanded="true"] [class*="__animationBox"] { opacity: 1 !important; transform: none !important; visibility: visible !important; }
.next-contact-form { width: 100%; font: 16px/1.5 madefor-text,Arial,sans-serif; color: #fff; }
.contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }
.contact-fields label { display: block; }
.contact-fields label span { color: inherit; margin-left: 3px; }
.contact-fields .full-field { grid-column: 1 / -1; }
.contact-fields input, .contact-fields textarea { display: block; box-sizing: border-box; width: 100%; margin-top: 8px; padding: 12px 14px; border: 1px solid #9d9d9d; border-radius: 0; background: transparent; color: inherit; font: inherit; }
.contact-fields input { height: 46px; }
.contact-fields textarea { resize: vertical; min-height: 110px; }
.contact-fields input::placeholder,.contact-fields textarea::placeholder { color: #aaa; }
.contact-submit { margin-top: 24px; background: #ff7b1c; color: #fff; min-width: 130px; padding: 12px 30px; border: 0; font: 16px/1.5 Arial,sans-serif; }
.contact-submit:hover { background: #e66913; }
.contact-submit:disabled { opacity: .6; cursor: wait; }
.contact-status { margin-top: 14px; font: 15px/1.5 Arial,sans-serif; }
.contact-status a { color: #ff9b48; text-decoration: underline; }
.contact-trap { display: none; }
.contact-dialog { position: fixed; inset: 0; margin: auto; width: min(620px,calc(100vw - 32px)); box-sizing: border-box; max-height: calc(100dvh - 32px); padding: 40px; overflow-y: auto; border: 1px solid #4c6060; border-radius: 8px; background: #142f30; color: white; }
.contact-dialog::backdrop { background: #000b; }
.contact-dialog h2 { font: 30px/1.3 madefor-display-bold,Arial,sans-serif; margin-bottom: 16px; padding-right: 30px; }
.contact-details { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-bottom: 28px; font: 15px/1.5 Arial,sans-serif; }
.contact-details a { color: #fff; text-decoration: underline; }
.next-expo-menu { position: relative; }
.expo-toggle { position: absolute; right: -8px; top: 50%; transform: translateY(-50%); width: 22px; height: 28px; padding: 0; border: 0; color: white; background: transparent; font: 18px Arial,sans-serif; opacity: 0; }
.next-expo-menu:hover .expo-toggle, .next-expo-menu:focus-within .expo-toggle { opacity: 1; }
.expo-submenu { position: absolute; left: 0; top: 100%; min-width: 140px; background: #101516; border: 1px solid #444; z-index: 100; padding: 8px 0; }
.next-expo-menu:hover .expo-submenu { display: block; }
.expo-submenu a { display: block; padding: 12px 20px; color: #fff; font: 15px madefor-display-bold,Arial,sans-serif; text-decoration: none; }
.expo-submenu a:hover, .expo-submenu a:focus { background: #333; color: #ff9b48; }
.next-accordion-content[hidden] { display: none; }
.next-accordion-content:not([hidden]) > .wixui-accordion__container { display: block !important; visibility: visible !important; position: relative !important; height: auto !important; }
.next-accordion-content:not([hidden]) > .wixui-accordion__container > div { display: grid !important; }
.next-accordion-item .wixui-accordion__icon { font: bold 24px/1 Arial,sans-serif; }
@media(max-width:750px) {
  .next-photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .floating-contact { right: 25px; bottom: 24px; }
  .photo-dialog { padding: 65px 12px; }
  .gallery-arrow { font-size: 34px; padding: 7px 10px; }
  .gallery-arrow.previous { left: 8px; }
  .gallery-arrow.next { right: 8px; }
  .contact-fields { gap: 16px; }
}
@media(max-width:450px) { .contact-fields { grid-template-columns: 1fr; } }
