@charset "UTF-8";

/* =================================================================== */
/* 1. VARIÁVEIS GLOBAIS (CORES E FONTES)
/* =================================================================== */

:root {
  /* Paleta de Cores */
  --cor-preto: #000000;
  --cor-branco: #FFFFFF;
  --cor-bordo-escuro: #6F150C;
  --cor-marrom-rosado: #B2756E;
  --cor-rosa-antigo: #C48E87;
  --cor-rosa-pastel: #D9A79D;
  --cor-rosa-claro: #F7E7E3;
  --cor-rosa-super-claro: #EAD9D5;
  --cor-cinza-texto: #555555;
  --cor-cinza-claro-fundo: #f8f8f8;
  --cor-cinza-borda: #eeeeee;
  
  /* Fontes */
  --fonte-principal: "semplicitapro", sans-serif;
  --fonte-destaque: "amandine", sans-serif;
}

/* =================================================================== */
/* 2. ESTILOS GERAIS E RESET BÁSICO
/* =================================================================== */

*, *::before, *::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  font-family: var(--fonte-principal);
  line-height: 1.6;
  color: var(--cor-bordo-escuro);
  background-color: var(--cor-branco);
}

a {
  color: inherit;
  text-decoration: none;
}

ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
}

/* =================================================================== */
/* 3. COMPONENTES REUTILIZÁVEIS
/* =================================================================== */

/* --- Botões --- */
.button { 
  display: inline-block;
  padding: 12px 25px;
  font-weight: lighter;
  text-align: center;
  color: var(--cor-branco);
  background-color: var(--cor-rosa-antigo);
  border: 2px solid transparent;
  border-radius: 5px;
  transition: background-color 0.3s ease, color 0.3s ease, transform 0.2s ease;
}

.button:hover {
  background-color: var(--cor-marrom-rosado);
}

.cta-button {
  display: inline-block;
  padding: 15px 35px;
  font-family: var(--fonte-principal);
  font-size: 1em;
  font-weight: lighter;
  color: var(--cor-branco);
  background-color: var(--cor-rosa-antigo);
  border-radius: 5px;
  text-decoration: none;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

.cta-button:hover {
  background-color: var(--cor-marrom-rosado);
  transform: translateY(-2px);
}

.footer-cta-button {
  display: none;
  padding: 10px 20px;
  font-family: var(--fonte-principal);
  font-size: 0.9em;
  font-weight: lighter;
  color: var(--cor-branco);
  background-color: var(--cor-bordo-escuro);
  border-radius: 5px;
  text-decoration: none;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

.footer-cta-button:hover {
  background-color: #5d1109;
  transform: translateY(-2px);
}

.page-service-button {
  display: inline-block;
  padding: 15px 35px; 
  font-family: var(--fonte-principal);
  font-size: 1em;
  font-weight: 600;
  color: var(--cor-branco);
  background-color: var(--cor-marrom-rosado);
  border-radius: 5px;
  text-decoration: none;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

.page-service-button:hover {
  background-color: var(--cor-rosa-antigo); 
  transform: translateY(-2px); 
}

/* --- Títulos de Seção --- */
.section-title {
  margin-bottom: 60px;
  font-family: var(--fonte-principal);
  font-size: 2.5em;
  font-weight: 700;
  color: var(--cor-bordo-escuro);
  text-align: center;
}

/* --- Cards de Serviço --- */
.services-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* Cria 2 colunas de largura igual */
  gap: 30px; /* Espaçamento entre os cards (ajuste se necessário) */
}

/* Garantia de que o card preencha todo o espaço do link (<a>).
  O seu CSS para .service-card já tem "display: flex", o que ajuda muito.
  Esta regra garante que o card se estique verticalmente para preencher
  a altura que o grid definir para a linha.
*/
.service-card-link {
  display: flex;
  flex-direction: column;
}

.service-card {
   flex-grow: 1; /* Faz o card crescer para ocupar todo o espaço vertical do link */
  /* O resto do seu CSS para .service-card vem aqui... */
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 40px;
  text-align: left;
  background-color: var(--cor-rosa-super-claro);
  border-radius: 10px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.service-card-link:hover .service-card {
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
  transform: translateY(-5px);
}

.service-card-link:active .service-card {
  background-color: var(--cor-rosa-claro); 
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  transform: translateY(0);
}

.service-header-group {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 15px;
}

.service-icon-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 42px;
  height: 42px;
}

.service-icon {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.service-card h3 {
  margin-bottom: 15px;
  font-size: 1.4em;
  font-weight: 700;
  color: var(--cor-bordo-escuro);
  text-transform: uppercase;
}

.service-card p {
  font-size: 1.1em;
  line-height: 1.6;
  color: var(--cor-cinza-texto);
}

/* =================================================================== */
/* 4. CABEÇALHO (HEADER)
/* =================================================================== */

.main-header {
  position: relative;
  z-index: 1000;
  padding: 15px 0;
  background-color: var(--cor-bordo-escuro);
  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.header-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
}

.header-content .logo img {
  width: auto;
  height: 55px;
}

/* --- Navegação Principal --- */
.main-nav ul {
  display: flex;
}

.main-nav li {
  margin-left: 35px;
}

.main-nav a {
  padding: 8px 0;
  font-size: 1.15em;
  font-weight: 300;
  color: var(--cor-branco);
  transition: color 0.3s ease;
}

.main-nav a:hover {
  color: var(--cor-rosa-pastel);
}

.main-nav a:active {
  color: var(--cor-rosa-claro);
}

/* --- Submenu (Dropdown) --- */
.has-submenu {
  position: relative;
}

.submenu, .main-nav ul.submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 100;
  min-width: 250px;
  padding: 10px 0;
  background-color: var(--cor-marrom-rosado);
  border-radius: 0 0 5px 5px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}

.has-submenu:hover .submenu {
  display: block;
}

.main-nav li.has-submenu:hover > a {
  color: var(--cor-rosa-pastel);
}

.submenu li {
  margin: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.submenu li:last-child {
  border-bottom: none;
}

.submenu a {
  display: block;
  padding: 10px 20px;
  font-size: 1em;
  color: var(--cor-branco);
  white-space: nowrap;
}

.submenu a:hover {
  color: var(--cor-branco);
  background-color: rgba(255, 255, 255, 0.1);
}

/* --- Ícones do Cabeçalho --- */
.header-icons {
  display: flex;
  align-items: center;
  gap: 10px;
}

.menu-toggle {
  display: none;
  padding: 10px;
  background: none;
  border: none;
  outline: none;
  cursor: pointer;
}

.menu-toggle img {
  display: block;
  width: 28px;
  height: 28px;
  filter: invert(1);
}

/* --- Caixa de Busca --- */
.search-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

.search-toggle {
  padding: 10px;
  background: none;
  border: none;
  outline: none;
  cursor: pointer;
}

.search-toggle img {
  display: block;
  width: 24px;
  height: 24px;
}

.search-box-container {
  display: none;
  position: absolute;
  top: 50%;
  right: 0;
  z-index: 10;
  transform: translateY(-50%);
}

.search-box-container.visible {
  display: block;
}

.search-form {
  display: flex;
  align-items: center;
  width: 250px;
  padding: 6px 12px;
  background-color: var(--cor-rosa-claro);
  border: 1px solid var(--cor-rosa-pastel);
  border-radius: 25px;
}

.search-form:focus-within {
  border-color: var(--cor-bordo-escuro);
  box-shadow: 0 0 5px rgba(111, 21, 12, 0.3);
}

.search-form input[type="search"] {
  flex-grow: 1;
  padding: 0;
  font-family: var(--fonte-principal);
  font-size: 0.9em;
  font-weight: 300;
  color: var(--cor-preto);
  background-color: transparent;
  border: none;
  outline: none;
}

.search-form input[type="search"]::placeholder {
  color: var(--cor-bordo-escuro);
}

input[type="search"]::-webkit-search-cancel-button {
  display: none;
  -webkit-appearance: none;
}

.search-form .search-button,
.search-form .clear-button {
  display: flex;
  align-items: center;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
}

.search-form .clear-button {
  display: none;
}

.search-form .search-button img {
  width: 18px;
  height: 18px;
  margin-left: 8px;
}

.search-form .clear-button img {
  width: 14px;
  height: 14px;
}

/* =================================================================== */
/* 5. RODAPÉ (FOOTER)
/* =================================================================== */

.main-footer {
  padding: 60px 0 40px 0;
  color: var(--cor-branco);
  background-color: var(--cor-bordo-escuro);
}

.footer-content-wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: clamp(30px, 4vw, 60px); 
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
}

.footer-left-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  box-sizing: border-box;
  width: 400px;
  height: 250px;
  padding: 30px;
  color: var(--cor-bordo-escuro);
  background-color: var(--cor-rosa-claro);
  border-radius: 10px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
}

.footer-logo-area {
  margin-bottom: 20px;
}

.footer-logo-svg {
  width: 200px;
  height: auto;
  fill: var(--cor-bordo-escuro);
}

.footer-tagline {
  margin-top: 0;
  font-size: 1em;
  line-height: 1.6;
  color: var(--cor-bordo-escuro);
}

.footer-nav-column {
  width: auto;
  padding-right: 25px;
}
.contact-info-column {
  flex: 1;
  min-width: 220px;
  height: 100%;
}

.contact-info-column {
  padding-left: 10px;
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.footer-nav-column h5, 
.contact-info-column h5 {
  margin: 0 0 25px 0;
  padding-bottom: 15px;
  font-size: 1.1em;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--cor-rosa-pastel);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.footer-nav-column a {
  display: block;
  padding: 8px 0;
  font-size: 1.05em;
  color: var(--cor-rosa-claro);
  transition: color 0.3s ease;
}

.footer-nav-column a:hover {
  color: var(--cor-branco);
}

.contact-item {
  margin-bottom: 30px;
}

.contact-item:last-child {
  margin-bottom: 0;
}

.contact-label {
  display: block;
  margin-bottom: 8px;
  font-size: 0.9em;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--cor-rosa-pastel);
}

.contact-value, 
.contact-info-column a.contact-value {
  display: block;
  font-size: 1.1em;
  line-height: 1.5;
  color: var(--cor-rosa-claro);
  transition: color 0.3s ease;
}

.contact-info-column a.contact-value:hover {
  color: var(--cor-branco);
}

.footer-secondary-info {
  flex-basis: 100%;
  margin-top: 30px;
  padding-top: 30px;
  font-size: 0.8em;
  text-align: center;
}

.footer-secondary-info p {
  margin: 0;
  color: var(--cor-rosa-pastel);
}

/* =================================================================== */
/* 6. PÁGINA INICIAL (HOME)
/* =================================================================== */

.hero {
  padding: 100px 0;
  text-align: center;
  background-color: var(--cor-rosa-claro);
}

.hero .container {
  max-width: 1200px;
}

.hero-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.hero-content h1 {
  margin-bottom: 0;
  font-size: 2.5em;
  font-weight: 700;
  line-height: 1.1;
  color: var(--cor-bordo-escuro);
}

.hero-content p {
  max-width: 900px;
  margin-bottom: 20px;
  font-size: 1.4em;
  color: var(--cor-preto);
}

.about-me-section {
  padding: 100px 0;
}

.about-me-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}

.about-me-image {
  z-index: 2;
  width: 60%;
  max-width: 800px;
  border-radius: 8px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
}

.about-me-image img {
  border-radius: 8px;
  object-fit: cover;
}

.about-me-section .text-rectangle {
  z-index: 1;
  width: 80%;
  margin-left: -100px;
  padding: 50px 50px 50px 150px;
  color: var(--cor-branco);
  background-color: var(--cor-rosa-super-claro);
  border-radius: 8px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
}

.about-me-text-and-title-wrapper {
  max-width: 500px;
}

.text-rectangle h2.section-title {
  margin-bottom: 20px;
  font-family: var(--fonte-destaque);
  font-size: 2em;
  font-weight: lighter;
  color: var(--cor-bordo-escuro);
  text-align: left;
  text-transform: uppercase;
}

.about-me-content p {
  margin-bottom: 30px;
  font-size: 1.1em;
  font-weight: lighter;
  color: var(--cor-cinza-texto);
}

.intro-text-section {
  padding: 80px 0;
}

.intro-content-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  max-width: 1500px;
  min-height: 520px;
  margin: 0 auto;
}

.intro-image-wrapper {
  flex-shrink: 0;
  width: 60%;
  border-radius: 10px;
  overflow: hidden;
}

.intro-side-image {
  width: 100%;
  max-height: 550px;
  object-fit: cover;
}

.intro-text-wrapper {
  position: absolute;
  top: 50%;
  right: 0;
  z-index: 2;
  width: 70%;
  max-width: 750px;
  transform: translateY(-50%);
}

.intro-text-content-box {
  display: flex;
  flex-direction: column;
  gap: 30px;
  padding: 70px;
  background-color: var(--cor-rosa-super-claro);
  border-radius: 10px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
}

.intro-text-content-box h1 {
  margin: 0;
  font-size: 1.5em;
  font-weight: 600;
  line-height: 1.3;
  color: var(--cor-bordo-escuro);
  text-transform: uppercase;
}

.intro-text-content-box p {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 0;
  font-size: 1.1em;
  line-height: 1.6;
  color: var(--cor-cinza-texto);
}

.topic-with-icon {
  display: flex;
  align-items: flex-start;
  gap: 15px;
}

.services-section {
  padding-top: 80px;
  text-align: center;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 30px;
  justify-content: center;
  align-items: stretch;
}

.testimonials {
  padding: 80px 0;
  text-align: center;
}

.testimonials h6 {
  margin: 0 0 30px 0;
  font-size: 2.2em;
}

.testimonials-wrapper {
  position: relative;
  max-width: 800px;
  margin: 0 auto;
}

.testimonials-carousel-container {
  position: relative;
  overflow: hidden;
  transition: height 0.5s ease-in-out;
}

.testimonials-slider {
  display: flex;
  align-items: flex-start;
  transition: transform 0.5s ease-in-out;
}

.testimonial-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 0 0 100%;
  box-sizing: border-box;
  min-height: 250px;
  padding: 40px 80px;
  background-color: var(--cor-rosa-super-claro);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.testimonial-card p {
  margin-bottom: 20px;
  font-size: 1.1em;
  line-height: 1.8;
  color: var(--cor-cinza-texto);
  text-align: left;
}

.testimonial-card cite {
  display: block;
  font-size: 1em;
  font-weight: bold;
  font-style: normal;
  color: var(--cor-bordo-escuro);
  text-align: right;
}

.prev-btn, .next-btn {
  position: absolute;
  top: 50%;
  z-index: 10;
  width: 45px;
  height: 45px;
  padding: 0;
  background-color: rgba(255, 255, 255, 0.3);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  opacity: 0;
  transform: translateY(-50%);
  transition: background-color 0.3s ease, opacity 0.3s ease;
}

.testimonials-wrapper:hover .prev-btn,
.testimonials-wrapper:hover .next-btn {
  opacity: 1;
}

.prev-btn:hover, .next-btn:hover {
  background-color: rgba(255, 255, 255, 0.5);
}

.prev-btn { left: 20px; }
.next-btn { right: 20px; }

.prev-btn::before,
.next-btn::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  border-style: solid;
  border-color: var(--cor-bordo-escuro);
  border-width: 0 3px 3px 0;
}

.prev-btn::before {
  transform: translate(-25%, -50%) rotate(135deg);
}

.next-btn::before {
  transform: translate(-75%, -50%) rotate(-45deg);
}

.highlight-section {
  padding: 30px 0;
  text-align: center;
  background-color: #D6BCB9;
}

.highlight-section p {
  margin: 0;
  font-size: clamp(1.2em, 2vw, 1.5em);
  font-style: italic;
}

/* =================================================================== */
/* 7. CALL TO ACTION (CTA)
/* =================================================================== */

.cta-section {
  display: flex;
  justify-content: center;
  align-items: center;
  padding-bottom: 80px;
}

.cta-content {
  box-sizing: border-box;
  width: 100%;
  max-width: 900px;
  margin-top: 0;
  text-align: center;
}

.cta-content h2 {
  margin: 0 0 25px 0;
  font-family: var(--fonte-principal);
  font-size: 1.9em;
  line-height: 1.3;
  color: var(--cor-bordo-escuro);
}

.cta-content p {
  max-width: 800px;
  margin: 0 auto 40px auto;
  font-family: var(--fonte-principal);
  font-size: 1.2em;
  font-weight: lighter;
  line-height: 1.7;
  color: var(--cor-preto);
}

.cta-section.small-cta {
  padding: 60px 0;
  margin-bottom: 100px;
}

.cta-section.small-cta .cta-content {
  width: 1000px;
  padding: 40px;
  background-color: var(--cor-rosa-super-claro);
  border-radius: 10px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.cta-section.small-cta h4 {
  margin-bottom: 30px;
  font-family: var(--fonte-principal);
  font-size: 1.9em;
  color: var(--cor-bordo-escuro);
}

.cta-section.small-cta p {
  max-width: 900px;
  margin: 0 auto 60px auto;
  font-size: 1.2em;
  color: var(--cor-cinza-texto);
}

/* =================================================================== */
/* 8. PÁGINA "SOBRE"
/* =================================================================== */

.mission-section {
  padding: 100px 20px;
} 

.mission-wrapper {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
}

.mission-image {
  width: 500px;
  height: 750px;
  border-radius: 500px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
  overflow: hidden;
}

.mission-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mission-text-rectangle {
  flex-grow: 1;
  max-width: 600px;
  padding: 50px;
  background-color: var(--cor-rosa-super-claro);
  border-radius: 10px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.mission-text-rectangle h2 {
  margin: 0 0 15px 0;
  font-family: var(--fonte-destaque);
  font-size: clamp(2.5em, 4vw, 3.6em);
  font-weight: lighter;
  color: var(--cor-bordo-escuro);
}

.mission-text-rectangle p {
  margin-bottom: 40px;
  font-size: clamp(1em, 1.5vw, 1.15em);
  line-height: 1.7;
  color: var(--cor-cinza-texto);
}


.values-section {
  padding-bottom: 20px;
}

.values-title {
  margin-bottom: 40px;
  font-family: var(--fonte-principal);
  font-size: 1.9em;
  font-weight: lighter;
  color: var(--cor-bordo-escuro);
  text-align: center;
}

.values-items-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 30px;
  max-width: 900px;
  margin: 0 auto 0 auto;
}

.value-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 180px;
  padding: 40px;
  text-align: left;
  background-color: var(--cor-rosa-super-claro);
  border-radius: 10px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.value-item h3 {
  margin-bottom: 15px;
  font-size: 1.4em;
  font-weight: 600;
  color: var(--cor-bordo-escuro);
}

.value-item p {
  font-size: 1em;
  color: var(--cor-cinza-texto);
}

.sobre-page-section {
  padding: 100px 20px;
}

.sobre-page-wrapper {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
}

.sobre-page-image {
  width: 500px;
  height: 750px;
  border-radius: 500px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
  overflow: hidden;
}

.sobre-page-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sobre-page-text-rectangle {
  flex-grow: 1;
  max-width: 600px;
  padding: 50px;
  background-color: var(--cor-rosa-super-claro);
  border-radius: 10px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.sobre-page-text-rectangle h2 {
  margin: 0 0 15px 0;
  font-family: var(--fonte-destaque);
  font-size: clamp(2.5em, 4vw, 3.6em);
  font-weight: lighter;
  color: var(--cor-bordo-escuro);
}

.sobre-page-text-rectangle p {
  margin-bottom: 40px;
  font-size: clamp(1em, 1.5vw, 1.15em);
  line-height: 1.7;
  color: var(--cor-cinza-texto);
}

/* =================================================================== */
/* 9. PÁGINA DE SERVIÇOS (LISTA) - LAYOUT HERO COM SOBREPOSIÇÃO
/* =================================================================== */

.hero-servicos-section {
  padding: 70px 20px;
  background-color: var(--cor-rosa-claro);
}

.hero-servicos-wrapper {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 80px;
  max-width: 1100px;
  margin: 0 auto;
}

.hero-servicos-imagem {
  width: 500px;
  height: 750px;
  border-radius: 500px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
  overflow: hidden;
  flex-shrink: 0;
}

.hero-servicos-imagem img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

.hero-servicos-texto {
  max-width: 700px;
  text-align: left;
}

.hero-servicos-texto .page-title {
  margin-bottom: 30px;
}

.hero-servicos-texto .intro-text {
  margin-bottom: 30px;
}

.services-main-section {
  padding: 80px 0;
}

/* =================================================================== */
/* 10. PÁGINA DE DETALHE DO SERVIÇO
/* =================================================================== */

.service-detail-section {
  padding: 0;
}

.service-detail-section .container {
  max-width: 1200px;
}

section.service-detail-section .container {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 1200px;
  margin: 40px auto;
  padding: 20px;
}

.detail-title {
  margin-bottom: 50px;
  font-size: 2.2em;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
}

.author-image-wrapper.service-image-adjust {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 550px;
  height: 550px;
  margin-bottom: 50px;
  border: 2px solid var(--cor-bordo-escuro);
  border-radius: 50%;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
  object-fit: cover;
}

section.service-detail-section .container .author-image-wrapper.service-image-adjust .author-image {
  display: block;
  width: 100%;
  height: auto;
}

.detail-topic {
  margin-bottom: 50px;
}

.topic-heading {
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 15px;
  font-size: 1.7em;
  font-weight: 600;
  color: var(--cor-preto);
  border-left: 4px solid var(--cor-bordo-escuro);
}

.detail-topic p {
  margin-bottom: 30px;
  font-size: 1.2em;
  line-height: 1.7;
  color: var(--cor-preto);
}

/* =================================================================== */
/* 11. PÁGINA DO BLOG (LISTA)
/* =================================================================== */

.blog-hero {
  padding: 50px 0;
  text-align: center;
  background-color: var(--cor-rosa-super-claro);
}

.blog-hero .container {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 1000px;
  margin: 0 auto;
}

.author-image-wrapper {
  margin-bottom: 25px;
}

.author-image {
  width: 600px;
  height: 600px;
  border: 4px solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  object-fit: cover;
}

.blog-main-title {
  margin-bottom: 20px;
  font-size: 2.5em;
  font-weight: 700;
  text-transform: uppercase;
}

.blog-intro-text {
  max-width: 800px;
  margin: 0 auto;
  font-size: 1.2em;
  color: var(--cor-preto);
}

.articles-list-section {
  padding: 60px 0 100px;
}

.articles-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 40px;
}

.article-card {
  padding: 30px;
  text-align: left;
  background-color: var(--cor-branco);
  border: 1px solid #e0e0e0;
  border-left: 5px solid var(--cor-bordo-escuro); 
  border-radius: 8px;
  transition: box-shadow 0.3s, border-color 0.3s;
}

.article-card:hover {
  border-color: var(--cor-bordo-escuro);
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
}

.article-title {
  margin: 0 0 10px 0;
  font-size: 1.35em;
  font-weight: 700;
  line-height: 1.4;
  color: var(--cor-preto);
}

.article-date {
  margin-bottom: 15px;
  font-size: 0.9em;
  font-weight: 500;
  color: var(--cor-bordo-escuro);
}

.article-excerpt {
  margin-bottom: 25px;
  font-size: 1em;
  color: var(--cor-cinza-texto);
}

.read-more-button {
  padding-bottom: 3px;
  font-weight: 600;
  color: var(--cor-bordo-escuro);
  border-bottom: 2px solid var(--cor-bordo-escuro);
  transition: color 0.3s, border-color 0.3s;
}

.read-more-button:hover {
  color: #3e0b06;
  border-color: #3e0b06;
}

/* =================================================================== */
/* 12. PÁGINA DE ARTIGO (INDIVIDUAL)
/* =================================================================== */

.article-detail-section {
  padding: 80px 0;
  background-color: var(--cor-branco);
}

.article-content-container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 20px;
}

.article-detail-title {
  margin-bottom: 30px;
  font-size: 2.6em;
  font-weight: 700;
  line-height: 1.3;
  color: var(--cor-bordo-escuro);
  text-align: left;
}

.author-info-block {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 15px;
  margin-bottom: 60px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--cor-cinza-borda);
}

.author-photo-small {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  overflow: hidden;
}

.author-name {
  margin: 0;
  font-weight: 600;
  color: var(--cor-preto);
}

.article-published-date {
  margin: 0;
  font-size: 0.85em;
  color: var(--cor-cinza-texto);
}

.article-body {
  font-size: 1.1em;
  line-height: 1.8;
  color: #333;
}

.article-body p {
  margin-bottom: 1.5em;
}

.article-body h2 {
  margin: 60px 0 20px 0;
  padding-bottom: 10px;
  font-size: 1.4em;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--cor-preto);
  border-bottom: 1px solid var(--cor-cinza-borda);
}

.article-body h3 {
  margin: 40px 0 15px 0;
  font-size: 1.1em;
  font-weight: 600;
  color: var(--cor-preto);
}

/* =================================================================== */
/* 13. PÁGINA DE CONTATO
/* =================================================================== */

.contact-hero-section {
  padding: 60px 20px 40px;
  text-align: center;
  background-color: var(--cor-cinza-claro-fundo);
}

.contact-title {
  margin-bottom: 20px;
  font-size: 2.5em;
  font-weight: 700;
}

.contact-intro {
  max-width: 800px;
  margin: 0 auto;
  font-size: 1.1em;
  color: var(--cor-cinza-texto);
}

.contact-details-section {
  padding: 60px 0;
}

.contact-grid {
  display: flex;
  align-items: flex-start;
  gap: 50px;
}

.contact-info-col, .contact-form-col {
  flex: 1;
}

.contact-sub-title {
  margin-bottom: 30px;
  font-size: 1.7em;
  font-weight: 700;
}

/* --- Detalhes de Contato --- */
.contact-item-detail {
  margin-bottom: 25px;
  padding: 25px;
  background-color: var(--cor-branco);
  border: 1px solid var(--cor-cinza-borda);
  border-left: 4px solid var(--cor-bordo-escuro);
  border-radius: 4px;
}

.contact-item-detail .contact-label {
  margin-bottom: 15px;
  font-size: 1.2em;
  font-weight: 700;
  color: var(--cor-bordo-escuro) !important; 
}

.contact-item-detail a.contact-value {
  display: block;
  margin-bottom: 20px;
  font-size: 1.1em;
  line-height: 1.6;
  color: var(--cor-cinza-texto) !important;
  text-decoration: none !important;
  transition: color 0.3s ease;
}

.contact-item-detail a.contact-value:hover {
  color: var(--cor-bordo-escuro) !important; 
}

.contact-item-detail .contact-action-button {
  display: inline-block;
  padding-bottom: 3px;
  font-weight: 600;
  color: var(--cor-bordo-escuro) !important;
  border-bottom: 2px solid var(--cor-bordo-escuro) !important;
  text-decoration: none !important;
  transition: color 0.3s ease, border-color 0.3s ease;
}

.contact-item-detail .contact-action-button:hover {
  color: #3e0b06 !important;
  border-color: #3e0b06 !important;
}

/* --- Formulário de Contato --- */
.contact-form {
  padding: 30px;
  background-color: #fcfcfc;
  border: 1px solid #ddd;
  border-radius: 6px;
}

.form-group {
  margin-bottom: 20px;
}

.contact-form label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea {
  width: 100%;
  padding: 12px;
  font-size: 1em;
  border: 1px solid #ccc;
  border-radius: 4px;
  transition: border-color 0.3s;
}

.contact-form input:focus,
.contact-form textarea:focus {
  outline: none;
  border-color: var(--cor-bordo-escuro);
}

.submit-button {
  display: block;
  width: 100%;
  padding: 15px;
  font-size: 1.1em;
  font-weight: 700;
  color: var(--cor-branco);
  background-color: var(--cor-bordo-escuro);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.3s;
}

.submit-button:hover {
  background-color: #5d1109;
}

/* --- Mapa --- */
.map-section {
  padding: 40px 0 80px;
}

.map-title {
  margin-bottom: 30px;
  font-size: 2em;
  font-weight: 700;
  text-align: center;
}

.map-embed-wrapper {
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

/* =================================================================== */
/* 14. PÁGINA DE RESULTADOS DE BUSCA
/* =================================================================== */

.main-content-wrapper { 
  padding: 60px 0;
}

.search-results-section {
  max-width: 900px;
  margin: 0 auto;
  padding: 20px;
}

#results-title {
  margin-bottom: 40px;
  padding-bottom: 15px;
  font-size: 2.2em;
  font-weight: 700;
  border-bottom: 3px solid #E0C7C2;
}

.search-photo-container {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 40px;
}

.search-profile-img {
  width: 60px;
  height: 60px;
  border: 3px solid var(--cor-bordo-escuro);
  border-radius: 50%;
  object-fit: cover;
}

.search-photo-container p {
  margin: 0;
  font-style: italic;
  color: var(--cor-marrom-rosado);
}

.results-list li {
  margin-bottom: 25px;
  padding: 25px;
  background-color: var(--cor-branco);
  border: 1px solid #E0C7C2;
  border-left: 5px solid var(--cor-bordo-escuro);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
  transition: transform 0.3s, box-shadow 0.3s;
}

.results-list li:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

.results-list h2 {
  margin: 0 0 8px 0;
  font-size: 1.6em;
}

.results-list h2 a {
  font-weight: 700;
}
.results-list h2 a:hover {
  color: var(--cor-marrom-rosado);
  text-decoration: underline;
}

.no-results {
  padding: 30px;
  font-size: 1.2em;
  text-align: center;
  background-color: var(--cor-branco);
  border: 1px dashed #E0C7C2;
  border-radius: 8px;
}


/* Configuração do Container (Posição) */
.btn-whatsapp-flutuante {
    position: fixed;
    bottom: 25px; /* Distância exata da parte de baixo */
    right: 25px;  /* Distância exata da direita (mesmo valor para ficar quadrado) */
    z-index: 9999;
    background-color: transparent;
    padding: 0;
    border: none;
    display: block;
    transition: transform 0.3s;
}

/* Efeito ao passar o mouse/tocar */
.btn-whatsapp-flutuante:hover {
    transform: scale(1.1);
    background-color: transparent;
}

/* Configuração do Tamanho da Imagem */
.btn-whatsapp-flutuante .whatsapp-icon {
    width: 100px;  /* Aumentei para ficar bem visível */
    height: 100px; /* Altura igual a largura */
    display: block;
    /* Sombra suave na própria imagem para destacar do fundo */
    filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.3));
}

/* REGRA: Esconde em telas de computador (acima de 1024px) */
@media (min-width: 1025px) {
    .btn-whatsapp-flutuante {
        display: none !important;
    }
}

/* Ajuste opcional para celulares muito pequenos (iPhone SE, etc) */
@media (max-width: 380px) {
    .btn-whatsapp-flutuante .whatsapp-icon {
        width: 70px; /* Reduz um pouquinho só em telas minúsculas */
        height: 70px;
    }
    .btn-whatsapp-flutuante {
        bottom: 20px;
        right: 20px;
    }
}

/* =================================================================== */
/* --- ESTILOS RESPONSIVOS COMPLETOS E ABRANGENTES --- */
/* =================================================================== */

@media (max-width: 1200px) {
    .container { 
        padding: 0 30px; 
    }
    .about-me-section .text-rectangle { 
        width: 80%; 
        padding: 40px 40px 40px 120px; 
        margin-left: -80px; 
    }
    .mission-section {
        padding: 80px 20px;
    }
    .mission-text-rectangle {
        max-width: 60%;
    }
    .intro-text-wrapper { 
        width: 65%; 
    }
    .intro-text-content-box { 
        padding: 50px; 
    }
    .search-form {
        width: 220px;
    }
}

@media (max-width: 1024px) {
    /* --- ESTRUTURA E NAVEGAÇÃO (CÓDIGO ORIGINAL RESTAURADO E INTOCADO) --- */
    .container { 
        padding: 0 20px; 
    }
    body { 
        padding-top: 55px;
    } 
    body.menu-open { 
        overflow: hidden; 
    }
    .main-header { 
        position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; 
    }
    .header-content { 
        padding: 0 20px; justify-content: space-between; 
    }
    .menu-toggle { 
        display: block; 
    }
    .main-nav { 
        display: none; position: fixed; top: 85px; left: 0; width: 100%; height: calc(100vh - 85px); 
        background-color: var(--cor-bordo-escuro); z-index: 999; overflow-y: auto; padding-top: 5px; 
        transform: translateX(100%); transition: transform 0.3s ease-out; 
    }
    .main-nav.menu-ativo { 
        display: block; transform: translateX(0); 
    }
    .main-nav ul { 
        flex-direction: column; align-items: flex-start; padding: 20px 20px 100px 20px; 
    }
    .main-nav li { 
        width: 100%; border-bottom: 1px solid rgba(255, 255, 255, 0.1); margin-left: 0; 
    }
    .main-nav .has-submenu>a { 
        display: flex; justify-content: space-between; align-items: center; 
    }

    
/* Remove a seta, pois ela não tem mais função */
.main-nav .has-submenu>a::after { 
    display: none; 
}
    .main-nav .has-submenu.submenu-open>a::after { 
        transform: rotate(-135deg); 
    }
/* Deixa o submenu sempre visível, com recuo e sem animação */
.submenu, .main-nav ul.submenu { 
    display: block; 
    position: static; 
    width: 100%; 
    max-height: 500px; /* Garante que ele tenha altura para aparecer */
    overflow: visible; 
    background-color: rgba(0, 0, 0, 0.2); 
    box-shadow: none; 
    padding: 0 0 0 30px; /* Adiciona o recuo à esquerda por padrão */
    border-radius: 0; 
    transition: none; /* Remove a animação que não é mais necessária */
}
    .has-submenu.submenu-open>.submenu { 
        max-height: 500px;
        padding-left: 30px; 
    }
    .submenu li { 
        border-bottom: none; 
    }
    .submenu a { 
        padding-left: 30px; 
    }
    
    /* --- REARRANJO DE LAYOUTS PRINCIPAIS --- */
    .about-me-wrapper {
        align-items: flex-start;
    }
    .intro-content-wrapper, .sobre-page-wrapper, .contact-grid { 
        flex-direction: column; 
    }
    .mission-wrapper {
        flex-direction: column-reverse;
        gap: 30px;
        padding-top: 15px;
    }
    .mission-image {
        margin-left: 0;
    }
    .mission-text-rectangle {
        max-width: 100%;
    }
    .intro-image-wrapper { 
        width: 100%; margin-bottom: -50px; 
    }
    .intro-text-wrapper { 
        position: static; transform: none; width: 100%;
    }
    .sobre-page-wrapper {
        align-items: center;
    }
    .hero-servicos-wrapper { 
        flex-direction: column; gap: 30px; 
    }
    .hero-servicos-imagem { 
        width: 90%; max-width: 450px; height: auto; border-radius: 500px;
    }
    .hero-servicos-texto { 
        width: 95%; max-width: 800px; text-align: center; position: relative; z-index: 2; 
    }
    .hero-servicos-texto .page-title, .hero-servicos-texto .intro-text { 
        text-align: center; 
    }
    
    /* --- AJUSTES DE COMPONENTES E PÁGINAS --- */
    .blog-hero .author-image {
        width: 400px; height: 400px;
    }
    .service-detail-section .author-image-wrapper.service-image-adjust {
        max-width: 400px; height: 400px;
    }
    .testimonials-wrapper {
    width: 100%;
    margin: 0 auto;
    }
    .testimonial-card { 
        padding: 40px 70px; 
    }
    .testimonials-wrapper:hover .prev-btn, .testimonials-wrapper:hover .next-btn {
        opacity: 0.8;
    }
    .prev-btn, .next-btn { 
        opacity: 0.8; background-color: rgba(255, 255, 255, 0.20); width: 40px; height: 40px; 
    }
    .prev-btn { left: 15px; } 
    .next-btn { right: 15px; }
    .prev-btn::before, .next-btn::before { 
        border-color: var(--cor-bordo-escuro); 
    }

    .main-footer {
    padding: 2px 0 40px 0;
    color: var(--cor-branco);
    background-color: var(--cor-bordo-escuro);
}

    .footer-content-wrapper { 
        display: none; 
    }
    .footer-left-card { 
        display: none; 
        
    }
    .footer-nav-column { 
        display: none; 
    }
    .contact-info-column { 
        display: none;
    }

    /* --- AJUSTES DE TIPOGRAFIA ESPECÍFICOS --- */
    .section-title, .contact-title, .blog-main-title { font-size: 2.3em; }
    .hero-content h1, .article-detail-title { font-size: 2.4em; }
    #results-title, .detail-title, .testimonials h6 { font-size: 2em; }
    .hero-content p { font-size: 1.3em; }
    .text-rectangle h2.section-title, .map-title { font-size: 1.9em; }
    .cta-content h2, .cta-section.small-cta h4, .values-title { font-size: 1.7em; }
    .topic-heading, .contact-sub-title, .intro-text-content-box h1 { font-size: 1.5em; }
    .results-list h2 { font-size: 1.4em; }
    .service-card h3, .value-item h3, .article-body h2 { font-size: 1.3em; }
    .article-title { font-size: 1.25em; }
    body, .cta-content p, .blog-intro-text, .detail-topic p, .no-results { font-size: 1.1em; }
    .main-nav a { padding: 15px 0; font-size: 1.1em; display: block; }
    .service-card p, .about-me-content p, .intro-text-content-box p, .testimonial-card p, .contact-intro, .article-body, .article-body h3, .contact-value, .mission-text-rectangle p { font-size: 1.05em; }
}

@media (max-width: 768px) {
    body { 
        padding-top: 45px;
    }
    .main-nav { 
        top: 75px; height: calc(100vh - 75px); 
    }
    .container { 
        padding: 0 10px; 
    }
    .header-content .logo img { 
        height: 45px; 
    }
    .hero, .about-me-section, .intro-text-section, .services-section, .testimonials, .cta-section, .sobre-page-section, .mission-section, .values-section, .blog-hero, .articles-list-section, .contact-hero-section, .contact-details-section, .map-section, .article-detail-section {
        padding-left: 10px; padding-right: 10px;
    }
    .hero, .about-me-section, .intro-text-section, .services-section, .testimonials, .cta-section, .mission-section, .sobre-page-section {
        padding-top: 50px; padding-bottom: 50px;
    }
    .sobre-page-section { 
       padding-top: 0px;
    }
    .mission-wrapper, .sobre-page-wrapper {
        padding-top: 50px;
    }
    .about-me-wrapper { 
        flex-direction: column; gap: 0; align-items: center; 
    }
    .about-me-image { 
        width: 90%; max-width: 350px; margin-left: 0; transform: translateY(20px); z-index: 2; 
    }
    .about-me-section .text-rectangle { 
        width: 100%; max-width: 550px; margin-top: -20px; margin-left: 0; padding: 50px 30px 40px; text-align: center; z-index: 1; 
    }
    .about-me-section .text-rectangle h2.section-title, .about-me-section .about-me-content p { 
        text-align: center; 
    }
    .services-grid, .articles-grid, .values-items-container { 
        grid-template-columns: 1fr; 
    }
    .sobre-page-image, .mission-image, .hero-servicos-imagem { 
        width: 90%; max-width: 400px; height: auto; aspect-ratio: 2 / 3; 
    }
    .sobre-page-image, .hero-servicos-imagem {
        border-radius: 500px;
    }
    .blog-hero .author-image {
        width: 300px; height: 300px;
    }
    .service-detail-section .author-image-wrapper.service-image-adjust {
        max-width: 300px; height: 300px;
    }
    .testimonial-card { 
        padding: 30px 50px; 
    }
    .prev-btn, .next-btn { 
        width: 30px; height: 30px; 
    }
    .prev-btn { left: 8px; } 
    .next-btn { right: 8px; }

    .main-footer {
    padding: 0px 0 30px 0;
}


    /* --- AJUSTES DE TIPOGRAFIA ESPECÍFICOS --- */
    .section-title, .contact-title, .blog-main-title { font-size: 2.1em; }
    .hero-content h1, .article-detail-title { font-size: 2.2em; }
    #results-title, .detail-title, .testimonials h6 { font-size: 1.9em; }
    .hero-content p { font-size: 1.2em; }
    .text-rectangle h2.section-title, .map-title { font-size: 1.8em; }
    .cta-content h2, .cta-section.small-cta h4, .values-title { font-size: 1.6em; }
    .topic-heading, .contact-sub-title, .intro-text-content-box h1 { font-size: 1.4em; }
    .results-list h2 { font-size: 1.3em; }
    .service-card h3, .value-item h3, .article-body h2 { font-size: 1.2em; }
    .article-title { font-size: 1.15em; }
    body, .cta-content p, .blog-intro-text, .detail-topic p, .no-results, .service-card p, .about-me-content p, .intro-text-content-box p, .testimonial-card p, .contact-intro, .article-body, .article-body h3, .contact-value, .mission-text-rectangle p { font-size: 1em; }
    .contact-label{font-size: 0.75em}
    .article-date, .article-published-date { font-size: 0.85em; }
    .footer-tagline { font-size: 0.85em; line-height: 1.5; }
    .contact-info-column {display:none;}
}

@media (max-width: 480px) {
    body { 
        padding-top: 35px;
    }
    .main-nav { 
        top: 70px; height: calc(100vh - 70px); 
    }
    .header-content .logo img { 
        height: 40px; 
    }
    .container { 
        padding: 0 15px; 
    }
    .hero, .about-me-section, .intro-text-section, .services-section, .testimonials, .cta-section, .sobre-page-section, .mission-section, .values-section, .blog-hero, .articles-list-section, .contact-hero-section, .contact-details-section, .map-section, .article-detail-section {
        padding-left: 15px; padding-right: 15px;
    }
    .button, .cta-button, .page-service-button { 
        padding: 12px 22px; width: 100%; box-sizing: border-box;
    }
    .about-me-image { 
        max-width: 280px; 
    }
    .about-me-section .text-rectangle { 
        margin-top: -30px; padding-top: 60px; 
    }
    .hero-servicos-imagem { 
        max-width: 260px; 
    }
    .hero-servicos-texto { 
        margin-top: -60px; padding: 25px 20px; 
    }
    .blog-hero .author-image, .service-detail-section .author-image-wrapper.service-image-adjust {
        width: 250px; height: 250px;
    }
    .testimonial-card { 
        padding: 25px 50px;
    }
    .prev-btn, .next-btn { 
        width: 25px; height: 25px; 
    }
    .prev-btn { left: 5px; } 
    .next-btn { right: 5px; }
    .prev-btn::before, .next-btn::before { 
        width: 8px; height: 8px; border-width: 0 2px 2px 0; 
    }
    .footer-left-card { 
        padding: 25px; width: 100%;
    }
    .footer-logo-svg {
        width: 180px;
    }
    .intro-text-content-box { 
        padding: 30px; 
    }
    .value-item, .service-card {
        padding: 30px;
    }
    .article-card {
        padding: 25px;
    }
    .author-info-block { 
        flex-direction: column; align-items: flex-start; gap: 10px; 
    }
    .author-photo-small {
        width: 60px; height: 60px;
    }

    /* --- AJUSTES DE TIPOGRAFIA ESPECÍFICOS --- */
    .section-title, .contact-title, .blog-main-title { font-size: 1.9em; }
    .hero-content h1, .article-detail-title { font-size: 2em; }
    #results-title, .detail-title, .testimonials h6 { font-size: 1.7em; }
    .hero-content p { font-size: 1.1em; }
    .text-rectangle h2.section-title, .map-title { font-size: 1.6em; }
    .cta-content h2, .cta-section.small-cta h4, .values-title { font-size: 1.5em; }
    .topic-heading, .contact-sub-title, .intro-text-content-box h1 { font-size: 1.3em; }
    .results-list h2 { font-size: 1.2em; }
    .service-card h3, .value-item h3, .article-body h2 { font-size: 1.15em; }
    .article-title { font-size: 1.1em; }
    .body, .cta-content p, .blog-intro-text, .detail-topic p, .no-results, .service-card p, .about-me-content p, .intro-text-content-box p, .testimonial-card p, .contact-intro, .article-body, .article-body h3, .mission-text-rectangle p { font-size: 0.95em; }
    .contact-value, .contact-info-column a.contact-value {font-size: 0.85em;}

    .footer-secondary-info { font-size: 0.7em; }
    .button, .cta-button, .page-service-button, .main-nav a, .submit-button { font-size: 1em; }
    .footer-tagline { font-size: 0.9em; }
}

@media (max-width: 360px) {
    .hero-servicos-imagem { 
        max-width: 220px; 
    }
    .hero-servicos-texto { 
        margin-top: -50px; padding: 20px 15px;
    }
    .about-me-image {
        transform: translateY(15px);
    }
    .about-me-section .text-rectangle { 
        margin-top: -15px; padding-top: 45px; 
    }
    .contact-form {
        padding: 20px;
    }
    
    /* --- AJUSTES DE TIPOGRAFIA ESPECÍFICOS --- */
    .section-title, .contact-title, .blog-main-title { font-size: 1.7em; }
    .hero-content h1, .article-detail-title { font-size: 1.8em; }
    #results-title, .detail-title, .testimonials h6 { font-size: 1.6em; }
    .hero-content p { font-size: 1.05em; }
    .text-rectangle h2.section-title, .map-title { font-size: 1.5em; }
    .cta-content h2, .cta-section.small-cta h4, .values-title { font-size: 1.4em; }
    .topic-heading, .contact-sub-title, .intro-text-content-box h1 { font-size: 1.2em; }
    .results-list h2 { font-size: 1.1em; }
    .service-card h3, .value-item h3, .article-body h2 { font-size: 1.1em; }
    .article-title { font-size: 1.05em; }
    .body, .cta-content p, .blog-intro-text, .detail-topic p, .no-results, .service-card p, .about-me-content p, .intro-text-content-box p, .testimonial-card p, .contact-intro, .article-body, .article-body h3, .contact-value, .mission-text-rectangle p { font-size: 0.9em; }
    .footer-tagline { font-size: 0.85em; }
}