/* ==================== 검색 패널 ==================== */
.search-panel{
  position:fixed; top:var(--header-h); left:0; right:0; z-index:98;
  background:rgba(248,243,233,.98); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
  transform:translateY(-120%); opacity:0; pointer-events:none;
  transition:transform .3s ease, opacity .25s ease;
}
.search-panel.open{ transform:translateY(0); opacity:1; pointer-events:auto; }
.search-panel form{
  max-width:640px; margin:0 auto; padding:26px 24px;
  display:flex; align-items:center; gap:10px;
}
.search-panel input{
  flex:1; padding:13px 14px;
  border:1px solid var(--line); background:var(--white);
  font-family:inherit; font-size:16px; color:var(--ink); border-radius:0;
}
.search-panel input:focus{ outline:none; border-color:var(--gold); }
.search-panel .search-submit{
  flex:none; padding:13px 24px;
  background:var(--gold-deep); color:#fff; border:1px solid var(--gold-deep);
  font-size:14px; letter-spacing:.1em;
}
.search-panel .search-submit:hover{ background:transparent; color:var(--gold-deep); }
.search-panel .search-close{
  flex:none; background:none; border:none;
  font-size:20px; color:var(--ink-soft); padding:0 4px;
}

/* 검색 결과 */
.search-summary{ text-align:center; font-size:15px; color:var(--ink-soft); margin-bottom:36px; }
.search-summary strong{ color:var(--gold-deep); }
.search-empty{
  text-align:center; background:var(--white); border:1px solid var(--line);
  max-width:560px; margin:0 auto; padding:48px 28px;
}
.search-empty p{ font-size:15px; color:var(--ink-soft); margin-bottom:24px; }
.product-card .card-cat{
  font-size:12.5px; letter-spacing:.1em; color:var(--gold-deep); margin-bottom:6px;
}

  :root{
    --cream:#F8F3E9;
    --sand:#EFE4D2;
    --sky:#CFE1EA;
    --sky-deep:#8FAEC0;
    --gold:#B8935B;
    --gold-deep:#98763F;
    --ink:#2F2B27;
    --ink-soft:#75695C;
    --line:#E2D6C3;
    --white:#FFFFFF;
    --header-h:117px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Noto Serif KR', serif;
    background:var(--cream);
    color:var(--ink);
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  img{max-width:100%; display:block;}
  button{font-family:inherit; cursor:pointer;}

  .wrap{ max-width:1180px; margin:0 auto; padding:0 24px; }

  .eyebrow{
    font-family:'Cormorant Garamond', serif;
    letter-spacing:.32em; text-transform:uppercase;
    font-size:13.5px; color:var(--gold-deep);
    display:inline-flex; align-items:center; gap:10px;
  }
  .eyebrow::before{ content:""; width:16px; height:1px; background:var(--gold-deep); display:inline-block; }
  .section-title{
    font-family:'Cormorant Garamond', serif;
    font-weight:500;
    font-size:clamp(29.5px, 4vw, 44.5px);
    letter-spacing:.02em;
    margin-top:10px;
  }
  .section-sub{ color:var(--ink-soft); font-size:16px; margin-top:10px; }
  .section-head{ text-align:center; margin-bottom:44px; }
  .section-head .section-sub{ margin-left:auto; margin-right:auto; max-width:560px; }
  .beans{ display:flex; justify-content:center; gap:7px; margin:22px 0; }
  .beans span{ width:5px; height:5px; border-radius:50%; background:var(--gold); display:inline-block; opacity:.75; }
  .beans span:nth-child(2){ width:7px; height:7px; opacity:1; }

  .btn{
    display:inline-block;
    padding:13px 34px;
    border:1px solid currentColor;
    font-size:14.5px; letter-spacing:.16em; text-transform:uppercase;
    transition:all .25s ease; background:transparent;
  }
  .btn-light{ color:#fff; }
  .btn-light:hover{ background:#fff; color:var(--ink); }
  .btn-dark{ color:var(--ink); border-color:var(--ink); }
  .btn-dark:hover{ background:var(--ink); color:#fff; }
  .btn-gold{ background:var(--gold-deep); color:#fff; border-color:var(--gold-deep); }
  .btn-gold:hover{ background:transparent; color:var(--gold-deep); }

  section{ padding:44px 0; }
  .alt-bg{ background:var(--sand); }

  /* ===== HEADER (시안 슬라이드 2 : 로고 · GNB · 유틸) ===== */
  /* 헤더 포지셔닝은 .site-header{position:sticky}가 담당한다 (묶음 E 재배치) */
  .logo{
    font-family:'Cormorant Garamond', serif;
    font-size:24.5px; letter-spacing:.34em; font-weight:600;
    padding-left:.34em; white-space:nowrap;
  }
  .logo span{ color:var(--gold-deep); margin:0 .16em; }

  .nav-desktop{ display:none; gap:30px; font-size:15.5px; letter-spacing:.02em; }
  .nav-desktop a{ position:relative; padding:6px 0; }
  .nav-desktop a::after{
    content:""; position:absolute; left:0; bottom:0;
    width:0; height:1px; background:var(--gold-deep); transition:width .25s ease;
  }
  .nav-desktop a:hover::after, .nav-desktop a.is-active::after{ width:100%; }
  .nav-desktop a.is-active{ color:var(--gold-deep); }

  .header-utils{ display:flex; align-items:center; gap:14px; }
  .icon-btn{
    width:22px; height:22px;
    display:flex; align-items:center; justify-content:center;
    background:none; border:none; position:relative;
  }
  .icon-btn svg{ width:19px; height:19px; stroke:var(--ink); fill:none; stroke-width:1.4; }
  /* 모바일에서는 아이콘을 줄이고 나머지 메뉴는 드로어로 넘긴다 */
  .header-utils .util-mobile-hide{ display:none; }
  /* 로그아웃: 이름 오른쪽 텍스트 링크(폼 제출 버튼) */
  .util-logout-form{ margin:0; display:flex; }
  .util-logout{ font-size:13.5px; letter-spacing:.02em; color:var(--ink-soft); white-space:nowrap; background:none; border:none; padding:0; }
  .util-logout:hover{ color:var(--gold-deep); }
  /* 관리자 계정에만 노출되는 링크 — 하드 보더 대신 부드러운 chip */
  .admin-link{
    display:none;
    font-size:12px; letter-spacing:.04em;
    color:var(--gold-deep); white-space:nowrap;
    background:var(--sand); border:none; border-radius:999px;
    padding:5px 12px; transition:background .15s ease, color .15s ease;
  }
  .admin-link:hover{ background:var(--gold-deep); color:#fff; }

  .hamburger{ display:flex; flex-direction:column; justify-content:center; gap:5px; width:22px; height:22px; }
  .hamburger span{ display:block; height:1px; background:var(--ink); width:100%; }

  /* 모바일 드로어 */
  .drawer{
    position:fixed; top:0; right:0; bottom:0;
    width:78%; max-width:320px;
    background:var(--cream); z-index:200;
    transform:translateX(100%); transition:transform .35s ease;
    box-shadow:-8px 0 30px rgba(0,0,0,.08);
    padding:26px 28px; overflow-y:auto;
  }
  .drawer.open{ transform:translateX(0); }
  .drawer-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:30px; }
  .drawer-close{ font-size:23.5px; color:var(--ink-soft); background:none; border:none; }
  .drawer nav a{ display:block; padding:14px 0; border-bottom:1px solid var(--line); font-size:18px; letter-spacing:.03em; }
  .drawer-foot{ margin-top:26px; font-size:13.5px; color:var(--ink-soft); letter-spacing:.06em; }
  .scrim{
    position:fixed; inset:0; background:rgba(47,43,39,.35);
    z-index:150; opacity:0; pointer-events:none; transition:opacity .3s ease;
  }
  .scrim.show{ opacity:1; pointer-events:auto; }

  /* 페이지 상단 타이틀 (하위 페이지 공통) */
  /* 페이지 상단 : 배경 사진 + 어두운 오버레이 + 흰 텍스트 */
  .page-head{
    position:relative; overflow:hidden;
    /* 설명 줄 수가 적은 컬렉션(예: 주얼리)도 다른 히어로와 같은 높이를 갖도록 바닥을 고정한다.
       min-height 라 텍스트가 더 많은 컬렉션은 자연 높이를 유지한다(줄어들지 않음). */
    min-height:409px;
    padding:78px 0 72px;
    text-align:center;
    background-color:var(--ink);
    background-image:var(--head-image, url('/images/heads/default.jpg'));
    background-size:cover; background-position:center;
    color:#fff;
  }
  .page-head::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(to bottom,
      rgba(28,25,22,.58) 0%,
      rgba(28,25,22,.68) 100%);
  }
  .page-head > .wrap{ position:relative; z-index:1; }
  .page-head h1{
    font-family:'Cormorant Garamond', serif;
    font-weight:500; font-size:clamp(32px, 4.6vw, 49px);
    letter-spacing:.03em; margin-top:12px;
    text-shadow:0 2px 20px rgba(0,0,0,.42);
  }
  .page-head .eyebrow{ color:#fff; }
  .page-head .eyebrow::before{ background:#fff; }
  .page-head .eyebrow{ text-shadow:0 1px 10px rgba(0,0,0,.35); }
  .page-head .lead{
    color:rgba(255,255,255,.94); font-size:16px; max-width:620px; margin:14px auto 0;
    text-shadow:0 1px 12px rgba(0,0,0,.4);
  }
  .page-head .desc{
    color:rgba(255,255,255,.86); font-size:15px; max-width:640px; margin:6px auto 0;
    text-shadow:0 1px 12px rgba(0,0,0,.4);
  }
  .breadcrumb{ font-size:13.5px; color:var(--ink-soft); letter-spacing:.08em; margin-bottom:6px; }
  .breadcrumb a:hover{ color:var(--gold-deep); }
  .page-head .breadcrumb{ color:rgba(255,255,255,.7); }
  .page-head .breadcrumb a:hover{ color:#fff; }

  /* 제품 그리드 (시안 슬라이드 10) */
  .product-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
  .product-card{ background:var(--white); border:1px solid var(--line); transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease; display:block; }
  .product-card:hover{ transform:translateY(-5px); box-shadow:0 18px 34px -20px rgba(47,43,39,.35); border-color:var(--gold); }
  .product-media{
    aspect-ratio:3/4;
    background:linear-gradient(140deg, var(--sky), var(--sand));
    display:flex; align-items:center; justify-content:center;
    color:var(--ink-soft); font-size:13.5px; letter-spacing:.08em;
    overflow:hidden;
  }
  .product-media img{ width:100%; height:100%; object-fit:cover; }
  .product-body{ padding:16px 16px 18px; text-align:left; }
  .product-body h3{ font-size:16px; font-weight:600; letter-spacing:.02em; }
  .product-body .summary{ font-size:13px; color:var(--ink-soft); margin-top:5px; line-height:1.45; }
  .product-body .price{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:12px; }
  .product-body .price-amount{ font-size:18px; font-weight:700; color:#96062D; letter-spacing:.02em; }
  .product-body .price-arrow{ font-size:20px; line-height:1; color:#96062D; }

  /* ===== 폼 공통 (주문서 · 로그인 · 회원가입) ===== */
  .form-block{ background:var(--white); border:1px solid var(--line); padding:28px 26px; margin-bottom:18px; }
  .form-block > h3{
    font-size:14.5px; letter-spacing:.1em; color:var(--gold-deep);
    padding-bottom:12px; margin-bottom:20px; border-bottom:1px solid var(--line);
  }
  .field{ margin-bottom:18px; }
  .field:last-child{ margin-bottom:0; }
  .field label{ display:block; font-size:14.5px; margin-bottom:7px; letter-spacing:.02em; }
  .field label .req{ color:#B85B5B; font-size:12.5px; margin-left:4px; }
  .field .hint{ font-size:13px; color:var(--ink-soft); margin-top:6px; line-height:1.6; }
  .field input, .field select, .field textarea{
    width:100%; padding:12px 13px;
    border:1px solid var(--line); background:var(--cream);
    font-family:inherit; font-size:15.5px; color:var(--ink); border-radius:0;
  }
  .field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--gold); background:var(--white); }
  .field input.has-error{ border-color:#B85B5B; }
  .field .error{ font-size:13px; color:#B85B5B; margin-top:6px; }
  .field-row{ display:grid; grid-template-columns:1fr; gap:18px; }
  .radio-group{ display:flex; gap:18px; flex-wrap:wrap; }
  .radio-group label{ display:inline-flex; align-items:center; gap:7px; font-size:15px; margin:0; }
  .radio-group input{ width:auto; }
  .form-foot{ text-align:center; margin-top:26px; }

  /* ===== FOOTER ===== */
  footer{ background:var(--ink); color:#EFE7DA; padding:56px 0 26px; }
  .foot-top{
    display:flex; flex-direction:column; gap:26px;
    padding-bottom:30px; border-bottom:1px solid rgba(255,255,255,.12); margin-bottom:22px;
  }
  .foot-logo{ font-family:'Cormorant Garamond', serif; font-size:23.5px; letter-spacing:.32em; }
  .foot-sns{ display:flex; gap:14px; }
  .foot-sns a{
    width:36px; height:36px; border:1px solid rgba(255,255,255,.3); border-radius:50%;
    display:flex; align-items:center; justify-content:center;
  }
  .foot-sns a svg{ width:16px; height:16px; stroke:#EFE7DA; fill:none; stroke-width:1.4; }
  .foot-sns a.disabled{ opacity:.35; pointer-events:none; }
  .foot-cols{ display:grid; grid-template-columns:1fr; gap:22px; font-size:14px; color:#C9BFAF; }
  .foot-cols h4{ font-size:13.5px; letter-spacing:.14em; color:#EFE7DA; margin-bottom:10px; text-transform:uppercase; }
  .foot-cols li{ margin-bottom:6px; }
  .foot-cols a:hover{ color:#fff; }
  .copyright{ text-align:center; font-size:12.5px; color:#8A8073; letter-spacing:.04em; margin-top:26px; }

  .top-btn{
    position:fixed; right:20px; bottom:20px;
    width:44px; height:44px; background:var(--ink); color:#fff;
    border-radius:50%; display:flex; align-items:center; justify-content:center;
    z-index:80; opacity:0; pointer-events:none; transition:opacity .3s ease; border:none;
  }
  .top-btn.show{ opacity:1; pointer-events:auto; }
  .top-btn svg{ width:16px; height:16px; stroke:#fff; fill:none; stroke-width:1.6; }

  @media (min-width:720px){
    .product-grid{ grid-template-columns:repeat(3,1fr); }
    .foot-cols{ grid-template-columns:repeat(3,1fr); }
    .foot-top{ flex-direction:row; align-items:center; justify-content:space-between; }
    .field-row{ grid-template-columns:1fr 1fr; }
  }
  @media (min-width:960px){
    .nav-desktop{ display:flex; }
    .hamburger-wrap{ display:none; }
    .header-utils .util-mobile-hide{ display:flex; }
    .header-account .util-mobile-hide{ display:inline-flex; }
    .admin-link{ display:inline-block; }
    .header-utils{ gap:16px; }
    .product-grid{ grid-template-columns:repeat(4,1fr); }
  }

/* ==================== 홈 ==================== */
  /* ===== HERO 로테이션 배너 (시안 슬라이드 2~7) ===== */
  .hero{
    position:relative;
    height:calc(100vh - var(--header-h));
    min-height:520px; max-height:760px;
    overflow:hidden;
    /* 양쪽 날개 : 슬라이드가 바뀌어도 이 배경색은 유지된다 */
    background:var(--sand);
  }
  /* 중앙 무대 : 시안 기준 1280px 중 796px (62.2%) */
  .hero-stage{
    position:relative;
    width:100%; height:100%;
    overflow:hidden;
    display:flex; align-items:flex-end;
  }
  .hero-slide{
    position:absolute; inset:0;
    opacity:0; transition:opacity 1.2s ease;
    background-size:cover; background-position:center;
  }
  .hero-slide.is-active{ opacity:1; }
  .hero-slide.brand{ background:linear-gradient(150deg,#2F2B27 0%, #4A4139 55%, #75695C 100%); }
  .hero-slide.bean{ background:linear-gradient(155deg,#B9CBD6 0%, #DCE7ED 45%, #EFE4D2 100%); }
  .hero-slide.bar{ background:linear-gradient(150deg,#E7D3A9 0%, #C6A06A 55%, #9C7A46 100%); }
  .hero-slide.baby{ background:linear-gradient(155deg,#DCE7ED 0%, #F1E3E3 55%, #EFE4D2 100%); }
  .hero-slide.custom{ background:linear-gradient(150deg,#A9C2CF 0%, #D7C8AC 60%, #B8935B 100%); }
  /* 등록한 사진이 있으면 테마 그라데이션 대신 사진을 깐다
     (테마 클래스가 background 단축이라 크기·위치도 여기서 다시 지정한다) */
  .hero-slide.has-photo{
    background-image:var(--hero-photo);
    background-size:cover; background-position:center;
  }
  /* 사진 위 텍스트 가독성 확보 : 아래로 갈수록 짙어지는 오버레이 */
  .hero-stage::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(to top,
      rgba(28,25,22,.68) 0%,
      rgba(28,25,22,.45) 42%,
      rgba(28,25,22,.22) 100%);
    pointer-events:none;
  }
  .hero-overlay{
    position:relative; z-index:4; width:100%;
    padding:0 24px 78px; text-align:center; color:#fff;
  }
  .hero-overlay .eyebrow{ color:#fff; }
  .hero-overlay .eyebrow::before{ background:#fff; }
  .hero-title{
    font-family:'Cormorant Garamond', serif; font-weight:500;
    font-size:clamp(32px, 6vw, 59.5px);
    margin:14px 0 10px;
    text-shadow:0 2px 18px rgba(0,0,0,.22);
  }
  .hero-lead{
    font-size:clamp(15px, 2vw, 18.5px);
    color:rgba(255,255,255,.94);
    margin-bottom:26px;
    text-shadow:0 1px 10px rgba(0,0,0,.25);
  }
  .hero-arrow{
    position:absolute; top:50%; transform:translateY(-50%);
    z-index:6; width:46px; height:46px; border-radius:50%;
    background:rgba(255,255,255,.22); border:1px solid rgba(255,255,255,.5);
    color:#fff; display:flex; align-items:center; justify-content:center;
    transition:background .25s ease;
  }
  .hero-arrow:hover{ background:rgba(255,255,255,.4); }
  .hero-arrow svg{ width:18px; height:18px; stroke:#fff; fill:none; stroke-width:1.6; }
  .hero-arrow.prev{ left:16px; }
  .hero-arrow.next{ right:16px; }
  .hero-dots{
    position:absolute; bottom:22px; left:50%; transform:translateX(-50%);
    display:flex; gap:9px; z-index:6;
  }
  .hero-dots button{
    width:7px; height:7px; border-radius:50%;
    background:rgba(255,255,255,.55); border:none; padding:0;
    transition:all .25s ease;
  }
  .hero-dots button.is-active{ background:#fff; width:20px; border-radius:4px; }

  /* 카테고리 바로가기 */
  .cat-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
  .cat-card{
    background:var(--white); border:1px solid var(--line);
    padding:34px 22px; text-align:center;
    transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  }
  .cat-card:hover{ transform:translateY(-5px); box-shadow:0 18px 34px -20px rgba(47,43,39,.35); border-color:var(--gold); }
  .cat-icon{
    width:46px; height:46px; margin:0 auto 16px; border-radius:50%;
    background:var(--sand); display:flex; align-items:center; justify-content:center;
  }
  .cat-icon svg{ width:22px; height:22px; stroke:var(--gold-deep); fill:none; stroke-width:1.3; }
  .cat-card h3{ font-family:'Cormorant Garamond', serif; font-size:21px; font-weight:600; margin-bottom:6px; }
  .cat-card p{ font-size:14px; color:var(--ink-soft); }

  .home-notice{ text-align:center; }
  .home-notice .box{
    background:var(--white); border:1px solid var(--line);
    max-width:720px; margin:0 auto; padding:34px 28px;
  }
  .home-notice .box p{ font-size:15px; color:var(--ink-soft); margin-bottom:20px; }
  .box-actions{ display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }

  @media (max-width:860px){
    /* 좁은 화면에서는 세로로 찍은 사진을 쓴다(등록하지 않았으면 가로 사진 그대로) */
    .hero-slide.has-photo{
      background-image:var(--hero-photo-mobile, var(--hero-photo));
      background-size:cover; background-position:center;
    }
  }
  @media (min-width:720px){
    .cat-grid{ grid-template-columns:repeat(4,1fr); }
  }

/* ==================== 상품 상세 ==================== */
  /* ===== 상품 상세 (시안 슬라이드 11) ===== */
  .detail{ display:grid; grid-template-columns:1fr; gap:34px; }
  .detail-media{
    background:linear-gradient(140deg, var(--sky), var(--sand));
    border:1px solid var(--line);
    aspect-ratio:3/4;
    display:flex; align-items:center; justify-content:center;
    overflow:hidden; color:var(--ink-soft); font-size:14.5px; letter-spacing:.08em;
  }
  .detail-media img{ width:100%; height:100%; object-fit:cover; }
  .detail-info .cat{ font-size:13.5px; letter-spacing:.14em; color:var(--gold-deep); text-transform:uppercase; }
  .detail-info h1{
    font-family:'Cormorant Garamond', serif; font-weight:600;
    font-size:clamp(27.5px, 3.6vw, 38px); margin:8px 0 4px; letter-spacing:.02em;
  }
  .detail-info .subtitle{ font-size:15.5px; color:var(--ink-soft); }
  .detail-price{
    margin:26px 0 6px; padding-top:22px; border-top:1px solid var(--line);
    font-size:clamp(28px, 3.4vw, 38px); letter-spacing:.02em;
  }
  .detail-price-note{ font-size:16px; color:var(--ink-soft); letter-spacing:.02em; }
  .detail-price-note .cash-red{ font-size:18px; }

  .option-row{ margin:28px 0 22px; }
  .option-row label{ display:block; font-size:14px; letter-spacing:.08em; color:var(--ink-soft); margin-bottom:8px; }
  .option-row select{
    width:100%; padding:13px 14px;
    border:1px solid var(--line); background:var(--white);
    font-family:inherit; font-size:15.5px; color:var(--ink);
    border-radius:0; appearance:none;
    background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2375695C' stroke-width='1.4'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 12px center; background-size:18px;
  }
  /* 버튼은 2행(세로 적층)으로 쌓아 각 버튼이 전체 폭을 쓰게 한다 — 긴 한글 라벨이 절반 폭에 눌려 줄바꿈되지 않는다. */
  .detail-actions{ display:grid; grid-template-columns:1fr; gap:10px; }
  .detail-actions .btn{ padding:16px 12px; text-align:center; font-size:16px; letter-spacing:.08em; word-break:keep-all; }
  .btn-kakao{ background:#FEE500; color:#3C1E1E; border-color:#FEE500; }
  .btn-kakao:hover{ background:transparent; color:#3C1E1E; border-color:#3C1E1E; }
  .btn-kakao{ display:inline-flex; align-items:center; justify-content:center; gap:9px; }
  .btn-kakao .kakao-logo{ width:24px; height:24px; flex:0 0 auto; }
  .detail-caution{
    margin-top:20px; padding:14px 16px;
    background:var(--sand); border:1px solid var(--line);
    font-size:13.5px; color:var(--ink-soft); line-height:1.65;
  }

  /* ===== 상품 정보 (시안 슬라이드 12) ===== */
  .spec-table{ width:100%; border-collapse:collapse; background:var(--white); border:1px solid var(--line); font-size:15.5px; }
  .spec-table th, .spec-table td{ border-bottom:1px solid var(--line); padding:16px 20px; text-align:left; }
  .spec-table tr:last-child th, .spec-table tr:last-child td{ border-bottom:none; }
  .spec-table th{ width:34%; background:var(--sand); font-weight:500; letter-spacing:.04em; color:var(--ink-soft); }

  @media (min-width:860px){
    .detail{ grid-template-columns:1.15fr .85fr; gap:52px; align-items:start; }
    .spec-table th{ width:24%; }
  }

/* ==================== 주문 안내 ==================== */
  /* ===== 주문 안내 (시안 슬라이드 13~14) ===== */
  .guide-card{
    background:var(--white); border:1px solid var(--line);
    max-width:760px; margin:0 auto; padding:38px 30px;
  }
  .guide-card .greet{ text-align:center; font-size:15.5px; line-height:2; margin-bottom:30px; }
  .guide-card .greet strong{ display:block; font-size:18px; letter-spacing:.02em; margin-bottom:10px; }
  .account-box{ background:var(--sand); border:1px solid var(--line); padding:22px 24px; }
  .account-box h3{ font-size:14.5px; letter-spacing:.1em; color:var(--gold-deep); margin-bottom:14px; }
  .account-row{ display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px dashed var(--line); font-size:15.5px; }
  .account-row:last-child{ border-bottom:none; }
  .account-row span:first-child{ color:var(--ink-soft); }
  .account-row span:last-child{ letter-spacing:.04em; }
  .notice-list{ margin-top:26px; }
  .notice-list li{ font-size:14.5px; color:var(--ink-soft); margin-bottom:10px; padding-left:18px; position:relative; line-height:1.75; }
  .notice-list li::before{ content:"✔"; position:absolute; left:0; top:1px; color:var(--gold-deep); font-size:12.5px; }

  /* ===== 주문서 (구글폼 대체) ===== */
  .order-form{ max-width:760px; margin:0 auto; }

/* ==================== 오시는 길 ==================== */
  /* ===== 오시는 길 (시안 슬라이드 8) ===== */
  .loc-grid{ display:grid; grid-template-columns:1fr; gap:26px; }
  .loc-card{ background:var(--white); border:1px solid var(--line); }
  .loc-title{
    text-align:center; padding:22px 20px;
    border-bottom:1px solid var(--line);
  }
  .loc-title h2{ font-size:20px; letter-spacing:.03em; font-weight:600; }
  .loc-title p{ font-size:14px; color:var(--ink-soft); margin-top:5px; }
  .loc-map{
    position:relative; display:flex;
    aspect-ratio:16/10;
    background:repeating-linear-gradient(135deg, var(--sky), var(--sky) 10px, #DBE8EE 10px, #DBE8EE 20px);
    flex-direction:column; align-items:center; justify-content:center; gap:6px;
    color:var(--ink-soft); font-size:14.5px; letter-spacing:.04em;
    overflow:hidden; transition:filter .25s ease;
  }
  .loc-map:hover{ filter:brightness(1.04); }
  .loc-map img{ width:100%; height:100%; object-fit:cover; }
  /* 네이버 지도 캔버스: 부모 .loc-map 의 flex 배치를 끄고 지도가 영역을 꽉 채우게 한다 */
  /* isolation 으로 독립 스태킹 컨텍스트를 만들어 지도 컨트롤이 sticky 헤더(.site-header, z-index:50) 위로 새지 않게 한다 */
  .loc-map-canvas{ display:block; aspect-ratio:16/10; min-height:220px; background:var(--sky); position:relative; z-index:0; isolation:isolate; }
  .loc-map-canvas:hover{ filter:none; }
  .loc-map-cta{
    position:absolute; left:0; right:0; bottom:0;
    background:rgba(47,43,39,.72); color:#fff;
    font-size:13px; letter-spacing:.06em; text-align:center; padding:9px 12px;
  }
  .loc-btn{ display:inline-block; margin-top:18px; padding:11px 22px; font-size:12.5px; }
  .loc-map svg{ width:24px; height:24px; stroke:var(--gold-deep); fill:none; stroke-width:1.4; }
  .loc-body{ padding:24px; }
  .loc-body h3{ font-size:14.5px; letter-spacing:.08em; color:var(--gold-deep); margin-bottom:12px; }
  .loc-body ul li{
    font-size:15px; color:var(--ink-soft);
    margin-bottom:8px; padding-left:14px; position:relative;
  }
  .loc-body ul li::before{ content:"–"; position:absolute; left:0; color:var(--gold); }
  .loc-hours{
    margin-top:44px; text-align:center;
    font-size:14.5px; color:var(--ink-soft);
  }

  @media (min-width:860px){
    .loc-grid{ grid-template-columns:repeat(2,1fr); }
  }

/* ==================== 로그인 · 회원가입 ==================== */
  .auth-form{ max-width:460px; margin:0 auto; }
  .auth-form .form-block{ margin-bottom:0; }
  .auth-alt{ text-align:center; margin-top:24px; font-size:14.5px; color:var(--ink-soft); }
  .auth-alt a{ color:var(--gold-deep); border-bottom:1px solid var(--gold-deep); padding-bottom:2px; }
  .remember{ display:inline-flex; align-items:center; gap:8px; font-size:14px; color:var(--ink-soft); }
  .remember input{ width:auto; }

/* ==================== 내 정보 ==================== */
.profile-wrap{ max-width:640px; margin:0 auto; }
.profile-wrap .form-block{ margin-bottom:22px; }
.alert-status{
  background:var(--sky); border:1px solid var(--line);
  padding:15px 18px; margin-bottom:22px;
  font-size:14.5px; letter-spacing:.02em; text-align:center;
}
.field-static{
  padding:12px 0; font-size:15.5px; color:var(--ink-soft); letter-spacing:.02em;
}
.danger-zone{ border-color:#DCC2C2; }
.danger-zone > h3{ color:#B85B5B; border-bottom-color:#DCC2C2; }
.danger-note{ font-size:13.5px; color:var(--ink-soft); line-height:1.7; margin-bottom:20px; }
.btn-danger{ color:#B85B5B; border-color:#B85B5B; }
.btn-danger:hover{ background:#B85B5B; color:#fff; }

.block-note{ font-size:13.5px; color:var(--ink-soft); margin:-8px 0 20px; line-height:1.7; }
.postcode-row{ display:flex; gap:10px; }
.postcode-row input{ flex:1; }
.postcode-row .btn{ flex:none; padding:12px 20px; font-size:13px; letter-spacing:.06em; white-space:nowrap; }

/* ==================== 이미지 삽입 자리 (시안 12~13번) ==================== */
.detail-image-slots{ display:grid; grid-template-columns:1fr; gap:0; margin-top:26px; }
.image-slot{
  background:var(--white); border:1px dashed var(--line);
  min-height:180px; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.image-slot img{ width:100%; height:auto; display:block; }
/* 상세페이지 사진은 화면 폭 전체에 1열로 이어붙는다 (7안 ①) */
.detail-image-slots .image-slot{ background:transparent; border:0; min-height:0; }

/* ==================== 구매 방법 안내 (시안 11번) ==================== */
.buy-guide{
  margin-top:24px; padding:22px 24px;
  background:var(--white); border:1px solid var(--line);
}
.buy-guide h2{
  font-size:14px; letter-spacing:.1em; color:var(--gold-deep);
  padding-bottom:12px; margin-bottom:16px; border-bottom:1px solid var(--line);
}
.buy-guide ol{ list-style:none; counter-reset:buy-step; }
.buy-guide li{
  counter-increment:buy-step;
  position:relative; padding-left:32px; margin-bottom:11px;
  font-size:14px; color:var(--ink-soft); line-height:1.7;
}
.buy-guide li:last-child{ margin-bottom:0; }
.buy-guide li::before{
  content:counter(buy-step);
  position:absolute; left:0; top:2px;
  width:21px; height:21px; border-radius:50%;
  background:var(--sand); color:var(--gold-deep);
  font-family:'Cormorant Garamond', serif; font-size:13px;
  display:flex; align-items:center; justify-content:center;
}
.buy-guide li strong{ color:var(--ink); font-weight:600; }
.buy-guide-more{
  display:inline-block; margin-top:16px;
  font-size:13px; color:var(--gold-deep);
  border-bottom:1px solid var(--gold-deep); padding-bottom:2px;
}

.admin-panel-link > h3{ color:var(--gold-deep); }
.admin-panel-link .btn{ margin-top:4px; }

/* 상품 상세 · 수량 선택 (수정안 슬라이드 6) */
.qty-row { margin: 22px 0 18px; }
.qty-row > label { display:block; font-size:14px; color:#8a7a5f; margin-bottom:8px; }
.qty-control { display:inline-flex; align-items:center; border:1px solid #ddd2bf; border-radius:8px; overflow:hidden; }
.qty-control .qty-btn { width:40px; height:44px; border:0; background:#f6f1e7; font-size:20px; cursor:pointer; color:#6b5c40; }
.qty-control input { width:64px; height:44px; border:0; text-align:center; font-size:16px; }
.qty-total { margin-top:12px; font-size:16px; color:#6b5c40; }
.qty-total strong { font-size:24px; color:var(--gold-deep); }
/* 안내 문구 가독성 (수정안 슬라이드 6: 선명한 글씨체) */
.detail-caution { color:#7a6c52; font-weight:500; line-height:1.7; }
.detail-price-note { color:#8a7a5f; font-weight:500; }
.detail-price .detail-price-tax { font-size:14px; color:#8a7a5f; font-weight:500; letter-spacing:.02em; margin-left:4px; }

/* 주문서 · 안내 이미지(제일 위) + 주문 요약 카드 (수정안 슬라이드 7) */
.order-image-section { padding: 56px 0 0; }
.order-guide-image { max-width: 820px; margin: 0 auto; }

.order-summary-card {
  margin: 0 0 26px;
  background: linear-gradient(165deg, #ffffff 0%, #fbf6ec 100%);
  border: 1px solid var(--line); border-radius: 18px;
  padding: 30px 30px 28px;
  box-shadow: 0 14px 34px rgba(152, 118, 63, .10);
}
.summary-badge {
  font-family: 'Cormorant Garamond', serif;
  letter-spacing: .28em; text-transform: uppercase;
  font-size: 12.5px; color: var(--gold-deep);
}
.summary-product { display: flex; flex-direction: column; gap: 5px; padding: 16px 0 22px; border-bottom: 1px dashed var(--line); }
.summary-product .summary-cat { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-deep); }
.summary-product strong { font-size: 22px; font-weight: 600; }
.summary-product .summary-weight { font-size: 13.5px; color: var(--ink-soft); }
.summary-qty-row { display: flex; justify-content: space-between; align-items: center; padding: 20px 0; border-bottom: 1px dashed var(--line); }
.summary-qty-row > span { font-size: 15px; color: var(--ink-soft); }
.summary-lines { padding: 18px 0 6px; }
.summary-lines > div { display: flex; justify-content: space-between; align-items: baseline; padding: 9px 0; }
.summary-lines dt { font-size: 15px; color: var(--ink-soft); }
.summary-lines dd { font-size: 16px; font-weight: 500; }
.summary-total {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 14px; padding: 20px 24px;
  background: var(--gold-deep); border-radius: 12px; color: #fff;
}
.summary-total > span:first-child { font-size: 16px; letter-spacing: .02em; }
.summary-total strong { font-size: 27px; margin-right: 3px; }
.field-static { margin:0; padding:12px 14px; background:#f6f1e7; border-radius:8px; color:#5b4f3a; }
.order-empty { text-align:center; color:#7a6c52; padding:40px 0; }

/* 주문 안내(정보) 페이지 — 럭셔리 재구성 */
.order-guide { max-width: 920px; margin: 0 auto; }
.order-greet { text-align: center; font-size: 17.5px; color: var(--ink-soft); line-height: 1.95; max-width: 680px; margin: 0 auto 64px; }

.order-steps { display: grid; grid-template-columns: 1fr; gap: 18px; margin-bottom: 64px; }
.order-step { text-align: center; background: var(--white); border: 1px solid var(--line); border-radius: 16px; padding: 42px 26px 36px; }
.order-step .step-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; border-radius: 50%;
  background: linear-gradient(150deg, var(--gold) 0%, var(--gold-deep) 100%); color: #fff;
  font-family: -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Malgun Gothic', 'Segoe UI', sans-serif;
  font-size: 24px; font-weight: 600; font-variant-numeric: lining-nums;
  margin-bottom: 20px; box-shadow: 0 8px 16px rgba(152, 118, 63, .25);
}
.order-step h4 { font-size: 20px; margin-bottom: 12px; letter-spacing: .02em; }
.order-step p { font-size: 15.5px; color: var(--ink-soft); line-height: 1.8; }

.order-account-card {
  background: linear-gradient(160deg, #fbf6ec 0%, #f4ead6 100%);
  border: 1px solid var(--line); border-radius: 18px;
  padding: 42px 44px; margin-bottom: 56px;
  box-shadow: 0 12px 30px rgba(152, 118, 63, .09);
}
.account-card-head { text-align: center; margin-bottom: 26px; }
.account-card-head h3 { font-size: 26px; margin-top: 4px; }
.account-card-rows { max-width: 520px; margin: 0 auto; }
.account-card-rows > div { display: flex; justify-content: space-between; align-items: center; padding: 17px 0; border-bottom: 1px dashed var(--line); }
.account-card-rows > div:last-child { border-bottom: none; }
.account-card-rows span { font-size: 16px; color: var(--ink-soft); }
.account-card-rows strong { font-size: 18.5px; letter-spacing: .04em; font-family: -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Malgun Gothic', 'Segoe UI', sans-serif; font-variant-numeric: tabular-nums; }

.order-notices { margin-bottom: 60px; }
.order-notices > h3 { text-align: center; font-size: 22px; margin-bottom: 30px; color: var(--gold-deep); letter-spacing: .04em; }
.notice-grid { display: grid; grid-template-columns: 1fr; gap: 16px 34px; max-width: 820px; margin: 0 auto; }
.notice-grid li { position: relative; padding-left: 32px; font-size: 16px; color: var(--ink-soft); line-height: 1.8; }
.notice-grid li::before {
  content: "✓"; position: absolute; left: 0; top: 4px;
  width: 21px; height: 21px; border-radius: 50%;
  background: var(--gold-deep); color: #fff; font-size: 11px;
  display: flex; align-items: center; justify-content: center;
}

.order-cta { text-align: center; background: var(--white); border: 1px solid var(--line); border-radius: 18px; padding: 52px 32px; }
.order-cta h3 { font-size: 25px; margin-bottom: 12px; }
.order-cta > p { font-size: 17px; color: var(--ink-soft); margin-bottom: 32px; }
.order-cta-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.cta-chip {
  padding: 15px 32px; border: 1px solid var(--gold-deep); border-radius: 999px;
  font-size: 16.5px; color: var(--gold-deep); letter-spacing: .04em;
  transition: background .2s ease, color .2s ease;
}
.cta-chip:hover { background: var(--gold-deep); color: #fff; }

@media (min-width: 720px) {
  .order-steps { grid-template-columns: repeat(3, 1fr); }
  .notice-grid { grid-template-columns: repeat(2, 1fr); }
}

/* 고객 주문 확인 */
.order-card { display:flex; justify-content:space-between; align-items:center; gap:16px; background:#fff; border:1px solid #e7dcc7; border-radius:12px; padding:18px 22px; margin-bottom:12px; text-decoration:none; color:inherit; }
.order-card-main { display:flex; flex-direction:column; gap:4px; }
.order-card-no { font-size:12px; color:#a1917a; }
.order-card-sub { font-size:13px; color:#8a7a5f; }
.order-detail { background:#fff; border:1px solid #e7dcc7; border-radius:12px; padding:26px; }
.order-detail-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.order-detail h3 { margin:22px 0 10px; font-size:15px; color:#6b5c40; border-top:1px solid #eee2cf; padding-top:16px; }
.order-detail .summary-row { display:flex; justify-content:space-between; padding:8px 0; font-size:15px; color:#5b4f3a; }
.order-detail .summary-row.total { border-top:1px solid #eee2cf; margin-top:6px; padding-top:14px; font-size:17px; }
.status-badge { display:inline-block; padding:5px 12px; border-radius:999px; font-size:13px; font-weight:600; white-space:nowrap; }
.status-deposit_pending { background:#eee; color:#666; }
.status-deposit_confirmed { background:#e3f0fb; color:#2a6fb0; }
.status-in_production { background:#fbefd6; color:#b07d1a; }
.status-ready_to_ship { background:#f2e8d0; color:#8a6d1e; }
.status-shipping { background:#e3f0fb; color:#2a6fb0; }
.status-completed { background:#e2f3e5; color:#2e8b45; }
.status-cancelled { background:#fbe3e3; color:#c0392b; }

/* 홈 · 로반의 소식 (수정안 슬라이드 2·3) — 테마 골드 카드 + 로고 뱃지 */
.home-sns { background:#faf6ee; }
.sns-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:20px; padding-top:14px; }
.sns-card {
  position:relative;
  display:flex; align-items:center; justify-content:center;
  min-height:150px; padding:34px 16px 22px;
  background:linear-gradient(150deg, var(--gold) 0%, var(--gold-deep) 100%);
  border-radius:16px;
  color:#fff; text-decoration:none; text-align:center;
  box-shadow:0 8px 18px rgba(152,118,63,.20);
  transition:transform .16s ease, box-shadow .16s ease;
}
.sns-card:hover { transform:translateY(-4px); box-shadow:0 12px 24px rgba(152,118,63,.30); }
.sns-logo {
  position:absolute; top:-16px; left:16px;
  width:46px; height:46px; border-radius:12px; background:var(--white);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 10px rgba(47,43,39,.18);
}
.sns-logo svg { width:26px; height:26px; }
.sns-card-title { font-size:19px; font-weight:600; line-height:1.55; letter-spacing:.01em; }

/* 홈 · 주문 확인 (수정안 슬라이드 2·4) */
.home-notice .box .home-order { display:flex; justify-content:space-between; align-items:center; gap:16px; text-align:left; background:var(--cream); border-radius:12px; padding:16px 20px; margin-bottom:20px; }
.home-order-info { display:flex; flex-direction:column; gap:4px; }
.home-order-no { font-size:12px; color:var(--ink-soft); letter-spacing:.02em; }
.home-order-info strong { font-size:16px; color:var(--ink); }
.home-order-sub { font-size:13px; color:var(--ink-soft); }

.form-errors { background:#fbe3e3; border:1px solid #f0c9c9; border-radius:8px; padding:12px 16px; margin-bottom:18px; color:#c0392b; font-size:14px; }
.form-errors ul { margin:0; padding-left:18px; }

/* 숫자 가독성: 금액·수량 요소를 산세리프 + 고정폭 숫자로 (수정안 슬라이드 6 '선명한 글씨체') */
.product-body .price,
.detail-price,
.detail-price-note,
.qty-total,
.qty-control input,
.order-card-no,
.order-card-sub,
.home-order-no,
.home-order-sub,
.summary-lines dd,
.summary-total,
.order-detail .summary-row {
  font-family: -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Malgun Gothic', 'Segoe UI', sans-serif;
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum';
}
.detail-price { font-weight: 600; }

/* Cormorant Garamond 제목·뱃지의 숫자를 lining figure로: 올드스타일 숫자가 '1g'→'Ig'처럼 보이는 문제 해결 (수정안 슬라이드 6) */
.eyebrow,
.logo,
.foot-logo,
.section-title,
.page-head h1,
.hero-title,
.cat-card h3,
.detail-info h1,
.buy-guide li::before {
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}

/* 주문 완료 페이지 · 여백 리듬 + 버튼 간격 */
.order-done { max-width: 640px; }
.order-done h1 { margin-bottom: 14px; }
.order-done p { font-size: 15px; color: var(--ink-soft); line-height: 1.75; margin-bottom: 30px; }
.order-done p a { color: var(--gold-deep); }
.order-done .order-number { margin-bottom: 12px; }
.order-done .order-number strong { color: var(--gold-deep); }
.order-done-actions { display: flex; gap: 14px; flex-wrap: wrap; }

.text-danger-strong{ color:#d21f1f; }
.cash-red{ color:#96062D; font-weight:700; }
.summary-shipping-note{ margin-top:8px; font-size:13px; color:#8a7a63; }

.collection-notice{ margin:24px auto 0; padding:14px 18px; border:1px solid #e6b3b3; background:#fdf0f0; color:#c0392b; border-radius:10px; font-weight:600; text-align:center; }

.status-refund_pending{ background:#fff3e0; color:#b26a00; }
.order-cancel-box{ margin-top:24px; padding-top:20px; border-top:1px solid #eadfce; }
.order-cancel-hint{ font-size:14px; color:#8a7a63; margin-bottom:10px; }
.order-cancel-hint.refund strong{ color:#b26a00; }
.order-cancel-hint.madeorder{ padding:14px 16px; border:1px solid #e6b3b3; background:#fdf0f0; color:#c0392b; border-radius:8px; font-weight:600; line-height:1.6; }
.btn-cancel{ background:transparent; color:#c0392b; border-color:#c0392b; }
.btn-cancel:hover{ background:#c0392b; color:#fff; }
.order-flash{ margin-top:16px; padding:12px 16px; border-radius:8px; font-size:14px; }
.order-flash.ok{ background:#eef7ee; color:#2e7d32; }
.order-flash.err{ background:#fdecea; color:#c0392b; }

.soldout-badge{ display:inline-block; margin:8px 0 18px; padding:6px 14px; border-radius:6px; background:#eee; color:#777; font-weight:700; }
.product-media{ position:relative; }
.card-badges{ position:absolute; top:10px; left:10px; z-index:1; display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.card-soldout{ padding:4px 10px; border-radius:5px; background:rgba(40,40,40,.82); color:#fff; font-size:13px; font-weight:700; }
.card-best{ padding:4px 12px; border-radius:5px; background:rgba(20,20,20,.9); color:#fff; font-size:13px; font-weight:700; letter-spacing:.06em; }

/* 카드 링크 + hover 액션(찜·장바구니) */
.card-link{ display:block; color:inherit; }
.product-media .card-link{ display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.card-actions{
  position:absolute; left:0; right:0; bottom:12px; z-index:2;
  display:flex; justify-content:center; gap:10px;
  opacity:0; pointer-events:none; transform:translateY(6px);
  transition:opacity .22s ease, transform .22s ease;
}
.product-card:hover .card-actions,
.product-card:focus-within .card-actions{ opacity:1; pointer-events:auto; transform:translateY(0); }
.card-action{
  width:40px; height:40px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.94); border:1px solid var(--line);
  box-shadow:0 6px 16px -8px rgba(47,43,39,.5);
  transition:background .18s ease, border-color .18s ease;
}
.card-action svg{ width:19px; height:19px; fill:none; stroke:var(--ink); stroke-width:1.5; stroke-linejoin:round; }
.card-action:hover{ background:var(--gold-deep); border-color:var(--gold-deep); }
.card-action:hover svg{ stroke:#fff; }
.card-action-wish.is-on svg{ fill:#d21f1f; stroke:#d21f1f; }
.card-action:disabled{ opacity:.4; cursor:not-allowed; }
/* 터치 기기는 hover 가 없으므로 항상 보여준다 */
@media (hover: none){
  .card-actions{ opacity:1; pointer-events:auto; transform:none; }
}

/* 홈 베스트 상품 캐러셀 (사진+제품명만, 자동 전환) */
.best-carousel{position:relative;height:418px;max-width:900px;margin:0 auto}
.best-slide{
  position:absolute;top:0;left:50%;width:300px;
  transform:translateX(-50%) scale(.7);
  transition:transform .9s cubic-bezier(.25,.1,.25,1),opacity .9s ease;
  opacity:0;pointer-events:none;z-index:1;
  text-align:center;text-decoration:none;color:inherit;
}
.best-slide img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px;display:block;box-shadow:0 12px 34px rgba(47,43,39,.16)}
.best-slide h3{margin-top:.9rem;font-size:1.25rem;font-weight:600;color:var(--ink-soft);text-align:center}
.best-summary{margin-top:.3rem;font-size:.88rem;color:var(--ink-soft);opacity:.8;text-align:center}
.best-spec{margin-top:.4rem;font-size:.95rem;font-weight:600;color:var(--gold-deep);text-align:center;letter-spacing:.01em}
.best-spec .best-dot{color:var(--ink-soft);opacity:.55;margin:0 .35rem}
.best-slide.is-active{transform:translateX(-50%) scale(1);opacity:1;z-index:3;pointer-events:auto}
.best-slide.is-prev{transform:translateX(calc(-50% - 240px)) scale(.78);opacity:.45;z-index:2}
.best-slide.is-next{transform:translateX(calc(-50% + 240px)) scale(.78);opacity:.45;z-index:2}
.best-arrow{
  position:absolute;top:36%;transform:translateY(-50%);z-index:5;
  width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,.85);border:1px solid var(--line);color:var(--ink);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;
}
.best-arrow:hover{background:#fff;box-shadow:0 6px 18px rgba(47,43,39,.16)}
.best-arrow svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.best-arrow.prev{left:20px}
.best-arrow.next{right:20px}
.best-dots{display:flex;gap:9px;justify-content:center;margin-top:1.6rem}
.best-dots button{width:7px;height:7px;border-radius:50%;background:rgba(47,43,39,.25);border:none;padding:0;cursor:pointer;transition:all .25s ease}
.best-dots button.is-active{background:var(--gold);width:20px;border-radius:4px}
@media (max-width:680px){
  /* 2열 그리드에서 3:4 이미지는 카드 폭의 1.33배라 한 화면에 한 줄밖에 들어오지 않는다.
     정사각으로 낮추고 글자 영역도 줄여 세로 길이를 잡는다. */
  .product-grid{ gap:12px; }
  .product-media{ aspect-ratio:1/1; }
  .product-body{ padding:12px 12px 14px; }
  /* 제품명 길이에 따라 카드 높이가 들쭉날쭉해지므로 줄 수를 고정한다 */
  .product-body h3{
    font-size:14.5px; line-height:1.4;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }
  .product-body .summary{
    font-size:12px; margin-top:4px;
    display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden;
  }
  .product-body .price{ margin-top:9px; }
  .product-body .price-amount{ font-size:16px; }
  .product-body .price-arrow{ font-size:17px; }

  .best-carousel{height:360px;max-width:100%}
  .best-slide{width:220px}
  .best-slide.is-prev{transform:translateX(calc(-50% - 140px)) scale(.7);opacity:.32}
  .best-slide.is-next{transform:translateX(calc(-50% + 140px)) scale(.7);opacity:.32}
  .best-arrow{width:40px;height:40px}
  .best-arrow.prev{left:2px}
  .best-arrow.next{right:2px}
}

.option-group{ margin:20px 0; }
.option-label{ display:block; font-size:14px; color:#8a7a5f; margin-bottom:10px; font-weight:600; }
.option-label .req{ color:#d21f1f; }
.option-choices{ display:flex; flex-direction:column; gap:8px; }
.option-choice{ display:flex; align-items:center; gap:10px; padding:12px 14px; border:1px solid #ddd2bf; border-radius:8px; cursor:pointer; }
.option-choice.is-disabled{ opacity:.45; cursor:not-allowed; }
.option-choice input{ accent-color:var(--gold-deep); }
.option-section-title{ margin:26px 0 10px; font-size:15px; font-weight:700; color:var(--ink); }
.option-select{ width:100%; padding:13px 14px; border:1px solid #ddd2bf; border-radius:8px; background:var(--white); font-size:15px; color:var(--ink); font-family:inherit; }
.option-select:disabled{ background:#f4efe6; color:#b3a790; cursor:not-allowed; }
.option-group + .option-group{ margin-top:14px; }
.option-hint{ margin-top:8px; font-size:13px; color:var(--ink-soft); }
.selection-summary{ margin-top:24px; padding:18px; border:1px solid var(--line); border-radius:10px; background:#faf6ef; }
.selection-line{ font-size:14.5px; color:var(--ink); line-height:1.6; }
.selection-summary .qty-row{ margin:14px 0 10px; }
.selection-summary .qty-total{ margin-top:6px; }
.engraving-text{ width:100%; padding:12px 14px; border:1px solid #ddd2bf; border-radius:8px; font-size:14px; }
.btn-gold:disabled{ opacity:.5; cursor:not-allowed; }

/* ===== HEADER 재배치 : 로고 중앙 · 계정 우상단 · 카테고리 메가메뉴 (5안 ⑧⑨) ===== */
.site-header{ position:sticky; top:0; z-index:50; background:var(--cream); border-bottom:1px solid var(--line); }
.header-top-inner, .header-nav-inner{ width:100%; padding:0 40px; display:flex; align-items:center; }
.header-top-inner{ position:relative; justify-content:center; height:64px; }
.header-logo{ font-size:24px; letter-spacing:.04em; }
.header-account{ position:absolute; right:40px; display:flex; align-items:center; gap:18px; font-size:13px; color:var(--ink-soft); }
.header-account .account-links{ display:flex; align-items:center; gap:16px; margin-right:6px; }
.header-account a{ color:var(--ink-soft); }
.header-nav-inner{ position:relative; justify-content:center; height:52px; border-top:1px solid var(--line); gap:0; }
.mega-nav{ display:flex; gap:34px; }
.mega-item{ position:relative; }
.mega-top{ display:inline-block; padding:14px 2px; font-size:15px; color:var(--ink); }
.mega-top.is-active{ color:var(--gold-deep); }
.mega-panel{ position:absolute; top:100%; left:50%; transform:translateX(-50%); min-width:180px; background:var(--white); border:1px solid var(--line); border-radius:8px; box-shadow:0 10px 30px rgba(0,0,0,.08); padding:10px 0; display:none; }
.mega-item:hover .mega-panel, .mega-item:focus-within .mega-panel{ display:block; }
.mega-panel a{ display:block; padding:9px 18px; font-size:14px; color:var(--ink-soft); white-space:nowrap; }
.mega-panel a:hover{ background:var(--sand); }
.drawer-sub{ padding-left:16px; font-size:15.5px; color:var(--ink-soft); }
/* 좁은 화면 전용 계정 줄 (넓은 화면에서는 상단 바 우측에 같은 링크가 있다) */
.header-mobile-util{ display:none; background:var(--sand); border-bottom:1px solid var(--line); }
.header-mobile-util-inner{
  width:100%; padding:0 16px; height:32px;
  display:flex; align-items:center; justify-content:flex-end; gap:14px;
}
.header-mobile-util a, .header-mobile-util .util-logout{ font-size:12.5px; color:var(--ink-soft); }
.header-mobile-util .admin-link{ display:inline-block; padding:2px 8px; }

/* 중간 폭에서는 40px 여백이 과하다 */
@media (max-width:1279px){
  .header-top-inner, .header-nav-inner{ padding:0 24px; }
  .header-account{ right:24px; }
}

@media (max-width:959px){
  /* 계정 줄이 한 줄 더 붙는 만큼 헤더가 높아진다(검색 패널·히어로 높이 계산에 쓰인다) */
  :root{ --header-h:150px; }
  .header-mobile-util{ display:block; }
  /* 로그인하면 찜·장바구니·검색·메뉴 아이콘이 네 개가 되어 가운데 로고와 겹친다 — 로고를 왼쪽으로 붙인다 */
  .header-top-inner{ justify-content:flex-start; padding:0 16px; }
  .header-account{ right:16px; }
  /* 좁은 화면에서만 숨긴다. 미디어쿼리 밖에 두면 넓은 화면 규칙까지 덮어 아이콘이 아예 사라진다 */
  .header-account .util-mobile-hide{ display:none; }
  .header-logo{ font-size:22px; }
  /* 상단 바에서는 계정 텍스트가 중앙 로고와 겹치므로 위 계정 줄로 넘긴다. 검색·찜·장바구니 아이콘은 유지. */
  .header-account .account-links{ display:none; }
  /* 카테고리는 좁은 화면에서도 그대로 노출하고, 넘치면 옆으로 밀어 본다(햄버거 자리는 비워 둔다) */
  .header-nav-inner{ padding:0 16px; }
  .header-nav .mega-nav{
    display:flex; gap:16px;
    overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch;
  }
  .header-nav .mega-nav::-webkit-scrollbar{ display:none; }
  .mega-top{ padding:12px 0; font-size:13.5px; white-space:nowrap; }
  /* 하위 분류는 화면이 좁아 펼칠 자리가 없다 — 햄버거 메뉴에서 본다 */
  .mega-panel,
  .mega-item:hover .mega-panel,
  .mega-item:focus-within .mega-panel{ display:none; }
}

/* ===== 아기주얼리 하위분류 필터 칩 (5안 ⑤) ===== */
.type-filter{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 26px; }
.type-chip{ padding:9px 18px; border:1px solid var(--line); border-radius:999px; font-size:14px; color:var(--ink-soft); background:var(--white); transition:all .2s; }
.type-chip:hover{ border-color:var(--gold); color:var(--gold-deep); }
.type-chip.is-active{ background:var(--gold-deep); border-color:var(--gold-deep); color:#fff; }

/* 장바구니 */
.cart-empty{ padding:60px 0; text-align:center; color:var(--ink-soft); }
.cart-empty .btn{ margin-top:18px; }
.cart-account-notice{ margin-bottom:18px; padding:14px 16px; border-radius:8px; background:#fdf4e7; color:#8a6d3b; font-size:14px; }
.cart-section{ margin-bottom:30px; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.cart-section-head{ padding:14px 18px; background:#faf6ef; border-bottom:1px solid var(--line); }
.cart-section-head strong{ display:block; margin-top:4px; font-size:15px; color:var(--ink); }
.cart-line{ display:grid; grid-template-columns:84px 1fr auto; gap:16px; padding:18px; border-bottom:1px solid var(--line); }
.cart-line.is-unavailable{ opacity:.55; }
.cart-line-media img{ width:84px; aspect-ratio:3/4; object-fit:cover; border-radius:8px; display:block; }
.cart-line-cat{ font-size:12.5px; letter-spacing:.08em; color:var(--gold-deep); }
.cart-line-name{ display:block; margin-top:4px; font-size:16px; color:var(--ink); text-decoration:none; }
.cart-line-option{ margin-top:6px; font-size:13.5px; color:var(--ink-soft); line-height:1.55; }
.cart-line-warn{ margin-top:6px; font-size:13px; color:#d21f1f; }
.cart-line-side{ text-align:right; min-width:150px; }
.cart-qty-form{ display:flex; gap:8px; align-items:center; justify-content:flex-end; }
.cart-qty-label{ font-size:13px; color:var(--ink-soft); }
.cart-qty-form input{ width:64px; padding:7px 8px; border:1px solid #ddd2bf; border-radius:6px; text-align:center; font-family:inherit; }
.cart-qty-form input:focus{ outline:none; border-color:var(--gold); }
.cart-line-total{ margin-top:10px; font-size:17px; font-weight:700; color:var(--ink); }
.cart-remove{ margin-top:8px; border:0; background:none; color:var(--ink-soft); font-size:13px; text-decoration:underline; cursor:pointer; }
.cart-section-foot{ padding:18px; text-align:right; }
.cart-subtotal{ font-size:16px; color:var(--ink-soft); }
.cart-subtotal strong{ font-size:24px; color:var(--gold-deep); }
.cart-ship-note{ margin-top:4px; font-size:13px; color:var(--ink-soft); }
.cart-section-foot .btn{ margin-top:14px; }
/* 헤더 찜·장바구니 아이콘 + 개수 배지 (.icon-btn 이 position:relative) */
.icon-btn .icon-count{
  position:absolute; top:-6px; right:-8px;
  min-width:16px; height:16px; padding:0 4px;
  border-radius:999px; background:var(--gold-deep); color:#fff;
  font-size:10.5px; line-height:16px; font-weight:700; text-align:center;
  letter-spacing:0;
}
.cart-add-form{ display:contents; }
@media (max-width:640px){
  .cart-line{ grid-template-columns:64px 1fr; }
  .cart-line-media img{ width:64px; }
  .cart-line-side{ grid-column:1 / -1; text-align:left; }
  .cart-qty-form{ justify-content:flex-start; }
}
.summary-row.sub{ padding-left:16px; font-size:13.5px; color:var(--ink-soft); }

/* 플래시 안내창 (장바구니 담김 · 담기 실패) */
.flash-scrim{ position:fixed; inset:0; background:rgba(47,43,39,.42); z-index:300; }
.flash-dialog{
  position:fixed; z-index:301; left:50%; top:50%; transform:translate(-50%,-50%);
  width:calc(100% - 48px); max-width:380px;
  background:var(--white); border:1px solid var(--line); border-radius:12px;
  padding:28px 26px 22px; text-align:center;
  box-shadow:0 24px 60px -24px rgba(47,43,39,.5);
}
.flash-dialog-title{ font-size:17px; font-weight:700; color:var(--ink); line-height:1.5; }
.flash-dialog-body{ margin-top:8px; font-size:14px; color:var(--ink-soft); }
.flash-dialog-actions{ margin-top:22px; display:flex; gap:10px; justify-content:center; }
.flash-dialog-actions .btn{ flex:1; padding:12px 10px; font-size:13.5px; letter-spacing:.08em; }

/* 관심상품 등록 버튼 (상품 상세) */
.btn-wish{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  background:var(--white); color:var(--ink-soft); border-color:var(--line);
  text-transform:none; letter-spacing:.04em;
}
.btn-wish svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linejoin:round; }
.btn-wish:hover{ background:var(--sand); color:var(--ink); border-color:var(--gold); }
.btn-wish.is-on{ color:#d21f1f; border-color:#d21f1f; }
.btn-wish.is-on svg{ fill:#d21f1f; }
