/* Warm light and slow movement extend the site's existing botanical palette. */
.hero{isolation:isolate}.hero::after{content:'';position:absolute;inset:-12%;z-index:0;background:radial-gradient(ellipse at 72% 36%,#d6bf6325,transparent 37%),radial-gradient(ellipse at 15% 72%,#54775b33,transparent 42%);pointer-events:none;animation:fleurAmbient 16s ease-in-out infinite alternate}.hero-grid{position:relative;z-index:1}.hero-photo{animation:fleurFrameBreath 8s ease-in-out infinite}.hero-copy .eyebrow{color:#ded08a}.hero-copy h1{animation:fleurEntrance 1.1s cubic-bezier(.2,.7,.2,1) both}.hero-copy>p,.hero-copy .actions{animation:fleurEntrance 1.3s cubic-bezier(.2,.7,.2,1) both}.hero-copy>p{animation-delay:.12s}.hero-copy .actions{animation-delay:.22s}
@keyframes fleurAmbient{from{transform:translate3d(-1%,0,0);opacity:.6}to{transform:translate3d(1%,2%,0);opacity:1}}@keyframes fleurFrameBreath{0%,100%{box-shadow:0 14px 35px #071c1633,0 0 0 1px #c9bc8322,0 0 28px #c9bc8308}50%{box-shadow:0 22px 50px #071c1655,0 0 0 1px #e5d59366,0 0 48px #c9bc8320}}@keyframes fleurEntrance{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}
.ribbon{position:relative;overflow:hidden}.ribbon::before{content:'';position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(100deg,transparent,#e7d48713,transparent);transform:skewX(-18deg);animation:fleurRibbonLight 13s ease-in-out infinite;pointer-events:none}@keyframes fleurRibbonLight{0%,32%{left:-60%}75%,100%{left:130%}}
#siteProgress{position:fixed;inset:0 auto auto 0;width:100%;height:2px;background:linear-gradient(90deg,#a79954,#f5e3a7);transform:scaleX(var(--fleur-progress,0));transform-origin:left;z-index:80;pointer-events:none;box-shadow:0 0 12px #e5ca8155}
.fleur-motion-ready .fleur-reveal{opacity:0;translate:0 24px;transition:opacity .85s ease,translate .85s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}.fleur-motion-ready .fleur-reveal.is-visible{opacity:1;translate:0 0}
@supports(background-clip:text){.section-head h2 em{background:linear-gradient(110deg,var(--ink),#e3d393,var(--ink));background-clip:text;-webkit-background-clip:text;color:transparent}}
.sunny-carousel{border-radius:12px;isolation:isolate;border-color:#bbaa6770;transition:border-color .4s,box-shadow .4s,transform .4s}.sunny-carousel::before{content:'';position:absolute;inset:0;background:radial-gradient(480px circle at var(--spot-x,50%) var(--spot-y,10%),#dcc47926,transparent 58%);opacity:0;transition:opacity .5s;pointer-events:none;z-index:0}.sunny-heading,.sunny-stage,.sunny-footer{position:relative;z-index:1}.sunny-heading h3{color:#ead9a0}.sunny-info{margin-inline:-2rem;padding-top:22px}.sunny-info h4{font-size:clamp(1.45rem,2.2vw,1.8rem);line-height:1.3}.sunny-info .sunny-price{color:#f0dda0}.sunny-order{font-size:14px;letter-spacing:.01em}.sunny-footer{padding-top:18px}.sunny-carousel:focus-within{border-color:#d3bd80;box-shadow:0 14px 38px #071c164a,0 0 22px #d6b56f13}.sunny-carousel:focus-within::before{opacity:1}
@media(hover:hover) and (pointer:fine){.sunny-carousel:hover{border-color:#d3bd80;box-shadow:0 24px 48px #071c1655,0 0 24px #d6b56f1c;transform:translateY(-4px)}.sunny-carousel:hover::before{opacity:1}.btn:hover{box-shadow:0 12px 32px #071c1644,0 0 18px #d6bf6322}}
.composition-details{margin:18px 0 0;border-top:1px solid #b5b0784d;border-bottom:1px solid #b5b0784d;min-width:0;text-align:left}.composition-details summary{display:flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:8px 12px;list-style:none;cursor:pointer;color:#e7d8a0;font:500 14px/1.5 var(--sans);letter-spacing:.06em;transition:color .3s,background .3s}.composition-details summary::-webkit-details-marker{display:none}.composition-details summary:hover,.composition-details summary:focus-visible{color:#fff0bb;background:#e2ca7510}.description-icon{display:grid;place-items:center;width:26px;height:26px;flex:none;border:1px solid #d4bd6c66;border-radius:50%;font:21px/1 Georgia,serif;transition:transform .3s}.description-icon::before{content:'+'}.composition-details[open] .description-icon{transform:rotate(45deg)}.composition-details[open]{border:1px solid #bcaa6b88;border-radius:8px;background:linear-gradient(135deg,#314e3c,#18362b);box-shadow:0 10px 24px #0c211d22}.composition-description{padding:4px 18px 20px;color:#e4e9dc;font-size:16px;line-height:1.8;overflow-wrap:anywhere}.composition-description p{margin:14px 0 0}.composition-description p:first-child{margin-top:8px}.composition-details[open] .composition-description{animation:fleurDescriptionIn .35s ease both}@keyframes fleurDescriptionIn{from{opacity:0;translate:0 -5px}to{opacity:1;translate:0 0}}
/* Number and paragraph have separate boxes; CMS text wrappers never size the badge. */
.consultation .steps{position:relative;gap:20px;margin-top:36px}.consultation .steps::before{content:'';position:absolute;left:22px;top:24px;bottom:24px;width:1px;background:linear-gradient(#d4bd7d22,#d4bd7d88,#d4bd7d22);pointer-events:none}.consultation .step{display:grid;grid-template-columns:44px minmax(0,1fr);gap:18px;align-items:center;min-height:58px;position:relative;font-size:16px}.consultation .step > .step-number{display:grid;place-items:center;inline-size:44px;block-size:44px;min-inline-size:44px;border:1px solid #c8ba7db3;border-radius:50%;background:#18372b;color:#efe0ac;font:24px/1 var(--serif);box-shadow:0 0 0 5px #18372b,0 5px 16px #0b241b33}.consultation .step > .step-text{margin:0;padding:0;min-width:0;width:auto;border:0;border-radius:0;display:block;color:#e2e9da;font:400 16px/1.65 var(--sans);letter-spacing:normal;text-wrap:pretty;overflow-wrap:break-word}
@media(max-width:600px){.sunny-info{margin-inline:-1.7rem}.composition-description{padding:4px 15px 18px;line-height:1.75}.consultation .step{gap:14px}.hero::after{animation:none}.sunny-heading{padding-top:24px}}
@media(prefers-reduced-motion:reduce){.hero::after,.hero-photo,.hero-copy h1,.hero-copy>p,.hero-copy .actions,.ribbon::before,.composition-details[open] .composition-description{animation:none!important}.fleur-motion-ready .fleur-reveal{opacity:1;translate:none;transition:none}.sunny-carousel,.sunny-carousel:hover{transform:none;transition:none}.description-icon{transition:none}#siteProgress{box-shadow:none}}
