/*
Theme Name: Volta para a Vida
Theme URI: https://github.com/kellap/volta-para-vida-theme
Author: Kellap
Description: Tema de blocos para o projeto Volta para a Vida, de Eliz Carvalho.
Version: 0.4.0
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: volta-para-a-vida
*/

:root {
  --vpv-radius-sm: 18px;
  --vpv-radius-md: 28px;
  --vpv-radius-lg: 42px;
  --vpv-shadow-soft: 0 16px 42px rgba(35, 78, 82, 0.09);
  --vpv-shadow-hover: 0 24px 60px rgba(35, 78, 82, 0.16);
  --vpv-border-soft: rgba(35, 78, 82, 0.12);
  --vpv-transition: 220ms ease;
}

html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }
a { text-underline-offset: 0.18em; }
.wp-site-blocks { overflow: clip; }

.vpv-section { padding-top: clamp(4rem, 7vw, 7rem); padding-bottom: clamp(4rem, 7vw, 7rem); }
.vpv-section-compact { padding-top: clamp(2.75rem, 5vw, 4.5rem); padding-bottom: clamp(2.75rem, 5vw, 4.5rem); }
.vpv-eyebrow { letter-spacing: .12em; text-transform: uppercase; font-size: .78rem; font-weight: 700; }
.vpv-reading { max-width: 720px; }

.vpv-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--vpv-border-soft);
  border-radius: var(--vpv-radius-md);
  box-shadow: var(--vpv-shadow-soft);
  transition: transform var(--vpv-transition), box-shadow var(--vpv-transition), border-color var(--vpv-transition);
}
.vpv-card:hover { transform: translateY(-6px); box-shadow: var(--vpv-shadow-hover); border-color: rgba(35,78,82,.2); }
.vpv-card::after { content:""; position:absolute; width:130px; height:130px; right:-65px; bottom:-70px; border-radius:50%; background:rgba(176,141,87,.08); pointer-events:none; }
.vpv-note { border-left:3px solid var(--wp--preset--color--accent-gold); padding-left:1.25rem; }

.vpv-grid-cards,
.vpv-post-grid .wp-block-post-template { align-items:stretch; }
.vpv-grid-cards > .wp-block-column,
.vpv-post-grid .wp-block-post { display:flex; min-height:100%; }
.vpv-grid-cards > .wp-block-column > .wp-block-group,
.vpv-post-grid .wp-block-post > .wp-block-group { width:100%; height:100%; }
.vpv-post-card { display:flex; flex-direction:column; min-height:100%; }
.vpv-post-card .wp-block-post-excerpt { flex-grow:1; }

.vpv-editorial-art {
  position:relative;
  min-height:320px;
  aspect-ratio:4 / 3;
  overflow:hidden;
  border:1px solid var(--vpv-border-soft);
  border-radius:var(--vpv-radius-md);
  box-shadow:var(--vpv-shadow-soft);
  background:
    radial-gradient(circle at 24% 26%, rgba(176,141,87,.24), transparent 28%),
    radial-gradient(circle at 78% 72%, rgba(122,143,122,.24), transparent 34%),
    linear-gradient(145deg, #f2eadf, #e5d7c7);
}
.vpv-editorial-art::before,
.vpv-editorial-art::after { content:""; position:absolute; pointer-events:none; }
.vpv-editorial-art::before { width:42%; aspect-ratio:1; right:-9%; top:-13%; border-radius:50%; background:rgba(35,78,82,.12); }
.vpv-editorial-art::after { width:30%; aspect-ratio:1; left:-8%; bottom:-16%; border-radius:44% 56% 52% 48%; background:rgba(168,108,74,.14); }
.vpv-art-mark,
.vpv-art-label { display:none !important; }
.vpv-editorial-art > .wp-block-image,
.vpv-editorial-art figure,
.vpv-editorial-art .wp-block-image,
.vpv-editorial-art picture,
.vpv-editorial-art img { width:100%; height:100%; margin:0; }
.vpv-editorial-art img { position:absolute; inset:0; display:block; object-fit:cover; object-position:center; border-radius:inherit; }
.vpv-editorial-art:has(img)::before,
.vpv-editorial-art:has(img)::after { display:none; }
.vpv-editorial-art--portrait { min-height:480px; aspect-ratio:4 / 5; border-radius:36px; }
.vpv-editorial-art--radar,
.vpv-editorial-art--journey { min-height:360px; aspect-ratio:4 / 3; }
.vpv-editorial-art--radar { background:radial-gradient(circle at center, rgba(255,253,250,.9) 0 3%, transparent 4%),repeating-radial-gradient(circle at center, rgba(176,141,87,.2) 0 2px, transparent 3px 40px),linear-gradient(145deg, rgba(35,78,82,.94), rgba(122,143,122,.88)); }
.vpv-editorial-art--journey { background:radial-gradient(circle at 28% 74%, rgba(255,253,250,.5), transparent 28%),linear-gradient(145deg, #efe4d7, #d6bea3 58%, #7a8f7a); }
.vpv-post-visual { position:relative; min-height:220px; margin-bottom:1rem; }
.vpv-post-visual .vpv-editorial-art { min-height:220px; height:220px; aspect-ratio:auto; border-radius:calc(var(--vpv-radius-md) - 8px); box-shadow:none; }
.vpv-post-visual .wp-block-post-featured-image { position:absolute; inset:0; z-index:2; margin:0; overflow:hidden; border-radius:calc(var(--vpv-radius-md) - 8px); }
.vpv-post-visual .wp-block-post-featured-image img { width:100%; height:220px; object-fit:cover; object-position:center; transition:transform 400ms ease; }
.vpv-post-card:hover .wp-block-post-featured-image img { transform:scale(1.035); }
.vpv-post-visual:has(.wp-block-post-featured-image img) .vpv-editorial-art { visibility:hidden; }
.vpv-blog-hero { border-bottom-left-radius:var(--vpv-radius-lg); border-bottom-right-radius:var(--vpv-radius-lg); }

/* Home 3 — adaptação estrutural do protótipo Stitch. */
.vpv-home3 .wp-block-heading { text-wrap:balance; }
.vpv-home3-hero { padding-top:clamp(5rem,9vw,8rem); padding-bottom:clamp(5rem,9vw,8rem); }
.vpv-home3-hero-grid { gap:clamp(2rem,5vw,5rem); }
.vpv-home3-kicker { gap:.75rem; margin-bottom:1.5rem; }
.vpv-home3-kicker .wp-block-separator { width:48px; margin:0; border-color:var(--wp--preset--color--accent-life); }
.vpv-home3-title { max-width:11ch; }
.vpv-home3-lead { max-width:38rem; margin-bottom:2rem; }
.vpv-home3-portrait { position:relative; min-height:560px; }
.vpv-home3-portrait-frame {
  position:absolute; inset:0 0 2.25rem 0; overflow:hidden;
  border:1px solid var(--vpv-border-soft);
  border-radius:220px 220px 28px 28px;
  box-shadow:0 24px 60px rgba(35,78,82,.16);
  background:
    radial-gradient(circle at 30% 25%,rgba(176,141,87,.35),transparent 30%),
    radial-gradient(circle at 70% 70%,rgba(122,143,122,.42),transparent 36%),
    linear-gradient(145deg,#eadfce,#d2b395 58%,#9b6248);
}
.vpv-home3-portrait-frame img { width:100%; height:100%; object-fit:cover; object-position:center; }
.vpv-home3-quote {
  position:absolute; left:-2rem; bottom:0; width:min(260px,75%); padding:1.4rem;
  border:1px solid var(--vpv-border-soft); border-radius:18px; background:rgba(255,253,250,.95);
  box-shadow:var(--vpv-shadow-soft);
}
.vpv-home3-quote p { margin:0; font-family:var(--wp--preset--font-family--serif); font-style:italic; color:var(--wp--preset--color--brand-primary); }
.vpv-home3-section-head { gap:2rem; margin-bottom:3rem; }
.vpv-home3-section-head > .wp-block-group:first-child { max-width:720px; }
.vpv-home3-index { margin:0; font-family:var(--wp--preset--font-family--serif); font-size:clamp(4rem,10vw,8rem); line-height:.8; color:rgba(35,78,82,.07); }
.vpv-home3-signal { min-height:100%; }
.vpv-home3-icon { width:48px; height:48px; margin:0 0 1.25rem; display:grid; place-items:center; border-radius:50%; background:rgba(122,143,122,.18); color:var(--wp--preset--color--brand-primary); font-weight:700; }
.vpv-home3-signal h3 { font-size:clamp(1.7rem,2.5vw,2.25rem); }
.vpv-home3-journey .wp-block-columns { gap:clamp(2rem,6vw,6rem); }
.vpv-home3-mosaic { position:relative; gap:1rem !important; }
.vpv-home3-mosaic::before { content:""; position:absolute; inset:-2rem; border:1px dashed rgba(168,108,74,.16); border-radius:50%; pointer-events:none; }
.vpv-home3-mosaic > .wp-block-column:nth-child(2) { padding-top:3rem; }
.vpv-home3-media,
.vpv-home3-step { border-radius:22px; overflow:hidden; min-height:220px; }
.vpv-home3-media { border:1px solid var(--vpv-border-soft); box-shadow:var(--vpv-shadow-soft); }
.vpv-home3-media--paper { background:linear-gradient(135deg,rgba(255,253,250,.55),transparent),repeating-linear-gradient(105deg,#e6ded2 0 12px,#ddd1c2 13px 14px); }
.vpv-home3-media--hands { background:radial-gradient(circle at 50% 40%,rgba(255,253,250,.5),transparent 25%),linear-gradient(145deg,#d6b694,#b68667 55%,#7a8f7a); }
.vpv-home3-step { padding:1.5rem; display:flex; flex-direction:column; justify-content:flex-end; }
.vpv-home3-step h3 { margin-bottom:0; font-size:1.75rem; }
.vpv-home3-step--dark { color:#fffdfa; background:var(--wp--preset--color--brand-primary); }
.vpv-home3-step--dark h3 { color:#fffdfa; }
.vpv-home3-step--gold { background:#ead0a6; color:#243333; }
.vpv-home3-timeline { margin-block:2rem; }
.vpv-home3-timeline-item { gap:1rem; align-items:flex-start !important; }
.vpv-home3-timeline-item > p { flex:0 0 34px; width:34px; height:34px; margin:0; display:grid; place-items:center; border:1px solid var(--wp--preset--color--accent-life); border-radius:50%; color:var(--wp--preset--color--accent-life); font-weight:700; }
.vpv-home3-timeline-item h4 { margin:0 0 .25rem; font-family:var(--wp--preset--font-family--sans); font-size:1.15rem; }
.vpv-home3-timeline-item .wp-block-group p { margin-top:0; }
.vpv-home3-pillars-intro { margin-bottom:3rem; text-align:center; }
.vpv-home3-pillar { min-height:100%; display:flex; flex-direction:column; }
.vpv-home3-pillar h3 { font-size:clamp(2rem,4vw,3.25rem); }
.vpv-home3-pillar .wp-block-button { margin-top:auto; }
.vpv-home3-pillar--dark { color:#fffdfa; }
.vpv-home3-pillar--dark li { color:#fffdfa; }
.vpv-home3-about-card { padding:clamp(1.5rem,4vw,3.5rem); border-radius:28px; background:var(--wp--preset--color--surface-primary); }
.vpv-home3-about-photo { aspect-ratio:1; border-radius:50%; border:8px solid #fffdfa; box-shadow:var(--vpv-shadow-soft); background:radial-gradient(circle at 35% 30%,rgba(176,141,87,.34),transparent 28%),linear-gradient(145deg,#e6d9c8,#c59b7b 55%,#7a8f7a); }
.vpv-home3-about-photo img { width:100%; height:100%; object-fit:cover; border-radius:inherit; }
.vpv-home3-cta { text-align:center; }
.vpv-home3-cta h2 { max-width:14ch; margin-inline:auto; font-size:clamp(2.6rem,6vw,5.5rem); }

.wp-block-button__link { transition:transform var(--vpv-transition),box-shadow var(--vpv-transition),opacity var(--vpv-transition); }
.wp-block-button__link:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(35,78,82,.16); }

@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
@media (max-width:781px) {
  .wp-block-navigation__responsive-container.is-menu-open { padding:1.5rem; }
  .vpv-card:hover { transform:none; }
  .vpv-editorial-art,
  .vpv-editorial-art--radar,
  .vpv-editorial-art--journey { min-height:260px; aspect-ratio:4 / 3; }
  .vpv-editorial-art--portrait { min-height:360px; aspect-ratio:4 / 5; }
  .vpv-post-visual,
  .vpv-post-visual .vpv-editorial-art,
  .vpv-post-visual .wp-block-post-featured-image img { height:200px; min-height:200px; }
  .vpv-home3-title { max-width:none; }
  .vpv-home3-portrait { min-height:440px; margin-top:2rem; }
  .vpv-home3-portrait-frame { border-radius:160px 160px 24px 24px; }
  .vpv-home3-quote { left:1rem; }
  .vpv-home3-index { display:none; }
  .vpv-home3-mosaic::before { display:none; }
  .vpv-home3-mosaic > .wp-block-column:nth-child(2) { padding-top:0; }
  .vpv-home3-about-card { padding:1.25rem; }
}
