:root{--ink:#4a2c18;--accent:#b25c22;--accent2:#e08a3c;--cream:#fffaf3;--card:#ffffff;--line:#f0e2d0;--muted:#8a6f52;--soft:#6d5138;--chip:#fdf1e2;--header:#ffffff}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Poppins',system-ui,sans-serif;background:var(--cream);color:var(--ink);line-height:1.65}
h1,h2,h3{font-family:'Playfair Display',Georgia,serif;line-height:1.25}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
header.site{background:var(--header);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.hd{display:flex;align-items:center;gap:14px;padding:10px 0;flex-wrap:wrap}
.hd img.logo{height:42px;width:auto}
nav.main{margin-left:2px;width:auto;order:2;display:flex;gap:10px;flex-wrap:wrap;font-size:14px}
nav.main a{color:var(--ink);font-weight:500}
.crumbs{font-size:13px;color:var(--muted);padding:14px 0 0}
.hero{padding:26px 0 8px;text-align:center}
.hero h1{font-size:40px;margin-bottom:10px}
.hero p{max-width:760px;margin:0 auto;color:var(--soft)}
section{padding:28px 0}
h2.sec{font-size:29px;margin-bottom:6px}
p.secsub{color:var(--soft);max-width:820px;margin-bottom:18px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 2px 10px rgba(120,72,20,.06)}
.card img{width:100%;height:auto;display:block;aspect-ratio:2/3;object-fit:cover}
.card .body{padding:14px 16px 16px}
.card h3{font-size:19px;margin-bottom:5px}
.card p{font-size:14px;color:var(--soft)}
.tags{margin:10px 0 4px;display:flex;gap:6px;flex-wrap:wrap}
.tags a{font-size:12px;background:var(--chip);border:1px solid var(--line);padding:3px 10px;border-radius:20px;color:var(--accent)}
.btns{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.btn{display:inline-block;padding:8px 14px;border-radius:9px;font-size:14px;font-weight:600;border:1px solid var(--accent)}
.btn.solid{background:var(--accent);color:#fff}
.btn.wa{border-color:#1faa55;color:#128c4b}
.btn.pin{border-color:#c8232c;color:#c8232c}
.btn:hover{text-decoration:none;filter:brightness(1.06)}
.wishes{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.wish{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent2);border-radius:10px;padding:14px 16px;font-size:15px}
.wish button{margin-top:8px;background:var(--chip);border:1px solid var(--line);border-radius:7px;padding:5px 12px;font-size:13px;cursor:pointer;color:var(--accent);font-weight:600}
details.faq{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:13px 16px;margin-bottom:10px}
details.faq summary{font-weight:600;cursor:pointer;font-family:'Playfair Display',Georgia,serif;font-size:17px}
details.faq p{margin-top:7px;color:var(--soft);font-size:15px}
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.catcard{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.catcard img{width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;display:block}
.catcard .body{padding:12px 15px}
.catcard h3{font-size:19px}
footer.site{background:#3c2413;color:#f3e6d4;margin-top:36px;padding:30px 0;font-size:14px}
footer.site a{color:#ffc98a}
.fcols{display:flex;gap:34px;flex-wrap:wrap}
.fcols h4{font-family:'Playfair Display',serif;margin-bottom:8px;color:#fff}
.small{font-size:13px;color:var(--muted)}
@media(max-width:640px){.hero h1{font-size:30px}h2.sec{font-size:24px}.hd img.logo{height:44px}}
/* --- mobile responsiveness (owner requirement) --- */
img{max-width:100%}
@media(max-width:760px){
  nav.main{order:3;margin-left:0;width:100%;flex-wrap:nowrap;overflow-x:auto;padding:6px 0 8px;gap:14px;-webkit-overflow-scrolling:touch}
  nav.main a{white-space:nowrap;font-size:14px}
  .grid{grid-template-columns:1fr 1fr;gap:12px}
  .card .body{padding:10px 12px 12px}
  .card h3{font-size:16px}
  .card p{font-size:13px}
  .btns .btn{flex:1 1 40%;text-align:center;padding:8px 6px;font-size:13px}
  .wishes{grid-template-columns:1fr}
  .cats{grid-template-columns:1fr 1fr;gap:12px}
  section{padding:20px 0}
}
@media(max-width:380px){ .grid{grid-template-columns:1fr} .cats{grid-template-columns:1fr} }

/* --- dark mode --- */
[data-theme="dark"]{--ink:#f5e9d7;--accent:#f0a840;--accent2:#e08a3c;--cream:#17100a;--card:#241708;--line:#3d2a12;--muted:#c2a276;--soft:#d8c3a3;--chip:#33200e;--header:#1d130a}
[data-theme="dark"] body{background:var(--cream);color:var(--ink)}
[data-theme="dark"] .btn.solid{background:#b25c22;color:#fff}
.themebtn{order:3;margin-left:auto;background:var(--chip);border:1px solid var(--line);border-radius:20px;padding:5px 11px;font-size:13.5px;cursor:pointer;color:var(--ink)}

@media(max-width:1120px) and (min-width:761px){
  .themebtn{position:absolute;top:12px;right:14px;margin-left:0}
  .hd{padding-right:104px}
}

/* Lightbox: complete-image preview */
.card img{cursor:zoom-in}
.btns button.btn{font:inherit;cursor:pointer;background:var(--card);color:var(--ink)}
.lb{position:fixed;inset:0;z-index:200;background:rgba(12,9,22,.93);display:flex;align-items:center;justify-content:center}
.lb[hidden]{display:none}
.lb-box{margin:0;text-align:center;max-width:96vw}
.lb-box img{max-width:min(94vw,880px);max-height:80vh;width:auto;height:auto;object-fit:contain;border-radius:10px;box-shadow:0 12px 50px rgba(0,0,0,.5);background:#111}
.lb-box figcaption{margin-top:12px;color:#fff;display:flex;flex-direction:column;gap:10px;align-items:center}
#gi-lb-title{font-size:17px;font-weight:600}
.lb-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.lb-x{position:absolute;top:10px;right:16px;background:none;border:0;color:#fff;font-size:38px;line-height:1;cursor:pointer;padding:6px 10px}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.14);border:0;color:#fff;font-size:40px;line-height:1;width:52px;height:52px;border-radius:50%;cursor:pointer}
.lb-prev{left:12px}.lb-next{right:12px}
@media(max-width:640px){.lb-box img{max-height:74vh}.lb-nav{width:44px;height:44px;font-size:32px}}
