/* Shared SJH media language, with contained surfaces throughout Services. */
.services-page #main{background:#fff;isolation:isolate}
.services-page #main>.studio-services-film{position:relative;top:auto;z-index:0;height:auto;min-height:0;max-height:none;aspect-ratio:16/9;background:#111;overflow:hidden}
.studio-services-film>img,.studio-services-film>video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:none!important}
.studio-services-film>video{opacity:0;transition:opacity .5s ease}
.studio-services-film>video.is-playing{opacity:1}
.studio-services-film:after{background:linear-gradient(0deg,#0008,transparent 27%)}
.studio-services-film .watch-button{left:var(--gutter);bottom:32px;gap:16px;min-height:62px;padding:8px 24px 8px 8px;backdrop-filter:blur(12px);border:1px solid #ffffff80;background:#17171755;transition:background .3s,transform .45s var(--ease-out)}
.studio-services-film .watch-button:is(:hover,:focus-visible){background:var(--red);transform:translateY(-3px)}
.services-content{position:relative;z-index:1;background:#fff;isolation:isolate;overflow:clip}
.services-content>.section{position:relative;background:#fff}
.services-content .studio-service-opening{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(40px,7vw,125px);padding-block:clamp(75px,8vw,130px);align-items:start}
.studio-service-opening h1{font-size:clamp(48px,5.5vw,92px);line-height:1.04;letter-spacing:-.045em;text-align:left;color:var(--red);margin:0;max-width:13ch;text-wrap:balance}
.studio-service-opening>div{padding-top:8px}
.studio-service-opening p{font-size:clamp(19px,1.65vw,25px);line-height:1.6;text-align:left;margin:0 0 24px;max-width:35ch}
.studio-service-types{padding-top:16px;padding-bottom:clamp(80px,8vw,140px)}
.studio-service-types .center-heading{font-size:clamp(42px,4.8vw,72px);margin:0 0 64px;text-align:left}
.studio-service-types .service-circles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:52px 28px;align-items:start}
.studio-service-types .service-circle-card{display:flex;justify-content:center;min-width:0;position:relative}
.studio-service-types .service-circle{width:100%;max-width:310px;aspect-ratio:1;border-radius:50%;position:relative;overflow:hidden;background:#e74023;color:white;box-shadow:0 10px 24px #e740230d;transform:none;transition:transform .65s cubic-bezier(.2,1.55,.4,1),box-shadow .4s,background .4s}
.studio-service-types .service-circle>img{opacity:.15;object-fit:cover;transform:scale(1.02);transition:opacity .6s,transform 1s;filter:saturate(.4)}
.studio-service-types .service-circle:before{content:'';position:absolute;inset:11px;border-radius:50%;border:1px solid #ffffff45;pointer-events:none;transition:inset .55s,border-color .55s;z-index:0}
.studio-service-types .service-circle:after{z-index:0;background:radial-gradient(circle at var(--light-x,50%) var(--light-y,35%),#ffffff2b,transparent 62%);opacity:.5}
.studio-service-types .circle-content{position:relative;z-index:1;padding:30px;aspect-ratio:1;min-height:0}
.studio-service-types .circle-title{font-size:clamp(27px,2.4vw,38px);line-height:1.08;font-weight:400;transition:transform .55s,font-size .4s;max-width:9ch}
.studio-service-types .circle-detail{font-size:clamp(15px,1.15vw,18px);line-height:1.4;max-height:0;opacity:0;max-width:25ch}
.service-circle-number{position:absolute;left:0;right:0;top:25px;font-size:13px;letter-spacing:.12em;opacity:.7;pointer-events:none;transition:opacity .3s;z-index:1}
.studio-service-types .service-circle:is(:hover,:focus-visible,[aria-expanded=true]){background:#d53218;transform:translateY(-5px) scale(1.035);box-shadow:0 20px 30px #b632181d}
.studio-service-types .service-circle:is(:hover,:focus-visible,[aria-expanded=true])>img{opacity:.42;transform:scale(1.12) rotate(8deg)}
.studio-service-types .service-circle:is(:hover,:focus-visible,[aria-expanded=true]):before{inset:7px;border-color:#ffffff70}
.studio-service-types .service-circle[aria-expanded=true] .circle-title{font-size:clamp(24px,2vw,30px);transform:none}
.studio-service-types .service-circle[aria-expanded=true] .circle-detail{max-height:170px;opacity:1;margin-top:13px}
.studio-service-types .service-circle[aria-expanded=true] .service-circle-number{opacity:0}
.services-content>.studio-work{padding-top:0;padding-bottom:clamp(80px,9vw,145px);background:#fff}
.studio-work .studio-work-heading{position:relative;display:flex;align-items:center;justify-content:space-between;gap:40px;padding:52px 48px;margin:0 0 30px;background:var(--red);color:#fff;clip-path:none!important;border-radius:0;overflow:visible}
.studio-work-heading h2{font-size:clamp(38px,4vw,62px);line-height:1.08;max-width:13ch;text-align:left;margin:0}
.studio-work-heading .pill{flex:0 0 auto;margin:0;min-width:166px;min-height:56px;font-size:17px;box-shadow:0 4px 20px #ad2a1818}
.studio-work .work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0;padding:0}
.studio-work .project-card .card-info h3{font-size:clamp(26px,2.2vw,36px)}
.services-content>.studio-approach{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.6fr);gap:clamp(40px,8vw,135px);padding-block:80px 120px;border-top:1px solid #eee;background:#fff;overflow:visible}
.studio-approach .approach-heading{position:sticky;top:130px;align-self:start;display:block;margin:0;padding:0}
.studio-approach .approach-heading h2{font-size:clamp(58px,5.8vw,90px);line-height:1.04;letter-spacing:-.035em;color:var(--red);margin:0 0 40px;text-align:left}
.approach-nav{display:flex;flex-direction:column;gap:0;border-left:1px solid #e5ddd9;padding-left:23px}
.approach-nav a{position:relative;display:flex;align-items:center;gap:20px;min-height:60px;font-size:19px;color:#777;text-decoration:none;transition:color .3s,transform .4s}
.approach-nav a:before{content:'';position:absolute;left:-24px;top:15px;bottom:15px;width:2px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform .4s}
.approach-nav a:is(:hover,:focus-visible,[aria-current=step]){color:var(--red);transform:translateX(4px)}
.approach-nav a[aria-current=step]:before{transform:scaleY(1)}
.studio-approach .approach-grid{display:block;margin:0;padding:0}
.studio-approach .approach-grid>.approach-step{position:relative;top:auto;z-index:auto;min-height:0;display:block;background:#fff;padding:0 0 64px;margin:0 0 64px;border-top:0;border-bottom:1px solid #e8e3e0;scroll-margin-top:130px}
.studio-approach .approach-step:last-child{margin:0;padding-bottom:0;border-bottom:0}
.studio-approach .approach-grid h3{font-size:clamp(32px,3vw,48px);line-height:1.12;font-weight:400;color:var(--red);margin:0 0 24px;text-align:left}
.studio-approach .approach-grid p{font-size:clamp(20px,1.7vw,26px);line-height:1.6;max-width:37ch;text-align:left;margin:0}
.services-content>.studio-capabilities{background:var(--red);color:#fff;clip-path:none!important;padding-block:95px 110px;margin:0;overflow:visible}
.studio-capabilities>h2{font-size:clamp(44px,5vw,76px);line-height:1.08;color:#fff;margin:0 0 65px;text-align:left;max-width:16ch}
.studio-capabilities .capability-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:40px;margin:0;align-items:start}
.studio-capabilities .capability-grid>div{padding:25px 0 0;border:0;border-top:1px solid #ffffff55;background:transparent;min-width:0}
.studio-capabilities .capability-grid h3{font-size:clamp(29px,2.8vw,42px);line-height:1.12;font-weight:400;color:#fff;margin:0 0 23px;padding:0;border:0}
.studio-capabilities .capability-grid ul{margin:0;padding:0;list-style:none}
.studio-capabilities .capability-grid li{font-size:18px;line-height:1.5;color:#fff;padding:5px 0;border:0;transition:transform .35s}
.studio-capabilities .capability-grid>div:hover li{transform:translateX(4px)}
.studio-capabilities .capability-grid .list-revealed>li{animation:capability-line-in .6s cubic-bezier(.22,.7,.3,1) backwards;animation-delay:var(--line-delay,0ms)}
@keyframes capability-line-in{from{opacity:0;transform:translateY(12px);clip-path:inset(100% 0 0)}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}
.services-content>.cta{padding-block:100px;background:#fff}
.studio-about{padding-top:70px;padding-bottom:85px}
.studio-about .about-opening{display:grid;grid-template-columns:1fr 1.55fr;gap:clamp(40px,8vw,140px);align-items:start;padding-bottom:70px}
.studio-about h1{font-size:clamp(64px,8vw,132px);line-height:1;letter-spacing:-.04em;margin:0;color:var(--red);text-align:left}
.studio-about .about-original-copy{max-width:none;margin:0;text-align:left}
.studio-about .about-original-copy p{font-size:clamp(19px,1.65vw,25px);line-height:1.6;text-align:left;margin:0 0 24px}
.studio-about .about-original-copy p:last-child{margin-bottom:0}
.studio-about .team-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0;padding-top:48px;border-top:1px solid #e8e3e0}
.studio-team-card .team-portrait{display:block;position:relative;width:100%;aspect-ratio:4/5;background:#f3f3f3;overflow:hidden;isolation:isolate;--media-ratio:4/5}
.studio-team-card .team-portrait>img{display:block;width:100%;height:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 30%;filter:saturate(.85);transform:scale(1);transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .6s}
.studio-team-card .team-portrait:after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--red);transform:scaleX(.15);transform-origin:left;transition:transform .7s;pointer-events:none;z-index:2}
.studio-team-card:is(:hover,:focus-within) .team-portrait>img{transform:scale(1.035);filter:saturate(1)}
.studio-team-card:is(:hover,:focus-within) .team-portrait:after{transform:scaleX(1)}
.studio-about .team-grid h3{font-size:clamp(27px,2.5vw,39px);line-height:1.12;text-align:left;color:var(--red);margin:24px 0 8px;font-weight:400}
.studio-about .team-grid p{font-size:16px;line-height:1.45;color:#646464;text-align:left;margin:0}
.studio-about+.cta{border-top:1px solid #eee;padding-block:95px 105px}
@media(max-width:1050px){
 .studio-approach .approach-heading h2{font-size:clamp(46px,6vw,64px)}
 .studio-approach .approach-grid h3{font-size:clamp(32px,3.8vw,40px)}
 .studio-service-types .service-circles{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
 .studio-service-types .circle-title{font-size:38px}
 .studio-service-types .circle-detail{font-size:17px}
 .studio-service-types .service-circle[aria-expanded=true] .circle-title{font-size:30px}
 .studio-capabilities .capability-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:45px}
 .studio-about .team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 28px}
 .studio-about .about-opening{grid-template-columns:.75fr 1.25fr;gap:45px}
}
@media(max-width:700px){
 .services-page #main>.studio-services-film{margin-top:80px;aspect-ratio:16/9}
 .studio-services-film .watch-button{bottom:15px;left:20px;min-height:44px;font-size:14px;padding:5px 14px 5px 5px;gap:10px}
 .studio-services-film .play-symbol{width:32px;height:32px}
 .services-page .header:not(.scrolled){background:#fff}
 .services-page .header:not(.scrolled) .brand-normal{display:block}
 .services-page .header:not(.scrolled) .brand-light{display:none}
 .services-content .studio-service-opening{grid-template-columns:1fr;gap:32px;padding-block:55px 60px}
 .studio-service-opening h1{font-size:clamp(43px,9vw,60px);max-width:16ch}
 .studio-service-opening>div{padding:0}
 .studio-service-opening p{font-size:20px;max-width:none}
 .studio-service-types{padding-bottom:65px;padding-top:0}
 .studio-service-types .center-heading{font-size:46px;margin-bottom:34px}
 .studio-service-types .service-circles{gap:22px 18px}
 .studio-service-types .circle-content{padding:18px}
 .studio-service-types .circle-title{font-size:clamp(22px,5.6vw,33px)}
 .studio-service-types .service-circle-card:nth-child(2) .service-circle:not([aria-expanded=true]) .circle-title{font-size:clamp(17px,4.4vw,27px)}
 .studio-service-types .service-circle-number{top:16px;font-size:11px}
 .studio-service-types .service-circle-card:has([aria-expanded=true]){grid-column:1/-1}
 .studio-service-types .service-circle-card:has([aria-expanded=true]) .service-circle{width:290px;max-width:100%;transform:none}
 .studio-service-types .service-circle[aria-expanded=true] .circle-content{padding:30px}
 .studio-service-types .service-circle[aria-expanded=true] .circle-title{font-size:30px}
 .studio-service-types .service-circle[aria-expanded=true] .circle-detail{font-size:17px;line-height:1.4}
 .studio-work .studio-work-heading{display:block;padding:35px 25px;margin-bottom:22px}
 .studio-work-heading h2{font-size:42px;max-width:13ch}
 .studio-work-heading .pill{margin-top:28px;min-height:50px;font-size:16px}
 .studio-work .work-grid{grid-template-columns:1fr;gap:22px}
 .studio-work .project-card .card-info h3{font-size:32px}
 .services-content>.studio-work{padding-bottom:60px}
 .services-content>.studio-approach{grid-template-columns:1fr;gap:40px;padding-block:60px 70px}
 .studio-approach .approach-heading{position:relative;top:auto}
 .studio-approach .approach-heading h2{font-size:58px;margin-bottom:24px}
 .approach-nav{flex-direction:row;justify-content:space-between;border-left:0;border-bottom:1px solid #e5ddd9;padding:0;gap:10px}
 .approach-nav a{display:block;min-height:56px;font-size:15px;transform:none!important;padding-bottom:12px}
 .approach-nav a:before{left:0;right:0;bottom:-1px;top:auto;height:2px;width:auto;transform:scaleX(0);transform-origin:left}
 .approach-nav a[aria-current=step]:before{transform:scaleX(1)}
 .studio-approach .approach-grid>.approach-step{padding-bottom:40px;margin-bottom:40px;scroll-margin-top:100px}
 .studio-approach .approach-grid h3{font-size:36px;margin-bottom:20px}
 .studio-approach .approach-grid p{font-size:20px;line-height:1.6;max-width:none}
 .services-content>.studio-capabilities{padding-block:60px 70px}
 .studio-capabilities>h2{font-size:46px;margin-bottom:38px}
 .studio-capabilities .capability-grid{gap:38px 24px}
 .studio-capabilities .capability-grid h3{font-size:29px;overflow-wrap:anywhere}
 .studio-capabilities .capability-grid li{font-size:16px}
 .services-content>.cta{padding-block:65px}
 .studio-about{padding-block:40px 55px}
 .studio-about .about-opening{grid-template-columns:1fr;gap:30px;padding-bottom:38px}
 .studio-about h1{font-size:72px}
 .studio-about .about-original-copy p{font-size:20px}
 .studio-about .team-grid{gap:32px 20px;padding-top:32px}
 .studio-about .team-grid h3{font-size:27px;margin-top:18px}
 .studio-about .team-grid p{font-size:14px}
 .studio-about+.cta{padding-block:65px}
}
@media(max-width:430px){.studio-about .team-grid{grid-template-columns:1fr;gap:35px}.studio-about .team-grid h3{font-size:34px}.studio-about .team-grid p{font-size:16px}.studio-capabilities .capability-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){
 .studio-services-film>video{display:none}
 .studio-service-types .service-circle,.studio-team-card .team-portrait>img{transform:none!important}
 .studio-service-types .service-circle>img{transform:none!important}
 .studio-approach .approach-heading{position:relative;top:auto}
 .studio-capabilities .capability-grid .list-revealed>li{animation:none!important}
}
/* The service strip keeps its geometry when a circle is opened. */
.capability-toggle{font:inherit;color:inherit;text-align:left;padding:0;background:none;border:0;cursor:default}
.capability-panel>ul{min-height:0}
@media(max-width:700px){
 .studio-service-types .service-circles{display:flex;gap:18px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scrollbar-width:none;overscroll-behavior-x:contain;margin-inline:calc(-1 * var(--gutter));padding:12px var(--gutter) 24px;align-items:center}
 .studio-service-types .service-circles::-webkit-scrollbar{display:none}
 .studio-service-types .service-circle-card,.studio-service-types .service-circle-card:has([aria-expanded=true]){flex:0 0 min(280px,calc(100vw - 64px));grid-column:auto;scroll-snap-align:center;opacity:1!important;transform:none!important}
 .studio-service-types .service-circle-card .service-circle,.studio-service-types .service-circle-card:has([aria-expanded=true]) .service-circle{width:100%;max-width:none;transform:none;aspect-ratio:1;transition:background .45s,box-shadow .45s;touch-action:pan-x pan-y;-webkit-tap-highlight-color:transparent}
 .studio-service-types .service-circle:is(:hover,:focus-visible,[aria-expanded=true]){transform:none}
 .studio-service-types .service-circle>img{opacity:.18;transform:scale(1.02);transition:opacity .65s,transform .9s}
 .studio-service-types .service-circle:hover>img{opacity:.18;transform:scale(1.02)}
 .studio-service-types .service-circle[aria-expanded=true]>img{opacity:.34;transform:scale(1.08)}
 .studio-service-types .circle-content,.studio-service-types .service-circle[aria-expanded=true] .circle-content{position:relative;display:block;padding:0;aspect-ratio:1;width:100%;height:100%}
 .studio-service-types .circle-title,.studio-service-types .service-circle-card:nth-child(2) .service-circle:not([aria-expanded=true]) .circle-title,.studio-service-types .service-circle[aria-expanded=true] .circle-title{position:absolute;left:24px;right:24px;max-width:none;top:50%;font-size:30px;line-height:1.12;transform:translateY(-50%);transition:top .55s cubic-bezier(.22,.7,.3,1),transform .55s;font-weight:400}
 .studio-service-types .service-circle[aria-expanded=true] .circle-title{top:29%;transform:translateY(-50%)}
 .studio-service-types .circle-detail,.studio-service-types .service-circle[aria-expanded=true] .circle-detail{position:absolute;left:28px;right:28px;top:42%;max-width:none;max-height:none;font-size:15px;line-height:1.4;margin:0;opacity:0;transform:translateY(12px);transition:opacity .45s,transform .55s;pointer-events:none}
 .studio-service-types .service-circle[aria-expanded=true] .circle-detail{opacity:1;transform:translateY(0);transition-delay:.08s}
 .studio-service-types .service-circle-number{top:22px}
 .studio-capabilities .capability-grid{grid-template-columns:1fr;gap:0}
 .studio-capabilities .capability-grid>div{padding:0;border-top:1px solid #ffffff55}
 .studio-capabilities .capability-grid>div:last-child{border-bottom:1px solid #ffffff55}
 .studio-capabilities .capability-grid h3{font-size:32px;margin:0;overflow-wrap:normal}
 .capability-interactive .capability-toggle{width:100%;padding:23px 44px 23px 0;position:relative;cursor:pointer;min-height:76px}
 .capability-interactive .capability-toggle:after,.capability-interactive .capability-toggle:before{content:'';position:absolute;right:6px;top:50%;width:17px;height:1px;background:white;transition:transform .3s}
 .capability-interactive .capability-toggle:before{transform:rotate(90deg)}
 .capability-interactive .capability-toggle[aria-expanded=true]:before{transform:rotate(0)}
 .capability-interactive .capability-panel{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .5s cubic-bezier(.22,.7,.3,1),opacity .3s}
 .capability-interactive .capability-panel>ul{overflow:hidden;padding:0}
 .capability-interactive .is-open .capability-panel{grid-template-rows:1fr;opacity:1}
 .studio-capabilities .capability-grid li{font-size:17px;padding:6px 0;line-height:1.4;transform:none!important}
 .studio-capabilities .capability-grid li:last-child{padding-bottom:24px}
 .studio-capabilities>h2{max-width:13ch;font-size:clamp(40px,10.8vw,56px);text-wrap:balance;margin-bottom:32px}
}
@media(prefers-reduced-motion:reduce){.capability-interactive .capability-panel,.studio-service-types .circle-title,.studio-service-types .circle-detail{transition:none!important}}
/* Mobile approach navigation stays below the main header for all three phases. */
@media(max-width:700px){
 .services-content>.studio-approach{display:block}
 .studio-approach .approach-heading{display:contents}
 .studio-approach .approach-heading h2{margin-bottom:24px}
 .studio-approach .approach-nav{position:sticky;top:80px;z-index:12;flex-direction:row;align-items:center;justify-content:space-between;background:#fff;gap:8px;padding:10px 0 0;margin:0 0 36px;border-bottom:1px solid #e5ddd9}
 .studio-approach .approach-nav a{display:flex;align-items:center;min-height:48px;font-size:14px;padding:0 0 10px;white-space:nowrap}
 .studio-approach .approach-grid>.approach-step{scroll-margin-top:162px}
}
