/* Reusable photographic editorial layouts, built on the existing tokens. */
.editorial-photo { margin:0; min-width:0; }
.photo-open { display:block; position:relative; width:100%; padding:0; border:0; background:var(--paper-soft); overflow:hidden; cursor:zoom-in; }
.photo-open img { display:block; width:100%; height:auto; transition:filter .2s; }
.photo-open:hover img { filter:brightness(1.035); }
.photo-expand { position:absolute; right:14px; bottom:14px; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:#f7f4edec; font-size:18px; color:var(--ink); }
.editorial-photo figcaption { display:flex; justify-content:space-between; flex-wrap:wrap; gap:5px 12px; margin-top:13px; font-size:12px; color:var(--muted); }
.editorial-photo figcaption span { font:9px/1.8 var(--font-latin); letter-spacing:.12em; }
.signature-editorial { display:grid; grid-template-columns:1.04fr 1fr; gap:clamp(40px,7vw,100px); align-items:center; }
.signature-visual { max-width:560px; }
.signature-visual .fine-print { margin-top:10px; }
.service-choice { border-top:1px solid var(--line); padding:22px 0; }
.service-choice h3 { margin-top:13px; font-size:23px; }
.service-choice > p { margin-top:7px; color:var(--muted); font-size:13px; }
.choice-price { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-top:15px; font-size:12px; }
.choice-price strong { color:var(--accent); font-size:19px; font-weight:500; }
.signature-selection > .text-link { margin-top:4px; }
.lookbook { display:grid; grid-template-columns:1.38fr 1fr; gap:clamp(35px,7vw,100px); align-items:start; }
.lookbook-main { padding-top:56px; }
.lookbook-side { display:grid; gap:34px; }
.lookbook-main .photo-open { max-width:660px; }
.lookbook-side .photo-open { max-width:400px; }
.lookbook-note { margin-top:43px; padding-left:25px; border-left:1px solid #c6bcaf; }
.lookbook-note > p { font:26px/1.8 var(--font-editorial); letter-spacing:-.045em; margin:15px 0; }
.lookbook-note .text-link { font-size:12px; }
.gallery-bottom { display:flex; justify-content:space-between; align-items:center; gap:25px; border-top:1px solid var(--line); margin-top:42px; padding-top:20px; }
.gallery-bottom p { font-size:12px; color:var(--muted); }
.gallery-disclosure { max-width:740px; margin-top:12px; font-size:11px; }
.director-editorial { display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:clamp(40px,7vw,100px); }
.director-signature { margin-top:22px; font:italic 21px var(--font-latin); color:var(--sage); letter-spacing:.04em; }
.director-intro { font-size:18px; margin-top:24px; margin-bottom:13px; }
.director-copy > p:not(.director-intro):not(.director-source) { font-size:14px; color:var(--muted); line-height:1.95; }
.consultation-notes { margin-top:26px; }
.consultation-notes > div { display:grid; grid-template-columns:80px 1fr; gap:18px; border-top:1px solid var(--line); padding:13px 0; font-size:12px; }
.consultation-notes dt { color:var(--accent); }
.consultation-notes dd { margin:0; color:var(--muted); }
.director-copy > .text-link { margin-top:16px; }
.director-source { margin-top:16px; }
.director-source .text-link { border:0; padding:0; font-size:11px; color:var(--muted); }
.viewer-open { overflow:hidden; }
.photo-dialog { width:min(780px,94vw); max-height:94svh; border:0; background:var(--paper); color:var(--ink); padding:50px 25px 25px; }
.photo-dialog::backdrop { background:#201911d9; }
.photo-close { position:absolute; right:14px; top:9px; padding:8px 12px; border:0; background:transparent; cursor:pointer; }
.photo-dialog-content { text-align:center; }
.photo-dialog-content img { display:block; width:auto; max-width:100%; max-height:65svh; height:auto; margin:auto; object-fit:contain; }
.photo-dialog-content p { margin-top:16px; }
.photo-dialog-content small { display:block; margin-top:15px; font-size:11px; color:var(--muted); }
@media(max-width:768px) {
 .signature-editorial,.director-editorial { grid-template-columns:1fr; gap:30px; }
 .signature-visual { max-width:100%; }
 .signature-visual .photo-open { max-width:440px; margin-inline:auto; }
 .service-choice { padding:18px 0; }
 .service-choice h3 { font-size:21px; }
 .service-choice .card-top { font-size:12px; }
 .signature-selection > .text-link { margin-top:10px; }
 .lookbook { display:block; }
 .lookbook-main { padding-top:0; }
 .lookbook-main .photo-open { max-width:440px; margin:auto; }
 .lookbook-note { display:none; }
 .lookbook-side { grid-template-columns:1fr 1fr; gap:15px; margin-top:26px; align-items:start; }
 .editorial-photo figcaption { font-size:11px; line-height:1.6; }
 .lookbook-side figcaption span { display:none; }
 .gallery-bottom { flex-direction:column; align-items:flex-start; gap:8px; margin-top:28px; }
 .gallery-disclosure { font-size:10px; }
 .director-signature { font-size:17px; margin-top:17px; }
 .consultation-notes > div { grid-template-columns:65px 1fr; gap:13px; }
 .photo-dialog { padding:48px 16px 20px; }
}
