/*
Theme Name: Sinsef
Theme URI: https://sinsef.mallone.dev
Author: Grupo Sinsef
Description: Tema oficial do Grupo Sinsef — block theme (FSE) com paleta e tipografia da marca.
Version: 1.0.2
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: Proprietary
Text Domain: sinsef
Tags: full-site-editing, block-styles, custom-colors, custom-logo, wide-blocks
*/

/* ── Prevent horizontal overflow on mobile ────────────────────────────────── */
html, body { overflow-x: hidden; }

/* ── Reset WordPress layout constraints ───────────────────────────────────── */
.is-layout-flow > *,
.is-layout-constrained > * {
  max-width: none !important;
  margin-inline-start: 0 !important;
  margin-inline-end: 0 !important;
}

.entry-content,
.wp-block-post-content {
  margin: 0 !important;
  padding: 0 !important;
}

.wp-block-post-content button {
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

/* ── Sinsef Grids ─────────────────────────────────────────────────────────── */

/* Mobile first: 1 column */
.sinsef-grid-services,
.sinsef-grid-plans,
.sinsef-grid-testimonials,
.sinsef-grid-units {
  display: grid !important;
  gap: 1.5rem !important;
  grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
}

/* Tablet 640px+: 2 columns */
@media (min-width: 640px) {
  .sinsef-grid-services,
  .sinsef-grid-plans,
  .sinsef-grid-testimonials,
  .sinsef-grid-units {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Tablet 768px+ */
@media (min-width: 768px) {
  .sinsef-grid-services {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 2rem !important;
  }
  .sinsef-grid-plans {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 2rem !important;
  }
  .sinsef-grid-testimonials {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 2rem !important;
  }
  .sinsef-grid-units {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 2rem !important;
  }
}

/* Desktop 1024px+ */
@media (min-width: 1024px) {
  .sinsef-grid-plans {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

/* ── Contact Form 7 ───────────────────────────────────────────────────────── */
.sinsef-contact-form .wpcf7-form p {
  margin-bottom: 1.25rem !important;
}
.sinsef-contact-form .wpcf7-form label {
  display: block;
  font-size: .8125rem;
  font-weight: 600;
  color: #1a1c1c;
  margin-bottom: .375rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
}
.sinsef-contact-form .wpcf7-form input[type="text"],
.sinsef-contact-form .wpcf7-form input[type="tel"],
.sinsef-contact-form .wpcf7-form input[type="email"],
.sinsef-contact-form .wpcf7-form select,
.sinsef-contact-form .wpcf7-form textarea {
  width: 100% !important;
  padding: .75rem 1rem !important;
  border: 1.5px solid #d4d8d7 !important;
  border-radius: .75rem !important;
  font-size: .9375rem !important;
  font-family: 'Inter', sans-serif !important;
  color: #1a1c1c !important;
  background: #f9f9f9 !important;
  transition: border-color .15s ease, box-shadow .15s ease !important;
  outline: none !important;
  box-sizing: border-box !important;
}
.sinsef-contact-form .wpcf7-form input:focus,
.sinsef-contact-form .wpcf7-form select:focus,
.sinsef-contact-form .wpcf7-form textarea:focus {
  border-color: #ab9054 !important;
  box-shadow: 0 0 0 3px rgba(171,144,84,.12) !important;
  background: #fff !important;
}
.sinsef-contact-form .wpcf7-form textarea {
  min-height: 120px !important;
  resize: vertical !important;
}
.sinsef-contact-form .wpcf7-form input[type="submit"] {
  width: 100% !important;
  background: #00231a !important;
  color: #fff !important;
  border: none !important;
  border-radius: 9999px !important;
  padding: .875rem 2rem !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 700 !important;
  font-size: .9375rem !important;
  cursor: pointer !important;
  transition: background .2s ease !important;
  margin-top: .5rem !important;
}
.sinsef-contact-form .wpcf7-form input[type="submit"]:hover {
  background: #0f3a2e !important;
}
.sinsef-contact-form .wpcf7-not-valid-tip {
  color: #c0392b !important;
  font-size: .8125rem !important;
  margin-top: .25rem !important;
  display: block !important;
}
.sinsef-contact-form .wpcf7-response-output {
  margin-top: 1rem !important;
  padding: .875rem 1rem !important;
  border-radius: .75rem !important;
  font-size: .9375rem !important;
  border: none !important;
}
.sinsef-contact-form .wpcf7-mail-sent-ok {
  background: #e8f5e9 !important;
  color: #2e7d32 !important;
}
.sinsef-contact-form .wpcf7-mail-sent-ng,
.sinsef-contact-form .wpcf7-validation-errors {
  background: #fdecea !important;
  color: #c0392b !important;
}

/* Scroll reveal */
@keyframes sinsef-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .4; }
}
[data-reveal] {
  opacity: 0;
  transform: translateY(1.5rem);
  transition: opacity .5s ease, transform .5s ease;
}
[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}
[data-reveal][data-delay="2"] { transition-delay: .12s; }
[data-reveal][data-delay="3"] { transition-delay: .24s; }

/* ── Blog layout — container 2 colunas ─────────────────────────────────── */

.sinsef-blog-section { background: #f9f9f9; padding: 3rem 0 4rem; }

.sinsef-blog-container {
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: start;
}
@media (min-width: 1024px) {
  .sinsef-blog-container { grid-template-columns: 1fr 18rem; }
}

/* ── Blog cards ── */
.sinsef-blog-main .wp-block-post-template {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 1.5rem !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
@media (min-width: 640px) {
  .sinsef-blog-main .wp-block-post-template {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

.sinsef-blog-main li.wp-block-post {
  background: #fff;
  border: 1px solid rgba(0,35,26,.08);
  border-radius: 1rem;
  padding: 1.75rem;
  display: flex !important;
  flex-direction: column;
  gap: .6rem;
  transition: box-shadow .2s ease, transform .2s ease;
}
.sinsef-blog-main li.wp-block-post:hover {
  box-shadow: 0 4px 20px rgba(0,35,26,.10);
  transform: translateY(-2px);
}

.sinsef-blog-card__cat .wp-block-post-terms,
.sinsef-blog-card__cat .wp-block-post-terms a {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: .7rem !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: #ab9054 !important;
  text-decoration: none !important;
}
.sinsef-blog-card__title .wp-block-post-title,
.sinsef-blog-card__title .wp-block-post-title a {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: #00231a !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
}
.sinsef-blog-card__title .wp-block-post-title a:hover { color: #ab9054 !important; }
.sinsef-blog-card__date .wp-block-post-date,
.sinsef-blog-card__date .wp-block-post-date time {
  font-family: 'Inter', sans-serif !important;
  font-size: .8rem !important;
  color: #717975 !important;
}
.sinsef-blog-card__excerpt .wp-block-post-excerpt__text {
  font-family: 'Inter', sans-serif;
  font-size: .875rem;
  color: #4a5450;
  line-height: 1.6;
  margin: 0 !important;
}
.sinsef-blog-card__excerpt .wp-block-post-excerpt__more-link {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: .8rem;
  font-weight: 700;
  color: #ab9054;
  text-decoration: none;
  display: inline-block;
  margin-top: .5rem;
}
.sinsef-blog-card__excerpt .wp-block-post-excerpt__more-link:hover { color: #00231a; }

/* ── Paginação ── */
.sinsef-blog-pagination { margin-top: 2.5rem !important; }
.sinsef-blog-pagination .wp-block-query-pagination {
  display: flex !important;
  flex-wrap: wrap;
  gap: .5rem;
}
.sinsef-blog-pagination .wp-block-query-pagination a,
.sinsef-blog-pagination .wp-block-query-pagination span {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: .8rem;
  font-weight: 600;
  color: #00231a;
  text-decoration: none;
  padding: .4rem .9rem;
  border: 1.5px solid rgba(0,35,26,.2);
  border-radius: 9999px;
  transition: background .15s, color .15s;
}
.sinsef-blog-pagination .wp-block-query-pagination a:hover { background: #00231a; color: #fff; border-color: #00231a; }
.sinsef-blog-pagination .wp-block-query-pagination-numbers .current { background: #00231a; color: #fff; border-color: #00231a; }

/* ── Aside ── */
.sinsef-blog-aside {
  background: #fff;
  border: 1px solid rgba(0,35,26,.08);
  border-radius: 1rem;
  padding: 1.75rem;
  position: sticky;
  top: 6rem;
}

.sinsef-aside-title {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: .7rem !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: #717975 !important;
  margin: 0 0 1rem !important;
  padding-bottom: .75rem !important;
  border-bottom: 1px solid rgba(0,35,26,.08) !important;
}

.sinsef-aside-cats .wp-block-categories-list,
.sinsef-aside-cats ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  gap: .375rem;
}
.sinsef-aside-cats .wp-block-categories-list li a,
.sinsef-aside-cats ul li a {
  font-family: 'Inter', sans-serif;
  font-size: .875rem;
  color: #1a1c1c;
  text-decoration: none;
  display: flex;
  justify-content: space-between;
  padding: .375rem .625rem;
  border-radius: .5rem;
  transition: background .15s, color .15s;
}
.sinsef-aside-cats a:hover { background: #f3f3f3; color: #ab9054; }

.sinsef-aside-posts .wp-block-latest-posts {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.sinsef-aside-posts .wp-block-latest-posts__list-item a {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: .875rem;
  font-weight: 600;
  color: #1a1c1c;
  text-decoration: none;
  line-height: 1.4;
  display: block;
  transition: color .15s;
}
.sinsef-aside-posts .wp-block-latest-posts__list-item a:hover { color: #ab9054; }
.sinsef-aside-posts .wp-block-latest-posts__post-date {
  font-family: 'Inter', sans-serif;
  font-size: .75rem;
  color: #717975;
  display: block;
  margin-top: .2rem;
}

.sinsef-aside-back {
  display: inline-block;
  margin-top: 1.5rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: .8rem;
  font-weight: 700;
  color: #00231a;
  text-decoration: none;
  padding: .5rem 1rem;
  border: 1.5px solid rgba(0,35,26,.2);
  border-radius: 9999px;
  transition: background .15s, color .15s;
}
.sinsef-aside-back:hover { background: #00231a; color: #fff; }

/* ── Single post layout ── */
.sinsef-post-wrap { background: #f9f9f9; padding: 3rem 0 4rem; }

.sinsef-post-container {
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: start;
}
@media (min-width: 1024px) {
  .sinsef-post-container { grid-template-columns: 1fr 18rem; }
}

.sinsef-post-main {
  background: #fff;
  border-radius: 1rem;
  padding: 2.5rem;
  border: 1px solid rgba(0,35,26,.06);
}

.sinsef-post-cat .wp-block-post-terms,
.sinsef-post-cat .wp-block-post-terms a {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: .7rem !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: #ab9054 !important;
  text-decoration: none !important;
}

.sinsef-post-title .wp-block-post-title {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: clamp(1.5rem, 3vw, 2rem) !important;
  font-weight: 800 !important;
  color: #00231a !important;
  line-height: 1.25 !important;
  letter-spacing: -.02em !important;
  margin: .5rem 0 0 !important;
}

.sinsef-post-byline .wp-block-post-date,
.sinsef-post-byline .wp-block-post-date time,
.sinsef-post-byline .wp-block-post-author__name {
  font-family: 'Inter', sans-serif !important;
  font-size: .85rem !important;
  color: #717975 !important;
}
.sinsef-post-byline .wp-block-post-author { gap: .25rem !important; }

.sinsef-post-divider {
  border: none !important;
  border-top: 1px solid rgba(0,35,26,.08) !important;
  margin: 1.75rem 0 !important;
}

/* Conteúdo do post: imagens centradas */
.sinsef-post-content img {
  display: block !important;
  margin: 1.75rem auto !important;
  max-width: 100% !important;
  height: auto !important;
  border-radius: .75rem !important;
}
.sinsef-post-content p {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  color: #2a2e2d;
  line-height: 1.8;
  margin-bottom: 1.25rem;
}
.sinsef-post-content h2, .sinsef-post-content h3 {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  color: #00231a;
  margin: 2rem 0 .75rem;
}

.sinsef-post-nav { margin-top: .5rem; }
.sinsef-post-nav__link .wp-block-post-navigation-link__arrow,
.sinsef-post-nav__link a {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: .85rem !important;
  font-weight: 700 !important;
  color: #ab9054 !important;
  text-decoration: none !important;
}
.sinsef-post-nav__link a:hover { color: #00231a !important; }

/* Services main — 1 col mobile → 3 col tablet+ */
.sinsef-grid-services-main {
  display: grid !important;
  gap: 1.5rem !important;
  grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
}
@media (min-width: 768px) {
  .sinsef-grid-services-main {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 2rem !important;
  }
}
