/* Gallery and Contact only. Home's approved styles remain in site.css. */
.page-header{max-width:1920px;margin:auto;background:#fff;color:var(--navy);border-bottom:1px solid #e2e0ed}
.page-header .header-bar{align-items:center;padding:26px 4.65%;min-height:115px}
.page-brand{display:flex;flex-direction:column;gap:5px;line-height:1}
.page-brand>span{font:500 14px/1.3 Montserrat,Arial,sans-serif;letter-spacing:.36em;text-transform:uppercase}
.page-brand strong{font:700 36px/1 var(--serif);letter-spacing:-.025em}
.page-brand sup{font-size:9px;vertical-align:super;margin-left:3px}
.page-header .main-nav{font-size:11px;gap:30px;padding-top:0}
.page-header .search-toggle{width:55px;height:27px;padding:0 0 0 25px}
.page-header .search-toggle svg{width:25px;height:25px}
.inner-page{padding:0 4.65% 70px}
.inner-page .eyebrow{font-size:11px;letter-spacing:.18em}
.page-intro{padding:66px 0 48px;display:flex;justify-content:space-between;align-items:flex-end;gap:50px;border-bottom:1px solid #d8d5e7}
.page-intro h1{font-size:clamp(52px,5.1vw,88px);line-height:.96;letter-spacing:-.04em;margin-top:15px;font-weight:400}
.intro-description{max-width:350px;font-size:24px;line-height:1.24;padding-bottom:4px}
.gallery-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px 0 24px}
.gallery-heading>span{font:400 11px/1.5 var(--sans);color:#626989}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 22px}
.gallery-card{min-width:0}
.gallery-photo{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;background:#eeecf5}
.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.gallery-photo:hover img{transform:scale(1.035)}
.photo-expand{position:absolute;right:14px;bottom:14px;display:grid;place-items:center;width:35px;height:35px;color:white;border:1px solid #ffffffb0;background:#0b224b70;font:24px/1 var(--serif);border-radius:50%}
.gallery-card figcaption{padding:15px 0 0}
.gallery-card .eyebrow{font-size:9px;color:#686b88;letter-spacing:.16em;margin-bottom:5px}
.gallery-card h2{font-size:29px;line-height:1.1;letter-spacing:-.02em}
.gallery-invitation{margin-top:58px;padding:40px 30px;background:#efecfc;text-align:center}
.gallery-invitation h2{font-size:clamp(34px,3.4vw,52px);line-height:1.05;margin:12px 0 24px}
.inner-page .outline-link{font-size:10px;min-height:43px;padding:9px 17px;gap:25px}
.inner-page .outline-link svg,.inner-page .text-link svg{width:23px;height:20px}
.inner-page .text-link{font-size:10px;min-height:44px;gap:13px}
.gallery-lightbox{width:min(1320px,96vw);max-width:none;max-height:96dvh;margin:auto;padding:18px 24px 24px;color:white;background:#0b1d3c;border:1px solid #687188;overflow:auto}
.gallery-lightbox::backdrop{background:#030b17ed}
.gallery-lightbox button{touch-action:manipulation}
.lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:13px;font:11px/1.4 var(--sans);letter-spacing:.12em}
.lightbox-close{display:flex;align-items:center;gap:15px;min-height:44px;border:0;background:none;color:white;padding:5px;font:11px var(--sans);text-transform:uppercase;letter-spacing:.14em}
.lightbox-close span{font-size:30px;line-height:1;font-weight:400}
.lightbox-stage{height:min(66vh,770px);position:relative;background:#061226;touch-action:pan-y pinch-zoom}
.lightbox-stage img{width:100%;height:100%;object-fit:contain;user-select:none}
.lightbox-stage.loading img{opacity:0}
#lightbox-status{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font:14px/1.5 var(--sans);text-align:center;max-width:90%}
.lightbox-bottom{display:grid;grid-template-columns:46px 1fr 46px;gap:20px;align-items:center;padding-top:17px}
.lightbox-bottom>div{text-align:center}
.lightbox-bottom h2{font-size:30px;line-height:1.1;letter-spacing:-.02em;margin:0 0 5px}
.lightbox-bottom p{font-size:18px;line-height:1.2;color:#d9dceb}
.lightbox-prev,.lightbox-next{width:46px;height:46px;display:grid;place-items:center;background:none;border:1px solid #ffffff75;color:white;font-size:25px;transition:background .2s}
.lightbox-prev:hover,.lightbox-next:hover{background:#ffffff20}
.contact-page{width:100%;margin:auto;padding:0 4.65% 56px}
.contact-page .page-intro{display:block;padding:48px 0 32px;border-bottom:0}
.contact-page .intro-description{max-width:560px;margin-top:18px;padding:0;line-height:1.4}
.contact-layout{display:grid;grid-template-columns:55% 45%;gap:0;padding:0 0 40px}
.contact-details{display:flex;flex-direction:column;gap:0;background:#f0edfa;padding:8px 30px}
.contact-item{display:grid;grid-template-columns:24px minmax(0,1fr);gap:16px;padding:24px 0;border-bottom:1px solid #cdd0e0}
.contact-icon{width:24px;height:24px;margin-top:3px;color:var(--navy);stroke-width:1.3}
.contact-row-copy{min-width:0}
.contact-item:last-child{border-bottom:0}
.contact-item h2{font-size:38px;line-height:1.05;margin:8px 0 12px;letter-spacing:-.025em}
.contact-item address{font-style:normal;font-size:23px;line-height:1.35}
.contact-item .text-link{margin-top:12px}
.contact-item address+.outline-link{margin-top:14px}
.contact-value{display:block;font:400 clamp(14px,1.1vw,18px)/1.65 var(--sans);overflow-wrap:anywhere;margin-bottom:14px}
.contact-value:hover,.contact-phone:hover{text-decoration:underline;text-underline-offset:5px}
.contact-phone{display:block;font-size:32px;line-height:1.2;margin:10px 0 14px}
.contact-photo{position:relative;min-height:560px}
.contact-photo img{position:absolute;inset:0;object-position:48% center}
.contact-photo:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#061b34d9)}
.contact-photo figcaption{position:absolute;bottom:30px;left:30px;right:25px;color:white;font-size:34px;line-height:1.1;z-index:1}
.contact-photo figcaption span{font-size:22px;display:block;margin-top:10px}
.contact-map{padding-top:24px;border-top:1px solid #d8d5e7}
.map-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.map-heading h2{font-size:44px;line-height:1.05;margin:0;letter-spacing:-.035em}
.contact-map iframe{display:block;width:100%;height:450px;border:0;background:#eeecf5}
.satellite-map-frame{border:1px solid #d8d5e7;background:#f3f1fb}
.satellite-map-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;background:var(--deep);color:white}
.satellite-map-heading>span{font:400 11px/1.6 var(--sans);letter-spacing:.06em}
.satellite-map-caption{padding:14px 22px;font:400 11px/1.7 var(--sans);color:var(--navy)}
.map-note{font:400 11px/1.7 var(--sans);letter-spacing:.05em;color:#666b87;margin-top:14px}
@media(max-width:1100px) and (min-width:901px){.intro-description{max-width:270px;font-size:22px}.contact-details{padding:8px 22px}}
@media(max-width:900px){
 .page-header .header-bar{padding:19px 24px;min-height:100px}
 .page-brand>span{letter-spacing:.32em}
 .page-header .menu-toggle{background:none;border-color:#abaec3;color:var(--navy)}
 .page-header .main-nav{top:83px;font-size:11px;padding:15px 20px;gap:12px;z-index:5}
 .page-header .search-toggle{width:39px;height:40px;padding:7px 0 7px 14px}
 .inner-page{padding:0 24px 40px}
 .page-intro{padding:35px 0 29px;gap:22px;display:block}
 .page-intro h1{font-size:54px;margin-top:12px;line-height:.98}
 .intro-description{font-size:23px;max-width:480px;margin-top:22px}
 .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}
 .gallery-heading{padding:23px 0 20px}.gallery-heading .eyebrow{font-size:9px;letter-spacing:.1em}.gallery-heading>span{font-size:10px;white-space:nowrap}
 .gallery-card h2{font-size:25px}.gallery-card .eyebrow{font-size:8px}
 .contact-page{padding:0 24px 40px}
 .contact-page .page-intro{padding:32px 0 26px}
 .contact-layout{padding:0 0 30px;gap:0;grid-template-columns:1fr}
 .contact-details{gap:0;padding:0 22px}.contact-photo{min-height:380px}
 .contact-item{gap:12px;padding:22px 0}
 .contact-item h2{font-size:34px}.contact-item address{font-size:22px}
 .contact-value{font-size:15px}.contact-phone{font-size:31px}
 .map-heading{display:flex;flex-wrap:nowrap;gap:8px}.map-heading h2{font-size:38px}.map-heading .text-link{margin-top:0}
 .contact-map iframe{height:370px}.map-note{font-size:10px}
 .satellite-map-heading{align-items:flex-start;flex-direction:column;gap:5px;padding:16px}.satellite-map-caption{padding:12px 16px}
 .gallery-invitation{margin-top:36px;padding:30px 20px}
}
@media(max-width:540px){
 .page-intro h1{font-size:45px}.intro-description{font-size:22px}
 .photo-grid{grid-template-columns:1fr;gap:28px}
 .gallery-card h2{font-size:29px}.gallery-card .eyebrow{font-size:9px}.gallery-card figcaption{padding-top:12px}
 .contact-photo{min-height:320px}.contact-photo figcaption{left:22px;bottom:23px;font-size:30px}.contact-photo figcaption span{font-size:20px}
 .gallery-lightbox{width:calc(100% - 16px);max-height:96dvh;padding:10px 12px 17px}
 .lightbox-stage{height:52dvh}.lightbox-bottom{grid-template-columns:42px 1fr 42px;gap:10px;align-items:start}
 .lightbox-bottom h2{font-size:25px}.lightbox-bottom p{font-size:16px}.lightbox-prev,.lightbox-next{width:42px;height:44px}
}
