:root{--bg:#0b0c10;--card:#12141c;--text:#e7e9ee;--muted:#a7adbd;--line:#23263a;--accent:#6ee7ff;--accent2:#a78bfa;--good:#34d399;--warn:#fbbf24;--bad:#fb7185;--radius:16px;}
*{box-sizing:border-box} html,body{height:100%} body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;background:linear-gradient(180deg,#070810, #0b0c10 40%);color:var(--text)}
a{color:inherit;text-decoration:none} a:hover{opacity:.92}
.container{max-width:1120px;margin:0 auto;padding:20px}
.header{position:sticky;top:0;z-index:50;background:rgba(11,12,16,.7);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}

/* Admin topbar + modal */
.topbar{position:sticky;top:0;z-index:60;background:rgba(11,12,16,.78);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar .container{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px}
.topbar .logo{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--text);text-decoration:none}
.topbar .nav{display:flex;gap:10px;flex-wrap:wrap}
.topbar .nav a{color:var(--muted);text-decoration:none;padding:8px 10px;border-radius:999px;border:1px solid transparent}
.topbar .nav a:hover{color:var(--text);border-color:var(--line)}
.topbar .nav a.active{color:var(--text);border-color:rgba(110,231,255,.25)}

.modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center}
.modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.modal__panel{position:relative;max-width:860px;width:min(860px,92vw);max-height:86vh;overflow:auto}
.nav{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 20px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.2px}
.logo{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:inline-block}
.menu{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pill{padding:8px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:13px}
.pill.active{border-color:rgba(110,231,255,.5);color:var(--text);background:rgba(110,231,255,.08)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--text);cursor:pointer}
.btn.primary{border-color:rgba(110,231,255,.5);background:linear-gradient(135deg,rgba(110,231,255,.18),rgba(167,139,250,.12))}
.btn.ghost{background:transparent}
.btn.small{padding:8px 10px;border-radius:10px;font-size:13px}
.grid{display:grid;gap:14px}
.grid.two{grid-template-columns:1.1fr .9fr}
@media (max-width:980px){.grid.two{grid-template-columns:1fr}}
.card{background:rgba(18,20,28,.82);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.card h2,.card h3{margin:0 0 10px 0}
.muted{color:var(--muted)}
.hero{padding:26px 0 10px}
.hero h1{font-size:38px;line-height:1.1;margin:0 0 10px 0}
.hero p{margin:0 0 16px 0;color:var(--muted)}
.searchbar{display:grid;grid-template-columns:1fr 160px 160px 140px;gap:10px}
@media (max-width:980px){.searchbar{grid-template-columns:1fr 1fr}}
.input, select, textarea{width:100%;padding:12px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--text);outline:none}
textarea{min-height:100px;resize:vertical}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media (max-width:980px){.kpis{grid-template-columns:repeat(2,1fr)}}
.kpi{padding:12px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.kpi .v{font-size:18px;font-weight:800}
.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--line);font-size:12px;color:var(--muted)}
.badge.good{border-color:rgba(52,211,153,.5);color:#bff7e0;background:rgba(52,211,153,.08)}
.badge.warn{border-color:rgba(251,191,36,.5);color:#ffe7b0;background:rgba(251,191,36,.08)}
.badge.bad{border-color:rgba(251,113,133,.5);color:#ffd0d8;background:rgba(251,113,133,.08)}
.list{display:grid;gap:12px}
.vendor{display:grid;grid-template-columns:160px 1fr;gap:12px;align-items:stretch}
@media (max-width:680px){.vendor{grid-template-columns:1fr}}
.thumb{border-radius:14px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(110,231,255,.12),rgba(167,139,250,.08));min-height:120px}
.vendor h3{margin:0 0 6px 0}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.split{display:flex;justify-content:space-between;gap:12px;align-items:center}
.table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid var(--line);border-radius:14px}
.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}
.table th{color:var(--muted);font-weight:700;background:rgba(255,255,255,.02)}
.table tr:last-child td{border-bottom:none}
.footer{margin-top:30px;padding:20px 0;border-top:1px solid var(--line);color:var(--muted)}
.notice{padding:10px 12px;border-radius:14px;border:1px dashed rgba(110,231,255,.5);background:rgba(110,231,255,.06);color:#d7fbff}
hr.sep{border:0;border-top:1px solid var(--line);margin:14px 0}

/* v1.4-ww layout helpers */
.section{margin-top:24px;}
.hero h1{line-height:1.1;}
.card.link{display:block; text-decoration:none; color:inherit;}

/* v1.6 mega menu */
.menu{position:relative;}
.mega{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.mega-item{position:relative}
.mega-link{display:inline-flex;align-items:center;gap:6px}
.mega-link:after{content:'▾';font-size:11px;opacity:.7}
.mega-panel{position:absolute;left:0;top:calc(100% + 10px);min-width:560px;max-width:720px;display:none;background:rgba(18,20,28,.96);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 18px 40px rgba(0,0,0,.35);backdrop-filter:blur(12px)}
.mega-panel .mega-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.mega-panel .mega-col{padding:10px;border-radius:14px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02)}
.mega-panel h4{margin:0 0 8px 0;font-size:13px;color:var(--text)}
.mega-panel a{display:flex;justify-content:space-between;gap:10px;padding:7px 8px;border-radius:12px;color:var(--muted);border:1px solid transparent}
.mega-panel a:hover{background:rgba(110,231,255,.06);border-color:rgba(110,231,255,.18);color:var(--text)}
.mega-item:hover .mega-panel{display:block}
.mega-item.open .mega-panel{display:block}

@media (max-width:980px){
  .mega-panel{position:fixed;left:12px;right:12px;top:64px;min-width:auto;max-width:none}
  .mega-panel .mega-grid{grid-template-columns:1fr}
  .mega-link:after{content:''}
}

/* v1.6 home cards polish */
.grid.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:980px){.grid.three{grid-template-columns:1fr}}
.card.tile{padding:18px;transition:transform .15s ease,border-color .15s ease,background .15s ease}
.card.tile:hover{transform:translateY(-2px);border-color:rgba(110,231,255,.22);background:rgba(18,20,28,.9)}
.card.tile b{font-size:16px}

/* Planning tools (WW-style) */
.split{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;align-items:start}
@media (max-width:980px){.split{grid-template-columns:1fr}}
.ph{border:1px dashed rgba(110,231,255,.25);border-radius:16px;background:rgba(18,20,28,.55);min-height:220px}
.feature{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;align-items:center}
@media (max-width:980px){.feature{grid-template-columns:1fr}}
.faq details{border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:rgba(18,20,28,.55)}
.faq details+details{margin-top:10px}
.faq summary{cursor:pointer;font-weight:700}

/* v1.6 vendor detail hero */
.vendor-hero{padding:0;overflow:hidden}
.vendor-hero .top{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;align-items:stretch}
@media (max-width:980px){.vendor-hero .top{grid-template-columns:1fr}}
.gallery{border-radius:var(--radius);border:1px solid var(--line);overflow:hidden;background:rgba(255,255,255,.02)}
.gallery-main{min-height:320px;background:linear-gradient(135deg,rgba(110,231,255,.12),rgba(167,139,250,.08))}
.gallery-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:10px;border-top:1px solid rgba(255,255,255,.06)}
.gallery-thumbs .t{height:58px;border-radius:12px;border:1px solid rgba(255,255,255,.06);background:linear-gradient(135deg,rgba(110,231,255,.10),rgba(167,139,250,.06))}
.vendor-summary{border-radius:var(--radius);border:1px solid var(--line);background:rgba(18,20,28,.82);padding:16px}
.vendor-summary h2{margin:0 0 8px 0}
.vendor-summary .meta{color:var(--muted)}
.vendor-summary .price{font-size:26px;font-weight:900;margin:10px 0 10px 0}
.sticky-cta{position:sticky;bottom:12px;z-index:20;margin-top:12px}
.sticky-cta .bar{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px;border-radius:16px;border:1px solid rgba(110,231,255,.22);background:rgba(10,12,18,.72);backdrop-filter:blur(10px)}
.sticky-cta .bar .left{display:flex;flex-direction:column;gap:2px}
.sticky-cta .bar .name{font-weight:900}
.sticky-cta .bar .sub{color:var(--muted);font-size:12px}



/* =========================================================
   WeddingChannel SAFE THEME OVERRIDE
   - Keeps existing layout intact
   - Background white, text black
   - Menu/link text black
   - Accent only for primary buttons/badges (A: #ff4d6d)
   ========================================================= */
:root{
  --wc-accent: #ff4d6d;
}

html, body{
  background: #ffffff !important;
  color: #000000 !important;
}

/* default text */
body, p, span, div, li, td, th, label{
  color: #000000 !important;
}

/* menu / nav */
header, nav, .header, .nav, .topbar, .nav-links, .nav-links a, .mega-panel, .mega-panel a, .brand{
  background: #ffffff !important;
  color: #000000 !important;
}

/* links -> black (so it doesn't look broken). keep hover underline only */
a, a:visited{
  color: #000000 !important;
}
a:hover{
  color:#000000 !important;
}

/* muted text: still black but lighter via opacity (avoid gray that can clash) */
.muted, .small, .sub, .desc{
  color:#000000 !important;
  opacity:0.75;
}

/* forms */
input, select, textarea{
  background:#ffffff !important;
  color:#000000 !important;
}
input::placeholder, textarea::placeholder{
  color:#000000 !important;
  opacity:0.55;
}

/* buttons: keep existing styles but ensure primary uses accent */
.btn.primary, button.primary, .primary.btn{
  background: var(--wc-accent) !important;
  border-color: var(--wc-accent) !important;
  color: #ffffff !important;
}

/* badges */
.badge.fill-accent, .badge.accent, .accent.badge{
  border-color: var(--wc-accent) !important;
}
.badge.fill-accent{
  background: var(--wc-accent) !important;
  color:#ffffff !important;
}



/* =========================================================
   SAFE THEME v2: force all sections to white & text visible
   - Fix dark footer / bottom sections
   ========================================================= */

/* Force common surfaces to white */
footer, .footer,
section, .section,
main, .main,
.container, .wrap, .wrapper, .content,
.card, .panel, .box, .tile,
.hero, .banner, .infostrip,
.mega-panel, .dropdown, .dropdown-menu,
table, thead, tbody, tr, td, th{
  background: #ffffff !important;
  color: #000000 !important;
}

/* If any element sets dark background inline, override via attribute selector */
[style*="background:#"], [style*="background: #"], [style*="background-color:#"], [style*="background-color: #"]{
  background-color: #ffffff !important;
}

/* Force borders to light */
*{
  border-color: #e5e5e5 !important;
}

/* Ensure icons/SVG inherit */
svg, svg *{
  fill: currentColor !important;
  stroke: currentColor !important;
}

/* Keep primary accent */
.btn.primary, button.primary, .primary.btn{
  background: var(--wc-accent) !important;
  border-color: var(--wc-accent) !important;
  color: #ffffff !important;
}



/* =========================================================
   Home Premium (WW-inspired) - SAFE ADDITIVE STYLES
   Applies mainly to index.html sections using wc-home-* classes
   ========================================================= */
.wc-home-hero{
  border:1px solid #e5e5e5;
  border-radius:22px;
  background:#ffffff;
  padding:28px;
}
.wc-home-hero-grid{
  display:grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap:18px;
  align-items:center;
}
.wc-home-kicker{
  font-weight:900;
  font-size:13px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  opacity:0.75;
}
.wc-home-title{
  font-size:40px;
  font-weight:900;
  letter-spacing:-0.03em;
  line-height:1.12;
  margin:10px 0 10px;
}
.wc-home-sub{
  font-size:15px;
  opacity:0.8;
  margin:0;
}
.wc-home-search{
  display:grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap:10px;
  margin-top:14px;
}
.wc-home-search input, .wc-home-search select{ height:44px; }
.wc-home-search .btn{ height:44px; display:flex; align-items:center; justify-content:center; }

.wc-home-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.wc-home-side{
  border:1px solid #e5e5e5;
  border-radius:22px;
  padding:18px;
  background:#ffffff;
}
.wc-home-side .wc-side-card{
  border:1px solid #e5e5e5;
  border-radius:16px;
  padding:14px;
  background:#ffffff;
}
.wc-home-side .wc-side-card + .wc-side-card{ margin-top:10px; }

.wc-section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.wc-section-head .wc-desc{ opacity:0.8; max-width:720px; margin:0; }

.wc-tiles{
  display:grid;
  grid-template-columns: repeat(6, minmax(0,1fr));
  gap:12px;
}
.wc-tile{
  border:1px solid #e5e5e5;
  border-radius:16px;
  padding:14px;
  background:#ffffff;
  text-decoration:none;
}
.wc-tile:hover{ border-color:#000000; }
.wc-tile .wc-tile-title{ font-weight:900; margin-top:8px; }
.wc-tile .wc-tile-meta{ font-size:12px; opacity:0.75; }

.wc-infostrip{
  border:1px solid #e5e5e5;
  border-radius:22px;
  padding:16px;
  background:#ffffff;
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:12px;
}
.wc-infostrip .wc-info{
  border:1px solid #e5e5e5;
  border-radius:16px;
  padding:14px;
  background:#ffffff;
}

.wc-cardgrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
}
.wc-vendor-card{
  border:1px solid #e5e5e5;
  border-radius:22px;
  padding:14px;
  background:#ffffff;
}
.wc-thumb{
  border:1px solid #e5e5e5;
  border-radius:16px;
  height:150px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  opacity:0.35;
  margin-bottom:12px;
}
.wc-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:10px;
  font-size:13px;
  opacity:0.85;
}
.wc-actions{ display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }

/* Responsive */
@media (max-width: 1100px){
  .wc-tiles{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 960px){
  .wc-home-hero-grid{ grid-template-columns:1fr; }
  .wc-home-title{ font-size:34px; }
  .wc-home-search{ grid-template-columns:1fr; }
  .wc-infostrip{ grid-template-columns:1fr; }
  .wc-cardgrid{ grid-template-columns:1fr; }
  .wc-tiles{ grid-template-columns: repeat(2, 1fr); }
}



/* =========================================================
   Vendor Detail Premium (WW-inspired) - additive
   ========================================================= */
.wc-vd-top{
  display:grid;
  grid-template-columns: 1.3fr 0.7fr;
  gap:16px;
  align-items:start;
}
@media (max-width: 960px){
  .wc-vd-top{ grid-template-columns:1fr; }
}

.wc-gallery{
  border:1px solid #e5e5e5;
  border-radius:22px;
  background:#ffffff;
  padding:14px;
}
.wc-gallery-grid{
  display:grid;
  grid-template-columns: 2fr 1fr;
  gap:10px;
}
.wc-gallery-main{
  height:320px;
  border:1px solid #e5e5e5;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  opacity:.35;
}
.wc-gallery-side{
  display:grid;
  grid-template-rows: 1fr 1fr;
  gap:10px;
}
.wc-gallery-thumb{
  border:1px solid #e5e5e5;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  opacity:.35;
}

.wc-vd-summary{
  border:1px solid #e5e5e5;
  border-radius:22px;
  background:#ffffff;
  padding:14px;
}
.wc-vd-summary .wc-price{
  font-weight:900;
  font-size:20px;
  margin-top:6px;
}
.wc-vd-summary .wc-kpis{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.wc-kpi{
  border:1px solid #e5e5e5;
  border-radius:16px;
  padding:10px;
  background:#ffffff;
}
.wc-kpi .label{ font-size:12px; opacity:.75; }
.wc-kpi .value{ font-weight:900; margin-top:2px; }

.wc-vd-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:16px;
}
.wc-tab{
  border:1px solid #e5e5e5;
  border-radius:999px;
  padding:8px 12px;
  font-weight:900;
  background:#ffffff;
  cursor:pointer;
}
.wc-tab.active{
  border-color:#000000;
}

.wc-vd-section{
  border:1px solid #e5e5e5;
  border-radius:22px;
  padding:16px;
  background:#ffffff;
  margin-top:14px;
}

.wc-review{
  border:1px solid #e5e5e5;
  border-radius:16px;
  padding:12px;
  background:#ffffff;
}
.wc-review + .wc-review{ margin-top:10px; }

.wc-package{
  border:1px solid #e5e5e5;
  border-radius:16px;
  padding:12px;
  background:#ffffff;
}
.wc-package + .wc-package{ margin-top:10px; }

.wc-stickybar{
  position: sticky;
  bottom: 0;
  background:#ffffff;
  border-top:1px solid #e5e5e5;
  padding:10px 0;
  z-index:40;
}
.wc-stickybar .inner{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}



/* =========================================================
   Vendor List Premium (WW-inspired) - additive
   ========================================================= */
.wc-vl-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.wc-vl-title{ font-size:26px; font-weight:900; letter-spacing:-0.02em; margin:0; }
.wc-vl-sub{ margin:0; opacity:0.8; }

.wc-filterbar{
  border:1px solid #e5e5e5;
  border-radius:22px;
  padding:14px;
  background:#ffffff;
  display:grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap:10px;
}
@media (max-width: 960px){
  .wc-filterbar{ grid-template-columns:1fr; }
}
.wc-filterbar select, .wc-filterbar input{ height:44px; }

.wc-sortrow{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}
.wc-sortrow .chips{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.wc-chip{
  border:1px solid #e5e5e5;
  border-radius:999px;
  padding:8px 12px;
  font-weight:900;
  background:#ffffff;
  cursor:pointer;
}
.wc-chip.active{ border-color:#000000; }

.wc-vendor-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
  margin-top:14px;
}
@media (max-width: 960px){
  .wc-vendor-grid{ grid-template-columns:1fr; }
}

.wc-vendor-tile{
  border:1px solid #e5e5e5;
  border-radius:22px;
  padding:14px;
  background:#ffffff;
}
.wc-vendor-tile .thumb{
  height:160px;
  border:1px solid #e5e5e5;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  opacity:.35;
  margin-bottom:12px;
}
.wc-vendor-tile .row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:10px;
}
.wc-vendor-tile .meta{ font-size:13px; opacity:.85; }
.wc-vendor-tile .actions{ display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }



/* =========================================================
   Compare Premium (WW-inspired)
   ========================================================= */
.wc-cp-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin-bottom:14px;
}
.wc-cp-title{ font-size:26px; font-weight:900; margin:0; letter-spacing:-0.02em; }
.wc-cp-sub{ margin:0; opacity:0.8; }

.wc-cp-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
}
@media (max-width: 960px){
  .wc-cp-grid{ grid-template-columns:1fr; }
}

.wc-cp-card{
  border:1px solid #e5e5e5;
  border-radius:22px;
  padding:14px;
  background:#ffffff;
}
.wc-cp-card .thumb{
  height:150px;
  border:1px solid #e5e5e5;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  opacity:.35;
  margin-bottom:12px;
}
.wc-cp-row{ display:flex; justify-content:space-between; gap:10px; margin-top:10px; }
.wc-cp-row .meta{ font-size:13px; opacity:.85; }
.wc-cp-actions{ display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }

.wc-cp-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:1px solid #e5e5e5;
  border-radius:22px;
  overflow:hidden;
  margin-top:16px;
  background:#ffffff;
}
.wc-cp-table th, .wc-cp-table td{
  padding:12px;
  border-bottom:1px solid #e5e5e5;
  vertical-align:top;
  text-align:left;
  font-size:14px;
}
.wc-cp-table th{
  font-weight:900;
  width:180px;
  background:#ffffff;
}
.wc-cp-table tr:last-child th, .wc-cp-table tr:last-child td{ border-bottom:none; }

/* =========================================================
   RFQ Premium (WW-inspired)
   ========================================================= */
.wc-rfq-hero{
  border:1px solid #e5e5e5;
  border-radius:22px;
  background:#ffffff;
  padding:18px;
}
.wc-rfq-steps{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}
.wc-rfq-step{
  border:1px solid #e5e5e5;
  border-radius:999px;
  padding:8px 12px;
  font-weight:900;
  background:#ffffff;
  opacity:0.6;
}
.wc-rfq-step.active{ border-color:#000000; opacity:1; }
.wc-rfq-step.done{ opacity:0.9; }

.wc-rfq-card{
  border:1px solid #e5e5e5;
  border-radius:22px;
  background:#ffffff;
  padding:16px;
  margin-top:14px;
}
.wc-rfq-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
}
@media (max-width: 960px){
  .wc-rfq-grid{ grid-template-columns:1fr; }
}
.wc-rfq-actions{
  display:flex;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.wc-rfq-pick label{
  display:flex;
  gap:12px;
  align-items:center;
}
.wc-rfq-pick .item{
  border:1px solid #e5e5e5;
  border-radius:16px;
  padding:12px;
  background:#ffffff;
}
.wc-rfq-pick .item + .item{ margin-top:10px; }
.wc-rfq-summary{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:1px solid #e5e5e5;
  border-radius:22px;
  overflow:hidden;
  background:#ffffff;
}
.wc-rfq-summary th, .wc-rfq-summary td{
  padding:12px;
  border-bottom:1px solid #e5e5e5;
  text-align:left;
}
.wc-rfq-summary th{ width:180px; font-weight:900; }
.wc-rfq-summary tr:last-child th, .wc-rfq-summary tr:last-child td{ border-bottom:none; }

/* =========================================================
   RFQ Premium (WW-inspired)
   ========================================================= */
.wc-rfq-hero{
  border:1px solid #e5e5e5;
  border-radius:22px;
  background:#ffffff;
  padding:18px;
}
.wc-rfq-top{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.wc-rfq-title{ font-size:26px; font-weight:900; margin:0; letter-spacing:-0.02em; }
.wc-rfq-sub{ margin:0; opacity:0.8; }

.wc-rfq-steps{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}
.wc-rfq-pill{
  border:1px solid #e5e5e5;
  border-radius:999px;
  padding:8px 12px;
  font-weight:900;
  background:#ffffff;
  display:flex;
  align-items:center;
  gap:8px;
}
.wc-rfq-pill .num{
  width:22px;
  height:22px;
  border-radius:999px;
  border:1px solid #e5e5e5;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
}
.wc-rfq-pill.active{ border-color:#000000; }
.wc-rfq-pill.active .num{ border-color:#000000; }

.wc-rfq-card{
  border:1px solid #e5e5e5;
  border-radius:22px;
  background:#ffffff;
  padding:16px;
  margin-top:14px;
}
.wc-rfq-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
}
@media (max-width: 960px){
  .wc-rfq-grid{ grid-template-columns:1fr; }
}
.wc-rfq-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}

.wc-pick-item{
  border:1px solid #e5e5e5;
  border-radius:16px;
  padding:12px;
  background:#ffffff;
  display:flex;
  align-items:center;
  gap:12px;
}
.wc-pick-item + .wc-pick-item{ margin-top:10px; }

.wc-success{
  border:1px solid #e5e5e5;
  border-radius:22px;
  background:#ffffff;
  padding:18px;
}




/* =========================================================
   Messages Premium (WW-inspired) + Reviews Premium
   ========================================================= */
.wc-msg-layout{
  display:grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap:14px;
}
@media (max-width: 960px){
  .wc-msg-layout{ grid-template-columns:1fr; }
}
.wc-msg-panel{
  border:1px solid #e5e5e5;
  border-radius:22px;
  background:#ffffff;
  padding:14px;
}
.wc-msg-search{
  display:flex;
  gap:10px;
  margin-top:10px;
}
.wc-msg-search input{ height:44px; flex:1; }
.wc-thread{
  border:1px solid #e5e5e5;
  border-radius:16px;
  padding:12px;
  background:#ffffff;
  cursor:pointer;
}
.wc-thread + .wc-thread{ margin-top:10px; }
.wc-thread.active{ border-color:#000000; }
.wc-thread .top{
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:13px;
  opacity:.9;
}
.wc-thread .name{ font-weight:900; }
.wc-thread .snippet{ font-size:13px; opacity:.8; margin-top:6px; }

.wc-chat{
  border:1px solid #e5e5e5;
  border-radius:22px;
  background:#ffffff;
  padding:14px;
  min-height:520px;
  display:flex;
  flex-direction:column;
}
.wc-chat-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:10px;
  padding-bottom:10px;
  border-bottom:1px solid #e5e5e5;
}
.wc-chat-body{
  flex:1;
  padding:14px 0;
  overflow:auto;
}
.wc-bubble{
  max-width:78%;
  border:1px solid #e5e5e5;
  border-radius:16px;
  padding:10px 12px;
  background:#ffffff;
  margin-top:10px;
}
.wc-bubble.me{
  margin-left:auto;
  border-color: var(--wc-accent);
}
.wc-bubble .meta{
  font-size:12px;
  opacity:.65;
  margin-top:6px;
}
.wc-chat-compose{
  display:flex;
  gap:10px;
  padding-top:10px;
  border-top:1px solid #e5e5e5;
}
.wc-chat-compose input{ height:44px; flex:1; }

/* Reviews */
.wc-rev-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin-bottom:14px;
}
.wc-rev-filters{
  border:1px solid #e5e5e5;
  border-radius:22px;
  padding:14px;
  background:#ffffff;
  display:grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap:10px;
}
@media (max-width: 960px){
  .wc-rev-filters{ grid-template-columns:1fr; }
}
.wc-rev-filters select, .wc-rev-filters input{ height:44px; }
.wc-rev-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
  margin-top:14px;
}
@media (max-width: 960px){
  .wc-rev-grid{ grid-template-columns:1fr; }
}
.wc-review-card{
  border:1px solid #e5e5e5;
  border-radius:22px;
  padding:14px;
  background:#ffffff;
}
.wc-stars{ font-weight:900; }


/* =========================================================
   Safe Global Header/Footer (non-breaking)
   - Inserts a consistent shell without replacing page layout
   ========================================================= */
.wc-shell-header{
  position: sticky;
  top: 0;
  z-index: 80;
  background: #ffffff;
  border-bottom: 1px solid #e5e5e5;
}
.wc-shell-header .wc-shell-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 0;
}
.wc-shell-brand{
  display:flex;
  align-items:center;
  gap:10px;
  color:#000000;
  text-decoration:none;
  font-weight:900;
}
.wc-shell-badge{
  width:34px;height:34px;
  border:1px solid #e5e5e5;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
}
.wc-shell-nav{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.wc-shell-nav a{
  color:#000000;
  text-decoration:none;
  font-weight:900;
  opacity:.92;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid transparent;
}
.wc-shell-nav a:hover, .wc-shell-nav a.active{
  border-color:#000000;
}
.wc-shell-utils{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.wc-shell-mini{
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid #e5e5e5;
  border-radius:999px;
  padding:6px 10px;
  background:#fff;
}
.wc-shell-mini input{
  border:none !important;
  outline:none !important;
  height:30px;
  width:160px;
}
@media (max-width:960px){
  .wc-shell-mini{ display:none; }
  .wc-shell-nav{ gap:8px; }
}

.wc-shell-footer{
  border-top:1px solid #e5e5e5;
  background:#ffffff;
  margin-top:30px;
  padding:26px 0;
}
.wc-shell-footer-grid{
  display:grid;
  grid-template-columns: 1.2fr 1fr 1fr 1fr;
  gap:16px;
}
@media (max-width:960px){
  .wc-shell-footer-grid{ grid-template-columns:1fr 1fr; }
}
.wc-shell-footer a{
  color:#000000;
  text-decoration:none;
  opacity:.85;
}
.wc-shell-footer a:hover{ opacity:1; text-decoration:underline; }
.wc-shell-footer .title{ font-weight:900; margin-bottom:8px; }
.wc-shell-footer .small{ opacity:.75; }

/* =========================================================
   WeddingFOS-inspired Theme (SAFE, site-wide)
   - Designed to NOT break layout (colors/typography only + soft surfaces)
   ========================================================= */
:root{
  --wc-bg: #faf7f3;
  --wc-surface: #ffffff;
  --wc-text: #1c1c1c;
  --wc-muted: #6b5b54;
  --wc-border: #e8ded6;
  --wc-shadow: 0 10px 30px rgba(0,0,0,.06);

  /* Accent: muted rose */
  --wc-accent: #c27b7f;
  --wc-accent-2: #b36a5e;

  --wc-radius-lg: 22px;
  --wc-radius-md: 16px;
  --wc-radius-pill: 999px;

  --wc-font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans KR", "Apple SD Gothic Neo", Arial, sans-serif;
  --wc-font-serif: ui-serif, "Playfair Display", "Times New Roman", Times, serif;
}

/* Base */
html, body{
  background: var(--wc-bg) !important;
  color: var(--wc-text) !important;
  font-family: var(--wc-font-sans) !important;
  font-size: 16px;
  line-height: 1.6;
}

/* Typography */
.h1, .h2, .h3, h1, h2, h3{
  font-family: var(--wc-font-serif) !important;
  letter-spacing: -0.02em;
}
.h2, h2{ font-size: 30px; }
.h3, h3{ font-size: 18px; }

.muted, .small.muted, .sub, .desc{
  color: var(--wc-muted) !important;
  opacity: 1 !important;
}

/* Links */
a, a:visited{ color: var(--wc-text) !important; }
a:hover{ color: var(--wc-text) !important; text-decoration: underline; }

/* Borders */
*{ border-color: var(--wc-border) !important; }

/* Soft surfaces (visual only; no grid/layout changes) */
.card, .panel, .box, .tile,
.wc-home-hero, .wc-home-side, .wc-info, .wc-vendor-card, .wc-vendor-tile,
.wc-msg-panel, .wc-chat, .wc-review-card,
.wc-filterbar, .wc-rev-filters, .wc-vd-summary, .wc-gallery, .wc-vd-section,
.wc-cp-card, .wc-cp-table,
.wc-rfq-shell, .wc-rfq-step,
.wc-shell-header, .wc-shell-footer, .wc-stickybar{
  background: var(--wc-surface) !important;
  border-color: var(--wc-border) !important;
  border-radius: var(--wc-radius-lg) !important;
  box-shadow: var(--wc-shadow);
}

/* Header shell tweaks */
.wc-shell-header{
  background: rgba(250,247,243,0.92) !important;
  box-shadow: none !important;
}
.wc-shell-header .wc-shell-badge{
  background: var(--wc-surface) !important;
  border-color: var(--wc-border) !important;
}
.wc-shell-nav a:hover, .wc-shell-nav a.active{
  border-color: var(--wc-accent-2) !important;
}

/* Footer */
.wc-shell-footer{
  background: transparent !important;
  box-shadow: none !important;
}
.wc-shell-footer a{ color: var(--wc-muted) !important; }
.wc-shell-footer a:hover{ color: var(--wc-text) !important; }

/* Buttons */
.btn, button.btn, .btn.full{
  border-radius: var(--wc-radius-pill) !important;
  border: 1px solid var(--wc-border) !important;
  background: var(--wc-surface) !important;
  color: var(--wc-text) !important;
  font-weight: 900;
}
.btn:hover{ border-color: var(--wc-accent-2) !important; }

.btn.primary, button.primary, .primary.btn{
  background: var(--wc-accent) !important;
  border-color: var(--wc-accent) !important;
  color: #ffffff !important;
}

/* Badges */
.badge, .badge.accent, .accent.badge{
  border-radius: var(--wc-radius-pill) !important;
  border-color: var(--wc-border) !important;
}
.badge.fill-accent{
  background: var(--wc-accent) !important;
  border-color: var(--wc-accent) !important;
  color:#ffffff !important;
}

/* Inputs */
input, select, textarea{
  border-radius: var(--wc-radius-pill) !important;
  border: 1px solid var(--wc-border) !important;
  background: var(--wc-surface) !important;
  color: var(--wc-text) !important;
}
input::placeholder, textarea::placeholder{
  color: var(--wc-muted) !important;
  opacity: .9;
}

/* Home title emphasis if present */
.wc-home-title{
  font-family: var(--wc-font-serif) !important;
}

/* =========================================================
   WeddingFOS Vendor Detail (premium editorial)
   ========================================================= */
.fos-vd-hero{
  margin-top: 6px;
}
.fos-vd-grid{
  display:grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap:16px;
  align-items:start;
}
@media (max-width: 960px){
  .fos-vd-grid{ grid-template-columns:1fr; }
}
.fos-vd-gallery{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:14px;
}
.fos-vd-gallery .kicker{
  color: var(--wc-muted);
  font-size: 13px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.fos-vd-title{
  font-family: var(--wc-font-serif);
  font-size: 42px;
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin: 6px 0 6px;
}
@media (max-width:960px){
  .fos-vd-title{ font-size: 34px; }
}
.fos-vd-meta{
  color: var(--wc-muted);
  font-size: 14px;
}
.fos-vd-media{
  margin-top: 14px;
  display:grid;
  grid-template-columns: 2fr 1fr;
  gap:10px;
}
.fos-vd-media .main{
  height: 360px;
  border:1px solid var(--wc-border);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(194,123,127,.10), rgba(250,247,243,1));
  display:flex;
  align-items:flex-end;
  padding:16px;
}
.fos-vd-media .main .cap{
  font-family: var(--wc-font-serif);
  font-weight: 900;
  font-size: 18px;
}
.fos-vd-media .side{
  display:grid;
  grid-template-rows: 1fr 1fr;
  gap:10px;
}
.fos-vd-media .thumb{
  border:1px solid var(--wc-border);
  border-radius: 18px;
  background: #fff;
  display:flex;
  align-items:center;
  justify-content:center;
  color: var(--wc-muted);
  font-weight: 900;
}

.fos-vd-summary{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:14px;
  position: sticky;
  top: 86px;
}
@media (max-width:960px){
  .fos-vd-summary{ position: static; top:auto; }
}
.fos-vd-summary .price{
  font-family: var(--wc-font-serif);
  font-size: 24px;
  font-weight: 900;
  margin-top: 8px;
}
.fos-vd-kpis{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:10px;
  margin-top: 12px;
}
.fos-kpi{
  border:1px solid var(--wc-border);
  border-radius: 18px;
  padding:10px;
  background: #fff;
}
.fos-kpi .label{ font-size: 12px; color: var(--wc-muted); }
.fos-kpi .value{ font-weight: 900; margin-top: 2px; }

.fos-section{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:16px;
  margin-top: 14px;
}
.fos-section .title{
  font-family: var(--wc-font-serif);
  font-weight: 900;
  font-size: 20px;
  margin-bottom: 8px;
}
.fos-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top: 12px;
}
.fos-tab{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-pill);
  padding:8px 12px;
  background:#fff;
  font-weight: 900;
  cursor:pointer;
}
.fos-tab.active{
  border-color: var(--wc-accent-2);
}
.fos-note{
  color: var(--wc-muted);
  font-size: 13px;
}

/* =========================================================
   WeddingFOS Vendor List (editorial)
   ========================================================= */
.fos-vl-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin: 6px 0 16px;
}
.fos-vl-title{
  font-family: var(--wc-font-serif);
  font-size: 42px;
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin: 0;
}
@media (max-width:960px){ .fos-vl-title{ font-size: 34px; } }
.fos-vl-sub{ margin: 6px 0 0; color: var(--wc-muted); }

.fos-filterbar{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:14px;
  display:grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap:10px;
}
@media (max-width:960px){ .fos-filterbar{ grid-template-columns:1fr; } }

.fos-sortrow{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.fos-chips{ display:flex; gap:8px; flex-wrap:wrap; }
.fos-chip{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-pill);
  padding:8px 12px;
  background:#fff;
  font-weight: 900;
  cursor:pointer;
}
.fos-chip.active{
  border-color: var(--wc-accent-2);
}

.fos-vendor-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
  margin-top: 14px;
}
@media (max-width:960px){ .fos-vendor-grid{ grid-template-columns:1fr; } }

.fos-vendor-card{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:14px;
}
.fos-vendor-card .thumb{
  height: 170px;
  border:1px solid var(--wc-border);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(194,123,127,.08), rgba(250,247,243,1));
  display:flex;
  align-items:flex-end;
  padding:14px;
}
.fos-vendor-card .thumb .cap{
  font-family: var(--wc-font-serif);
  font-weight: 900;
  letter-spacing: -0.02em;
}
.fos-vendor-card .name{
  font-family: var(--wc-font-serif);
  font-weight: 900;
  font-size: 22px;
  margin-top: 12px;
}
.fos-vendor-card .meta{ color: var(--wc-muted); font-size: 13px; margin-top: 4px; }
.fos-vendor-card .row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-top: 10px;
}
.fos-vendor-card .price{
  font-family: var(--wc-font-serif);
  font-weight: 900;
}
.fos-vendor-card .actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top: 12px;
}

/* =========================================================
   WeddingFOS Compare (editorial)
   ========================================================= */
.fos-cp-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin: 6px 0 16px;
}
.fos-cp-title{
  font-family: var(--wc-font-serif);
  font-size: 42px;
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin:0;
}
@media (max-width:960px){ .fos-cp-title{ font-size: 34px; } }
.fos-cp-sub{ margin:6px 0 0; color: var(--wc-muted); }

.fos-cp-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
}
@media (max-width:960px){ .fos-cp-grid{ grid-template-columns:1fr; } }

.fos-cp-card{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:14px;
}
.fos-cp-card .thumb{
  height: 170px;
  border:1px solid var(--wc-border);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(194,123,127,.08), rgba(250,247,243,1));
  display:flex;
  align-items:flex-end;
  padding:14px;
}
.fos-cp-card .thumb .cap{
  font-family: var(--wc-font-serif);
  font-weight: 900;
}
.fos-cp-card .name{
  font-family: var(--wc-font-serif);
  font-weight: 900;
  font-size: 22px;
  margin-top: 12px;
}
.fos-cp-card .meta{ color: var(--wc-muted); font-size: 13px; margin-top: 4px; }
.fos-cp-card .row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-top: 10px;
}
.fos-cp-card .price{
  font-family: var(--wc-font-serif);
  font-weight: 900;
}
.fos-cp-card .actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top: 12px;
}

.fos-cp-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  overflow:hidden;
  margin-top:16px;
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
}
.fos-cp-table th, .fos-cp-table td{
  padding:12px;
  border-bottom:1px solid var(--wc-border);
  vertical-align:top;
  text-align:left;
  font-size:14px;
}
.fos-cp-table th{
  font-weight:900;
  width:180px;
  background:#fff;
  color: var(--wc-muted);
}
.fos-cp-table tr:last-child th, .fos-cp-table tr:last-child td{ border-bottom:none; }

/* =========================================================
   WeddingFOS RFQ (editorial)
   ========================================================= */
.fos-rfq-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin: 6px 0 16px;
}
.fos-rfq-title{
  font-family: var(--wc-font-serif);
  font-size: 42px;
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin:0;
}
@media (max-width:960px){ .fos-rfq-title{ font-size: 34px; } }
.fos-rfq-sub{ margin:6px 0 0; color: var(--wc-muted); }

.fos-stepbar{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top: 14px;
}
.fos-step{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-pill);
  padding:8px 12px;
  background:#fff;
  font-weight: 900;
  color: var(--wc-muted);
}
.fos-step.active{
  border-color: var(--wc-accent-2);
  color: var(--wc-text);
}

.fos-rfq-shell{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:16px;
}

.fos-rfq-grid{
  display:grid;
  grid-template-columns: 1fr 0.9fr;
  gap:14px;
  align-items:start;
}
@media (max-width:960px){ .fos-rfq-grid{ grid-template-columns:1fr; } }

.fos-rfq-card{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background:#fff;
  padding:14px;
}
.fos-rfq-card .title{
  font-family: var(--wc-font-serif);
  font-weight: 900;
  font-size: 20px;
  margin-bottom: 8px;
}

.fos-rfq-summary{
  position: sticky;
  top: 86px;
}
@media (max-width:960px){ .fos-rfq-summary{ position: static; top:auto; } }

.fos-help{
  color: var(--wc-muted);
  font-size: 13px;
}

/* =========================================================
   WeddingFOS Messages + Reviews (editorial)
   ========================================================= */
.fos-page-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin: 6px 0 16px;
}
.fos-page-title{
  font-family: var(--wc-font-serif);
  font-size: 42px;
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin:0;
}
@media (max-width:960px){ .fos-page-title{ font-size: 34px; } }
.fos-page-sub{ margin:6px 0 0; color: var(--wc-muted); }

.fos-msg-layout{
  display:grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap:14px;
}
@media (max-width:960px){ .fos-msg-layout{ grid-template-columns:1fr; } }

.fos-panel{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:14px;
}
.fos-searchrow{
  display:flex;
  gap:10px;
  margin-top:10px;
}
.fos-searchrow input{ height:44px; flex:1; }

.fos-thread{
  border:1px solid var(--wc-border);
  border-radius: 18px;
  background:#fff;
  padding:12px;
  cursor:pointer;
}
.fos-thread + .fos-thread{ margin-top:10px; }
.fos-thread.active{ border-color: var(--wc-accent-2); }
.fos-thread .top{ display:flex; justify-content:space-between; gap:10px; color: var(--wc-muted); font-size:13px; }
.fos-thread .name{
  font-family: var(--wc-font-serif);
  font-weight: 900;
  color: var(--wc-text);
}
.fos-thread .snippet{ font-size:13px; color: var(--wc-muted); margin-top:6px; }

.fos-chat{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:14px;
  min-height:520px;
  display:flex;
  flex-direction:column;
}
.fos-chat-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:10px;
  padding-bottom:10px;
  border-bottom:1px solid var(--wc-border);
}
.fos-chat-title{
  font-family: var(--wc-font-serif);
  font-weight: 900;
  font-size: 22px;
  margin:0;
}
.fos-chat-meta{ color: var(--wc-muted); font-size: 13px; margin-top: 4px; }
.fos-chat-body{ flex:1; padding:14px 0; overflow:auto; }

.fos-bubble{
  max-width:78%;
  border:1px solid var(--wc-border);
  border-radius: 18px;
  padding:10px 12px;
  background:#fff;
  margin-top:10px;
}
.fos-bubble.me{
  margin-left:auto;
  border-color: rgba(194,123,127,.45);
  background: rgba(194,123,127,.06);
}
.fos-bubble .meta{ font-size:12px; color: var(--wc-muted); margin-top:6px; }

.fos-compose{
  display:flex;
  gap:10px;
  padding-top:10px;
  border-top:1px solid var(--wc-border);
}
.fos-compose input{ height:44px; flex:1; }

/* Reviews */
.fos-rev-filters{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:14px;
  display:grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap:10px;
}
@media (max-width:960px){ .fos-rev-filters{ grid-template-columns:1fr; } }

.fos-rev-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
  margin-top: 14px;
}
@media (max-width:960px){ .fos-rev-grid{ grid-template-columns:1fr; } }

.fos-review{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:14px;
}
.fos-review .vendor{
  font-family: var(--wc-font-serif);
  font-weight: 900;
  font-size: 22px;
}
.fos-review .meta{ color: var(--wc-muted); font-size: 13px; margin-top: 4px; }
.fos-stars{ font-weight: 900; color: var(--wc-text); }

/* =========================================================
   WeddingFOS Planning Tools (editorial)
   ========================================================= */
.fos-tools-hero{
  margin: 6px 0 16px;
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:16px;
}
.fos-tools-kicker{
  color: var(--wc-muted);
  font-size: 13px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.fos-tools-title{
  font-family: var(--wc-font-serif);
  font-size: 42px;
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin: 6px 0 6px;
}
@media (max-width:960px){ .fos-tools-title{ font-size: 34px; } }
.fos-tools-sub{ color: var(--wc-muted); margin: 0; }

.fos-tools-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
  margin-top:14px;
}
@media (max-width:960px){ .fos-tools-grid{ grid-template-columns:1fr; } }

.fos-tool-card{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:14px;
}
.fos-tool-card .thumb{
  height: 170px;
  border:1px solid var(--wc-border);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(194,123,127,.08), rgba(250,247,243,1));
  display:flex;
  align-items:flex-end;
  padding:14px;
}
.fos-tool-card .thumb .cap{
  font-family: var(--wc-font-serif);
  font-weight: 900;
  letter-spacing: -0.02em;
}
.fos-tool-card .name{
  font-family: var(--wc-font-serif);
  font-weight: 900;
  font-size: 22px;
  margin-top: 12px;
}
.fos-tool-card .meta{ color: var(--wc-muted); font-size: 13px; margin-top: 4px; }
.fos-tool-card .actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top: 12px; }

/* Inner tool pages */
.fos-tool-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin: 6px 0 16px;
}
.fos-tool-title{
  font-family: var(--wc-font-serif);
  font-size: 42px;
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin:0;
}
@media (max-width:960px){ .fos-tool-title{ font-size: 34px; } }
.fos-tool-sub{ margin:6px 0 0; color: var(--wc-muted); }

.fos-tool-shell{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:16px;
}
.fos-tool-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom: 12px;
}
.fos-tool-item{
  border:1px solid var(--wc-border);
  border-radius: 18px;
  background:#fff;
  padding:12px;
  margin-top:10px;
}
.fos-tool-item .title{
  font-family: var(--wc-font-serif);
  font-weight:900;
}
.fos-progress{
  height:10px;
  border:1px solid var(--wc-border);
  border-radius: 999px;
  overflow:hidden;
  background:#fff;
}
.fos-progress > div{
  height:100%;
  width:0%;
  background: rgba(194,123,127,.55);
}

/* =========================================================
   WeddingFOS Home Premium
   ========================================================= */
.fos-home-hero{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: linear-gradient(180deg, rgba(255,255,255,1), rgba(250,247,243,1));
  box-shadow: var(--wc-shadow);
  padding:18px;
  margin-top: 6px;
}
.fos-home-grid{
  display:grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap:16px;
  align-items:stretch;
}
@media (max-width:960px){ .fos-home-grid{ grid-template-columns:1fr; } }

.fos-home-kicker{
  color: var(--wc-muted);
  font-size: 13px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.fos-home-title{
  font-family: var(--wc-font-serif);
  font-size: 52px;
  line-height: 1.05;
  letter-spacing: -0.04em;
  margin: 10px 0 10px;
}
@media (max-width:960px){ .fos-home-title{ font-size: 38px; } }
.fos-home-lead{
  color: var(--wc-muted);
  font-size: 16px;
  margin: 0;
  max-width: 62ch;
}
.fos-home-cta{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top: 16px;
}

.fos-home-side{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:16px;
}
.fos-side-title{
  font-family: var(--wc-font-serif);
  font-weight: 900;
  font-size: 22px;
  margin: 0 0 8px;
}
.fos-side-item{
  border:1px solid var(--wc-border);
  border-radius: 18px;
  background:#fff;
  padding:12px;
  margin-top:10px;
}
.fos-side-item .t{ font-weight:900; }
.fos-side-item .d{ color: var(--wc-muted); font-size: 13px; margin-top:4px; }

.fos-section{
  margin-top: 18px;
}
.fos-sec-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin-bottom: 12px;
}
.fos-sec-title{
  font-family: var(--wc-font-serif);
  font-size: 34px;
  letter-spacing: -0.03em;
  margin:0;
}
@media (max-width:960px){ .fos-sec-title{ font-size: 28px; } }
.fos-sec-sub{ margin:6px 0 0; color: var(--wc-muted); }

.fos-feature-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
}
@media (max-width:960px){ .fos-feature-grid{ grid-template-columns:1fr; } }
.fos-feature{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:14px;
}
.fos-feature .thumb{
  height: 150px;
  border:1px solid var(--wc-border);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(194,123,127,.08), rgba(250,247,243,1));
  display:flex;
  align-items:flex-end;
  padding:14px;
}
.fos-feature .thumb .cap{
  font-family: var(--wc-font-serif);
  font-weight:900;
}
.fos-feature .name{
  font-family: var(--wc-font-serif);
  font-weight:900;
  font-size: 22px;
  margin-top: 12px;
}
.fos-feature .meta{ color: var(--wc-muted); font-size: 13px; margin-top: 4px; }

.fos-steps{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap:14px;
}
@media (max-width:960px){ .fos-steps{ grid-template-columns:1fr; } }
.fos-stepcard{
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:14px;
}
.fos-stepnum{
  width:34px;height:34px;
  border:1px solid var(--wc-border);
  border-radius: 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  background:#fff;
}
.fos-stepcard .t{
  font-family: var(--wc-font-serif);
  font-weight:900;
  font-size: 18px;
  margin-top:10px;
}
.fos-stepcard .d{ color: var(--wc-muted); font-size: 13px; margin-top:6px; }

/* =========================================================
   WeddingFOS Unified Page Header
   ========================================================= */
.fos-pagehead{
  margin: 6px 0 16px;
  border:1px solid var(--wc-border);
  border-radius: var(--wc-radius-lg);
  background: var(--wc-surface);
  box-shadow: var(--wc-shadow);
  padding:16px;
}
.fos-pagehead .kicker{
  color: var(--wc-muted);
  font-size: 13px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.fos-pagehead .title{
  font-family: var(--wc-font-serif);
  font-size: 42px;
  line-height:1.1;
  letter-spacing:-0.03em;
  margin:6px 0 6px;
}
@media (max-width:960px){
  .fos-pagehead .title{ font-size:34px; }
}
.fos-pagehead .sub{
  color: var(--wc-muted);
}

/* =========================================================
   Wedding Website Themes (3~5)
   Usage: <body data-ww-theme="ivory-rose"> ... OR add class ww-theme-*
   ========================================================= */
:root{
  --ww-bg: #faf7f3;        /* default ivory */
  --ww-surface: #ffffff;
  --ww-text: #1c1c1c;
  --ww-muted: #6b5b54;
  --ww-accent: #c27b7f;
  --ww-border: #e8ded6;
}

/* Map WW vars to existing WC tokens (so existing components inherit) */
body[data-ww-theme]{
  background: var(--ww-bg) !important;
  color: var(--ww-text) !important;
}
body[data-ww-theme] .muted{ color: var(--ww-muted) !important; }
body[data-ww-theme]{
  --wc-bg: var(--ww-bg);
  --wc-surface: var(--ww-surface);
  --wc-text: var(--ww-text);
  --wc-muted: var(--ww-muted);
  --wc-accent-2: var(--ww-accent);
  --wc-border: var(--ww-border);
}

/* Theme: Ivory Rose (default) */
body[data-ww-theme="ivory-rose"]{
  --ww-bg:#faf7f3;
  --ww-surface:#ffffff;
  --ww-text:#1c1c1c;
  --ww-muted:#6b5b54;
  --ww-accent:#c27b7f;
  --ww-border:#e8ded6;
}

/* Theme: Sage */
body[data-ww-theme="sage"]{
  --ww-bg:#f6f7f2;
  --ww-surface:#ffffff;
  --ww-text:#1c1c1c;
  --ww-muted:#5a615a;
  --ww-accent:#6f8f7a;
  --ww-border:#dde5dc;
}

/* Theme: Midnight */
body[data-ww-theme="midnight"]{
  --ww-bg:#121316;
  --ww-surface:#1a1c20;
  --ww-text:#f2f2f2;
  --ww-muted:#b9b9b9;
  --ww-accent:#c27b7f;
  --ww-border:#2a2d35;
}
body[data-ww-theme="midnight"] .tile,
body[data-ww-theme="midnight"] .fos-tool-shell,
body[data-ww-theme="midnight"] .fos-home-hero,
body[data-ww-theme="midnight"] .fos-pagehead,
body[data-ww-theme="midnight"] .fos-feature,
body[data-ww-theme="midnight"] .fos-review,
body[data-ww-theme="midnight"] .fos-panel,
body[data-ww-theme="midnight"] .fos-chat{
  background: var(--ww-surface) !important;
}
body[data-ww-theme="midnight"] input,
body[data-ww-theme="midnight"] textarea,
body[data-ww-theme="midnight"] select{
  background:#121316 !important;
  color: var(--ww-text) !important;
  border-color: var(--ww-border) !important;
}

/* Theme: Champagne */
body[data-ww-theme="champagne"]{
  --ww-bg:#fbf6ef;
  --ww-surface:#ffffff;
  --ww-text:#1c1c1c;
  --ww-muted:#6c5a4c;
  --ww-accent:#b6875d;
  --ww-border:#eadfce;
}

/* Theme: Sky */
body[data-ww-theme="sky"]{
  --ww-bg:#f4f8ff;
  --ww-surface:#ffffff;
  --ww-text:#1c1c1c;
  --ww-muted:#516070;
  --ww-accent:#5b7db8;
  --ww-border:#dbe5f3;
}

/* Simple Theme Picker UI */
.ww-themebar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top: 10px;
}
.ww-themebar .label{
  color: var(--wc-muted);
  font-size: 13px;
}
.ww-themebar select{ height:44px; min-width: 220px; }

/* Wedding Website Media (Gallery + Lightbox) */
.ww-gallery-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
}
@media (max-width: 900px){
  .ww-gallery-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 520px){
  .ww-gallery-grid{ grid-template-columns: 1fr; }
}
.ww-gal-card{
  display:block;
  text-decoration:none;
  border:1px solid var(--wc-border);
  border-radius:16px;
  overflow:hidden;
  background: rgba(255,255,255,.92);
  box-shadow: 0 10px 30px rgba(17,24,39,.06);
  transition: transform .15s ease, box-shadow .15s ease;
}
.ww-gal-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(17,24,39,.10);
}
.ww-gal-thumb{
  width:100%;
  aspect-ratio: 4 / 3;
  background: #fff;
  overflow:hidden;
}
.ww-gal-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.ww-gal-cap{
  padding:10px 12px;
  font-size:13px;
  color: var(--wc-muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Lightbox */
#wwLightbox{ position:fixed; inset:0; z-index:9999; display:none; }
#wwLightbox.open{ display:block; }
.ww-lb-backdrop{
  position:absolute; inset:0;
  background: rgba(17,24,39,.55);
  backdrop-filter: blur(2px);
}
.ww-lb-panel{
  position:absolute;
  left:50%; top:50%;
  transform: translate(-50%,-50%);
  width:min(980px, 92vw);
  max-height: 86vh;
  background: rgba(255,255,255,.95);
  border:1px solid rgba(255,255,255,.55);
  border-radius:20px;
  box-shadow: 0 30px 80px rgba(0,0,0,.25);
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.ww-lb-img{
  width:100%;
  height:auto;
  max-height: 64vh;
  object-fit:contain;
  border-radius:16px;
  background:#fff;
}
.ww-lb-cap{
  font-size:13px;
  color: var(--wc-muted);
  padding: 0 6px;
}
.ww-lb-close{
  position:absolute;
  top:10px; right:10px;
  width:40px; height:40px;
  border-radius:999px;
  border:1px solid var(--wc-border);
  background: rgba(255,255,255,.9);
  cursor:pointer;
  font-size:18px;
  line-height:1;
}
.ww-lb-nav{
  display:flex;
  justify-content:space-between;
  gap:10px;
}


/* Admin Media Ops Pro */
.ww-dropzone{
  border: 1px dashed var(--wc-border);
  border-radius: 18px;
  padding: 14px 14px;
  background: rgba(255,255,255,.72);
}
.ww-dropzone.over{
  border-color: rgba(0,0,0,.55);
  background: rgba(255,255,255,.92);
}
.ww-drag-handle{
  width:22px;
  height:64px;
  border-radius: 12px;
  border:1px solid var(--wc-border);
  display:flex;
  align-items:center;
  justify-content:center;
  color: var(--wc-muted);
  background: rgba(255,255,255,.85);
  user-select:none;
  cursor: grab;
  flex: 0 0 auto;
}
.ww-draggable.dragging{ opacity: .6; }
.ww-draggable.dragover{
  outline: 2px solid rgba(0,0,0,.25);
  outline-offset: 2px;
}


/* Admin cover preview + upload progress */
.ww-cover-preview{
  margin-top:10px;
  height: 180px;
  border-radius: 18px;
  border:1px solid var(--wc-border);
  overflow:hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,255,255,.92));
  position:relative;
}
.ww-cover-preview.has-img{
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.ww-cover-inner{
  position:absolute;
  left:16px;
  bottom:16px;
  right:16px;
  padding:12px 14px;
  border-radius:16px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(255,255,255,.5);
}
.ww-progress{
  width:100%;
  height:10px;
  border-radius:999px;
  border:1px solid var(--wc-border);
  background: rgba(255,255,255,.75);
  overflow:hidden;
}
.ww-progress > div{
  height:100%;
  width:0%;
  background: rgba(0,0,0,.35);
}
.ww-inline-input{
  width:100%;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--wc-border);
  background: rgba(255,255,255,.92);
  color: var(--wc-text);
}


/* Toast */
.ww-toast{
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  min-width: 240px;
  max-width: min(520px, 92vw);
  padding: 12px 14px;
  border-radius: 999px;
  border: 1px solid var(--wc-border);
  background: rgba(255,255,255,.92);
  box-shadow: 0 18px 50px rgba(0,0,0,.12);
  color: var(--wc-text);
  font-size: 14px;
  display:none;
  z-index: 9999;
}
.ww-toast.show{ display:block; }
.ww-toast.error{
  background: rgba(255,255,255,.96);
  border-color: rgba(0,0,0,.25);
}


/* Upload queue */
.ww-queue{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.ww-q-item{
  border:1px solid var(--wc-border);
  border-radius:16px;
  background: rgba(255,255,255,.88);
  padding:12px 12px;
  display:flex;
  gap:12px;
  align-items:center;
}
.ww-q-left{
  width:46px;
  height:46px;
  border-radius:14px;
  border:1px solid var(--wc-border);
  background: rgba(255,255,255,.95);
  display:flex;
  align-items:center;
  justify-content:center;
  color: var(--wc-muted);
  flex: 0 0 auto;
  overflow:hidden;
}
.ww-q-left img{ width:100%; height:100%; object-fit:cover; display:block; }
.ww-q-main{ flex:1; min-width:0; }
.ww-q-title{
  font-size:14px;
  color: var(--wc-text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ww-q-sub{
  margin-top:4px;
  font-size:12px;
  color: var(--wc-muted);
}
.ww-q-badge{
  font-size:12px;
  border:1px solid var(--wc-border);
  border-radius:999px;
  padding:4px 10px;
  background: rgba(255,255,255,.92);
}
.ww-q-badge.err{ border-color: rgba(0,0,0,.25); }


/* Queue drag reorder */
.ww-q-item{ cursor: default; }
.ww-q-item[draggable="true"]{ cursor: grab; }
.ww-q-item.dragging{ opacity:.6; }
.ww-q-item.dragover{ outline:2px solid rgba(0,0,0,.2); outline-offset:2px; }


/* Home blocks admin */
.ww-row{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.ww-pill{
  font-size:12px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid var(--wc-border);
  background: rgba(255,255,255,.92);
  color: var(--wc-text);
}
.ww-pill.off{ opacity:.6; }
.ww-grid-3{ display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:10px; }
@media (max-width: 860px){ .ww-grid-3{ grid-template-columns:1fr; } }


/* Home blocks drag reorder */
.ww-hb-item[draggable="true"]{ cursor: grab; }
.ww-hb-item.dragging{ opacity:.6; }
.ww-hb-item.dragover{ outline:2px solid rgba(0,0,0,.2); outline-offset:2px; }


/* Print layout (v8.12) */
@media print{
  header.header, footer.footer, .nav-actions, .mega-panel, .mega, .btn, .pill { display:none !important; }
  body{ background:#fff !important; color:#000 !important; }
  .container{ max-width:100% !important; padding:0 !important; }
  .tile{ box-shadow:none !important; border:0 !important; }
  .table th,.table td{ border-bottom:1px solid #ddd !important; }
  .hero, .fos-hero{ padding:0 !important; }
  a[href]:after{ content:""; }
}


/* Print PDF improvements (v8.13) */
@media print{
  @page{ margin: 14mm 12mm; }
  table{ page-break-inside:auto; }
  thead{ display: table-header-group; }
  tfoot{ display: table-footer-group; }
  tr{ page-break-inside: avoid; page-break-after: auto; }
  .print-only{ display:block !important; }
  .no-print{ display:none !important; }
}
.print-only{ display:none; }


/* Home content sections (v8.15) */
.wc-content-grid, .wc-article-grid{ gap:14px; }
.wc-linkcard, .wc-article{
  display:block;
  text-decoration:none;
  color:inherit;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  border:1px solid rgba(0,0,0,.06);
}
.wc-linkcard:hover, .wc-article:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 45px rgba(0,0,0,.08);
  border-color: rgba(0,0,0,.12);
}
.wc-linkcard .title, .wc-article .title{ margin-top:6px; }
.wc-card-meta{
  display:flex;
  gap:10px;
  align-items:center;
  margin-top:12px;
}
.badge{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  border:1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.03);
}
.wc-article-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
@media (max-width: 920px){
  .wc-content-grid.grid-3, .wc-article-grid.grid-3{ grid-template-columns: 1fr; }
}


/* Home typography tune (v8.16) */
:root{
  --wc-font: -apple-system, BlinkMacSystemFont, "Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
body{
  font-family: var(--wc-font);
  letter-spacing: -0.2px;
}
.headline{
  letter-spacing: -0.6px;
}
.fos-sec-title{
  font-size: 22px;
  line-height: 1.25;
  letter-spacing: -0.4px;
}
.fos-sec-sub{
  margin-top: 6px;
  font-size: 14px;
  line-height: 1.5;
}
.tile .title{
  font-size: 16px;
  line-height: 1.35;
}
.kicker{
  font-size: 12px;
  letter-spacing: 0.2px;
}
.subhead{
  font-size: 15px;
  line-height: 1.55;
}
.small{
  font-size: 13px;
  line-height: 1.55;
}


/* Quick menu tune (v8.16) */
.mega-panel .mega a,
.mega-panel .mega .mega-link{
  font-size: 13px;
  line-height: 1.25;
}
.mega-panel .mega .mega-title{
  font-size: 14px;
  font-weight: 800;
}
.mega-panel .mega{
  gap: 8px;
}


/* Section alignment (v8.16) */
.fos-sec-head{
  align-items: flex-end;
}
.fos-sec-head .btn{
  height: 36px;
  padding: 0 14px;
}
.fos-section{
  margin-top: 34px;
}


/* Premium hero (v8.17) */
.wc-hero-premium{
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid rgba(0,0,0,.06);
  background: #fff;
  padding: 28px;
  box-shadow: 0 30px 70px rgba(0,0,0,.08);
}
.wc-hero-bg{
  position:absolute;
  inset:-120px -120px auto -120px;
  height: 420px;
  background: radial-gradient(closest-side, rgba(0,0,0,.06), rgba(0,0,0,0));
  pointer-events:none;
}
.wc-hero-grid{ position: relative; }
.wc-hero-kicker{
  font-size: 12px;
  letter-spacing: .18px;
  text-transform: uppercase;
}
.wc-hero-title{
  font-size: 46px;
  line-height: 1.08;
  margin-top: 10px;
}
.wc-hero-lead{
  margin-top: 12px;
  max-width: 560px;
  font-size: 15px;
  line-height: 1.7;
}
.wc-hero-search{
  margin-top: 18px;
  padding: 14px;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 16px 40px rgba(0,0,0,.06);
}
.wc-search-row{
  display:flex;
  gap: 12px;
  align-items: flex-end;
  flex-wrap: wrap;
}
.wc-field{ display:flex; flex-direction:column; gap:6px; }
.wc-field-grow{ flex: 1; min-width: 220px; }
.wc-hero-searchbtn{ height: 44px; padding: 0 18px; }
.wc-chip-row{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.wc-hero-cta{ margin-top: 18px; gap: 10px; flex-wrap: wrap; }
.wc-hero-note{ margin-top: 12px; }

.wc-hero-side{
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(0,0,0,.02);
}
.wc-side-actions{
  margin-top: 10px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

@media (max-width: 980px){
  .wc-hero-premium{ padding: 18px; }
  .wc-hero-title{ font-size: 36px; }
}
@media (max-width: 560px){
  .wc-hero-title{ font-size: 30px; }
  .wc-hero-searchbtn{ width: 100%; }
}


/* Hero photo mode (v8.18) */
.wc-hero-kicker-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.wc-hero-premium.has-photo .wc-hero-bg{
  inset:-180px -180px auto -180px;
  height: 520px;
  background: url('/assets/img/hero-photo.svg') center/cover no-repeat;
  opacity: .9;
}
.wc-hero-premium.has-photo{
  border-color: rgba(0,0,0,.08);
}


/* WeddingWire home layout (v8.18.1) */
.ww-section{ margin-top: 28px; }
.ww-cats{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 14px;
}
.ww-cat{
  display:flex;
  gap: 12px;
  align-items:center;
  padding: 14px 14px;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.06);
  background: #fff;
  text-decoration:none;
  color: inherit;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ww-cat:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 45px rgba(0,0,0,.08);
  border-color: rgba(0,0,0,.12);
}
.ww-ico{ width: 44px; height: 44px; flex: 0 0 auto; }
.ww-cat .t{ font-weight: 800; font-size: 14px; }
.ww-cat .d{ font-size: 12px; color: rgba(0,0,0,.60); margin-top: 2px; }

.ww-split{ gap: 14px; }
.ww-split-card{ border:1px solid rgba(0,0,0,.06); }
.ww-split-k{ font-size: 12px; font-weight: 800; letter-spacing: .18px; text-transform: uppercase; color: rgba(0,0,0,.65); }
.ww-split-actions{ margin-top: 12px; display:flex; gap:10px; flex-wrap: wrap; }

.ww-scroll{ margin-top: 14px; overflow-x:auto; padding-bottom: 6px; }
.ww-cards{
  display:flex;
  gap: 12px;
  min-width: 900px;
}
.ww-vendor{
  width: 260px;
  border:1px solid rgba(0,0,0,.06);
  text-decoration:none;
  color: inherit;
}
.ww-thumb{
  height: 140px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(0,0,0,.05), rgba(0,0,0,.01));
  border: 1px solid rgba(0,0,0,.06);
  margin-bottom: 10px;
}
.ww-vendor-actions{
  display:flex;
  gap: 10px;
  align-items:center;
  margin-top: 12px;
}

.ww-real{ gap: 12px; margin-top: 14px; }
.ww-real-card{
  overflow:hidden;
  border: 1px solid rgba(0,0,0,.06);
  text-decoration:none;
  color: inherit;
}
.ww-real-img{
  height: 210px;
  border-radius: 16px;
  background: radial-gradient(circle at 30% 25%, rgba(0,0,0,.06), rgba(0,0,0,0) 60%),
              linear-gradient(135deg, rgba(0,0,0,.05), rgba(0,0,0,.01));
  border: 1px solid rgba(0,0,0,.06);
}
.ww-real-meta{ margin-top: 10px; }
.ww-real-meta .t{ font-weight: 800; }

@media (max-width: 980px){
  .ww-cats{ grid-template-columns: repeat(2, 1fr); }
  .ww-cards{ min-width: 760px; }
}
@media (max-width: 560px){
  .ww-cats{ grid-template-columns: 1fr; }
  .ww-cards{ min-width: 680px; }
}


/* Admin Home Sections (v8.19) */
.wc-field > span{ display:block; }
.wc-field .input{ width:100%; }


/* Home thumbnails (v8.20) */
.ww-thumb{ overflow:hidden; }
.ww-thumb-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:14px;
}
.ww-real-cover{
  background-size: cover;
  background-position: center;
}


/* MEDIA_PICKER_V821 */
.wc-modal{ position:fixed; inset:0; display:none; z-index:9999; }
.wc-modal.open{ display:block; }
.wc-modal-backdrop{ position:absolute; inset:0; background: rgba(0,0,0,.45); }
.wc-modal-card{ position:relative; max-width: 980px; margin: 6vh auto 0; }
.wc-modal-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.wc-modal-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 14px; }
.wc-media-item{ text-align:left; padding:10px; border:1px solid rgba(0,0,0,.08); border-radius:14px; background:#fff; cursor:pointer; }
.wc-media-item img{ width:100%; height:140px; object-fit:cover; border-radius:12px; display:block; }
@media (max-width: 920px){ .wc-modal-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px){ .wc-modal-grid{ grid-template-columns: 1fr; } .wc-media-item img{ height:180px; } }


/* CARD_RATIO_V821 */
.ww-thumb{ aspect-ratio: 16 / 9; height: auto; }
.ww-real-img{ aspect-ratio: 16 / 9; height: auto; }


/* HOME_SPACING_V822 */
/* global section spacing */
.section,
.fos-section,
.ww-section {
  padding-top: clamp(48px, 6vw, 72px);
  padding-bottom: clamp(48px, 6vw, 72px);
}

/* section header spacing */
.section-head,
.ww-section-head {
  margin-bottom: 28px;
}
.section-head .title,
.ww-section-head .title {
  margin-bottom: 8px;
}

/* card grid spacing */
.card-grid,
.ww-grid {
  gap: 20px;
}

/* horizontal scrollers */
.ww-scroll {
  gap: 18px;
  padding-bottom: 4px;
}

/* hero bottom spacing */
.wc-hero-premium {
  margin-bottom: clamp(40px, 6vw, 64px);
}

/* tighten mobile */
@media (max-width: 768px){
  .section,
  .fos-section,
  .ww-section {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  .section-head,
  .ww-section-head {
    margin-bottom: 20px;
  }
}


/* V824_DND: placeholder + drop highlight */
.wc-drop-placeholder{
  border: 2px dashed rgba(0,0,0,.18);
  border-radius: 16px;
  padding: 14px;
  background: rgba(0,0,0,.02);
}
.wc-dragitem.drop-over{
  outline: 2px solid rgba(0,0,0,.22);
  outline-offset: 2px;
  transition: outline-color .15s ease;
}
.wc-dragitem{ transition: transform .15s ease, box-shadow .15s ease; }
.wc-dragitem.dragging{ box-shadow: 0 14px 40px rgba(0,0,0,.12); }


/* V824_STYLE_OPTIONS: per-section options via data attributes */
[data-section="ww_realweddings"][data-cols="2"] .ww-real{ grid-template-columns: repeat(2, 1fr); }
[data-section="ww_realweddings"][data-cols="3"] .ww-real{ grid-template-columns: repeat(3, 1fr); }

[data-section="ww_categories"][data-cols="2"] .ww-cats{ grid-template-columns: repeat(2, 1fr); }
[data-section="ww_categories"][data-cols="3"] .ww-cats{ grid-template-columns: repeat(3, 1fr); }

[data-section="ww_winners"][data-cardsize="sm"] .ww-vendor{ width: 240px; }
[data-section="ww_winners"][data-cardsize="md"] .ww-vendor{ width: 280px; }
[data-section="ww_winners"][data-cardsize="lg"] .ww-vendor{ width: 320px; }

[data-section="ww_tools"][data-cardsize="sm"] .ww-tool{ width: 240px; }
[data-section="ww_tools"][data-cardsize="md"] .ww-tool{ width: 280px; }
[data-section="ww_tools"][data-cardsize="lg"] .ww-tool{ width: 320px; }

/* keep mobile sane */
@media (max-width: 680px){
  [data-section="ww_realweddings"][data-cols="3"] .ww-real{ grid-template-columns: repeat(2, 1fr); }
  [data-section="ww_categories"][data-cols="3"] .ww-cats{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 460px){
  [data-section="ww_realweddings"] .ww-real{ grid-template-columns: 1fr !important; }
  [data-section="ww_categories"] .ww-cats{ grid-template-columns: 1fr !important; }
}


/* MYWEDDING_HUB_V825 */
.myw-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.myw-tile{
  padding: 16px;
  border-radius: 18px;
}
.myw-tile .k{
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.01em;
}
.myw-top .muted{ margin-top: 6px; }
@media (max-width: 980px){
  .myw-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px){
  .myw-grid{ grid-template-columns: 1fr; }
  .myw-tile{ padding: 14px; }
  .myw-tile .k{ font-size: 15px; }
}
