:root{--ink:#202428;--muted:#687076;--line:#e5dfd5;--gold:#b99a5d;--soft:#f7f5f1;--dark:#111315;--shadow:0 20px 55px rgba(20,24,28,.10)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:#fff}a{text-decoration:none;color:inherit}.site-header{min-height:76px;padding:12px 5vw;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;background:rgba(255,255,255,.95);position:sticky;top:0;z-index:50}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:46px;height:46px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;color:var(--gold);font-weight:700}.brand small{display:block;color:var(--muted);font-size:.78rem}.site-nav{display:flex;gap:18px;flex-wrap:wrap;font-size:.92rem}.site-nav a:hover{color:var(--gold)}.hero{min-height:690px;padding:6vw 5vw;display:grid;grid-template-columns:1fr 520px;gap:50px;align-items:center;background:linear-gradient(120deg,#fff,#f8f6ef)}.eyebrow{margin:0 0 10px;text-transform:uppercase;letter-spacing:.18em;color:var(--gold);font-size:.74rem;font-weight:700}.hero h1,.section h2{font-family:Georgia,serif;font-weight:500;line-height:1.08}.hero h1{font-size:clamp(2.4rem,5vw,5.2rem);margin:0 0 20px}.hero p{color:var(--muted);font-size:1.08rem;max-width:620px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-block;border:1px solid var(--line);padding:.82rem 1.1rem;border-radius:999px;background:#fff}.btn.primary{background:var(--dark);color:#fff;border-color:var(--dark)}.hero-frame{background:#fff;border:1px solid var(--line);border-radius:30px;padding:18px;box-shadow:var(--shadow)}.hero-frame img{width:100%;display:block;border-radius:20px}.section{padding:76px 5vw}.section.soft{background:var(--soft)}.section-head{max-width:820px;margin-bottom:28px}.section h2{font-size:clamp(2rem,3.5vw,3.4rem);margin:0 0 12px}.section p{color:var(--muted)}.category-filter{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.filter-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.65rem .95rem;cursor:pointer}.filter-btn.active{background:var(--dark);color:#fff;border-color:var(--dark)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery-card{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.05)}.gallery-card img{width:100%;height:240px;object-fit:cover;display:block}.gallery-card .body{padding:16px}.gallery-card h3{margin:0 0 8px}.gallery-card p{font-size:.9rem}.upload-section{background:#fff}.upload-form{max-width:820px;display:grid;gap:14px;background:var(--soft);border:1px solid var(--line);border-radius:26px;padding:22px}.upload-form label{display:grid;gap:6px;color:var(--muted)}.upload-form input,.upload-form select,.upload-form textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:.78rem;background:#fff}.note{font-size:.84rem;color:var(--muted)}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature-grid article,.steps article{background:#fff;border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:0 10px 28px rgba(0,0,0,.04)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.steps span{width:42px;height:42px;border-radius:50%;background:var(--dark);color:#fff;display:grid;place-items:center}.faq-list{max-width:900px}.faq-list details{border:1px solid var(--line);border-radius:18px;padding:18px;margin-bottom:12px}.contact{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--dark);color:#fff}.contact p{color:rgba(255,255,255,.7)}.site-footer{padding:30px 5vw;background:#0b0c0d;color:rgba(255,255,255,.7)}@media(max-width:1000px){.hero{grid-template-columns:1fr}.gallery-grid,.feature-grid,.steps{grid-template-columns:1fr 1fr}.site-header{align-items:flex-start;flex-direction:column}}@media(max-width:680px){.gallery-grid,.feature-grid,.steps{grid-template-columns:1fr}.hero{padding-top:70px}.site-nav{gap:10px}}
.language-toggle{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.62rem .9rem;cursor:pointer}


/* V29 category button gallery */
.category-buttons-large {
  gap: 12px;
}
.category-buttons-large .filter-btn {
  font-weight: 700;
  padding: .78rem 1.05rem;
}


/* V31 admin text/image enhancements */
.gallery-extra-text {
  border-top: 1px solid var(--line);
  padding-top: .65rem;
  margin-top: .65rem;
  color: var(--ink) !important;
  font-size: .9rem;
}
.admin-uploaded-tag {
  display: inline-block;
  margin-left: .4rem;
  padding: .16rem .42rem;
  border-radius: 999px;
  background: var(--soft);
  color: var(--gold);
  font-size: .72rem;
}


/* V32 thumbnail gallery + large zoom view */
.gallery-thumb-btn {
  position: relative;
  display: block;
  width: 100%;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  cursor: zoom-in;
  overflow: hidden;
}
.gallery-thumb-btn img {
  width: 100%;
  height: 240px;
  object-fit: cover;
  display: block;
  transition: transform .25s ease;
}
.gallery-thumb-btn:hover img {
  transform: scale(1.04);
}
.gallery-zoom-hint {
  position: absolute;
  right: 10px;
  bottom: 10px;
  padding: .35rem .55rem;
  border-radius: 999px;
  background: rgba(17,19,21,.82);
  color: #fff;
  font-size: .76rem;
}
.gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,.74);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.gallery-lightbox.active {
  display: flex;
}
.gallery-lightbox-panel {
  width: min(1100px, 96vw);
  max-height: 92vh;
  background: #fff;
  border-radius: 24px;
  overflow: hidden;
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr auto;
}
.gallery-lightbox-close {
  position: absolute;
  right: 14px;
  top: 12px;
  z-index: 2;
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  font-size: 1.6rem;
}
.gallery-lightbox-toolbar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 14px 64px 12px 16px;
  border-bottom: 1px solid var(--line);
}
.gallery-lightbox-toolbar button {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: .6rem .9rem;
  cursor: pointer;
}
.gallery-lightbox-image-wrap {
  height: min(68vh, 680px);
  overflow: auto;
  display: grid;
  place-items: center;
  background: #f7f5f1;
}
.gallery-lightbox-image-wrap img {
  max-width: 96%;
  max-height: 96%;
  object-fit: contain;
  transition: transform .2s ease;
  transform-origin: center center;
}
.gallery-lightbox-caption {
  padding: 16px 20px;
  border-top: 1px solid var(--line);
}
.gallery-lightbox-caption h3 {
  margin: 0 0 6px;
}
.gallery-lightbox-caption p {
  margin: 0;
  color: var(--muted);
}
.upload-item.is-hidden {
  opacity: .62;
  background: #fbf7f7;
}

/* V33 removed record styling */
.upload-item.is-hidden{opacity:.62;background:#fbf7f7;}

/* V39 admin locked sensitive controls */
.admin-quote-list {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}
.admin-quote-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
  background: #fff;
}
.admin-quote-card h4 {
  margin: 0 0 8px;
}
.admin-quote-card p {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: .35rem 0;
}


/* V40 admin tabs, contain-fit images, quote detail modal */
.admin-tab-nav{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.admin-tab-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.72rem 1rem;cursor:pointer;font-weight:700}.admin-tab-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}.admin-section[hidden]{display:none!important}.preview-box img,.upload-item img,.gallery-card img{object-fit:contain!important;background:#fff}.admin-modal{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.58);display:grid;place-items:center;padding:24px}.admin-modal[hidden]{display:none!important}.admin-modal-panel{width:min(1100px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:26px;border:1px solid var(--line);box-shadow:0 28px 80px rgba(0,0,0,.28)}.admin-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line)}.admin-modal-head h2{margin:0;font-family:Georgia,serif;font-weight:500}#closeAdminQuoteDetailBtn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1.4rem}.admin-modal-body{padding:18px 20px;display:grid;gap:18px}#adminQuotePreviewCanvas{width:100%;height:auto;border:1px solid var(--line);border-radius:18px;background:#fff}.admin-quote-detail-table{width:100%;border-collapse:collapse}.admin-quote-detail-table td{border:1px solid var(--line);padding:10px}.admin-quote-detail-table td:first-child{width:210px;font-weight:700;background:var(--soft)}


/* V41 gallery title-only cards and full contain-fit image display */
.title-only-body {
  padding: 18px 18px 20px !important;
}
.title-only-body h3 {
  margin: 0 !important;
}
.title-only-body p,
.title-only-body .gallery-extra-text,
.title-only-body .admin-uploaded-tag {
  display: none !important;
}
.gallery-card .body p,
.gallery-card .body .gallery-extra-text,
.gallery-card .body .admin-uploaded-tag {
  display: none !important;
}
.gallery-thumb-btn img,
.gallery-card img,
.preview-box img,
.upload-item img,
.catalog-card > img,
.catalog-tooltip img {
  object-fit: contain !important;
  background: #fff !important;
}
.gallery-thumb-btn {
  background: #fff !important;
}


/* V42 catalogue database upload manager */
#adminCatalogueUploadManager .preview-box img,
#catalogueUploadList .upload-item img {
  object-fit: contain !important;
  background: #fff !important;
}


/* V47 restored admin functions */
#adminCatalogueUploadManager .preview-box img,
#catalogueUploadList .upload-item img,
.preview-box img,
.upload-item img {
  object-fit: contain !important;
  background: #fff !important;
}
.admin-tab-nav {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 18px 0;
}
.admin-tab-btn {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: .72rem 1rem;
  cursor: pointer;
  font-weight: 700;
}
.admin-tab-btn.active {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
.admin-section[hidden] {
  display: none !important;
}


/* V48 homepage cleanup only - Frame Designer locked */
.service-flow-section,
.public-admin-note {
  background: #fff;
}
.service-flow-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 22px;
}
.service-flow-grid article {
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 22px;
  background: var(--soft);
  box-shadow: var(--shadow);
}
.service-flow-grid span {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--ink);
  color: #fff;
  font-weight: 700;
  margin-bottom: 14px;
}
.service-flow-grid h3 {
  margin: 0 0 8px;
  font-family: Georgia, serif;
  font-weight: 500;
}
.service-flow-grid p {
  color: var(--muted);
  margin: 0;
}
.public-admin-note {
  border-top: 1px solid var(--line);
}
@media(max-width: 900px) {
  .service-flow-grid {
    grid-template-columns: 1fr;
  }
}


/* V49 homepage duplicate categories removed - Previous Framing is the single gallery entry point */


/* V52 full homepage editor - restore homepage, edit from admin */
#fullHomepageEditor details {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
  margin: 14px 0;
  background: #fff;
}
#fullHomepageEditor summary {
  cursor: pointer;
  font-weight: 800;
  margin-bottom: 10px;
}
#fullHomepageEditor .two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.visibility-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.visibility-grid label {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px;
  background: var(--soft);
}
@media(max-width: 900px) {
  #fullHomepageEditor .two-col,
  .visibility-grid {
    grid-template-columns: 1fr;
  }
}

/* V56 admin material max size fields */
#adminCatalogueUploadManager .two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media(max-width: 900px) {
  #adminCatalogueUploadManager .two-col {
    grid-template-columns: 1fr;
  }
}


/* V57 catalogue database review restored */
.catalogue-review-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
  margin-top: 14px;
}
.catalogue-review-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px;
  background: #fff;
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 12px;
  align-items: start;
}
.catalogue-review-card img,
.catalogue-review-noimg {
  width: 96px;
  height: 96px;
  object-fit: contain;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: var(--muted);
  font-size: .78rem;
}
.catalogue-review-card strong {
  display: block;
  margin-bottom: 4px;
}
.catalogue-review-card p {
  margin: 3px 0;
  color: var(--muted);
  font-size: .86rem;
}


/* V62 Super Admin / backend foundation */
pre {
  white-space: pre-wrap;
  overflow: auto;
  max-height: 420px;
  background: #111315;
  color: #f8f6ef;
  padding: 16px;
  border-radius: 16px;
}
.admin-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 12px 0;
}
.catalogue-upload-card .preview-box img{max-width:100%;max-height:220px;object-fit:contain;}
