:root{
    --bg1:#f7eff6;
    --bg2:#f5ebdf;
    --card:#ffffff;
    --text:#2d1f2f;
    --muted:#6e6270;
    --line:#eadcea;
    --primary:#6b2f7b;
    --accent:#d4af37;
    --accentText:#1e1b12;
    --shadow:0 20px 45px rgba(0,0,0,.10);
}

*{box-sizing:border-box}

body{
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    color:var(--text);
    background:linear-gradient(135deg,var(--bg1),var(--bg2));
    min-height:100vh;
}

.page{
    max-width:560px;
    margin:26px auto;
    padding:16px;
}

.card{
    background:var(--card);
    border-radius:28px;
    box-shadow:var(--shadow);
    padding:24px;
}

.logo{
    display:block;
    width:120px;
    height:120px;
    object-fit:cover;
    margin:0 auto 14px;
    border-radius:24px;
    background:#fafafa;
    border:1px solid var(--line);
}

h1{
    margin:0;
    text-align:center;
    color:var(--primary);
    font-size:42px;
    line-height:1.05;
}

.tagline{
    margin:10px 0 18px;
    text-align:center;
    color:var(--muted);
    font-size:18px;
}

.info{
    text-align:center;
    color:#3b2f3d;
    margin-bottom:18px;
    line-height:1.6;
}

.info a{
    color:inherit;
    text-decoration:none;
}

.contact-row{
    display:flex;
    justify-content:center;
    gap:18px;
    margin:12px 0 18px 0;
    font-size:14px;
    color:#5c4a63;
    flex-wrap:wrap;
}

.contact-row a{
    text-decoration:none;
    color:#5c4a63;
    font-weight:600;
}

.btn{
    display:block;
    text-align:center;
    text-decoration:none;
    padding:15px 16px;
    margin:12px auto;
    border-radius:16px;
    font-weight:700;
    font-size:17px;
    width:92%;
    max-width:420px;
    transition:all .25s ease;
    box-shadow:0 6px 14px rgba(0,0,0,.10);
}

.btn.primary{
    background:var(--primary);
    color:#fff;
}

.btn.gold{
    background:var(--accent);
    color:var(--accentText);
}

.btn:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 20px rgba(0,0,0,.15);
}

.gallery-wrap{
    max-height:0;
    overflow:hidden;
    opacity:0;
    transform:translateY(-8px) scale(.98);
    transition:max-height .35s ease, opacity .25s ease, transform .25s ease, margin .25s ease;
    margin:0 auto;
    width:92%;
    max-width:420px;
}

.gallery-wrap.open{
    max-height:260px;
    opacity:1;
    transform:translateY(0) scale(1);
    margin:10px auto 4px;
}

.gallery-row{
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding:10px 2px 12px;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
}

.gallery-row::-webkit-scrollbar{
    height:8px;
}

.gallery-row::-webkit-scrollbar-thumb{
    background:rgba(0,0,0,.15);
    border-radius:20px;
}

.gallery-thumb{
    width:140px;
    height:140px;
    border-radius:16px;
    object-fit:cover;
    flex:0 0 auto;
    scroll-snap-align:start;
    box-shadow:0 8px 18px rgba(0,0,0,.12);
    background:#f3f3f3;
    cursor:pointer;
    transition:transform .2s ease, box-shadow .2s ease;
}

.gallery-thumb:active{
    transform:scale(.98);
}

.map-embed{
    margin-top:22px;
    border-radius:18px;
    overflow:hidden;
    border:1px solid #e6d8e8;
    background:#fff;
}

.map-embed iframe{
    width:100%;
    min-height:320px;
    border:0;
    display:block;
}

.qr-block{
    text-align:center;
    margin-top:22px;
}

.qr-block img{
    width:140px;
    height:140px;
}

.qr-text{
    font-size:13px;
    color:#777;
    margin-top:6px;
}

.share-row{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top:18px;
}

.share-btn{
    flex:1;
    min-width:120px;
    border:1px solid var(--line);
    background:#f9f6fa;
    color:#3b2d3e;
    border-radius:14px;
    padding:12px 14px;
    font-weight:700;
    cursor:pointer;
}

.footer{
    margin-top:18px;
    text-align:center;
    color:var(--muted);
    font-size:13px;
}

/* iPhone-style lightbox */
.lightbox{
    position:fixed;
    inset:0;
    background:rgba(10,10,14,.96);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:9999;
    opacity:0;
    transition:opacity .22s ease;
    touch-action:pan-y;
}

.lightbox.open{
    display:flex;
    opacity:1;
}

.lb-stage{
    position:relative;
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:56px 16px 70px;
}

.lb-image{
    max-width:100%;
    max-height:100%;
    object-fit:contain;
    border-radius:16px;
    box-shadow:0 10px 35px rgba(0,0,0,.35);
    transform:scale(.98);
    transition:transform .2s ease;
}

.lightbox.open .lb-image{
    transform:scale(1);
}

.lb-close{
    position:absolute;
    top:14px;
    right:14px;
    width:42px;
    height:42px;
    border:0;
    border-radius:999px;
    background:rgba(255,255,255,.14);
    color:#fff;
    font-size:28px;
    line-height:1;
    cursor:pointer;
    z-index:2;
}

.lb-nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:46px;
    height:46px;
    border:0;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    color:#fff;
    font-size:34px;
    line-height:1;
    cursor:pointer;
    z-index:2;
}

.lb-prev{ left:12px; }
.lb-next{ right:12px; }

.lb-count{
    position:absolute;
    left:50%;
    bottom:18px;
    transform:translateX(-50%);
    background:rgba(255,255,255,.12);
    color:#fff;
    padding:8px 14px;
    border-radius:999px;
    font-size:14px;
    letter-spacing:.2px;
}

/* admin */
.admin-wrap{
    max-width:900px;
    margin:26px auto;
    background:#fff;
    border-radius:28px;
    box-shadow:var(--shadow);
    padding:24px;
}

.admin-note{
    color:var(--muted);
    margin:0 0 18px;
}

.flash{
    background:#eef8ee;
    color:#245724;
    border:1px solid #cfe5cf;
    padding:12px 14px;
    border-radius:14px;
    margin-bottom:16px;
}

.grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

.full{grid-column:1 / -1}

.field{
    display:flex;
    flex-direction:column;
    gap:6px;
}

label{
    font-weight:700;
    font-size:14px;
}

input[type="text"],
input[type="url"],
input[type="email"],
input[type="file"],
textarea{
    width:100%;
    padding:12px 13px;
    border:1px solid var(--line);
    border-radius:14px;
    font-size:15px;
    background:#fff;
}

textarea{
    resize:vertical;
    min-height:92px;
}

.hint{
    font-size:12px;
    color:var(--muted);
}

.check{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:8px;
}

.check input{
    width:auto;
}

.logo-box{
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
}

.logo-preview{
    width:74px;
    height:74px;
    object-fit:cover;
    border-radius:16px;
    border:1px solid var(--line);
    background:#fafafa;
}

.actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:18px;
}

.admin-btn, button.admin-btn{
    border:0;
    text-decoration:none;
    display:inline-block;
    padding:13px 18px;
    border-radius:14px;
    font-weight:700;
    cursor:pointer;
}

.admin-btn.save{
    background:var(--primary);
    color:#fff;
}

.admin-btn.preview{
    background:var(--accent);
    color:var(--accentText);
}

.admin-btn.return{
    background:#efe7ef;
    color:#352638;
}

.preview-frame{
    margin-top:24px;
    border:1px solid var(--line);
    border-radius:18px;
    overflow:hidden;
    background:#fff;
}

.preview-frame iframe{
    width:100%;
    height:760px;
    border:0;
    background:#fff;
}

.admin-gallery{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:10px;
}

.thumb-box{
    position:relative;
}

.thumb-box img{
    width:86px;
    height:86px;
    object-fit:cover;
    border-radius:12px;
    border:1px solid #e6dbe7;
    background:#fafafa;
}

.thumb-del{
    position:absolute;
    top:-7px;
    right:-7px;
    width:22px;
    height:22px;
    line-height:22px;
    text-align:center;
    border-radius:999px;
    text-decoration:none;
    font-weight:700;
    background:#c92b2b;
    color:#fff;
    box-shadow:0 3px 8px rgba(0,0,0,.18);
}

@media (max-width:760px){
    .grid{grid-template-columns:1fr}
    .admin-wrap{margin:0; border-radius:0; min-height:100vh}
}

@media (max-width:640px){
    h1{font-size:34px}
    .tagline{font-size:16px}
    .btn{font-size:17px}
    .gallery-thumb{width:122px; height:122px}
    .lb-nav{width:40px; height:40px; font-size:28px}
    .lb-close{width:40px; height:40px; font-size:26px}
}



.hours-box{
    margin:14px auto 10px;
    max-width:420px;
    font-size:15px;
}

.hours-today{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    cursor:pointer;
    padding:6px 0;
    border-top:1px solid #eee;
    border-bottom:1px solid #eee;
}

.hours-all{
    margin-top:6px;
}

.hours-row{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:4px 0;
}

.hours-open{
    color:#111;
    font-weight:700;
}

.hours-closed{
    color:#c62828;
    font-weight:700;
}

.hours-caret{
    font-size:12px;
}




.hours-box{
margin-top:8px;
font-size:14px;
}

.hours-today{
cursor:pointer;
font-weight:600;
}

.hours-row{
color:#555;
margin-left:4px;
}



.hours-today{
display:flex;
gap:6px;
align-items:center;
cursor:pointer;
font-weight:600;
}

.caret{
font-size:12px;
}

