.text-main-bold {
  font-family: var(--happy-font-main);
  font-weight: var(--happy-font-weight-bold);
  letter-spacing: var(--happy-letter-spacing-wide);
  line-height: 1.2;
}

/* ==========================================================================
   Content components blocks
   ========================================================================== */
/*
 * This file contains reusable content block styles.
 * These styles will be available through Gutenberg (editors can use them).
 */
.happy-section {
  padding-block: var(--happy-container-padding);
}
.happy-section--light-blue {
  background-color: var(--happy-color-light-blue);
}

.content-row-full-width {
  width: var(--happy-width-full);
}

.content-box-wide {
  width: var(--happy-width-wide);
  margin-inline: auto;
}
.content-box-wide-rounded {
  width: var(--happy-width-wide);
  margin-inline: auto;
  border-radius: var(--happy-radius-medium);
}

.card-grid-3column {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--happy-card-grid-gap);
  margin-inline: auto;
}

.card {
  border-radius: var(--happy-card-radius);
  background: var(--happy-card-background);
  box-shadow: var(--happy-card-shadow);
}

.happy-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--happy-compact-control-gap);
  min-height: var(--happy-compact-control-height);
  padding: 0 var(--happy-compact-control-padding-inline);
  border-radius: var(--happy-radius-button-small);
  color: var(--happy-color-white);
  font-size: var(--happy-compact-control-font-size);
  font-weight: var(--happy-font-weight-bold);
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}
.happy-button:hover, .happy-button:focus {
  filter: brightness(0.96);
  text-decoration: none;
}

.whatsapp-button {
  background: var(--happy-color-red);
}
.whatsapp-button__icon {
  width: var(--happy-compact-control-icon-size);
  height: var(--happy-compact-control-icon-size);
  object-fit: contain;
}

.donation-button {
  background: var(--happy-color-orange);
}

figure.wp-block-image.is-style-happy-ellipse-portrait,
figure.wp-block-image.alignleft.is-style-rounded {
  display: block;
  float: left;
  margin: 0;
  margin-inline-start: var(--happy-ellipse-portrait-text-gap);
  shape-outside: var(--happy-ellipse-portrait-shape) border-box;
  shape-margin: var(--happy-ellipse-portrait-text-gap);
}
figure.wp-block-image.is-style-happy-ellipse-portrait img,
figure.wp-block-image.alignleft.is-style-rounded img {
  display: block;
  border-radius: var(--happy-ellipse-portrait-radius);
}

.wp-block-group.is-style-happy-full-width-section .wp-block-group.is-layout-flex {
  display: block;
}
.wp-block-group.is-style-happy-full-width-section .wp-block-group.is-layout-flex > h2 {
  margin: var(--happy-h2-margin);
}

/* ==========================================================================
   Base layout
   ========================================================================== */
html {
  direction: rtl;
}

body {
  direction: rtl;
  background: var(--happy-default-background);
  color: var(--happy-default-color);
  font-family: var(--happy-default-font-family);
  font-size: var(--happy-default-font-size);
  font-weight: var(--happy-default-font-weight);
  letter-spacing: var(--happy-default-letter-spacing);
  line-height: var(--happy-default-line-height);
  text-align: right;
}

.site {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.site-main {
  flex: 1 0 auto;
}
.site-main__inner {
  width: min(100% - var(--happy-container-padding) * 2, var(--happy-container-width));
  margin-inline: auto;
}

/* ==========================================================================
   Typography
   ========================================================================== */
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 0.6em;
  font-family: var(--happy-font-main);
  font-weight: 700;
  line-height: 1.15;
}

h1 {
  font-size: var(--happy-font-size-h1);
}

h2 {
  margin: var(--happy-h2-margin);
  font-size: var(--happy-font-size-h2);
}

.happy-menu a {
  color: var(--happy-color-menu);
  font-family: var(--happy-font-main);
  font-weight: var(--happy-font-weight-bold);
  letter-spacing: var(--happy-letter-spacing-wide);
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}
.happy-menu a:hover, .happy-menu a:focus {
  color: var(--happy-color-menu-hover);
}
.happy-menu .current-menu-item > a,
.happy-menu .current_page_item > a,
.happy-menu .current-menu-ancestor > a {
  color: var(--happy-color-menu-selected);
}

p {
  margin: 0 0 1em;
}

strong,
b {
  font-weight: 700;
}

/* ==========================================================================
   Generic content
   ========================================================================== */
.page-entry,
.content-entry {
  max-width: 900px;
  margin-inline: auto;
}
.page-entry__header,
.content-entry__header {
  margin-bottom: 28px;
}

/* stylelint-disable no-descending-specificity -- Independent link scopes. */
.happy-content {
  font-size: 20px;
  line-height: 1.55;
}
.happy-content > *:first-child {
  margin-top: 0;
}
.happy-content > *:last-child {
  margin-bottom: 0;
}
.happy-content a {
  color: var(--happy-color-red);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

/* stylelint-enable no-descending-specificity */
/* ==========================================================================
   Shared Gutenberg block styles
   ========================================================================== */
.site-main--page {
  padding-block: 0;
}

.page-content {
  margin: 0;
}
.page-content > :where(:not(.alignfull):not(.alignwide)) {
  width: min(100% - var(--happy-container-padding) * 2, var(--wp--style--global--content-size));
  margin-inline: auto;
}
.page-content > .alignwide {
  width: min(100% - var(--happy-container-padding) * 2, var(--wp--style--global--wide-size));
  margin-inline: auto;
}
.page-content > .alignfull {
  width: 100%;
  margin-inline: 0;
}

.is-style-happy-rounded.wp-block-cover {
  width: var(--happy-width-wide);
  min-height: var(--happy-hero-min-height);
  margin-inline: auto;
  margin-bottom: var(--happy-hero-margin-block-end);
  padding-block: var(--happy-hero-padding-block-start) var(--happy-hero-padding-block-end);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow: hidden;
  border-radius: var(--happy-radius-hero);
}
@media (max-width: 600px) {
  .is-style-happy-rounded.wp-block-cover {
    width: min(100% - 24px, var(--happy-container-width));
  }
}
.is-style-happy-rounded > .wp-block-cover__inner-container {
  width: min(100%, var(--happy-hero-content-max-width));
  text-align: center;
}
.is-style-happy-rounded > .wp-block-cover__inner-container h1 {
  margin-bottom: var(--happy-hero-title-margin-block-end);
  font-size: var(--happy-font-size-h1);
  line-height: var(--happy-line-height-h1);
  letter-spacing: var(--happy-letter-spacing-h1);
}
.is-style-happy-rounded > .wp-block-cover__inner-container > p {
  max-width: var(--happy-hero-text-max-width);
  margin-inline: auto;
  margin-bottom: var(--happy-hero-text-margin-block-end);
  font-size: var(--happy-hero-text-font-size);
  font-weight: var(--happy-font-weight-bold);
  line-height: var(--happy-hero-text-line-height);
  letter-spacing: var(--happy-hero-text-letter-spacing);
}

.wp-block-group.is-style-happy-full-width-section {
  box-sizing: border-box;
  padding-block: var(--happy-content-section-padding-block-start) var(--happy-content-section-padding-block-end);
  padding-inline: max(var(--happy-container-padding), (100% - var(--wp--style--global--content-size)) / 2);
  display: flow-root;
  font-size: var(--happy-content-font-size);
  line-height: var(--happy-content-line-height);
  letter-spacing: var(--happy-content-letter-spacing);
}
.wp-block-group.is-style-happy-full-width-section.alignfull {
  width: 100%;
  margin-inline: 0;
}
.wp-block-group.is-style-happy-full-width-section h2 {
  font-size: var(--happy-font-size-h2);
  line-height: var(--happy-line-height-h2);
}
.wp-block-group.is-style-happy-full-width-section p {
  margin-bottom: var(--happy-content-paragraph-margin-block-end);
  text-align: justify;
  text-align-last: right;
}
.wp-block-group.is-style-happy-full-width-section p:empty {
  min-block-size: var(--happy-content-line-height);
}

/* ==========================================================================
   Site header
   ========================================================================== */
header {
  position: relative;
  z-index: 20;
  padding-block: 10px;
  background: var(--happy-color-white);
  font-weight: var(--happy-font-weight-bold);
}

.site-header__inner {
  display: flex;
  align-items: center;
  width: var(--happy-width-wide);
  min-height: 68px;
  margin-inline: auto;
  gap: 18px;
}
.site-header__brand {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
}
.site-header__logo-link {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
.site-header__logo {
  width: 150px;
  max-width: 150px;
  height: auto;
}
.site-header__logo-text {
  display: block;
  margin-top: 3px;
  color: var(--happy-color-logo);
  font-size: var(--happy-font-size-logo);
  white-space: nowrap;
}
.site-header__navigation {
  flex: 1 1 auto;
  min-width: 0;
}
.site-header__menu {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 21px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-header__menu li {
  position: relative;
  margin: 0;
}
.site-header__menu a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  font-size: var(--happy-font-size-header-menu);
}
.site-header__menu .sub-menu {
  position: absolute;
  top: 100%;
  right: 0;
  min-width: 220px;
  margin: 0;
  padding: 10px 0;
  list-style: none;
  visibility: hidden;
  opacity: 0;
  border: 1px solid var(--happy-color-border);
  border-radius: var(--happy-radius-small);
  background: var(--happy-color-white);
  box-shadow: var(--happy-shadow-soft);
  transform: translateY(8px);
  transition: opacity 160ms ease, visibility 160ms ease, transform 160ms ease;
}
.site-header__menu .sub-menu a {
  display: flex;
  width: 100%;
  min-height: 40px;
  padding: 0 16px;
  font-size: var(--happy-font-size-header-menu);
}
.site-header__menu li:hover > .sub-menu,
.site-header__menu li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.site-header__actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 11px;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer {
  flex-shrink: 0;
  background: var(--happy-color-footer-background);
  letter-spacing: var(--happy-footer-letter-spacing);
}
.site-footer__main {
  box-sizing: border-box;
  min-height: var(--happy-footer-main-min-height);
  padding-block: var(--happy-footer-main-padding-block);
  background: var(--happy-color-footer-background);
}
.site-footer__inner--main {
  display: flex;
  align-items: stretch;
  max-width: var(--happy-layout-content-max-width);
  min-height: var(--happy-footer-content-min-height);
  margin-inline: auto;
}
.site-footer__columns {
  display: grid;
  grid-template-columns: minmax(0, var(--happy-footer-columns-sitemap)) minmax(0, var(--happy-footer-promos-width));
  align-items: stretch;
  width: 100%;
  gap: 0;
}
.site-footer__column {
  min-width: 0;
  padding-inline: var(--happy-footer-column-padding-inline);
}
.site-footer__column:not(:last-child) {
  border-left: var(--happy-footer-separator-width) solid var(--happy-color-footer-separator);
}
.site-footer__column--sitemap {
  padding-inline-start: 0;
}
.site-footer__column--whatsapp {
  padding-inline-end: 0;
}
.site-footer__column--whatsapp > .whatsapp-button {
  align-self: start;
  justify-self: start;
}
.site-footer__promos {
  display: grid;
  grid-template-columns: minmax(0, var(--happy-footer-columns-newsletter)) minmax(0, var(--happy-footer-columns-whatsapp));
  grid-template-rows: minmax(var(--happy-footer-promo-title-row-min-height), auto) minmax(var(--happy-footer-promo-text-row-min-height), auto) 1fr;
  align-self: stretch;
}
.site-footer__promos > .site-footer__column {
  display: grid;
  grid-row: 1/span 3;
  grid-template-rows: subgrid;
}
.site-footer__promo-title {
  max-width: var(--happy-footer-promo-max-width);
  margin: 0;
  color: var(--happy-color-red);
  font-size: var(--happy-footer-promo-title-font-size);
  font-weight: var(--happy-font-weight-bold);
  line-height: var(--happy-footer-promo-title-line-height);
  text-align: right;
}
.site-footer__title {
  margin: 0;
  color: var(--happy-color-black);
  font-size: var(--happy-footer-sitemap-font-size);
  font-weight: var(--happy-font-weight-bold);
  line-height: var(--happy-footer-sitemap-line-height);
  text-align: right;
}
.site-footer__menu {
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-footer__menu li {
  margin: 0;
}
.site-footer__menu a {
  font-size: var(--happy-footer-sitemap-font-size);
  line-height: var(--happy-footer-sitemap-line-height);
}
.site-footer__promo-text {
  max-width: var(--happy-footer-promo-max-width);
  margin: 0 0 var(--happy-footer-text-margin-block-end);
  color: var(--happy-default-color);
  font-size: var(--happy-footer-text-font-size);
  font-weight: var(--happy-font-weight-light);
  line-height: var(--happy-footer-text-line-height);
}
.site-footer__copyright-bar {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: var(--happy-footer-copyright-min-height);
  padding-inline: var(--happy-container-padding);
  background: var(--happy-color-footer-copyright-background);
}
.site-footer__copyright {
  margin: 0;
  color: var(--happy-color-white);
  font-family: var(--happy-font-main);
  font-size: var(--happy-footer-copyright-font-size);
  font-weight: var(--happy-font-weight-bold);
  line-height: var(--happy-footer-copyright-line-height);
  text-align: center;
}
.site-footer__copyright-symbol {
  font-family: var(--happy-font-display);
  font-weight: var(--happy-font-weight-light);
}

.newsletter-form {
  align-self: start;
  justify-self: start;
  width: min(100%, var(--happy-footer-form-width));
}
.newsletter-form__row {
  display: flex;
  align-items: stretch;
  width: 100%;
  min-height: var(--happy-compact-control-height);
}
.newsletter-form__input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0 var(--happy-footer-form-input-padding-inline);
  border: 0;
  border-radius: 0 var(--happy-radius-button-small) var(--happy-radius-button-small) 0;
  outline: 0;
  background: var(--happy-color-white);
  color: var(--happy-default-color);
  font-size: var(--happy-footer-form-input-font-size);
  font-weight: var(--happy-font-weight-bold);
}
.newsletter-form__button {
  flex: 0 0 auto;
  min-width: var(--happy-footer-form-submit-min-width);
  padding: 0 var(--happy-footer-form-submit-padding-inline);
  border: 0;
  border-radius: var(--happy-radius-button-small) 0 0 var(--happy-radius-button-small);
  background: var(--happy-color-red);
  color: var(--happy-color-white);
  font-size: var(--happy-compact-control-font-size);
  font-weight: var(--happy-font-weight-bold);
  line-height: 1;
}

/* ==========================================================================
   Content card component
   ========================================================================== */
/*
 * This file contains reusable content-card styles.
 */
.content-card {
  display: block;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--happy-color-border);
  border-radius: var(--happy-radius-medium);
  background: var(--happy-color-white);
  box-shadow: var(--happy-shadow-card-light);
  color: var(--happy-default-color);
  text-align: right;
  text-decoration: none;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}
.content-card:hover, .content-card:focus {
  border-color: var(--happy-color-red-border-soft);
  box-shadow: var(--happy-shadow-card);
  color: var(--happy-color-red);
  text-decoration: none;
  transform: translateY(-2px);
}
.content-card__image {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  background: var(--happy-color-yellow);
}
.content-card__body {
  padding: 18px 20px 22px;
}
.content-card__title {
  margin: 0 0 8px;
  color: var(--happy-default-color);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.15;
}
@media (max-width: 560px) {
  .content-card__title {
    font-size: 22px;
  }
}
.content-card__excerpt {
  margin: 0;
  color: var(--happy-color-muted);
  font-size: 17px;
  font-weight: 300;
  line-height: 1.45;
}
.content-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-top: 14px;
  color: var(--happy-color-muted);
  font-size: 15px;
}
.content-card__tag {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: var(--happy-radius-pill);
  background: var(--happy-color-yellow);
}

/* ==========================================================================
   Form defaults
   ========================================================================== */
input,
textarea,
select,
button {
  font-family: var(--happy-font-main);
}

input,
textarea,
select {
  color: var(--happy-default-color);
}

input::placeholder,
textarea::placeholder {
  color: rgba(31, 31, 31, 0.55);
}

/* ==========================================================================
   Search forms
   ========================================================================== */
.search-form {
  display: flex;
  width: min(100%, 560px);
  min-height: 52px;
  overflow: hidden;
  border: 1px solid var(--happy-color-border);
  border-radius: var(--happy-default-form-radius);
  background: var(--happy-color-white);
}
.search-form label {
  flex: 1 1 auto;
  min-width: 0;
}
.search-form .search-field {
  width: 100%;
  height: 100%;
  min-height: 52px;
  padding: 0 20px;
  border: 0;
  outline: 0;
  background: transparent;
}
.search-form .search-submit {
  flex: 0 0 auto;
  padding: 0 22px;
  border: 0;
  background: var(--happy-color-red);
  color: var(--happy-color-white);
}
@media (max-width: 560px) {
  .search-form .search-submit {
    padding-inline: 18px;
  }
}
@media (max-width: 560px) {
  .search-form {
    border-radius: 20px;
  }
}

/* ==========================================================================
   WordPress comment form
   ========================================================================== */
.comment-form {
  display: grid;
  width: min(100%, 720px);
  gap: 16px;
}
.comment-form label {
  display: block;
  margin-bottom: 6px;
  font-weight: 700;
}
.comment-form input[type=text],
.comment-form input[type=email],
.comment-form input[type=url],
.comment-form textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid var(--happy-color-border);
  border-radius: var(--happy-radius-medium);
}
.comment-form textarea {
  min-height: 150px;
  resize: vertical;
}
.comment-form .submit {
  min-height: 46px;
  padding: 0 26px;
  border: 0;
  border-radius: var(--happy-default-form-radius);
  background: var(--happy-color-red);
  color: var(--happy-color-white);
  font-weight: var(--happy-font-weight-bold);
}
