/* Luxury Culture by Y.A. — brand: black & white, Montserrat (light/regular/bold), thin white rules.
   Source: Cahier des Charges LC 2021 (screenshots + text templates). Orange accent sampled from the spec's link colour (approx). */
:root{--ink:#000;--paper:#fff;--accent:#e8a21c;--grey:#b3b3b3;--line:#fff;--gap:4px;--pad:28px;
--sans:"Montserrat","Helvetica Neue",Helvetica,Arial,sans-serif;
--serif:"Playfair Display",Didot,"Bodoni MT",Georgia,"Times New Roman",serif}
*{box-sizing:border-box}
html{background:#000}
body{margin:0;background:#000;color:#fff;font-family:var(--sans);font-weight:300;font-size:16px;line-height:1.75}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1480px;margin:0 auto;padding:0 var(--pad)}
/* header: logo left, thin white rule, section links under it */
header.site{padding:22px 0 0}
.logo{margin:0;line-height:0}
.logo a,.logo img{display:inline-block}
.logo img{height:20px;width:auto}
header.site .logo{padding-bottom:12px;border-bottom:1px solid var(--line)}
nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 56px}
nav a{display:inline-block;font-size:.95rem;font-weight:200;letter-spacing:.02em;padding:14px 0 12px;border-bottom:1px solid transparent}
nav a:hover,nav a.active{font-weight:700}
header.site nav{padding-top:0}
/* intro */
.intro{padding:46px 0 28px}
.intro h2{font-weight:200;font-size:2.2rem;line-height:1.2;margin:0 0 10px;letter-spacing:.01em}
.intro p{color:var(--grey);margin:0;max-width:560px;font-size:.95rem}
/* mosaic: 6x3 blocks, block 158x194, gutter 4px (spec Grid Layout) */
.grid{--bw:calc((min(100vw,1480px) - 2*var(--pad) - 5*var(--gap))/6);display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:calc(var(--bw)*194/158);gap:var(--gap);padding-bottom:70px}
.card{position:relative;display:block;overflow:hidden;grid-column:span 2;grid-row:span 1;background:#111}
.card:nth-child(4n+1){grid-column:1/span 4;grid-row:span 2}   /* Landscape Medium 4x2 */
.card:nth-child(4n+2){grid-column:5/span 2;grid-row:span 3}   /* Large Tower 2x3 */
.card:nth-child(4n+3){grid-column:1/span 2;grid-row:span 1}   /* Landscape Small 2x1 */
.card:nth-child(4n+4){grid-column:3/span 2;grid-row:span 1}   /* Landscape Small 2x1 */
.card.hidden{display:none}
.grid.filtered{grid-auto-rows:auto}
.grid.filtered .card,.grid.filtered .card:nth-child(n){grid-column:span 2;grid-row:auto;aspect-ratio:158/194}
.ph{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:flex-start;padding:14px;font-size:.62rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55);transition:transform .6s ease}
.card:hover .ph,.card:focus-visible .ph{transform:scale(1.04)}
/* monochrome placeholders (no photo yet) */
.g1{background:linear-gradient(135deg,#1a1a1a,#3a3a3a 60%,#8a8a8a)}
.g2{background:linear-gradient(160deg,#f2f2f2,#bdbdbd);color:rgba(0,0,0,.5)}
.g3{background:linear-gradient(135deg,#222,#000)}
.g4{background:linear-gradient(200deg,#6d6d6d,#e8e8e8);color:rgba(0,0,0,.5)}
/* real photos (img) in cards, solo picture and text/picture blocks: fill the box without changing aspect ratio */
.card>img,.solo>img,.tpl .pic>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card>img{transition:transform .6s ease}
.card:hover>img,.card:focus-visible>img{transform:scale(1.04)}
.tpl.full{grid-template-columns:1fr;min-height:0}
.tpl.full .txt{align-items:center;padding:80px var(--pad)}
.tpl.full .txt>*{width:100%;max-width:640px}
.tpl.light.full .txt{outline:1px solid #ddd;outline-offset:-1px}
/* hover overlay: title + basic info (tap on mobile = always visible) */
.ov{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:18px 20px;background:rgba(0,0,0,.72);opacity:0;transition:opacity .35s ease}
.card:hover .ov,.card:focus-visible .ov{opacity:1}
.label{font-size:.68rem;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin:0 0 4px}
.card h3{font-weight:700;font-size:1.15rem;line-height:1.25;margin:0 0 6px}
.card p{margin:0;color:#e6e6e6;font-size:.82rem;line-height:1.5}
/* article */
article.post{padding:0 0 10px}
.post-head{max-width:860px;margin:0 auto;padding:60px var(--pad) 40px;text-align:center}
.post-head .label{margin-bottom:10px}
.post-head h1{font-weight:200;font-size:3rem;line-height:1.15;margin:0 0 16px}
.post .byline{font-size:.7rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--grey)}
.solo{position:relative;height:min(70vh,590px);min-height:320px;margin:0 0 var(--gap)}   /* solo picture: fullscreen (min 968x590) */
.solo .ph{align-items:flex-end}
/* text+picture templates: white on black / black on white, text left or right */
.tpl{display:grid;grid-template-columns:1fr 1fr;min-height:590px;margin-bottom:var(--gap)}
.tpl .txt{padding:64px 56px;display:flex;flex-direction:column;justify-content:center}
.tpl .pic{position:relative;min-height:420px}
.tpl.left .txt{order:1}.tpl.left .pic{order:2}
.tpl.right .txt{order:2}.tpl.right .pic{order:1}
.tpl.dark .txt{background:#000;color:#fff}
.tpl.light .txt{background:#fff;color:#000}
.txt p{margin:0 0 1.4em;max-width:520px}
.txt h2{font-weight:700;font-size:1.3rem;margin:1.2em 0 .5em;max-width:520px}
.txt blockquote{margin:1.6em 0;padding:0 0 0 22px;border-left:1px solid currentColor;font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.45rem;line-height:1.4;max-width:520px}
.tpl.dark .txt{outline:1px solid #333;outline-offset:-1px}
.cap{position:absolute;bottom:0;right:0;background:rgba(0,0,0,.6);color:#fff;font-size:.65rem;letter-spacing:.12em;padding:6px 12px}
.note{font-size:.7rem;color:var(--grey);border:1px dashed #555;padding:10px 14px;margin:30px var(--pad)}
.more{border-top:1px solid var(--line);margin-top:40px;padding:40px 0 20px}
.more h2{font-weight:200;font-size:1.8rem;margin:0 0 24px}
.more .grid{padding-bottom:0}
.more .card,.more .card:nth-child(n){grid-column:span 2;grid-row:span 2}
/* about */
.about{max-width:760px;margin:0 auto;padding:70px var(--pad) 90px}
.about h1{font-weight:200;font-size:2.8rem;margin:0 0 30px}
.about h2{font-weight:700;font-size:1.1rem;letter-spacing:.12em;text-transform:uppercase;margin-top:2.2em}
.about ul{padding-left:1.1em}.about li::marker{color:var(--accent)}
.about a,.txt a{color:var(--accent)}
/* footer: logo + sections right, rule on top */
footer.site .wrap{border-top:1px solid var(--line);padding-top:26px;padding-bottom:40px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px}
footer.site .fl{font-size:.7rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--grey)}
footer.site .fr{text-align:right}
footer.site .fr .logo img{height:16px;margin-left:auto}
footer.site .fr nav ul{justify-content:flex-end;gap:4px 28px;margin-top:10px}
footer.site .fr nav a{font-size:.7rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;padding:4px 0}
footer.site .fr nav a:hover{font-weight:700}
footer.site .fr .links{margin-top:6px;font-size:.7rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase}
@media(max-width:900px){.post-head h1{font-size:2.2rem}.tpl{grid-template-columns:1fr}.tpl .txt,.tpl.left .txt,.tpl.right .txt{order:2;padding:40px var(--pad)}.tpl .pic,.tpl.left .pic,.tpl.right .pic{order:1;min-height:340px}}
@media(max-width:760px){:root{--pad:16px}
.grid,.more .grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:auto}
.card,.card:nth-child(n),.more .card,.more .card:nth-child(n){grid-column:span 1;grid-row:auto;aspect-ratio:158/194}
.card:nth-child(4n+1){grid-column:1/-1;aspect-ratio:2/1}
.card:nth-child(4n+2){grid-column:span 1}
.ov{opacity:1;background:linear-gradient(to top,rgba(0,0,0,.85),rgba(0,0,0,0) 70%);padding:12px}
.card h3{font-size:.95rem}.card p{display:none}
.logo img{height:15px}
nav ul{gap:2px 22px}nav a{font-size:.85rem}
.intro{padding:30px 0 20px}.intro h2{font-size:1.6rem}
footer.site .wrap{flex-direction:column}footer.site .fr{text-align:left}footer.site .fr .logo img{margin-left:0}footer.site .fr nav ul{justify-content:flex-start}}
