/* Photographs keep their complete frames, including any photographer credit. */
.memories-section .section-head{align-items:end;gap:40px}
.memories-section .section-head>.lead{max-width:380px;font-size:16px}
.memory-grid{display:grid;gap:28px 24px;align-items:start}
.memory-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.memory-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.memory-photo{min-width:0;margin:0}
.memory-photo-link{display:block;position:relative;line-height:0;background:#e9e3db;isolation:isolate}
.memory-photo-link img{width:100%;height:auto;object-fit:contain}
.memory-photo-link:focus-visible{outline-offset:6px}
.memory-expand{display:grid;place-items:center;position:absolute;right:12px;bottom:12px;width:36px;height:36px;background:var(--paper);border:1px solid var(--line);color:var(--plum);border-radius:50%;font:20px/1 var(--sans);box-shadow:0 2px 9px #0002;transition:background .2s,color .2s}
.memory-photo-link:hover .memory-expand{background:var(--plum);color:var(--paper)}
.memory-photo figcaption{font:13px/1.6 var(--sans);color:var(--muted);padding-top:12px}
.memory-footer{display:flex;align-items:center;justify-content:space-between;gap:18px 30px;flex-wrap:wrap;margin-top:29px}
.memory-hint{font-size:11px;color:var(--muted)}
.memory-footer .text-link{font-size:12px}
.memory-more{margin-top:28px}
.memory-more summary{display:flex;align-items:center;justify-content:center;gap:18px;list-style:none;cursor:pointer;border:1px solid var(--line);padding:15px 24px;font-size:13px;line-height:1.6;font-weight:600;color:var(--plum);background:var(--white);width:fit-content;max-width:100%;min-height:48px;margin-inline:auto}
.memory-more summary::-webkit-details-marker{display:none}
.memory-more summary:hover{border-color:var(--accent);color:var(--accent)}
.memory-more-mark{width:14px;height:14px;position:relative;flex:none}
.memory-more-mark::before,.memory-more-mark::after{content:'';position:absolute;left:1px;right:1px;top:6px;height:1px;background:currentColor}
.memory-more-mark::after{transform:rotate(90deg)}
.memory-more[open] .memory-more-mark::after{transform:none}
.memory-more-open,.memory-more[open] .memory-more-closed{display:none}
.memory-more[open] .memory-more-open{display:inline}
.memory-more[open]>.memory-grid{margin-top:28px;align-items:start}
/* The six additional wedding photos have mixed natural formats. */
.memory-more[open]>.memory-grid{display:block;columns:3;column-gap:24px}
.memory-more>.memory-grid>.memory-photo{break-inside:avoid;margin-bottom:24px}
#photos-collectif{padding-block:65px 15px}
html.photo-view-open{overflow:hidden}
.photo-viewer{position:fixed;inset:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#211c23;color:#fbf8f2;overflow:hidden;overscroll-behavior:contain}
.photo-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.photo-viewer::backdrop{background:#211c23f5}
.photo-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px max(24px,env(safe-area-inset-right)) 14px max(24px,env(safe-area-inset-left));border-bottom:1px solid #ffffff21}
.photo-viewer-brand{font:24px/1.2 var(--serif);letter-spacing:-.04em}
.photo-viewer-count{display:block;margin-top:6px;font:11px/1.4 var(--sans);letter-spacing:.04em;color:#d8cdd6}
.photo-viewer button{display:inline-flex;align-items:center;justify-content:center;min-width:46px;min-height:46px;background:transparent;color:#fff;border:1px solid #ffffff55;font-size:13px;cursor:pointer}
.photo-viewer button:hover{background:#ffffff16;border-color:#ead3df}
.photo-viewer button:focus-visible{outline:3px solid #edbdda;outline-offset:4px}
.photo-viewer-close{gap:20px;padding:10px 18px}
.photo-viewer-close span:last-child{font-size:24px;line-height:1}
.photo-viewer-stage{position:relative;display:grid;place-items:center;min-height:0;padding:18px 82px;touch-action:pan-y pinch-zoom}
.photo-viewer-image{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;min-height:0;transition:opacity .15s}
.photo-viewer-image[data-loading]{opacity:0}
.photo-viewer-step{position:absolute;top:50%;transform:translateY(-50%);border-radius:50%;font-size:24px!important;width:46px;height:46px}
.photo-viewer-prev{left:20px}
.photo-viewer-next{right:20px}
.photo-viewer-status{position:absolute;left:70px;right:70px;text-align:center;font-size:14px;color:#e8dce5;line-height:1.7;margin:0;max-width:none}
.photo-viewer-footer{padding:16px max(24px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));border-top:1px solid #ffffff21;text-align:center}
.photo-viewer-caption{font:20px/1.4 var(--serif);max-width:none;margin:0}
.photo-viewer-help{font:11px/1.6 var(--sans);color:#cbbdc8;margin-top:9px}
@media(max-width:980px){
  .memory-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .memory-more[open]>.memory-grid{columns:2}
  .memory-grid{gap:25px 20px}
  .memories-section .section-head>.lead{max-width:100%}
}
@media(max-width:600px){
  .memory-grid-3,.memory-grid-2{grid-template-columns:minmax(0,1fr)}
  .memory-grid{gap:27px}
  .memory-more[open]>.memory-grid{columns:1}
  .memory-photo figcaption{font-size:12px;padding-top:10px}
  .memory-footer{margin-top:24px;gap:16px}
  .memory-more{margin-top:26px}
  .memory-more summary{width:100%;padding-inline:16px}
  .photo-viewer-header{padding:12px 16px}
  .photo-viewer-brand{font-size:21px}
  .photo-viewer-close{padding:8px 12px;gap:13px}
  .photo-viewer-stage{padding:12px 8px 66px}
  .photo-viewer-step{top:auto;bottom:10px;transform:none;background:#211c23}
  .photo-viewer-prev{left:calc(50% - 60px)}
  .photo-viewer-next{right:calc(50% - 60px)}
  .photo-viewer-status{left:25px;right:25px}
  .photo-viewer-footer{padding:13px 18px max(16px,env(safe-area-inset-bottom))}
  .photo-viewer-caption{font-size:18px}
  .photo-viewer-help{font-size:10px}
  #photos-collectif{padding-block:45px 5px}
}
@media(prefers-reduced-motion:reduce){.photo-viewer-image,.memory-expand{transition:none}}
@media print{.memory-expand,.memory-hint,.photo-viewer,.memory-more summary{display:none!important}.memory-grid{grid-template-columns:1fr 1fr}.memory-photo{break-inside:avoid}}
