/* Wedding Vendors — directory + vendor page (v1.3.0). Prefix: wd- */
:root {
    --wd-pine: var(--pine, #12403c);
    --wd-deep: #0b2a27;
    --wd-sun: var(--sun, #f4b942);
    --wd-gold-ink: #7a5300;
    --wd-ink: var(--ink, #172624);
    --wd-muted: var(--muted, #5d6f6b);
    --wd-line: #e4e9e7;
    --wd-card: #fff;
    --wd-soft: #f4f7f6;
    --wd-cream: #fbf6ec;
    --wd-blush: #f7e3df;
    --wd-ok: #1d7a45;
    --wd-r: 18px;
    --wd-shadow: 0 1px 2px rgba(16, 40, 37, .06), 0 8px 24px rgba(16, 40, 37, .07);
    --wd-shadow-lg: 0 2px 4px rgba(16, 40, 37, .06), 0 18px 48px rgba(16, 40, 37, .14);
    --wd-head: 'Bricolage Grotesque', 'DM Sans', system-ui, sans-serif;
}

.wd-dim { color: var(--wd-muted); }
.wd-stars { color: #e3a21a; font-weight: 800; letter-spacing: .5px; }
.wd-new { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--wd-pine); background: #e2efec; border-radius: 999px; padding: 2px 9px; }
.wd-tick { display: inline-flex; align-items: center; justify-content: center; width: 17px; height: 17px; border-radius: 50%; background: #1d9bf0; color: #fff; font-size: 10px; font-weight: 900; vertical-align: 2px; }

/* ---------- Buttons ---------- */
.wd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 20px; border-radius: 999px; font: 700 14px/1.1 'DM Sans', system-ui, sans-serif; text-decoration: none; border: 1.5px solid transparent; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background .15s ease; white-space: nowrap; }
.wd-btn:hover { transform: translateY(-1px); }
.wd-btn svg { width: 17px; height: 17px; flex: none; }
.wd-btn--sm { padding: 8px 14px; font-size: 13px; }
.wd-btn--block { width: 100%; }
a.wd-btn--pine, .wd-btn--pine { background: var(--wd-pine); color: #fff; }
.wd-btn--pine:hover { box-shadow: 0 8px 20px rgba(18, 64, 60, .28); color: #fff; }
a.wd-btn--gold, .wd-btn--gold { background: var(--wd-sun); color: #2a1d00; }
.wd-btn--gold:hover { box-shadow: 0 8px 20px rgba(244, 185, 66, .4); color: #2a1d00; }
a.wd-btn--ghost, .wd-btn--ghost { background: #fff; color: var(--wd-pine); border-color: var(--wd-line); }
.wd-btn--ghost:hover { border-color: var(--wd-pine); }
a.wd-btn--line, .wd-btn--line { background: transparent; color: #fff; border-color: rgba(255,255,255,.4); }
.wd-btn--line:hover { border-color: #fff; color: #fff; }
a.wd-btn--wa, .wd-btn--wa { background: #25d366; color: #fff; }
.wd-btn--wa:hover { color: #fff; box-shadow: 0 8px 20px rgba(37, 211, 102, .3); }
.wd-link-btn { background: none; border: 0; padding: 0; font: 700 14px 'DM Sans', sans-serif; color: var(--wd-pine); cursor: pointer; text-decoration: none; }
.wd-link-btn:hover { text-decoration: underline; }

/* ---------- Hero ---------- */
.wd-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .9fr); gap: 36px; align-items: center; margin: 0 0 26px; padding: 48px 48px 44px; border-radius: 28px; overflow: hidden; color: #fff;
    background:
        radial-gradient(900px 400px at 110% -20%, rgba(244,185,66,.22), transparent 60%),
        radial-gradient(600px 300px at -10% 120%, rgba(232,166,160,.18), transparent 60%),
        linear-gradient(135deg, #154a45 0%, var(--wd-deep) 100%); }
.wd-hero::after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.07) 1px, transparent 1px); background-size: 22px 22px; pointer-events: none; mask-image: linear-gradient(90deg, transparent, #000 70%); }
.wd-hero--slim { grid-template-columns: 1fr; padding: 30px 36px 30px; }
.wd-hero-text { position: relative; z-index: 1; min-width: 0; }
.wd-eyebrow { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.16); font-size: 12px; font-weight: 700; letter-spacing: .04em; color: #fbe6b8; }
.wd-hero h1 { margin: 16px 0 12px; font-family: var(--wd-head); font-size: clamp(30px, 4vw, 48px); line-height: 1.05; letter-spacing: -.02em; color: #fff; }
.wd-hero--slim h1 { font-size: clamp(26px, 3vw, 36px); margin: 12px 0 18px; }
.wd-hero h1 em { font-style: normal; color: var(--wd-sun); }
.wd-hero p { margin: 0 0 24px; max-width: 560px; font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.78); }

.wd-search { display: flex; align-items: stretch; gap: 0; background: #fff; border-radius: 20px; padding: 6px; box-shadow: 0 20px 50px rgba(0,0,0,.25); max-width: 760px; }
.wd-search-field { display: flex; flex-direction: column; justify-content: center; padding: 6px 16px; min-width: 0; flex: 1 1 0; border-right: 1px solid var(--wd-line); cursor: text; }
.wd-search-field--grow { flex: 1.3 1 0; border-right: 0; }
.wd-search-field > span { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--wd-pine); }
.wd-search-field select, .wd-search-field input { border: 0 !important; outline: 0; background: transparent !important; padding: 2px 0 !important; min-height: 0 !important; height: auto !important; font: 600 15px 'DM Sans', sans-serif; color: var(--wd-ink); width: 100%; box-shadow: none !important; border-radius: 0 !important; }
.wd-search-field select { -webkit-appearance: none; appearance: none; cursor: pointer; text-overflow: ellipsis; }
.wd-search-btn { display: inline-flex; align-items: center; gap: 8px; border: 0; border-radius: 15px; padding: 0 24px; background: var(--wd-sun); color: #2a1d00; font: 800 15px 'DM Sans', sans-serif; cursor: pointer; transition: filter .15s; }
.wd-search-btn:hover { filter: brightness(1.05); }
.wd-search-btn svg { width: 18px; height: 18px; }

.wd-popular { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 18px; font-size: 13px; color: rgba(255,255,255,.7); }
.wd-popular a { color: #fff; text-decoration: none; padding: 5px 12px; border-radius: 999px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14); font-weight: 600; transition: background .15s; }
.wd-popular a:hover { background: rgba(255,255,255,.2); }
.wd-stats { display: flex; flex-wrap: wrap; gap: 10px 30px; margin-top: 28px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); }
.wd-stats div { display: flex; flex-direction: column; }
.wd-stats strong { font-family: var(--wd-head); font-size: 26px; line-height: 1; color: #fff; }
.wd-stats span { font-size: 12px; color: rgba(255,255,255,.65); margin-top: 4px; }

.wd-hero-pics { position: relative; z-index: 1; height: 360px; }
.wd-hero-pic { position: absolute; display: block; border-radius: 22px; overflow: hidden; box-shadow: 0 24px 50px rgba(0,0,0,.35); border: 4px solid rgba(255,255,255,.9); background: #2a5a55; }
.wd-hero-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wd-hero-pic span { position: absolute; left: 10px; bottom: 10px; right: 10px; padding: 6px 10px; border-radius: 10px; background: rgba(255,255,255,.92); color: var(--wd-ink); font-size: 12px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wd-hero-pic--1 { width: 62%; height: 74%; right: 0; top: 0; transform: rotate(2.5deg); }
.wd-hero-pic--2 { width: 52%; height: 58%; left: 0; bottom: 0; transform: rotate(-4deg); }
.wd-hero-pic--1 span { top: 10px; bottom: auto; }
.wd-hero-pic--3 { width: 36%; height: 40%; right: 6%; bottom: -2%; transform: rotate(5deg); }

/* ---------- Sections ---------- */
.wd-section { margin: 34px 0; }
.wd-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.wd-section-head h2, .wd-tools-head h2, .wd-cta h2 { margin: 0; font-family: var(--wd-head); font-size: clamp(20px, 2.2vw, 26px); letter-spacing: -.01em; color: var(--wd-ink); }

/* Tools strip */
.wd-tools { margin: 0 0 34px; padding: 26px; border-radius: 24px; background: var(--wd-cream); border: 1px solid #f1e5cc; }
.wd-tools-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin-bottom: 16px; }
.wd-tools-head p { margin: 0; color: var(--wd-muted); font-size: 14px; }
.wd-tools-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.wd-tool { display: flex; flex-direction: column; gap: 4px; padding: 16px; border-radius: 16px; background: #fff; text-decoration: none; color: var(--wd-ink); border: 1px solid #efe4cd; transition: transform .15s, box-shadow .15s; }
.wd-tool:hover { transform: translateY(-2px); box-shadow: var(--wd-shadow); }
.wd-tool-ic { font-size: 22px; margin-bottom: 4px; }
.wd-tool strong { font-size: 15px; }
.wd-tool span:last-child { font-size: 13px; color: var(--wd-muted); }

/* Categories */
.wd-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.wd-cats--more { grid-column: 1 / -1; }
.wd-cats--more[hidden] { display: none; }
.wd-cat { display: flex; flex-direction: column; gap: 3px; padding: 16px; border-radius: 16px; background: #fff; border: 1px solid var(--wd-line); text-decoration: none; color: var(--wd-ink); transition: border-color .15s, transform .15s, box-shadow .15s; }
.wd-cat:hover { border-color: var(--wd-pine); transform: translateY(-2px); box-shadow: var(--wd-shadow); }
.wd-cat-ic { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 13px; background: #e7f0ee; color: var(--wd-pine); margin-bottom: 8px; transition: background .15s, color .15s; }
.wd-cat:hover .wd-cat-ic { background: var(--wd-pine); color: var(--wd-sun); }
.wd-cat-ic svg { width: 23px; height: 23px; }
.wd-cat strong { font-size: 14px; line-height: 1.25; }
.wd-cat span:last-child { font-size: 12px; color: var(--wd-muted); }

/* Featured carousel */
.wd-arrows { display: flex; gap: 6px; }
.wd-arrows button { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--wd-line); background: #fff; color: var(--wd-pine); font-size: 16px; cursor: pointer; }
.wd-arrows button:hover { border-color: var(--wd-pine); }
.wd-feat { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, calc((100% - 48px) / 4)); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; scrollbar-width: none; }
.wd-feat::-webkit-scrollbar { display: none; }
.wd-feat-card { scroll-snap-align: start; display: flex; flex-direction: column; border-radius: var(--wd-r); overflow: hidden; background: #fff; border: 1px solid var(--wd-line); text-decoration: none; color: var(--wd-ink); transition: box-shadow .2s, transform .2s; }
.wd-feat-card:hover { box-shadow: var(--wd-shadow-lg); transform: translateY(-3px); }
.wd-feat-photo { position: relative; aspect-ratio: 4 / 3; background: #dfe9e6; overflow: hidden; }
.wd-feat-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.wd-feat-card:hover .wd-feat-photo img { transform: scale(1.05); }
.wd-feat-photo .wd-badge { position: absolute; top: 10px; left: 10px; }
.wd-feat-body { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px 16px; }
.wd-feat-body strong { font-size: 16px; }

/* Recently viewed */
.wd-recent { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.wd-recent-item { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; padding: 8px 14px 8px 8px; border-radius: 14px; background: #fff; border: 1px solid var(--wd-line); text-decoration: none; color: var(--wd-ink); max-width: 260px; }
.wd-recent-item:hover { border-color: var(--wd-pine); }
.wd-recent-pic { width: 46px; height: 46px; border-radius: 10px; overflow: hidden; background: #dfe9e6; flex: none; }
.wd-recent-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wd-recent-item > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.wd-recent-item strong { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wd-recent-item small { font-size: 12px; color: var(--wd-muted); }

/* ---------- Browse ---------- */
.wd-browse { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 26px; align-items: start; }
.wd-filters { position: sticky; top: 16px; padding: 20px; border-radius: 20px; background: #fff; border: 1px solid var(--wd-line); max-height: calc(100vh - 32px); overflow-y: auto; scrollbar-width: thin; }
.wd-filters-top { display: none; }
.wd-fgroup { padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--wd-line); }
.wd-fgroup h3 { margin: 0 0 10px; font-size: 12px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--wd-muted); }
.wd-fgroup select, .wd-fgroup input[type=search] { width: 100%; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--wd-line); background: var(--wd-soft); font: 500 14px 'DM Sans', sans-serif; min-height: 0; }
.wd-fcats { list-style: none; margin: 0; padding: 0; max-height: 280px; overflow-y: auto; scrollbar-width: thin; }
.wd-fcats a { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 10px; font-size: 14px; color: var(--wd-ink); text-decoration: none; }
.wd-fcats a:hover { background: var(--wd-soft); }
.wd-fcats a.is-active { background: var(--wd-pine); color: #fff; font-weight: 700; }
.wd-fcats a span { font-size: 12px; color: var(--wd-muted); background: var(--wd-soft); border-radius: 999px; padding: 1px 8px; }
.wd-fcats a.is-active span { background: rgba(255,255,255,.18); color: #fff; }
.wd-radio { display: flex; align-items: center; gap: 8px; padding: 5px 0; font-size: 14px; cursor: pointer; }
.wd-radio input { width: 17px; height: 17px; min-height: 0; margin: 0; accent-color: var(--wd-pine); }
.wd-switch { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; cursor: pointer; }
.wd-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.wd-switch-ui { position: relative; flex: none; width: 40px; height: 23px; border-radius: 999px; background: #cfd9d6; transition: background .15s; }
.wd-switch-ui::after { content: ""; position: absolute; top: 3px; left: 3px; width: 17px; height: 17px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.2); transition: transform .15s; }
.wd-switch input:checked + .wd-switch-ui { background: var(--wd-ok); }
.wd-switch input:checked + .wd-switch-ui::after { transform: translateX(17px); }
.wd-switch input:focus-visible + .wd-switch-ui { outline: 2px solid var(--wd-pine); outline-offset: 2px; }
.wd-clear { display: block; text-align: center; margin-top: 12px; font-size: 14px; font-weight: 700; color: var(--wd-pine); }
.wd-filters-shade { display: none; }

.wd-results-bar { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.wd-count { font-family: var(--wd-head); font-size: 20px; color: var(--wd-ink); }
.wd-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.wd-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px 5px 12px; border-radius: 999px; background: #e7f0ee; color: var(--wd-pine); font-size: 13px; font-weight: 700; text-decoration: none; }
.wd-chip span { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 50%; background: rgba(18,64,60,.12); font-size: 13px; line-height: 1; }
.wd-chip:hover span { background: var(--wd-pine); color: #fff; }
.wd-results-tools { display: flex; align-items: center; gap: 8px; }
.wd-filter-open { display: none; }
.wd-dot { display: inline-flex; align-items: center; justify-content: center; min-width: 19px; height: 19px; border-radius: 999px; background: var(--wd-sun); color: #2a1d00; font-size: 11px; }
.wd-sort label { display: flex; align-items: center; gap: 8px; margin: 0; padding: 4px 4px 4px 14px; border-radius: 999px; border: 1px solid var(--wd-line); background: #fff; }
.wd-sort span { font-size: 13px; font-weight: 700; color: var(--wd-muted); }
.wd-sort select { border: 0 !important; background: transparent !important; font: 700 14px 'DM Sans', sans-serif; color: var(--wd-ink); padding: 6px 8px !important; min-height: 0 !important; height: auto !important; box-shadow: none !important; cursor: pointer; }

/* Vendor cards */
.wd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px; }
.wd-grid--related { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.wd-card { position: relative; display: flex; flex-direction: column; border-radius: var(--wd-r); background: var(--wd-card); border: 1px solid var(--wd-line); overflow: hidden; transition: box-shadow .2s, transform .2s, border-color .2s; }
.wd-card:hover { box-shadow: var(--wd-shadow-lg); transform: translateY(-3px); border-color: transparent; }
.wd-card--hl { border: 2px solid var(--wd-sun); box-shadow: 0 0 0 4px rgba(244,185,66,.14); }
.wd-card-photo { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: linear-gradient(135deg, #e3eeeb, #cfe0dc); }
.wd-card-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.wd-card:hover .wd-card-photo img { transform: scale(1.06); }
.wd-card-noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: rgba(18,64,60,.35); }
.wd-card-noimg svg { width: 56px; height: 56px; }
.wd-card-badges { position: absolute; left: 10px; top: 10px; right: 54px; display: flex; flex-wrap: wrap; gap: 6px; }
.wd-badge { display: inline-flex; align-items: center; gap: 4px; padding: 4px 9px; border-radius: 999px; font-size: 11px; font-weight: 800; letter-spacing: .02em; }
.wd-badge--gold { background: var(--wd-sun); color: #2a1d00; }
.wd-badge--dark { background: rgba(10, 25, 23, .62); color: #fff; backdrop-filter: blur(4px); }
.wd-card .wd-heart-form { position: absolute; top: 10px; right: 10px; margin: 0; z-index: 2; }
.wd-heart, .wd-heart-link { position: absolute; top: 10px; right: 10px; z-index: 2; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; border: 0; background: rgba(255,255,255,.94); box-shadow: 0 2px 8px rgba(0,0,0,.15); cursor: pointer; padding: 0; transition: transform .15s; }
.wd-card .wd-heart-form .wd-heart { position: static; }
.wd-heart:hover { transform: scale(1.08); }
.wd-heart svg, .wd-save svg { width: 19px; height: 19px; fill: none; stroke: #c2445a; stroke-width: 2; transition: fill .15s; }
.wd-heart.is-on svg, .wd-save.is-on svg { fill: #e0425f; stroke: #e0425f; }
.wd-heart.pop { animation: wd-pop .35s ease; }
@keyframes wd-pop { 50% { transform: scale(1.25); } }
.wd-card-body { display: flex; flex-direction: column; gap: 5px; padding: 14px 16px 16px; flex: 1; text-decoration: none; color: var(--wd-ink); }
.wd-card-cat { font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--wd-gold-ink); }
.wd-card-name { font-size: 16.5px; line-height: 1.3; }
.wd-card-meta { display: flex; align-items: center; gap: 5px; font-size: 13px; }
.wd-card-loc { display: flex; align-items: center; gap: 5px; font-size: 13px; color: var(--wd-muted); }
.wd-card-loc svg { flex: none; }
.wd-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 10px; border-top: 1px dashed var(--wd-line); }
.wd-price { font-weight: 800; font-size: 15px; color: var(--wd-pine); }
.wd-price small { font-weight: 600; font-size: 12px; color: var(--wd-muted); }
.wd-price--ask { font-size: 13px; font-weight: 700; color: var(--wd-muted); }
.wd-card-go { font-size: 13px; font-weight: 700; color: var(--wd-pine); opacity: 0; transform: translateX(-4px); transition: opacity .2s, transform .2s; }
.wd-card:hover .wd-card-go { opacity: 1; transform: none; }

.wd-pager { display: flex; justify-content: center; align-items: center; gap: 14px; margin-top: 26px; font-size: 14px; }
.wd-empty { text-align: center; padding: 48px 20px; border-radius: 20px; background: #fff; border: 1.5px dashed var(--wd-line); }
.wd-empty-ic { font-size: 40px; }
.wd-empty h2 { margin: 10px 0 6px; font-family: var(--wd-head); }
.wd-empty p { margin: 0 auto 18px; max-width: 420px; color: var(--wd-muted); }
.wd-empty-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; }

.wd-places { margin-top: 30px; }
.wd-places h3 { margin: 0 0 12px; font-size: 15px; }
.wd-places > div { display: flex; flex-wrap: wrap; gap: 8px; }
.wd-place { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--wd-line); background: #fff; color: var(--wd-ink); font-size: 14px; font-weight: 600; text-decoration: none; }
.wd-place span { font-size: 12px; color: var(--wd-muted); }
.wd-place:hover { border-color: var(--wd-pine); }

/* Vendor CTA */
.wd-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 40px 0 8px; padding: 34px 36px; border-radius: 26px; color: #fff; background: radial-gradient(500px 200px at 100% 0, rgba(244,185,66,.25), transparent 70%), linear-gradient(120deg, var(--wd-deep), #17524c); }
.wd-cta h2 { color: #fff; margin: 12px 0 8px; }
.wd-cta p { margin: 0; max-width: 560px; color: rgba(255,255,255,.75); line-height: 1.55; }
.wd-cta-actions { display: flex; flex-wrap: wrap; gap: 10px; flex: none; }

/* ---------- Vendor page ---------- */
.wd-crumbs { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.wd-crumbs nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; color: var(--wd-muted); }
.wd-crumbs a { color: var(--wd-pine); font-weight: 600; text-decoration: none; }
.wd-crumbs a:hover { text-decoration: underline; }

.wd-gallery { position: relative; display: grid; gap: 8px; height: clamp(260px, 42vw, 460px); border-radius: 24px; overflow: hidden; margin-bottom: 22px; background: #dfe9e6; }
.wd-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; cursor: zoom-in; transition: filter .2s; min-height: 0; }
.wd-gallery img:hover { filter: brightness(.92); }
.wd-gallery-hidden { display: none !important; }
.wd-gallery--1 { grid-template-columns: 1fr; }
.wd-gallery--2 { grid-template-columns: 1.6fr 1fr; }
.wd-gallery--3 { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; }
.wd-gallery--3 .wd-gallery-0 { grid-row: 1 / 3; }
.wd-gallery--4 { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.wd-gallery--4 .wd-gallery-0 { grid-row: 1 / 3; }
.wd-gallery--4 .wd-gallery-3 { grid-column: 2 / 4; }
.wd-gallery--5 { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.wd-gallery--5 .wd-gallery-0 { grid-row: 1 / 3; }
.wd-gallery-all { position: absolute; right: 16px; bottom: 16px; display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px; border: 0; background: #fff; color: var(--wd-ink); font: 700 13px 'DM Sans', sans-serif; box-shadow: 0 6px 18px rgba(0,0,0,.2); cursor: pointer; }
.wd-gallery-all:hover { background: var(--wd-cream); }

.wd-vhead { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 16px; }
.wd-vhead-main { min-width: 0; }
.wd-vchips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.wd-vchip { display: inline-flex; align-items: center; gap: 4px; padding: 5px 11px; border-radius: 999px; font-size: 12px; font-weight: 800; text-decoration: none; }
.wd-vchip--cat { background: #e7f0ee; color: var(--wd-pine); }
.wd-vchip--gold { background: #fdf0d2; color: var(--wd-gold-ink); }
.wd-vchip--ok { background: #e3f4ea; color: var(--wd-ok); }
.wd-vhead h1 { margin: 0 0 10px; font-family: var(--wd-head); font-size: clamp(28px, 3.4vw, 40px); line-height: 1.08; letter-spacing: -.02em; color: var(--wd-ink); }
.wd-vmeta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; font-size: 14px; color: var(--wd-muted); }
.wd-vmeta-rating { display: inline-flex; align-items: center; gap: 6px; color: var(--wd-ink); text-decoration: none; font-weight: 600; }
.wd-vmeta-rating span:last-child { text-decoration: underline; text-underline-offset: 3px; }
.wd-vmeta-loc { display: inline-flex; align-items: center; gap: 5px; }
.wd-vtagline { margin: 12px 0 0; font-size: 17px; font-style: italic; color: var(--wd-pine); }
.wd-vhead-actions { display: flex; gap: 8px; flex: none; }
.wd-vhead-actions form { margin: 0; }
.wd-pill-btn { display: inline-flex; align-items: center; gap: 7px; padding: 10px 16px; border-radius: 999px; border: 1px solid var(--wd-line); background: #fff; color: var(--wd-ink); font: 700 14px 'DM Sans', sans-serif; cursor: pointer; text-decoration: none; }
.wd-pill-btn:hover { border-color: var(--wd-pine); }
.wd-sharebar { display: none; margin-bottom: 14px; }
.wd-sharebar.is-open { display: block; }

.wd-anchors { position: sticky; top: 0; z-index: 20; display: flex; gap: 4px; margin: 0 0 20px; padding: 6px; border-radius: 16px; background: rgba(255,255,255,.92); backdrop-filter: blur(8px); border: 1px solid var(--wd-line); overflow-x: auto; scrollbar-width: none; }
.wd-anchors::-webkit-scrollbar { display: none; }
.wd-anchors a { flex: none; padding: 8px 14px; border-radius: 11px; font-size: 14px; font-weight: 700; color: var(--wd-muted); text-decoration: none; }
.wd-anchors a:hover { background: var(--wd-soft); color: var(--wd-pine); }
.wd-anchors a span { font-size: 11px; background: var(--wd-soft); border-radius: 999px; padding: 1px 7px; margin-left: 3px; }

.wd-detail { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 26px; align-items: start; }
.wd-detail-main { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.wd-detail-main > section { scroll-margin-top: 70px; }
.wd-detail-side { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.wd-panel, .wd-side-card { background: #fff; border: 1px solid var(--wd-line); border-radius: 20px; padding: 24px; }
.wd-side-card { padding: 20px; scroll-margin-top: 70px; }
.wd-panel h2, .wd-side-card h2 { margin: 0 0 14px; font-family: var(--wd-head); font-size: 20px; color: var(--wd-ink); }
.wd-side-card h2 { font-size: 18px; margin-bottom: 8px; }
.wd-panel-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 14px; }
.wd-panel-head h2 { margin: 0; }

.wd-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 20px; }
.wd-facts div { padding: 12px 14px; border-radius: 14px; background: var(--wd-soft); min-width: 0; }
.wd-facts div > span { display: block; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--wd-muted); margin-bottom: 4px; }
.wd-facts strong { display: block; font-size: 14px; color: var(--wd-ink); overflow-wrap: anywhere; }

.wd-trust { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--wd-line); }
.wd-trust > div { display: flex; align-items: center; gap: 10px; }
.wd-trust-ic { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 36px; height: 36px; border-radius: 11px; background: #e7f0ee; color: var(--wd-pine); font-weight: 900; }
.wd-trust strong { display: block; font-size: 14px; }
.wd-trust small { display: block; font-size: 12px; color: var(--wd-muted); }

.wd-services { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.wd-service { display: flex; gap: 12px; padding: 14px; border-radius: 14px; border: 1px solid var(--wd-line); }
.wd-service-ic { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 9px; background: #fdf0d2; color: var(--wd-gold-ink); font-size: 13px; }
.wd-service strong { font-size: 15px; }
.wd-service p { margin: 4px 0 0; font-size: 13.5px; color: var(--wd-muted); line-height: 1.5; }

.wd-rbreak { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 22px; align-items: center; padding: 18px; border-radius: 16px; background: var(--wd-soft); margin-bottom: 18px; }
.wd-rbreak-avg { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 2px; }
.wd-rbreak-avg strong { font-family: var(--wd-head); font-size: 44px; line-height: 1; color: var(--wd-ink); }
.wd-rbreak-avg .wd-dim { font-size: 13px; }
.wd-rbreak-bars { display: flex; flex-direction: column; gap: 6px; }
.wd-rbreak-row { display: grid; grid-template-columns: 32px minmax(0, 1fr) 28px; align-items: center; gap: 10px; font-size: 13px; font-weight: 600; }
.wd-rbreak-row span:last-child { text-align: right; color: var(--wd-muted); }
.wd-rbreak-track { height: 8px; border-radius: 999px; background: #dfe7e4; overflow: hidden; }
.wd-rbreak-fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, #f4b942, #e3a21a); }

.wd-review-form { padding: 18px; border-radius: 16px; border: 1px solid var(--wd-line); background: #fffdf8; margin-bottom: 18px; }
.wd-review-form[hidden] { display: none; }
.wd-star-pick { display: inline-flex; flex-direction: row-reverse; gap: 2px; }
.wd-star-pick input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.wd-star-pick label { font-size: 32px; line-height: 1; color: #d6dcda; cursor: pointer; margin: 0; transition: color .1s, transform .1s; }
.wd-star-pick label:hover, .wd-star-pick label:hover ~ label, .wd-star-pick input:checked ~ label { color: #f0a92a; }
.wd-star-pick label:hover { transform: scale(1.12); }
.wd-star-pick input:focus-visible + label { outline: 2px solid var(--wd-pine); border-radius: 4px; }
.wd-login-note { padding: 12px 14px; border-radius: 12px; background: var(--wd-soft); font-size: 14px; }
.wd-reviews { display: flex; flex-direction: column; }
.wd-review { padding: 16px 0; border-top: 1px solid var(--wd-line); }
.wd-review:first-child { border-top: 0; padding-top: 4px; }
.wd-review-head { display: flex; gap: 12px; align-items: flex-start; }
.wd-review-av { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, var(--wd-blush), #fdf0d2); color: var(--wd-pine); font-weight: 800; }
.wd-review-head strong { font-size: 15px; }
.wd-review-date { font-size: 12.5px; margin-top: 2px; }
.wd-review-text { margin: 10px 0 0 52px; white-space: pre-line; line-height: 1.6; }
.wd-review .wv-rv-photos, .wd-review .wv-rv-reply { margin-left: 52px; }
.wd-noreviews { text-align: center; padding: 22px; color: var(--wd-muted); }
.wd-noreviews span { font-size: 30px; }
.wd-noreviews p { margin: 6px 0 0; }

.wd-action { position: relative; padding: 22px; border-radius: 22px; background: #fff; border: 1px solid var(--wd-line); box-shadow: var(--wd-shadow); display: flex; flex-direction: column; gap: 10px; }
.wd-action-price small { display: block; font-size: 12px; font-weight: 700; color: var(--wd-muted); text-transform: uppercase; letter-spacing: .06em; }
.wd-action-price strong { display: block; font-family: var(--wd-head); font-size: 30px; color: var(--wd-ink); line-height: 1.15; margin-top: 2px; }
.wd-action-price .wd-action-ask { font-size: 22px; }
.wd-action-rating { display: inline-block; margin-top: 6px; font-size: 13px; color: var(--wd-muted); text-decoration: none; }
.wd-action-price { padding-bottom: 12px; margin-bottom: 2px; border-bottom: 1px solid var(--wd-line); }
.wd-action-row { display: flex; gap: 8px; }
.wd-action-row .wd-btn { flex: 1; }
.wd-action-note { margin: 4px 0 0; font-size: 12.5px; color: var(--wd-muted); line-height: 1.45; }

.wd-contact { display: flex; flex-direction: column; gap: 4px; }
.wd-contact a { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 12px; text-decoration: none; color: var(--wd-ink); transition: background .15s; }
.wd-contact a:hover { background: var(--wd-soft); }
.wd-contact a > svg { flex: none; width: 38px; height: 38px; padding: 9px; border-radius: 11px; background: #e7f0ee; color: var(--wd-pine); }
.wd-contact a > span { display: flex; flex-direction: column; min-width: 0; font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.wd-contact small { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--wd-muted); }

.wd-quote .wd-dim { font-size: 13.5px; margin: 0 0 14px; }
.wd-quote-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.wd-quote .field { margin-bottom: 12px; }
.wd-quote .field label { font-size: 13px; }
.wd-quote-more { display: block; margin-top: 12px; text-align: center; font-size: 13.5px; font-weight: 700; color: var(--wd-pine); }

.wd-mbar { display: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
    .wd-tools-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .wd-feat { grid-auto-columns: minmax(250px, calc((100% - 32px) / 3)); }
    .wd-detail { grid-template-columns: minmax(0, 1fr) 320px; }
    .wd-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
    .wd-hero { grid-template-columns: 1fr; padding: 34px 28px; }
    .wd-hero-pics { display: none; }
    .wd-browse { grid-template-columns: 1fr; }
    .wd-filter-open { display: inline-flex; }
    .wd-filters { position: fixed; top: 0; bottom: 0; left: 0; z-index: 1001; width: min(340px, 88vw); max-height: none; border-radius: 0 22px 22px 0; transform: translateX(-105%); transition: transform .25s ease; box-shadow: var(--wd-shadow-lg); }
    .wd-filters-top { display: flex; justify-content: space-between; align-items: center; margin: -4px 0 14px; font-size: 18px; }
    .wd-filters-close { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--wd-line); background: #fff; font-size: 22px; line-height: 1; cursor: pointer; }
    body.wd-filters-on .wd-filters { transform: none; }
    .wd-filters-shade { position: fixed; inset: 0; z-index: 1000; background: rgba(8, 22, 20, .45); }
    body.wd-filters-on .wd-filters-shade { display: block; }
    body.wd-filters-on { overflow: hidden; }
    .wd-detail { grid-template-columns: 1fr; }
    .wd-detail-side { order: 2; }
    .wd-cta { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px) {
    .wd-hero { padding: 26px 18px 24px; border-radius: 22px; margin-left: -4px; margin-right: -4px; }
    .wd-hero p { font-size: 15px; }
    .wd-search { flex-direction: column; border-radius: 18px; padding: 6px; }
    .wd-search-field { border-right: 0; border-bottom: 1px solid var(--wd-line); padding: 10px 12px; }
    .wd-search-field--grow { border-bottom: 0; }
    .wd-search-btn { justify-content: center; padding: 14px; }
    .wd-stats { gap: 14px 22px; }
    .wd-stats strong { font-size: 22px; }
    .wd-tools { padding: 18px; }
    .wd-tools-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .wd-tool { padding: 14px; }
    .wd-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .wd-feat { grid-auto-columns: 78%; }
    .wd-grid { grid-template-columns: 1fr; }
    .wd-grid--related { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .wd-grid--related .wd-card-body { padding: 10px 12px 12px; }
    .wd-grid--related .wd-card-name { font-size: 14.5px; }
    .wd-results-bar { flex-direction: column; }
    .wd-results-tools { width: 100%; }
    .wd-sort { flex: 1; }
    .wd-sort label { justify-content: space-between; }
    .wd-card-go { opacity: 1; transform: none; }
    .wd-cta { padding: 26px 22px; }

    .wd-gallery { height: 260px; border-radius: 18px; margin-left: -4px; margin-right: -4px; grid-template-columns: 1fr !important; grid-template-rows: 1fr !important; }
    .wd-gallery img:not(.wd-gallery-0) { display: none; }
    .wd-vhead { flex-direction: column; }
    .wd-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .wd-panel { padding: 18px; }
    .wd-rbreak { grid-template-columns: 1fr; gap: 14px; }
    .wd-review-text, .wd-review .wv-rv-photos, .wd-review .wv-rv-reply { margin-left: 0; }
    .wd-quote-row { grid-template-columns: 1fr; gap: 0; }

    .wd-mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; display: flex; align-items: center; gap: 10px; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--wd-line); box-shadow: 0 -8px 24px rgba(0,0,0,.08); }
    .wd-mbar-price { flex: 1; min-width: 0; }
    .wd-mbar-price small { display: block; font-size: 11px; color: var(--wd-muted); }
    .wd-mbar-price strong { display: block; font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .wd-mbar-ic { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: #e7f0ee; color: var(--wd-pine); flex: none; }
    .wd-mbar-ic svg { width: 22px; height: 22px; }
    .wd-mbar-ic--wa { background: #25d366; color: #fff; }
    body:has(.wd-mbar) .wf-content { padding-bottom: 96px; }
}

@media print {
    .wd-mbar, .wd-anchors, .wd-vhead-actions, .wd-action, .wd-quote, .wd-gallery-all, .wd-hero-pics { display: none !important; }
    .wd-detail { grid-template-columns: 1fr; }
}

/* ---------- Night mode (follows html[data-theme=dark] when the site sets it) ---------- */
html[data-theme="dark"] {
    --wd-ink: #e9efed; --wd-muted: #9fb2ad; --wd-line: #2a3a37; --wd-card: #16211f; --wd-soft: #1c2927; --wd-cream: #1f1c14;
}
html[data-theme="dark"] .wd-card, html[data-theme="dark"] .wd-cat, html[data-theme="dark"] .wd-tool, html[data-theme="dark"] .wd-feat-card,
html[data-theme="dark"] .wd-filters, html[data-theme="dark"] .wd-panel, html[data-theme="dark"] .wd-side-card, html[data-theme="dark"] .wd-action,
html[data-theme="dark"] .wd-recent-item, html[data-theme="dark"] .wd-place, html[data-theme="dark"] .wd-empty, html[data-theme="dark"] .wd-mbar,
html[data-theme="dark"] .wd-pill-btn, html[data-theme="dark"] .wd-sort label, html[data-theme="dark"] .wd-btn--ghost, html[data-theme="dark"] .wd-arrows button { background: var(--wd-card); color: var(--wd-ink); }
html[data-theme="dark"] .wd-anchors { background: rgba(22,33,31,.92); }

/* ---------- Wishlist + compare (v1.3.1) ---------- */
.wd-page-title { margin: 0; font-family: var(--wd-head); font-size: clamp(26px, 3vw, 34px); letter-spacing: -.02em; color: var(--wd-ink); }
.wd-hero--blush { background: radial-gradient(700px 300px at 100% 0, rgba(232,166,160,.35), transparent 60%), radial-gradient(500px 260px at 0 120%, rgba(244,185,66,.2), transparent 60%), linear-gradient(135deg, #154a45 0%, var(--wd-deep) 100%); }
.wd-hero--slim p { margin-bottom: 18px; }
.wd-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.wd-chips--filter { margin: 0 0 16px; }
button.wd-chip { border: 1px solid transparent; cursor: pointer; font-family: inherit; padding: 7px 12px; background: #fff; border-color: var(--wd-line); color: var(--wd-ink); }
button.wd-chip span { width: auto; min-width: 20px; padding: 0 6px; height: 20px; font-size: 11px; background: var(--wd-soft); }
button.wd-chip.is-active { background: var(--wd-pine); border-color: var(--wd-pine); color: #fff; }
button.wd-chip.is-active span { background: rgba(255,255,255,.2); color: #fff; }
.wd-wish-item[hidden] { display: none; }
.wd-wish-item { display: flex; }
.wd-wish-item > .wd-card { flex: 1; }
.wd-compare-tick { display: flex; align-items: center; gap: 8px; margin: 0; padding: 10px 16px; border-top: 1px solid var(--wd-line); font-size: 13px; font-weight: 700; color: var(--wd-pine); cursor: pointer; background: var(--wd-soft); }
.wd-compare-tick input { width: 17px; height: 17px; min-height: 0; margin: 0; accent-color: var(--wd-pine); }
.wd-compare-tick input:disabled + span { opacity: .45; }
.wd-card.is-picked { border-color: var(--wd-pine); box-shadow: 0 0 0 3px rgba(18,64,60,.15); }
.wd-card.is-picked .wd-compare-tick { background: #e2efec; }
.wd-tray { position: fixed; left: 50%; bottom: 18px; z-index: 950; transform: translateX(-50%); display: flex; align-items: center; gap: 10px; padding: 10px 10px 10px 20px; border-radius: 999px; background: var(--wd-deep); color: #fff; box-shadow: 0 16px 40px rgba(0,0,0,.3); max-width: calc(100vw - 24px); }
.wd-tray[hidden] { display: none; }
.wd-tray-text { font-size: 14px; white-space: nowrap; }
.wd-tray .wd-btn--ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.3); }
.wd-tray .wd-btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }

.wd-cmp-wrap { overflow-x: auto; border-radius: 20px; border: 1px solid var(--wd-line); background: #fff; }
.wd-cmp { width: 100%; min-width: calc(150px + var(--n) * 210px); border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.wd-cmp th, .wd-cmp td { padding: 14px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--wd-line); font-size: 14px; }
.wd-cmp tbody tr:last-child td, .wd-cmp tbody tr:last-child th { border-bottom: 0; }
.wd-cmp td + td, .wd-cmp th + th, .wd-cmp th + td { border-left: 1px solid var(--wd-line); }
.wd-cmp-label { width: 150px; position: sticky; left: 0; z-index: 1; background: var(--wd-soft); font-size: 12px !important; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--wd-muted); }
.wd-cmp thead th { background: #fff; }
.wd-cmp thead .wd-cmp-label { background: var(--wd-soft); }
.wd-cmp-head { position: relative; display: flex; flex-direction: column; gap: 10px; }
.wd-cmp-photo { display: block; aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; background: #dfe9e6; }
.wd-cmp-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wd-cmp-name { font-size: 16px; font-weight: 800; color: var(--wd-ink); text-decoration: none; line-height: 1.25; }
.wd-cmp-name:hover { color: var(--wd-pine); }
.wd-cmp-x { position: absolute; top: 8px; right: 8px; z-index: 1; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: rgba(255,255,255,.95); color: var(--wd-ink); text-decoration: none; font-size: 18px; box-shadow: 0 2px 6px rgba(0,0,0,.15); }
.wd-cmp-big { display: block; font-size: 17px; color: var(--wd-ink); }
.wd-cmp td.is-best { background: #f3faf6; }
.wd-best { display: inline-block; margin-top: 6px; padding: 2px 9px; border-radius: 999px; background: #e3f4ea; color: var(--wd-ok); font-size: 11px; font-weight: 800; }
.wd-yes { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: #e3f4ea; color: var(--wd-ok); font-weight: 900; }
.wd-no { color: #b7c3c0; font-weight: 800; }
.wd-cmp-list { margin: 0; padding-left: 18px; }
.wd-cmp-list li { margin: 2px 0; }
.wd-cmp-contact { display: flex; flex-wrap: wrap; gap: 6px; }
.wd-cmp-contact a { display: inline-flex; }
.wd-cmp-contact svg { width: 36px; height: 36px; padding: 8px; border-radius: 11px; background: #e7f0ee; color: var(--wd-pine); }
.wd-cmp-actions td { display: table-cell; }
.wd-cmp-actions .wd-btn + .wd-btn { margin-top: 6px; }
@media (max-width: 640px) {
    .wd-cmp { min-width: calc(110px + var(--n) * 170px); }
    .wd-cmp-label { width: 110px; padding: 12px 10px !important; }
    .wd-cmp th, .wd-cmp td { padding: 12px; font-size: 13px; }
    .wd-tray { bottom: 12px; padding-left: 14px; gap: 6px; }
    .wd-tray .wd-btn--ghost { display: none; }
}
html[data-theme="dark"] .wd-cmp-wrap, html[data-theme="dark"] .wd-cmp thead th, html[data-theme="dark"] button.wd-chip { background: var(--wd-card); color: var(--wd-ink); }

/* ---------- Couple dashboard (v1.3.2) ---------- */
.wd-dash-hero { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.wd-dash-sub { font-size: 16px !important; color: #fbe6b8 !important; margin-bottom: 18px !important; }
.wd-count-box { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 170px; padding: 22px 26px; border-radius: 24px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(6px); text-align: center; }
.wd-count-box strong { font-family: var(--wd-head); font-size: 58px; line-height: 1; color: var(--wd-sun); }
.wd-count-box span { margin-top: 6px; font-weight: 700; color: #fff; }
.wd-count-box small { margin-top: 4px; font-size: 12px; color: rgba(255,255,255,.65); }
.wd-dash-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0 0 22px; }
.wd-dash-card { display: flex; flex-direction: column; gap: 6px; padding: 18px; border-radius: 20px; background: #fff; border: 1px solid var(--wd-line); text-decoration: none; color: var(--wd-ink); transition: transform .15s, box-shadow .15s; }
.wd-dash-card:hover { transform: translateY(-2px); box-shadow: var(--wd-shadow); }
.wd-dash-card-top { display: flex; align-items: center; gap: 8px; }
.wd-dash-card-top strong { font-size: 14px; }
.wd-dash-ic { font-size: 18px; }
.wd-dash-num { font-family: var(--wd-head); font-size: 32px; line-height: 1.1; margin-top: 4px; }
.wd-dash-num small { font-size: 16px; color: var(--wd-muted); margin-left: 4px; }
.wd-dash-num--money { font-size: 22px; padding: 6px 0 2px; overflow-wrap: anywhere; }
.wd-dash-card p { margin: 0; font-size: 13px; color: var(--wd-muted); }
.wd-dash-go { margin-top: auto; font-size: 13px; font-weight: 700; color: var(--wd-pine); padding-top: 6px; }
.wd-bar { height: 8px; border-radius: 999px; background: #e6ecea; overflow: hidden; margin: 4px 0 2px; }
.wd-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--wd-pine), #2c7a70); }
.wd-bar--ok span { background: linear-gradient(90deg, #2e9a5c, #1d7a45); }
.wd-bar--warn span { background: linear-gradient(90deg, #f0a92a, #d9631e); }
.wd-warn { color: #b4500c !important; font-weight: 700; }
.wd-dash-cols { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 22px; align-items: start; }
.wd-dash-main { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.wd-dash-side { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.wd-team { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.wd-team-slot { position: relative; display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 14px; border: 1.5px dashed #cfdad7; text-decoration: none; color: var(--wd-ink); transition: border-color .15s, background .15s; min-width: 0; }
.wd-team-slot:hover { border-color: var(--wd-pine); background: var(--wd-soft); }
.wd-team-slot.is-hired { border-style: solid; border-color: #bfe0cc; background: #f3faf6; }
.wd-team-ic { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; background: #e7f0ee; color: var(--wd-pine); }
.wd-team-slot.is-hired .wd-team-ic { background: var(--wd-pine); color: var(--wd-sun); }
.wd-team-ic svg { width: 21px; height: 21px; }
.wd-team-txt { display: flex; flex-direction: column; min-width: 0; }
.wd-team-txt small { font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--wd-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wd-team-txt strong { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wd-team-slot:not(.is-hired) .wd-team-txt strong { color: var(--wd-pine); }
.wd-team-ok { position: absolute; top: 8px; right: 10px; color: var(--wd-ok); font-weight: 900; }
.wd-task { display: flex; align-items: flex-start; gap: 10px; padding: 9px 0; border-top: 1px solid var(--wd-line); margin: 0; }
.wd-task:first-of-type { border-top: 0; }
.wd-task-box { flex: none; width: 22px; height: 22px; margin-top: 1px; padding: 0; border-radius: 7px; border: 2px solid #b9c7c3; background: #fff; cursor: pointer; transition: border-color .15s, background .15s; }
.wd-task-box:hover { border-color: var(--wd-ok); background: #e3f4ea; }
.wd-task span { display: flex; flex-direction: column; min-width: 0; }
.wd-task strong { font-size: 14px; font-weight: 600; }
.wd-task small { font-size: 12px; color: var(--wd-muted); }
.wd-task small.wd-late { color: #b4360c; font-weight: 700; }
.wd-bk { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-top: 1px solid var(--wd-line); text-decoration: none; color: var(--wd-ink); }
.wd-bk:first-of-type { border-top: 0; }
.wd-bk-date { flex: none; display: flex; flex-direction: column; align-items: center; width: 46px; padding: 6px 0; border-radius: 12px; background: var(--wd-cream); border: 1px solid #f1e5cc; }
.wd-bk-date strong { font-family: var(--wd-head); font-size: 18px; line-height: 1; }
.wd-bk-date small { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--wd-gold-ink); }
.wd-bk-txt { display: flex; flex-direction: column; min-width: 0; }
.wd-bk-txt strong { font-size: 14px; }
.wd-bk-st { font-size: 12px; font-weight: 700; color: var(--wd-gold-ink); }
.wd-bk-st--confirmed { color: var(--wd-ok); }
.wd-quick { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 12px; }
.wd-quick a { display: flex; flex-direction: column; gap: 4px; padding: 12px; border-radius: 14px; background: var(--wd-soft); text-decoration: none; color: var(--wd-ink); font-size: 18px; }
.wd-quick a span { font-size: 13px; font-weight: 700; }
.wd-quick a:hover { background: #e7f0ee; }
.wv-subnav a.is-active { background: var(--wd-pine); border-color: var(--wd-pine); color: #fff; }
@media (max-width: 1100px) { .wd-dash-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 960px) { .wd-dash-cols { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
    .wd-dash-hero { grid-template-columns: 1fr; }
    .wd-count-box { flex-direction: row; gap: 10px; justify-content: flex-start; padding: 14px 18px; min-width: 0; }
    .wd-count-box strong { font-size: 40px; }
    .wd-count-box span { margin: 0; }
    .wd-dash-grid { gap: 10px; }
    .wd-dash-card { padding: 14px; }
    .wd-dash-num { font-size: 26px; }
    .wd-team { grid-template-columns: 1fr 1fr; }
}
.wd-team-slot.is-hired { padding-right: 28px; }

/* ---------- Vendor dashboard (v1.3.2) ---------- */
.wd-vdash-hero { margin-bottom: 18px; }
.wd-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin: 0 0 22px; }
.wd-kpi { position: relative; display: flex; flex-direction: column; gap: 2px; padding: 16px; border-radius: 18px; background: #fff; border: 1px solid var(--wd-line); text-decoration: none; color: var(--wd-ink); min-width: 0; }
a.wd-kpi:hover { border-color: var(--wd-pine); }
.wd-kpi > span { font-size: 16px; color: var(--wd-pine); }
.wd-kpi strong { font-family: var(--wd-head); font-size: 26px; line-height: 1.15; }
.wd-kpi .wd-kpi-money { font-size: 18px; padding: 4px 0; overflow-wrap: anywhere; }
.wd-kpi small { font-size: 12px; color: var(--wd-muted); }
.wd-kpi em { position: absolute; top: 12px; right: 12px; font-style: normal; font-size: 11px; font-weight: 800; padding: 2px 8px; border-radius: 999px; background: var(--wd-sun); color: #2a1d00; }
.wd-todo { display: flex; align-items: flex-start; gap: 12px; padding: 14px 0; border-top: 1px solid var(--wd-line); text-decoration: none; color: var(--wd-ink); }
.wd-panel-head + .wd-todo { border-top: 0; padding-top: 4px; }
.wd-todo:hover .wd-todo-go { text-decoration: underline; }
.wd-todo-ic { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; background: var(--wd-cream); font-size: 18px; color: var(--wd-gold-ink); }
.wd-todo-txt { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wd-todo-txt strong { font-size: 14.5px; }
.wd-todo-txt small { font-size: 12.5px; color: var(--wd-muted); }
.wd-todo-msg { font-size: 13.5px; color: var(--wd-ink); opacity: .85; }
.wd-todo-go { flex: none; align-self: center; font-size: 13px; font-weight: 800; color: var(--wd-pine); white-space: nowrap; }
.wd-lrow { display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 14px 0; border-top: 1px solid var(--wd-line); }
.wd-panel-head + .wd-lrow { border-top: 0; padding-top: 4px; }
.wd-lrow-pic { display: block; width: 92px; height: 72px; border-radius: 12px; overflow: hidden; background: #dfe9e6; }
.wd-lrow-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wd-lrow-top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.wd-lrow-name { font-weight: 800; font-size: 16px; color: var(--wd-ink); text-decoration: none; }
.wd-lrow-name:hover { color: var(--wd-pine); }
.wd-lrow-stats { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 6px 0 8px; font-size: 13px; color: var(--wd-muted); font-weight: 600; }
.wd-strength { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.wd-strength-bar { flex: 0 0 160px; height: 7px; border-radius: 999px; background: #e6ecea; overflow: hidden; }
.wd-strength-bar span { display: block; height: 100%; border-radius: inherit; }
.wd-strength--great .wd-strength-bar span { background: #1d7a45; }
.wd-strength--good .wd-strength-bar span { background: #e3a21a; }
.wd-strength--weak .wd-strength-bar span { background: #d9631e; }
.wd-strength-lbl { font-size: 12.5px; color: var(--wd-muted); }
.wd-strength-lbl strong { color: var(--wd-ink); }
.wd-lrow-tip { margin: 8px 0 0; font-size: 13px; color: var(--wd-ink); }
.wd-lrow-actions { display: flex; flex-direction: column; gap: 6px; }
.wd-improve { border-color: #f1e5cc; background: linear-gradient(180deg, #fffaf0, #fff 60%); }
.wd-ring { --p: 0; width: 96px; height: 96px; margin: 0 auto 14px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--wd-pine) calc(var(--p) * 1%), #e6ecea 0); }
.wd-ring strong { display: grid; place-items: center; width: 74px; height: 74px; border-radius: 50%; background: #fff; font-family: var(--wd-head); font-size: 22px; }
.wd-tips { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.wd-tips li { display: flex; gap: 8px; font-size: 13.5px; line-height: 1.45; }
.wd-tips li > span { flex: none; align-self: flex-start; font-size: 11px; font-weight: 800; padding: 2px 7px; border-radius: 999px; background: #e3f4ea; color: var(--wd-ok); }
.wd-tips--plain { margin: 0; }
.wd-tips--plain li { display: block; }
@media (max-width: 1100px) { .wd-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) {
    .wd-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .wd-lrow { grid-template-columns: 64px minmax(0, 1fr); }
    .wd-lrow-pic { width: 64px; height: 56px; }
    .wd-lrow-actions { grid-column: 1 / -1; flex-direction: row; }
    .wd-strength-bar { flex-basis: 110px; }
    .wd-todo-go { display: none; }
}
.wd-formhealth { display: flex; gap: 18px; align-items: flex-start; margin: 0 0 22px; padding: 18px; border-radius: 18px; border: 1px solid #f1e5cc; background: linear-gradient(180deg, #fffaf0, #fff); }
.wd-formhealth .wd-ring { flex: none; margin: 0; width: 84px; height: 84px; }
.wd-formhealth .wd-ring strong { width: 64px; height: 64px; font-size: 19px; }
.wd-formhealth > div:last-child > strong { display: block; margin: 4px 0 10px; }
.wd-formhealth .wd-tips { margin: 0; }
@media (max-width: 640px) { .wd-formhealth { flex-direction: column; } }
@media (max-width: 640px) { .wd-team { grid-template-columns: 1fr; } }

/* ---------- Planning tools: checklist, budget, guests (v1.3.3) ---------- */
.wd-plan-hero { grid-template-columns: minmax(0, 1fr) auto; align-items: center; margin-bottom: 18px; }
.wd-plan-hero p { margin-bottom: 16px; }
.wd-hero-warn { color: #ffb38a; }
.wd-hero-strong { color: var(--wd-sun); }
.wd-hero-link { color: #fbe6b8; font-weight: 700; }
.wd-plan-ring { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 8px; color: rgba(255,255,255,.8); font-size: 13px; font-weight: 600; }
.wd-ring--light { width: 112px; height: 112px; margin: 0; background: conic-gradient(var(--wd-sun) calc(var(--p) * 1%), rgba(255,255,255,.15) 0); transition: background .3s; }
.wd-ring--light strong { width: 88px; height: 88px; background: var(--wd-deep); color: #fff; font-size: 26px; }

.wd-addbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 18px; padding: 12px; border-radius: 18px; background: #fff; border: 1px solid var(--wd-line); box-shadow: var(--wd-shadow); }
.wd-addbar[hidden] { display: none; }
.wd-addbar input, .wd-addbar select, .wd-bnew input, .wd-bulk select, .wd-eventform input, .wd-copy input, .wd-meal input, .wd-find {
    min-height: 0 !important; height: 42px; padding: 0 12px !important; border-radius: 12px !important; border: 1px solid var(--wd-line) !important; background: var(--wd-soft) !important; font: 500 14px 'DM Sans', sans-serif; color: var(--wd-ink); box-shadow: none !important; }
.wd-addbar input[type=text] { flex: 1 1 220px; }
.wd-addbar--guest input[type=text], .wd-addbar--guest input[type=tel], .wd-addbar--guest input[type=email] { flex: 1 1 150px; }
.wd-plus { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 14px; margin: 0; }
.wd-plus input { width: 17px; height: 17px; min-height: 0; margin: 0; accent-color: var(--wd-pine); }

.wd-toolbar { display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; align-items: center; margin: 0 0 16px; }
.wd-seg { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 14px; background: #fff; border: 1px solid var(--wd-line); }
.wd-seg button { border: 0; background: transparent; padding: 8px 12px; border-radius: 10px; font: 700 13px 'DM Sans', sans-serif; color: var(--wd-muted); cursor: pointer; }
.wd-seg button span { font-size: 11px; padding: 1px 7px; border-radius: 999px; background: var(--wd-soft); margin-left: 3px; }
.wd-seg button.is-on { background: var(--wd-pine); color: #fff; }
.wd-seg button.is-on span { background: rgba(255,255,255,.2); }
.wd-find { flex: 0 1 260px; background: #fff !important; }

.wd-tgroup { margin: 0 0 18px; }
.wd-tgroup[hidden] { display: none; }
.wd-tgroup-h { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--wd-muted); }
.wd-tgroup-h span { font-size: 11px; padding: 1px 8px; border-radius: 999px; background: #e6ecea; color: var(--wd-ink); letter-spacing: 0; }
.wd-tgroup--late .wd-tgroup-h { color: #b4360c; }
.wd-tgroup--late .wd-tlist { border-color: #f3c9b5; }
.wd-tlist { border-radius: 18px; background: #fff; border: 1px solid var(--wd-line); overflow: visible; }
.wd-trow, .wd-grow { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-top: 1px solid var(--wd-line); transition: background .2s; }
.wd-trow:first-child, .wd-grow:first-child { border-top: 0; }
.wd-trow[hidden], .wd-grow[hidden] { display: none; }
.wd-trow:hover, .wd-grow:hover { background: #fafcfb; }
.wd-trow.pop { animation: wd-flash .45s ease; }
@keyframes wd-flash { 30% { background: #e3f4ea; } }
.wd-tcheck-form { margin: 0; flex: none; }
.wd-tcheck { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; padding: 0; border-radius: 8px; border: 2px solid #b9c7c3; background: #fff; color: transparent; cursor: pointer; transition: all .15s; }
.wd-tcheck svg { width: 16px; height: 16px; }
.wd-tcheck:hover { border-color: var(--wd-ok); }
.wd-trow.is-done .wd-tcheck { background: var(--wd-ok); border-color: var(--wd-ok); color: #fff; }
.wd-tmain { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.wd-ttitle { font-size: 15px; font-weight: 600; color: var(--wd-ink); overflow-wrap: anywhere; }
.wd-trow.is-done .wd-ttitle { text-decoration: line-through; color: var(--wd-muted); font-weight: 500; }
.wd-tmeta { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12.5px; color: var(--wd-muted); }
.wd-tcat { font-weight: 700; color: var(--wd-pine); }
.wd-tdue.is-late { color: #b4360c; font-weight: 700; }
.wd-tdone { color: var(--wd-ok); font-weight: 700; }
.wd-tactions { display: flex; align-items: center; gap: 8px; flex: none; }
.wd-tfind { font-size: 12.5px; font-weight: 800; color: var(--wd-pine); text-decoration: none; padding: 6px 10px; border-radius: 999px; background: #e7f0ee; white-space: nowrap; }
.wd-tfind:hover { background: var(--wd-pine); color: #fff; }
.wd-tmenu { position: relative; }
.wd-tmenu summary { list-style: none; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 10px; cursor: pointer; font-size: 18px; color: var(--wd-muted); }
.wd-tmenu summary::-webkit-details-marker { display: none; }
.wd-tmenu summary:hover, .wd-tmenu[open] summary { background: var(--wd-soft); color: var(--wd-ink); }
.wd-tmenu-pop { position: absolute; right: 0; top: 38px; z-index: 30; width: 280px; padding: 12px; border-radius: 16px; background: #fff; border: 1px solid var(--wd-line); box-shadow: var(--wd-shadow-lg); display: flex; flex-direction: column; gap: 8px; }
.wd-tedit { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.wd-tedit input, .wd-tedit select { min-height: 0 !important; height: 40px; padding: 0 10px !important; border-radius: 10px !important; border: 1px solid var(--wd-line) !important; background: var(--wd-soft) !important; font: 500 14px 'DM Sans', sans-serif; }
.wd-tdel { width: 100%; border: 0; background: transparent; color: #b4360c; font: 700 13px 'DM Sans', sans-serif; padding: 8px; border-radius: 10px; cursor: pointer; text-align: left; }
.wd-tdel:hover { background: #fdeee7; }
.wd-tmenu-pop form { margin: 0; }

/* budget + guest stats */
.wd-bstats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.wd-bstat { padding: 16px; border-radius: 18px; background: #fff; border: 1px solid var(--wd-line); min-width: 0; }
.wd-bstat small { display: block; font-size: 12px; font-weight: 700; color: var(--wd-muted); margin-bottom: 4px; }
.wd-bstat strong { display: block; font-family: var(--wd-head); font-size: 22px; color: var(--wd-ink); overflow-wrap: anywhere; }
.wd-bstat--ok { border-top: 4px solid #2e9a5c; }
.wd-bstat--warn { border-top: 4px solid var(--wd-sun); }
.wd-bstat--bad { border-top: 4px solid #d9631e; }
.wd-bstat--bad strong { color: #b4360c; }
.wd-bbar { display: flex; height: 12px; margin: 14px 0 6px; border-radius: 999px; background: #e6ecea; overflow: hidden; }
.wd-bbar span { display: block; height: 100%; transition: width .3s; }
.wd-bbar-paid { background: #2e9a5c; }
.wd-bbar-due { background: var(--wd-sun); }
.wd-bbar-no { background: #e08b6b; }
.wd-bbar-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 20px; font-size: 12.5px; color: var(--wd-muted); }
.wd-bbar-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; background: #e6ecea; }
.wd-rsvpbar { margin-top: 14px; }

.wd-bcols { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 22px; align-items: start; margin-top: 4px; }
.wd-bcats { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.wd-bcat { padding: 18px; border-radius: 20px; background: #fff; border: 1px solid var(--wd-line); }
.wd-bcat-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.wd-bcat-head h2 { margin: 0 0 2px; font-family: var(--wd-head); font-size: 18px; color: var(--wd-ink); }
.wd-bcat-head form { margin: 0; }
.wd-bcat-head .wd-dim { font-size: 13px; }
.wd-bcat-bar { margin: 10px 0 12px; height: 6px; }
.wd-bitems { display: flex; flex-direction: column; }
.wd-bitem { display: flex; align-items: center; gap: 10px; padding: 6px 0; border-top: 1px dashed var(--wd-line); }
.wd-bitem--head { border-top: 0; padding: 0 0 4px; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--wd-muted); }
.wd-bitem--head span:first-child { flex: 1; }
.wd-bitem--head span:nth-child(2), .wd-bitem--head span:nth-child(3) { width: 120px; }
.wd-bitem--head span:last-child { width: 116px; }
.wd-bitem-form { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; margin: 0; }
.wd-bitem-title { flex: 1; min-width: 0; height: 38px; min-height: 0 !important; padding: 0 10px !important; border: 1px solid transparent !important; border-radius: 10px !important; background: transparent !important; font: 600 14px 'DM Sans', sans-serif; color: var(--wd-ink); box-shadow: none !important; }
.wd-bitem-title:hover, .wd-bitem-title:focus { border-color: var(--wd-line) !important; background: var(--wd-soft) !important; }
.wd-num { display: block; width: 120px; margin: 0; }
.wd-num span { display: none; }
.wd-num input { width: 100%; height: 38px; min-height: 0 !important; padding: 0 10px !important; border-radius: 10px !important; border: 1px solid var(--wd-line) !important; background: var(--wd-soft) !important; font: 600 14px 'DM Sans', sans-serif; text-align: right; box-shadow: none !important; }
.wd-bitem.is-saving .wd-num input { opacity: .6; }
.wd-bitem.is-saved .wd-num input, .wd-meal input.is-saved { border-color: #2e9a5c !important; background: #f3faf6 !important; }
.wd-bitem-end { display: flex; align-items: center; gap: 6px; width: 116px; justify-content: flex-end; }
.wd-bitem-end form { margin: 0; }
.wd-pay { font-size: 11px; font-weight: 800; padding: 3px 8px; border-radius: 999px; white-space: nowrap; }
.wd-pay--paid { background: #e3f4ea; color: var(--wd-ok); }
.wd-pay--part { background: #fdf0d2; color: var(--wd-gold-ink); }
.wd-pay--none { background: #eef1f0; color: var(--wd-muted); }
.wd-iconbtn { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 10px; background: transparent; color: var(--wd-muted); cursor: pointer; font-size: 14px; text-decoration: none; }
.wd-iconbtn:hover { background: var(--wd-soft); color: #b4360c; }
.wd-iconbtn svg { width: 18px; height: 18px; }
.wd-iconbtn--wa { color: #1aa851; }
.wd-iconbtn--wa:hover { background: #e3f7ea; color: #128c3e; }
.wd-bnew { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--wd-line); }
.wd-bnew input[type=text] { flex: 1 1 180px; }
.wd-bnew input[type=number] { flex: 0 1 120px; width: 120px; }
.wd-donut-card { position: sticky; top: 16px; }
.wd-donut { display: block; width: 190px; height: 190px; margin: 4px auto 14px; }
.wd-donut-total { font: 800 15px 'DM Sans', sans-serif; fill: var(--wd-ink); }
.wd-donut-sub { font: 600 10px 'DM Sans', sans-serif; fill: var(--wd-muted); }
.wd-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.wd-legend li { display: grid; grid-template-columns: auto 1fr auto; column-gap: 8px; align-items: center; font-size: 13.5px; }
.wd-legend i { width: 10px; height: 10px; border-radius: 3px; }
.wd-legend li > span:first-child { grid-column: 1 / 3; }
.wd-legend i + span { grid-column: auto; }
.wd-legend b { font-size: 13px; }
.wd-legend small { grid-column: 2 / 4; font-size: 12px; color: var(--wd-muted); }

/* guests */
.wd-gcols { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 22px; align-items: start; margin-top: 20px; }
.wd-gmain { min-width: 0; }
.wd-gav { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, var(--wd-blush), #fdf0d2); color: var(--wd-pine); font-weight: 800; }
.wd-gmain-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.wd-gmain-txt strong { font-size: 15px; overflow-wrap: anywhere; }
.wd-gmain-txt .wd-dim { font-size: 12.5px; }
.wd-plus1 { font-size: 11px; font-weight: 800; padding: 1px 6px; border-radius: 999px; background: #e7f0ee; color: var(--wd-pine); vertical-align: 2px; }
.wd-rsvp { display: inline-flex; gap: 3px; padding: 3px; border-radius: 12px; background: var(--wd-soft); margin: 0; flex: none; }
.wd-rsvp button { display: inline-flex; align-items: center; gap: 4px; height: 30px; padding: 0 9px; border: 0; border-radius: 9px; background: transparent; color: var(--wd-muted); font: 800 13px 'DM Sans', sans-serif; cursor: pointer; }
.wd-rsvp button em { font-style: normal; font-size: 12px; display: none; }
.wd-rsvp button.is-on em { display: inline; }
.wd-rsvp button:hover { background: #fff; }
.wd-rsvp .wd-rsvp-attending.is-on { background: #2e9a5c; color: #fff; }
.wd-rsvp .wd-rsvp-pending.is-on { background: var(--wd-sun); color: #2a1d00; }
.wd-rsvp .wd-rsvp-declined.is-on { background: #d9631e; color: #fff; }
.wd-meal { margin: 0; flex: 0 1 140px; }
.wd-meal input { width: 100%; height: 36px; font-size: 13px; }
.wd-gacts { display: flex; align-items: center; gap: 2px; flex: none; }
.wd-gacts form { margin: 0; }
.wd-bulk { margin: 0 0 18px; padding: 16px; border-radius: 18px; background: #fff; border: 1px solid var(--wd-line); box-shadow: var(--wd-shadow); }
.wd-bulk[hidden] { display: none; }
.wd-bulk textarea { width: 100%; margin: 8px 0 6px; border-radius: 12px; border: 1px solid var(--wd-line); background: var(--wd-soft); padding: 10px 12px; font: 500 14px/1.6 'DM Sans', sans-serif; }
.wd-bulk p { font-size: 12.5px; margin: 0 0 10px; }
.wd-bulk-row { display: flex; gap: 8px; flex-wrap: wrap; }
.wd-eventform { display: flex; flex-direction: column; gap: 8px; margin: 0 0 12px; }
.wd-eventform[hidden] { display: none; }
.wd-ev { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-top: 1px solid var(--wd-line); }
.wd-ev:first-of-type { border-top: 0; }
.wd-ev .wd-bk-txt { flex: 1; }
.wd-ev form { margin: 0; }
.wd-copy { display: flex; gap: 6px; }
.wd-copy input { flex: 1; min-width: 0; font-size: 13px; }

@media (max-width: 1100px) { .wd-bstats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 960px) {
    .wd-bcols, .wd-gcols { grid-template-columns: 1fr; }
    .wd-donut-card { position: static; }
}
@media (max-width: 640px) {
    .wd-plan-hero { grid-template-columns: 1fr; }
    .wd-plan-ring { flex-direction: row; justify-content: flex-start; gap: 12px; }
    .wd-ring--light { width: 76px; height: 76px; }
    .wd-ring--light strong { width: 58px; height: 58px; font-size: 18px; }
    .wd-find { flex: 1 1 100%; }
    .wd-trow { flex-wrap: wrap; align-items: flex-start; }
    .wd-tmain { flex-basis: calc(100% - 90px); }
    .wd-tactions { margin-left: 38px; }
    .wd-tmenu-pop { right: auto; left: -150px; width: 260px; }
    .wd-bitem { flex-wrap: wrap; }
    .wd-bitem--head { display: none; }
    .wd-bitem-form { flex-wrap: wrap; }
    .wd-bitem-title { flex-basis: 100%; }
    .wd-num { flex: 1; width: auto; }
    .wd-num span { display: block; font-size: 11px; font-weight: 700; color: var(--wd-muted); margin-bottom: 2px; }
    .wd-bitem-end { width: 100%; justify-content: space-between; }
    .wd-grow { flex-wrap: wrap; }
    .wd-gmain-txt { flex-basis: calc(100% - 100px); }
    .wd-rsvp { order: 3; margin-left: 50px; }
    .wd-rsvp button em { display: none !important; }
    .wd-meal { order: 4; flex: 1 1 100px; }
    .wd-gacts { order: 2; }
    .wd-addbar input, .wd-addbar select { flex: 1 1 100% !important; }
}
.wd-bbar-legend i.wd-bbar-paid { background: #2e9a5c; }
.wd-bbar-legend i.wd-bbar-due { background: var(--wd-sun); }

/* ---------- Quotes (v1.3.4) ---------- */
.wd-seg-a { display: inline-flex; align-items: center; gap: 4px; padding: 8px 12px; border-radius: 10px; font: 700 13px 'DM Sans', sans-serif; color: var(--wd-muted); text-decoration: none; }
.wd-seg-a span { font-size: 11px; padding: 1px 7px; border-radius: 999px; background: var(--wd-soft); }
.wd-seg-a.is-on { background: var(--wd-pine); color: #fff; }
.wd-seg-a.is-on span { background: rgba(255,255,255,.2); }
.wd-qlist { display: flex; flex-direction: column; gap: 14px; margin-top: 16px; }
.wd-q { padding: 18px; border-radius: 20px; background: #fff; border: 1px solid var(--wd-line); scroll-margin-top: 80px; }
.wd-q--hired { border-color: #9fd8b5; box-shadow: 0 0 0 3px rgba(46,154,92,.12); }
.wd-q--replied { border-left: 4px solid var(--wd-pine); }
.wd-q--new { border-left: 4px solid var(--wd-sun); }
.wd-q--declined, .wd-q--closed { opacity: .82; }
.wd-q-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.wd-q-vendor { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--wd-ink); min-width: 0; }
.wd-q-vendor > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.wd-q-vendor strong { font-size: 16px; }
.wd-q-vendor small { font-size: 12.5px; color: var(--wd-muted); }
.wd-q-pic { flex: none; width: 52px; height: 52px; border-radius: 14px; overflow: hidden; background: #dfe9e6; }
.wd-q-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wd-qstate { font-size: 12px; font-weight: 800; padding: 4px 11px; border-radius: 999px; background: #fdf0d2; color: var(--wd-gold-ink); white-space: nowrap; }
.wd-qstate--replied { background: #e2efec; color: var(--wd-pine); }
.wd-qstate--hired { background: #e3f4ea; color: var(--wd-ok); }
.wd-qstate--declined, .wd-qstate--closed { background: #eef1f0; color: var(--wd-muted); }
.wd-q-ask { margin-top: 12px; }
.wd-q-facts { display: flex; flex-wrap: wrap; gap: 6px; }
.wd-q-facts span { font-size: 12.5px; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: var(--wd-soft); color: var(--wd-ink); }
.wd-q-msg { margin: 10px 0 0; white-space: pre-line; line-height: 1.55; color: var(--wd-ink); }
.wd-q-reply { margin-top: 14px; padding: 14px 16px; border-radius: 16px; background: linear-gradient(180deg, #f1f7f5, #f7faf9); border: 1px solid #dbe8e4; }
.wd-q-reply-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.wd-q-reply-label { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--wd-pine); }
.wd-q-price { font-family: var(--wd-head); font-size: 22px; color: var(--wd-pine); }
.wd-q-reply p { margin: 6px 0 0; white-space: pre-line; line-height: 1.55; }
.wd-q-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 12px; }
.wd-q-actions form { margin: 0; }
.wd-q-wait { margin: 12px 0 0; font-size: 13.5px; color: var(--wd-muted); }
.wd-q-replybox { margin-top: 14px; border-radius: 16px; border: 1px solid var(--wd-line); background: #fcfdfd; }
.wd-q-replybox summary { cursor: pointer; padding: 12px 14px; font-weight: 800; font-size: 14px; color: var(--wd-pine); list-style: none; }
.wd-q-replybox summary::-webkit-details-marker { display: none; }
.wd-q-replybox summary::before { content: '✎ '; }
.wd-q-form { padding: 0 14px 14px; margin: 0; }
.wd-q-form textarea { width: 100%; border-radius: 12px; border: 1px solid var(--wd-line); background: #fff; padding: 10px 12px; font: 500 14px/1.55 'DM Sans', sans-serif; }
.wd-q-tpls { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 8px; font-size: 12.5px; }
.wd-chip-btn { border: 1px solid var(--wd-line); background: #fff; border-radius: 999px; padding: 5px 11px; font: 700 12.5px 'DM Sans', sans-serif; color: var(--wd-pine); cursor: pointer; }
.wd-chip-btn:hover { border-color: var(--wd-pine); background: #e7f0ee; }
.wd-q-formrow { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px; margin-top: 8px; }
.wd-q-pricein { display: flex; flex-direction: column; gap: 4px; margin: 0; font-size: 12px; font-weight: 700; color: var(--wd-muted); }
.wd-q-pricebox { display: inline-flex; align-items: center; border: 1px solid var(--wd-line); border-radius: 12px; background: #fff; overflow: hidden; }
.wd-q-pricebox input { width: 150px; height: 42px; min-height: 0 !important; border: 0 !important; padding: 0 12px !important; font: 700 15px 'DM Sans', sans-serif; box-shadow: none !important; background: transparent !important; }
.wd-q-pricebox em { font-style: normal; font-weight: 800; padding: 0 12px; color: var(--wd-pine); background: var(--wd-soft); align-self: stretch; display: flex; align-items: center; }
.wd-q-close { margin: 10px 0 0; }
.wd-pricecmp { margin-top: 18px; }
.wd-pricecmp-group { margin-top: 10px; }
.wd-pricecmp-group h3 { margin: 0 0 6px; font-size: 13px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--wd-muted); }
.wd-pricecmp-row { display: grid; grid-template-columns: 1fr auto 70px; gap: 10px; align-items: center; padding: 9px 12px; border-radius: 12px; text-decoration: none; color: var(--wd-ink); font-size: 14px; }
.wd-pricecmp-row:nth-child(even) { background: var(--wd-soft); }
.wd-pricecmp-row strong { font-size: 15px; }
.wd-pricecmp-row .wd-best { margin: 0; justify-self: end; }
@media (max-width: 640px) {
    .wd-q { padding: 14px; }
    .wd-q-pricebox input { width: 120px; }
    .wd-q-formrow .wd-btn { flex: 1; }
    .wd-pricecmp-row { grid-template-columns: 1fr auto; }
    .wd-pricecmp-row > span:last-child { display: none; }
}
