/*
Theme Name: Cartão Paciente Amigo
Theme URI: https://cartaopacienteamigo.com.br/
Author: Cartão Paciente Amigo
Description: Tema institucional próprio para o Cartão Paciente Amigo.
Version: 1.0.0
Text Domain: cartao-paciente-amigo
*/

:root {
  --cpa-ink: #12343f;
  --cpa-ink-soft: #315561;
  --cpa-aqua: #20c0c6;
  --cpa-aqua-dark: #109aa5;
  --cpa-mint: #eafafa;
  --cpa-coral: #ff786c;
  --cpa-white: #ffffff;
  --cpa-line: #dceced;
  --cpa-sand: #fff8ed;
  --cpa-radius: 26px;
  --cpa-shadow: 0 20px 60px rgba(18, 52, 63, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cpa-white); color: var(--cpa-ink); font-family: "DM Sans", Arial, sans-serif; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }

.cpa-shell { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.cpa-kicker { color: var(--cpa-aqua-dark); font-size: .72rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.cpa-section { padding: 96px 0; }
.cpa-section__heading { max-width: 710px; margin-bottom: 42px; }
.cpa-section__heading h2 { margin: 10px 0 14px; font-family: "Manrope", Arial, sans-serif; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.08; letter-spacing: -.055em; }
.cpa-section__heading p { margin: 0; color: var(--cpa-ink-soft); font-size: 1.06rem; }

.cpa-button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 0; border-radius: 999px; padding: 15px 22px; cursor: pointer; color: var(--cpa-white); background: var(--cpa-ink); font: 800 .92rem "DM Sans", Arial, sans-serif; transition: transform .18s ease, background .18s ease; }
.cpa-button:hover { background: #0c2730; transform: translateY(-2px); }
.cpa-button--aqua { color: #07383f; background: var(--cpa-aqua); }
.cpa-button--aqua:hover { background: #48d5d6; }
.cpa-button--outline { color: var(--cpa-ink); background: transparent; border: 1px solid rgba(18,52,63,.22); }
.cpa-button--outline:hover { background: rgba(255,255,255,.8); }

.cpa-site-header { position: sticky; z-index: 20; top: 0; border-bottom: 1px solid rgba(18,52,63,.08); background: rgba(255,255,255,.92); backdrop-filter: blur(12px); }
.cpa-nav { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.cpa-brand { display: inline-flex; align-items: center; min-width: 180px; }
.cpa-brand img { width: 168px; height: auto; }
.cpa-menu { display: flex; align-items: center; gap: 24px; list-style: none; margin: 0; padding: 0; font-size: .9rem; color: var(--cpa-ink-soft); }
.cpa-menu a:hover { color: var(--cpa-aqua-dark); }
.cpa-menu-toggle { display: none; }

.cpa-hero { overflow: hidden; position: relative; padding: 76px 0 66px; background: linear-gradient(116deg, #e9fbfb 0%, #f8ffff 54%, #fff8ed 100%); }
.cpa-hero::before { content: ""; position: absolute; top: -220px; right: -80px; width: 560px; height: 560px; border: 56px solid rgba(32,192,198,.13); border-radius: 50%; }
.cpa-hero__grid { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; gap: 72px; align-items: center; }
.cpa-hero h1 { max-width: 720px; margin: 12px 0 22px; font-family: "Manrope", Arial, sans-serif; font-size: clamp(3rem, 6vw, 5.55rem); line-height: .98; letter-spacing: -.075em; }
.cpa-hero h1 em { color: var(--cpa-aqua-dark); font-style: normal; }
.cpa-hero__copy { max-width: 575px; margin: 0 0 30px; color: var(--cpa-ink-soft); font-size: 1.13rem; }
.cpa-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.cpa-hero__note { display: flex; gap: 9px; max-width: 540px; margin-top: 26px; color: var(--cpa-ink-soft); font-size: .78rem; line-height: 1.45; }
.cpa-hero__note span { color: var(--cpa-coral); }

.cpa-visual { position: relative; min-height: 440px; display: grid; place-items: center; }
.cpa-card-visual { position: relative; width: min(100%, 405px); min-height: 252px; padding: 30px; overflow: hidden; border: 1px solid rgba(255,255,255,.82); border-radius: 27px; color: var(--cpa-white); background: linear-gradient(135deg, #133d4a 0%, #1597a7 55%, #22c8c9 100%); box-shadow: 0 30px 70px rgba(9,85,95,.27); transform: rotate(-5deg); }
.cpa-card-visual::after { content: ""; position: absolute; inset: auto -70px -100px auto; width: 240px; height: 240px; border: 42px solid rgba(255,255,255,.16); border-radius: 42% 58% 46% 54%; transform: rotate(31deg); }
.cpa-card-visual__mark { display: flex; justify-content: space-between; align-items: start; position: relative; z-index: 1; }
.cpa-card-visual__mark small { display: block; margin-top: 6px; opacity: .82; font-size: .67rem; letter-spacing: .12em; text-transform: uppercase; }
.cpa-card-visual__name { position: relative; z-index: 1; margin-top: 72px; font-family: "Manrope", Arial, sans-serif; font-size: 1.2rem; font-weight: 700; }
.cpa-card-visual__stripe { position: absolute; right: 0; bottom: 0; left: 0; height: 9px; background: var(--cpa-coral); }
.cpa-visual__orb { position: absolute; top: 26px; right: 4%; width: 120px; height: 120px; border-radius: 50%; background: var(--cpa-coral); box-shadow: 0 15px 25px rgba(255,120,108,.18); }
.cpa-visual__mini { position: absolute; left: 1%; bottom: 16px; width: 180px; padding: 16px 18px; border: 1px solid rgba(18,52,63,.06); border-radius: 17px; background: rgba(255,255,255,.92); box-shadow: var(--cpa-shadow); transform: rotate(5deg); }
.cpa-visual__mini strong { display: block; font-family: "Manrope", Arial, sans-serif; font-size: 1.6rem; }
.cpa-visual__mini span { color: var(--cpa-ink-soft); font-size: .75rem; }

.cpa-points { padding: 0 0 72px; background: linear-gradient(116deg, #e9fbfb 0%, #f8ffff 54%, #fff8ed 100%); }
.cpa-points__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cpa-point { padding: 22px; border: 1px solid rgba(18,52,63,.08); border-radius: 17px; background: rgba(255,255,255,.72); }
.cpa-point b { display: block; margin-bottom: 6px; font-family: "Manrope", Arial, sans-serif; font-size: 1.08rem; }
.cpa-point p { margin: 0; color: var(--cpa-ink-soft); font-size: .87rem; }

.cpa-steps { background: var(--cpa-ink); color: #efffff; }
.cpa-steps .cpa-kicker { color: #78eff0; }
.cpa-steps .cpa-section__heading p { color: #b7d3d7; }
.cpa-steps__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cpa-step { min-height: 212px; padding: 28px; border: 1px solid rgba(230,255,255,.15); border-radius: 20px; background: rgba(255,255,255,.04); }
.cpa-step__number { display: block; color: #78eff0; font: 800 .78rem "DM Sans", Arial, sans-serif; letter-spacing: .11em; }
.cpa-step h3 { margin: 35px 0 10px; font-family: "Manrope", Arial, sans-serif; font-size: 1.32rem; }
.cpa-step p { margin: 0; color: #b7d3d7; font-size: .9rem; }

.cpa-benefits { background: var(--cpa-white); }
.cpa-benefits__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.cpa-benefit { display: flex; gap: 20px; padding: 28px; border: 1px solid var(--cpa-line); border-radius: 20px; }
.cpa-benefit__icon { flex: 0 0 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; background: var(--cpa-mint); color: var(--cpa-aqua-dark); font-size: 1.35rem; }
.cpa-benefit h3 { margin: 0 0 8px; font-family: "Manrope", Arial, sans-serif; font-size: 1.18rem; }
.cpa-benefit p { margin: 0; color: var(--cpa-ink-soft); font-size: .9rem; }

.cpa-partners { background: linear-gradient(180deg, #ffffff 0%, #f7fcfc 100%); }
.cpa-partner-card { display: flex; align-items: center; justify-content: space-between; gap: 36px; max-width: 740px; padding: 26px 30px; border: 1px solid var(--cpa-line); border-radius: 22px; background: var(--cpa-white); box-shadow: 0 14px 36px rgba(18,52,63,.07); transition: transform .18s ease, box-shadow .18s ease; }
.cpa-partner-card:hover { transform: translateY(-3px); box-shadow: var(--cpa-shadow); }
.cpa-partner-card img { width: 215px; max-height: 112px; object-fit: contain; object-position: left center; }
.cpa-partner-card span { color: var(--cpa-aqua-dark); font-size: .84rem; font-weight: 800; white-space: nowrap; }
.cpa-partner-card b { margin-left: 6px; font-size: 1.05rem; }

.cpa-content { background: #f5fbfb; }
.cpa-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.cpa-post { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--cpa-line); border-radius: 20px; background: #fff; }
.cpa-post__image { width: 100%; aspect-ratio: 16/9; object-fit: cover; background: #daf0f1; }
.cpa-post__body { display: flex; flex: 1; flex-direction: column; padding: 22px; }
.cpa-post__date { color: var(--cpa-aqua-dark); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.cpa-post h3 { margin: 10px 0 16px; font-family: "Manrope", Arial, sans-serif; font-size: 1.15rem; line-height: 1.22; }
.cpa-post__link { margin-top: auto; color: var(--cpa-aqua-dark); font-size: .83rem; font-weight: 800; }
.cpa-posts__empty { grid-column: 1/-1; padding: 25px; border: 1px dashed #b6d7d9; border-radius: 16px; color: var(--cpa-ink-soft); text-align: center; }

.cpa-contact { position: relative; overflow: hidden; background: var(--cpa-sand); }
.cpa-contact::after { content: ""; position: absolute; right: -85px; bottom: -120px; width: 370px; height: 370px; border-radius: 50%; background: rgba(255,120,108,.16); }
.cpa-contact__grid { position: relative; z-index: 1; display: grid; grid-template-columns: .82fr 1.18fr; gap: 70px; align-items: start; }
.cpa-contact h2 { margin: 10px 0 14px; font-family: "Manrope", Arial, sans-serif; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.05; letter-spacing: -.055em; }
.cpa-contact__copy { color: var(--cpa-ink-soft); }
.cpa-form { padding: 28px; border: 1px solid rgba(18,52,63,.08); border-radius: 22px; background: var(--cpa-white); box-shadow: var(--cpa-shadow); }
.cpa-form__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.cpa-field { display: grid; gap: 6px; }
.cpa-field--full { grid-column: 1/-1; }
.cpa-field label { font-size: .8rem; font-weight: 800; }
.cpa-field input, .cpa-field textarea { width: 100%; padding: 13px; border: 1px solid #c9dddf; border-radius: 10px; color: var(--cpa-ink); font: inherit; }
.cpa-field textarea { min-height: 112px; resize: vertical; }
.cpa-honeypot { position: absolute !important; left: -9999px !important; }
.cpa-consent { margin: 18px 0; color: var(--cpa-ink-soft); font-size: .76rem; }
.cpa-notice { margin: 0 0 16px; padding: 12px 14px; border-radius: 10px; font-size: .85rem; }
.cpa-notice--success { background: #eaf8ef; color: #176a3a; }
.cpa-notice--error { background: #fff0ee; color: #a43c31; }

.cpa-legal { max-width: 840px; margin: 0 auto; padding: 68px 0 96px; }
.cpa-legal h1 { margin: 0 0 26px; font-family: "Manrope", Arial, sans-serif; font-size: clamp(2.2rem, 5vw, 4.3rem); letter-spacing: -.06em; line-height: 1; }
.cpa-legal h2 { margin: 38px 0 12px; font-family: "Manrope", Arial, sans-serif; font-size: 1.36rem; }
.cpa-legal p, .cpa-legal li { color: var(--cpa-ink-soft); }
.cpa-legal__notice { margin-bottom: 30px; padding: 17px 19px; border-left: 4px solid var(--cpa-aqua); border-radius: 0 10px 10px 0; background: var(--cpa-mint); color: var(--cpa-ink-soft); font-size: .88rem; }

.cpa-site-footer { padding: 64px 0 26px; background: #0d2c35; color: #d4ecef; }
.cpa-footer__grid { display: grid; grid-template-columns: 1.25fr .7fr .7fr; gap: 50px; padding-bottom: 42px; }
.cpa-footer__brand img { width: 180px; padding: 10px; border-radius: 10px; background: #fff; }
.cpa-footer__disclaimer { max-width: 480px; color: #9fc4c8; font-size: .78rem; line-height: 1.58; }
.cpa-footer h3 { margin: 8px 0 14px; color: #fff; font: 800 .82rem "DM Sans", Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.cpa-footer ul { list-style: none; margin: 0; padding: 0; }
.cpa-footer li { margin-bottom: 9px; color: #b7d3d7; font-size: .87rem; }
.cpa-footer a:hover { color: #78eff0; }
.cpa-footer__bottom { padding-top: 22px; border-top: 1px solid rgba(216,250,252,.14); color: #91b8bd; font-size: .76rem; }

@media (max-width: 900px) {
  .cpa-menu { display: none; }
  .cpa-menu-toggle { display: inline-flex; }
  .cpa-hero__grid, .cpa-contact__grid { grid-template-columns: 1fr; gap: 44px; }
  .cpa-hero { padding-top: 58px; }
  .cpa-visual { min-height: 360px; }
  .cpa-points__grid, .cpa-steps__grid, .cpa-posts { grid-template-columns: 1fr; }
  .cpa-benefits__grid { grid-template-columns: 1fr; }
  .cpa-partner-card { max-width: 100%; }
  .cpa-footer__grid { grid-template-columns: 1fr 1fr; }
  .cpa-footer__brand { grid-column: 1/-1; }
}
@media (max-width: 580px) {
  .cpa-shell { width: min(100% - 28px, 1180px); }
  .cpa-section { padding: 68px 0; }
  .cpa-nav { min-height: 70px; }
  .cpa-brand img { width: 145px; }
  .cpa-hero h1 { font-size: 3.1rem; }
  .cpa-card-visual { transform: rotate(-3deg); }
  .cpa-visual__mini { display: none; }
  .cpa-hero__actions .cpa-button { width: 100%; }
  .cpa-form__grid { grid-template-columns: 1fr; }
  .cpa-field--full { grid-column: auto; }
  .cpa-partner-card { align-items: flex-start; flex-direction: column; gap: 18px; padding: 24px; }
  .cpa-partner-card img { width: 190px; }
  .cpa-footer__grid { grid-template-columns: 1fr; gap: 26px; }
  .cpa-footer__brand { grid-column: auto; }
}
