/* ═══════════════════════════════════════════════════════════════
   TERRA EDITORIAL v2.0 — Design System CSS
   Blog: ruygripp.com.br | Parent: Kadence
   ═══════════════════════════════════════════════════════════════ */

/* ─── 1. DESIGN TOKENS ──────────────────────────────────────── */
:root {
  --te-terracotta:     #B8572A;
  --te-terracotta-dk:  #8E3F1C;
  --te-terracotta-lt:  #D4845E;
  --te-olive:          #3D4F2F;
  --te-olive-lt:       #5A6E4A;
  --te-olive-muted:    #8B9A7B;
  --te-slate:          #2C2C2C;
  --te-slate-md:       #4A4A4A;
  --te-slate-lt:       #7A7A7A;
  --te-cream:          #FAF6F1;
  --te-cream-dk:       #F0E9DF;
  --te-white:          #FFFFFF;
  --te-divider:        #E5DDD3;
  --te-overlay:        rgba(44,44,44,0.55);
  --te-font-heading:   'DM Serif Display', Georgia, 'Times New Roman', serif;
  --te-font-body:      'Source Sans 3', 'Segoe UI', system-ui, sans-serif;
  --te-space-xs:  4px;
  --te-space-sm:  8px;
  --te-space-md:  16px;
  --te-space-lg:  24px;
  --te-space-xl:  32px;
  --te-space-2xl: 48px;
  --te-space-3xl: 64px;
  --te-radius-sm: 4px;
  --te-radius-md: 8px;
  --te-radius-lg: 12px;
  --te-shadow-card:       0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --te-shadow-card-hover: 0 10px 30px rgba(0,0,0,.10), 0 4px 12px rgba(0,0,0,.06);
  --te-shadow-nav:        0 1px 0 rgba(0,0,0,.05);
  --te-ease:       cubic-bezier(.4,0,.2,1);
  --te-duration:   .3s;
  --te-transition: all var(--te-duration) var(--te-ease);
  --te-max-width:     1120px;
  --te-content-width: 740px;
}

/* ─── 2. BASE ────────────────────────────────────────────────── */
body {
  background-color: var(--te-cream) !important;
  color: var(--te-slate) !important;
  font-family: var(--te-font-body) !important;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
::selection { background: var(--te-olive-muted); color: var(--te-white); }
:focus-visible { outline: 2px solid var(--te-terracotta) !important; outline-offset: 3px !important; border-radius: 2px; }
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--te-cream); }
::-webkit-scrollbar-thumb { background: var(--te-olive-muted); border-radius: 3px; }

/* ─── 3. HEADER (MELHORIA: mais espaçamento) ─────────────────── */
.site-header { background:var(--te-white) !important; box-shadow:var(--te-shadow-nav) !important; border-bottom:1px solid var(--te-divider) !important; }
.item-is-fixed:not(.item-at-start) .site-header,
.header-sticky-shadow .site-header { background:rgba(253,252,250,.92) !important; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); box-shadow:0 2px 12px rgba(0,0,0,.06) !important; }
.site-branding { padding:12px 0 !important; }
.site-branding .custom-logo,
.site-branding img { max-height:40px; width:auto; }
.site-title { font-family:var(--te-font-heading) !important; font-size:1.1rem !important; line-height:1.1 !important; color:var(--te-slate) !important; }
.site-title a:hover { color:var(--te-terracotta) !important; }

/* Nav items */
.header-navigation .menu>li>a,
#primary-navigation .menu>li>a,
.main-navigation .menu>li>a { font-family:var(--te-font-body) !important; font-size:14px !important; font-weight:500 !important; color:var(--te-slate-md) !important; padding:10px 14px !important; letter-spacing:.01em; transition:color var(--te-duration) var(--te-ease), background var(--te-duration) var(--te-ease) !important; border-radius:var(--te-radius-sm); position:relative; line-height:1.25; }
.header-navigation .menu>li>a:hover,
#primary-navigation .menu>li>a:hover { color:var(--te-terracotta) !important; background:rgba(184,87,42,.06) !important; }

/* Active nav */
.header-navigation .menu>li.current-menu-item>a,
.header-navigation .menu>li.current_page_item>a { color:var(--te-terracotta) !important; font-weight:600 !important; }
.header-navigation .menu>li.current-menu-item>a::after { content:''; position:absolute; bottom:3px; left:14px; right:14px; height:2px; background:var(--te-terracotta); border-radius:1px; }

/* Dropdowns */
.header-navigation .sub-menu { background:var(--te-white) !important; border:1px solid var(--te-divider) !important; border-radius:var(--te-radius-md) !important; box-shadow:0 12px 40px rgba(0,0,0,.08) !important; padding:var(--te-space-sm) !important; }
.header-navigation .sub-menu a { font-size:14px !important; padding:10px 16px !important; border-radius:var(--te-radius-sm) !important; color:var(--te-slate-md) !important; }
.header-navigation .sub-menu a:hover { background:var(--te-cream) !important; color:var(--te-terracotta) !important; }

/* CTA button in nav */
.header-navigation .menu>li.menu-item-btn>a,
.header-navigation .menu>li.highlight-menu-item>a { background:var(--te-terracotta) !important; color:var(--te-white) !important; border-radius:var(--te-radius-md) !important; padding:9px 16px !important; font-weight:600 !important; }
.header-navigation .menu>li.menu-item-btn>a:hover { background:var(--te-terracotta-dk) !important; }

button.menu-toggle-open,
.menu-toggle-open,
.mobile-toggle-open-container .menu-toggle-open,
.mobile-nav-toggle {
  min-width: 44px;
  min-height: 44px;
  padding: 10px !important;
  border-radius: 12px !important;
}

.mobile-navigation .menu > li > a,
.mobile-navigation ul li a {
  font-size: 15px !important;
  line-height: 1.45 !important;
  padding-top: 12px !important;
  padding-bottom: 12px !important;
}

/* ─── 4. HERO (MELHORIA: CTA + imagem otimizada) ────────────── */
.te-hero { position:relative; overflow:hidden; border-radius:0 0 var(--te-radius-lg) var(--te-radius-lg); }
.te-hero__content { padding:var(--te-space-3xl) var(--te-space-xl); }
.te-hero__title { font-family:var(--te-font-heading) !important; font-size:clamp(2rem,5vw,3.2rem); color:var(--te-slate); line-height:1.15; margin-bottom:var(--te-space-md); letter-spacing:-.02em; }
.te-hero__subtitle { font-size:clamp(1rem,2.5vw,1.2rem); color:var(--te-slate-lt); line-height:1.6; max-width:520px; margin-bottom:var(--te-space-xl); }
.te-hero__cta { display:flex; flex-wrap:wrap; gap:var(--te-space-md); align-items:center; }

/* Buttons */
.te-btn { display:inline-flex; align-items:center; gap:8px; padding:14px 28px; font-family:var(--te-font-body); font-size:15px; font-weight:600; border-radius:var(--te-radius-md); border:none; cursor:pointer; transition:var(--te-transition); text-decoration:none; line-height:1; }
.te-btn--primary { background:var(--te-terracotta); color:var(--te-white); box-shadow:0 2px 8px rgba(184,87,42,.25); }
.te-btn--primary:hover { background:var(--te-terracotta-dk); box-shadow:0 4px 16px rgba(184,87,42,.35); transform:translateY(-1px); }
.te-btn--outline { background:transparent; color:var(--te-slate-md); border:1.5px solid var(--te-divider); }
.te-btn--outline:hover { border-color:var(--te-terracotta); color:var(--te-terracotta); background:rgba(184,87,42,.04); }

/* Hero image */
.te-hero__image { border-radius:var(--te-radius-lg); overflow:hidden; aspect-ratio:4/3; }
.te-hero__image img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--te-ease); }
.te-hero:hover .te-hero__image img { transform:scale(1.03); }

/* ─── 5. SECTION HEADINGS ────────────────────────────────────── */
.te-section-heading { font-family:var(--te-font-heading); font-size:clamp(1.5rem,3vw,2rem); color:var(--te-slate); margin-bottom:var(--te-space-xl); padding-bottom:var(--te-space-sm); position:relative; }
.te-section-heading::after { content:''; position:absolute; bottom:0; left:0; width:48px; height:3px; background:var(--te-terracotta); border-radius:2px; }
.te-section-heading--center { text-align:center; }
.te-section-heading--center::after { left:50%; transform:translateX(-50%); }

/* ─── 6. POST CARDS (MELHORIA: hover/sombra) ────────────────── */
.loop-entry .entry-content-wrap,
.loop-entry.type-post .entry-content-wrap,
.te-card { background:var(--te-white) !important; border-radius:var(--te-radius-lg) !important; box-shadow:var(--te-shadow-card) !important; overflow:hidden; transition:box-shadow var(--te-duration) var(--te-ease), transform var(--te-duration) var(--te-ease) !important; border:1px solid transparent; }
.loop-entry:hover .entry-content-wrap,
.te-card:hover { box-shadow:var(--te-shadow-card-hover) !important; transform:translateY(-4px) !important; border-color:var(--te-divider); }

/* Card thumbnail */
.loop-entry .post-thumbnail { overflow:hidden; border-radius:var(--te-radius-lg) var(--te-radius-lg) 0 0 !important; }
.loop-entry .post-thumbnail img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--te-ease) !important; }
.loop-entry:hover .post-thumbnail img { transform:scale(1.06) !important; }

/* Card body */
.loop-entry .entry-summary { padding:var(--te-space-lg) !important; }

/* Category badge */
.loop-entry .entry-taxonomies a,
.te-badge { display:inline-block; background:rgba(184,87,42,.10) !important; color:var(--te-terracotta) !important; font-size:12px !important; font-weight:600 !important; text-transform:uppercase !important; letter-spacing:.06em !important; padding:4px 12px !important; border-radius:100px !important; transition:var(--te-transition) !important; text-decoration:none !important; margin-bottom:var(--te-space-sm); }
.loop-entry .entry-taxonomies a:hover,
.te-badge:hover { background:var(--te-terracotta) !important; color:var(--te-white) !important; }

/* Card title */
.loop-entry .entry-title { font-family:var(--te-font-heading) !important; font-size:1.25rem !important; line-height:1.3 !important; color:var(--te-slate) !important; margin-bottom:var(--te-space-sm) !important; transition:color var(--te-duration) var(--te-ease) !important; }
.loop-entry .entry-title a { color:inherit !important; text-decoration:none !important; }
.loop-entry:hover .entry-title,
.loop-entry:hover .entry-title a { color:var(--te-terracotta) !important; }

/* Card excerpt */
.loop-entry .entry-summary p { font-size:15px !important; color:var(--te-slate-lt) !important; line-height:1.6 !important; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

/* Card meta */
.loop-entry .entry-meta { font-size:13px !important; color:var(--te-slate-lt) !important; display:flex; align-items:center; gap:var(--te-space-sm); margin-top:var(--te-space-md); padding-top:var(--te-space-md); border-top:1px solid var(--te-divider); }
.loop-entry .entry-meta a { color:var(--te-slate-md) !important; font-weight:500; text-decoration:none !important; }
.loop-entry .entry-meta a:hover { color:var(--te-terracotta) !important; }

/* Read more */
.loop-entry .entry-readmore a { display:inline-flex; align-items:center; gap:6px; font-size:14px !important; font-weight:600 !important; color:var(--te-terracotta) !important; text-decoration:none !important; margin-top:var(--te-space-md); }
.loop-entry .entry-readmore a::after { content:'\2192'; transition:transform var(--te-duration) var(--te-ease); }
.loop-entry:hover .entry-readmore a::after { transform:translateX(4px); }

/* Category-specific badges */
.loop-entry .entry-taxonomies a[href*="cafeicultura"] { background:rgba(61,79,47,.10) !important; color:var(--te-olive) !important; }
.loop-entry .entry-taxonomies a[href*="cafeicultura"]:hover { background:var(--te-olive) !important; color:var(--te-white) !important; }
.loop-entry .entry-taxonomies a[href*="estoicismo"] { background:rgba(44,44,44,.08) !important; color:var(--te-slate-md) !important; }
.loop-entry .entry-taxonomies a[href*="estoicismo"]:hover { background:var(--te-slate) !important; color:var(--te-white) !important; }

/* ─── 7. SINGLE POST ────────────────────────────────────────── */
.single .entry-content-wrap, .single .entry-content { max-width:var(--te-content-width); margin-left:auto; margin-right:auto; }
.single .entry-title { font-family:var(--te-font-heading) !important; font-size:clamp(1.8rem,4vw,2.8rem) !important; line-height:1.2 !important; color:var(--te-slate) !important; letter-spacing:-.02em; }
.single .entry-content h2 { font-family:var(--te-font-heading) !important; font-size:1.6rem !important; color:var(--te-slate) !important; margin-top:var(--te-space-2xl) !important; margin-bottom:var(--te-space-md) !important; }
.single .entry-content h3 { font-family:var(--te-font-heading) !important; font-size:1.3rem !important; color:var(--te-slate-md) !important; margin-top:var(--te-space-xl) !important; }
.single .entry-content p { font-size:17px; line-height:1.75; color:var(--te-slate-md); margin-bottom:var(--te-space-lg); }
.single .entry-content a { color:var(--te-terracotta); text-decoration:underline; text-decoration-color:rgba(184,87,42,.3); text-underline-offset:3px; transition:text-decoration-color var(--te-duration) var(--te-ease); }
.single .entry-content a:hover { text-decoration-color:var(--te-terracotta); }
.single .entry-content blockquote { border-left:4px solid var(--te-terracotta) !important; background:var(--te-cream-dk); padding:var(--te-space-lg) var(--te-space-xl) !important; margin:var(--te-space-xl) 0 !important; border-radius:0 var(--te-radius-md) var(--te-radius-md) 0; font-style:italic; color:var(--te-slate-md); }
.single .entry-content blockquote p { margin-bottom:0; }
.single .post-thumbnail img { border-radius:var(--te-radius-lg); box-shadow:0 4px 20px rgba(0,0,0,.08); }
.single .entry-content pre, .single .entry-content code { background:var(--te-slate) !important; color:var(--te-cream) !important; border-radius:var(--te-radius-md); font-size:14px; }
.single .entry-content pre { padding:var(--te-space-lg) !important; overflow-x:auto; }
.single .entry-content code { padding:2px 8px; font-size:.9em; }
.single .entry-content ul, .single .entry-content ol { padding-left:var(--te-space-xl); margin-bottom:var(--te-space-lg); }
.single .entry-content li { font-size:17px; line-height:1.7; color:var(--te-slate-md); margin-bottom:var(--te-space-sm); }
.single .entry-content img { border-radius:var(--te-radius-md); }
.single .entry-content figcaption { font-size:13px; color:var(--te-slate-lt); text-align:center; margin-top:var(--te-space-sm); font-style:italic; }

/* TOC */
.single .entry-content .wp-block-yoast-seo-table-of-contents { background:var(--te-cream-dk); border:1px solid var(--te-divider); border-radius:var(--te-radius-lg); padding:var(--te-space-xl); margin-bottom:var(--te-space-2xl); }

/* ─── 8. SIDEBAR ─────────────────────────────────────────────── */
.widget { margin-bottom:var(--te-space-xl) !important; padding:var(--te-space-lg) !important; background:var(--te-white) !important; border-radius:var(--te-radius-md) !important; box-shadow:var(--te-shadow-card) !important; border:1px solid var(--te-divider); }
.widget-title { font-family:var(--te-font-heading) !important; font-size:18px !important; color:var(--te-slate) !important; margin-bottom:var(--te-space-md) !important; padding-bottom:var(--te-space-sm); border-bottom:2px solid var(--te-terracotta); }

/* ─── 9. FOOTER ──────────────────────────────────────────────── */
.site-footer { background:var(--te-slate) !important; color:var(--te-cream-dk) !important; border-top:none !important; }
.site-footer .footer-widget-area { padding:var(--te-space-3xl) 0 var(--te-space-2xl) !important; }
.site-footer .widget-title { color:var(--te-white) !important; border-bottom-color:var(--te-terracotta) !important; }
.site-footer a { color:var(--te-cream-dk) !important; transition:color var(--te-duration) var(--te-ease) !important; }
.site-footer a:hover { color:var(--te-terracotta-lt) !important; }
.site-footer-bottom-wrap { background:rgba(0,0,0,.15) !important; padding:var(--te-space-lg) 0 !important; }
.site-footer-bottom-wrap .site-footer-wrap { font-size:14px !important; color:var(--te-slate-lt) !important; }

/* ─── 10. PAGINATION ─────────────────────────────────────────── */
.pagination .page-numbers, .nav-links .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 12px; border-radius:var(--te-radius-md) !important; font-size:15px; font-weight:500; color:var(--te-slate-md) !important; background:var(--te-white) !important; border:1px solid var(--te-divider) !important; transition:var(--te-transition) !important; text-decoration:none !important; }
.pagination .page-numbers:hover { border-color:var(--te-terracotta) !important; color:var(--te-terracotta) !important; }
.pagination .page-numbers.current { background:var(--te-terracotta) !important; color:var(--te-white) !important; border-color:var(--te-terracotta) !important; }

/* ─── 11. FORMS ──────────────────────────────────────────────── */
input[type="text"], input[type="email"], input[type="url"], input[type="search"], textarea, select { background:var(--te-white) !important; border:1.5px solid var(--te-divider) !important; border-radius:var(--te-radius-md) !important; padding:12px 16px !important; font-family:var(--te-font-body) !important; font-size:15px !important; color:var(--te-slate) !important; transition:border-color var(--te-duration) var(--te-ease) !important; }
input:focus, textarea:focus, select:focus { border-color:var(--te-terracotta) !important; box-shadow:0 0 0 3px rgba(184,87,42,.12) !important; }
button[type="submit"], input[type="submit"] { background:var(--te-terracotta) !important; color:var(--te-white) !important; border:none !important; border-radius:var(--te-radius-md) !important; padding:12px 24px !important; font-weight:600 !important; cursor:pointer; transition:var(--te-transition) !important; }
button[type="submit"]:hover, input[type="submit"]:hover { background:var(--te-terracotta-dk) !important; }

/* ─── 12. COMMENTS ───────────────────────────────────────────── */
.comments-area { max-width:var(--te-content-width); margin:var(--te-space-2xl) auto 0; }
.comment-list { list-style:none !important; padding:0 !important; }
.comment-body { padding:var(--te-space-lg) !important; background:var(--te-white); border-radius:var(--te-radius-md); margin-bottom:var(--te-space-md); border:1px solid var(--te-divider); }
.comment-author .avatar { border-radius:50%; }

/* ─── 13. BREADCRUMBS ────────────────────────────────────────── */
.kadence-breadcrumbs, .entry-breadcrumb { font-size:13px !important; color:var(--te-slate-lt) !important; }
.kadence-breadcrumbs a { color:var(--te-slate-lt) !important; text-decoration:none !important; }
.kadence-breadcrumbs a:hover { color:var(--te-terracotta) !important; }

/* ─── 14. TAG CLOUD ──────────────────────────────────────────── */
.tagcloud a, .wp-block-tag-cloud a { background:var(--te-cream-dk) !important; color:var(--te-slate-md) !important; border-radius:100px !important; padding:6px 14px !important; font-size:13px !important; border:1px solid var(--te-divider) !important; transition:var(--te-transition) !important; text-decoration:none !important; }
.tagcloud a:hover { background:var(--te-terracotta) !important; color:var(--te-white) !important; border-color:var(--te-terracotta) !important; }

/* ─── 15. BACK TO TOP ────────────────────────────────────────── */
.te-back-to-top { position:fixed; bottom:24px; right:24px; width:44px; height:44px; background:var(--te-terracotta); color:var(--te-white); border:none; border-radius:50%; cursor:pointer; box-shadow:0 4px 12px rgba(184,87,42,.3); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transform:translateY(12px); transition:var(--te-transition); z-index:999; }
.te-back-to-top.visible { opacity:1; visibility:visible; transform:translateY(0); }
.te-back-to-top:hover { background:var(--te-terracotta-dk); transform:translateY(-2px); }
.te-back-to-top svg { width:20px; height:20px; }

/* ─── 16. CTA SECTION ────────────────────────────────────────── */
.te-cta-section { background:var(--te-olive); color:var(--te-white); border-radius:var(--te-radius-lg); padding:var(--te-space-2xl) var(--te-space-xl); text-align:center; margin:var(--te-space-2xl) 0; }
.te-cta-section h3 { font-family:var(--te-font-heading); font-size:1.5rem; margin-bottom:var(--te-space-md); }
.te-cta-section p { color:rgba(255,255,255,.8); max-width:480px; margin:0 auto var(--te-space-xl); }

/* ─── 17. UTILITIES ──────────────────────────────────────────── */
.te-container { max-width:var(--te-max-width); margin:0 auto; padding:0 var(--te-space-lg); }
.te-text-center { text-align:center; }
.te-text-terracotta { color:var(--te-terracotta); }
.te-text-olive { color:var(--te-olive); }
.te-bg-cream { background:var(--te-cream); }
.te-bg-white { background:var(--te-white); }
.te-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
.te-reveal { opacity:0; transform:translateY(16px); transition:opacity .5s cubic-bezier(.4,0,.2,1), transform .5s cubic-bezier(.4,0,.2,1); }
.te-reveal.is-visible { opacity:1; transform:translateY(0); }

/* ─── 18. RESPONSIVE ─────────────────────────────────────────── */
@media (max-width:767px) {
  .site-branding { padding:10px 0 !important; }
  .site-branding .custom-logo,
  .site-branding img { max-height:36px; }
  .site-title { font-size:1.02rem !important; }
  .te-hero__content { padding:var(--te-space-2xl) var(--te-space-md); }
  .te-hero__title { font-size:1.8rem; }
  .single .entry-title { font-size:1.6rem !important; }
  .single .entry-content p, .single .entry-content li { font-size:16px; }
  .te-btn { width:100%; justify-content:center; }
}
@media (min-width:1024px) {
  .site-branding { padding:12px 0 !important; }
  .site-branding .custom-logo,
  .site-branding img { max-height:48px; }
  .site-title { font-size:1.22rem !important; }
  .header-navigation .menu>li>a,
  #primary-navigation .menu>li>a,
  .main-navigation .menu>li>a { padding:10px 14px !important; font-size:14px !important; }
  .header-navigation .menu>li.menu-item-btn>a,
  .header-navigation .menu>li.highlight-menu-item>a { padding:9px 16px !important; }
  .header-navigation .menu>li.current-menu-item>a::after { left:14px; right:14px; bottom:3px; }
}

/* ─── 19. REDUCED MOTION ─────────────────────────────────────── */
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .loop-entry:hover .entry-content-wrap, .te-card:hover { transform:none !important; }
  .loop-entry:hover .post-thumbnail img { transform:none !important; }
  .te-reveal, .te-reveal.is-visible { opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ─── 20. PRINT ──────────────────────────────────────────────── */
@media print {
  body { background:white !important; color:black !important; }
  .site-header, .site-footer, .te-back-to-top, .te-cta-section, .comments-area { display:none !important; }
  .single .entry-content { max-width:100%; }
  a[href]::after { content:" (" attr(href) ")"; font-size:12px; }
}

/* Global footer polish moved into the main stylesheet so page-specific overrides
   can be loaded only where they are actually needed. */
.site-footer {
  background: #2c2c2c !important;
}

.site-footer .site-footer-wrap,
.site-footer .site-middle-footer-inner-wrap,
.site-footer .site-footer-row-container-inner,
.site-footer .site-lower-footer-row {
  width: min(1120px, calc(100% - 36px)) !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.site-footer .footer-widget-area,
.site-footer .site-middle-footer-wrap {
  padding-top: 56px !important;
  padding-bottom: 28px !important;
}

.site-footer .widget,
.site-footer .widget-area .widget,
.site-footer .footer-widget-area .widget {
  background: #f8f4ee !important;
  color: #2c2c2c !important;
  border: 1px solid rgba(44, 44, 44, 0.08) !important;
  border-radius: 16px !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12) !important;
  padding: 26px 24px !important;
  margin: 0 !important;
  height: 100%;
}

.site-footer .widget-title,
.site-footer .widget h1,
.site-footer .widget h2,
.site-footer .widget h3,
.site-footer .widget h4 {
  color: #b8572a !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  border: 0 !important;
  padding: 0 !important;
  margin-bottom: 16px !important;
}

.site-footer .widget p,
.site-footer .widget li,
.site-footer .widget span,
.site-footer .widget strong,
.site-footer .widget small,
.site-footer .textwidget,
.site-footer .textwidget p,
.site-footer .custom-html-widget,
.site-footer .custom-html-widget p,
.site-footer .widget a,
.site-footer .menu a {
  color: #2c2c2c !important;
}

.site-footer .widget p,
.site-footer .textwidget p {
  line-height: 1.75;
}

.site-footer .widget ul,
.site-footer .widget ol,
.site-footer .menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-footer .widget li + li,
.site-footer .menu li + li {
  margin-top: 10px;
}

.site-footer .widget a,
.site-footer .menu a {
  display: inline-block;
  text-decoration: none !important;
  border-bottom: 1px solid transparent;
  transition: color 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.site-footer .widget a:hover,
.site-footer .menu a:hover {
  color: #b8572a !important;
  border-bottom-color: rgba(184, 87, 42, 0.28);
  transform: translateX(2px);
}

.site-footer .textwidget p:last-child,
.site-footer .widget p:last-child {
  margin-bottom: 0;
}

.site-footer .tagcloud a,
.site-footer .wp-block-tag-cloud a {
  display: inline-flex;
  align-items: center;
  margin: 0 8px 8px 0;
  padding: 8px 12px !important;
  background: #ffffff !important;
  color: #2c2c2c !important;
  border: 1px solid #e6ddd2 !important;
  border-radius: 999px !important;
  font-size: 13px !important;
}

.site-footer .tagcloud a:hover,
.site-footer .wp-block-tag-cloud a:hover {
  background: #b8572a !important;
  color: #ffffff !important;
  border-color: #b8572a !important;
  transform: none;
}

.site-footer-bottom-wrap {
  background: rgba(0, 0, 0, 0.18) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.site-footer-bottom-wrap,
.site-footer-bottom-wrap a,
.site-footer .site-info,
.site-footer .site-info a {
  color: rgba(255, 255, 255, 0.72) !important;
}

.site-footer-bottom-wrap a:hover,
.site-footer .site-info a:hover {
  color: #d4845e !important;
}

/* Archive and image sizing rules stay global to reduce layout shift on
   blog/archive pages even when block-specific styles are skipped. */
.archive .sharedaddy,
.blog .sharedaddy {
  display: none !important;
}

.loop-entry .post-thumbnail {
  aspect-ratio: 4 / 3;
}

.wp-post-image,
.entry-thumbnail img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
}

figure.wp-block-image img {
  width: 100%;
  height: auto;
}

@media (max-width: 767px) {
  .site-footer .widget,
  .site-footer .widget-area .widget,
  .site-footer .footer-widget-area .widget {
    padding: 22px 18px !important;
  }
}

/* Front-end polish v2.4.0 */
:root {
  --te-panel-radius: 8px;
  --te-shadow-soft: 0 10px 28px rgba(31, 43, 68, 0.06), 0 2px 10px rgba(44, 44, 44, 0.04);
  --te-shadow-soft-hover: 0 18px 38px rgba(31, 43, 68, 0.11), 0 8px 18px rgba(44, 44, 44, 0.06);
  --te-surface-border: rgba(44, 44, 44, 0.08);
}

.archive .page-header,
.blog .page-header,
.search .page-header,
.error404 .page-header {
  margin: 0 0 28px !important;
  padding: 24px 28px !important;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--te-surface-border);
  border-radius: var(--te-panel-radius);
  box-shadow: var(--te-shadow-soft);
}

.archive .page-title,
.blog .page-title,
.search .page-title,
.error404 .page-title {
  margin: 0 !important;
  line-height: 1.08;
  letter-spacing: -0.02em;
}

body.single article.post .entry-content-wrap,
body.page:not(.home) article.page .entry-content-wrap {
  padding: clamp(24px, 3vw, 38px) !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, #ffffff 100%);
  border: 1px solid var(--te-surface-border);
  border-radius: var(--te-panel-radius);
  box-shadow: var(--te-shadow-soft);
}

body.single article.post .entry-header,
body.page:not(.home) article.page .entry-header {
  margin-bottom: 18px !important;
}

body.single article.post .post-thumbnail,
body.page:not(.home) article.page .post-thumbnail {
  margin-bottom: 24px;
}

body.single article.post .post-thumbnail img,
body.page:not(.home) article.page .post-thumbnail img {
  border-radius: var(--te-panel-radius);
}

.single .entry-content > * + *,
.page .entry-content > * + * {
  margin-top: 1.05em;
}

.single .entry-content h2,
.page .entry-content h2 {
  margin-top: 1.85em;
}

.single .entry-content h3,
.page .entry-content h3 {
  margin-top: 1.4em;
}

.single .entry-content table,
.page .entry-content table,
.single .entry-content .wp-block-table table,
.page .entry-content .wp-block-table table {
  width: 100%;
  overflow: hidden;
  border-collapse: separate;
  border-spacing: 0;
  background: #ffffff;
  border: 1px solid var(--te-surface-border);
  border-radius: var(--te-panel-radius);
  box-shadow: var(--te-shadow-soft);
}

.single .entry-content table th,
.single .entry-content table td,
.page .entry-content table th,
.page .entry-content table td,
.single .entry-content .wp-block-table th,
.single .entry-content .wp-block-table td,
.page .entry-content .wp-block-table th,
.page .entry-content .wp-block-table td {
  padding: 12px 14px;
  border-color: rgba(44, 44, 44, 0.1);
}

.single .entry-content table th,
.page .entry-content table th,
.single .entry-content .wp-block-table th,
.page .entry-content .wp-block-table th {
  background: #faf6f1;
}

.loop-entry .entry-content-wrap,
.wp-block-post-template .wp-block-post,
.te-latest-posts li,
.widget,
.comment-body {
  border: 1px solid var(--te-surface-border) !important;
  border-radius: var(--te-panel-radius) !important;
  box-shadow: var(--te-shadow-soft) !important;
  transition:
    transform 0.24s var(--te-ease),
    box-shadow 0.24s var(--te-ease),
    border-color 0.24s var(--te-ease),
    background-color 0.24s var(--te-ease) !important;
}

.loop-entry .entry-summary {
  padding: 22px 22px 20px !important;
}

.loop-entry .entry-summary > * + * {
  margin-top: 10px;
}

.loop-entry .post-thumbnail {
  border-radius: var(--te-panel-radius) var(--te-panel-radius) 0 0 !important;
}

.loop-entry .entry-title,
.loop-entry .entry-summary .entry-title {
  margin: 0 !important;
}

.loop-entry .entry-summary p {
  margin-bottom: 0;
}

.loop-entry .entry-meta {
  margin-top: 14px !important;
  padding-top: 12px;
  border-top: 1px solid rgba(44, 44, 44, 0.08);
}

.widget {
  padding: 22px !important;
}

.content-area .widget ul li + li,
.content-area .widget ol li + li {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(44, 44, 44, 0.08);
}

.navigation.pagination,
.archive .pagination,
.blog .pagination {
  margin-top: 30px !important;
}

.navigation.pagination .nav-links,
.pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  min-height: 42px;
  padding: 0 14px;
  background: #ffffff;
  color: var(--te-slate);
  border: 1px solid var(--te-surface-border);
  border-radius: var(--te-panel-radius);
  box-shadow: var(--te-shadow-soft);
  text-decoration: none !important;
  transition:
    transform 0.24s var(--te-ease),
    color 0.24s var(--te-ease),
    border-color 0.24s var(--te-ease),
    box-shadow 0.24s var(--te-ease),
    background-color 0.24s var(--te-ease);
}

.page-numbers:hover {
  transform: translateY(-2px);
  color: var(--te-terracotta);
  border-color: rgba(184, 87, 42, 0.28);
  box-shadow: var(--te-shadow-soft-hover);
}

.page-numbers.current {
  background: var(--te-terracotta);
  color: #ffffff;
  border-color: var(--te-terracotta);
}

.search-form,
.wp-block-search__inside-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: stretch;
}

.search-form label {
  flex: 1 1 260px;
  margin: 0;
}

.search-field,
.wp-block-search__input {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  background: #fcfbf9;
  border: 1px solid var(--te-surface-border);
  border-radius: var(--te-panel-radius);
  box-shadow: inset 0 1px 2px rgba(44, 44, 44, 0.04);
  transition:
    border-color 0.24s var(--te-ease),
    box-shadow 0.24s var(--te-ease),
    background-color 0.24s var(--te-ease);
}

.search-field:focus,
.wp-block-search__input:focus {
  background: #ffffff;
  border-color: rgba(184, 87, 42, 0.4);
  box-shadow: 0 0 0 3px rgba(184, 87, 42, 0.12);
  outline: none;
}

.search-submit,
.wp-block-search__button {
  min-height: 48px;
  padding: 0 18px;
  border: none;
  border-radius: var(--te-panel-radius);
  background: var(--te-terracotta);
  color: #ffffff;
  font-weight: 700;
  box-shadow: 0 10px 22px rgba(184, 87, 42, 0.2);
  transition:
    transform 0.24s var(--te-ease),
    box-shadow 0.24s var(--te-ease),
    background-color 0.24s var(--te-ease);
}

.search-submit:hover,
.wp-block-search__button:hover {
  transform: translateY(-1px);
  background: var(--te-terracotta-dk);
  box-shadow: 0 16px 26px rgba(184, 87, 42, 0.28);
}

.error404 .content-area .site-main,
.search-no-results .content-area .site-main {
  max-width: 860px;
  margin: 0 auto;
  padding: clamp(28px, 4vw, 42px);
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid var(--te-surface-border);
  border-radius: var(--te-panel-radius);
  box-shadow: var(--te-shadow-soft);
}

.error404 .page-title,
.search-no-results .page-title {
  margin-bottom: 12px !important;
}

@media (min-width: 1025px) {
  .loop-entry:hover .entry-content-wrap,
  .wp-block-post-template .wp-block-post:hover,
  .te-latest-posts li:hover,
  .widget:hover,
  .comment-body:hover {
    transform: translateY(-4px);
    box-shadow: var(--te-shadow-soft-hover) !important;
  }
}

@media (max-width: 767px) {
  .archive .page-header,
  .blog .page-header,
  .search .page-header,
  .error404 .page-header,
  body.single article.post .entry-content-wrap,
  body.page:not(.home) article.page .entry-content-wrap,
  .error404 .content-area .site-main,
  .search-no-results .content-area .site-main {
    padding: 20px !important;
  }

  .page-numbers {
    min-width: 40px;
    min-height: 40px;
    padding: 0 12px;
  }
}

/* Responsive system v2.5.1 */
:root {
  --te-target-size: 44px;
  --te-safe-bottom: max(18px, calc(env(safe-area-inset-bottom) + 14px));
  --te-safe-side: max(16px, calc(env(safe-area-inset-right) + 12px));
}

html {
  scroll-padding-top: clamp(88px, 12vw, 132px);
}

body {
  text-rendering: optimizeLegibility;
}

:where(p, li, figcaption, blockquote) {
  overflow-wrap: anywhere;
}

:where(img, svg, video, iframe) {
  max-width: 100%;
}

:where(
  .post-thumbnail img,
  .wp-block-post-featured-image img,
  .te-hero-image img,
  .entry-content img,
  .wp-block-image img,
  .te-about-page .wp-block-image img
) {
  display: block;
  height: auto;
}

.header-navigation .menu > li > a,
#primary-navigation .menu > li > a,
.main-navigation .menu > li > a,
.mobile-navigation .menu > li > a,
.mobile-navigation ul li a,
.loop-entry .entry-readmore a,
.page-numbers,
.search-submit,
.wp-block-search__button {
  min-height: var(--te-target-size);
}

.te-back-to-top {
  bottom: var(--te-safe-bottom);
  right: var(--te-safe-side);
}

@media (max-width: 767px) {
  .site-branding {
    padding: 10px 0 !important;
  }

  .site-footer .footer-widget-area {
    padding: 36px 0 calc(24px + env(safe-area-inset-bottom)) !important;
  }

  .te-btn,
  .wp-block-button__link {
    min-height: var(--te-target-size);
  }
}

@media (prefers-reduced-motion: reduce) {
  .te-reveal,
  .loop-entry .entry-content-wrap,
  .wp-block-post-template .wp-block-post,
  .te-latest-posts li,
  .widget,
  .comment-body,
  .te-back-to-top,
  .te-btn,
  .wp-block-button__link,
  .page-numbers {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transform: none !important;
  }
}
