/* Uniform catalog frames preserve every original poster without cropping text. */
.course-card{border-radius:16px;position:relative;isolation:isolate;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.course-art,.text-art{width:100%;height:auto;aspect-ratio:1/1;flex-shrink:0;border-bottom:1px solid var(--line);background:linear-gradient(145deg,#f6f9fc,#edf3f8);overflow:hidden}
.course-art{display:flex;align-items:center;justify-content:center;padding:14px}
.course-art img,.course-art[data-image="80040"] img{width:100%;height:100%;object-fit:contain;object-position:center;border-radius:8px;transition:transform .4s ease;filter:drop-shadow(0 4px 8px #172b4e10)}
.course-card:hover .course-art img{transform:scale(1.015)}
.course-art .view-photo{bottom:12px;right:12px;background:var(--navy);color:#fff;font-size:12px;padding:6px 10px;border:1px solid #ffffff35;transform:translateY(0);transition:background .2s}
.course-art:hover .view-photo{background:var(--violet)}
.text-art{padding:28px;background:linear-gradient(140deg,#edf8f8,#f2eef8);justify-content:center;gap:26px}
.text-art strong{font-size:clamp(26px,3.5vw,44px)}
.course-content{padding:24px;gap:0}
.course-card h3{min-height:4.05em;margin-bottom:18px}
.course-area{min-height:3em;line-height:1.5}
.course-meta{min-height:62px;align-content:flex-start;margin-bottom:18px}
.course-bottom{min-height:59px;gap:12px;flex-wrap:nowrap}
.course-bottom a,.course-bottom button{font-size:14px}
.course-card:focus-within{border-color:var(--violet);box-shadow:0 12px 36px #68409b15}
.course-card:hover{border-color:#a3bccd;box-shadow:0 18px 42px #172b4e16}
.mode-grid article{transition:transform .25s,box-shadow .25s,border-color .25s}
.mode-grid article:hover{transform:translateY(-5px);border-color:#a3c9cc;box-shadow:0 12px 32px #172b4e0c}
nav>a:not(.button){position:relative}nav>a:not(.button):after{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform .25s}nav>a:not(.button):hover:after{transform:scaleX(1)}
.course-card.is-arriving{animation:card-arrive .55s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--arrival-delay,0ms)}
.reveal-section.is-arriving{animation:section-arrive .7s cubic-bezier(.2,.7,.2,1) both}
dialog[open]{animation:dialog-arrive .22s ease-out}
@keyframes card-arrive{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}
@keyframes section-arrive{from{opacity:.35;translate:0 20px}to{opacity:1;translate:0 0}}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(min-width:781px) and (prefers-reduced-motion:no-preference){.certification{animation:cert-drift 5s ease-in-out 2}.hero-copy{animation:section-arrive .8s ease-out}.hero-visual{animation:section-arrive 1s ease-out}@keyframes cert-drift{0%,100%{translate:0 0}50%{translate:0 -6px}}}
@media(max-width:780px){.course-content{padding:18px}.course-bottom{flex-wrap:wrap;gap:0}.course-bottom a,.course-bottom button{font-size:13px}.course-art{padding:10px}.course-art .view-photo{font-size:11px;bottom:7px;right:7px}}
@media(max-width:460px){.course-content{padding:23px}.course-card h3{min-height:0}.course-area{min-height:0}.course-meta{min-height:0}.course-bottom{flex-wrap:nowrap}.course-art{padding:14px}.course-art .view-photo{bottom:12px;right:12px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.course-card,.mode-grid article,.course-art img{transition:none}.course-card:hover,.mode-grid article:hover,.course-card:hover .course-art img{transform:none}.is-arriving,dialog[open],.certification,.hero-copy,.hero-visual{animation:none!important}}
/* Keep the action outside the poster so no original information is covered. */
.course-art{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px}
.course-art .view-photo{position:static;justify-self:end;transform:none}
.floating-wa{transition:background .2s ease,box-shadow .2s ease}
.floating-wa:hover,.floating-wa:focus-visible{background:#10683f;box-shadow:0 8px 26px #172b4e35}
@media(prefers-reduced-motion:no-preference){
  .floating-wa{animation:whatsapp-greeting 4.8s ease-in-out infinite}
  .floating-wa:hover,.floating-wa:focus-visible{animation-play-state:paused}
  @keyframes whatsapp-greeting{
    0%,65%,100%{transform:translateY(0);box-shadow:0 5px 22px #172b4e33,0 0 0 0 #167d5000}
    74%{transform:translateY(-6px);box-shadow:0 9px 24px #172b4e28,0 0 0 5px #167d5020}
    83%{transform:translateY(0);box-shadow:0 5px 22px #172b4e33,0 0 0 10px #167d5000}
    91%{transform:translateY(-3px)}
  }
}
.course-price{font:700 24px/1.4 Manrope,Arial,sans-serif;color:var(--violet);margin:0 0 18px;min-height:34px}.course-price small{font:500 12px/1.4 var(--font);color:var(--muted)}.course-price.pending{font:500 14px/34px var(--font);color:var(--muted)}.dialog-inner .course-price{font-size:28px}
