/* Artemis modern compatibility layer */
.mobile_menu_toggle { display:none; color:#222; }
@media only screen and (max-width: 767px) {
  .top_bar { min-height:48px; height:auto; z-index:10020; }
  #menu_wrapper { position:relative; min-height:48px; overflow:visible !important; }
  .logo_wrapper { position:relative; z-index:10022; }
  .mobile_menu_toggle { display:flex; position:absolute; right:12px; top:7px; z-index:10030; width:42px; height:36px; padding:7px 9px; border:0; background:transparent; color:inherit; flex-direction:column; justify-content:space-between; cursor:pointer; }
  .mobile_menu_toggle span { display:block; height:2px; width:24px; background:currentColor; transition:transform .2s ease, opacity .2s ease; }
  .mobile_menu_toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(10px) rotate(45deg); }
  .mobile_menu_toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
  .mobile_menu_toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-10px) rotate(-45deg); }
  #nav_wrapper { float:none; position:static; }
  #menu_border_wrapper select { display:none !important; }
  #menu_border_wrapper #main_menu.nav { display:none !important; }
  body.mobile-menu-open #menu_border_wrapper #main_menu.nav, #menu_border_wrapper #main_menu.nav.is-mobile-open { display:block !important; position:fixed; left:0; right:0; top:48px; z-index:10025; width:100%; max-height:calc(100vh - 48px); overflow-y:auto; margin:0; padding:10px 15px 16px; box-sizing:border-box; background:rgba(255,255,255,.98); color:#222; box-shadow:0 8px 20px rgba(0,0,0,.18); }
  body.admin-bar.mobile-menu-open #menu_border_wrapper #main_menu.nav, body.admin-bar #menu_border_wrapper #main_menu.nav.is-mobile-open { top:94px; max-height:calc(100vh - 94px); }
  body.mobile-menu-open #main_menu > li, #main_menu.is-mobile-open > li { display:block; float:none; width:100%; margin:0; border-bottom:1px solid rgba(0,0,0,.08); }
  body.mobile-menu-open #main_menu > li > a, #main_menu.is-mobile-open > li > a { display:block; padding:11px 4px; font-size:18px !important; line-height:1.35; color:inherit; }
  body.mobile-menu-open #main_menu li ul.sub-menu, body.mobile-menu-open #main_menu li ul, #main_menu.is-mobile-open li ul.sub-menu, #main_menu.is-mobile-open li ul { display:block !important; position:static !important; height:auto !important; width:auto !important; margin:0 0 8px 15px !important; padding:0 !important; opacity:1 !important; visibility:visible !important; background:transparent !important; box-shadow:none !important; }
  body.mobile-menu-open #main_menu li ul li, #main_menu.is-mobile-open li ul li { display:block; float:none; width:100%; }
  body.mobile-menu-open #main_menu li ul li a, #main_menu.is-mobile-open li ul li a { display:block; padding:7px 4px; font-size:17px !important; line-height:1.4; color:inherit; }
}
.pp-modern-flow { position:relative; width:100%; min-height:calc(100vh - 90px); padding:80px 58px 50px; box-sizing:border-box; overflow:hidden; }
.pp-modern-flow__viewport { display:flex; gap:28px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; align-items:center; min-height:calc(100vh - 170px); scrollbar-width:none; }
.pp-modern-flow__viewport::-webkit-scrollbar { display:none; }
.pp-modern-flow__item { flex:0 0 min(72vw,980px); scroll-snap-align:center; text-align:center; margin:0; }
.pp-modern-flow__item a { display:block; }
.pp-modern-flow__item img { display:block; width:auto; height:auto; max-width:100%; max-height:calc(100vh - 190px); margin:0 auto; object-fit:contain; box-shadow:0 8px 28px rgba(0,0,0,.2); }
.pp-modern-flow__caption { margin-top:10px; font-size:14px; }
.pp-modern-flow__button { position:absolute; z-index:5; top:50%; transform:translateY(-50%); width:42px; height:58px; border:0; background:rgba(0,0,0,.5); color:#fff; font-size:30px; line-height:1; cursor:pointer; }
.pp-modern-flow__button--prev { left:8px; } .pp-modern-flow__button--next { right:8px; }
.pp-modern-flow__empty { margin:100px auto; max-width:600px; text-align:center; }
@media only screen and (max-width:767px) {
  .pp-modern-flow { min-height:calc(100vh - 48px); padding:62px 12px 28px; }
  .pp-modern-flow__viewport { gap:12px; min-height:calc(100vh - 120px); }
  .pp-modern-flow__item { flex-basis:88vw; }
  .pp-modern-flow__item img { max-height:calc(100vh - 150px); }
  .pp-modern-flow__button { width:34px; height:48px; font-size:24px; }
}

.pp-static-background { position:fixed; inset:0; z-index:-9999; background-position:center center; background-repeat:no-repeat; background-size:cover; }

/* Native replacement for legacy TimThumb cropping. */
.pp-object-cover { object-fit: cover; object-position: center; }


/* Native gallery lightbox; independent from legacy Fancybox. */
html.pp-lightbox-open { overflow: hidden; }
.pp-modern-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.94);
  padding: 24px 64px;
}
.pp-modern-lightbox.is-open { display: flex; }
.pp-modern-lightbox__figure { margin: 0; max-width: min(92vw, 1800px); max-height: 90vh; text-align: center; }
.pp-modern-lightbox__image { max-width: 100%; max-height: 84vh; width: auto; height: auto; object-fit: contain; }
.pp-modern-lightbox__caption { margin-top: 10px; color: #fff; font-size: 14px; }
.pp-modern-lightbox__close,
.pp-modern-lightbox__prev,
.pp-modern-lightbox__next {
  position: absolute;
  border: 0;
  background: rgba(0,0,0,.25);
  color: #fff;
  cursor: pointer;
  line-height: 1;
}
.pp-modern-lightbox__close { top: 14px; right: 18px; font-size: 42px; padding: 4px 10px; }
.pp-modern-lightbox__prev,
.pp-modern-lightbox__next { top: 50%; transform: translateY(-50%); font-size: 56px; padding: 12px 16px; }
.pp-modern-lightbox__prev { left: 8px; }
.pp-modern-lightbox__next { right: 8px; }
@media (max-width: 767px) {
  .pp-modern-lightbox { padding: 52px 12px 20px; }
  .pp-modern-lightbox__prev, .pp-modern-lightbox__next { font-size: 40px; padding: 12px 8px; }
}

/* Desktop navigation readability. Mobile menu sizing remains independent. */
@media only screen and (min-width: 768px) {
  #main_menu > li > a {
    font-size: 16px !important;
    line-height: 1.35;
  }
  #main_menu li ul li a {
    font-size: 17px !important;
    line-height: 1.4;
  }
}

/* Contact Form 7 integration. */
.pp-contact-cf7 {
  max-width: 760px;
}
.pp-contact-cf7 .wpcf7 {
  width: 100%;
}
.pp-contact-cf7 .wpcf7-form p {
  margin: 0 0 18px;
}
.pp-contact-cf7 .wpcf7-form label {
  display: block;
  margin-bottom: 6px;
}
.pp-contact-cf7 .wpcf7-form input[type="text"],
.pp-contact-cf7 .wpcf7-form input[type="email"],
.pp-contact-cf7 .wpcf7-form input[type="tel"],
.pp-contact-cf7 .wpcf7-form input[type="url"],
.pp-contact-cf7 .wpcf7-form input[type="number"],
.pp-contact-cf7 .wpcf7-form select,
.pp-contact-cf7 .wpcf7-form textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 11px 12px;
  border: 1px solid rgba(0,0,0,.22);
  background: rgba(255,255,255,.94);
  font: inherit;
}
.pp-contact-cf7 .wpcf7-form textarea {
  min-height: 150px;
  resize: vertical;
}
.pp-contact-cf7 .wpcf7-form input[type="submit"] {
  min-width: 150px;
  padding: 11px 20px;
  cursor: pointer;
}
.pp-contact-cf7 .wpcf7-not-valid-tip {
  display: block;
  margin-top: 5px;
}
.pp-contact-cf7 .wpcf7-response-output {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.pp-contact-admin-notice {
  padding: 14px 16px;
  border: 1px solid rgba(0,0,0,.18);
  background: rgba(255,255,255,.92);
}
@media only screen and (max-width: 767px) {
  .pp-contact-cf7 {
    max-width: none;
  }
}
