/* Glory Day Craft — 모든 페이지가 같이 쓰는 디자인 */
/* ============================================================
   GLORY DAY CRAFT — Black & White
   로고의 4각 스파클과 무채색 계조(tonal ladder)를 시그니처로 사용
   ============================================================ */

:root{
  color-scheme: light only;
  --white:  #FFFFFF;
  --tint-1: #F6F5F3;
  --tint-2: #EBE9E6;
  --tint-3: #D9D6D1;
  --line:   #CFCCC7;
  --grey:   #56534F;
  --ink:    #262626;
  --black:  #0E0E0E;

  --display: "Playfair Display", Georgia, serif;
  --body:    "Karla", "Noto Sans KR", system-ui, sans-serif;
  --kr-display: "Gowun Batang", "Noto Sans KR", serif;
  --kr-body: "Noto Sans KR", system-ui, sans-serif;

  --wrap: 1140px;
  --pad: clamp(20px, 5vw, 56px);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:120px; color-scheme:light only; background:#FFFFFF;}
/* 한국어 줄바꿈 — 단어 중간에서 끊기지 않게 (예: "위 / 한" 이 되는 것을 막음) */
body.lang-ko, body.lang-ko h1, body.lang-ko h2, body.lang-ko h3, body.lang-ko h4,
body.lang-ko p, body.lang-ko li, body.lang-ko span, body.lang-ko td, body.lang-ko figcaption,
body.lang-ko .sec-title, body.lang-ko .sec-lead, body.lang-ko .hero p.lead,
body.lang-ko .pname, body.lang-ko .pdesc, body.lang-ko .sub-note, body.lang-ko .note-box,
body.lang-ko .fname, body.lang-ko .fdesc, body.lang-ko .cat-jump a, body.lang-ko .btn{
  word-break:keep-all;
  overflow-wrap:break-word;
}

body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:var(--body);
  font-size:17.5px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit;}

/* ---------- 언어 전환 ---------- */
.kr{display:none;}
body.lang-ko .kr{display:inline;}
body.lang-ko .en{display:none;}

.wrap{max-width:var(--wrap); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad);}

/* ---------- 계조 바 (시그니처) ---------- */
.ladder{display:flex; height:5px;}
.ladder i{flex:1;}
.ladder i:nth-child(1){background:var(--black);}
.ladder i:nth-child(2){background:#3A3A3A;}
.ladder i:nth-child(3){background:#6E6B67;}
.ladder i:nth-child(4){background:#A9A5A0;}
.ladder i:nth-child(5){background:var(--tint-3);}

/* ---------- 스파클 (로고 모티프) ---------- */
.spark{width:1em; height:1em; display:inline-block; vertical-align:-.1em; fill:currentColor;}

/* ---------- 공지 바 ---------- */
.announce{
  background:var(--black); color:var(--white);
  text-align:center; font-size:12px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; padding:12px 16px;
}
.announce .spark{width:.8em; height:.8em; margin:0 .8em; opacity:.65;}

/* ---------- 헤더 ---------- */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex; align-items:center; gap:20px; min-height:74px;}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none; margin-right:auto; padding-right:22px;}
.brand img.mark{height:38px; width:auto;}
.brand img.word{height:13px; width:auto;}
@media (max-width:420px){ .brand img.word{display:none;} }

.nav{display:flex; gap:26px; align-items:center;}
.nav a{
  text-decoration:none; font-size:13px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--grey);
  padding:4px 0; border-bottom:1.5px solid transparent;
  white-space:nowrap;              /* 메뉴는 절대 두 줄로 나뉘지 않게 */
}
/* 화면이 좁아지면 글자와 간격을 조금씩 줄여 한 줄을 유지 */
@media (max-width:1180px){ .brand{padding-right:12px;} .nav{gap:18px;} .nav a{font-size:12.5px; letter-spacing:.07em;} }
@media (max-width:1040px){ .brand{padding-right:6px;} .nav{gap:14px;} .nav a{font-size:12px; letter-spacing:.05em;} }
.nav a:hover{color:var(--black); border-bottom-color:var(--black);}

.lang-toggle{display:flex; border:1.5px solid var(--line); border-radius:999px; overflow:hidden; flex:none;}
.lang-toggle button{
  font-family:var(--body); font-size:12px; font-weight:700; letter-spacing:.08em;
  padding:6px 13px; border:0; background:transparent; color:var(--grey); cursor:pointer;
}
.lang-toggle button[aria-pressed="true"]{background:var(--black); color:var(--white);}

.menu-btn{display:none; border:1.5px solid var(--line); background:transparent; border-radius:10px; width:42px; height:38px; cursor:pointer; flex:none;}
.menu-btn span{display:block; width:18px; height:1.6px; background:var(--ink); margin:4px auto;}

/* ---------- 버튼 ---------- */
.btn{
  display:inline-block; text-decoration:none; cursor:pointer;
  font-family:var(--body); font-size:13.5px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  padding:15px 30px; border-radius:999px; border:1.6px solid var(--black);
  transition:transform .15s ease, background .15s ease, color .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn--solid{background:var(--black); color:var(--white);}
.btn--solid:hover{background:var(--grey); border-color:var(--grey);}
.btn--ghost{background:transparent; color:var(--black);}
.btn--ghost:hover{background:var(--black); color:var(--white);}
.btn--sm{padding:11px 22px; font-size:12px;}

/* ---------- 섹션 공통 ---------- */
.section{padding:clamp(64px, 9vw, 112px) 0;}
.section--tint{background:var(--tint-1);}
.section--dark{background:var(--black); color:var(--white);}
.eyebrow{
  font-size:11.5px; font-weight:800; letter-spacing:.24em; text-transform:uppercase;
  color:var(--grey); margin:0 0 16px; display:flex; align-items:center; gap:9px;
}
.section--dark .eyebrow{color:rgba(255,255,255,.72);}
.sec-title{
  font-family:var(--display); font-weight:500;
  font-size:clamp(31px, 4.5vw, 47px); line-height:1.16;
  letter-spacing:-.015em; margin:0 0 18px; color:var(--black);
}
.section--dark .sec-title{color:var(--white);}
body.lang-ko .sec-title{font-family:var(--kr-display); letter-spacing:-.025em;}
.sec-lead{max-width:62ch; color:var(--grey); margin:0 0 46px; font-size:17.5px;}
.section--dark .sec-lead{color:rgba(255,255,255,.76);}
body.lang-ko .sec-lead, body.lang-ko p{font-family:var(--kr-body);}

/* ---------- 히어로 ---------- */
.hero{padding:clamp(50px,7vw,92px) 0 clamp(56px,8vw,96px);}
.hero-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(32px,5vw,68px); align-items:center;}
.hero-eyebrow{
  font-size:11.5px; font-weight:800; letter-spacing:.22em; text-transform:uppercase;
  color:var(--grey); margin:0 0 24px;
}
.hero h1{
  font-family:var(--display);
  font-size:clamp(42px, 7.4vw, 80px);
  line-height:1.03; letter-spacing:-.03em; font-weight:500;
  margin:0 0 26px; color:var(--black);
}
.hero h1 em{font-style:italic; font-weight:400; display:block; color:var(--grey);}
/* 한글 히어로 제목 — "당신의 빛나는 날을 위한" 이 한 줄에 들어가도록 크기를 맞춤 */
body.lang-ko .hero h1{font-family:var(--kr-display); font-size:clamp(29px,4.2vw,50px); line-height:1.34; letter-spacing:-.035em;}
.hero p.lead{font-size:clamp(17px,1.6vw,19.5px); color:var(--grey); max-width:45ch; margin:0 0 16px;}
.signature-line{
  font-family:var(--display); font-style:italic; font-size:20px;
  color:var(--black); margin:0 0 34px;
}
.hero-actions{display:flex; gap:12px; flex-wrap:wrap;}

.hero-art{position:relative;}
.hero-art .photo{aspect-ratio:4/5; border-radius:24px;}

/* 히어로 슬라이드쇼 — 사진 두 장이 부드럽게 교차 */
.hero-slides{position:relative;}
.hero-slides img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transition:opacity 1.1s ease;
}
.hero-slides img.is-active{opacity:1;}
.hero-dots{
  position:absolute; left:50%; bottom:16px; transform:translateX(-50%);
  display:flex; gap:8px; z-index:2;
  padding:7px 11px; border-radius:999px;
  background:rgba(255,255,255,.72); backdrop-filter:blur(6px);
}
.hero-dots button{
  width:7px; height:7px; padding:0; border:0; border-radius:50%;
  background:rgba(0,0,0,.24); cursor:pointer; transition:background .3s ease, transform .3s ease;
}
.hero-dots button[aria-current="true"]{background:var(--black); transform:scale(1.3);}
.hero-dots button:hover{background:var(--grey);}
@media (prefers-reduced-motion:reduce){
  .hero-slides img{transition:none;}
}

/* 카테고리 바로가기 칩 — 컬렉션 맨 위 */
.cat-jump{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 32px;}
.cat-jump a{
  border:1.5px solid var(--line); border-radius:999px;
  padding:9px 16px; font-size:14px; font-weight:700; color:var(--black);
  text-decoration:none; white-space:nowrap; transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.cat-jump a:hover, .cat-jump a:focus-visible{background:var(--black); border-color:var(--black); color:var(--white);}
@media (max-width:760px){
  .cat-jump{gap:7px; margin-bottom:26px;}
  .cat-jump a{padding:8px 13px; font-size:13px;}
}

/* 맨 위로 — 스크롤을 내려야 나타남 */
.to-top{
  position:fixed; right:18px; bottom:18px; z-index:60;
  width:44px; height:44px; border-radius:50%; border:1.5px solid var(--line);
  background:rgba(255,255,255,.9); backdrop-filter:blur(6px);
  color:var(--black); font-size:17px; line-height:1; cursor:pointer;
  display:grid; place-items:center;
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .25s ease, transform .25s ease, visibility .25s;
}
.to-top.is-on{opacity:1; visibility:visible; transform:none;}
.to-top:hover{background:var(--black); color:var(--white); border-color:var(--black);}

/* 한 칸 안에서 색상 변형을 넘겨보는 사진 — 종이꽃 토퍼 등 */
.swap img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transition:opacity .35s ease;
}
.swap img.is-active{opacity:1;}
.swap-dots{
  position:absolute; left:50%; bottom:9px; transform:translateX(-50%);
  display:flex; gap:6px; z-index:2;
  padding:5px 9px; border-radius:999px;
  background:rgba(255,255,255,.78); backdrop-filter:blur(5px);
}
.swap-dots button{
  width:6px; height:6px; padding:0; border:0; border-radius:50%;
  background:rgba(0,0,0,.26); cursor:pointer; transition:background .25s ease, transform .25s ease;
}
.swap-dots button[aria-current="true"]{background:var(--black); transform:scale(1.35);}
.swap-dots button:hover{background:var(--grey);}
@media (prefers-reduced-motion:reduce){ .swap img{transition:none;} }

/* ---------- 예약 안내 ---------- */
.booking{
  border:1.6px solid var(--line); border-radius:20px;
  padding:24px 28px; display:flex; gap:18px; align-items:flex-start; margin-top:46px;
}
.booking .spark{flex:none; width:20px; height:20px; margin-top:6px; color:var(--black);}
.booking h3{margin:0 0 5px; font-family:var(--display); font-size:20px; font-weight:600; color:var(--black);}
body.lang-ko .booking h3{font-family:var(--kr-display);}
.booking p{margin:0; color:var(--grey); font-size:16px;}

/* ---------- 카드 ---------- */
.cards{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.card{
  background:var(--white); border:1.6px solid var(--line);
  border-radius:20px; overflow:hidden; display:flex; flex-direction:column;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card{text-decoration:none; color:inherit;}
.card:hover{transform:translateY(-4px); border-color:var(--black); box-shadow:0 14px 34px rgba(0,0,0,.10);}
.price{display:flex; align-items:baseline; justify-content:space-between; gap:12px;}
.price .more{
  font-family:var(--body); font-size:11px; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; color:var(--grey); white-space:nowrap;
}
.price .more::after{content:" \2192";}
.card:hover .price .more{color:var(--black);}
details:target > summary h3{text-decoration:underline; text-underline-offset:5px;}

/* 사진 자리 — 여기에 <img>를 넣으세요 */
.photo{
  aspect-ratio:4/5; position:relative; overflow:hidden;
  background:
    repeating-linear-gradient(135deg, rgba(0,0,0,.028) 0 2px, transparent 2px 9px),
    linear-gradient(150deg, var(--tint-2), var(--tint-3));
}
.photo img{width:100%; height:100%; object-fit:cover;}
.photo::after{
  content:"PHOTO"; position:absolute; right:11px; bottom:9px;
  font-size:9px; letter-spacing:.2em; font-weight:800; color:rgba(0,0,0,.26);
}
.photo:has(img)::after{display:none;}
.ph-deep{background:repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 2px, transparent 2px 9px), linear-gradient(150deg,#4A4744,#25231F);}
.ph-deep::after{color:rgba(255,255,255,.32);}
.ph-mid{background:repeating-linear-gradient(135deg, rgba(0,0,0,.03) 0 2px, transparent 2px 9px), linear-gradient(150deg,#C6C2BC,#9E9A94);}
.ph-pale{background:repeating-linear-gradient(135deg, rgba(0,0,0,.025) 0 2px, transparent 2px 9px), linear-gradient(150deg,#FAF9F7,#E4E1DC);}

.card-body{padding:20px 22px 24px; display:flex; flex-direction:column; gap:9px; flex:1;}
.card h3{margin:0; font-family:var(--display); font-size:21px; font-weight:600; line-height:1.25; color:var(--black);}
body.lang-ko .card h3{font-family:var(--kr-display);}
.card p{margin:0; font-size:15.5px; color:var(--grey); line-height:1.62;}
.price{margin-top:auto; padding-top:12px; font-family:var(--display); font-size:21px; font-weight:600; color:var(--black);}
.tag{
  align-self:flex-start; font-size:10.5px; font-weight:800;
  letter-spacing:.15em; text-transform:uppercase; padding:5px 11px; border-radius:999px;
}
.tag--solid{background:var(--black); color:var(--white);}
.tag--outline{border:1.4px solid var(--black); color:var(--black);}
.tag--grey{background:var(--tint-3); color:var(--ink);}

/* ---------- 시그니처 피처 ---------- */
.feature{display:grid; grid-template-columns:1fr 1fr; border-radius:26px; overflow:hidden; border:1.6px solid var(--line);}
.feature-art{min-height:400px; position:relative;}
.felt-grid{display:grid; grid-template-columns:1fr 1fr; height:100%; min-height:400px;}
.felt-grid img{width:100%; height:100%; object-fit:cover; display:block;}
.feature-text{padding:clamp(30px,4vw,54px); display:flex; flex-direction:column; justify-content:center; gap:15px;}
.feature-text h3{margin:0; font-family:var(--display); font-size:clamp(27px,3.1vw,35px); font-weight:500; line-height:1.2; color:var(--black);}
body.lang-ko .feature-text h3{font-family:var(--kr-display);}
.feature-text p{margin:0; color:var(--grey);}

/* ---------- 주문 절차 ---------- */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.step{padding-top:22px; border-top:2.5px solid var(--black);}
.step .num{font-family:var(--display); font-size:14px; font-weight:700; letter-spacing:.16em; color:var(--grey); display:block; margin-bottom:10px;}
.step h3{margin:0 0 9px; font-family:var(--display); font-size:22px; font-weight:600; color:var(--black);}
body.lang-ko .step h3{font-family:var(--kr-display);}
.step p{margin:0; color:var(--grey); font-size:16px;}

/* ---------- 컬렉션 아코디언 ---------- */
.acc{border-top:1.6px solid var(--line);}
.acc details{border-bottom:1.6px solid var(--line);}
.acc summary{list-style:none; cursor:pointer; padding:27px 46px 27px 0; position:relative; display:flex; align-items:baseline; gap:16px; flex-wrap:wrap;}
.acc summary::-webkit-details-marker{display:none;}
.acc summary h3{margin:0; font-family:var(--display); font-size:clamp(23px,2.8vw,30px); font-weight:500; color:var(--black);}
body.lang-ko .acc summary h3{font-family:var(--kr-display);}
.acc summary .count{font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--grey); font-weight:700;}
.acc summary::after{content:"+"; position:absolute; right:4px; top:25px; font-size:28px; line-height:1; color:var(--black); font-weight:300;}
.acc details[open] summary::after{content:"–";}
.acc summary:hover h3{text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1.5px;}
.acc-body{padding:2px 0 44px;}
.acc-intro{color:var(--grey); max-width:68ch; margin:0 0 30px;}

.sub{margin:36px 0 14px; font-family:var(--display); font-size:20px; font-weight:700; color:var(--black); display:flex; align-items:center; gap:9px; flex-wrap:wrap;}
body.lang-ko .sub{font-family:var(--kr-display);}
.sub .spark{width:14px; height:14px; color:var(--grey);}
.sub:first-child{margin-top:0;}
.sub-note{font-size:15.5px; color:var(--grey); margin:0 0 18px; max-width:64ch;}

.plist{list-style:none; margin:0; padding:0; border-top:1.5px solid var(--black);}
.plist li{display:grid; grid-template-columns:1fr auto; gap:8px 24px; padding:16px 0; border-bottom:1px solid var(--line); align-items:baseline;}
.pname{font-weight:700; font-size:17px; color:var(--black);}
.badge-inline{
  font-size:9.5px; font-weight:800; letter-spacing:.13em; text-transform:uppercase;
  padding:3px 9px; border-radius:999px; margin-left:9px; vertical-align:2px;
  background:var(--black); color:var(--white);
}
.badge-inline.outline{background:transparent; border:1.3px solid var(--black); color:var(--black);}
.badge-inline.grey{background:var(--tint-3); color:var(--ink);}
.pprice{font-family:var(--display); font-weight:600; font-size:18px; white-space:nowrap; text-align:right; color:var(--black);}
.pprice.quote{font-family:var(--body); font-size:12.5px; font-weight:800; letter-spacing:.11em; text-transform:uppercase;}
.pdesc{grid-column:1/-1; margin:3px 0 0; font-size:15.5px; color:var(--grey); line-height:1.62;}

.mini-table{width:100%; border-collapse:collapse; margin:14px 0 4px; font-size:16px;}
.mini-table th{text-align:left; font-size:10.5px; letter-spacing:.15em; text-transform:uppercase; color:var(--grey); font-weight:800; padding:0 12px 9px 0; border-bottom:1.5px solid var(--black);}
.mini-table td{padding:11px 12px 11px 0; border-bottom:1px solid var(--line);}
.mini-table td:last-child, .mini-table th:last-child{text-align:right; padding-right:0;}
.mini-table td:last-child{font-family:var(--display); font-weight:600; color:var(--black);}

.lang-grid,.pgrid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:6px 0 22px;}
.pgrid.c2{grid-template-columns:repeat(2,1fr);}
.pgrid.c3{grid-template-columns:repeat(3,1fr);}
.lang-item figure,.pitem figure{margin:0;}
.lang-item .photo,.pitem .photo{aspect-ratio:4/5; border-radius:14px; border:1.5px solid var(--line);}
.lang-item figcaption,.pitem figcaption{margin-top:10px; font-size:13.5px; font-weight:700; color:var(--black); line-height:1.4;}
.lang-item .sc,.pitem .sc{display:block; font-size:12px; font-weight:600; color:var(--grey); letter-spacing:.02em;}
@media (max-width:760px){ .lang-grid,.pgrid,.pgrid.c3{grid-template-columns:repeat(2,1fr); gap:14px;} }

.note-box{background:var(--tint-1); border-left:3px solid var(--black); border-radius:0 12px 12px 0; padding:16px 20px; font-size:15.5px; color:var(--grey); margin:20px 0 0;}
.section--tint .note-box{background:var(--white);}

/* ---------- 벌크 ---------- */
.bulk-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,66px); align-items:center;}
.chips{display:flex; flex-wrap:wrap; gap:9px; margin:0 0 30px; padding:0; list-style:none;}
.chips li{border:1.5px solid rgba(255,255,255,.35); border-radius:999px; padding:9px 17px; font-size:14.5px; font-weight:600; color:var(--white);}

/* ---------- 안내 ---------- */
.notes-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:15px 44px;}
.notes-grid p{margin:0; padding-left:24px; position:relative; font-size:16px; color:var(--grey);}
.notes-grid p::before{content:""; position:absolute; left:0; top:12px; width:8px; height:8px; background:var(--black); transform:rotate(45deg);}

/* ---------- 최종 CTA ---------- */
.cta{text-align:center;}
.cta .logo-mark{height:76px; margin:0 auto 28px;}
.cta h2{font-family:var(--display); font-weight:500; margin:0 0 14px; font-size:clamp(31px,4.7vw,52px); line-height:1.14; letter-spacing:-.02em; color:var(--white);}
body.lang-ko .cta h2{font-family:var(--kr-display);}
.cta p{color:rgba(255,255,255,.76); max-width:50ch; margin:0 auto 36px;}
.cta .btn--solid{background:var(--white); color:var(--black); border-color:var(--white);}
.cta .btn--solid:hover{background:var(--tint-3); border-color:var(--tint-3);}
.cta .btn--ghost{color:var(--white); border-color:rgba(255,255,255,.45);}
.cta .btn--ghost:hover{background:var(--white); color:var(--black);}

.formgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:6px 0 30px; text-align:left;}
.formgrid a{
  display:block; text-decoration:none; padding:20px 22px; border-radius:18px;
  border:1.5px solid rgba(255,255,255,.3); color:var(--white);
  transition:background .15s ease, border-color .15s ease, transform .15s ease;
}
.formgrid a:hover{background:var(--white); color:var(--black); border-color:var(--white); transform:translateY(-3px);}
.formgrid .fname{display:block; font-family:var(--display); font-size:19px; font-weight:600; line-height:1.25; margin-bottom:6px;}
.formgrid .fdesc{display:block; font-size:14px; opacity:.72; line-height:1.5;}
.formgrid a:hover .fdesc{opacity:.7;}
@media (max-width:900px){ .formgrid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:620px){ .formgrid{grid-template-columns:1fr;} }

/* ---------- 푸터 ---------- */
.site-footer{background:var(--black); color:rgba(255,255,255,.7); padding:54px 0 42px; font-size:15px; border-top:1px solid rgba(255,255,255,.14);}
.foot-grid{display:flex; gap:30px; flex-wrap:wrap; justify-content:space-between; align-items:flex-start;}
.foot-grid img.word{height:14px; width:auto; margin-bottom:12px;}
.foot-links{display:flex; gap:22px; flex-wrap:wrap;}
.foot-links a{color:var(--white); text-decoration:none; border-bottom:1px solid rgba(255,255,255,.35); padding-bottom:2px;}
.foot-links a:hover{border-bottom-color:var(--white);}
.copyright{margin-top:38px; padding-top:22px; border-top:1px solid rgba(255,255,255,.16); font-size:13.5px; opacity:.62;}

/* ---------- 반응형 ---------- */
@media (max-width:960px){
  .cards{grid-template-columns:repeat(2,1fr);}
  .hero-grid{grid-template-columns:1fr;}
  .hero-art{max-width:420px; margin-inline:auto;}
  .feature{grid-template-columns:1fr;}
  .feature-art{min-height:270px;}
  .bulk-grid{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr; gap:22px;}
  .notes-grid{grid-template-columns:1fr;}
}
@media (max-width:760px){
  html{scroll-padding-top:100px;}
  .menu-btn{display:block;}
  .nav{display:none; position:absolute; top:100%; left:0; right:0; background:var(--white); border-bottom:1.6px solid var(--line); flex-direction:column; align-items:flex-start; gap:0; padding:8px var(--pad) 18px;}
  .nav.open{display:flex;}
  .nav a{padding:14px 0; width:100%; border-bottom:1px solid var(--line);}
  .header-inner{position:relative;}
  .cards{grid-template-columns:1fr;}
  .plist li{grid-template-columns:1fr;}
  .pprice{text-align:left;}
  .btn{width:100%; text-align:center;}
  .btn--sm{width:auto;}
  .hero-actions{flex-direction:column;}
}
:focus-visible{outline:2.5px solid var(--black); outline-offset:3px; border-radius:4px;}
@media (prefers-reduced-motion:reduce){*{animation:none !important; transition:none !important;}}
/* 브라우저 자동 다크모드 방지 */
@media (forced-colors:none){ html,body{background:#FFFFFF; color:#262626;} }
@media (prefers-color-scheme:dark){
  html,body{background:#FFFFFF !important; color:#262626 !important;}
  .site-header{background:rgba(255,255,255,.96) !important;}
  .section--tint{background:#F6F5F3 !important;}
  .card,.nav{background:#FFFFFF !important;}
  .section--dark,.announce,.site-footer{background:#0E0E0E !important;}
}

/* ── 후기 ── */
.rev-note{border:1.6px dashed #C0392B; color:#C0392B; padding:14px 18px; font-size:14px; line-height:1.6; margin-top:30px; border-radius:2px;}
.rev-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:40px; align-items:start;}
@media (max-width:900px){ .rev-grid{grid-template-columns:repeat(2,1fr); gap:18px;} }
@media (max-width:560px){ .rev-grid{grid-template-columns:1fr;} }
.rev{background:var(--white); border:1.4px solid var(--line); padding-bottom:26px; display:flex; flex-direction:column;}
.rev--text{padding-top:28px;}
.rev .rev-photo{aspect-ratio:4/5; overflow:hidden; margin-bottom:24px; background:var(--tint-2);}
.rev .rev-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.rev-body{padding:0 24px;}
.rev-body .spark{width:12px; height:12px; fill:var(--ink); opacity:.45; display:block; margin-bottom:13px;}
.rev blockquote{margin:0; font-size:15.5px; line-height:1.74; color:var(--ink); font-style:normal;}
body.lang-ko .rev blockquote{font-family:var(--kr-body); font-size:15px; line-height:1.8;}
.rev cite{display:block; margin-top:17px; font-style:normal; font-size:12px; letter-spacing:.09em; text-transform:uppercase; color:var(--grey);}
body.lang-ko .rev cite{letter-spacing:.02em; text-transform:none; font-size:13px;}

/* ============================================================
   행사별 구성 (2026년 10월)
   홈 → 행사 페이지 → 제품 카드 → 누르면 상세 창
   ============================================================ */

/* ---------- 헤더 ---------- */
.nav a[aria-current="page"]{color:var(--black); border-bottom-color:var(--black);}
.nav a.nav-sub{display:none;}                        /* 전체 제품 · 주문 방법 · 소개 — 폰 메뉴에만 */
.head-order{
  flex:none; text-decoration:none; white-space:nowrap;
  font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:var(--white); background:var(--black); border:1.5px solid var(--black);
  padding:8px 16px; border-radius:999px;
}
.head-order:hover{background:var(--grey); border-color:var(--grey);}
body.lang-ko .head-order{letter-spacing:.02em; font-size:13px;}
@media (max-width:1240px){ .brand img.word{display:none;} }
@media (max-width:760px){
  .header-inner{gap:10px;}
  .head-order{padding:7px 13px;}
  .nav a.nav-sub{display:block; font-size:12px; color:var(--grey); border-bottom:0; padding:10px 0;}
  .nav a.nav-sub:first-of-type{margin-top:8px;}
  .lang-toggle button{padding:6px 10px;}
}
@media (max-width:380px){ .head-order{display:none;} }

/* ---------- 페이지 첫 부분 ---------- */
.page-top{padding-top:clamp(28px,4.5vw,56px);}
h1.sec-title{font-size:clamp(32px,4.6vw,50px);}
.text-link{font-weight:700; color:var(--black); text-decoration:none; border-bottom:1.5px solid var(--black); padding-bottom:2px;}

/* 행사 칩 — 모든 행사 페이지 맨 위. 폰에서는 한 줄로 옆으로 밀기 */
.occ-chips{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 30px;}
.occ-chips a{
  border:1.5px solid var(--line); border-radius:999px; padding:8px 15px;
  font-size:13.5px; font-weight:700; color:var(--black); text-decoration:none; white-space:nowrap;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.occ-chips a:hover{border-color:var(--black);}
.occ-chips a[aria-current="page"]{background:var(--black); border-color:var(--black); color:var(--white);}
@media (max-width:760px){
  .occ-chips{flex-wrap:nowrap; overflow-x:auto; margin:0 calc(var(--pad) * -1) 22px; padding:2px var(--pad) 4px; scrollbar-width:none;}
  .occ-chips::-webkit-scrollbar{display:none;}
  .occ-chips a{flex:none; font-size:13px; padding:7px 13px;}
}

/* 이 페이지 바로가기 */
.jump{display:flex; flex-wrap:wrap; gap:6px 22px; padding:14px 0; margin:-14px 0 8px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.jump a{font-size:14.5px; font-weight:700; color:var(--grey); text-decoration:none;}
.jump a:hover{color:var(--black);}
.jump a::after{content:" ↓"; font-weight:400;}

/* ---------- 제품 묶음 ---------- */
.pgroup{padding-top:44px; scroll-margin-top:96px;}
.group-title{display:flex; align-items:center; gap:10px; margin:0 0 20px; font-family:var(--display); font-weight:500; font-size:clamp(23px,2.6vw,28px); color:var(--black);}
body.lang-ko .group-title{font-family:var(--kr-display);}
.group-title .spark{width:15px; height:15px; color:var(--grey);}
.group-count{font-family:var(--body); font-size:12px; font-weight:800; color:var(--grey); border:1.3px solid var(--line); border-radius:999px; padding:1px 9px;}
.pgroup .note-box{margin-top:0;}

/* ---------- 제품 카드 ---------- */
.pgrid-cards{display:grid; grid-template-columns:repeat(4,1fr); gap:28px 22px;}
@media (max-width:1000px){ .pgrid-cards{grid-template-columns:repeat(3,1fr);} }
@media (max-width:760px){ .pgrid-cards{grid-template-columns:repeat(2,1fr); gap:22px 12px;} }
.pcard{display:flex; flex-direction:column; gap:4px; text-decoration:none; color:inherit; cursor:pointer;}
.pc-art{position:relative; margin-bottom:8px;}
.pc-art .photo{border-radius:16px; transition:transform .2s ease;}
.pcard:hover .pc-art .photo{transform:translateY(-3px);}
.pc-count{
  position:absolute; right:9px; top:9px; z-index:2;
  display:flex; align-items:center; gap:5px;
  font-size:11px; font-weight:800; color:var(--black);
  background:rgba(255,255,255,.88); backdrop-filter:blur(4px);
  padding:3px 8px 3px 7px; border-radius:999px;
}
.pc-count::before{content:""; width:8px; height:8px; border:1.4px solid currentColor; border-radius:2px; box-shadow:2px -2px 0 -0.5px rgba(255,255,255,.88), 2px -2px 0 .9px currentColor;}
.pc-name{font-weight:700; font-size:16.5px; line-height:1.35; color:var(--black);}
.pc-price{font-family:var(--display); font-weight:600; font-size:17px; color:var(--black);}
.pc-desc{font-size:14.5px; color:var(--grey); line-height:1.55; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.pcard:hover .pc-name{text-decoration:underline; text-underline-offset:4px;}
@media (max-width:760px){
  .pc-name{font-size:15px;}
  .pc-price{font-size:15.5px;}
  .pc-desc{display:none;}
  .pc-art .photo{border-radius:12px;}
}
.photo--text{background:var(--black); display:grid; place-items:center;}
.photo--text::after{display:none;}
.photo--text .spark{width:44px; height:44px; color:var(--white); opacity:.9;}

/* ---------- 홈: 행사 타일 ---------- */
.occ-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.occ{display:flex; flex-direction:column; text-decoration:none; color:inherit; background:var(--white); border:1.5px solid var(--line); border-radius:20px; overflow:hidden; transition:border-color .18s ease, transform .18s ease;}
.occ:hover{border-color:var(--black); transform:translateY(-3px);}
.occ-art{aspect-ratio:4/3; overflow:hidden; background:var(--tint-2);}
.occ-art img{width:100%; height:100%; object-fit:cover;}
.occ-text{width:100%; height:100%; background:var(--black); display:grid; place-items:center;}
.occ-text .spark{width:46px; height:46px; color:var(--white);}
.occ-body{padding:16px 18px 18px;}
.occ h3{margin:0 0 4px; font-family:var(--display); font-weight:600; font-size:20px; line-height:1.25; color:var(--black);}
body.lang-ko .occ h3{font-family:var(--kr-display);}
.occ p{margin:0; font-size:14.5px; color:var(--grey); line-height:1.55;}
.occ h3::after{content:" →"; font-family:var(--body); font-weight:400;}
@media (max-width:760px){
  .occ-grid{grid-template-columns:repeat(2,1fr); gap:12px;}
  .occ{border-radius:14px;}
  .occ-art{aspect-ratio:1/1;}
  .occ-body{padding:11px 12px 13px;}
  .occ h3{font-size:15.5px;}
  .occ h3::after{content:"";}
  .occ p{display:none;}
}

/* ---------- 제품 상세 창 ---------- */
html.pd-lock{overflow:hidden;}
dialog.pd{
  padding:0; border:0; background:var(--white); color:var(--ink);
  width:min(1020px, calc(100vw - 48px)); max-width:none; max-height:calc(100dvh - 48px);
  border-radius:22px; overflow:auto; overscroll-behavior:contain;
  box-shadow:0 30px 80px rgba(0,0,0,.25);
}
dialog.pd::backdrop{background:rgba(14,14,14,.55);}
dialog.pd--wide{width:min(860px, calc(100vw - 48px));}
.pd-bar{position:sticky; top:0; z-index:5; background:rgba(255,255,255,.96); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); padding:10px 18px;}
.pd-close{font-family:var(--body); font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--black); background:none; border:0; padding:8px 4px; cursor:pointer;}
body.lang-ko .pd-close{letter-spacing:.02em; font-size:14px;}
.pd-body{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:36px; padding:28px 32px 40px;}
.pd--wide .pd-body{grid-template-columns:minmax(0,1fr);}
.pd-media{position:sticky; top:76px; align-self:start;}
.pd-gallery{margin:0;}
.pd-gallery .photo{border-radius:16px;}
.pd-gallery figcaption{margin-top:10px; font-size:13.5px; font-weight:700; color:var(--grey);}
.pd-gallery .sc{display:block;}
.pd-title{margin:0 0 6px; font-family:var(--display); font-weight:500; font-size:clamp(27px,3vw,34px); line-height:1.18; color:var(--black);}
body.lang-ko .pd-title{font-family:var(--kr-display);}
.pd-price{margin:0 0 12px; font-family:var(--display); font-weight:600; font-size:22px; color:var(--black);}
.pd-lead{margin:0 0 20px; color:var(--grey); font-size:16.5px;}
.pd-actions{display:flex; gap:10px; flex-wrap:wrap; margin:0 0 30px;}
.pd-details{border-top:1.5px solid var(--black); padding-top:22px;}
.pd-details > :first-child{margin-top:0;}
.pd-details .sub{margin-top:30px; font-size:18px;}
.pd-details .pgrid{grid-template-columns:repeat(2,1fr);}
.pd--wide .pd-details .pgrid, .pd--wide .pd-details .pgrid.c3{grid-template-columns:repeat(3,1fr);}
.pd-details .pgrid.c2{max-width:none !important;}
.pd-details .plist li{padding:13px 0;}
.pd-details .pname{font-size:16px;}
@media (max-width:760px){
  dialog.pd, dialog.pd--wide{width:100vw; height:100dvh; max-height:100dvh; border-radius:0; margin:0;}
  .pd-bar{padding:8px max(16px, env(safe-area-inset-left, 0px));}
  .pd-body{grid-template-columns:minmax(0,1fr); gap:20px; padding:16px var(--pad) 40px;}
  .pd-media{position:static;}
  .pd-gallery .photo{max-width:440px; margin:0 auto;}
  .pd-actions .btn{flex:1; text-align:center;}
  .pd--wide .pd-details .pgrid, .pd--wide .pd-details .pgrid.c3, .pd-details .pgrid{grid-template-columns:repeat(2,1fr);}
}

/* ---------- 맨 아래 주문 띠 ---------- */
.order-band{background:var(--black); color:var(--white); padding:clamp(44px,6vw,64px) 0;}
.order-band-inner{display:flex; align-items:center; justify-content:space-between; gap:24px 40px; flex-wrap:wrap;}
.order-band h2{font-family:var(--display); font-weight:500; font-size:clamp(26px,3.4vw,36px); margin:0 0 8px; color:var(--white);}
body.lang-ko .order-band h2{font-family:var(--kr-display);}
.order-band p{margin:0; color:rgba(255,255,255,.74); max-width:52ch;}
.order-band-actions{display:flex; gap:12px; flex-wrap:wrap;}
.order-band .btn--solid{background:var(--white); color:var(--black); border-color:var(--white);}
.order-band .btn--solid:hover{background:var(--tint-3); border-color:var(--tint-3);}
.order-band .btn--ghost{color:var(--white); border-color:rgba(255,255,255,.45);}
.order-band .btn--ghost:hover{background:var(--white); color:var(--black);}
@media (max-width:760px){ .order-band-actions{width:100%; flex-direction:column;} }
@media (prefers-color-scheme:dark){
  .order-band{background:#0E0E0E !important;}
  dialog.pd,.occ{background:#FFFFFF !important;}
}

/* 폰에서 히어로 사진이 0px로 접혀 안 보이던 문제 수정 (예전 사이트부터 있던 문제) */
@media (max-width:960px){ .hero-art{width:100%;} }

/* 홈 "전체 제품 보기" 타일 — 제품 사진 4장 모음 */
.occ-collage{display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:2px; width:100%; height:100%; background:var(--white);}
.occ-collage img{width:100%; height:100%; object-fit:cover; min-height:0;}

/* ---------- 추천 구성 ---------- */
.sets{display:grid; grid-template-columns:repeat(2,1fr); gap:16px;}
@media (max-width:760px){ .sets{grid-template-columns:1fr; gap:12px;} }
.set{border:1.5px solid var(--line); border-radius:18px; padding:20px 22px; background:var(--white); display:flex; flex-direction:column;}
.set h3{margin:0 0 4px; font-family:var(--display); font-weight:600; font-size:20px; color:var(--black);}
body.lang-ko .set h3{font-family:var(--kr-display);}
.set-desc{margin:0 0 12px; font-size:14.5px; color:var(--grey);}
.set ul{list-style:none; margin:0; padding:0; border-top:1px solid var(--line);}
.set li{display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--line); font-size:15px;}
.set li a{color:var(--black); font-weight:600; text-decoration:none; border-bottom:1px solid var(--line);}
.set li a:hover{border-bottom-color:var(--black);}
.set li span{font-variant-numeric:tabular-nums; color:var(--grey); white-space:nowrap;}
.set-total{margin:auto 0 0; padding-top:12px; display:flex; justify-content:space-between; align-items:baseline; gap:12px; font-size:13px; color:var(--grey);}
.set-total b{font-family:var(--display); font-size:22px; color:var(--black);}

/* ---------- 제작 기간 ---------- */
.pd-lead-time{display:flex; align-items:center; gap:8px; margin:-8px 0 20px; font-size:14.5px; font-weight:700; color:var(--black);}
.pd-lead-time .spark{width:13px; height:13px; color:var(--grey);}

/* ---------- 자주 묻는 질문 ---------- */
.faq{border-top:1.5px solid var(--black);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{list-style:none; cursor:pointer; padding:18px 40px 18px 0; position:relative; font-weight:700; font-size:16.5px; color:var(--black);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+"; position:absolute; right:4px; top:14px; font-size:24px; font-weight:300;}
.faq-item[open] summary::after{content:"–";}
.faq-item p{margin:0 0 20px; color:var(--grey); max-width:64ch;}

/* ---------- 시즌 줄 ---------- */
.season{border-bottom:1.5px solid var(--line);}

/* 배지가 두 줄로 쪼개지며 잘리던 문제 — 배지는 한 덩어리로, 자리가 없으면 통째로 다음 줄 */
.badge-inline{display:inline-block; white-space:nowrap; line-height:1.5;}
figcaption .badge-inline{font-size:8.5px; padding:2px 7px; margin-left:6px; vertical-align:1px;}

/* ---------- 고객님 사진 (인스타 스토리) ---------- */
.stories{display:grid; grid-template-columns:repeat(5,1fr); gap:16px;}
.story{display:flex; flex-direction:column; gap:8px; text-decoration:none; color:var(--black);}
.story img{width:100%; aspect-ratio:9/16; object-fit:cover; border-radius:16px; border:1.5px solid var(--line); transition:transform .2s ease;}
.story:hover img{transform:translateY(-3px);}
.story span{font-size:14px; font-weight:700;}
@media (max-width:900px){
  .stories{display:flex; overflow-x:auto; margin:0 calc(var(--pad) * -1); padding:2px var(--pad) 6px; scrollbar-width:none; gap:12px;}
  .stories::-webkit-scrollbar{display:none;}
  .story{flex:0 0 42%;}
  .story span{font-size:13px;}
}

/* ---------- 머그 · 텀블러 가격 비교표 ---------- */
.dw-title{display:flex; align-items:center; gap:8px; margin:36px 0 12px; font-family:var(--display); font-weight:600; font-size:20px; color:var(--black);}
body.lang-ko .dw-title{font-family:var(--kr-display);}
.dw-title .spark{width:13px; height:13px; color:var(--grey);}
.dw-compare{max-width:760px;}
.dw-compare table{width:100%; border-collapse:collapse; font-size:15px;}
.dw-compare th{text-align:left; font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--grey); padding:16px 10px 8px 0; border-bottom:1.5px solid var(--black);}
body.lang-ko .dw-compare th{letter-spacing:.04em; font-size:12.5px;}
.dw-compare th:last-child, .dw-compare td.dw-price{text-align:right; padding-right:0;}
.dw-compare td{padding:11px 10px 11px 0; border-bottom:1px solid var(--line); vertical-align:top; color:var(--black);}
.dw-compare td b{font-weight:700;}
.dw-size{display:inline-block; margin-left:8px; font-size:11.5px; font-weight:800; color:var(--grey); border:1.2px solid var(--line); border-radius:999px; padding:0 7px; vertical-align:1px;}
.dw-use{color:var(--grey); font-size:14px;}
.dw-price{font-family:var(--display); font-weight:600; white-space:nowrap; font-variant-numeric:tabular-nums;}
.dw-note{font-size:13.5px; color:var(--grey); margin:10px 0 0;}
@media (max-width:560px){
  .dw-compare table{font-size:14px;}
  .dw-size{display:block; margin:3px 0 0; width:max-content;}
  .dw-use{font-size:13px;}
}

/* 후기가 많아져서 데스크톱도 옆으로 넘겨보기 */
.stories{display:flex; overflow-x:auto; gap:16px; padding-bottom:8px; scroll-snap-type:x proximity;}
.story{flex:0 0 200px; scroll-snap-align:start;}
@media (max-width:900px){ .story{flex:0 0 42%;} }

/* ============ 홀리데이 (11~12월만, 12/19 정리 때 뺀다) ============
   레드 포인트는 홀리데이 부분에만 (Gloria 11/1). 홀리데이 페이지 디자인은 holiday.html 안 <style>에 있음 */
:root{--holly:#A3212B; --holly-deep:#7E1820; --holly-tint:#F6E8E9;}
.announce--holiday{background:var(--holly);}
.announce--holiday a{color:inherit; text-decoration:underline; text-underline-offset:4px;}
.nav a.nav-holiday{color:var(--holly);}
@media (prefers-color-scheme:dark){ .announce--holiday{background:#A3212B !important;} }
.btn--holly{background:var(--holly); border-color:var(--holly); color:var(--white);}
.btn--holly:hover{background:var(--holly-deep); border-color:var(--holly-deep);}
.season-more{margin:30px 0 0; text-align:center;}
