@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800;900&family=PT+Serif:wght@400;700&family=IBM+Plex+Mono:wght@500;600&display=swap');

:root{
  --paper: #f3efe4;
  --paper-deep: #e9e2cf;
  --ink: #1c1a17;
  --ink-soft: #55504a;
  --rule: #1c1a17;
  --red: #a3271e;
  --red-soft: rgba(163,39,30,0.08);
  --green: #2f5d3a;
  --green-soft: rgba(47,93,58,0.09);
}

*{box-sizing:border-box; margin:0; padding:0;}
body{background:var(--paper); color:var(--ink); font-family:'PT Serif',serif;}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px 60px;}

/* MASTHEAD */
.masthead{background:var(--paper);}
.edition-line{display:flex; justify-content:space-between; padding:14px 28px 10px; max-width:1180px; margin:0 auto; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.04em; color:var(--ink-soft); flex-wrap:wrap; gap:6px;}
.nameplate-row{text-align:center; padding:6px 0 4px;}
.nameplate-link{display:inline-block;}
.nameplate-logo{height:88px; width:auto; max-width:100%; display:block; margin:0 auto;}
.tagline-row{display:flex; justify-content:space-between; align-items:center; padding:8px 0 16px; max-width:1180px; margin:0 auto; flex-wrap:wrap; gap:10px;}
.tagline{font-style:italic; color:var(--ink-soft); font-size:14px;}
.list-cta{background:var(--red); color:var(--paper); padding:9px 18px; font-weight:700; font-size:12.5px; text-decoration:none; letter-spacing:0.03em; font-family:'IBM Plex Mono',monospace;}
.rule-thick{height:4px; background:var(--rule);}
.rule-thin{height:1px; background:var(--rule); margin-top:3px; opacity:0.5;}

.brand{display:none;} /* legacy class no longer used */

/* HERO / LEAD STORY */
.hero{max-width:800px; margin:34px auto 20px; text-align:center;}
.hero-eyebrow{font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:0.08em; color:var(--red); margin-bottom:14px; text-transform:uppercase;}
.hero h1{font-family:'Playfair Display',serif; font-size:44px; line-height:1.15; font-weight:800;}
.hero h1 span{color:var(--red); font-style:italic;}
.hero-sub{margin-top:16px; color:var(--ink-soft); font-size:16px; line-height:1.65; max-width:620px; margin-left:auto; margin-right:auto;}

/* AD CAROUSEL — highlighted sponsored strip */
.ad-section{margin:30px 0 10px; border-top:3px double var(--rule); border-bottom:3px double var(--rule); padding:16px 0;}
.ad-section-label{text-align:center; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.1em; color:var(--red); margin-bottom:14px; font-weight:600;}
.ad-carousel{display:flex; gap:16px; overflow-x:auto; scroll-behavior:smooth; padding-bottom:6px; scrollbar-width:thin;}
.ad-carousel::-webkit-scrollbar{height:5px;}
.ad-carousel::-webkit-scrollbar-thumb{background:var(--ink-soft); }
.ad-card{flex:0 0 220px; background:var(--paper); border:1.5px solid var(--red); text-decoration:none; color:var(--ink); display:flex; flex-direction:column;}
.ad-img{width:100%; height:120px; background:var(--paper-deep); overflow:hidden;}
.ad-img img{width:100%; height:100%; object-fit:cover;}
.ad-info{padding:10px 12px;}
.ad-name{font-family:'Playfair Display',serif; font-weight:800; font-size:14.5px; line-height:1.25;}
.ad-address{font-size:11px; color:var(--ink-soft); margin-top:5px;}
.ad-contact{font-size:11.5px; color:var(--red); margin-top:3px; font-weight:700; font-family:'IBM Plex Mono',monospace;}

/* SEARCH — styled like a classifieds lookup box */
.search-bar{background:var(--paper-deep); border:1.5px solid var(--rule); padding:20px; display:flex; gap:12px; margin:26px 0 18px; flex-wrap:wrap;}
.search-bar input, .search-bar select{background:var(--paper); border:1px solid var(--ink-soft); color:var(--ink); padding:12px 14px; font-size:14px; font-family:'PT Serif',serif;}
.search-bar input{flex:1; min-width:180px;}
.search-bar select{min-width:160px;}
.search-btn{background:var(--ink); color:var(--paper); border:none; padding:12px 26px; font-weight:700; font-size:13px; letter-spacing:0.04em; cursor:pointer; font-family:'IBM Plex Mono',monospace; text-transform:uppercase;}

/* SECTION TABS (category chips) */
.chips{display:flex; gap:0; flex-wrap:wrap; margin-bottom:6px; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);}
.chip{color:var(--ink-soft); padding:11px 18px; font-size:12px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; text-decoration:none; border-right:1px solid var(--rule); font-family:'IBM Plex Mono',monospace;}
.chip.active{background:var(--ink); color:var(--paper);}

.area-head{display:flex; justify-content:space-between; align-items:baseline; margin:26px 0 18px; flex-wrap:wrap; gap:8px; border-bottom:2px solid var(--rule); padding-bottom:10px;}
.area-head h2{font-family:'Playfair Display',serif; font-size:26px; font-style:italic;}
.area-head span{color:var(--ink-soft); font-size:12.5px; font-family:'IBM Plex Mono',monospace;}

/* SHOP GRID — front-page clipping style */
.grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-bottom:50px; border-top:1px solid var(--rule); border-left:1px solid var(--rule);}
.card{background:var(--paper); border-right:1px solid var(--rule); border-bottom:1px solid var(--rule); padding:22px; display:flex; flex-direction:column; gap:10px; text-decoration:none; color:var(--ink);}
.card-img{width:100%; height:130px; background:var(--paper-deep); border:1px solid var(--rule); display:flex; align-items:center; justify-content:center; font-size:34px; overflow:hidden; filter:grayscale(0.15);}
.card-img img{width:100%; height:100%; object-fit:cover;}
.card-top{display:flex; justify-content:space-between; align-items:flex-start; gap:8px;}
.shop-name{font-family:'Playfair Display',serif; font-weight:800; font-size:19px; line-height:1.25;}
.shop-cat{color:var(--ink-soft); font-size:11px; margin-top:4px; text-transform:uppercase; letter-spacing:0.05em; font-family:'IBM Plex Mono',monospace;}
.status{display:inline-flex; align-items:center; gap:5px; font-size:10.5px; font-weight:700; padding:4px 9px; white-space:nowrap; letter-spacing:0.03em; font-family:'IBM Plex Mono',monospace; text-transform:uppercase;}
.status.open{background:var(--green-soft); color:var(--green); border:1px solid var(--green);}
.status.closed{background:var(--red-soft); color:var(--red); border:1px solid var(--red);}
.pulse{width:6px; height:6px; border-radius:50%; background:currentColor; animation:pulse 1.8s infinite;}
@keyframes pulse{0%,100%{opacity:1;} 50%{opacity:0.3;}}
.offer{border-top:1px dashed var(--ink-soft); border-bottom:1px dashed var(--ink-soft); color:var(--red); font-size:13px; font-style:italic; padding:8px 0;}
.stats-row{display:flex; gap:16px; font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--ink-soft); border-top:1px solid var(--rule); padding-top:10px;}
.stats-row b{color:var(--ink); font-size:14px; display:block; font-family:'Playfair Display',serif;}
.card-actions{display:flex; gap:8px; margin-top:2px;}
.act-btn{flex:1; text-align:center; padding:9px 0; font-size:11.5px; font-weight:700; border:1.5px solid var(--ink); color:var(--ink); background:transparent; cursor:pointer; font-family:'IBM Plex Mono',monospace; letter-spacing:0.02em; text-transform:uppercase;}
.act-btn.like{border-color:var(--red); color:var(--red);}
.act-btn.visit{background:var(--ink); color:var(--paper);}
.act-btn.done{opacity:0.45; cursor:not-allowed;}
.gmaps-link{color:var(--ink); font-size:11.5px; font-weight:700; text-decoration:underline; margin-top:2px; font-family:'IBM Plex Mono',monospace;}

/* FORM PAGES — classified-ad submission style */
.form-card{background:var(--paper); border:1.5px solid var(--rule); padding:32px; max-width:540px; margin:30px auto;}
.form-card h2{font-family:'Playfair Display',serif; font-size:26px; margin-bottom:8px;}
.form-card p.sub{color:var(--ink-soft); font-size:13.5px; margin-bottom:22px; font-style:italic;}
.form-group{margin-bottom:16px;}
.form-group label{display:block; font-size:11.5px; color:var(--ink-soft); margin-bottom:6px; text-transform:uppercase; letter-spacing:0.04em; font-family:'IBM Plex Mono',monospace;}
.form-group input, .form-group select, .form-group textarea{width:100%; background:var(--paper); border:1px solid var(--ink-soft); color:var(--ink); padding:11px 13px; font-size:14px; font-family:'PT Serif',serif;}
.form-btn{width:100%; background:var(--red); color:var(--paper); border:none; padding:14px 0; font-weight:700; font-size:13px; cursor:pointer; margin-top:6px; font-family:'IBM Plex Mono',monospace; letter-spacing:0.04em; text-transform:uppercase;}
.msg{padding:11px 14px; font-size:13.5px; margin-bottom:14px; border:1px solid;}
.msg.success{background:var(--green-soft); color:var(--green); border-color:var(--green);}
.msg.error{background:var(--red-soft); color:var(--red); border-color:var(--red);}

/* SHOP DETAIL */
.shop-detail{display:grid; grid-template-columns:1fr 1fr; gap:34px; margin:30px 0 40px; padding-bottom:30px; border-bottom:2px solid var(--rule);}
.reviews{margin-top:10px;}
.review-item{border-bottom:1px dashed var(--ink-soft); padding:16px 0;}
.review-item .rname{font-weight:700; font-size:13.5px; font-family:'IBM Plex Mono',monospace;}
.review-item .rdate{color:var(--ink-soft); font-size:11px; margin-left:8px; font-family:'IBM Plex Mono',monospace;}
.review-item p{margin-top:6px; font-size:15px; color:var(--ink); font-style:italic;}

@media (max-width:860px){
  .grid{grid-template-columns:1fr;}
  .shop-detail{grid-template-columns:1fr;}
  .nameplate-logo{height:60px;}
  .hero h1{font-size:30px;}
}

/* FOOTER + small admin button */
.site-footer{border-top:1px solid var(--rule); margin-top:20px; padding:22px 0;}
.footer-wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;}
.footer-copy{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft);}
.admin-btn{background:var(--ink); color:var(--paper); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; padding:7px 16px; text-decoration:none; border-radius:3px; opacity:0.75;}
.admin-btn:hover{opacity:1;}
