@charset "UTF-8";
#notice-dialog {
  position:fixed;
  inset:0;
  margin:auto;
  width:min(610px,calc(100vw - 64px));
  max-width:none;
  height:fit-content;
  max-height:calc(100vh - 64px);
  max-height:calc(100dvh - 64px);
  padding:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 24px 80px #37312f33
}
#notice-dialog[open] {
  display:flex;
  flex-direction:column;
  animation:karen-notice-enter .18s ease-out both
}
#notice-dialog::backdrop {
  background:#37312f80
}
#notice-dialog .notice-dialog-toolbar {
  display:flex;
  flex:0 0 auto;
  justify-content:flex-end;
  padding:12px 16px 4px;
  background:#fff
}
#notice-dialog .dialog-close {
  position:relative;
  appearance:none;
  -webkit-appearance:none;
  float:none;
  flex:0 0 44px;
  width:44px;
  height:44px;
  min-width:44px;
  min-height:44px;
  margin:0;
  padding:0;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--brand-tint);
  box-shadow:none;
  font-size:0;
  font-weight:400;
  line-height:1;
  transition:background-color .18s ease,border-color .18s ease
}
#notice-dialog .dialog-close::before,#notice-dialog .dialog-close::after {
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:20px;
  height:1px;
  background:currentColor;
  transform:translate(-50%,-50%) rotate(45deg);
  pointer-events:none
}
#notice-dialog .dialog-close::after {
  transform:translate(-50%,-50%) rotate(-45deg)
}
#notice-dialog .dialog-close.is-pointer-focus:focus {
  outline:none
}
#notice-dialog .notice-dialog-content {
  flex:0 1 auto;
  min-height:0;
  padding:0 40px 36px;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  outline-offset:-4px
}
#notice-dialog .popup {
  max-width:100%;
  overflow-wrap:anywhere
}
#notice-dialog .popup h2 {
  font-size:28px;
  line-height:1.55
}
#notice-dialog .popup-text {
  font-size:16px;
  line-height:1.95
}
#notice-dialog .popup-image {
  max-width:100%;
  height:auto
}
@media(hover:hover) {
  #notice-dialog .dialog-close:hover {
    background:var(--brand-hover);
    border-color:var(--brand-accent)
  }
}
@media(max-width:640px) {
  #notice-dialog {
    width:calc(100vw - 32px);
    max-height:calc(100vh - 32px);
    max-height:calc(100dvh - 32px);
    border-radius:14px
  }
  #notice-dialog .notice-dialog-toolbar {
    padding:10px 12px 4px
  }
  #notice-dialog .notice-dialog-content {
    padding:0 22px 28px
  }
  #notice-dialog .popup h2 {
    font-size:25px
  }
}
@keyframes karen-notice-enter {
  from {
    opacity:0
  }
  to {
    opacity:1
  }
}
@media(prefers-reduced-motion:reduce) {
  #notice-dialog[open] {
    animation:none
  }
  #notice-dialog .dialog-close {
    transition:none
  }
}
/* ウインターセール専用。講座など、他のポップアップには適用しない。 */
#notice-dialog.notice-winter-sale {
  width:min(840px,calc(100vw - 48px));
}
#notice-dialog.notice-winter-sale .notice-dialog-content {
  padding:0 28px 28px;
}
#notice-dialog.notice-winter-sale .popup h2 {
  margin:0 0 12px;
  font-family:var(--serif);
  font-weight:500;
}
#notice-dialog.notice-winter-sale .popup-text {
  margin:0;
  line-height:1.8;
}
#notice-dialog .winter-sale-title-line {
  white-space:nowrap;
}
#notice-dialog .winter-sale-period {
  display:inline-block;
  max-width:100%;
  margin:0 0 12px;
  padding:6px 12px;
  border:1px solid #ead4dd;
  border-radius:7px;
  background:var(--eye);
  color:#963d5e;
  font-size:14px;
  font-weight:500;
}
#notice-dialog .winter-sale-intro {
  margin:0 0 20px;
  font-size:15px;
  line-height:1.8;
  white-space:pre-line;
}
#notice-dialog .winter-sale-layout {
  display:grid;
  grid-template-columns:minmax(0,280px) minmax(0,1fr);
  grid-template-areas:"poster copy";
  align-items:start;
  gap:24px;
}
#notice-dialog .winter-sale-copy {
  grid-area:copy;
  display:grid;
  gap:14px;
  min-width:0;
}
#notice-dialog .winter-sale-set {
  min-width:0;
  padding:16px;
  border:1px solid #ead4dd;
  border-radius:12px;
  background:#fff9fb;
}
#notice-dialog .winter-sale-set-label {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin:0;
  color:#963d5e;
  font-size:12px;
  font-weight:500;
  letter-spacing:.08em;
}
#notice-dialog .winter-sale-recommended {
  padding:2px 8px;
  border-radius:12px;
  background:var(--eye);
  font-size:11px;
  letter-spacing:0;
}
#notice-dialog .winter-sale-set h3 {
  margin:4px 0 8px;
  font-family:var(--serif);
  font-size:20px;
  font-weight:500;
  line-height:1.6;
}
#notice-dialog .winter-sale-audience {
  margin:0 0 10px;
  color:var(--muted);
  font-size:14px;
}
#notice-dialog .winter-sale-products {
  margin:0 0 12px;
  padding:0;
  list-style:none;
  font-size:14px;
  line-height:1.8;
}
#notice-dialog .winter-sale-products li+li {
  margin-top:3px;
}
#notice-dialog .winter-sale-products li+li::before {
  content:"＋ ";
  color:#963d5e;
}
#notice-dialog .winter-sale-regular {
  margin:0 0 2px;
  color:var(--muted);
  font-size:13px;
}
#notice-dialog .winter-sale-price {
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  margin:0;
  color:#963d5e;
  line-height:1.5;
}
#notice-dialog .winter-sale-price strong {
  font-family:var(--serif);
  font-size:30px;
  font-weight:600;
}
#notice-dialog .winter-sale-unit {
  margin-left:2px;
  font-size:17px;
}
#notice-dialog .winter-sale-tax {
  font-size:13px;
}
#notice-dialog .winter-sale-saving {
  margin:3px 0 0;
  color:#963d5e;
  font-size:13px;
}
#notice-dialog .winter-sale-contact {
  padding:16px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--brand-tint);
}
#notice-dialog .winter-sale-contact>p {
  margin:0 0 12px;
  font-size:14px;
  line-height:1.8;
}
#notice-dialog .winter-sale-contact-link {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  column-gap:.25em;
  min-height:48px;
  padding:12px 14px;
  border:1px solid #963d5e;
  border-radius:8px;
  background:#963d5e;
  color:#fff;
  font-size:14px;
  font-weight:500;
  line-height:1.7;
  text-align:center;
  text-decoration:none;
}
#notice-dialog .winter-sale-contact-link span {
  white-space:nowrap;
}
#notice-dialog .winter-sale-contact-link:hover {
  background:#80324f;
}
#notice-dialog .winter-sale-contact .winter-sale-contact-store {
  margin:8px 0 0;
  color:var(--muted);
  font-size:12px;
  text-align:center;
}
#notice-dialog .winter-sale-poster {
  position:sticky;
  top:0;
  grid-area:poster;
  min-width:0;
  margin:0;
}
#notice-dialog .winter-sale-poster-link {
  display:block;
  color:#963d5e;
  text-align:center;
}
#notice-dialog .winter-sale-poster .popup-image {
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  margin:0;
  border-radius:10px;
  object-fit:contain;
}
#notice-dialog .winter-sale-poster-caption {
  display:block;
  margin-top:8px;
  font-size:12px;
  text-decoration:underline;
  text-underline-offset:4px;
}
#notice-dialog .winter-sale-no-image .winter-sale-layout {
  grid-template-columns:minmax(0,1fr);
  grid-template-areas:"copy";
}
@media(max-width:770px) {
  #notice-dialog.notice-winter-sale {
    width:calc(100vw - 32px);
    max-height:calc(100vh - 32px);
    max-height:calc(100dvh - 32px);
  }
  #notice-dialog.notice-winter-sale .notice-dialog-content {
    padding:0 20px 24px;
  }
  #notice-dialog .winter-sale-title-brand {
    display:block;
    margin-bottom:4px;
    color:var(--muted);
    font-size:16px;
    letter-spacing:.08em;
  }
  #notice-dialog .winter-sale-layout {
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"copy" "poster";
    gap:22px;
  }
  #notice-dialog .winter-sale-poster {
    position:static;
    width:100%;
    max-width:480px;
    justify-self:center;
  }
}
