:root{
  --cream:#faf3e8; --card:#ffffff; --ink:#2b2420; --ink-soft:#6b6055;
  --cobalt:#1e3c6e; --amber:#c47030; --wine:#6b1f2a; --wine-soft:#f3e2e2; --line:#e7ddcd;
}
*{box-sizing:border-box;}
body{
  margin:0; background:var(--cream); color:var(--ink); font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1080px;margin:0 auto;padding:24px 24px 80px;}
.preview-banner{
  background:var(--amber);color:#fff;font-family:'IBM Plex Mono',monospace;font-size:12px;
  text-align:center;padding:8px;letter-spacing:.03em;
}

header.site{
  display:flex;justify-content:space-between;align-items:flex-end;
  padding:20px 24px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:16px;
  max-width:1080px;margin:0 auto;
}
.brand-eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--wine);margin:0 0 6px;
}
h1{font-family:'Fraunces',serif;font-weight:500;font-size:28px;margin:0;color:var(--ink);letter-spacing:-.01em;}
.sub{color:var(--ink-soft);font-size:14px;margin-top:6px;max-width:520px;}

nav.sitenav{display:flex;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:4px;flex-wrap:wrap;}
nav.sitenav a{
  font-family:'Inter',sans-serif;font-weight:600;font-size:13px;text-decoration:none;
  color:var(--ink-soft);padding:9px 14px;border-radius:7px;transition:.15s;
}
nav.sitenav a.active{background:var(--cobalt);color:#fff;}
nav.sitenav a:hover:not(.active){color:var(--ink);}

.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px 28px;}
.card + .card{margin-top:20px;}
.card h2{font-family:'Fraunces',serif;font-weight:500;font-size:19px;margin:0 0 4px;}
.card .hint{color:var(--ink-soft);font-size:13px;margin:0 0 18px;}

label.field{display:block;margin-bottom:16px;}
label.field span.lbl{
  display:block;font-size:12px;font-weight:600;color:var(--ink);
  margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em;
}
input[type=text],input[type=email],textarea{
  width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;
  font-family:'Inter',sans-serif;font-size:14px;background:#fffdfa;color:var(--ink);
}
textarea{resize:vertical;min-height:56px;}
input:focus,textarea:focus{outline:2px solid var(--cobalt);outline-offset:1px;}

.dim-row{margin-bottom:18px;}
.dim-row .dim-labels{
  display:flex;justify-content:space-between;font-size:11px;color:var(--ink-soft);
  margin-bottom:4px;font-family:'IBM Plex Mono',monospace;
}
.dim-row .dim-name{font-size:13px;font-weight:600;margin-bottom:6px;}
input[type=range]{-webkit-appearance:none;width:100%;height:4px;border-radius:2px;background:var(--line);}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--wine);
  cursor:pointer;border:2px solid #fff;box-shadow:0 0 0 1px var(--wine);
}

.private-note{
  font-size:11px;color:var(--ink-soft);background:var(--wine-soft);border-radius:6px;
  padding:6px 10px;margin-top:-8px;margin-bottom:16px;
}

.btn{
  font-family:'Inter',sans-serif;font-weight:700;font-size:14px;background:var(--cobalt);
  color:#fff;border:none;border-radius:8px;padding:12px 20px;cursor:pointer;transition:.15s;
  text-decoration:none;display:inline-block;
}
.btn:hover{background:#16305a;}
.btn.secondary{background:transparent;color:var(--wine);border:1px solid var(--wine);}
.btn.secondary:hover{background:var(--wine-soft);}
.btn:disabled{opacity:.5;cursor:not-allowed;}

.status{font-size:13px;margin-top:12px;min-height:18px;}
.status.ok{color:#2f6e3a;}
.status.err{color:var(--wine);}

.grid{display:grid;grid-template-columns:1fr 340px;gap:28px;}
@media (max-width:820px){.grid{grid-template-columns:1fr;}}

.wheel-wrap{display:flex;flex-direction:column;align-items:center;position:sticky;top:20px;}
svg#wheel{width:100%;max-width:300px;}
.wheel-caption{font-size:12px;color:var(--ink-soft);text-align:center;margin-top:10px;line-height:1.5;}

.stat-row{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 20px;min-width:140px;}
.stat .num{font-family:'Fraunces',serif;font-size:28px;color:var(--wine);}
.stat .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-top:2px;}

table{width:100%;border-collapse:collapse;font-size:13px;}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);border-bottom:1px solid var(--line);padding:8px 6px;}
td{padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top;}
tr:last-child td{border-bottom:none;}

.cohort-card{border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:14px;background:#fffdfa;}
.cohort-card h3{font-family:'Fraunces',serif;font-weight:500;font-size:16px;margin:0 0 8px;color:var(--cobalt);}
.guest-chip{display:inline-flex;align-items:center;gap:6px;background:var(--cream);border:1px solid var(--line);border-radius:999px;padding:4px 10px 4px 4px;font-size:12px;margin:0 6px 6px 0;}
.guest-chip .avatar{width:20px;height:20px;border-radius:50%;background:var(--wine);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;}
.match-tag{display:inline-block;background:var(--wine-soft);color:var(--wine);font-size:11px;font-weight:600;border-radius:6px;padding:2px 8px;margin:2px 4px 2px 0;}
.sim{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-soft);}

.winery-editor{display:grid;grid-template-columns:1fr;gap:10px;}
.winery-row{display:grid;grid-template-columns:1.1fr 1.6fr 2fr auto;gap:10px;align-items:start;border-bottom:1px solid var(--line);padding-bottom:10px;}
.winery-row input[type=text]{font-size:13px;}
.varieties-input{font-size:12px !important;color:var(--ink-soft);}
@media (max-width:700px){
  .winery-row{grid-template-columns:1fr;row-gap:8px;}
  .winery-row input[type=text]{width:100%;}
  .tag-sliders{grid-template-columns:repeat(3,1fr);}
  .del-btn{justify-self:start;}
}
.tag-sliders{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;}
.tag-sliders label{font-size:9px;color:var(--ink-soft);text-align:center;display:block;}
.tag-sliders input{width:100%;}
.del-btn{background:none;border:1px solid var(--line);border-radius:6px;color:var(--ink-soft);cursor:pointer;padding:6px 10px;font-size:12px;}
.del-btn:hover{color:var(--wine);border-color:var(--wine);}
.empty{color:var(--ink-soft);font-size:13px;font-style:italic;padding:20px 0;}
.demo-tag{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:10px;background:var(--amber);color:#fff;border-radius:5px;padding:2px 7px;margin-left:8px;vertical-align:middle;}

#winery-map{width:100%;height:380px;border-radius:12px;overflow:hidden;border:1px solid var(--line);}
.bloom-popup{font-family:'Inter',sans-serif;}
.bloom-popup h4{font-family:'Fraunces',serif;font-weight:500;margin:0 0 4px;color:var(--ink);font-size:15px;}
.bloom-popup p{margin:0;font-size:12px;color:var(--ink-soft);}
.bloom-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}
.bloom-legend span{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--ink-soft);font-family:'IBM Plex Mono',monospace;}
.bloom-legend .dot{width:9px;height:9px;border-radius:50%;display:inline-block;}

/* landing */
.hero{padding:0 0 24px;}
.hero-art{
  width:100%;height:280px;border-radius:16px;overflow:hidden;margin-bottom:22px;
  border:1px solid var(--line);position:relative;
}
.hero-art img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-art .caption{
  position:absolute;bottom:0;right:0;background:rgba(43,36,32,0.55);color:#fff;
  font-family:'IBM Plex Mono',monospace;font-size:10px;padding:4px 10px;border-top-left-radius:8px;
}
.photo-block{
  width:100%;border-radius:16px;overflow:hidden;margin:24px 0;border:1px solid var(--line);
  position:relative;height:200px;
}
.photo-block img{width:100%;height:100%;object-fit:cover;display:block;}
.photo-block .caption{
  position:absolute;bottom:0;right:0;background:rgba(43,36,32,0.55);color:#fff;
  font-family:'IBM Plex Mono',monospace;font-size:10px;padding:4px 10px;border-top-left-radius:8px;
}
.hero .dates{font-family:'Fraunces',serif;font-size:17px;color:var(--wine);margin:6px 0 2px;}
.hero .venue{font-size:13px;color:var(--ink-soft);margin:0 0 18px;}
.hero .cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px;}
.vine-divider{width:100%;height:40px;margin:6px 0 4px;opacity:.9;}
.itinerary{display:flex;flex-direction:column;gap:14px;}
.itin-day{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:start;}
.itin-day .day-label{font-family:'Fraunces',serif;font-weight:500;font-size:13.5px;color:var(--wine);}
.itin-day .day-date{display:block;font-family:'IBM Plex Mono',monospace;font-size:9.5px;color:var(--ink-soft);margin-top:2px;}
.itin-day .day-body p{margin:0;font-size:13.5px;color:var(--ink);line-height:1.5;}

.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px;}
@media (max-width:760px){.tiers{grid-template-columns:1fr;}}
.tier{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 18px 16px;}
.tier.tier-title{border-color:var(--wine);border-width:2px;}
.tier-name{font-family:'Fraunces',serif;font-weight:500;font-size:15px;margin:0 0 2px;}
.tier-price{font-family:'IBM Plex Mono',monospace;font-size:18px;color:var(--wine);margin:0 0 10px;}
.tier-price small{font-family:'Inter',sans-serif;font-size:11px;color:var(--ink-soft);display:block;font-weight:400;}
.tier ul{margin:0;padding-left:18px;font-size:12.5px;line-height:1.65;color:var(--ink);}
.tier ul li{margin-bottom:3px;}

.winery-chip-row{font-size:12px;color:var(--ink-soft);line-height:1.9;}
.winery-chip-row span{
  display:inline-block;background:var(--cream);border:1px solid var(--line);border-radius:999px;
  padding:3px 10px;margin:0 5px 5px 0;
}
