/* ============================================================
   Theme additions — styles for elements introduced in the
   WordPress conversion (gallery grid, single-product layout,
   contact aside, blog list). Reuses existing design tokens.
   ============================================================ */

/* logo image in brand mark */
.brand .mark-img{display:flex;align-items:center;justify-content:center;background:transparent;}
.brand .mark-img img{width:100%;height:100%;object-fit:contain;border-radius:4px;}

/* short page hero (pages, posts) */
.page-hero.short{min-height:clamp(260px,34vw,400px);}

/* homepage featured-project tiles now use a real <img> instead of image-slot */
.proj img.pimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;}

/* ---------- GALLERY GRID ---------- */
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media(max-width:900px){.gal-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.gal-grid{grid-template-columns:1fr;}}
.gal-item{position:relative;border-radius:var(--radius);overflow:hidden;cursor:pointer;margin:0;aspect-ratio:4/3;}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.gal-item:hover img{transform:scale(1.05);}
.gal-item figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:16px 18px;color:#fff;font-size:13px;font-weight:500;background:linear-gradient(0deg,rgba(20,17,14,.82),rgba(20,17,14,0));}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(15,13,11,.92);display:none;align-items:center;justify-content:center;flex-direction:column;padding:5vw;}
.lightbox.open{display:flex;}
.lightbox .lb-fill{max-width:92vw;max-height:80vh;border-radius:4px;overflow:hidden;}
.lightbox .lb-fill img{max-width:92vw;max-height:80vh;width:auto;height:auto;object-fit:contain;}
.lightbox .lb-cap{color:#e4dccd;margin-top:16px;font-size:14px;text-align:center;}
.lightbox .lb-x{position:absolute;top:24px;right:28px;background:none;border:none;color:#fff;font-size:28px;line-height:1;cursor:pointer;}

/* ---------- SINGLE PRODUCT ---------- */
.single-product{padding:clamp(28px,4vw,56px) 0 clamp(40px,5vw,72px);}
.sp-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,4vw,60px);align-items:start;}
@media(max-width:880px){.sp-grid{grid-template-columns:1fr;gap:24px;}}
.sp-media{border-radius:var(--radius);overflow:hidden;position:sticky;top:calc(var(--header-h) + 20px);}
@media(max-width:880px){.sp-media{position:static;}}
.sp-media img{width:100%;aspect-ratio:4/3;object-fit:cover;}

/* ---------- CONTACT ASIDE ---------- */
.contact-aside{display:flex;flex-direction:column;gap:18px;}
.contact-list{list-style:none;margin:18px 0 24px;padding:0;display:flex;flex-direction:column;gap:16px;}
.contact-list li b{display:block;font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;}
.contact-list li span{font-size:15px;color:var(--ink);}
.contact-list a{color:var(--brass);}

/* ---------- BLOG LIST / ENTRY CONTENT ---------- */
.post-list{display:flex;flex-direction:column;gap:clamp(32px,4vw,52px);}
.post-entry{display:grid;gap:14px;}
.post-thumb{border-radius:var(--radius);overflow:hidden;display:block;}
.post-thumb img{width:100%;object-fit:cover;}
.post-meta{font-size:12.5px;letter-spacing:.04em;}
.entry-content{max-width:72ch;}
.entry-content p{margin-bottom:18px;}
.entry-content h2,.entry-content h3{margin:32px 0 14px;}
.entry-content ul,.entry-content ol{margin:0 0 18px 1.2em;}
.entry-content li{margin-bottom:6px;}
.entry-content img{border-radius:var(--radius);margin:18px 0;}
.entry-content a{color:var(--brass);text-decoration:underline;text-underline-offset:2px;}

/* pagination */
.pagination{display:flex;gap:8px;flex-wrap:wrap;margin-top:clamp(32px,4vw,48px);justify-content:center;}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius);font-size:14px;font-weight:600;color:var(--ink);transition:.18s;}
.pagination .page-numbers:hover{border-color:var(--brass);color:var(--brass);}
.pagination .page-numbers.current{background:var(--ink);color:#fff;border-color:var(--ink);}

/* footer widget area */
.footer-widget{margin-top:18px;}

/* WP admin bar offset for sticky header */
body.admin-bar .site-header{top:32px;}
@media(max-width:782px){body.admin-bar .site-header{top:46px;}}
