/* Kelly & Lilly — airy identity, full faces at every viewport. */
/* Intrinsic dimensions reserve the correct ratio, never the full file height. */
img[data-character-art]{height:auto!important}
img[src*="/art/bd-fixes/"]{display:block;max-width:100%;height:auto;object-fit:contain;background:#fff}
body .oracle20-hero{padding:clamp(18px,2.5vw,30px);gap:24px;background:#fff}
body .oracle20-hero figure img{height:auto!important;max-height:350px;object-fit:contain}
body .jeu-front{padding:clamp(16px,2.5vw,30px);background:#fff;min-height:0}
body .jeu-front>img{display:block;width:min(100%,300px);height:auto!important;max-height:300px;object-fit:contain}
body.page-boutique .folio-hero{grid-template-columns:minmax(0,1.5fr) minmax(200px,.65fr);padding-block:20px;min-height:0}
body.page-boutique .folio-hero figure img{max-height:270px}
body.page-boule-de-cristal .intro-banner{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.8fr);align-items:center}
body.page-boule-de-cristal .kb-aside{width:100%;max-width:none}
body.page-boule-de-cristal .kb-aside img{display:block;width:min(100%,340px);max-width:100%!important;height:auto!important;max-height:340px;object-fit:contain;margin:auto}
.salon-list img{height:140px!important;width:100%;object-fit:contain}
.lib-course-guide{margin:14px auto -24px;position:relative;z-index:1;width:min(100%,360px)}
.lib-course-guide img{display:block;width:100%;height:auto;object-fit:contain}
.library-kelly .lib-course-intro{max-width:850px;margin:0 auto 32px;text-align:center;padding:30px clamp(20px,4vw,45px);border:1px solid #efd5df;border-radius:20px;background:#fff}
body.page-oracles .folio-hero{background:#fff}
@media(max-width:700px){
 body.page-boutique .folio-hero,body.page-boule-de-cristal .intro-banner{display:grid;grid-template-columns:1fr}
 body .oracle20-hero figure img,body .jeu-front>img{max-height:250px;width:min(100%,280px);margin:auto}
 body.page-boutique .folio-hero figure img{max-height:220px}
 body.page-boule-de-cristal .kb-aside{width:100%;max-width:none}
 body.page-boule-de-cristal .kb-aside img{width:min(100%,240px)}
 .lib-course-guide{width:min(85%,290px)}
}
/* Standalone BD artwork uses the whole image at desktop and phone widths. */
img[src*="/art/bd/"]{object-fit:contain!important;object-position:center!important;background:#fff;max-width:100%;clip-path:none!important}
.cf-hero picture img[src*="/art/consultations/"],.cf-illustration img[src*="/art/consultations/portrait-"]{object-fit:contain!important;object-position:center!important;height:auto!important;max-height:520px;max-width:100%;width:100%}
.cf-author img[src*="/art/consultations/"]{object-fit:contain!important;object-position:top!important;background:#fff}
img[data-character-art],img[src*="/art/identity/"]{object-fit:contain!important;object-position:center!important;border-radius:12px;max-width:100%;background:#fff;clip-path:none!important}
.folio-hero:has(img[data-character-art]),.intro-banner:has(img[data-character-art]){background:#fff!important;box-shadow:none}
.folio-hero figure:has(img[data-character-art]){margin:0;min-width:0;background:#fff}
.folio-hero img[data-character-art]{width:100%;height:auto!important;max-height:470px;aspect-ratio:auto!important}
.hero .art:has(img[data-character-art]){background:#fff;overflow:visible}
.hero .art img[data-character-art]{width:100%;height:auto!important;max-height:590px;transform:none!important}
.hero .art:has(img[data-character-art])::after,.folio-hero:has(img[data-character-art])::after{display:none}
.room img[data-character-art]{height:100%;max-height:340px;aspect-ratio:1;object-fit:contain!important;transform:none!important}
.cf-hero picture,.cf-hero picture img{border-radius:12px}
.cf-hero picture img[data-character-art]{height:auto!important;width:100%;aspect-ratio:3/2}
.cf-illustration:has(img[data-character-art]){background:#fff;padding:16px}
.cf-author img[data-character-art]{border-radius:7px;object-fit:contain!important}
.k-portrait img[src*="kelly-carnets"],.mag img[src*="/art/mag/"]{object-fit:contain;object-position:center;background:#fff}
@media(max-width:700px){
 .folio-hero img[data-character-art]{max-height:330px;width:100%}
 .hero .art img[data-character-art]{max-height:390px}
 .cf-hero picture{width:100%!important;max-width:560px}
 .cf-hero picture img[data-character-art]{max-height:none}
 .room img[data-character-art]{max-height:230px;max-width:100%}
}
.cf-artist-scene{margin:16px 0;background:#fff}
.cf-artist-scene img[data-character-art]{display:block;width:min(100%,340px);height:auto;margin:auto}
.k-portrait img[src*="kelly-carnets"]{object-fit:contain!important;object-position:center!important}
.mag img[data-character-art]{object-fit:contain!important;object-position:center!important;background:#fff}

/* Approved supplied homepage illustration, above live presentation content. */
body.page-accueil .hero.home-welcome{display:flex;flex-direction:column;align-items:center;isolation:isolate;overflow:visible;background:#fff;border:0;border-radius:0;margin:24px auto 48px;width:100%;max-width:900px}
body.page-accueil .home-welcome-art{position:relative;z-index:2;flex:none;margin:0 0 -28px;width:min(100%,620px);line-height:0;pointer-events:none}
body.page-accueil .home-welcome-art img{display:block;width:100%;height:auto;object-fit:contain;mix-blend-mode:normal}
body.page-accueil .home-welcome .hero-copy{position:relative;z-index:1;width:100%;padding:42px clamp(20px,5vw,58px) 32px;text-align:center;border:1px solid #efd5df;border-radius:20px;background:#fff;container-type:normal}
body.page-accueil .home-welcome .eyebrow{justify-content:center}
body.page-accueil .home-welcome .home-title{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:0 .2em;font-size:clamp(48px,8vw,94px);line-height:1.1;margin:12px 0 16px;animation:none}
body.page-accueil .home-welcome .home-title .cover-pre,body.page-accueil .home-welcome .home-title .cover-word{display:inline;position:static;transform:none;padding:0;font-size:1em;line-height:1.1;white-space:nowrap}
body.page-accueil .home-welcome .home-title .cover-pre::after,body.page-accueil .home-welcome .home-title .cover-word::after{display:none}
body.page-accueil .home-welcome .baseline{max-width:none;line-height:1.7}
body.page-accueil .home-welcome-tagline{color:#a52658;font-style:italic;font-size:16px;margin:8px 0}
body.page-accueil .home-welcome .hero-copy>p{max-width:690px;margin:16px auto 24px;font-size:17px;line-height:1.6}
body.page-accueil .home-welcome .actions{justify-content:center}
body.page-accueil .home-welcome .actions a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:700px){
 body.page-accueil .hero.home-welcome{margin:12px auto 32px}
 body.page-accueil .home-welcome-art{margin-bottom:-18px}
 body.page-accueil .home-welcome .hero-copy{padding:30px 20px 24px;border-radius:16px}
 body.page-accueil .home-welcome .hero-copy>p{font-size:16px}
 body.page-accueil .home-welcome .home-title{font-size:clamp(46px,10.5vw,68px)}
 body.page-accueil .home-welcome .actions{flex-direction:column;align-items:stretch}
}

/* Compact introductions: leave room for the tools and collections below. */
body:not(.page-accueil) main :is(.folio-hero,.intro-banner,.oracle20-hero,.jeu-front){min-height:0;padding:14px clamp(16px,2.5vw,28px);margin-block:12px 18px;gap:16px}
body:not(.page-accueil) main .folio-hero{grid-template-columns:minmax(0,1.6fr) minmax(150px,.65fr)}
body:not(.page-accueil) main :is(.folio-hero,.oracle20-hero) figure img{max-height:220px;width:100%;height:auto!important;object-fit:contain}
body:not(.page-accueil) main .jeu-front>img{max-height:150px;width:min(100%,180px)}
body:not(.page-accueil) main :is(.folio-hero,.intro-banner,.oracle20-hero,.jeu-front) h1{font-size:clamp(34px,4vw,52px);line-height:1.14;max-width:none;margin:6px 0 10px}
body:not(.page-accueil) main :is(.folio-hero,.intro-banner,.oracle20-hero,.jeu-front) .intro{max-width:60ch;font-size:16px;line-height:1.5;margin:8px 0}
body:not(.page-accueil) main .folio-hero figcaption{font-size:14px;margin:4px 0}
body.page-boule-de-cristal main .intro-banner .kb-aside img{max-height:170px;width:min(100%,180px)}
body main .cn-hero{margin-block:12px 20px;padding-block:8px}
body main .cn-hero>img{max-height:230px;width:min(100%,460px);object-fit:contain;margin:auto}
body main .cn-hero h1{font-size:clamp(34px,4.5vw,54px);margin:8px 0}
body main .cn-hero>p{margin-block:8px;font-size:16px}
/* Compact consultation listing only: detailed offer pages retain their reading layout. */
body.page-consultations .cf-shell{padding:18px clamp(16px,3vw,36px)}
body.page-consultations .cf-hero{grid-template-columns:minmax(0,1.5fr) minmax(150px,.7fr);gap:20px;padding:8px 0 18px}
body.page-consultations .cf-hero picture img{max-height:260px;width:100%;object-fit:contain}
body.page-consultations .cf-hero h1,body.page-consultations .cf-group>h2{font-size:clamp(32px,4vw,48px)}
body.page-consultations .cf-group{padding-top:22px}
body.page-consultations .cf-offer{grid-template-columns:minmax(120px,20%) minmax(0,1fr);margin:12px 0 16px;border-radius:16px}
body.page-consultations .cf-offer .cf-illustration{padding:10px;background:#fff}
body.page-consultations .cf-offer .cf-illustration img{max-height:170px;width:100%;object-fit:contain}
body.page-consultations .cf-offer-body{padding:14px 18px}
body.page-consultations .cf-offer h2{font-size:clamp(25px,2.5vw,32px);margin:6px 0}
body.page-consultations .cf-offer .cf-hook{font-size:17px;line-height:1.4;margin:8px 0}
body.page-consultations .cf-meta{gap:6px 14px;font-size:12px}
body.page-consultations .cf-author img{height:30px;width:30px}
body.page-consultations .cf-offer details{padding:8px 0}
body.page-consultations [data-cf-delay]:empty{display:none}
body.page-consultations .cf-actions{gap:8px 14px;margin-top:8px}
body.page-consultations .cf-cta{min-height:44px;box-sizing:border-box;padding:10px 16px}
@media(max-width:700px){
 body:not(.page-accueil) main .folio-hero{grid-template-columns:minmax(0,1fr) minmax(105px,.55fr);gap:10px}
 body:not(.page-accueil) main :is(.folio-hero,.oracle20-hero) figure img{max-height:165px}
 body:not(.page-accueil) main .jeu-front>img{max-height:125px}
 body.page-consultations .cf-hero{grid-template-columns:1fr}
 body.page-consultations .cf-hero picture{width:100%;max-width:280px;margin:auto}
 body.page-consultations .cf-hero picture img{max-height:180px}
 body.page-consultations .cf-offer{grid-template-columns:100px minmax(0,1fr)}
 body.page-consultations .cf-offer .cf-illustration{padding:6px}
 body.page-consultations .cf-offer .cf-illustration img{max-height:120px}
 body.page-consultations .cf-offer-body{padding:12px}
 body.page-consultations .cf-offer h2{font-size:25px}
 body.page-consultations .cf-offer .cf-meta>span:last-child{display:none}
}
@media(max-width:480px){
 body:not(.page-accueil) main .folio-hero{grid-template-columns:1fr}
 body:not(.page-accueil) main .folio-hero figure{width:min(100%,230px);margin:auto}
 body.page-consultations .cf-offer{grid-template-columns:1fr}
 body.page-consultations .cf-offer .cf-illustration img{max-height:100px;width:140px}
}
body.page-livres main .lib-welcome{padding:20px 24px;gap:24px;grid-template-columns:minmax(0,1.7fr) minmax(130px,.55fr)}
body.page-livres main .lib-welcome .lib-feature img{max-height:200px;width:auto;max-width:100%;object-fit:contain}
body.page-livres main .lib-welcome h1{font-size:clamp(34px,4vw,50px)}
body.page-livres main .lib-letter p{margin-top:8px;line-height:1.5}
body main .mag .mag-home-welcome{gap:16px;margin-bottom:14px;grid-template-columns:minmax(130px,.45fr) minmax(0,1.55fr)}
body main .mag .mag-home-art{max-width:180px}
body main .mag .mag-home-welcome h1{font-size:clamp(32px,3.8vw,46px);margin-bottom:8px}
@media(max-width:600px){
 body.page-livres main .lib-welcome{grid-template-columns:1fr;padding:16px}
 body.page-livres main .lib-welcome .lib-feature img{max-height:160px}
 body main .mag .mag-home-welcome{grid-template-columns:1fr;gap:8px}
 body main .mag .mag-home-art{max-width:150px}
}

/* Crystal page: reduce the sphere and large display text without shrinking touch controls. */
body.page-boule-de-cristal .crystal-stage{width:min(80%,352px)}
body.page-boule-de-cristal main .intro-banner h1{font-size:clamp(23.8px,2.8vw,36.4px)}
body.page-boule-de-cristal .mg-crystal .mg-message blockquote{font-size:clamp(22.4px,2.87vw,35.7px);line-height:1.35}
body.page-boule-de-cristal .mg-crystal>p{font-size:14px;line-height:1.5;margin-block:10px}
body.page-boule-de-cristal .mg-crystal form :is(input,button){font-size:16px;min-height:44px}
