/*
Theme Name: Viver a Vida F5
Theme URI: https://www.viveravidaf5.com.br/
Author: Viver a Vida F5
Description: Tema editorial personalizado do projeto Viver a Vida F5, adaptado do visual original para WordPress.
Version: 1.1.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: viver-a-vida-f5
*/

/* Integração WordPress sobre a identidade visual original. */
body.admin-bar .site-header { top: 32px; }
.skip-link { background: var(--sun); color: var(--ink-deep); font-weight: 800; left: 16px; padding: 12px 16px; position: fixed; top: -100px; z-index: 99999; }
.skip-link:focus { top: 16px; }
.site-main { min-height: 55vh; }
.desktop-menu,
.mobile-menu-list { list-style: none; margin: 0; padding: 0; }
.desktop-menu { align-items: center; display: flex; gap: 21px; font-size: .78rem; font-weight: 700; }
.desktop-menu > li > a { display: block; padding: 9px 0; position: relative; }
.desktop-menu > li > a::after { background: var(--orange); bottom: 2px; content: ""; height: 2px; left: 0; position: absolute; right: 100%; transition: right .2s; }
.desktop-menu > li > a:hover::after,
.desktop-menu > li.current-menu-item > a::after,
.desktop-menu > li.current_page_parent > a::after { right: 0; }
.desktop-menu > li.nav-cta-item > a { background: var(--ink); border-radius: 999px; color: #fff; padding: 12px 18px; }
.desktop-menu > li.nav-cta-item > a::after { display: none; }
.mobile-menu-list li a { border-bottom: 1px solid var(--line); display: block; padding: 12px; font-weight: 700; }
.custom-logo { height: auto; max-width: 165px; }

.shortcut-section { padding: 20px 0 110px; }
.shortcut-heading { align-items: end; display: grid; gap: 50px; grid-template-columns: 1fr .85fr; margin-bottom: 46px; }
.shortcut-heading h2 { font-size: clamp(2.8rem, 4.8vw, 5rem); line-height: .98; margin: 0; }
.shortcut-heading > p { color: #617566; line-height: 1.75; margin: 0; }
.shortcut-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); }
.shortcut-grid .story-card { min-height: 470px; }
.shortcut-grid .card-diary { background: linear-gradient(145deg, var(--ink), var(--sky)); color: #fff; }
.shortcut-grid .card-law { background: var(--cream); color: var(--ink-deep); }
.shortcut-grid .card-products { background: var(--sun); color: var(--ink-deep); }
.shortcut-grid .card-products::after { content: "✦"; font-size: 12rem; opacity: .16; right: -30px; top: -40px; }
.shortcut-grid .card-link { margin-top: 24px; }

.wp-page-content { margin: 0 auto; max-width: 920px; padding: 90px 24px 110px; }
.wp-page-content > *:first-child { margin-top: 0; }
.wp-page-content h2,
.wp-page-content h3 { color: var(--ink-deep); font-family: var(--font-playfair), serif; line-height: 1.08; }
.wp-page-content h2 { font-size: clamp(2.3rem, 4vw, 4rem); margin: 56px 0 22px; }
.wp-page-content h3 { font-size: clamp(1.6rem, 2.5vw, 2.4rem); margin: 42px 0 16px; }
.wp-page-content p,
.wp-page-content li { color: #405d49; font-size: 1.05rem; line-height: 1.85; }
.wp-page-content p { margin: 0 0 26px; }
.wp-page-content ul,
.wp-page-content ol { margin: 0 0 28px 1.25rem; padding: 0; }
.wp-page-content ul { list-style: disc; }
.wp-page-content ol { list-style: decimal; }
.wp-page-content a { color: var(--orange); text-decoration: underline; text-underline-offset: 4px; }
.wp-page-content figure { margin: 42px 0; }
.wp-page-content img { border-radius: 2px; height: auto; width: 100%; }
.wp-page-content blockquote { border-left: 5px solid var(--sun); color: var(--ink-deep); font-family: var(--font-playfair), serif; font-size: 1.7rem; margin: 42px 0; padding: 8px 0 8px 28px; }
.wp-page-content .wp-block-button__link { background: var(--ink); border-radius: 3px; color: #fff; font-size: .78rem; font-weight: 800; letter-spacing: .05em; padding: 16px 22px; text-decoration: none; text-transform: uppercase; }

.subpage-hero { background: linear-gradient(120deg, var(--ink-deep), var(--sky)); }
.law-hero { background: linear-gradient(120deg, #173526, #31543d 54%, #bd694a); }
.contact-hero { background: linear-gradient(120deg, #244632, #6f9955); }
.page-hero-mark { opacity: .07; pointer-events: none; position: absolute; right: -8%; top: 50%; transform: translateY(-50%) rotate(-7deg); width: min(720px, 58vw); }

.post-image { height: 280px; overflow: hidden; }
.post-image img { height: 100%; object-fit: cover; transition: transform .35s; width: 100%; }
.post-card:hover .post-image img { transform: scale(1.025); }
.post-meta { align-items: center; color: #65796a; display: flex; font-size: .65rem; font-weight: 800; justify-content: space-between; letter-spacing: .1em; margin-top: 20px; text-transform: uppercase; }
.filter-bar a { white-space: nowrap; border: 1px solid var(--line); color: var(--ink); cursor: pointer; background: transparent; border-radius: 999px; padding: 10px 16px; font-size: .72rem; font-weight: 800; }
.filter-bar a.selected { color: #fff; background: var(--ink); }
.post-card h2 a:hover { color: var(--orange); }
.post-read-more { color: var(--orange); font-size: .7rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.post-featured { grid-column: span 2; }
.post-featured .post-image,
.post-featured .post-art { height: 430px; }
.post-featured h2 { font-size: clamp(2.2rem, 3.7vw, 4rem); max-width: 980px; }
.pagination-shell { padding-bottom: 100px; }
.nav-links { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.nav-links .page-numbers { border: 1px solid var(--line); padding: 10px 14px; }
.nav-links .current { background: var(--ink); color: #fff; }

.single-head { background: var(--cream); padding: 95px 24px 60px; }
.single-head-inner { margin: auto; max-width: 1040px; }
.single-head h1 { color: var(--ink-deep); font-size: clamp(3rem, 6.5vw, 6.5rem); line-height: .95; margin: 0; }
.single-meta { color: #617566; display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.single-featured { margin: 0 auto; max-width: 1180px; padding: 50px 24px 0; }
.single-featured img { max-height: 680px; object-fit: cover; width: 100%; }
.single-content { margin: auto; max-width: 820px; padding: 70px 24px 100px; }
.single-content p,
.single-content li { color: #405d49; font-size: 1.12rem; line-height: 1.9; }
.single-content p { margin: 0 0 28px; }
.single-content h2,
.single-content h3 { color: var(--ink-deep); font-family: var(--font-playfair), serif; line-height: 1.08; }
.single-content h2 { font-size: clamp(2.3rem, 4vw, 3.8rem); margin: 58px 0 24px; }
.single-content h3 { font-size: 2rem; margin: 45px 0 20px; }
.single-content ul,
.single-content ol { margin: 0 0 30px 1.4rem; }
.single-content ul { list-style: disc; }
.single-content ol { list-style: decimal; }
.single-content a { color: var(--orange); text-decoration: underline; }
.single-taxonomy { border-top: 1px solid var(--line); color: #617566; margin-top: 60px; padding-top: 24px; }
.post-navigation { border-top: 1px solid var(--line); margin-top: 50px; padding-top: 30px; }

.products-content { border-top: 1px solid var(--line); }
.products-content:empty { display: none; }
.catalog-card-static { cursor: default; }
.catalog-card-static > strong { margin-top: 20px; }
.catalog-card-link { cursor: pointer; display: flex; }
.catalog-card-link:hover { background: #f5f2e8; transform: translateY(-3px); }
.product-selection { border-top: 1px solid var(--line); margin-top: 86px; padding: 86px 0 0; }
.product-selection-head { align-items: end; display: grid; gap: 50px; grid-template-columns: 1fr .85fr; margin-bottom: 42px; }
.product-selection-head h2 { color: var(--ink-deep); font-size: clamp(2.6rem, 4.5vw, 4.8rem); line-height: .98; margin: 0; }
.product-selection-head > p { color: #617566; line-height: 1.75; margin: 0; }
.recommended-product { background: var(--cream); border: 1px solid var(--line); display: grid; grid-template-columns: minmax(280px, .8fr) 1.2fr; min-height: 420px; }
.recommended-product + .recommended-product { border-top: 0; }
.recommended-product-alternate { background: var(--paper); }
.recommended-product-image { align-items: center; background: #f5f4ef; display: flex; justify-content: center; overflow: hidden; padding: 42px; }
.recommended-product-image span { aspect-ratio: 268 / 247; display: block; max-width: 330px; overflow: hidden; width: 100%; }
.recommended-product-image img { display: block; height: 100%; max-width: none; object-fit: cover; object-position: left center; width: 116%; }
.recommended-product-image.product-image-full img { max-width: 100%; object-fit: contain; width: 100%; }
.recommended-product-copy { align-self: center; padding: 55px; }
.recommended-product-copy h3 { color: var(--ink-deep); font-family: var(--font-playfair), serif; font-size: clamp(2rem, 3vw, 3.2rem); line-height: 1; margin: 0 0 20px; }
.recommended-product-copy > p { color: #405d49; line-height: 1.75; margin: 0 0 16px; }
.recommended-product-copy .product-note { color: #687b6d; font-size: .82rem; }
.status-card .wp-page-content { max-width: none; padding: 0; }
.status-card .wp-page-content h2:first-child { margin-top: 0; }
.resource-next { align-items: center; background: var(--ink-deep); color: #fff; display: flex; justify-content: space-between; padding: 80px max(7vw, 36px); }
.resource-next h2 { font-size: clamp(2.5rem, 4vw, 4rem); margin: 0; }

.link-page { min-height: 100vh; }
.link-brand img { height: auto; width: 180px; }
.profile-mark img { height: 100%; object-fit: contain; width: 100%; }

.empty-state { border: 1px solid var(--line); margin: 40px auto 100px; max-width: 800px; padding: 50px; text-align: center; }
.empty-state h2 { font-size: 2.5rem; margin-top: 0; }

@media (max-width: 1180px) {
  .desktop-nav { display: none; }
  .mobile-menu { display: block; }
}

@media (max-width: 960px) {
  .shortcut-heading,
  .shortcut-grid { grid-template-columns: 1fr; }
  .shortcut-grid .story-card { min-height: 390px; }
  .post-featured { grid-column: auto; }
  .post-featured .post-image,
  .post-featured .post-art { height: 300px; }
  .resource-next { align-items: flex-start; flex-direction: column; gap: 30px; }
  .product-selection-head,
  .recommended-product { grid-template-columns: 1fr; }
  .recommended-product-image { min-height: 320px; }
}

@media (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
}

@media (max-width: 600px) {
  body.admin-bar .site-header { top: 0; }
  .shortcut-section { padding-bottom: 75px; }
  .wp-page-content { padding-block: 65px 80px; }
  .single-head { padding-top: 70px; }
  .single-content { padding-block: 55px 80px; }
  .product-selection { margin-top: 65px; padding-top: 65px; }
  .product-selection-head { gap: 24px; margin-bottom: 30px; }
  .recommended-product-image { min-height: 270px; padding: 28px; }
  .recommended-product-copy { padding: 36px 26px; }
}
