/* Shared layout for class pages, independent of older audience styles. */
.class-detail-hero{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center;padding:46px 0 48px}.class-detail-eyebrow{font-size:10px;letter-spacing:.1em;margin-bottom:22px}.class-detail-copy h1{font:700 clamp(36px,3.8vw,49px)/1.12 'DM Sans',sans-serif;letter-spacing:-.035em;color:#ff3292;margin:0 0 24px}.class-detail-lead{font:400 18px/1.8 'DM Sans',sans-serif;max-width:49ch;margin:0}.class-detail-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin-top:28px}.class-detail-text-link{font-size:14px;text-underline-offset:5px}.class-detail-photo{margin:0;padding:11px;background:#eeecff;border:1px solid #cfcbff;border-radius:22px}.class-detail-photo img{display:block;width:100%;height:340px;object-fit:cover;border-radius:14px}.class-detail-photo figcaption{font-size:10px;line-height:1.5;text-align:center;margin-top:9px}.class-detail-program{padding:30px 0 42px;border-top:1px solid #e7d9df}.class-detail-program h2,.class-detail-plan h2,.class-detail-faq h2{font:500 clamp(28px,2.8vw,36px)/1.3 'Bodoni Moda',serif;color:#ff3292;margin:0 0 25px}.class-detail-program>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.class-detail-program article{padding-top:20px;border-top:2px solid #cfcbff;min-width:0}.class-detail-program article:nth-child(2){border-color:#abc4aa}.class-detail-program article h3{font:500 21px/1.4 'DM Sans',sans-serif;margin:0 0 12px}.class-detail-program article p{font-size:15px;line-height:1.8}.class-detail-plan{background:#fef0f0;border-radius:20px;padding:32px 38px;margin:0 0 36px}.class-detail-plan h2{margin-bottom:14px}.class-detail-plan p{max-width:92ch;font-size:16px;line-height:1.85}.class-detail-faq{max-width:850px;margin:0 auto;padding:8px 0 15px}.class-detail-faq details{border-bottom:1px solid #e7d9df;padding:17px 0}.class-detail-faq summary{font-size:16px;font-weight:500;list-style:none;cursor:pointer;position:relative;padding-right:28px}.class-detail-faq summary:after{content:'+';position:absolute;right:4px;font-size:20px}.class-detail-faq details[open] summary:after{content:'-'}.class-detail-faq details p{font-size:15px;line-height:1.8;margin-top:12px}.class-detail-related{font-size:14px;margin-top:22px;line-height:1.8;text-underline-offset:4px}.class-detail-page .contact{margin-top:35px}.class-detail-page .contact h2{font-size:33px;line-height:1.3}.class-detail-page .contact .button{width:auto;min-width:0}
/* Smaller spots with continuous, visible motion. */
.branded-offers .offer-shape{width:210px;height:170px;margin:0 auto 3px}.branded-offers .offer-shape h3{font-size:25px;max-width:145px}.branded-offers .offer-shape img,.branded-offers .offer:hover .offer-shape img{animation-name:bh-offer-light-drift;animation-duration:6s;animation-play-state:running;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.branded-offers .offer:nth-child(2) .offer-shape img{animation-name:bh-offer-light-drift;animation-duration:7.4s;animation-delay:-2.5s}.branded-offers .offer:nth-child(3) .offer-shape img{animation-name:bh-offer-light-drift;animation-duration:6.8s;animation-delay:-4s}@keyframes bh-offer-light-drift{0%,100%{transform:translateY(3px) rotate(-3deg)}50%{transform:translateY(-8px) rotate(3deg)}}
/* Ribbons frame photo corners without a mirrored tangle; CTAs fit their labels. */
.box-atelier .box-silk-top{width:125px;height:85px;top:-17px;left:-10px;right:auto;animation:bh-box-corner-a 8s ease-in-out infinite}.box-atelier .box-silk-bottom{width:115px;height:80px;bottom:-10px;right:-6px;left:auto;animation:bh-box-corner-b 9s ease-in-out -3s infinite}.box-atelier .button,.box-atelier .button-sage,.box-atelier .contact .button{width:fit-content!important;min-width:0;max-width:100%;align-self:flex-start;flex:0 0 auto;white-space:normal}.box-atelier .box-mood .button{font-size:13px;padding:13px 20px;min-height:48px}.box-atelier .box-next-step .button{display:inline-flex}.box-atelier .contact .button{padding:13px 24px;min-height:48px}.idea:after{display:none}@keyframes bh-box-corner-a{0%,100%{transform:translateY(0) rotate(-12deg)}50%{transform:translateY(-5px) rotate(-7deg)}}@keyframes bh-box-corner-b{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(5px) rotate(-13deg)}}
@media(max-width:900px){.class-detail-hero{gap:35px}.class-detail-photo img{height:310px}.class-detail-program>div{gap:22px}}
@media(max-width:760px){.class-detail-hero{grid-template-columns:1fr;gap:27px;padding:30px 0 32px}.class-detail-copy h1{font-size:36px}.class-detail-eyebrow{margin-bottom:17px}.class-detail-lead{font-size:16px}.class-detail-actions{gap:16px;margin-top:22px}.class-detail-actions .button{font-size:13px;padding:13px 18px}.class-detail-photo img{height:270px}.class-detail-program{padding:26px 0 30px}.class-detail-program>div{grid-template-columns:1fr;gap:20px}.class-detail-program article{padding-top:15px}.class-detail-program article h3{font-size:20px;margin-bottom:8px}.class-detail-plan{padding:25px 23px;margin-bottom:28px}.class-detail-plan p{font-size:15px}.class-detail-faq summary{font-size:15px}.class-detail-page .contact h2{font-size:28px}.branded-offers .offer-shape{width:195px;height:145px}.branded-offers .offer-shape h3{font-size:23px;max-width:130px}.box-atelier .box-silk-top{width:95px;height:65px;left:0;top:-13px}.box-atelier .box-silk-bottom{width:90px;height:60px;right:0;bottom:-7px}.box-atelier .box-mood .button{font-size:12px}}
@media(prefers-reduced-motion:reduce){.branded-offers .offer-shape img,.branded-offers .offer:hover .offer-shape img,.box-atelier .box-silk{animation:none!important;transform:none}}
