.photo-folio .wide { min-height:56px; }
.city-index { display:inline-flex; align-items:center; gap:12px; min-height:48px; }
.film { display:flex; align-items:center; padding:2px 4px; }
.film img { width:40px; height:30px; object-fit:cover; border:2px solid var(--paper); box-shadow:0 0 0 1px var(--rule); }
.film img+img { margin-left:-5px; }
.film img:first-child { transform:rotate(-5deg); }
.film img:last-child { transform:rotate(5deg); }
.city { background:#eee8d9; border-bottom:1px solid var(--rule); padding:clamp(30px,4vw,58px) 0; }
.city-heading { display:flex; align-items:end; justify-content:space-between; gap:26px; margin:13px 0 25px; }
.city-heading h2,.archive h2 { font:400 clamp(44px,5.7vw,86px)/1 var(--serif); letter-spacing:-.065em; }
.city-heading p,.archive-intro>p { font-size:15px; line-height:1.65; max-width:36ch; }
.city-heading p a,.city-credit a { text-decoration:underline; text-underline-offset:.18em; }
.postcards { display:grid; grid-template-columns:1.21fr .77fr 1fr; gap:clamp(12px,2.2vw,34px); align-items:start; }
.postcard { min-width:0; }
.postcard-bombas { margin-top:1.6vw; }
.postcard-guancha { margin-top:3.4vw; }
.postcard .zoom-photo { position:relative; display:block; background:var(--paper); padding:5px; border:1px solid var(--rule); }
.postcard img { width:100%; height:auto; aspect-ratio:1.38; object-fit:cover; }
.postcard-catedral img { aspect-ratio:.75; }
.postcard-guancha img { aspect-ratio:1.15; }
.open-photo { position:absolute; bottom:11px; right:11px; background:var(--paper); color:var(--ink); width:30px; height:30px; display:grid; place-items:center; font:22px/1 var(--sans); }
.postcard figcaption { padding:10px 0 0; }
.postcard h3 { font:400 clamp(23px,2.3vw,34px)/1.15 var(--serif); letter-spacing:-.04em; }
.postcard-number { display:block; margin-bottom:3px; font:600 10px var(--sans); letter-spacing:.12em; text-transform:uppercase; }
.city-credit,.city-note { font-size:12px; color:var(--coffee); line-height:1.5; }
.city-credit a { display:inline-flex; min-height:28px; align-items:center; }
.city-note { border-top:1px solid var(--rule); margin-top:17px; padding-top:10px; }
.archive { padding:clamp(45px,6vw,90px) 0; background:var(--ivory); border-block:1px solid var(--rule); }
.archive-layout { display:grid; grid-template-columns:.9fr 1.55fr; gap:clamp(24px,5vw,75px); margin-top:25px; }
.archive h2 { margin-bottom:15px; font-size:clamp(50px,5.3vw,78px); }
.archive h2 i { display:block; }
.archive-row { display:grid; grid-template-columns:minmax(48px,.34fr) minmax(0,1.6fr) auto; align-items:center; gap:16px; border-top:1px solid var(--rule); padding:20px 0; }
.archive-row:last-child { border-bottom:1px solid var(--rule); }
.archive-index { color:var(--green); display:grid; gap:3px; align-self:start; }
.archive-index span { font:italic 32px/1 var(--serif); }
.archive-index small { font:600 9px var(--sans); letter-spacing:.12em; text-transform:uppercase; }
.archive-row h3 { font:400 clamp(26px,2.35vw,36px)/1.1 var(--serif); letter-spacing:-.04em; }
.archive-row p { font-size:14px; line-height:1.6; margin-top:6px; }
.archive-link { display:inline-flex; align-items:center; gap:5px; min-height:44px; font-size:13px; text-decoration:underline; text-underline-offset:3px; }
.visit-notes { margin-top:22px; max-width:450px; }
.visit-notes>.caps { margin-bottom:8px; }
.visit-notes details { border-top:1px solid #8a9480; }
.visit-notes details:last-child { border-bottom:1px solid #8a9480; }
.visit-notes summary { cursor:pointer; min-height:46px; font-size:14px; padding:14px 3px; }
.visit-notes summary:focus-visible { outline:3px solid #ffe5a8; outline-offset:2px; }
.visit-notes details p { font-size:13px; line-height:1.55; margin:0 0 13px; max-width:54ch; }
@media(max-width:850px){
 .city-heading { align-items:start; flex-direction:column; gap:12px; }
 .city-heading p { max-width:62ch; }
 .archive-layout { grid-template-columns:1fr; }
 .archive h2 i { display:inline; }
 .archive-intro>p { max-width:56ch; }
}
@media(max-width:680px){
 .mast { flex-wrap:wrap; padding:7px 0 0; gap:0; }
 .mast nav { width:100%; margin:0; justify-content:space-between; gap:6px; }
 .mast nav a { font-size:12px; }
 .mast nav .shoplink { padding:0; border:0; }
 .visit-intro .sprig { display:none; }
 .postcards { grid-template-columns:1fr 1fr; gap:17px 12px; }
 .postcard-bombas { grid-column:1/-1; margin:0; }
 .postcard-bombas img { aspect-ratio:1.85; }
 .postcard-guancha { margin-top:24px; }
 .city-heading { gap:9px; margin-bottom:18px; }
 .photo-folio .wide>span:first-child { display:none; }
 .city-index { gap:8px; }
 .city-heading h2 { font-size:clamp(42px,10vw,63px); }
 .archive-row { grid-template-columns:45px minmax(0,1fr); gap:8px 13px; }
 .archive-link { grid-column:2; }
}
@media(max-width:365px){
 .mast nav a { font-size:11px; }
 .film img { width:31px; height:25px; }
 .photo-folio .wide>span:last-child { font-size:7px; }
 .city-credit { font-size:11px; }
 .cover { min-height:557px; }
}
.textures { padding:clamp(30px,3.6vw,52px) 0; border-bottom:1px solid var(--rule); background:#eee8d9; }
.texture-head { margin:12px 0 20px; display:flex; align-items:end; justify-content:space-between; gap:24px; }
.texture-head h2 { font:400 clamp(43px,5.4vw,83px)/1.02 var(--serif); letter-spacing:-.065em; }
.texture-head>p { max-width:43ch; font-size:14px; line-height:1.6; }
.swatch-grid { display:grid; grid-template-columns:1.14fr .92fr 1fr; align-items:start; gap:clamp(14px,2vw,30px); }
.swatch-card { min-width:0; }
.swatch-card>a { display:block; position:relative; border:1px solid var(--rule); padding:5px; background:var(--paper); }
.swatch-card img { width:100%; height:auto; aspect-ratio:1.58; object-fit:cover; }
.img-perlas { margin-top:24px; }
.img-perlas img { aspect-ratio:1.32; }
.img-botones { margin-top:10px; }
.img-botones img { aspect-ratio:1.52; }
.swatch-code { position:absolute; left:10px; top:10px; padding:3px 6px; background:var(--paper); color:var(--ink); font-size:9px; text-transform:uppercase; font-weight:650; letter-spacing:.12em; }
.swatch-card figcaption { padding-top:10px; }
.swatch-card h3 { font:400 clamp(26px,2.4vw,36px)/1.1 var(--serif); letter-spacing:-.05em; }
.swatch-card p { padding-top:5px; font:14px/1.55 var(--sans); }
.photo-credits { margin-top:18px; border-top:1px solid var(--rule); font-size:12px; line-height:1.65; }
.photo-credits summary { cursor:pointer; min-height:44px; padding:11px 2px; }
.photo-credits summary:focus-visible { outline:3px solid #9a4435; outline-offset:2px; }
.photo-credits ul { padding-left:20px; margin:0 0 8px; }
.photo-credits a { display:inline-flex; align-items:center; min-height:26px; text-decoration:underline; text-underline-offset:3px; }
.city { background:var(--paper); }
.postcards { grid-template-columns:1.15fr .85fr 1fr; }
.postcard-bombas,.postcard-guancha { margin-top:0; }
.postcard img { aspect-ratio:auto; height:clamp(140px,15vw,205px); }
.postcard-catedral img { object-position:50% 39%; }
@media(max-width:850px) {
 .texture-head { align-items:start; flex-direction:column; gap:12px; }
 .texture-head>p { max-width:63ch; }
}
@media(max-width:680px) {
 .swatch-grid { grid-template-columns:1fr 1fr; gap:18px 11px; }
 .swatch-card:first-child { grid-column:1/-1; display:grid; grid-template-columns:1.15fr 1fr; gap:12px; align-items:center; }
 .swatch-card:first-child img { aspect-ratio:1.15; }
 .img-perlas,.img-botones { margin-top:0; }
 .swatch-card:not(:first-child) img { aspect-ratio:1.35; }
 .swatch-card p { font-size:13px; }
 .swatch-card figcaption { padding-top:7px; }
 .postcards { grid-template-columns:1fr 1fr; }
 .postcard-bombas img { height:auto; aspect-ratio:2.5; }
 .postcard:not(.postcard-bombas) img { height:auto; aspect-ratio:1.25; }
 .city-heading h2 { font-size:clamp(39px,8vw,56px); }
}
