html{margin-top:0!important}.admin-bar>header{margin-top:32px!important}.psw-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.map-load{display:grid;place-content:center;gap:12px;width:100%;min-height:260px;background:#eee6d9;color:#101010;border:0;font:500 20px Montserrat,sans-serif;cursor:pointer}.map-load small{font:12px Lato,sans-serif}.story-content .wp-block-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.story-content .wp-block-image{width:100%!important;margin:0!important}.story-content button{padding:0;border:0;border-radius:16px;overflow:hidden;cursor:pointer}.story-content img{width:100%;height:280px;object-fit:cover;transition:transform .5s}.story-content button:hover img{transform:scale(1.04)}.story-cover img{width:100%;height:100%;object-fit:cover}#psw-thumbs{display:flex;gap:8px;overflow:auto;max-width:100%}#psw-thumbs button{padding:0;border:2px solid transparent;flex:0 0 62px;background:none;opacity:.5}#psw-thumbs button[aria-pressed=true]{border-color:#d6c3a3;opacity:1}#psw-thumbs img{width:60px;height:44px;object-fit:cover}.psw-prev,.psw-next{position:absolute;top:50%;background:#101010aa;color:white;border:1px solid #d6c3a3;border-radius:50%;width:40px;height:40px;cursor:pointer}.psw-prev{left:10px}.psw-next{right:10px}.viewer-stage{position:relative}#psw-photo{max-width:100%;object-fit:contain}#psw-video-stage iframe,#psw-video-stage video{width:100%;aspect-ratio:16/9;border:0}.psw-film{padding:0;color:inherit;text-align:left;cursor:pointer;background:transparent}.psw-film .photo,.psw-film .card-caption{display:block}.psw-client-status{margin:130px 6% 0;padding:20px;border:1px solid #d6c3a3}.psw-download[aria-disabled=true]{opacity:.45;cursor:not-allowed}.client-main{padding-top:105px}.film-controls{display:flex;gap:20px;justify-content:center;margin-top:20px}.film-controls button{border:1px solid #d6c3a3;color:inherit;background:transparent;border-radius:50%;width:40px;height:40px;cursor:pointer}@media(max-width:700px){.story-content .wp-block-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.story-content img{height:180px}.admin-bar>header{margin-top:46px!important}.client-main{padding-top:94px}}
.psw-trailer-stage:empty{display:none}.psw-trailer-stage video,.psw-trailer-stage iframe{display:block;width:100%;aspect-ratio:16/9;border:0}.video-placeholder[hidden]{display:none}
.psw-icon{display:inline-block;width:1em;height:1em;vertical-align:-.13em;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}.arrow-disc>.psw-icon,.link-arrow>.psw-icon{width:1em;height:1em}

.not-found-page{background:#101010;color:white}.not-found-main{padding:180px 6% 90px;min-height:85vh}.not-found-layout{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:7vw}.not-found-layout h1{font-size:clamp(2.4rem,4.6vw,5rem);line-height:1.08;letter-spacing:-.055em;margin:25px 0}.not-found-layout h1 em{color:#d6c3a3;font-style:normal}.not-found-layout p{max-width:440px;color:#d5d0c9}.not-found-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:32px}.not-found-photo{position:relative;border-radius:28px;overflow:hidden}.not-found-photo img{width:100%;height:480px;object-fit:cover;display:block;filter:brightness(.8)}.not-found-photo>span{position:absolute;bottom:0;left:24px;font:600 clamp(6rem,14vw,12rem)/1 Montserrat,sans-serif;letter-spacing:-.08em;color:#fff8}@media(max-width:700px){.not-found-main{padding:130px 6% 50px}.not-found-layout{grid-template-columns:1fr;gap:35px}.not-found-photo img{height:260px}.not-found-actions{gap:20px}.not-found-layout h1{font-size:2.6rem}}

.client-prep li:before{content:"";display:inline-block;width:14px;height:14px;background:currentColor;vertical-align:-2px;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19 19 5M5 5h14v14' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19 19 5M5 5h14v14' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center/contain no-repeat}

/* Keep native date/select controls inside the contact form on narrow screens. */
.contact-layout>*,.contact-form form,.contact-form label,.contact-form .form-row{min-width:0;max-width:100%}
.contact-form .form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.contact-form input:not([type=checkbox]):not([type=radio]),.contact-form select,.contact-form textarea{box-sizing:border-box;width:100%;min-width:0;max-width:100%}
.contact-form input[type=date]{display:block;-webkit-appearance:none;appearance:none;min-inline-size:0}
.contact-form input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}
@media(max-width:700px){.contact-form .form-row{grid-template-columns:minmax(0,1fr)}.contact-form input:not([type=checkbox]):not([type=radio]),.contact-form select,.contact-form textarea{font-size:16px}}

/* Consistent mobile header inset, including the initial unscrolled state. */
@media(max-width:700px){body>header,body.home-page>header,body.has-scrolled>header,body:not(.has-scrolled)>header,body:not(.has-scrolled).home-page>header{top:calc(8px + env(safe-area-inset-top,0px))}}

/* Shared form containment, including Safari's intrinsic date/time widths. */
main form,dialog form,main form label,dialog form label,main fieldset,dialog fieldset,.access-layout>*,.client-prep>*,.client-fields{min-width:0;max-width:100%;box-sizing:border-box}
main input:not([type=checkbox]):not([type=radio]):not([type=hidden]),main select,main textarea,dialog input:not([type=checkbox]):not([type=radio]):not([type=hidden]),dialog select,dialog textarea{box-sizing:border-box;display:block;width:100%;min-width:0;max-width:100%;min-inline-size:0}
main input[type=date],main input[type=time],dialog input[type=date],dialog input[type=time]{-webkit-appearance:none;appearance:none;min-inline-size:0;text-align:left}
main input::-webkit-date-and-time-value,dialog input::-webkit-date-and-time-value{min-width:0;text-align:left}
main input::-webkit-datetime-edit,dialog input::-webkit-datetime-edit{min-width:0;padding:0}
main form .button,dialog form .button{max-width:100%}
@media(max-width:700px){main input:not([type=checkbox]):not([type=radio]),main select,main textarea,dialog input:not([type=checkbox]):not([type=radio]),dialog select,dialog textarea{font-size:16px}main form .button .roll-label,dialog form .button .roll-label{flex-shrink:1;min-width:0}main form .button .roll-label>span,dialog form .button .roll-label>span{white-space:normal}main form .button,dialog form .button{font-size:13px}}

/* The navigation arrows are absolute; the photo must occupy the full stage. */
#psw-gallery .viewer-stage{display:block;position:relative;min-width:0}
#psw-gallery #psw-photo{display:block;width:100%;height:65vh;object-fit:contain;margin:auto}
#psw-gallery .psw-prev,#psw-gallery .psw-next{z-index:2;transform:translateY(-50%)}
#psw-gallery .viewer-bottom{min-width:0}#psw-gallery #psw-thumbs{min-width:0;flex:1}
@media(max-width:700px){#psw-gallery #psw-photo{height:65svh}#psw-gallery #psw-thumbs{flex:none;width:100%}}

/* Single public wedding galleries: equal square previews, original in lightbox. */
.story-content .wp-block-gallery .wp-block-image {
  display: block !important;
  min-width: 0;
  width: 100% !important;
  max-width: none !important;
  align-self: start;
}
.story-content .wp-block-gallery .wp-block-image > button,
.story-content .wp-block-gallery .wp-block-image > a {
  display: block;
  position: relative;
  width: 100%;
  max-width: none;
  height: auto;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 16px;
}
.story-content .wp-block-gallery .wp-block-image img {
  display: block;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center;
}

/* Compact cover for single wedding stories only. */
body:has(.story-content) .story-cover {
  height: clamp(260px, 52vh, 560px);
  height: clamp(260px, 52svh, 560px);
  overflow: hidden;
}
body:has(.story-content) .story-cover img {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: center 35%;
}
@media (max-width: 700px) {
  body:has(.story-content) .story-cover {
    height: clamp(230px, 40svh, 340px);
  }
}

/* Refined navigation inside the public story lightbox. */
#psw-gallery .viewer-bottom { gap: 18px; padding-top: 14px; border-top: 1px solid #d6c3a326; }
#psw-gallery #psw-count { flex-shrink: 0; color: #d6c3a3; font-variant-numeric: tabular-nums; letter-spacing: .08em; }
#psw-gallery #psw-thumbs {
  gap: 10px; padding: 4px 2px; overflow-x: auto; overflow-y: hidden;
  scrollbar-width: none; -ms-overflow-style: none;
  scroll-snap-type: x proximity; overscroll-behavior-x: contain;
}
#psw-gallery #psw-thumbs::-webkit-scrollbar { display: none; width: 0; height: 0; }
#psw-gallery #psw-thumbs button {
  flex: 0 0 64px; width: 64px; height: 52px; padding: 3px;
  border: 1px solid transparent; border-radius: 10px; overflow: hidden;
  opacity: .48; scroll-snap-align: center;
  transition: opacity .2s ease, border-color .2s ease, background-color .2s ease;
}
#psw-gallery #psw-thumbs button[aria-pressed="true"] {
  opacity: 1; border-color: #d6c3a3; background: #d6c3a314;
}
#psw-gallery #psw-thumbs button:hover { opacity: 1; }
#psw-gallery #psw-thumbs button:focus-visible { outline: 2px solid #d6c3a3; outline-offset: 1px; opacity: 1; }
#psw-gallery #psw-thumbs img { display: block; width: 100%; height: 100%; border-radius: 6px; object-fit: cover; }
@media (max-width: 700px) {
  #psw-gallery .viewer-bottom { gap: 8px; padding-top: 10px; }
  #psw-gallery #psw-thumbs { gap: 8px; }
  #psw-gallery #psw-thumbs button { flex-basis: 56px; width: 56px; height: 46px; }
}

/* Close controls: geometric cross centered independently of font metrics. */
dialog button.close {
  position: relative;
  display: inline-grid;
  place-items: center;
  box-sizing: border-box;
  padding: 0;
  font-size: 0 !important;
  line-height: 0;
  transform-origin: center;
  appearance: none;
}
dialog button.close::before,
dialog button.close::after {
  content: "";
  position: absolute;
  left: 50%; top: 50%;
  width: 14px; height: 1.5px;
  border-radius: 2px;
  background: currentColor;
  pointer-events: none;
  transform: translate(-50%, -50%) rotate(45deg);
}
dialog button.close::after { transform: translate(-50%, -50%) rotate(-45deg); }
dialog button.close > * { display: none; }
dialog.privacy-dialog button.close,
dialog.client-dialog button.close { position: absolute; }
