/* Seções exclusivas da página inicial da ImuniVida. */
.iv-step-icon { display:grid; place-items:center; width:66px; height:66px; margin-bottom:2rem; border-radius:20px 20px 20px 4px; background:#edf0e7; color:#63735b; }
.iv-step-icon svg { width:32px; height:32px; }
.iv-step:nth-child(2) .iv-step-icon { background:#f4eedc; color:#987625; }
.iv-step:nth-child(3) .iv-step-icon { background:#e8eeeb; color:#47695b; }
.iv-step h3 { max-width:95%; }
.page-home .hero-copy { grid-template-rows:minmax(250px,1fr) auto auto; justify-content:initial; padding:clamp(4.5rem,7vw,7rem) clamp(2.5rem,4vw,5rem) 0 max(1.5rem,calc((100vw - 1200px)/2)); }
.page-home .hero-heading { align-self:end; padding-bottom:2.2rem; }
.page-home .hero-copy > p { max-width:540px; margin-bottom:1.6rem; }
.page-home .hero-copy .button-row { margin-bottom:2.5rem; }
.page-home .hero-proof { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; width:calc(100% + clamp(2.5rem,4vw,5rem)); margin:0; border-top:1px solid rgba(145,157,130,.34); }
.page-home .hero-proof span { min-height:74px; display:flex; align-items:center; padding:1rem clamp(.6rem,1.2vw,1rem); border-right:1px solid rgba(145,157,130,.28); line-height:1.35; }
.iv-home-catalog { position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(circle at 12% 12%,#4b6255 0,transparent 29%),linear-gradient(135deg,#2b3932,#34463c 60%,#2d3b34); color:#faf9f2; }
.iv-home-catalog::before { content:""; position:absolute; z-index:-2; inset:0 0 auto 42%; height:720px; opacity:.2; background:linear-gradient(90deg,#303e36 0,transparent 35%),url('/imagens/imunivida-familia-clinica.jpg') center 38%/cover no-repeat; -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 28%,#000 76%,transparent 100%),linear-gradient(#000 0,transparent 96%); mask-image:linear-gradient(90deg,transparent 0,#000 28%,#000 76%,transparent 100%),linear-gradient(#000 0,transparent 96%); -webkit-mask-composite:source-in; mask-composite:intersect; filter:saturate(.65) contrast(.95); }
.iv-home-catalog::after { content:""; position:absolute; z-index:-1; width:620px; aspect-ratio:1; left:-310px; top:520px; border:1px solid #e4c77820; border-radius:50%; box-shadow:0 0 0 70px #e4c7780b,0 0 0 160px #ffffff05; pointer-events:none; }
.iv-catalog-layout { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:14px; align-items:start; }
.iv-catalog-intro { position:relative; isolation:isolate; grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(250px,.55fr); gap:clamp(2rem,6vw,7rem); align-items:center; padding:clamp(2rem,4vw,4rem); overflow:hidden; border:1px solid #ffffff35; border-radius:34px; background:linear-gradient(110deg,#26362ff2 0,#30463bd9 52%,#26362fb3 100%); box-shadow:0 28px 70px #16221b42; }
.iv-catalog-intro::before { content:""; position:absolute; z-index:-1; width:340px; aspect-ratio:1; right:-120px; top:-185px; border:1px solid #e4c77855; border-radius:50%; box-shadow:0 0 0 42px #e4c7780b,0 0 0 92px #e4c77808; }
.iv-catalog-heading { padding:0; border:0; }
.iv-home-catalog .eyebrow { color:#c7ceba; }
.iv-home-catalog h2 { max-width:420px; color:#faf9f2; font-size:clamp(2rem,2.1vw,2.5rem); line-height:1.12; margin:.8rem 0 1.4rem; text-wrap:balance; }
.iv-catalog-intro > p:not(.eyebrow) { color:#c7cec8; max-width:360px; }
.iv-catalog-heading > p:last-child { margin:0; color:#c7cec8; line-height:1.7; }
.iv-catalog-emblem { position:relative; display:flex; align-items:center; gap:1.3rem; min-height:132px; padding:1.5rem; border:1px solid #ffffff24; border-radius:24px; background:#ffffff09; color:#e4c778; }
.iv-catalog-emblem > svg { width:62px; height:62px; flex-shrink:0; stroke-width:.9; }
.iv-catalog-emblem > span { max-width:210px; font-family:var(--display); font-size:1.1rem; line-height:1.4; color:#e7eadf; }
.iv-catalog-actions { margin:0; }
.iv-catalog-all { display:flex; align-items:center; justify-content:space-between; padding:1rem 0; color:#fff; border-bottom:1px solid #9aa58e; font-weight:600; }
.iv-catalog-all svg { width:24px; height:24px; }
.iv-calendar-link { display:block; margin-top:1.3rem; color:#c7cec8; font-size:.86rem; }
.iv-vaccine-directory { grid-column:1/-1; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); grid-auto-flow:dense; grid-auto-rows:minmax(255px,auto); gap:14px; }
.iv-vaccine-entry { --entry-accent:#e4c778; position:relative; isolation:isolate; display:flex; flex-direction:column; min-width:0; grid-column:span 3; padding:1.7rem; overflow:hidden; border:1px solid #ffffff2b; border-radius:28px; background:linear-gradient(145deg,#ffffff0c,#ffffff04); box-shadow:0 16px 42px #18231d20; transform:translateZ(0); transition:transform .48s cubic-bezier(.2,.8,.2,1),border-color .35s ease,background .35s ease,box-shadow .48s ease; }
.iv-vaccine-entry:nth-child(3),.iv-vaccine-entry:nth-child(6),.iv-vaccine-entry:nth-child(9) { grid-column:span 4; }
.iv-vaccine-entry:nth-child(4),.iv-vaccine-entry:nth-child(5),.iv-vaccine-entry:nth-child(10) { grid-column:span 2; }
.iv-vaccine-entry:last-child { grid-column:1/-1; min-height:230px; }
.iv-vaccine-entry::before { content:""; position:absolute; z-index:-1; inset:-45%; opacity:0; background:radial-gradient(circle at var(--pointer-x,70%) var(--pointer-y,20%),#e4c77832 0,transparent 28%); transform:scale(.65); transition:opacity .35s ease,transform .55s cubic-bezier(.2,.8,.2,1); }
.iv-vaccine-entry::after { content:""; position:absolute; z-index:-1; width:120px; aspect-ratio:1; right:-58px; bottom:-62px; border:1px solid #e4c7782e; border-radius:50%; transition:width .5s cubic-bezier(.2,.8,.2,1),right .5s cubic-bezier(.2,.8,.2,1),bottom .5s cubic-bezier(.2,.8,.2,1); }
.iv-vaccine-entry:nth-child(odd) { border-color:#ffffffbb; background:linear-gradient(145deg,#fff,#f1f3ec); box-shadow:0 18px 44px #15221b42; }
.iv-vaccine-entry:nth-child(odd) .iv-entry-top { color:#7a7048; }
.iv-vaccine-entry:nth-child(odd) h3 { color:#293930; }
.iv-vaccine-entry:nth-child(odd) p { color:#5c6b63; }
.iv-vaccine-entry:nth-child(odd) .iv-entry-link { color:#66714f; }
.iv-vaccine-entry:nth-child(odd)::before { background:radial-gradient(circle at var(--pointer-x,70%) var(--pointer-y,20%),#cfd8c3 0,transparent 30%); }
.iv-vaccine-entry:nth-child(odd)::after { border-color:#80906f4f; }
.iv-vaccine-entry:hover { z-index:4; border-color:#e4c77899; box-shadow:0 30px 70px #111b1666,0 0 0 1px #e4c77825; transform:translateY(-10px) scale(1.035); }
.iv-vaccine-entry:nth-child(even):hover { background:linear-gradient(145deg,#4b5d53,#34463d); }
.iv-vaccine-entry:nth-child(odd):hover { background:linear-gradient(145deg,#fff,#e9ede3); box-shadow:0 30px 70px #111b1652,0 0 0 1px #e4c7784f; }
.iv-vaccine-entry:hover::before { opacity:1; transform:scale(1); }
.iv-vaccine-entry:hover::after { width:190px; right:-78px; bottom:-96px; }
.iv-entry-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:1.8rem; color:#ddc68b; font-size:.72rem; letter-spacing:.12em; }
.iv-entry-top svg { width:27px; height:27px; opacity:.75; transition:transform .48s cubic-bezier(.2,.8,.2,1),opacity .3s ease; }
.iv-vaccine-entry h3 { position:relative; color:#f8f8f1; font-size:clamp(1.25rem,1.55vw,1.7rem); font-weight:600; letter-spacing:-.025em; margin:0 0 1rem; padding-left:.85rem; line-height:1.18; text-wrap:balance; }
.iv-vaccine-entry h3::before { content:""; position:absolute; left:0; top:.12em; width:3px; height:.9em; border-radius:3px; background:#e4c778; transform-origin:top; transition:height .4s cubic-bezier(.2,.8,.2,1); }
.iv-vaccine-entry:hover h3::before { height:1.55em; }
.iv-vaccine-entry p { color:#c7cec8; font-size:.89rem; line-height:1.65; margin-bottom:1.5rem; }
.iv-entry-link { margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:.5rem; color:#e4c778; font-size:.8rem; }
.iv-entry-link svg { width:21px; height:21px; transition:transform .2s ease; }
.iv-vaccine-entry:hover .iv-entry-top svg { opacity:1; transform:translateY(-3px) rotate(8deg) scale(1.12); }
.iv-vaccine-entry:hover .iv-entry-link svg { transform:translateX(7px); }
.iv-faq-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(2rem,5vw,5rem); align-items:center; }
.iv-faq-photo { margin:0; position:relative; overflow:hidden; border-radius:160px 160px 24px 24px; background:#d9decc; }
.iv-faq-photo > img { width:100%; height:610px; object-fit:cover; object-position:65% center; display:block; }
.iv-faq-photo figcaption { position:absolute; bottom:20px; left:20px; right:20px; padding:1.3rem; display:flex; align-items:center; gap:1rem; background:#fbfcf4f2; border-radius:16px; color:#53624f; font-size:.74rem; }
.iv-faq-photo figcaption strong { display:block; margin-top:.3rem; font-size:1rem; font-weight:500; color:#303e36; }
.iv-faq-photo-icon svg { width:32px; height:32px; }
.iv-faq-content h2 { margin:.8rem 0 2rem; }
.iv-home-faq summary small { white-space:normal; opacity:1; color:#657064; line-height:1.5; margin-top:.35rem; }
.iv-home-faq summary { padding:1.3rem; }
.iv-home-faq details p { padding:0 1.3rem 1.3rem; }
.iv-page-icon { width:58px; height:58px; display:grid; place-items:center; margin-bottom:2rem; border-radius:18px 18px 18px 5px; background:#edf0e7; color:#63735b; }
.iv-page-icon svg { width:29px; height:29px; }
.iv-process-card { min-height:280px; }
.iv-process-card:nth-child(2) .iv-page-icon { background:#f4eedc; color:#987625; }
.iv-process-card:nth-child(3) .iv-page-icon { background:#e8eeeb; color:#47695b; }
.iv-process-card h3 { padding-right:0; }
.iv-process-card .card-index { top:1.7rem; right:1.7rem; }
.iv-contact-card { position:relative; min-height:230px; padding:1.7rem 2rem 2rem; }
.iv-contact-card .iv-page-icon { margin-bottom:1.5rem; }
.iv-contact-card:nth-child(2) .iv-page-icon { background:#f4eedc; color:#987625; }
.iv-contact-card:nth-child(3) .iv-page-icon { background:#e8eeeb; color:#47695b; }
.iv-contact-card:nth-child(4) .iv-page-icon { background:#f0ece3; color:#846d3c; }
.iv-home-catalog a:focus-visible { outline:2px solid #e4c778; outline-offset:-3px; }
@media(max-width:980px) {
  .page-home .hero-copy { padding:4rem max(1.5rem,calc((100vw - 760px)/2)) 0; }
  .page-home .hero-proof { width:100%; }
  .iv-catalog-layout { grid-template-columns:1fr; gap:16px; }
  .iv-catalog-intro,.iv-vaccine-directory { grid-column:auto; }
  .iv-catalog-intro { grid-template-columns:repeat(2,minmax(0,1fr)); min-height:0; }
  .iv-catalog-heading { grid-column:1/-1; }
  .iv-catalog-intro > p:not(.eyebrow) { max-width:580px; }
  .iv-faq-layout { gap:2rem; }
  .iv-faq-photo > img { height:560px; }
}
@media(max-width:700px) {
  .page-home .hero-copy { display:flex; padding:4rem 1rem; }
  .page-home .hero-heading { padding-bottom:0; }
  .page-home .hero-proof { display:flex; width:100%; border-top:0; }
  .page-home .hero-proof span { min-height:0; padding:0; border-right:0; }
  .iv-faq-layout { grid-template-columns:1fr; }
  .iv-faq-photo { border-radius:100px 100px 20px 20px; }
  .iv-faq-photo > img { height:360px; }
  .iv-vaccine-directory { grid-template-columns:1fr; grid-auto-rows:auto; }
  .iv-catalog-intro { grid-template-columns:1fr; }
  .iv-catalog-heading { grid-column:auto; }
  .iv-vaccine-entry,.iv-vaccine-entry:nth-child(n),.iv-vaccine-entry:last-child { grid-column:auto; min-height:0; }
  .iv-vaccine-entry { padding:1.5rem; }
  .iv-entry-top { margin-bottom:1rem; }
  .iv-vaccine-entry h3 { font-size:1.45rem; }
  .iv-catalog-intro { padding:1.5rem; border-radius:22px; }
  .iv-catalog-emblem > svg { width:52px; height:52px; }
}
@media(prefers-reduced-motion:reduce) {
  .iv-vaccine-entry,.iv-vaccine-entry::before,.iv-vaccine-entry::after,.iv-entry-top svg,.iv-entry-link svg { transition:none; }
  .iv-vaccine-entry:hover { transform:none; }
  .iv-home-faq details,.iv-home-faq details p { animation:none; transition:none; }
}
