:root{--ink:#24201d;--muted:#6d655d;--paper:#faf7f2;--panel:#f1ebe1;--line:#e4dbcc;--accent:#9a5634;--accent-d:#7c4127;--dark:#1d1a18}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.7 "Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
h1,h2,.brand,.cname{font-family:"Cormorant Garamond","Iowan Old Style",Palatino,Georgia,serif;font-weight:600;letter-spacing:.2px}
a{color:var(--accent-d)}a:hover{color:var(--accent)}
.top{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;gap:10px 32px;align-items:center;justify-content:space-between;padding:16px clamp(16px,5vw,72px);background:rgba(250,247,242,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{font-size:24px;letter-spacing:5px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;line-height:1.05}
.brand span{font:11px/1.6 "Jost",sans-serif;letter-spacing:3px;text-transform:uppercase;color:var(--muted)}
nav{display:flex;flex-wrap:wrap;gap:4px 24px;font-size:14px;letter-spacing:1.2px;text-transform:uppercase}
nav a{text-decoration:none;color:var(--ink);padding:4px 0;border-bottom:1px solid transparent}
nav a:hover,nav a[aria-current]{border-color:var(--accent);color:var(--ink)}
.eyebrow{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin:0 0 14px}
h1{font-size:clamp(38px,6vw,76px);line-height:1.02;margin:0 0 18px;font-weight:500}
.lede{font-size:clamp(18px,2vw,22px);color:var(--muted);max-width:36ch;margin:0}
.hero{padding:clamp(48px,8vw,110px) clamp(16px,5vw,72px) clamp(28px,4vw,48px);max-width:1320px;margin:0 auto}
.hero.split,.hero.home{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(24px,5vw,72px);align-items:center}
.hero.home{padding-top:clamp(32px,5vw,64px)}
.heroimg img{width:100%;aspect-ratio:4/5;max-height:720px;object-fit:cover;box-shadow:0 30px 60px rgba(40,25,10,.22)}
.collage{position:relative;display:grid;grid-template-columns:1.5fr 1fr;grid-template-rows:1fr 1fr;gap:14px;aspect-ratio:6/5;max-height:680px}
.collage img{width:100%;height:100%;object-fit:cover;box-shadow:0 24px 50px rgba(40,25,10,.2)}
.collage .c1{grid-row:1/3}
.content{max-width:860px;margin:0 auto;padding:8px clamp(16px,5vw,72px) 88px}
.content h2{font-size:clamp(28px,3.4vw,40px);font-weight:500;margin:56px 0 12px;line-height:1.1}
.content ul,.content ol{padding-left:22px}.content li{margin:7px 0}
.wide{width:min(1320px,calc(100vw - 32px));position:relative;left:50%;transform:translateX(-50%);margin:72px 0}
.wide h2{text-align:center;margin-bottom:28px}
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{display:block;text-decoration:none;color:var(--ink);background:#fff;overflow:hidden}
.card img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .6s ease}
.card.custom img{object-fit:contain;background:var(--panel);padding:18%}
.card:hover img{transform:scale(1.04)}
.cname{display:block;font-size:28px;padding:16px 18px 0}.cline{display:block;font-size:14px;color:var(--muted);padding:2px 18px 18px;letter-spacing:.3px}
.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.mgrid figure .zoom{aspect-ratio:1/1;height:auto}
figure{margin:0}
.zoom{all:unset;cursor:zoom-in;display:block;overflow:hidden;width:100%;height:100%}
.zoom img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.zoom:hover img{transform:scale(1.05)}
.zoom:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mgrid figcaption{display:none}
.gallery{margin:72px 0}.gallery h2,.gallery>.small{text-align:center}.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;margin-top:24px}
.ggrid figure .zoom{aspect-ratio:4/5;height:auto}.ggrid figcaption{font-size:13px;color:var(--muted);padding:8px 2px 0;letter-spacing:.3px}
.more{white-space:nowrap;font-size:14px;letter-spacing:.5px}
.btn{display:inline-block;background:var(--dark);color:#fff;text-decoration:none;padding:14px 28px;font-size:13px;letter-spacing:2px;text-transform:uppercase;border:1px solid var(--dark);cursor:pointer;font-family:inherit}
.btn:hover{background:var(--accent-d);border-color:var(--accent-d);color:#fff}
.btn.ghost{background:transparent;color:var(--dark)}.btn.ghost:hover{background:var(--dark);color:#fff}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin:32px 0}
.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;margin:14px 0;font-size:16px}
th,td{border-bottom:1px solid var(--line);padding:12px;text-align:left;vertical-align:top}th{background:var(--panel);font-weight:500}
.faq{margin-top:56px}.faq details{border-bottom:1px solid var(--line);padding:14px 0}
.faq summary{cursor:pointer;font-weight:500}.faq p{margin:8px 0 0;color:var(--muted)}
.enquiry{background:#fff;border:1px solid var(--line);padding:26px;margin:32px 0}
.enquiry label{display:block;font-size:13px;letter-spacing:.5px;color:var(--muted);margin-bottom:14px}
.enquiry input,.enquiry select,.enquiry textarea{display:block;width:100%;margin-top:5px;padding:11px;border:1px solid var(--line);font:inherit;color:var(--ink);background:#fff}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.hp{display:none}
.small{font-size:14px;color:var(--muted)}
dialog#lb{border:0;padding:0;max-width:min(92vw,1100px);max-height:92vh;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.4)}
dialog#lb::backdrop{background:rgba(20,16,14,.82)}
dialog#lb img{max-height:76vh;width:auto;margin:0 auto}
dialog#lb .lbt{margin:12px 20px 4px;font-size:15px;color:var(--muted)}dialog#lb .btn{margin:8px 20px 20px}
dialog#lb .x{position:absolute;right:10px;top:6px;border:0;background:rgba(255,255,255,.85);font-size:30px;line-height:1;cursor:pointer;padding:2px 10px}
footer{display:grid;grid-template-columns:2fr 1.3fr 1.1fr 1fr;gap:28px;padding:56px clamp(16px,5vw,72px);background:var(--dark);color:#e7dfd3;font-size:15px}
footer a{color:#f0c9a8;text-decoration:none}footer a:hover{text-decoration:underline}
@media (max-width:900px){.cgrid{grid-template-columns:repeat(2,1fr)}.mgrid{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}footer{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.hero.split,.hero.home{grid-template-columns:1fr;min-height:0}.collage{aspect-ratio:1/1}.grid2{grid-template-columns:1fr}.top{padding:12px 16px}nav{gap:4px 16px;font-size:12px}.cname{font-size:24px}}
@media (max-width:480px){.cgrid{grid-template-columns:1fr 1fr;gap:10px}.cname{font-size:20px;padding:10px 10px 0}.cline{padding:2px 10px 12px;font-size:12px}footer{grid-template-columns:1fr}}
