/* Keep the supplied logo lettering fixed and rotate only its original wheel. */
.isto-logo-motion{display:block;width:178px;height:auto;overflow:visible;flex:none}
.isto-logo-motion.footer-logo{width:160px;margin-bottom:11px}
.isto-logo-wheel{transform-box:view-box;transform-origin:541px 138px;animation:istoLogoTurn 20s linear infinite}
.isto-hero-wheel{transform-box:view-box;transform-origin:132px 132px;animation:istoLogoTurn 32s linear infinite}
@keyframes istoLogoTurn{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* The hero illustration and process panel occupy one stable grid column. */
.hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:clamp(32px,5vw,72px);padding-top:132px;align-items:center}
.hero-grid>div{min-width:0}
.hero h1{font-size:clamp(48px,5.6vw,78px)}
.hero-visual{display:flex;position:relative;inset:auto;width:100%;height:auto;z-index:auto;opacity:1;pointer-events:auto;flex-direction:column;align-items:center;gap:26px;min-width:0}
.hero-logo-stage{display:grid;place-items:center;width:100%;height:220px}
.hero-logo-gear{display:block;width:220px;max-width:100%;height:auto;overflow:visible;opacity:.85;filter:drop-shadow(0 14px 28px rgba(0,0,0,.12))}
.hero-visual .case-panel{width:100%;max-width:480px;margin:0;padding:18px 20px;background:rgba(8,29,45,.5);border-color:rgba(214,230,240,.24);border-radius:12px;box-shadow:0 24px 60px rgba(0,0,0,.16)}
.case-head{gap:16px;padding:4px 0 16px;flex-wrap:wrap}
.case-head b{font-size:12px;letter-spacing:.025em;color:#fff}
.case-live{font-size:10px;color:#b9d1dd;letter-spacing:.06em}
.case-row{grid-template-columns:30px minmax(0,1fr) auto;gap:12px;padding:15px 0}
.case-row>div{min-width:0}
.case-row b{font-size:14px;line-height:1.4;color:#f4f8fb}
.case-row small{font-size:12px;line-height:1.55;color:#b4cad7}
.case-num{width:28px;height:28px;border-radius:5px;font-size:11px;color:#b9d1dd}
.state{font-size:9px;white-space:nowrap;border-radius:4px;color:#c9dde8}

/* Allow grid contents to shrink with the viewport instead of clipping. */
.shell{min-width:0}
.heading>*,.promise-grid>*,.contact-box>*,.content-grid>*,.assessment>*,.footer-grid>*,.stats>*,.law-card summary>*{min-width:0}
.contact-box{grid-template-columns:minmax(0,1fr) minmax(0,.95fr)}
.content-grid{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}
.assessment{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)}
.footer-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr)}
.form{min-width:0}.form input,.form select,.form textarea{min-width:0;max-width:100%}
.article a,.footer-grid,.contact-box p,.source-box{overflow-wrap:anywhere}
.law-card summary{grid-template-columns:104px minmax(0,1fr) auto 16px}

@media(max-width:1030px){
 .hero-grid{grid-template-columns:minmax(0,1fr);gap:40px;max-width:760px;padding-top:124px}
 .hero-visual{display:flex;max-width:660px;margin-inline:auto;gap:22px}
 .hero-logo-stage{height:184px}.hero-logo-gear{width:184px}
 .hero-visual .case-panel{max-width:660px}
 .hero h1{font-size:clamp(46px,7.5vw,72px)}
 .contact-box,.content-grid,.assessment{grid-template-columns:minmax(0,1fr)}
 .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .law-card summary{grid-template-columns:92px minmax(0,1fr) 16px}
 .law-card summary:after{grid-column:3;grid-row:1}
 .law-status{grid-column:2;justify-self:start}
}
@media(max-width:680px){
 .isto-logo-motion{width:164px}.nav{gap:16px}.brand{min-width:0}
 .hero-grid{padding-top:116px;padding-bottom:52px;gap:30px}
 .hero h1{font-size:clamp(40px,10.5vw,58px);line-height:1.02;letter-spacing:-.055em}
 .hero-logo-stage{height:148px}.hero-logo-gear{width:148px}
 .hero-visual{gap:18px}.hero-visual .case-panel{padding:18px 16px;border-radius:10px}
 .case-row{grid-template-columns:28px minmax(0,1fr);gap:10px;padding:13px 0}
 .case-row b{font-size:13px}.case-row small{font-size:11px}.case-head{gap:9px}
 .case-live{font-size:9px}.state{display:none}
 .footer-grid{grid-template-columns:minmax(0,1fr)}
 .footer-grid>div:first-child{grid-column:auto}
 .contact-box{padding:26px 20px;gap:26px}
 .contact-box h2{font-size:clamp(34px,9vw,47px)}
 .law-card summary{grid-template-columns:minmax(0,1fr) 16px}
 .law-date,.law-title,.law-status{grid-column:1}
 .law-card summary:after{grid-column:2;grid-row:1}
 .law-group-head h2{overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){.isto-logo-wheel,.isto-hero-wheel{animation:none}}

/* The five process steps surround the single rotating logo wheel. */
.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(30px,4vw,58px)}
.hero-visual.process-visual{gap:22px;max-width:680px}
.process-title{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:0 4px 18px;border-bottom:1px solid rgba(214,230,240,.18)}
.process-title>b{font-size:12px;letter-spacing:.045em}
.process-diagram{position:relative;isolation:isolate;display:grid;width:100%;grid-template-columns:minmax(0,1fr) 144px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:12px;row-gap:28px;align-items:center}
.process-steps{display:contents;list-style:none;margin:0;padding:0}
.process-step-card{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0;align-self:stretch;padding:17px 15px;background:#102f46;border:1px solid rgba(194,216,229,.25);border-radius:10px;box-shadow:0 12px 28px rgba(0,0,0,.10)}
.process-step-heading{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.process-step-heading b{font-size:14px;line-height:1.45;color:#f5f9fc}
.process-number{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;color:#bed9d4;border:1px solid rgba(159,202,191,.35);font-size:11px;font-weight:700;background:rgba(119,171,157,.08)}
.process-step-card p{margin:0;font-size:12px;line-height:1.6;color:#b5cbd7;overflow-wrap:anywhere}
.process-action{margin-top:auto;padding-top:4px;color:#8faebf;font-size:9px;letter-spacing:.08em}
.process-step-1{grid-column:1/-1;grid-row:1;justify-self:center;width:210px}
.process-step-2{grid-column:1;grid-row:2}
.process-step-3{grid-column:3;grid-row:2}
.process-step-4{grid-column:1;grid-row:3}
.process-step-5{grid-column:3;grid-row:3}
.process-diagram .hero-logo-stage{position:relative;z-index:1;grid-column:2;grid-row:2;width:100%;height:100%;min-height:140px}
.process-diagram .hero-logo-gear{width:144px;opacity:.95}
.process-connections{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:visible;pointer-events:none}
.process-connections path{fill:none;stroke:#92b4c6;stroke-width:1;stroke-opacity:.4;stroke-dasharray:3 6;vector-effect:non-scaling-stroke}

@media(max-width:1100px){
 .hero-grid{grid-template-columns:minmax(0,1fr);max-width:760px;gap:44px}
 .hero-visual.process-visual{width:100%;max-width:660px;margin-inline:auto}
}
@media(max-width:540px){
 .hero-visual.process-visual{gap:22px}
 .process-title{align-items:flex-start;gap:10px;flex-wrap:wrap}
 .process-title>b{font-size:11px}.process-title .case-live{font-size:9px}
 .process-diagram{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,auto);column-gap:14px;row-gap:22px}
 .process-step-card{padding:14px 12px;gap:8px;border-radius:9px}
 .process-step-heading{gap:8px}.process-step-heading b{font-size:13px}
 .process-step-card p{font-size:12px;line-height:1.5}
 .process-step-1{grid-column:1/-1;grid-row:1;width:min(210px,78%)}
 .process-step-2{grid-column:1;grid-row:2}
 .process-step-3{grid-column:2;grid-row:2}
 .process-step-4{grid-column:1;grid-row:4}
 .process-step-5{grid-column:2;grid-row:4}
 .process-diagram .hero-logo-stage{grid-column:1/-1;grid-row:3;min-height:110px}
 .process-diagram .hero-logo-gear{width:110px}

}

.direct-contact{display:flex;flex-direction:column;align-items:flex-start;gap:.65rem;margin-block:1.25rem;font-size:1rem;overflow-wrap:anywhere}.direct-contact a{text-decoration:underline;text-underline-offset:4px}.form-feedback:not([hidden]){grid-column:1/-1;padding:1rem;border:1px solid #d4a581;background:#fff5e9;color:#3d2414;font-size:1rem;line-height:1.6}.form-feedback[hidden]{display:none}

/* Keep the process illustration inside the viewport at every scroll width. */
html,body{max-width:100%;overflow-x:clip}.hero,.hero-grid,.hero-visual,.process-visual,.process-diagram{min-width:0;max-width:100%}.process-diagram{contain:layout paint}.process-connections{max-width:100%;}
