:root{--cover:#fbf8f2;--paper:#fffaf6;--pink:#f5e6ea;--ink:#2f292b;--muted:#877a7e;--rose:#b87589;--line:rgba(47,41,43,.14)}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{overflow:hidden;background:#ece5e6;color:var(--ink);font-family:"Noto Sans KR",sans-serif;font-weight:300;touch-action:pan-x pan-y pinch-zoom}
button,input,textarea{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a{text-decoration:none;color:inherit}img{display:block;width:100%;height:100%;object-fit:cover}
.app{height:100dvh;max-width:500px;margin:0 auto;position:relative;overflow:hidden;background:var(--cover);box-shadow:0 0 50px rgba(40,30,35,.08)}
.topbar{position:absolute;z-index:50;left:0;right:0;top:0;height:58px;padding:0 15px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;background:rgba(251,248,242,.9);backdrop-filter:blur(9px)}
.back-btn,.brand,.top-actions button{border:0;background:transparent}.back-btn{font-size:20px;padding:0 10px 0 0;opacity:0;visibility:hidden}.back-btn.show{opacity:1;visibility:visible}.brand{font-family:"Cormorant Garamond",serif;font-size:30px;font-style:italic;font-weight:600;justify-self:start}.top-actions{display:flex;gap:13px;align-items:center;justify-self:end}.top-actions span,.top-actions button{font-size:8px;letter-spacing:.12em}.top-actions button{border-bottom:1px solid currentColor;padding:3px 0}
.deck{height:100dvh}.page{position:absolute;inset:0;padding-top:58px;opacity:0;visibility:hidden;transform:translateX(14px);transition:.28s ease;background:var(--cover);overflow:hidden}.page.active{opacity:1;visibility:visible;transform:none;z-index:3}
.scroll{height:calc(100dvh - 58px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;padding-bottom:calc(36px + env(safe-area-inset-bottom))}
.eyebrow{font-size:9px;letter-spacing:.16em;font-weight:500;margin:0 0 12px}.section-head{padding:24px 15px 16px}h2,h3{font-family:"Cormorant Garamond",serif;font-weight:500;letter-spacing:-.04em;margin:0}h2{font-size:48px;line-height:.92}h3{font-size:36px}

/* HOME */
.home-page,.home-scroll,.cover,.home-copy{background:var(--cover)}.cover{height:49vh;min-height:355px}.cover img{object-fit:contain;background:var(--cover)}
.home-copy{text-align:center;padding:0 16px 16px}.home-copy strong{display:block;font-family:"Cormorant Garamond",serif;font-size:17px}.home-copy em{display:block;font-family:"Cormorant Garamond",serif;font-size:17px;color:var(--rose);margin-top:2px}.home-copy small{display:block;font-size:9px;color:var(--muted);margin-top:4px}
.home-links{margin:0 15px;border-top:1px solid var(--line)}.home-link{width:100%;min-height:54px;display:grid;grid-template-columns:28px 1fr 20px;align-items:center;gap:8px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;padding:0}.home-link.primary{background:rgba(244,223,228,.45)}.home-link>span{font-size:8px;color:var(--muted)}.home-link strong{display:block;font-size:13px;font-weight:400}.home-link small{display:block;font-size:8px;letter-spacing:.08em;color:var(--muted);margin-top:2px}.home-link b{font-size:14px;font-weight:300;text-align:right}

/* FEED */
.feed-page{background:#fffaf8}.feed-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px}.feed-grid figure{margin:0;aspect-ratio:1/1.24;overflow:hidden;background:#eee}.feed-grid img{filter:brightness(1.035) contrast(.94) saturate(.82) sepia(.02)}.feed-note{margin:12px 15px 14px;font-size:10px;line-height:1.6;color:#5f5659}.main-btn{width:calc(100% - 30px);height:48px;margin:0 15px;border:0;background:var(--ink);color:#fff;font-size:10px}

/* GUIDE */
.guide-page{background:linear-gradient(145deg,#fbf6f2,#f5e6ea)}.card{margin:0 15px 12px;background:rgba(255,255,255,.78);border:1px solid rgba(47,41,43,.10);padding:0 13px}.price-card{padding-bottom:6px}
.cake-table{width:100%;display:grid;grid-template-columns:1fr auto 68px;align-items:center;gap:8px;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 0;text-align:left}.cake-table.head{font-size:9px;color:var(--muted);padding:9px 0}.cake-table span{font-size:12px}.cake-table b{font-size:12px;font-weight:500}.cake-table small{font-size:9px;text-align:right;color:var(--muted)}.selected-price{color:var(--rose)}
.extra-row{display:flex;justify-content:space-between;padding:10px 0;font-size:10px;border-top:1px dashed var(--line)}.extra-row b{font-weight:500}
.color-notice{margin:0 15px 12px;padding:12px 13px;background:#fffaf6;border-left:3px solid var(--rose);font-size:10px;line-height:1.6}.color-notice b{font-weight:500}
.size-toggle{width:calc(100% - 30px);margin:0 15px 12px;height:46px;padding:0 13px;border:1px solid rgba(47,41,43,.14);background:#fff;display:flex;justify-content:space-between;align-items:center;font-size:11px}.size-toggle b{font-size:18px;font-weight:300}.size-panel{display:none;margin:0 15px 12px;background:#fff;border:1px solid rgba(47,41,43,.1)}.size-panel.open{display:block}.size-panel img{height:auto;object-fit:contain}
.card-title{min-height:52px;display:grid;grid-template-columns:25px 1fr;align-items:center;border-bottom:1px solid var(--line)}.card-title>span{font-size:8px;color:var(--muted)}.card-title strong{display:block;font-family:"Cormorant Garamond",serif;font-size:20px;font-weight:600}.card-title small{font-size:8px;color:var(--muted)}.small-title strong{font-size:17px}
.option-row{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 0;display:grid;grid-template-columns:1fr auto;gap:8px;text-align:left;align-items:center}.option-row span{font-size:11px}.option-row b{font-size:10px;font-weight:500}.selected-option{color:var(--rose)}
.check-row{min-height:45px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:16px 1fr auto;gap:8px;align-items:center;font-size:10px}.check-row input{position:absolute;opacity:0}.check-row i{width:13px;height:13px;border:1px solid var(--ink);border-radius:50%;position:relative}.check-row input:checked+i:after{content:"";position:absolute;inset:3px;background:var(--rose);border-radius:50%}.check-row input[type=checkbox]+i{border-radius:1px}.check-row input[type=checkbox]:checked+i:after{border-radius:0}.check-row b{font-size:9px;font-weight:500}.check-row.disabled{opacity:.35;pointer-events:none}.topper-copy{font-size:9px;line-height:1.6;color:var(--muted);padding:10px 0;margin:0}.option-card{padding-top:2px}
.estimate{margin:14px 15px;background:var(--ink);color:#fff;padding:15px;display:grid;grid-template-columns:1fr auto;gap:5px;align-items:end}.estimate span{font-size:10px}.estimate strong{font-family:"Cormorant Garamond",serif;font-size:30px}.estimate small{grid-column:1/3;font-size:8px;line-height:1.5;opacity:.65}

/* ORDER */
.order-page{background:#f5e6ea}.deadline{margin:0 15px 12px;padding:13px;background:#fffaf6;border:1px solid rgba(47,41,43,.1)}.deadline strong{display:block;font-family:"Cormorant Garamond",serif;font-size:17px;margin-bottom:5px}.deadline p{font-size:10px;line-height:1.65;margin:0}.deadline p+p{margin-top:7px}.deadline b{font-weight:500}.same-day{color:var(--rose)}
.order-form{margin:0 15px;padding:16px 14px;background:rgba(255,255,255,.78);border:1px solid rgba(47,41,43,.1)}.order-form label{display:block;margin-bottom:13px}.order-form label>span:first-child{display:block;font-size:11px;font-weight:500;margin-bottom:5px}.order-form input,.order-form textarea{width:100%;border:0;border-bottom:1px solid rgba(47,41,43,.22);border-radius:0;background:transparent;padding:8px 1px;outline:0;font-size:12px}.order-form input[readonly]{color:var(--rose)}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lettering small{display:block;margin-top:5px;font-size:9px;color:var(--rose)}
.reference-note{margin:5px 0 15px;padding:12px;background:#fffaf6;border:1px solid rgba(47,41,43,.1)}.reference-note strong{display:block;font-size:10px;font-weight:500;line-height:1.5;margin-bottom:4px}.reference-note p{margin:0;font-size:9px;color:var(--muted);line-height:1.6}
.privacy{display:grid!important;grid-template-columns:17px 1fr;gap:8px;align-items:start;margin:16px 0!important}.privacy input{position:absolute;opacity:0}.privacy i{width:14px;height:14px;border:1px solid var(--ink);position:relative}.privacy input:checked+i{background:var(--ink)}.privacy input:checked+i:after{content:"✓";position:absolute;left:3px;top:-3px;color:#fff;font-size:10px}.privacy span{font-size:9px!important;line-height:1.55!important;font-weight:300!important;margin:0!important}.privacy b{font-weight:500}
.summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:14px 0;padding:8px 0}.summary div{display:flex;justify-content:space-between;padding:5px 0}.summary span{font-size:8px;color:var(--muted)}.summary strong{font-size:9px;font-weight:400;max-width:72%;text-align:right}.submit-btn{width:100%;height:48px;border:0;background:var(--ink);color:#fff;font-size:10px}

/* LOCATION */
.location-section{margin:16px 15px 0;padding:18px 14px;background:#fffaf6;border:1px solid rgba(47,41,43,.1)}.location-section p{font-size:10px;line-height:1.65}.location-section b{font-weight:500}.map-btn,.kakao-btn,.phone-btn{display:block;height:44px;line-height:44px;text-align:center;font-size:10px;margin-top:8px}.map-btn{background:var(--ink);color:#fff}.kakao-btn,.phone-btn{border:1px solid var(--ink)}

/* NAV */
.dots{position:absolute;z-index:40;left:50%;bottom:8px;transform:translateX(-50%);display:flex;gap:6px}.dot{width:5px;height:5px;padding:0;border:0;border-radius:50%;background:rgba(47,41,43,.2)}.dot.active{background:var(--ink)}
.drawer{position:absolute;z-index:100;inset:0;background:#f3e3e7;transform:translateY(-101%);transition:.3s;padding:20px 16px}.drawer.open{transform:translateY(0)}.drawer-close{display:block;margin-left:auto;border:0;background:transparent;font-size:8px}.drawer-menu{margin-top:9vh}.drawer-menu button{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:34px 1fr;text-align:left;padding:11px 0;font-family:"Cormorant Garamond",serif;font-size:31px}.drawer-menu span{font-family:"Noto Sans KR";font-size:8px;padding-top:8px}
.toast{position:absolute;z-index:120;left:50%;bottom:24px;transform:translate(-50%,15px);background:var(--ink);color:#fff;padding:9px 13px;border-radius:999px;font-size:9px;opacity:0;transition:.24s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}
@supports not (height:100dvh){.app,.deck{height:100vh}.page{height:100vh}.scroll{height:calc(100vh - 58px)}}


/* GLORY 1.2 — order notice / paste guidance / booking restrictions */
.order-hours{
  margin-top:9px;
  padding:9px 10px;
  display:flex;
  flex-direction:column;
  gap:4px;
  background:rgba(244,223,228,.38);
  border-left:3px solid var(--rose);
}
.order-hours span{
  font-size:10px;
  line-height:1.5;
}
.order-hours b{font-weight:500}

.field-note{
  display:block;
  margin-top:5px;
  font-size:8px;
  line-height:1.4;
  color:var(--muted);
}

.order-method{
  margin:8px 0 15px;
  padding:12px;
  background:#fffaf6;
  border:1px solid rgba(47,41,43,.10);
}
.order-method>strong{
  display:block;
  margin-bottom:7px;
  font-size:11px;
  font-weight:500;
}
.order-method p{
  margin:0;
  font-size:9px;
  line-height:1.55;
}
.order-method p+p{margin-top:5px}
.order-method .paste-required{
  padding:8px 9px;
  background:rgba(244,223,228,.55);
  color:var(--ink);
}
.order-method .paste-required b{
  font-weight:600;
  color:var(--rose);
}


/* GLORY 1.3 — stable mobile scroll */
html,
body{
  width:100%;
  min-height:100%;
  height:auto !important;
  overflow-x:hidden;
  overflow-y:auto !important;
  overscroll-behavior-y:auto;
  -webkit-overflow-scrolling:touch;
}

body{
  min-height:100dvh;
}

.app{
  min-height:100dvh;
  height:auto !important;
  overflow:visible !important;
}

.deck{
  position:relative;
  min-height:100dvh;
  height:auto !important;
  overflow:visible !important;
}

/* Only active page participates in document flow */
.page{
  position:relative !important;
  inset:auto !important;
  width:100%;
  min-height:100dvh;
  height:auto !important;
  padding-top:56px;
  overflow:visible !important;
  display:none;
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
}

.page.active{
  display:block;
  position:relative !important;
  z-index:auto !important;
}

/* Let the document scroll instead of a nested fixed-height element */
.scroll,
.home-scroll{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  padding-bottom:calc(72px + env(safe-area-inset-bottom));
  touch-action:pan-y pinch-zoom;
}

/* Header stays visible while scrolling */
.topbar{
  position:fixed !important;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:min(100%,500px);
}

/* Bottom page dots stay fixed without affecting content flow */
.dots{
  position:fixed !important;
}

/* Avoid scroll jumps when focusing form fields */
input,
textarea,
select,
button,
a{
  scroll-margin-top:74px;
}

/* Prevent accidental horizontal gesture-driven content disappearance */
.app,
.deck,
.page,
.scroll,
.home-scroll{
  overscroll-behavior-x:none;
  touch-action:pan-y pinch-zoom;
}




/* GLORY 1.5 FIX V3 — pickup time select matches order input */
.order-form select{
  width:100%;
  border:0;
  border-bottom:1px solid rgba(47,41,43,.22);
  border-radius:0;
  background:transparent;
  padding:8px 1px;
  outline:0;
  font-size:12px !important;
  font-family:"Noto Sans KR",sans-serif !important;
  font-weight:300 !important;
  line-height:1.4;
  color:inherit;
}


/* GLORY 1.6 — selection autofill guidance */
.selection-auto-note{
  margin:10px 0 12px;
  padding:10px 12px;
  background:rgba(244,223,228,.38);
  border-left:3px solid var(--rose);
}
.selection-auto-note strong{
  display:block;
  font-size:10px;
  font-weight:500;
  line-height:1.5;
}
.selection-auto-note span{
  display:block;
  margin-top:3px;
  font-size:8px;
  color:var(--muted);
  line-height:1.45;
}

/* v1.7 */
.table-head,.price-header,.cake-table-header{column-gap:20px;}
.selection-auto-note{margin:10px 0 18px;padding:10px 12px;background:rgba(244,223,228,.38);border-left:3px solid #d8a3ad}
.selection-auto-note strong{display:block;font-size:11px}
.selection-auto-note span{display:block;font-size:9px;margin-top:4px}

/* GLORY 1.9 — clearer selectable choices */
.choice-subtitle{
  margin: 6px 0 14px;
  font-size: 10px;
  line-height: 1.5;
  color: var(--muted);
}
.radio-choice-row{
  position: relative;
}
.choice-radio{
  display:inline-block;
  width:16px;
  height:16px;
  min-width:16px;
  margin-right:10px;
  border:1px solid currentColor;
  border-radius:50%;
  vertical-align:-3px;
  box-sizing:border-box;
  opacity:.75;
}
.radio-choice-row.selected .choice-radio,
.radio-choice-row.active .choice-radio,
.radio-choice-row[aria-checked="true"] .choice-radio{
  box-shadow: inset 0 0 0 4px #fff;
  background: currentColor;
}

/* GLORY 2.0 final order-form cleanup */
.section-choice{margin-top:8px!important;margin-bottom:0!important;}
.cake-extra-title{
  padding:15px 0 8px;
  margin-top:2px;
  border-top:1px dashed var(--line);
  font-size:10px;
  letter-spacing:.08em;
  color:var(--muted);
}
.price-card .cake-extra-choice{
  margin:0;
  padding-left:0;
  padding-right:0;
}
.price-card .cake-extra-choice:last-child{border-bottom:0;}
.card-title{align-items:flex-start;}
.card-title>div{min-width:0;}
.card-title small{display:block;margin-top:5px;white-space:normal;}
/* selection circles, same visual language as topper */
.cake-table[data-size] > span:first-child,
.option-row[data-value] > span:first-child{
  display:flex;
  align-items:center;
  min-width:0;
}
.cake-table[data-size] > span:first-child::before,
.option-row[data-value] > span:first-child::before{
  content:"";
  width:14px;height:14px;min-width:14px;
  border:1px solid currentColor;border-radius:50%;
  margin-right:9px;box-sizing:border-box;opacity:.72;
}
.cake-table.selected-price > span:first-child::before,
.option-row.selected-option > span:first-child::before{
  background:currentColor;
  box-shadow:inset 0 0 0 4px #fff;
}


/* GLORY 2.4 — preserve original HOME composition exactly */
.price-card .cake-table{
  grid-template-columns:minmax(92px,1fr) 92px 88px !important;
  column-gap:16px !important;
}
.price-card .cake-table > b,
.price-card .cake-table > small,
.price-card .cake-table.head > span:nth-child(2),
.price-card .cake-table.head > span:nth-child(3){
  text-align:right;
  white-space:nowrap;
}


/* GLORY 2.5 — FINAL HOME POSITIONING
   Keep illustration scale/position exactly the same.
   Only reduce the visible hero window so the copy/menu move upward. */
.home-page .cover{
  height:38vh !important;
  min-height:300px !important;
  max-height:330px !important;
  overflow:hidden !important;
  margin:0 !important;
  padding:0 !important;
  position:relative;
}
.home-page .cover img{
  width:100% !important;
  height:49vh !important;             /* preserve original visual scale */
  min-height:355px !important;
  object-fit:contain !important;
  object-position:center top !important;
  display:block;
  margin:0 auto;
}
.home-page .home-copy{
  margin-top:0 !important;
  padding:0 16px 8px !important;
}
.home-page .home-links{
  margin-top:0 !important;
}
