/* 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;
  font-size: 19px;
  line-height: 1.4;
}
.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;
  }
}

/* Readability for the About and Blog content.
   Target the actual text elements directly so legacy theme rules cannot keep them small. */
.pp-about-content {
  font-size: 18px !important;
  line-height: 1.6 !important;
}
.pp-about-content p,
.pp-about-content blockquote,
.pp-about-content li,
.pp-about-content span:not(.wp-caption-text) {
  font-size: 18px !important;
  line-height: 1.6 !important;
}
.pp-blog-content .post_wrapper {
  font-size: 18px !important;
  line-height: 1.6 !important;
}
.pp-blog-content .post_wrapper p,
.pp-blog-content .post_wrapper blockquote,
.pp-blog-content .post_wrapper li {
  font-size: 18px !important;
  line-height: 1.6 !important;
}

/* Contact Form 7 field names/labels. Some forms put the label text directly
   inside a paragraph, while others use <label>, so cover both structures. */
.pp-contact-cf7 .wpcf7-form p,
.pp-contact-cf7 .wpcf7-form label,
.pp-contact-cf7 .wpcf7-form .wpcf7-list-item-label {
  font-size: 19px !important;
  line-height: 1.45 !important;
}
.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 {
  font-size: 16px !important;
  line-height: 1.4 !important;
}

/* Gallery landing page: a clean camera mark plus the live Gallery submenu. */
 .arp-gallery-hub{position:relative;z-index:2;width:min(1240px,calc(100% - 40px));min-height:calc(100vh - 150px);margin:92px auto 45px;padding:30px 34px 40px;box-sizing:border-box;background:rgba(255,255,255,.98);color:#171717}.arp-gallery-hub__header{text-align:center;margin-bottom:14px}.arp-gallery-hub__header h1{margin:0;font-size:34px;font-weight:400;line-height:1.2}.arp-gallery-hub__header p{margin:8px 0 0;font-size:16px;letter-spacing:.035em;color:#666}.arp-gallery-map{position:relative;width:min(1120px,100%);margin:0 auto;line-height:0}.arp-gallery-map__image{display:block;width:100%;height:auto}.arp-gallery-hotspot{position:absolute;z-index:3;display:block;border-radius:8px;text-decoration:none!important;outline:0;transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}.arp-gallery-hotspot:hover,.arp-gallery-hotspot:focus-visible{background:rgba(255,255,255,.12);box-shadow:0 0 0 3px rgba(0,0,0,.26);transform:scale(1.012)}.arp-gallery-hotspot--fashion{left:5.9%;top:14.4%;width:27.3%;height:15.2%}.arp-gallery-hotspot--product{left:56.7%;top:14.4%;width:36.1%;height:15.2%}.arp-gallery-hotspot--movie{left:5.4%;top:74.1%;width:25.0%;height:13.5%}.arp-gallery-hotspot--headshots{left:37.4%;top:85.0%;width:22.8%;height:9.0%}.arp-gallery-hotspot--event{left:66.8%;top:74.1%;width:24.8%;height:13.5%}.arp-gallery-mobile-links{display:none}.arp-gallery-hub__empty{text-align:center;font-size:16px}@media(max-width:767px){.arp-gallery-hub{width:calc(100% - 12px);margin:62px auto 24px;padding:23px 8px 28px}.arp-gallery-hub__header{margin-bottom:12px}.arp-gallery-hub__header h1{font-size:29px}.arp-gallery-hub__header p{font-size:15px}.arp-gallery-map{width:100%}.arp-gallery-hotspot:hover{box-shadow:none;transform:none}.arp-gallery-mobile-links{display:grid;grid-template-columns:1fr;gap:7px;margin:12px 8px 0}.arp-gallery-mobile-links a{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:10px 14px;border:1px solid rgba(0,0,0,.18);background:#fff;color:#171717!important;text-decoration:none!important;font-size:17px;font-weight:600;line-height:1.25}.arp-gallery-mobile-links a:focus,.arp-gallery-mobile-links a:hover{border-color:#111}}.arp-instagram-page{position:relative;z-index:2;width:min(1280px,calc(100% - 24px));min-height:calc(100vh - 130px);margin:86px auto 35px;padding:26px 0 30px;box-sizing:border-box;background:rgba(255,255,255,.97);color:#171717}.arp-instagram-page__header{text-align:center;padding:0 20px 24px}.arp-instagram-page__header h1{margin:0;font-size:32px;font-weight:400}@media(max-width:1000px){.arp-gallery-choices{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:767px){.arp-gallery-hub{width:calc(100% - 16px);margin:62px auto 24px;padding:25px 16px 30px}.arp-gallery-hub__header h1{font-size:29px}.arp-gallery-camera{width:min(390px,88vw);margin-top:12px}.arp-gallery-choices{grid-template-columns:1fr;gap:7px}.arp-gallery-choice{min-height:55px;font-size:17px}.arp-instagram-page{width:100%;margin:52px 0 20px;padding:24px 0 24px}.arp-instagram-page__header{padding-bottom:18px}.arp-instagram-page__header h1{font-size:28px}}


/* Gallery hub: keep the complete navigation artwork inside the desktop viewport. */
@media (min-width: 768px) {
  .arp-gallery-hub {
    width: min(1240px, calc(100% - 32px));
    min-height: 0;
    height: calc(100vh - 68px);
    margin: 62px auto 6px;
    padding: 8px 22px 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
  }

  .arp-gallery-hub__header {
    flex: 0 0 auto;
    margin: 0 0 5px;
  }

  .arp-gallery-hub__header h1 {
    font-size: 28px;
    line-height: 1.08;
  }

  .arp-gallery-hub__header p {
    margin-top: 3px;
    font-size: 14px;
    line-height: 1.2;
  }

  .arp-gallery-map {
    flex: 0 1 auto;
    width: min(1120px, calc((100vh - 145px) * 1.333333), 100%);
    max-height: calc(100vh - 145px);
    margin: auto;
  }

  .arp-gallery-map__image {
    width: 100%;
    height: auto;
    max-height: calc(100vh - 145px);
    object-fit: contain;
  }
}


/* Gallery hub mobile: keep the complete navigation artwork and the duplicate
   text-link navigation together inside one screen whenever viewport height allows. */
@media (max-width: 767px) {
  body.arp-gallery-hub-page {
    overflow: hidden !important;
    height: 100vh;
    height: 100svh;
  }

  body.arp-gallery-hub-page .left_bar,
  body.arp-gallery-hub-page .right_bar,
  body.arp-gallery-hub-page .footer_bar {
    display: none !important;
  }

  body.arp-gallery-hub-page .arp-gallery-hub {
    position: fixed;
    z-index: 2;
    top: 48px;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: calc(100vh - 48px);
    height: calc(100svh - 48px);
    min-height: 0;
    margin: 0;
    padding: 4px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #fff;
    box-sizing: border-box;
  }

  body.admin-bar.arp-gallery-hub-page .arp-gallery-hub {
    top: 94px;
    height: calc(100vh - 94px);
    height: calc(100svh - 94px);
  }

  body.arp-gallery-hub-page .arp-gallery-hub__header {
    display: none !important;
  }

  body.arp-gallery-hub-page .arp-gallery-mobile-links {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 4px;
    flex: 0 0 auto;
    width: min(100%, 430px);
    margin: 6px auto 0;
    padding: 0 6px 2px;
    box-sizing: border-box;
  }

  body.arp-gallery-hub-page .arp-gallery-mobile-links a {
    min-height: 34px;
    padding: 5px 10px;
    font-size: 14px;
    line-height: 1.15;
    border-radius: 4px;
  }

  body.arp-gallery-hub-page .arp-gallery-map {
    position: relative;
    width: min(100%, calc((100vh - 250px) * 1.333333));
    width: min(100%, calc((100svh - 250px) * 1.333333));
    max-height: calc(100vh - 250px);
    max-height: calc(100svh - 250px);
    margin: auto;
    line-height: 0;
  }

  body.admin-bar.arp-gallery-hub-page .arp-gallery-map {
    width: min(100%, calc((100vh - 296px) * 1.333333));
    width: min(100%, calc((100svh - 296px) * 1.333333));
    max-height: calc(100vh - 296px);
    max-height: calc(100svh - 296px);
  }

  body.arp-gallery-hub-page .arp-gallery-map__image {
    display: block;
    width: 100%;
    height: auto;
    max-height: 100%;
    object-fit: contain;
  }
}

@media (max-width: 767px) and (max-height: 680px) {
  body.arp-gallery-hub-page .arp-gallery-mobile-links {
    grid-template-columns: 1fr 1fr;
    gap: 3px;
    margin-top: 4px;
  }
  body.arp-gallery-hub-page .arp-gallery-mobile-links a {
    min-height: 31px;
    padding: 4px 7px;
    font-size: 12px;
  }
  body.arp-gallery-hub-page .arp-gallery-map {
    width: min(100%, calc((100svh - 165px) * 1.333333));
    max-height: calc(100svh - 165px);
  }
}

/* Gallery hub 2.0.18 — desktop only.
   Keep the complete Gallery landing artwork inside the visible browser window.
   Mobile rules above are intentionally unchanged from 2.0.17. */
@media (min-width: 768px) {
  body.arp-gallery-hub-page {
    height: 100vh;
    height: 100dvh;
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  body.arp-gallery-hub-page #wrapper {
    height: 100vh;
    height: 100dvh;
    overflow: hidden !important;
  }

  body.arp-gallery-hub-page .footer_bar {
    display: none !important;
  }

  body.arp-gallery-hub-page .arp-gallery-hub {
    position: fixed;
    z-index: 2;
    top: 56px;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: 5px 16px 7px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-sizing: border-box;
    background: #fff;
  }

  body.admin-bar.arp-gallery-hub-page .arp-gallery-hub {
    top: 84px;
  }

  body.arp-gallery-hub-page .arp-gallery-hub__header {
    flex: 0 0 auto;
    margin: 0 0 3px;
  }

  body.arp-gallery-hub-page .arp-gallery-hub__header h1 {
    margin: 0;
    font-size: clamp(22px, 2.3vh, 28px);
    line-height: 1.05;
  }

  body.arp-gallery-hub-page .arp-gallery-hub__header p {
    margin: 2px 0 0;
    font-size: clamp(12px, 1.45vh, 14px);
    line-height: 1.1;
  }

  body.arp-gallery-hub-page .arp-gallery-map {
    position: relative;
    flex: 1 1 0;
    min-height: 0;
    width: auto;
    height: 100%;
    max-width: min(1120px, calc(100vw - 32px));
    aspect-ratio: 4 / 3;
    margin: 0 auto;
    line-height: 0;
  }

  body.arp-gallery-hub-page .arp-gallery-map__image {
    display: block;
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
  }
}

/* Gallery hub 2.0.19 — desktop hotspot alignment only.
   Fine-tune the five clickable areas so they sit directly over the visible
   label boxes on desktop. Mobile hotspot geometry remains unchanged. */
@media (min-width: 768px) {
  body.arp-gallery-hub-page .arp-gallery-hotspot--fashion {
    left: 6.1%;
    top: 14.5%;
    width: 28.0%;
    height: 14.4%;
  }

  body.arp-gallery-hub-page .arp-gallery-hotspot--product {
    left: 58.2%;
    top: 14.5%;
    width: 37.0%;
    height: 14.4%;
  }

  body.arp-gallery-hub-page .arp-gallery-hotspot--movie {
    left: 5.5%;
    top: 74.7%;
    width: 25.6%;
    height: 13.2%;
  }

  body.arp-gallery-hub-page .arp-gallery-hotspot--headshots {
    left: 38.8%;
    top: 84.9%;
    width: 23.0%;
    height: 8.8%;
  }

  body.arp-gallery-hub-page .arp-gallery-hotspot--event {
    left: 69.0%;
    top: 74.7%;
    width: 25.5%;
    height: 13.2%;
  }
}
