/* ===== morestayz — 매거진 디자인 시스템 (howcartful와 톤 구분: 크림/세이지·serif) ===== */
:root{
  --bg:#f7f4ec; --surface:#fffdf8; --text:#2b2a26; --muted:#6f6a60; --line:#e7e1d4;
  --accent:#6f8f67; --accent-d:#566f4f; --rose:#c0714e;
  --chip:#efeadd; --shadow:0 10px 30px rgba(60,52,30,.10); --shadow-h:0 18px 44px rgba(60,52,30,.16);
  --serif:'Noto Serif KR',Georgia,'Times New Roman',serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans KR',sans-serif;
}
:root[data-theme="dark"]{
  --bg:#15140f; --surface:#1e1c15; --text:#ece7da; --muted:#a8a08f; --line:#2c2920;
  --accent:#8fb085; --accent-d:#a7c79e; --rose:#d68b67;
  --chip:#26241c; --shadow:0 12px 34px rgba(0,0,0,.5); --shadow-h:0 18px 50px rgba(0,0,0,.6);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);color:var(--text);line-height:1.72;background:var(--bg);
  -webkit-font-smoothing:antialiased;}
img{display:block;max-width:100%}
a{color:var(--accent-d);text-decoration:none}

.post{max-width:760px;margin:0 auto;padding:30px 20px 60px}
.backbar{display:inline-block;color:var(--muted);font-size:.9rem;margin-bottom:18px}
.backbar:hover{color:var(--accent-d)}

/* 히어로 (매거진 캡션) */
.hero{position:relative;border-radius:18px;overflow:hidden;box-shadow:var(--shadow);background:#ddd}
.hero img{width:100%;height:clamp(260px,42vw,400px);object-fit:cover}
.hero .cap{position:absolute;left:0;right:0;bottom:0;padding:46px 24px 22px;color:#fff;
  background:linear-gradient(to top,rgba(20,16,10,.86),rgba(20,16,10,.4) 55%,transparent)}
.kicker{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px;font-size:.8rem}
.kicker .tag{background:var(--accent);color:#fff;padding:4px 11px;border-radius:999px;font-weight:700}
.kicker .ssn{background:rgba(255,255,255,.22);padding:4px 11px;border-radius:999px;font-weight:600;backdrop-filter:blur(3px)}
.kicker .mon{color:#f2ead8;font-weight:600}
.hero h1{font-family:var(--serif);font-weight:800;font-size:clamp(1.5rem,3.6vw,2.15rem);line-height:1.32;letter-spacing:-.01em;text-shadow:0 2px 18px rgba(0,0,0,.4)}
.hero .lede{margin-top:10px;color:#efe9da;font-size:.95rem;line-height:1.62;max-width:60ch;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* 콜아웃 */
.callout{border-radius:14px;padding:16px 18px;margin:22px 0;font-size:.97rem}
.callout.verdict{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);box-shadow:var(--shadow)}
.callout.verdict b{color:var(--accent-d)}
.callout.verdict :is(b){background:linear-gradient(transparent 62%,rgba(111,143,103,.28) 0)}
.callout.basis{background:var(--chip);color:var(--muted);font-size:.9rem;line-height:1.66}
.callout.basis .bt{font-family:var(--serif);font-weight:800;color:var(--text);font-size:1.02rem;margin-bottom:6px}
.ssnnote{background:var(--chip);border-radius:10px;padding:11px 14px;color:var(--muted);font-size:.9rem;margin:14px 0}

h2{font-family:var(--serif);font-weight:800;font-size:1.3rem;letter-spacing:-.01em;margin:34px 0 6px}
.sechd{margin-top:40px}

/* 데이터 박스 (도넛+범례) */
.databox{margin:26px 0;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.databox h2{margin:0 0 4px}
.dsub{color:var(--muted);font-size:.88rem;margin-bottom:14px}
.chart{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.donutwrap{flex:0 0 auto}
.donut{width:140px;height:140px}
.donut .dnum{font-family:var(--serif);font-weight:800;font-size:26px;fill:var(--text)}
.donut .dlab{font-size:11px;fill:var(--muted)}
.legend{list-style:none;flex:1;min-width:180px;display:grid;gap:9px}
.legend li{display:flex;align-items:center;gap:9px;font-size:.92rem}
.legend .dot{width:11px;height:11px;border-radius:3px;flex:0 0 auto}
.legend .lb{color:var(--text)}
.legend .lb.on{font-weight:800;color:var(--accent-d)}
.legend .pc{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums;font-weight:700}

/* 호텔 에디토리얼 카드 */
.hotel{margin:22px 0;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);transition:box-shadow .2s,transform .2s}
.hotel:hover{box-shadow:var(--shadow-h);transform:translateY(-3px)}
/* morestaz 오버레이: 하단 그라데이션 바 + 좌측정렬 호텔명, 우상단 라운드 칩 */
.hotel .ph{position:relative;aspect-ratio:16/9;background:#e7e1d4}
.hotel .ph img{width:100%;height:100%;object-fit:cover}
.hotel .ph .chip{position:absolute;top:12px;right:12px;background:rgba(255,253,248,.92);color:var(--text);
  font-size:.82rem;font-weight:700;padding:5px 12px;border-radius:999px;box-shadow:0 4px 12px rgba(0,0,0,.18);backdrop-filter:blur(4px)}
.hotel .ph .cap{position:absolute;left:0;right:0;bottom:0;padding:38px 18px 14px;color:#fff;text-align:left;
  background:linear-gradient(to top,rgba(20,16,10,.85),rgba(20,16,10,.25) 60%,transparent)}
.hotel .ph .rk{display:inline-block;font-size:.74rem;font-weight:800;background:rgba(255,255,255,.22);padding:2px 9px;border-radius:6px;margin-bottom:6px}
.hotel .ph .rk.top{background:var(--rose)}
.hotel .ph .nm{display:block;font-family:var(--serif);font-weight:800;font-size:1.12rem;line-height:1.32;text-shadow:0 2px 14px rgba(0,0,0,.45)}
.hotel .ph .sc{display:block;margin-top:3px;font-size:.84rem;color:#f1ead9;font-weight:600}
.hotel .bd{padding:16px 18px 18px}
.blurb{font-size:.95rem;color:var(--text)}
.meta{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}
.meta span{background:var(--chip);color:var(--muted);font-size:.8rem;padding:4px 10px;border-radius:8px}

/* 유형 막대 */
.types{margin:12px 0 4px;padding:13px 14px;background:var(--chip);border-radius:12px}
.tcap{font-size:.82rem;font-weight:700;color:var(--text);margin-bottom:9px}
.tcap span{color:var(--muted);font-weight:500}
.tbar{display:flex;align-items:center;gap:9px;margin:6px 0;font-size:.84rem}
.tbar .tl{flex:0 0 76px;color:var(--muted)}
.tbar.on .tl{color:var(--accent-d);font-weight:800}
.tbar .trk{flex:1;height:9px;background:var(--line);border-radius:999px;overflow:hidden}
.tbar .trk i{display:block;height:100%;border-radius:999px}
.tbar .tp{flex:0 0 36px;text-align:right;font-variant-numeric:tabular-nums;font-weight:700;color:var(--text)}
.tbar .rt{flex:0 0 auto;color:var(--rose);font-weight:700;font-size:.8rem}

/* 리뷰 */
.reviews{margin:14px 0 4px;display:grid;gap:9px}
.rv{display:flex;gap:11px;align-items:flex-start;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:11px 13px}
.rvsc{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:.9rem;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-d))}
.rvc .q{font-size:.92rem;line-height:1.6;color:var(--text)}
.rvf{margin-top:5px;font-size:.78rem;color:var(--muted)}
.rv-tr{background:var(--chip);padding:1px 6px;border-radius:5px;font-size:.72rem}
.rv-more{display:inline-block;margin-top:4px;font-size:.86rem;font-weight:700;color:var(--accent-d)}

.cta{margin-top:14px}
.cta a{display:block;text-align:center;background:var(--accent);color:#fff;font-weight:800;padding:13px;border-radius:12px;transition:background .15s}
.cta a:hover{background:var(--accent-d)}

/* 아웃트로 */
.outro{margin:34px 0 10px;padding:24px;background:linear-gradient(135deg,var(--surface),var(--chip));border:1px solid var(--line);border-radius:18px;text-align:center}
.outro h2{margin:0 0 8px}
.outro p{color:var(--muted);font-size:.95rem;max-width:52ch;margin:0 auto}
.bigcta{display:inline-block;margin-top:16px;background:var(--rose);color:#fff;font-weight:800;padding:14px 26px;border-radius:999px;box-shadow:var(--shadow)}
.bigcta:hover{filter:brightness(1.05)}

.disc{margin:26px 0;font-size:.8rem;color:var(--muted);line-height:1.6;border-top:1px solid var(--line);padding-top:16px}
.pagenav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:.86rem;color:var(--muted)}
.pagenav span a{margin:0 2px}

.theme-toggle{position:fixed;top:14px;right:14px;z-index:50;width:40px;height:40px;border-radius:50%;
  border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow)}

@media(max-width:560px){
  .chart{gap:16px}
  .donut{width:118px;height:118px}
  .post{padding:22px 15px 50px}
}
