:root {
  --d-ink: #101114;
  --d-muted: #716271;
  --d-sky: #f5e3f4;
  --d-sky-strong: #ebcbea;
  --d-line: #d8acd5;
  --d-navy: #682663;
  --d-navy-soft: #8d4389;
  --d-wrap: 1240px;
  --d-wave: clamp(72px, 7vw, 116px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body { margin: 0; overflow-x: clip; background: #fff; color: var(--d-ink); font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
button, input { font: inherit; }
.datasets-wrap { width: min(calc(100% - 48px), var(--d-wrap)); margin-inline: auto; }

.datasets-hero {
  position: relative;
  isolation: isolate;
  min-height: 700px;
  display: flex;
  align-items: center;
  padding: 145px 0 calc(92px + var(--d-wave));
  overflow: hidden;
  background: #fff;
  color: var(--d-ink);
}
.datasets-hero-inner { position: relative; z-index: 1; width: min(calc(100% - 48px), var(--d-wrap)); margin-inline: auto; text-align: center; }
.datasets-hero h1 { width: 100%; max-width: 1060px; margin: 0 auto; font-size: clamp(72px, 8.2vw, 126px); font-weight: 600; line-height: .84; letter-spacing: -.072em; text-align: center; text-wrap: balance; }
.datasets-hero p { max-width: 700px; margin: 38px auto 0; color: var(--d-muted); font-size: clamp(20px, 1.7vw, 26px); line-height: 1.4; letter-spacing: -.025em; }
.datasets-hero-actions { display: flex; justify-content: center; gap: 10px; margin-top: 40px; }
.datasets-hero-actions a { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: 0 21px; border: 1px solid var(--d-navy); border-radius: 8px; color: var(--d-navy); text-decoration: none; font-size: 14px; font-weight: 700; }
.datasets-hero-actions .primary-action { border-color: var(--d-navy); background: var(--d-navy); color: #fff; }
.datasets-hero-actions a:hover { transform: translateY(-1px); }

.datasets-catalog { position: relative; isolation: isolate; overflow: hidden; padding: 122px 0 calc(145px + var(--d-wave)); border-top: 0; background: var(--d-sky); }
.datasets-catalog > .datasets-wrap { position: relative; z-index: 1; }
.catalog-head { display: grid; grid-template-columns: 1fr 390px; gap: 75px; align-items: end; }
.catalog-head h2 { max-width: 760px; margin: 0; font-size: clamp(66px, 7.6vw, 114px); font-weight: 600; line-height: .83; letter-spacing: -.07em; }
.catalog-head > div > p { max-width: 550px; margin: 26px 0 0; color: var(--d-muted); font-size: 18px; line-height: 1.45; }
.catalog-search { display: grid; gap: 11px; }
.catalog-search input { width: 100%; padding: 15px 0; border: 0; border-bottom: 1px solid #806d82; outline: 0; background: transparent; color: var(--d-ink); font-size: 17px; }
.catalog-search input:focus { border-color: var(--d-ink); }
.catalog-search span { color: var(--d-muted); font-size: 12px; }

.family-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 55px 0 75px; padding-bottom: 28px; border-bottom: 1px solid #d7abd4; }
.family-filters button { padding: 10px 16px; border: 1px solid #d7abd4; border-radius: 999px; background: rgba(255,255,255,.55); color: #684d67; font-size: 13px; font-weight: 600; cursor: pointer; }
.family-filters button:hover, .family-filters .is-active { border-color: var(--d-navy); background: var(--d-navy); color: #fff; }

.series-section { display: grid; grid-template-columns: minmax(245px, .72fr) 1.45fr; gap: 55px; margin-top: 22px; padding: 42px; scroll-margin-top: 105px; border: 1px solid #dfbddd; border-radius: 12px; background: #fff; }
.series-section[hidden] { display: none; }
.series-section > header { position: sticky; top: 95px; align-self: start; }
.series-section > header h2 { margin: 0; font-size: clamp(42px, 4.5vw, 66px); font-weight: 600; line-height: .9; letter-spacing: -.06em; }
.series-section > header p { max-width: 390px; margin: 24px 0 0; color: var(--d-muted); font-size: 17px; line-height: 1.45; }
.model-list { border-top: 1px solid #e0d2e3; }
.model-row { min-height: 122px; display: grid; grid-template-columns: minmax(220px, .8fr) 1fr; gap: 30px; align-items: center; padding: 23px 4px; border-bottom: 1px solid #e0d2e3; }
.model-row[hidden] { display: none; }
.model-row > span { display: none; }
.model-row h3 { margin: 0; font-size: clamp(22px, 2vw, 29px); font-weight: 600; line-height: 1.06; letter-spacing: -.035em; }
.model-row p { margin: 0; color: #625964; font-size: 16px; line-height: 1.43; }
.catalog-empty { padding: 65px 0; color: var(--d-muted); text-align: center; }

.featured-series { position: relative; isolation: isolate; overflow: hidden; padding: 120px 0 calc(135px + var(--d-wave)); background: #fff; }
.featured-series > .datasets-wrap { position: relative; z-index: 1; }
.featured-series header { display: grid; grid-template-columns: 1fr .62fr; gap: 80px; align-items: end; margin-bottom: 58px; }
.featured-series header h2 { margin: 0; font-size: clamp(60px, 7vw, 104px); font-weight: 600; line-height: .84; letter-spacing: -.07em; }
.featured-series header p { max-width: 500px; margin: 0; color: var(--d-muted); font-size: 19px; line-height: 1.45; }
.featured-grid { border-top: 1px solid #ded4e0; }
.featured-grid a { min-height: 175px; display: grid; grid-template-columns: 165px minmax(280px, .9fr) minmax(300px, 1fr) auto; gap: 38px; align-items: center; padding: 28px 4px; border-bottom: 1px solid #ded4e0; color: inherit; text-decoration: none; }
.featured-grid a:hover h3 { transform: translateX(6px); }
.featured-grid span { align-self: start; padding-top: 7px; color: #a14b9c; font-size: 12px; font-weight: 700; }
.featured-grid h3 { max-width: 390px; margin: 0; font-size: clamp(29px, 2.6vw, 39px); font-weight: 600; line-height: .98; letter-spacing: -.045em; transition: transform .25s ease; }
.featured-grid p { max-width: 430px; margin: 0; color: var(--d-muted); font-size: 16px; line-height: 1.45; }
.featured-grid b { white-space: nowrap; font-size: 13px; }

.datasets-cta { margin-top: -1px; padding: 105px 0; background: var(--d-navy); color: #fff; }
.datasets-cta .datasets-wrap { display: grid; grid-template-columns: 1fr .55fr; gap: 90px; align-items: end; }
.datasets-cta h2 { margin: 0; font-size: clamp(56px, 6.3vw, 92px); font-weight: 600; line-height: .89; letter-spacing: -.065em; }
.datasets-cta p { max-width: 460px; margin: 0 0 32px; color: rgba(255,255,255,.68); font-size: 20px; line-height: 1.45; }
.datasets-cta a { min-height: 48px; display: inline-flex; align-items: center; padding: 0 20px; border-radius: 7px; background: #fff; color: var(--d-navy); text-decoration: none; font-size: 14px; font-weight: 700; }

.datasets-hero::after,
.datasets-catalog::after,
.featured-series::after {
  content: "";
  position: absolute;
  z-index: 0;
  right: 0;
  bottom: -1px;
  left: 0;
  height: var(--d-wave);
  pointer-events: none;
  background-position: center;
  background-size: 102% 100%;
  background-repeat: no-repeat;
  animation: datasets-wave-drift 16s ease-in-out infinite;
}

.datasets-cta + footer,
main + footer { margin-top: 0 !important; border-top: 0 !important; }

.datasets-hero::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='%23f5e3f4' d='M0 32C250 78 470 66 720 24C990-8 1190 92 1440 30V120H0Z'/%3E%3C/svg%3E");
}

.datasets-catalog::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0 46C238 5 474 80 724 43C984 4 1204 74 1440 25V120H0Z'/%3E%3C/svg%3E");
}

.featured-series::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='%23682663' d='M0 29C239 87 470 60 718 22C981-18 1200 93 1440 35V120H0Z'/%3E%3C/svg%3E");
}

@keyframes datasets-wave-drift {
  0%, 100% { background-position: 49% 50%; }
  50% { background-position: 51% 50%; }
}

@media (max-width: 900px) {
  .datasets-wrap { width: min(calc(100% - 36px), var(--d-wrap)); }
  .datasets-hero { min-height: 620px; padding-top: 135px; }
  .catalog-head, .featured-series header, .datasets-cta .datasets-wrap { grid-template-columns: 1fr; }
  .catalog-search { max-width: 620px; }
  .series-section { grid-template-columns: 1fr; gap: 38px; padding: 34px; }
  .series-section > header { position: static; }
  .featured-grid a { grid-template-columns: 125px 1fr; gap: 20px 30px; }
  .featured-grid p { grid-column: 2; }
  .featured-grid b { grid-column: 2; }
  .datasets-cta .datasets-wrap { gap: 55px; }
}

@media (max-width: 560px) {
  :root { --d-wave: 62px; }
  .datasets-wrap { width: calc(100% - 32px); }
  .datasets-hero { min-height: 590px; }
  .datasets-hero h1 { font-size: 66px; }
  .datasets-hero-actions { flex-direction: column; }
  .datasets-catalog, .featured-series { padding-top: 82px; padding-bottom: calc(82px + var(--d-wave)); }
  .catalog-head h2, .featured-series header h2 { font-size: 61px; }
  .family-filters { margin: 42px 0 55px; }
  .series-section { padding: 25px 20px; }
  .series-section > header h2 { font-size: 48px; }
  .model-row { grid-template-columns: 1fr; gap: 12px; padding-block: 24px; }
  .model-row h3 { font-size: 23px; }
  .model-row p { font-size: 15px; }
  .featured-grid a { grid-template-columns: 1fr; gap: 15px; padding: 27px 0; }
  .featured-grid span, .featured-grid p, .featured-grid b { grid-column: 1; }
  .datasets-cta h2 { font-size: 57px; }
}

@media (prefers-reduced-motion: reduce) {
  .datasets-hero::after,
  .datasets-catalog::after,
  .featured-series::after { animation: none; }
}
