/* ALL4THEWEDDING — shared system */
:root{
  --serif: 'Instrument Serif', 'Cormorant Garamond', Georgia, serif;
  --sans: 'Inter', system-ui, -apple-system, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;

  --cream:#F2EDE2; --paper:#FAF6EC; --bone:#E8E1D2;
  --ink:#15120D; --ink-2:#3A352B; --mute:#8B8474;
  --hair:#15120d14; --hair-2:#15120d22;

  --claret:#6E1F2A;
  --chart:#D3E04A;
  --sage:#8DA888;
  --butter:#F2D58D;
  --dahlia:#E66A56;
  --sky:#B6C8D6;

  --sh-1: 0 1px 2px #15120d10;
  --sh-2: 0 8px 24px #15120d12;
  --sh-3: 0 24px 60px #15120d22;
}

@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:var(--ink);text-decoration:none}
a:hover{text-decoration:none}
img{display:block;max-width:100%}
button{font-family:inherit}
.container{max-width:1320px;margin:0 auto;padding:0 32px}
.serif{font-family:var(--serif);font-weight:400}
.italic{font-style:italic}
.mono{font-family:var(--mono)}
.muted{color:var(--mute)}
.text-balance{text-wrap:balance}

/* NAV */
.nav{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 32px;background:#F2EDE2ee;backdrop-filter:blur(12px);
  border-bottom:1px solid var(--hair);gap:16px;
}
.wordmark{font-family:var(--serif);font-size:24px;letter-spacing:-.02em;color:var(--ink)}
.wordmark .dot{display:inline-block;width:6px;height:6px;border-radius:999px;background:var(--claret);margin:0 1px 4px;vertical-align:middle}
.nav-links{display:flex;gap:6px;flex-wrap:nowrap}
.nav-links a{padding:8px 12px;border-radius:8px;font-size:13.5px;color:var(--ink-2);white-space:nowrap}
.nav-links a:hover{background:#15120d08;color:var(--ink)}
.nav-links a.active{color:var(--ink);font-weight:500}
.nav-right{display:flex;align-items:center;gap:14px;flex-shrink:0}
@media(max-width:1100px){.nav-links a{padding:8px 8px;font-size:12.5px}}
@media(max-width:900px){.nav-links{display:none}.nav-right .btn:not(.sm){display:none}}
@media(max-width:600px){.nav{padding:12px 16px}}

/* TYPE */
.hero-h1{font-family:var(--serif);font-weight:400;font-size:140px;line-height:.88;letter-spacing:-.045em;margin:0}
.hero-lede{font-size:18px;line-height:1.55;max-width:520px;color:var(--ink-2)}
@media(max-width:900px){.hero-h1{font-size:80px}}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;font-size:14px;font-weight:500;border:1px solid var(--ink);background:var(--ink);color:var(--cream);cursor:pointer;font-family:var(--sans);transition:transform .15s,box-shadow .15s,background .15s}
.btn:hover{transform:translateY(-1px);box-shadow:var(--sh-2)}
.btn.sm{padding:7px 12px;font-size:13px}
.btn.lg{padding:14px 22px;font-size:15px}
.btn.outline{background:transparent;color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--hair-2)}
.btn.claret{background:var(--claret);border-color:var(--claret);color:#fff}
.btn.chart{background:var(--chart);border-color:var(--chart);color:var(--ink)}

/* ICONS */
.ic{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.ic-sm{width:13px;height:13px}
[data-heart].on svg{fill:currentColor}

/* PILLS / STICKERS / TAGS */
.tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:12px;background:var(--paper);border:1px solid var(--hair-2);color:var(--ink-2);cursor:pointer;white-space:nowrap}
.pill.active{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.pill.chart{background:var(--chart);border-color:var(--chart);color:var(--ink)}
.sticker{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:8px;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;background:var(--chart);color:var(--ink);transform:rotate(-1.5deg)}
.tag-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chips{display:flex;flex-wrap:wrap;gap:6px}

/* PHOTO PLACEHOLDER (now used as wrapper for real imgs) */
.photo{position:relative;overflow:hidden;border-radius:10px;background:var(--bone)}
.photo img{width:100%;height:100%;object-fit:cover}
.av{width:40px;height:40px;border-radius:999px;overflow:hidden;background:var(--bone);flex-shrink:0}
.av img{width:100%;height:100%;object-fit:cover}

/* KPI / CARDS */
.kpi{background:var(--paper);border:1px solid var(--hair);border-radius:18px;padding:18px}
.kpi .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.kpi .num{font-family:var(--serif);font-size:40px;letter-spacing:-.02em;margin:4px 0 2px;line-height:1}

/* FORM */
.input{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--paper);border:1px solid var(--hair);border-radius:12px;transition:border-color .2s}
.input:focus-within{border-color:var(--ink)}
.input input{flex:1;border:none;outline:none;background:transparent;font-family:inherit;font-size:14px;color:var(--ink)}
.input input::placeholder{color:var(--mute)}
.select{width:100%;padding:10px 14px;background:var(--paper);border:1px solid var(--hair);border-radius:12px;font-family:inherit;font-size:14px;color:var(--ink);appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2315120d' stroke-width='1.6'><path d='M1 1.5l5 5 5-5'/></svg>");background-repeat:no-repeat;background-position:right 14px center}
.cb{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13.5px;cursor:pointer}
.cb input{accent-color:var(--ink)}
.range{position:relative;height:6px;background:var(--hair-2);border-radius:999px}
.range .fill{position:absolute;top:0;bottom:0;background:var(--ink);border-radius:999px}
.range .knob{position:absolute;top:50%;width:16px;height:16px;background:var(--paper);border:2px solid var(--ink);border-radius:999px;transform:translate(-50%,-50%);cursor:grab}

/* FOOTER */
.footer{background:var(--ink);color:var(--cream);padding:60px 0 24px}
.footer .container{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:32px}
.footer .col-title{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#FAF6EC88;margin-bottom:16px}
.footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;font-size:13px}
.footer a{color:#FAF6ECcc}
.footer a:hover{color:var(--cream)}
.footer-bot{margin-top:48px;padding-top:18px;border-top:1px solid #FAF6EC22;display:flex;justify-content:space-between;font-size:11px;opacity:.6}
@media(max-width:900px){.footer .container{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.footer .container{grid-template-columns:1fr}}

/* SCROLL-SPY TABS */
.tabs{display:flex;gap:0;border-bottom:1px solid var(--hair-2);margin:24px 0;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs span{padding:10px 16px;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;color:var(--ink-2);transition:color .2s,border-color .2s}
.tabs span:hover{color:var(--ink)}
.tabs span.active{border-color:var(--ink);font-weight:500;color:var(--ink)}

/* SECTION SCROLL TARGET */
.scroll-section{scroll-margin-top:100px}

/* VENDOR PAGE FAQ */
.faq-item{border-bottom:1px dashed var(--hair-2);padding:18px 0}
.faq-item:last-child{border:none}
.faq-q{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:15px;font-weight:500;gap:16px}
.faq-q svg{flex-shrink:0;transition:transform .25s}
.faq-a{overflow:hidden;max-height:0;transition:max-height .3s ease;font-size:14px;color:var(--ink-2);line-height:1.65}
.faq-item.open .faq-q svg{transform:rotate(45deg)}
.faq-item.open .faq-a{max-height:200px;padding-top:10px}

/* SIDEBAR LAYOUT FOR DASHBOARDS */
@media(max-width:900px){
  .dash{grid-template-columns:1fr!important}
  .side{display:none!important}
}

/* PAGE TRANSITIONS */
body{animation:pageFadeIn .25s ease}
@keyframes pageFadeIn{from{opacity:0}to{opacity:1}}

/* UTILITY */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
