/* Real moments, framed in STARI's warm and playful visual language. */
#enfoque{padding-top:84px;padding-bottom:84px}
#enfoque .cards{gap:24px;align-items:stretch}
.servicephoto-card.card{padding:0;overflow:hidden;border-radius:24px;min-width:0;box-shadow:0 12px 35px #59443d06}
.servicephoto{position:relative;aspect-ratio:1.65;overflow:hidden;margin:10px 10px 0;border-radius:17px}
.servicephoto img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.3s cubic-bezier(.2,.65,.3,1)}
.card:first-child .servicephoto img{object-position:50% 36%}
.servicephoto .cardnum{top:12px;right:12px;background:#ffffffed;color:var(--ink);width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600;backdrop-filter:blur(8px)}
.servicebody{padding:27px 27px 24px;display:flex;flex:1;flex-direction:column}
.servicebody h3{font-size:26px;line-height:1.13;min-height:58px;letter-spacing:-.7px}
.servicebody p{font-size:14px;line-height:1.75;margin-bottom:24px}
.servicebody .serviceaction{margin-top:auto}
.servicephoto-card:hover .servicephoto img{transform:scale(1.055)}
.servicephoto-card.reveal-pending .servicephoto img{transform:scale(1.15)}
.program.program{padding:92px 0 84px;background:#f7eee3;position:relative}
.programeditorial.programgrid{grid-template-columns:1fr 1fr;gap:42px 64px;align-items:center}
.programeditorial .programintro{position:static;top:auto;grid-column:1;grid-row:1}
.programeditorial .programintro h2{font-size:clamp(48px,5vw,68px);line-height:1.05;margin:24px 0}
.programeditorial .programintro p{max-width:470px}
.programphotos{position:relative;margin:0 0 10px;min-height:390px;grid-column:2;grid-row:1;isolation:isolate}
.programphoto-main{position:absolute;left:3%;top:0;width:68%;height:365px;border:9px solid #fff;border-radius:110px 30px 36px 30px;overflow:hidden;transform:rotate(-5deg);box-shadow:0 18px 42px #5d4e3c15}
.programphoto-main img,.programphoto-small img{width:100%;height:100%;object-fit:cover;display:block}
.programphoto-main img{object-position:50% 46%}
.programphoto-small{position:absolute;right:0;bottom:30px;width:43%;aspect-ratio:1;border:8px solid #fff;border-radius:24px 24px 70px 24px;overflow:hidden;transform:rotate(7deg);box-shadow:0 18px 40px #5d4e3c12}
.programphotos figcaption{position:absolute;left:6%;bottom:0;background:#fffdf8;border:1px solid #e5d8c9;border-radius:14px;padding:13px 21px;display:flex;align-items:center;gap:12px;font-size:14px;font-weight:500;transform:rotate(-3deg);box-shadow:0 8px 25px #5d4e3c08}
.programphotos figcaption>span:first-child{color:#c6636d;font-size:30px;line-height:1}
.program-photo-doodle{position:absolute;right:10%;top:-35px;color:#c56970;font-size:100px;line-height:1;z-index:-1}
.programeditorial .programareas{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:areas}
.programeditorial .programareas article{display:block;position:relative;border:1px solid #e7dccc;border-radius:18px;padding:26px 22px 28px;background:#fffaf4;transition:background .3s,transform .3s}
.programeditorial .programareas article:nth-child(2){background:#eef6f5}
.programeditorial .programareas article:nth-child(3){background:#fff0ed}
.programeditorial .programareas article:nth-child(4){background:#f6f1dd}
.programeditorial .programareas article:hover{transform:translateY(-5px)}
.programeditorial .programareas article>span{margin:0 0 30px;width:38px;height:38px;background:#fff9;font-family:'Outfit',sans-serif;font-size:13px;border-color:#d9c9b9}
.programeditorial .programareas h3{font-size:23px;line-height:1.17;min-height:81px;letter-spacing:-.5px}
.programeditorial .programareas p{font-size:13px;line-height:1.75}
/* A brief welcome, never a loading screen that can leave the page blocked. */
.brand-welcome{display:none;pointer-events:none}
.show-welcome .brand-welcome{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:hidden;background:#fff;animation:welcome-exit .7s 1.65s cubic-bezier(.76,0,.24,1) both}
.welcome-center{position:relative;z-index:1;text-align:center;animation:welcome-arrive .85s cubic-bezier(.16,1,.3,1) both}
.welcome-mark{width:120px;height:139px;overflow:hidden;margin:auto}
.welcome-mark img{width:300px;height:300px;max-width:none;display:block;margin:-78px 0 0 -94.5px}
.welcome-center p{font-family:'Outfit',sans-serif;font-size:clamp(18px,2vw,23px);letter-spacing:.2px;color:#425358;margin-top:20px;animation:welcome-copy .7s .3s both}
.welcome-line{height:3px;width:130px;display:block;margin:25px auto 0;border-radius:10px;background:linear-gradient(90deg,#58bbca 0 33%,#ee7273 33% 66%,#f39950 66%);transform-origin:left;animation:welcome-line 1.3s .1s both}
.welcome-orbit{position:absolute;width:clamp(280px,50vw,700px);aspect-ratio:1;border-radius:50%;border:1px solid #e4eff0;animation:welcome-orbit 2.4s ease-out both}
.orbit-one{background:#eaf7f6;left:-22%;top:-35%;border:0}
.orbit-two{background:#fff0e1;right:-18%;bottom:-40%;border:0;animation-delay:.1s}
.welcome-spark{position:absolute;left:calc(50% + 130px);top:calc(50% - 155px);font-size:58px;color:#ec7774;animation:welcome-spark 1.8s ease-out both}
@keyframes welcome-arrive{from{opacity:0;transform:translateY(24px) scale(.88)}to{opacity:1;transform:none}}
@keyframes welcome-copy{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes welcome-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes welcome-orbit{from{transform:scale(.7)}to{transform:scale(1.15)}}
@keyframes welcome-spark{from{opacity:0;transform:rotate(-90deg) scale(.5)}to{opacity:1;transform:rotate(30deg) scale(1)}}
@keyframes welcome-exit{to{transform:translateY(-103%);visibility:hidden}}
@media(max-width:1000px){.servicebody{padding:22px}.servicebody h3{font-size:23px}.programeditorial.programgrid{gap:35px}.programeditorial .programareas{grid-template-columns:repeat(2,1fr)}.programeditorial .programareas h3{min-height:0}.programphotos{min-height:340px}.programphoto-main{height:320px}}
@media(max-width:700px){#enfoque{padding:60px 0}.servicephoto{aspect-ratio:1.8}.servicebody h3{min-height:0;font-size:28px}.servicebody{padding:24px}.program.program{padding:60px 0}.programeditorial.programgrid{grid-template-columns:1fr;gap:36px}.programeditorial .programintro{grid-column:1;grid-row:auto}.programphotos{grid-column:1;grid-row:auto;min-height:350px;width:min(100%,440px);margin:10px auto}.programphoto-main{height:325px}.programeditorial .programareas{grid-template-columns:1fr;gap:12px}.programeditorial .programareas article{display:flex;gap:18px;padding:23px}.programeditorial .programareas article>span{margin:0;flex-shrink:0}.programeditorial .programareas h3{font-size:22px}.programeditorial .programareas p{font-size:14px}.welcome-spark{left:calc(50% + 90px);font-size:42px}.orbit-one{left:-40%;top:-10%}.orbit-two{right:-50%;bottom:-10%}}
@media(prefers-reduced-motion:reduce){.show-welcome .brand-welcome{display:none}.servicephoto img,.programeditorial .programareas article{transition:none}.servicephoto-card:hover .servicephoto img{transform:none}}
@media print{.brand-welcome{display:none!important}}

/* Editor content keeps plain text safe and photo framing consistent. */
.managed-text{white-space:pre-line}
.cms-crop-0{object-position:50% 0%!important}
.cms-crop-25{object-position:50% 25%!important}
.cms-crop-50{object-position:50% 50%!important}
.cms-crop-75{object-position:50% 75%!important}
.cms-crop-100{object-position:50% 100%!important}

img.cms-photo{object-fit:contain!important;object-position:center!important;background:#fff}.contactportrait img.cms-photo{transform:none}.danielaname img.cms-photo{height:auto;aspect-ratio:4/5}.photoframe:has(.cms-photo){height:auto;aspect-ratio:1.2}.programphoto-main:has(.cms-photo){height:auto;aspect-ratio:.8}.tipimage:has(.cms-photo){height:auto;aspect-ratio:1.5}
