/* Shared color polish; preserve the existing body text color. */
:root{--thrive-navy:#2d4659;--thrive-button-blue:#206fa3;}
body .button:not(.teal):not(.light):not(.outline),
body .elementor .button:not(.teal):not(.light):not(.outline),
body .elementor .elementor-widget-button.button:not(.teal):not(.light):not(.outline) .elementor-button{background:var(--thrive-button-blue);}
body .button:not(.teal):not(.light):not(.outline):hover,
body .elementor .button:not(.teal):not(.light):not(.outline):hover{background:#36546b;}
body .site-footer{background:var(--thrive-navy);}
body .site-footer .footer-bottom{border-top-color:#526b7d;}
/* Keep outlined hero actions readable before hover. */
body .page-hero a.button.outline:not(:hover):not(:focus-visible){color:#fff!important;border-color:rgba(255,255,255,.65)!important;}
/* All action buttons share Thrive's purple hover and keyboard-focus treatment. */
body .button:hover,body .button:focus-visible,
body .elementor .button:hover,body .elementor .button:focus-visible,
body .elementor .elementor-widget-button.button .elementor-button:hover,
body .elementor .elementor-widget-button.button .elementor-button:focus-visible,
body .elementor .elementor-widget-button:not(.thrive-leaf) .elementor-button:hover,
body .elementor .elementor-widget-button:not(.thrive-leaf) .elementor-button:focus-visible{background:var(--purple)!important;color:#fff!important;border-color:var(--purple)!important;}

/* Whole-card links remain individual native Elementor controls. */
body .program-options,body .elementor .program-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;}
body .program-options.four,body .elementor .program-options.four{grid-template-columns:repeat(2,minmax(0,1fr));}
body .program-option-card,body .elementor .program-option-card{position:relative;display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;transition:border-color .2s,box-shadow .2s,transform .2s;}
body .program-option-card:hover,body .program-option-card:focus-within{border-color:var(--purple);box-shadow:0 12px 32px rgba(75,13,130,.09);transform:translateY(-3px);}
body .program-option-card h3,body .elementor .program-option-card h3{font-family:'Hero',sans-serif;font-size:1.45rem;line-height:1.2;margin-top:0;}
body .program-option-card .tag{font:700 .8rem/1.5 'Hero',sans-serif;letter-spacing:.04em;color:var(--teal-dark);display:block;margin-bottom:15px;}
body .program-option-card p,body .elementor .program-option-card p{font-size:1rem;margin-bottom:16px;}
body .program-option-card ul{padding-left:20px;margin:0 0 22px;}
body .program-option-card li{padding-left:3px;margin-bottom:7px;}
body .program-option-card .program-card-link{display:block;margin-top:auto;color:var(--purple);font:700 1rem/1.5 'Hero',sans-serif;}
body a.program-card-link::after,body .program-card-link a::after{content:'';position:absolute;inset:0;border-radius:24px;}
body a.program-card-link:focus-visible,body .program-card-link a:focus-visible{outline:none;}
body a.program-card-link:focus-visible::after,body .program-card-link a:focus-visible::after{outline:3px solid var(--gold);outline-offset:3px;}
.elementor-editor-active a.program-card-link::after,.elementor-editor-active .program-card-link a::after{display:none;}
body .program-tuition-note{font-size:.95rem;color:#43545a;margin:28px 0 0;}
@media(max-width:760px){body .program-options,body .elementor .program-options{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:520px){body .program-options,body .elementor .program-options,body .program-options.four,body .elementor .program-options.four{grid-template-columns:1fr;}body .program-option-card,body .elementor .program-option-card{padding:24px;}}

/* Preserve faces, hands and instrument context in the selected real class photos. */
.elementor .split img.thrive-selected-photo,
.elementor .split .thrive-selected-photo img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border:0;}
.elementor .card img{aspect-ratio:4/3;object-fit:cover;object-position:center;}
.elementor .thrive-support-photo{padding-top:0;}
.elementor .thrive-support-photo .wrap{max-width:680px;}
.elementor .thrive-support-photo img{width:100%;height:auto;aspect-ratio:auto;border-radius:28px;border:0;}
@media(max-width:760px){.elementor .page-hero h1.elementor-heading-title{overflow-wrap:anywhere;}}
@media(max-width:480px){.page-id-258.elementor-page .page-hero h1.elementor-heading-title{font-size:clamp(36px,12.5vw,56px);}}

/* Give the shared header's primary invitation a distinct Thrive teal treatment. */
body .site-header a.button.header-cta:not(.teal):not(.light):not(.outline){
 background:#22c2c6;border-color:#22c2c6;
 font-size:15px;line-height:1.2;padding:14px 22px;
}
body .site-header a.button.header-cta:not(:hover):not(:focus-visible){color:#fff!important;}

.elementor .thrive-minikeys-gallery .wrap{max-width:1100px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:center;}
@media(max-width:760px){.elementor .thrive-minikeys-gallery .wrap{grid-template-columns:1fr;max-width:680px;gap:24px;}}

/* Keep the mobile hero's white copy clear of the decorative gold ribbon. */
@media(max-width:760px){.hero::after,.elementor .hero::after{display:none;}}
