.drift-dialog-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(30, 22, 18, .48);
  opacity: 0;
  visibility: hidden;
  transition: opacity .22s ease, visibility .22s ease;
}

.drift-dialog-backdrop.is-open { opacity: 1; visibility: visible; }

.drift-dialog {
  width: min(680px, 100%);
  max-height: min(760px, 88vh);
  overflow: hidden;
  color: #2a1d18;
  background: #f5ead4;
  border: 1px solid rgba(42, 29, 24, .2);
  box-shadow: 0 24px 70px rgba(24, 15, 10, .28);
  transform: translateY(14px) scale(.98);
  transition: transform .28s cubic-bezier(.2, .8, .2, 1);
}

.drift-dialog-backdrop.is-open .drift-dialog { transform: translateY(0) scale(1); }

.drift-dialog__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 28px 30px 20px;
  border-bottom: 1px solid rgba(42, 29, 24, .16);
}

.drift-dialog__eyebrow {
  margin: 0 0 8px;
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  opacity: .62;
}

.drift-dialog__title {
  margin: 0;
  font-size: clamp(28px, 5vw, 48px);
  line-height: .98;
  letter-spacing: -.045em;
}

.drift-dialog__close {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(42, 29, 24, .28);
  border-radius: 50%;
  color: inherit;
  background: transparent;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
}

.drift-dialog__close:hover { background: rgba(42, 29, 24, .08); }

.drift-dialog__body { max-height: calc(min(760px, 88vh) - 120px); overflow-y: auto; padding: 22px 30px 30px; }
.drift-dialog__body p { margin: 0 0 18px; line-height: 1.65; }

.drift-faq-item { border-bottom: 1px solid rgba(42, 29, 24, .16); }
.drift-faq-item summary { padding: 17px 34px 17px 0; cursor: pointer; list-style: none; font-weight: 600; position: relative; }
.drift-faq-item summary::-webkit-details-marker { display: none; }
.drift-faq-item summary::after { content: '+'; position: absolute; right: 0; top: 14px; font-size: 22px; font-weight: 300; }
.drift-faq-item[open] summary::after { content: '−'; }
.drift-faq-answer { padding: 0 0 17px; font-size: 14px; opacity: .78; }

.drift-contact-list { display: grid; gap: 10px; margin-top: 24px; }
.drift-contact-link { display: block; padding: 14px 16px; color: inherit; border: 1px solid rgba(42, 29, 24, .22); text-decoration: none; transition: background .2s ease, transform .2s ease; }
.drift-contact-link:hover { background: rgba(255,255,255,.28); transform: translateY(-2px); }
.drift-contact-muted { padding: 14px 16px; border: 1px dashed rgba(42, 29, 24, .28); font-size: 14px; opacity: .72; }

.drift-loop-form { display: grid; gap: 12px; margin-top: 24px; }
.drift-loop-form label { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; opacity: .68; }
.drift-loop-form input { width: 100%; box-sizing: border-box; padding: 14px 15px; border: 1px solid rgba(42, 29, 24, .32); border-radius: 0; color: inherit; background: rgba(255,255,255,.28); font: inherit; }
.drift-loop-form button { padding: 14px 18px; border: 0; color: #f5ead4; background: #2a1d18; cursor: pointer; font: inherit; font-weight: 600; }
.drift-loop-form button:hover { background: #4a3328; }
.drift-loop-note { margin: 8px 0 0; font-size: 12px; opacity: .65; }

@media (max-width: 560px) {
  .drift-dialog-backdrop { padding: 12px; }
  .drift-dialog__head { padding: 22px 20px 16px; }
  .drift-dialog__body { padding: 18px 20px 24px; }
}

/* 首页 Gallery 展示馆：沿用 Drift 的 cream / espresso 配色。 */
.drift-gallery-section {
  position: relative;
  z-index: 20;
  padding: clamp(64px, 10vw, 132px) 24px;
  color: #321c04;
  background: #f6e4cf;
  border-top: 1px solid rgba(50, 28, 4, .14);
}
.drift-gallery-section__inner { width: min(1180px, 100%); margin: 0 auto; }
.drift-gallery-section__header { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 34px; }
.drift-gallery-section__eyebrow { margin: 0 0 12px; font-size: 11px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; opacity: .56; }
.drift-gallery-section h2 { margin: 0; font-size: clamp(34px, 5vw, 66px); font-weight: 400; line-height: 1.03; letter-spacing: -.045em; }
.drift-gallery-section__description { max-width: 540px; margin: 16px 0 0; font-size: 15px; line-height: 1.6; opacity: .7; }
.drift-gallery-section__cta { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 12px; padding: 15px 20px; color: #f6e4cf; background: #321c04; border-radius: 999px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; transition: transform .2s ease, background .2s ease; }
.drift-gallery-section__cta:hover { background: #4a2a0b; transform: translateY(-2px); }
.drift-gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.drift-gallery-card { min-width: 0; overflow: hidden; background: #fff9f2; border: 1px solid #d9c4aa; border-radius: 18px; transition: transform .28s ease, box-shadow .28s ease; }
.drift-gallery-card:hover { transform: translateY(-5px); box-shadow: 0 16px 36px rgba(50, 28, 4, .14); }
.drift-gallery-card__media { display: grid; aspect-ratio: 1 / 1; place-items: center; overflow: hidden; color: #321c04; background: #ead4bb; text-decoration: none; }
.drift-gallery-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.drift-gallery-card:hover .drift-gallery-card__media img { transform: scale(1.05); }
.drift-gallery-card__body { display: grid; gap: 7px; padding: 17px 18px 20px; }
.drift-gallery-card__price { margin: 0; font-family: 'Instrument Serif', serif; font-size: 19px; }
.drift-gallery-card__title { overflow: hidden; color: #321c04; font-size: 14px; line-height: 1.35; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.drift-gallery-section__loading { grid-column: 1 / -1; min-height: 80px; margin: 0; padding: 36px; text-align: center; border: 1px dashed rgba(50, 28, 4, .28); opacity: .65; }
.drift-feature-product-media { display: block; cursor: pointer; }
.drift-feature-product-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease, filter .35s ease; }
.drift-feature-product-media:hover img { transform: scale(1.04); filter: saturate(1.08); }
.drift-feature-empty { display: grid; place-items: center; color: rgba(255,255,255,.7); background: rgba(0,0,0,.18); font-size: 13px; letter-spacing: .04em; text-align: center; }
@media (max-width: 760px) {
  .drift-gallery-section { padding-inline: 18px; }
  .drift-gallery-section__header { align-items: start; flex-direction: column; }
  .drift-gallery-section__cta { width: 100%; justify-content: center; }
  .drift-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
@media (max-width: 440px) { .drift-gallery-grid { grid-template-columns: 1fr; } }
