*{box-sizing:border-box}
body{margin:0;background:var(--cream,#f3f0e8);color:var(--ink,#181916);font:16px/1.55 Arial,sans-serif}
a{color:inherit}
:focus-visible{outline:2px solid #956d2f;outline-offset:4px}
.wrap{width:min(1200px,90%);margin:auto}
.bar,.intro,footer{background:var(--ink);color:#fff}
.bar{border-bottom:1px solid #ffffff24}
.bar-inner,.footer-inner,.brand,nav,.actions,.pager{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.bar-inner,.footer-inner{justify-content:space-between;padding:19px 0}
.brand{text-decoration:none;font-weight:bold;letter-spacing:.18em;gap:12px}
.brand small{display:block;color:var(--gold);font-size:10px}
.mark{width:24px;height:32px;border:2px solid var(--gold);display:block;position:relative}
.mark:after{content:"";position:absolute;inset:4px 4px -2px;border:1px solid var(--gold);transform:skewY(-12deg)}
nav a,.footer-inner a{font-size:14px;text-decoration:none}
nav a:hover,.footer-inner a:hover{text-decoration:underline}
.intro{padding:60px 0 48px}
.eyebrow{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.17em;font-weight:bold;color:var(--gold)}
h1,h2{font-family:Georgia,serif;line-height:1.12;font-weight:400}
h1{font-size:clamp(36px,6vw,70px);margin:12px 0 16px}
h2{font-size:clamp(25px,3.7vw,38px);margin:0 0 16px}
.intro p:last-child{max-width:650px;color:#dedbd0}
.browse{padding:40px 0 65px}
.categories{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,205px),1fr));gap:12px;margin-bottom:32px}
.category{display:block;padding:16px;background:#fffefa;border:1px solid #d8d1c1;text-decoration:none}
.category[aria-current],.category:hover{border-color:#8b6a37;background:#f0e2c5}
.category strong,.category span{display:block}
.category span{font-size:13px;margin-top:5px}
.search{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:20px 0 30px}
.search label{flex:1 1 240px}
label{display:block;font-weight:bold;font-size:14px}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid #aca492;background:#fffefa;color:#181916;font:inherit;border-radius:0;margin-top:5px}
button,.button{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;background:var(--gold);border:1px solid #9c7a43;color:#181916;font:700 14px/1.4 Arial,sans-serif;text-decoration:none;cursor:pointer}
button:hover,.button:hover{background:#dec493}
button:disabled{opacity:.6;cursor:wait}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:16px}
.card{border:1px solid #d8d1c1;background:#fffefa;display:flex;flex-direction:column}
.card-image,.detail-image{display:block;background:#fff;width:100%;object-fit:contain}
.card-image{height:224px;padding:12px}
.card-copy{padding:16px;display:flex;flex-direction:column;flex:1;align-items:start;gap:10px}
.card-copy h3{font-size:15px;line-height:1.42;margin:0;overflow-wrap:anywhere}
.card-copy h3 a{text-decoration:none}
.card-copy h3 a:hover{text-decoration:underline}
.card-copy .button{margin-top:auto}
.muted{font-size:14px;color:#59554a}
.pager{margin-top:30px}
.detail{padding:32px 0 60px}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:start;margin-top:20px}
.detail-image{height:clamp(290px,48vw,540px);border:1px solid #d8d1c1;padding:15px}
.detail h1{font-size:clamp(26px,3.4vw,43px);overflow-wrap:anywhere}
.detail .eyebrow{color:#745623}
.thumbs{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.thumbs button{padding:3px;background:#fffefa;border-color:#c0b498}
.thumbs button[aria-pressed=true]{border:2px solid #8b6a37}
.thumbs img{width:60px;height:65px;object-fit:contain;display:block}
.panel{background:#fffefa;border:1px solid #d8d1c1;padding:18px;margin-top:22px}
.panel h2{font-size:24px;margin:0 0 12px}
.catalog-offer{margin:0 0 28px;border-left:4px solid var(--gold);padding:clamp(16px,3vw,28px)}
.catalog-offer h2{font-size:clamp(24px,3.7vw,38px)}
.catalog-offer p{max-width:680px;margin:0 0 12px}
.catalog-offer .button{min-height:44px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.full{grid-column:1/-1}
.check{display:flex;align-items:center;gap:8px;margin:10px 0}
.check input{width:auto}
footer{font-size:13px}
@media(max-width:700px){.detail-grid{grid-template-columns:1fr;gap:22px}.intro{padding:35px 0}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card-image{height:165px}.card-copy{padding:11px}.bar-inner{gap:10px}}
@media(max-width:355px){.grid,.fields{grid-template-columns:1fr}}
.category-image{display:block;width:100%;height:90px;object-fit:contain;margin-bottom:12px;background:#fff}

.service-copy { max-width: 760px; }
.service-photo { display: block; width: min(100%, 400px); max-height: 400px; object-fit: contain; background: #fff; }

.photo-open { margin-top: 10px; min-height: 44px; }
.photo-viewer {
  width: min(94vw, 950px);
  max-width: none;
  padding: 12px;
  border: 1px solid #9c7a43;
  background: var(--ink);
}
.photo-viewer::backdrop { background: rgb(0 0 0 / 80%); }
body:has(.photo-viewer[open]) { overflow: hidden; }
.photo-toolbar { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.photo-toolbar button { min-height: 44px; }
.photo-toolbar [aria-pressed="true"] { background: #fffefa; }
.photo-viewport {
  height: min(74vh, calc(100dvh - 100px));
  overflow: auto;
  overscroll-behavior: contain;
  background: #fff;
}
.photo-viewport img { display: block; width: 100%; height: 100%; object-fit: contain; }
.photo-viewport.is-zoomed img { width: 200%; height: 200%; }
