/* Fontes locais */
@font-face { font-family: "Neue Haas Grotesk Display Pro"; src: url('../fonts/NeueHaasDisplayPro-55Roman.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Neue Haas Grotesk Display Pro"; src: url('../fonts/NeueHaasDisplayPro-65Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Neue Haas Grotesk Display Pro"; src: url('../fonts/NeueHaasDisplayPro-75Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }

/* Base */
:root {
  --sd-accent: #34B6FF; /* token azul */
  --sd-accent-2: #9E62FB; /* token roxo */
  --sd-text: #1A1C1D; /* body */
  --sd-text-2: #262626; /* subtítulos */
  --sd-muted: #969696; /* meta, labels */
  --sd-border: #EAEAEA; /* bordas suaves */
  --sd-bg: #FFFFFF;
  --sd-danger: #F9452D; /* erros/alertas */
  --sd-font-sans: "Neue Haas Grotesk Display Pro", Inter, Onest, -apple-system, system-ui, Segoe UI, Roboto, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif;
  /* Escala tipográfica (base) */
  --sd-h1: clamp(36px, 5vw, 72px);
  --sd-h2: clamp(28px, 3.6vw, 48px);
  --sd-h3: clamp(22px, 2.6vw, 34px);
  --sd-h4: clamp(18px, 2.0vw, 24px);
  --sd-body: 16px;
  /* Espaçamento */
  --sd-gap: 16px;
  --sd-section-y: 72px;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; font-family: var(--sd-font-sans); color: var(--sd-text); background: var(--sd-bg); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.container { width: 100%; max-width: 1440px; margin: 0 auto; padding: 0; }
@media (max-width: 809px) { .container { max-width: 390px; } }
@media (min-width: 810px) and (max-width: 1439px) { .container { max-width: 810px; } }
@media (min-width: 1920px) { .container { max-width: 1920px; } }
.site-header, .site-footer { padding: 16px 0; }
.site-header .container { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.branding .logo img { display: block; height: 32px; width: auto; }
@media (max-width: 809px) { .branding .logo img { height: 28px; } }
.primary-nav .menu { display: flex; gap: 24px; }
.primary-nav .menu li { margin: 0; padding: 0; }
.primary-nav .menu a { display: inline-block; padding: 8px 0; color: var(--sd-text); text-decoration: none; font-weight: 500; letter-spacing: -0.01em; }
.primary-nav .menu a:hover { color: var(--sd-accent); text-decoration: underline; text-underline-offset: 2px; }
.primary-nav .menu .current-menu-item > a { color: var(--sd-accent); }
.primary-nav .menu .current-menu-ancestor > a { color: var(--sd-accent); }
.menu { list-style: none; display: flex; gap: 20px; margin: 0; padding: 0; }
.section { padding: var(--sd-section-y) 0; }
@media (max-width: 809px) {
  :root { --sd-section-y: 64px; }
}
/* Tipografia base */
body { font-size: var(--sd-body); line-height: 1.6; }
h1, h2, h3, h4 { margin: 0 0 12px; letter-spacing: -0.01em; }
h1 { font-size: var(--sd-h1); line-height: 1.08; font-weight: 700; }
h2 { font-size: var(--sd-h2); line-height: 1.12; font-weight: 500; }
h3 { font-size: var(--sd-h3); line-height: 1.18; font-weight: 500; }
h4 { font-size: var(--sd-h4); line-height: 1.2; font-weight: 500; }
p { margin: 0 0 16px; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 2px; }
/* Home: Hero */
.hero { text-align: center; }
.hero__title { font-size: var(--sd-h1); line-height: 1.08; margin: 0 0 12px; }
.hero__subtitle { font-size: clamp(16px, 2.2vw, 22px); color: var(--sd-text-2); margin: 0 0 20px; }
.hero__cta .button { font-weight: 600; }
.grid { display: grid; gap: var(--sd-gap); grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

/* Home: Seções (Flexible Content) */
.home-sections .richtext, .entry-content { line-height: 1.7; }
.home-image figure { margin: 0; }
.home-image img { width: 100%; height: auto; border-radius: 12px; display: block; }
.home-gallery .gallery-grid { display: grid; gap: var(--sd-gap); grid-template-columns: repeat(2, 1fr); }
/* Richtext defaults (listas/imagens) */
.richtext ul,
.entry-content ul,
.richtext ol,
.entry-content ol { padding-left: 1.25rem; margin: 0 0 16px; }
.richtext li,
.entry-content li { margin: 0 0 8px; }
.richtext img,
.entry-content img { max-width: 100%; height: auto; border-radius: 12px; display: block; }
/* Richtext: tabelas e títulos */
.entry-content table { width: 100%; border-collapse: collapse; margin: 16px 0; }
.entry-content th,
.entry-content td { border: 1px solid var(--sd-border); padding: 8px 10px; text-align: left; }
.entry-content thead th { background: #f8f8f8; }
.entry-content h2 { margin-top: 24px; }
.entry-content h3,
.entry-content h4 { margin-top: 20px; }
.entry-content blockquote { margin: 0 0 16px; padding: 12px 16px; border-left: 4px solid var(--sd-accent); background: #f9fcff; border-radius: 8px; }
@media (min-width: 810px) {
  .home-gallery .gallery-grid { grid-template-columns: repeat(3, 1fr); }
}
.home-two .two-col { display: grid; gap: var(--sd-gap); }
@media (min-width: 810px) {
  .home-two .two-col { grid-template-columns: 1fr 1fr; }
}
.home-quote blockquote { margin: 0; padding: 12px 16px; border-left: 4px solid var(--sd-accent); background: #f9fcff; border-radius: 8px; }
.home-cta { text-align: center; }
.home-cta p { color: #444; }
/* Scrollbar (do HTML original) */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #FFFFFF20; }
::-webkit-scrollbar-thumb { background: var(--sd-accent); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--sd-accent-2); }
/* Firefox */
@-moz-document url-prefix() { * { scrollbar-width: thin; scrollbar-color: var(--sd-accent) #FFFFFF20; } }

/* Breakpoints e utilitários (equivalentes) */
@media (min-width: 1920px) { .hidden-xxl { display: none !important; } }
@media (min-width: 1440px) and (max-width: 1919px) { .hidden-xl { display: none !important; } }
@media (min-width: 810px) and (max-width: 1439px) { .hidden-md { display: none !important; } }
@media (max-width: 809px) { .hidden-sm { display: none !important; } }

/* Appear animation */
[data-animate="appear"] { opacity: 0; transform: translateY(12px); transition: opacity .6s ease, transform .6s ease; }
[data-animate="appear"].is-visible { opacity: 1; transform: translateY(0); }

/* Botões */
.button, .wpcf7-submit { display: inline-block; background: #000; color: #fff; padding: 12px 18px; border: 0; cursor: pointer; text-decoration: none; border-radius: 12px; font-weight: 500; }

/* Cards */
.card { border: 1px solid var(--sd-border); border-radius: 12px; overflow: hidden; background: #fff; transition: transform .2s ease; }
.card:hover { transform: translateY(-2px); }
.card h2, .card h3 { font-size: 20px; margin: 12px; }
.card p { margin: 0 12px 16px; color: var(--sd-muted); }
/* Home – projetos em destaque: garantir imagem full-bleed com borda arredondada */
.home-projects img { width: 100%; height: auto; display: block; border-radius: 12px; }
/* Figcaption leve para imagens isoladas */
.home-image figcaption,
.proj-image figcaption { color: var(--sd-muted); font-size: 14px; margin-top: 6px; }
/* Contato – largura confortável do formulário */
.contact-form { max-width: 640px; }

/* Acessibilidade: focus-visible */
a:focus-visible,
.button:focus-visible,
.primary-nav .menu a:focus-visible { outline: 2px solid var(--sd-accent); outline-offset: 2px; border-radius: 8px; text-decoration: none; }

/* Modal (CF7) */
.sd-modal[hidden] { display: none !important; }
.sd-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; }
.sd-modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.5); }
.sd-modal__content { position: relative; background: #fff; border-radius: 12px; padding: 24px; width: min(560px, 90%); box-shadow: 0 10px 30px rgba(0,0,0,.2); }
.sd-modal__close { position: absolute; top: 8px; right: 12px; background: transparent; border: 0; font-size: 24px; cursor: pointer; }

/* CF7 Honeypot (garantir ocultação) */
.wpcf7 .wpcf7-honeypot { position: absolute !important; left: -9999px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; }
.wpcf7 .wpcf7-honeypot input { height: 1px !important; }

/* Contact Form 7 - Estilo visual */
.wpcf7 form { display: grid; gap: 12px; }
.wpcf7 form p { margin: 0; }
.wpcf7 label { display: block; font-weight: 500; color: var(--sd-text-2); margin: 0 0 6px; }
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea,
.wpcf7 select { width: 100%; border: 1px solid var(--sd-border); background: #fff; color: var(--sd-text); border-radius: 12px; padding: 12px 14px; font: inherit; }
.wpcf7 textarea { min-height: 120px; resize: vertical; }
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder { color: #9aa0a6; }
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus { outline: none; border-color: var(--sd-accent); box-shadow: 0 0 0 3px color-mix(in oklab, var(--sd-accent) 20%, transparent); }
.wpcf7 .wpcf7-form-control.wpcf7-submit { align-self: start; }
.wpcf7 .wpcf7-not-valid-tip { color: var(--sd-danger); font-size: 13px; margin-top: 6px; }
.wpcf7 form .wpcf7-response-output { margin: 8px 0 0; border: 1px solid var(--sd-border); background: #fff; color: var(--sd-text); border-radius: 12px; padding: 10px 12px; }
.wpcf7 form.invalid .wpcf7-response-output { border-color: var(--sd-danger); color: var(--sd-danger); }

/* Projects */
.projects-archive .card { border: 1px solid var(--sd-border); border-radius: 12px; overflow: hidden; background: #fff; transition: transform .2s ease; }
.projects-archive .card:hover { transform: translateY(-2px); }
.projects-archive .card h2 { font-size: 20px; margin: 12px; }
.projects-archive .card p { margin: 0 12px 16px; color: var(--sd-muted); }

.project-single .project-header { margin-bottom: 24px; }
.project-single .project-title { font-size: clamp(24px, 3.2vw, 40px); margin: 0 0 8px; }
.project-single .project-meta { list-style: none; display: flex; gap: 16px; padding: 0; margin: 0 0 12px; flex-wrap: wrap; color: var(--sd-muted); }
.project-single .project-thumb img { width: 100%; height: auto; display: block; border-radius: 12px; }

.proj-hero { display: grid; gap: 20px; align-items: center; }
.proj-hero__image img { width: 100%; height: auto; border-radius: 12px; }
.proj-hero__text h2 { margin: 0 0 8px; font-size: clamp(22px, 2.8vw, 34px); }
.proj-hero__text p { margin: 0; color: #444; }
@media (min-width: 810px) {
  .proj-hero { grid-template-columns: 1.2fr 1fr; }
}

.proj-text .richtext { line-height: 1.7; }
.proj-image figure { margin: 0; }
.proj-image img { width: 100%; height: auto; border-radius: 12px; display: block; }

.proj-gallery .gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (min-width: 810px) {
  .proj-gallery .gallery-grid { grid-template-columns: repeat(3, 1fr); }
}
.proj-gallery figure { margin: 0; }
.proj-gallery img { width: 100%; height: auto; display: block; border-radius: 10px; }

.proj-two .two-col { display: grid; gap: 18px; }
@media (min-width: 810px) {
  .proj-two .two-col { grid-template-columns: 1fr 1.2fr; align-items: start; }
}
.proj-two img { width: 100%; height: auto; border-radius: 12px; display: block; }

.proj-quote blockquote { margin: 0; padding: 12px 16px; border-left: 4px solid var(--sd-accent); background: #f9fcff; border-radius: 8px; }
.proj-quote cite { display: block; margin-top: 6px; color: #666; font-style: normal; }
