:root { --photo-paper:#fffaf0; --photo-ink:#11110f; --photo-yellow:#f8cf2c; }
.photo-menu { display:grid; grid-template-columns:1fr 1fr 1fr; grid-template-rows:auto 300px; gap:18px; padding:95px max(7vw,28px); background:#e5dbc8; }
.photo-menu-head { grid-column:1/-1; display:grid; grid-template-columns:1fr auto; align-items:end; gap:16px; margin-bottom:8px; }
.photo-menu-head .eyebrow,.photo-menu-head h2 { grid-column:1; }
.photo-menu-head h2 { margin:0; font:700 clamp(42px,5vw,68px)/.98 Georgia,serif; letter-spacing:-2.8px; }
.photo-menu-head h2 em { color:#111; text-decoration:underline; text-decoration-color:var(--photo-yellow); text-decoration-thickness:7px; text-underline-offset:6px; }
.photo-menu-head .text-link { grid-column:2; grid-row:2; margin-bottom:8px; }
.photo-tile { min-height:330px; position:relative; overflow:hidden; border:1px solid var(--photo-ink); color:white; isolation:isolate; background:#36342d; }
.photo-tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .35s ease; z-index:-2; }
.photo-tile:hover img { transform:scale(1.045); }
.photo-tile:after { content:""; position:absolute; z-index:-1; inset:25% 0 0; background:linear-gradient(0deg,rgba(0,0,0,.84),transparent); }
.photo-tile .tile-caption { position:absolute; inset:auto 22px 23px; display:flex; flex-direction:column; gap:8px; }
.tile-caption small,.tile-tag { font-size:9px; font-weight:800; letter-spacing:1.8px; }
.tile-caption strong { font:700 clamp(25px,2.5vw,38px)/1 Georgia,serif; }
.tile-caption b { font-size:11px; text-transform:uppercase; letter-spacing:.8px; }
.tile-tag { position:absolute; top:18px; left:18px; padding:9px 10px; color:var(--photo-ink); background:var(--photo-yellow); }
.photo-spread { grid-column:span 1; }
.photo-spread img { object-position:center 56%; }
.guest-note { display:grid; grid-template-columns:1fr 1fr; background:#21172a; color:var(--photo-paper); }
.guest-photo { min-height:500px; overflow:hidden; position:relative; }
.guest-photo a { display:block; height:100%; min-height:500px; }
.guest-photo img { display:block; width:100%; height:100%; min-height:500px; object-fit:cover; object-position:center 58%; }
.guest-photo span { position:absolute; left:24px; bottom:24px; padding:10px 12px; background:var(--photo-yellow); color:var(--photo-ink); font-size:9px; font-weight:800; letter-spacing:1.5px; }
.guest-quote { padding:clamp(42px,7vw,100px); align-self:center; }
.guest-quote h2 { margin:20px 0 24px; font:700 clamp(42px,5vw,68px)/.98 Georgia,serif; letter-spacing:-2.8px; }
.guest-quote h2 em { color:var(--photo-yellow); }
.guest-quote blockquote { margin:0; max-width:520px; font:italic clamp(20px,2.2vw,29px)/1.4 Georgia,serif; }
.guest-credit { color:#c6b8cc; font-size:12px; margin:18px 0 24px; }
.guest-quote .light-link { font-size:12px; font-weight:800; line-height:1.5; border-bottom:1px solid var(--photo-yellow); padding-bottom:7px; }
.menu-photo-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; padding:30px max(7vw,28px) 10px; background:#f3eddf; }
.menu-photo-strip a { position:relative; height:clamp(180px,24vw,320px); overflow:hidden; color:white; }
.menu-photo-strip img { width:100%; height:100%; object-fit:cover; transition:transform .35s; }
.menu-photo-strip a:hover img { transform:scale(1.04); }
.menu-photo-strip a:after { content:""; position:absolute; inset:35% 0 0; background:linear-gradient(0deg,rgba(0,0,0,.78),transparent); }
.menu-photo-strip span { position:absolute; z-index:1; inset:auto 18px 18px; font:700 clamp(20px,2.6vw,32px)/1 Georgia,serif; }
.menu-photo-strip b { font:700 13px Arial,sans-serif; }
@media(max-width:800px) { .photo-menu { grid-template-columns:1fr 1fr; grid-template-rows:auto; padding-top:65px; padding-bottom:65px; } .photo-menu-head { grid-column:1/-1; } .photo-tile { min-height:280px; } .photo-spread { grid-column:span 2; } .guest-note { grid-template-columns:1fr; } .guest-photo,.guest-photo a,.guest-photo img { min-height:360px; height:360px; } .menu-photo-strip a { height:230px; } }
@media(max-width:520px) { .photo-menu { grid-template-columns:1fr; gap:14px; padding-left:18px; padding-right:18px; } .photo-menu-head { display:block; } .photo-menu-head .text-link { display:inline-block; margin-top:20px; } .photo-tile,.photo-spread { grid-column:auto; min-height:330px; } .guest-photo,.guest-photo a,.guest-photo img { min-height:290px; height:290px; } .guest-quote { padding:38px 24px 48px; } .menu-photo-strip { grid-template-columns:1fr; padding:20px 18px 0; } .menu-photo-strip a { height:270px; } }
