body {
  font-family: 'Inter', 'Nunito', Arial, sans-serif;
  background: #f4fafe;
  color: #25274d;
  margin: 0;
  padding: 0;
}

.header-hero {
  background: linear-gradient(115deg,#f4fafe 60%,#f7a6e5 100%);
  box-shadow: 0 8px 24px rgba(120,170,240,.08);
  text-align: center;
  padding: 5px 2vw 28px 2vw;
  border-bottom-left-radius: 22px;
  border-bottom-right-radius: 22px;
}
.header-hero .logo {
  font-size: 3.1em;
  color: #6ea3ff;
  margin-bottom: 10px;
  font-family: 'Nunito', Arial, sans-serif;
}
.header-hero .desc {
  font-size: 1.35em;
  color: #7981a6;
  max-width: 800px;
  margin: 5px auto 0 auto;
}
@media (max-width: 700px){
  .header-hero {padding:1px 2vw 20px 2vw;}
  .header-hero .logo {font-size:2em;}
  .header-hero .desc {font-size: 1.15em;}
}
.aff-view {
    padding: 15px 0 0 0;
}
.aff-view a {
    text-decoration:none;
}
.link-to-cat {
    color:#6492fa;
    text-decoration:none;
    margin: 0 0 0 15px;
}
.category-head {
    color:#6492fa;
    font-size:1.22em;
    text-align: center;
    font-family:'Inter';
    font-weight:700;
}
.categories-block {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin: 32px 0 15px 0;
}
.cat-tag {
  background: #e9f2fb;
  border-radius: 50px;
  padding: 8px 20px;
  font-size: 1em;
  font-weight: 500;
  color: #6ea3ff;
  border: none;
  text-decoration: none;
  box-shadow: 0 2px 10px rgba(150,200,255,.07);
  transition: background .19s, box-shadow .18s, color .17s;
  cursor: pointer;
  align-items: center;
}
.cat-tag.selected {
  background: #5fe7b2;
  color: #222;
  box-shadow: 0 8px 24px rgba(120,170,240,.08);
}
.cat-tag .cat-icon {
  font-size:1em;width:1em;height:1em;display:inline-block;
  margin-right:4px;
}
@media (max-width:700px){
  .categories-block {flex-wrap:wrap;gap:7px;}
  .cat-tag {font-size: .98em;padding:7px 14px;}
}
.desc {
    text-align: center;
    padding: 1em 2em 0 2em;
    max-width: 1080px;
    margin: auto;
}
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 2em;
  padding: 2em;
  max-width: 1080px;
  margin: auto;
}
.card {
  background: #fff;
  border-radius: 22px;
  box-shadow: 0 8px 24px rgba(120,170,240,.08);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1.5px solid #eaeaea;
  animation: fadeIn .9s;
}
.text-preview {
  top: 10px;
  max-height: 3.3em;
  overflow: hidden;
  position: relative;
  mask-image: linear-gradient(to bottom, black 70%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, black 20%, transparent 100%);
  margin-bottom: 5px;
}
@keyframes fadeIn {
  from {transform:translateY(13px);opacity:.4;}
  to {transform:translateY(0);opacity:1;}
}
.card img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  border-bottom: 1.5px solid #f2f2f2;
  border-top-left-radius: 22px;
  border-top-right-radius: 22px;
}
.card .content {
  padding: 1.1em 1.5em 1.1em 1.5em;
  flex:1;
  display:flex;
  flex-direction:column;
}
.card .title {
  font-size: 1.25em;
  font-weight: 700;
  margin-bottom: .55em;
  color: #25274d;
}
.card .title a {
  color: #25274d;
  text-decoration: none;
  transition: color .17s;
}
.card .title a:hover {
  color: #6ea3ff;
}
.card .text {
  font-size: 1em;
  color: #7981a6;
  flex:1;
}
.card a {
  margin-top: 1.2em;
  align-self: flex-end;
  color: #6ea3ff;
  text-decoration: none;
  font-weight: 600;
  font-size: .97em;
  border: none;
  outline: none;
}

.more-btn {
  margin-top: 1.2em;
  align-self: flex-end;
  color: #6ea3ff;
  background: #e9f2fb;
  border-radius: 16px;
  text-decoration: none;
  font-weight: 600;
  font-size: .97em;
  padding:9px 22px;
  box-shadow: 0 1px 12px rgba(160,200,255,.04);
  border: none;
  outline: none;
  transition: background .19s,color .18s,box-shadow .18s;  
}

.more-btn:hover {
  background: #6ea3ff;
  color: #fff;
  box-shadow: 0 2px 13px rgba(120,170,230,.11);
}

@media (max-width: 600px) {
  .grid { padding:0.8em; gap: 1em; }
  .card img { height: 120px; }
  .card .content {padding:.75em .7em;}
  .link-to-cat {
    color:#6492fa;
    text-decoration:none;
    margin: 0px;
}
}

.affirmation {
  max-width:720px;
  margin:2em auto 2.2em auto;
  background:#fff;
  padding:2.2em 2.1em 1.6em 2.1em;
  border-radius:22px;
  box-shadow:0 8px 24px rgba(120,170,240,.08);
  border:1.5px solid #eaeaea;
  animation:fadeIn .7s;
}
.affirmation img {
  width:100%;
  border-radius:18px;
  margin-bottom:16px;
}
.affirmation h2 {
  margin:0.8em 0 0.35em;
  font-size:1.32em;
  color: #25274d;
}
.affirmation .description {
  margin-top:1.3em;
  color: #7981a6;
  font-size:1.05em;
  line-height:1.7;
}
.back {
  display:block;
  text-align:center;
  color:#6ea3ff;
  font-size:1.04em;
  margin-top:1.7em;
  text-decoration:none;
  font-weight:600;
  border-radius:13px;
  padding:6px 0;
  transition:background .18s;
}
.back:hover {background:#e9f2fb;}
.category {
  margin-bottom:1em;
  font-size:1.01em;
  color:#f7a6e5;
  font-weight:600;
  letter-spacing:.2px;
}

footer {
  margin:54px auto 0 auto;
  text-align:center;
  font-size:.97em;
  color: #b5bacb;
  padding:16px 0 24px 0;
}
footer a {
  color: #6ea3ff;
  text-decoration: none;
}
footer a:hover {
  text-decoration: underline;
}
