/* 아구촌 사용자 페이지 스타일 — 고급 미니멀(아이보리·먹빛·브론즈, 명조 세리프) */
:root{
  --bg:#f2ede4;         /* 따뜻한 아이보리 배경 */
  --paper:#faf7f0;      /* 카드/지면 */
  --ink:#1b1712;        /* 먹빛 텍스트 */
  --ink-soft:#4a423a;
  --muted:#9a9086;      /* 보조 텍스트 */
  --line:#e0d8ca;       /* 헤어라인 */
  --line-dark:#cfc5b4;
  --accent:#9a7b4f;     /* 절제된 브론즈 */
  --accent-deep:#7c6038;
  --dark:#191512;       /* 딥 차콜(히어로/버튼) */
  --ok:#4f7a5f; --warn:#a9832f; --danger:#a4482f;

  --serif:"Cormorant Garamond","Nanum Myeongjo","Batang",serif;
  --sans:"Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Malgun Gothic",sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-weight:400;
  font-size:15px; line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}

/* 앱 프레임 */
.app{max-width:460px; margin:0 auto; min-height:100vh; background:var(--bg);
  position:relative; padding-bottom:76px;}

/* 상단바 — 아이보리, 헤어라인, 세리프 워드마크 */
.topbar{position:sticky; top:0; z-index:20; display:flex; align-items:center;
  justify-content:space-between; height:64px; padding:0 22px;
  background:rgba(242,237,228,0.92); backdrop-filter:saturate(120%) blur(6px);
  border-bottom:1px solid var(--line);}
.topbar-home{font-family:var(--serif); font-weight:600; font-size:26px;
  letter-spacing:.04em; color:var(--ink);}
.topbar-cart{position:relative; font-size:11px; font-weight:500; text-transform:uppercase;
  letter-spacing:.18em; color:var(--ink-soft);}
.badge{position:absolute; top:-9px; right:-15px; background:var(--accent); color:#fff;
  font-size:10px; font-weight:700; min-width:17px; height:17px; line-height:17px;
  text-align:center; border-radius:50%; padding:0 4px; letter-spacing:0;}

/* 콘텐츠 */
.content{padding:26px 22px;}
.section{margin-bottom:38px;}
.section-title{font-family:var(--serif); font-size:26px; font-weight:600; letter-spacing:.02em;
  margin:0 0 16px; line-height:1.25;}
.section-sub{color:var(--muted); font-size:13px; margin:-8px 0 18px; letter-spacing:.01em;}

/* 소제목 이브로우(대문자 라벨) */
.eyebrow{display:block; text-transform:uppercase; letter-spacing:.28em; font-size:11px;
  color:var(--accent-deep); font-weight:500; margin-bottom:12px;}

/* 카드 */
.card{background:var(--paper); border:1px solid var(--line); border-radius:3px;
  padding:22px; margin-bottom:16px;}
.card-flat{background:var(--paper); border:1px solid var(--line); border-radius:3px;
  overflow:hidden; margin-bottom:16px;}

/* 히어로 — 딥 차콜 지면에 세리프, 이미지 없이도 고급스럽게 */
.hero{border-radius:3px; overflow:hidden; background:var(--dark);
  color:#f3ece0; padding:52px 30px; margin-bottom:30px; text-align:center;
  border:1px solid #211c17;}
.hero h1{font-family:var(--serif); margin:0 0 14px; font-size:34px; font-weight:500;
  letter-spacing:.03em; line-height:1.2;}
.hero p{margin:0 auto; opacity:.82; font-size:13.5px; max-width:300px; line-height:1.75;
  font-weight:300;}
.hero .eyebrow{color:var(--accent);}

/* 메뉴 아이템 */
.menu-item{display:flex; gap:16px; padding:20px 22px; align-items:center;
  border-bottom:1px solid var(--line);}
.menu-item:last-child{border-bottom:none;}
.menu-thumb{width:82px; height:82px; border-radius:2px; background:#e8e0d2;
  flex-shrink:0; object-fit:cover;}
.menu-info{flex:1; min-width:0;}
.menu-name{font-family:var(--serif); font-weight:600; font-size:19px; letter-spacing:.01em;}
.menu-desc{color:var(--muted); font-size:12.5px; margin:5px 0 8px; font-weight:300;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.menu-price{font-weight:500; color:var(--ink); letter-spacing:.02em;}
.soldout{color:var(--danger); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.1em;}

/* 칩 */
.chip{display:inline-block; font-size:10.5px; padding:4px 11px; border-radius:999px;
  border:1px solid var(--line-dark); background:transparent; color:var(--muted);
  margin-right:7px; text-transform:uppercase; letter-spacing:.14em;}
.chip-spicy{border-color:#d8b89a; color:var(--accent-deep);}

/* 카테고리 탭 — 언더라인형 미니멀 */
.cat-tabs{display:flex; gap:22px; overflow-x:auto; padding:4px 0 16px;
  -webkit-overflow-scrolling:touch; border-bottom:1px solid var(--line); margin-bottom:20px;}
.cat-tab{white-space:nowrap; padding:6px 0; background:none; border:none;
  font-size:13px; font-weight:500; color:var(--muted); text-transform:uppercase;
  letter-spacing:.14em; position:relative;}
.cat-tab.on{color:var(--ink);}
.cat-tab.on::after{content:''; position:absolute; left:0; right:0; bottom:-17px;
  height:1px; background:var(--ink);}

/* 버튼 — 각진 미니멀, 대문자 자간 */
.btn{display:inline-block; text-align:center; padding:16px 22px; border-radius:2px;
  font-weight:500; font-size:12px; border:1px solid transparent; cursor:pointer; width:100%;
  text-transform:uppercase; letter-spacing:.18em; transition:all .2s ease;
  font-family:var(--sans);}
.btn-primary{background:var(--dark); color:#f3ece0; border-color:var(--dark);}
.btn-primary:active,.btn-primary:hover{background:#000;}
.btn-outline{background:transparent; color:var(--ink); border-color:var(--ink);}
.btn-outline:hover{background:var(--ink); color:#f3ece0;}
.btn-ghost{background:transparent; color:var(--ink-soft); border-color:var(--line-dark);}
.btn-ghost:hover{border-color:var(--ink); color:var(--ink);}
.btn-sm{width:auto; padding:10px 18px; font-size:11px; letter-spacing:.14em;}
.btn-block{width:100%;}
.btn-row{display:flex; gap:12px;}
.btn-row .btn{flex:1;}

/* 폼 */
.field{margin-bottom:18px;}
.field label{display:block; font-size:11px; font-weight:500; margin-bottom:8px;
  color:var(--ink-soft); text-transform:uppercase; letter-spacing:.16em;}
.input,select,textarea{width:100%; padding:14px 15px; border:1px solid var(--line-dark);
  border-radius:2px; font-size:15px; background:var(--paper); font-family:inherit; color:var(--ink);}
.input:focus,select:focus,textarea:focus{outline:none; border-color:var(--accent);}
textarea{min-height:104px; resize:vertical;}
.hint{font-size:12px; color:var(--muted); margin-top:7px;}

/* 정보 목록 */
.info-list{list-style:none; margin:0; padding:0;}
.info-list li{display:flex; padding:14px 0; border-bottom:1px solid var(--line); font-size:14px;}
.info-list li:last-child{border-bottom:none;}
.info-list .k{width:92px; color:var(--muted); flex-shrink:0; text-transform:uppercase;
  letter-spacing:.1em; font-size:11px; padding-top:2px;}
.info-list .v{flex:1;}

/* 별점 */
.stars{color:var(--accent); letter-spacing:3px; font-size:14px;}
.stars-empty{color:#d8cfbf;}

/* 수량 */
.qty{display:inline-flex; align-items:center; border:1px solid var(--line-dark); border-radius:2px; overflow:hidden;}
.qty button{width:40px; height:40px; border:none; background:transparent; font-size:18px; cursor:pointer; color:var(--ink);}
.qty .n{width:44px; text-align:center; font-weight:500;}

/* 합계 바 */
.sumbar{position:fixed; left:50%; transform:translateX(-50%); bottom:76px; width:100%;
  max-width:460px; background:var(--paper); border-top:1px solid var(--line); padding:16px 22px;
  display:flex; align-items:center; gap:14px; z-index:15;}
.sumbar .total{flex:1; font-weight:600; font-size:17px; font-family:var(--serif);}
.sumbar .btn{width:auto; padding:14px 26px;}

/* 하단 탭바 — 텍스트 미니멀 */
.tabbar{position:fixed; left:50%; transform:translateX(-50%); bottom:0; width:100%;
  max-width:460px; background:rgba(250,247,240,0.96); backdrop-filter:blur(6px);
  border-top:1px solid var(--line); display:flex; height:76px; z-index:20;}
.tab{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:5px; color:var(--muted); font-size:10.5px; text-transform:uppercase; letter-spacing:.1em;
  position:relative;}
.tab.active{color:var(--ink);}
.tab.active::before{content:''; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:26px; height:1px; background:var(--accent);}
.tab-txt{font-weight:500;}

/* 플래시 */
.flash-wrap{padding:16px 22px 0;}
.flash{padding:14px 16px; border-radius:2px; font-size:13px; margin-bottom:10px;
  border:1px solid; letter-spacing:.02em;}
.flash-success{background:#eef3ee; border-color:#cfe0d3; color:var(--ok);}
.flash-error{background:#f6ece7; border-color:#e6cfc4; color:var(--danger);}
.flash-info{background:#f6f0e2; border-color:#e6dcc2; color:var(--warn);}

/* 유틸 */
.text-center{text-align:center;}
.muted{color:var(--muted);}
.mt{margin-top:16px;} .mb{margin-bottom:16px;}
.empty{text-align:center; color:var(--muted); padding:56px 22px; font-size:14px; line-height:2;}
.divider{height:1px; background:var(--line); margin:22px 0;}
.price-lg{font-family:var(--serif); font-size:26px; font-weight:600; color:var(--ink); letter-spacing:.02em;}
.map-box{width:100%; height:240px; border-radius:3px; overflow:hidden; background:#e8e0d2;}

/* 휴무일 달력 팝업 */
.modal-overlay{position:fixed; inset:0; z-index:100; display:flex; align-items:center;
  justify-content:center; padding:20px; background:rgba(25,21,18,0.55);}
.modal-overlay[hidden]{display:none;}
.modal-box{width:100%; max-width:380px; background:var(--paper); border:1px solid var(--line);
  border-radius:4px; padding:20px; max-height:90vh; overflow-y:auto;
  box-shadow:0 12px 40px rgba(25,21,18,0.28);}
.modal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
.modal-head strong{font-family:var(--serif); font-size:20px; letter-spacing:.02em;}
.modal-close{background:none; border:none; font-size:26px; line-height:1; color:var(--muted);
  cursor:pointer; padding:0 4px;}

.cal-nav{display:flex; align-items:center; justify-content:space-between; margin-bottom:10px;}
.cal-nav span{font-weight:500; font-size:15px;}
.cal-nav button{background:none; border:1px solid var(--line); border-radius:3px;
  width:32px; height:32px; font-size:18px; color:var(--ink); cursor:pointer;}

.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:2px;}
.cal-head div{text-align:center; font-size:12px; color:var(--muted); padding:4px 0;}
.cal-head div:first-child{color:var(--danger);}
.cal-day{aspect-ratio:1/1; display:flex; align-items:center; justify-content:center;
  font-size:13px; border-radius:3px; color:var(--ink-soft);}
.cal-empty{visibility:hidden;}
.cal-today{outline:1px solid var(--accent); font-weight:600;}
.cal-holiday{background:var(--danger); color:#fff; font-weight:600;}
.cal-closed{background:#efe6d6; color:var(--warn);}

.cal-legend{display:flex; gap:16px; justify-content:center; margin:14px 0 6px;
  font-size:12px; color:var(--muted);}
.cal-legend span{display:inline-flex; align-items:center; gap:5px;}
.cal-legend .lg{width:12px; height:12px; border-radius:2px; display:inline-block;}
.cal-legend .lg-holiday{background:var(--danger);}
.cal-legend .lg-closed{background:#efe6d6;}

.cal-list{list-style:none; margin:10px 0 0; padding:12px 0 0; border-top:1px solid var(--line);
  font-size:13px; color:var(--ink-soft);}
.cal-list li{padding:3px 0;}
.cal-list-empty{color:var(--muted);}
.cal-dismiss{display:flex; align-items:center; gap:6px; margin-top:14px;
  font-size:13px; color:var(--muted); cursor:pointer;}
