/* Public gallery */
.customer-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:21px;min-height:160px}
.customer-gallery-grid .gallery-item{min-width:0}
.gallery-photo-open{display:block;width:100%;border:0;padding:0;background:#eae0d5;cursor:zoom-in}
.gallery-photo-open img{display:block;width:100%;height:300px;object-fit:cover;transition:transform .28s}
.gallery-photo-open:hover img{transform:scale(1.015)}
.gallery-empty{padding:40px 25px;background:#f0e8dc;color:#62584e;border:1px solid #d6c7b0;font-size:.97rem}
.photo-lightbox[hidden]{display:none!important}
.photo-lightbox{position:fixed;inset:0;background:rgba(12,9,8,.95);z-index:9999;display:flex;align-items:center;justify-content:center;padding:64px 65px 55px}
.lightbox-figure{margin:0;max-width:min(100%,1020px);max-height:100%;display:flex;flex-direction:column;gap:12px;align-items:center}
.lightbox-figure img{display:block;max-width:100%;max-height:calc(100vh - 155px);object-fit:contain}
.lightbox-figure figcaption{color:#e3d8c9;font-size:.9rem;text-align:center}
.lightbox-btn{position:absolute;border:1px solid #826d52;background:#27201c;color:white;font-size:1.5rem;cursor:pointer;min-width:44px;min-height:44px}
.lightbox-btn:hover{background:#735a38}.lightbox-close{top:15px;right:22px}.lightbox-prev{left:15px}.lightbox-next{right:15px}
/* Admin */
.admin-page{min-height:100vh;margin:0;background:radial-gradient(circle at 90% 0,#34271d,transparent 35%),#171415;color:#f8f3ed;font-family:Arial,Helvetica,sans-serif}
.admin-page *{box-sizing:border-box}
.admin-wrap{width:min(1120px,calc(100% - 36px));margin:auto;padding:27px 0 90px}
.admin-top{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 0 38px;border-bottom:1px solid #49372d}
.admin-logo{width:194px;max-height:85px;object-fit:contain}.admin-top a{color:#e3bf85;text-decoration:none;font-size:.85rem}
.admin-eyebrow{font-size:.74rem;letter-spacing:.23em;text-transform:uppercase;color:#d1ae7b;font-weight:700;margin:0 0 13px}
.admin-page h1{font:normal clamp(2.8rem,6vw,4.9rem)/1.09 Georgia,serif;margin:0 0 15px;color:#fff}
.admin-page p{line-height:1.65;color:#d2c8bf}
.admin-panel{padding:32px;background:#221d1c;border:1px solid #644c36;box-shadow:0 24px 65px #0003}
.admin-login{width:min(480px,100%);margin:60px auto}
.admin-page label{display:block;color:#e4d9cb;font-size:.79rem;font-weight:700;letter-spacing:.05em;margin-bottom:8px}
.admin-page input:not([type=file]),.admin-page select{display:block;width:100%;padding:13px 12px;border:1px solid #826c56;border-radius:3px;color:#241c19;background:#fffdf9;font:inherit;min-width:0}
.admin-page button{cursor:pointer}
.admin-btn{padding:12px 19px;border:0;background:#c59b5d;color:#1e1510;font-weight:800;letter-spacing:.06em;font-size:.79rem;text-transform:uppercase;min-height:45px}
.admin-btn:disabled{opacity:.5;cursor:wait}.admin-btn.secondary{background:transparent;color:#ead4b3;border:1px solid #9e825e}.admin-btn.danger{color:#f2d0cd;border:1px solid #b36461;background:transparent}
.admin-btn.small{font-size:.7rem;padding:8px 13px;min-height:36px}
.admin-row{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}
.admin-field{margin:0 0 17px}.admin-message{min-height:27px;color:#d9b786;font-size:.9rem;margin-top:13px}.admin-message.error{color:#ffb9ad}
.admin-head{margin:44px 0 28px}
.admin-upload-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:start}
.admin-drop{min-height:210px;padding:28px;display:flex;align-items:center;justify-content:center;text-align:center;flex-direction:column;border:1px dashed #b48c58;background:#28211e;cursor:pointer}
.admin-drop.dragging{background:#57412c}.admin-drop b{font:normal 1.45rem Georgia,serif}.admin-drop span{color:#cfc0b0;font-size:.8rem;margin-top:10px}
.admin-drop input{position:absolute;width:1px;height:1px;opacity:0}
.admin-file-info{font-size:.83rem;color:#dfb87b;margin-top:12px}
.admin-library-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:52px 0 22px;flex-wrap:wrap}
.admin-library-head h2{font:normal 2.35rem Georgia,serif;margin:0}.admin-muted{color:#cfc0b0;font-size:.85rem}
.admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.admin-photo{background:#292220;border:1px solid #705337;padding:11px;min-width:0}
.admin-photo img{width:100%;height:200px;object-fit:cover;margin-bottom:15px;background:#3d332e}
.admin-photo .admin-field{margin-bottom:13px}
.admin-controls{display:flex;gap:7px;flex-wrap:wrap;justify-content:space-between}
.admin-empty{padding:40px;background:#29221e;color:#cabdae;grid-column:1/-1}
.admin-help{font-size:.83rem;padding:18px 0 0;color:#d0c0ae}
.admin-preview-thumb{display:flex;gap:8px;flex-wrap:wrap}.admin-preview-thumb img{height:80px;width:80px;object-fit:cover;border:1px solid #7d6045}
[hidden]{display:none!important}
@media(max-width:820px){.customer-gallery-grid,.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-upload-grid{grid-template-columns:1fr}.admin-page h1{font-size:3.4rem}}
@media(max-width:560px){.customer-gallery-grid,.admin-grid{grid-template-columns:1fr}.photo-lightbox{padding:67px 43px}.lightbox-prev{left:5px}.lightbox-next{right:5px}.admin-panel{padding:21px}.admin-top{gap:10px}.admin-logo{width:145px}}

/* Website image management */
.admin-site-section{margin-bottom:34px}.admin-site-section p{max-width:720px}.admin-section-title{font:normal 2.2rem Georgia,serif;color:#fff;margin:6px 0 16px}
.admin-site-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-top:25px}
.admin-site-photo{min-width:0;background:#2e2522;border:1px solid #73583b;padding:16px}
.admin-site-photo h3{font:normal 1.35rem Georgia,serif;margin:0 0 0;color:#fff}.admin-site-photo p{font-size:.81rem;margin:4px 0 14px}
.admin-site-photo img{display:block;width:100%;height:170px;object-fit:cover;border:1px solid #534236;margin-bottom:13px;background:#4b3b2e}
.admin-site-photo input[type=file]{display:block;width:100%;font-size:.8rem;color:#d1c4b4;margin-bottom:12px}
.admin-site-photo .admin-btn{margin:0 7px 8px 0}.admin-site-photo .admin-message{font-size:.78rem;line-height:1.4;min-height:0}
.visual[data-site-image-slot] img.site-card-photo{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;z-index:1}
.visual[data-site-image-slot] .visual-no{z-index:2;position:absolute}
@media(max-width:820px){.admin-site-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.admin-site-grid{grid-template-columns:1fr}}

/* V4: editable image placeholders on homepage and wedding experience cards */
.visual[data-image-slot]{position:relative;overflow:hidden}
.visual[data-image-slot] img.site-card-photo{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;z-index:1}
.visual[data-image-slot] .visual-no{position:absolute;z-index:2}
.admin-group-filter{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 8px}
.admin-group-filter button{background:transparent;border:1px solid #846747;color:#e4d0b5;padding:10px 13px;font-size:.78rem;min-height:40px;font-weight:600}
.admin-group-filter button[aria-pressed="true"]{background:#c59b5d;color:#181311;border-color:#c59b5d}
.admin-site-photo img[data-site-preview="brand-logo"]{object-fit:contain;padding:9px;background:#171415}
.admin-site-photo .admin-photo-status{font-size:.74rem;margin:9px 0 12px;color:#d6c4af}
.admin-site-photo .admin-photo-status.is-custom{color:#f0cb8c}
.admin-site-photo input[type=file]{border:1px dashed #9a7955;padding:11px;background:#241c1a}
.admin-site-photo .admin-message{margin-top:8px}
