/* Tsuki Plamo — global styles (ported from the design system) */
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,500;1,600&family=Manrope:wght@400;500;600;700;800&display=swap");

* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  padding: 0;
}
body {
  background: #faf7f3;
  font-family: "Manrope", sans-serif;
  color: #1c1719;
}
::selection {
  background: #a4194f;
  color: #fff;
}
a {
  color: inherit;
  text-decoration: none;
}
input,
textarea,
button,
select {
  font-family: "Manrope", sans-serif;
}
input::placeholder,
textarea::placeholder {
  color: #b6a3aa;
}

@keyframes pulseRing {
  0% {
    box-shadow: 0 0 0 0 rgba(164, 25, 79, 0.45);
  }
  70% {
    box-shadow: 0 0 0 7px rgba(164, 25, 79, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(164, 25, 79, 0);
  }
}

::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
::-webkit-scrollbar-thumb {
  background: #e0cdd3;
  border-radius: 6px;
}

/* hover helpers — inline styles can't express :hover, so a few utility classes */
.tp-link-accent {
  transition: color 0.18s;
}
.tp-link-accent:hover {
  color: #a4194f !important;
}

/* rendered markdown (gallery detail description) — matches the site type */
.tp-md > :first-child {
  margin-top: 0;
}
.tp-md > :last-child {
  margin-bottom: 0;
}
.tp-md p {
  margin: 0 0 14px;
}
.tp-md strong {
  color: #1c1719;
  font-weight: 700;
}
.tp-md em {
  font-style: italic;
}
.tp-md a {
  color: #a4194f;
}
.tp-md ul,
.tp-md ol {
  margin: 0 0 14px;
  padding-left: 20px;
}
.tp-md li {
  margin: 4px 0;
}
.tp-md h1,
.tp-md h2,
.tp-md h3 {
  font-family: "Cormorant Garamond", serif;
  font-weight: 600;
  color: #1c1719;
  margin: 20px 0 8px;
  line-height: 1.15;
}
.tp-md blockquote {
  margin: 0 0 14px;
  padding-left: 16px;
  border-left: 2px solid #e0b5c0;
  color: #6a5560;
  font-style: italic;
}
.tp-md img {
  max-width: 100%;
  border-radius: 8px;
}
.tp-md code {
  background: #f1e6ea;
  padding: 1px 5px;
  border-radius: 4px;
  font-size: 0.9em;
}
.tp-md hr {
  border: none;
  border-top: 1px solid #ece0e4;
  margin: 18px 0;
}

.tp-btn {
  transition: all 0.2s;
}
.tp-btn-primary:hover {
  background: #82123e !important;
  transform: translateY(-1px);
}
.tp-btn-ghost:hover {
  border-color: #a4194f !important;
  color: #a4194f !important;
}
.tp-card {
  transition: box-shadow 0.25s, transform 0.25s;
}
.tp-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 38px 60px -34px rgba(28, 23, 25, 0.55) !important;
}
.tp-field {
  transition: border-color 0.15s;
}
.tp-field:focus {
  border-color: #a4194f !important;
}

.tp-burger {
  display: none;
}

@media (max-width: 880px) {
  .tp-pad {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }
  .tp-2col,
  .tp-cta {
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }
  .tp-col3,
  .tp-col4 {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 20px !important;
  }
  .tp-footer {
    grid-template-columns: 1fr 1fr !important;
    gap: 30px !important;
  }
  .tp-hero-h1 {
    font-size: 42px !important;
  }
  .tp-stats {
    flex-wrap: wrap !important;
    gap: 18px 22px !important;
  }
  .tp-desktop-nav {
    display: none !important;
  }
  .tp-desktop-only {
    display: none !important;
  }
  .tp-burger {
    display: flex !important;
  }
  .tp-sticky {
    position: static !important;
    top: auto !important;
  }
}

@media (max-width: 540px) {
  .tp-col3,
  .tp-col4 {
    grid-template-columns: 1fr !important;
  }
  .tp-footer {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .tp-hero-h1 {
    font-size: 36px !important;
  }
}
