/* Estudo de rentabilidade (estudo.html). Loaded after legal.css. Mobile first. */
:root{--brand:#3AC8C4;--brand-text:#1A7F7B;--ink:#233238;--muted:#6B7B80;--soft:#EAF8F8;--line:#dfecec;--err:#b3261e}
body{font-family:Inter,system-ui,-apple-system,sans-serif}
h1,h2,h3,.es-kpi b{font-family:"Space Grotesk",Inter,system-ui,sans-serif}
.lg-hero h1{font-weight:700}
main.es{max-width:880px;margin:0 auto;padding:28px 16px 64px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.es-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* stepper */
.es-steps{display:flex;gap:10px;list-style:none;margin:0 0 18px;padding:0;font-size:.88rem;color:var(--muted)}
.es-steps li{display:flex;align-items:center;gap:8px;font-weight:600}
.es-steps li+li::before{content:"";width:28px;height:1px;background:var(--line);margin-right:2px}
.es-steps .n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line);font-size:.8rem;background:#fff}
.es-steps li[aria-current="step"]{color:var(--ink)}
.es-steps li[aria-current="step"] .n{background:var(--brand);border-color:var(--brand);color:var(--ink)}
.es-steps li.done .n{border-color:var(--brand);color:var(--brand-text)}

/* card + form */
.es-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 18px;box-shadow:0 1px 2px rgba(35,50,56,.04)}
.es-card h2{font-size:1.2rem;margin:0 0 4px}
.es-card .sub{color:var(--muted);font-size:.93rem;margin:0 0 18px}
.es-grid{display:grid;gap:14px}
.es-field label,.es-field .lbl{display:block;font-size:.86rem;font-weight:600;margin-bottom:6px}
.es-field .hint{font-size:.8rem;color:var(--muted);margin-top:4px}
.es-field input[type=text],.es-field input[type=email],.es-field input[type=tel],.es-field select{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:#fff;border:1.5px solid #cfe0e0;border-radius:10px;padding:11px 12px;min-height:46px}
.es-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23233238' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:18px;padding-right:36px}
.es-field input:focus,.es-field select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(58,200,196,.22)}
.es-field.invalid input,.es-field.invalid select{border-color:var(--err)}
.es-field .err{display:none;color:var(--err);font-size:.8rem;margin-top:4px}
.es-field.invalid .err{display:block}
.es-row3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}

.es-chips{display:flex;flex-wrap:wrap;gap:8px}
.es-chip{position:relative}
.es-chip input{position:absolute;opacity:0;inset:0;cursor:pointer}
.es-chip span{display:inline-flex;align-items:center;gap:7px;border:1.5px solid #cfe0e0;border-radius:999px;padding:8px 14px;font-size:.92rem;font-weight:500;background:#fff;cursor:pointer}
.es-chip svg{width:18px;height:18px;color:var(--brand-text)}
.es-chip input:checked+span{border-color:var(--brand);background:var(--soft)}
.es-chip input:focus-visible+span{box-shadow:0 0 0 3px rgba(58,200,196,.3)}

.es-check{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:#34474e;line-height:1.5}
.es-check input{width:19px;height:19px;margin-top:2px;flex:none;accent-color:#1A7F7B}
.es-check.invalid{color:var(--err)}

.es-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:20px}
.es-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:700;font-size:.97rem;border-radius:999px;padding:12px 22px;min-height:46px;border:1.5px solid transparent;cursor:pointer;text-decoration:none}
.es-btn svg{width:18px;height:18px}
.es-btn.primary{background:linear-gradient(120deg,#27ADA9,#1A8A86);color:#fff}
.es-btn.primary:hover{background:#33b6b2}
.es-btn.ghost{background:#fff;border-color:#cfe0e0;color:var(--ink)}
.es-btn.ghost:hover{border-color:var(--brand)}
.es-btn.link{background:none;padding:12px 6px;color:var(--brand-text);font-weight:600}
.es-btn[disabled]{opacity:.6;cursor:progress}
.es-small{font-size:.82rem;color:var(--muted)}
.es-alert{border-radius:10px;padding:12px 14px;font-size:.92rem;margin-top:14px;background:#fdecea;color:var(--err)}

/* loading */
.es-loading{text-align:center;padding:48px 16px}
.es-spin{width:36px;height:36px;border-radius:50%;border:3px solid var(--soft);border-top-color:var(--brand);margin:0 auto 14px;animation:es-rot 1s linear infinite}
@keyframes es-rot{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.es-spin{animation:none}}

/* results */
.es-demo{display:flex;gap:10px;align-items:flex-start;background:#fff7e0;border:1px solid #f0dca0;color:#5c4a12;border-radius:10px;padding:10px 12px;font-size:.86rem;margin-bottom:16px}
.es-demo svg{width:18px;height:18px;flex:none;margin-top:2px}
.es-res-head{margin-bottom:16px}
.es-res-head .eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-text)}
.es-res-head h2{font-size:clamp(1.35rem,3.5vw,1.8rem);line-height:1.25;margin:6px 0 4px}
.es-res-head p{color:var(--muted);font-size:.93rem}
.es-kpis{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:16px}
.es-kpi{position:relative;background:var(--soft);border-radius:14px;padding:16px;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.es-kpi b{font-variant-numeric:tabular-nums}
.es-kpi .k{font-size:.82rem;color:var(--muted);font-weight:600}
.es-kpi b{display:block;font-size:1.65rem;line-height:1.2;margin-top:4px;color:var(--ink)}
.es-kpi.main{background:var(--ink);color:#fff}
.es-kpi.main .k{color:#b9cdd2}
.es-kpi.main b{color:#fff;font-size:2rem}
.es-block{margin-top:16px}
.es-block h3{font-size:1.05rem;margin:0 0 10px}
.es-scn{width:100%;border-collapse:collapse;font-size:.94rem}
.es-scn td{padding:10px 0;border-bottom:1px solid var(--line);vertical-align:top}
.es-scn td:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding-left:12px}
.es-scn td small{display:block;color:var(--muted);font-size:.8rem}
.es-scn tr.total td{border-bottom:0;font-weight:700;font-size:1.05rem;padding-top:14px}
.es-scn tr.total td:last-child{color:var(--brand-text);font-size:1.3rem;font-family:"Space Grotesk",Inter,sans-serif}
.es-notes{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.es-notes li{display:flex;gap:9px;font-size:.88rem;color:#34474e}
.es-notes svg{width:18px;height:18px;flex:none;color:var(--brand-text);margin-top:2px}
.es-disc{margin-top:18px;font-size:.84rem;color:var(--muted);border-top:1px solid var(--line);padding-top:14px}
.es-ok{display:flex;gap:9px;align-items:flex-start;background:var(--soft);border-radius:10px;padding:10px 12px;font-size:.9rem;margin-top:14px}
.es-ok svg{width:18px;height:18px;flex:none;color:var(--brand-text);margin-top:2px}
.es-nodata{text-align:center;padding:12px 4px}
.es-nodata .ic{width:52px;height:52px;border-radius:50%;background:var(--soft);display:grid;place-items:center;margin:0 auto 12px;color:var(--brand-text)}
.es-nodata .ic svg{width:26px;height:26px}
.es-nodata p{max-width:460px;margin:0 auto 6px}
.es-nodata .es-actions{justify-content:center}

/* KPI tilt (pointer devices only, set from JS) */
.es-kpis{perspective:900px}
.es-kpi::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.45),transparent 60%)}
.es-kpi.main::after{background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(58,200,196,.22),transparent 60%)}
.es-kpi.tilt{box-shadow:0 14px 30px -12px rgba(35,50,56,.28)}
.es-kpi.tilt::after{opacity:1}

/* block heading row */
.es-bh{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:6px 14px;margin-bottom:12px}
.es-bh h3{margin:0}
.es-sub{margin:2px 0 0;font-size:.86rem;color:var(--muted)}
.es-hint{display:flex;align-items:center;gap:6px;margin:0;font-size:.78rem;color:var(--muted)}
.es-hint svg{width:16px;height:16px;flex:none;color:var(--brand-text)}

/* "O ano da sua casa": CSS 3D scene */
.c3-stage{position:relative;height:350px;overflow:hidden;border-radius:16px;perspective:1000px;perspective-origin:50% 18%;
  background:radial-gradient(120% 85% at 50% 0%,#fff 0%,#f4fbfb 50%,#e3f4f4 100%);border:1px solid var(--line);
  touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.c3-stage.dragging{cursor:grabbing}
.c3-stage:focus{outline:none}
.c3-stage:focus-visible{box-shadow:0 0 0 3px rgba(58,200,196,.5)}
.c3-world{--tilt:57deg;--yaw:0deg;position:absolute;transform-style:preserve-3d;transform:rotateX(var(--tilt)) rotateZ(var(--yaw))}
.c3-world>*{position:absolute;left:0;top:0;pointer-events:none}
.c3-floor{inset:-34px -28px!important;border-radius:22px;
  background:
    repeating-linear-gradient(0deg,rgba(26,127,123,.13) 0 1px,transparent 1px 22px),
    repeating-linear-gradient(90deg,rgba(26,127,123,.13) 0 1px,transparent 1px 22px),
    linear-gradient(180deg,rgba(234,248,248,.2),rgba(234,248,248,.9));
  -webkit-mask-image:radial-gradient(closest-side,#000 55%,transparent);mask-image:radial-gradient(closest-side,#000 55%,transparent)}
.c3-shadow{background:radial-gradient(closest-side,rgba(35,50,56,.2),rgba(35,50,56,0));transform:translate3d(6px,-4px,.5px)}
.c3-refl{opacity:.3;transform-origin:50% 0;transform:translateZ(.6px);transition:transform .9s cubic-bezier(.2,.8,.2,1);
  -webkit-mask-image:linear-gradient(#000,transparent);mask-image:linear-gradient(#000,transparent)}
.c3-glow{background:radial-gradient(closest-side,rgba(58,200,196,.55),rgba(58,200,196,0));transform:translateZ(.4px);animation:c3-pulse 3.2s ease-in-out infinite}
@keyframes c3-pulse{50%{opacity:.55}}
.c3-col{pointer-events:auto!important;transform-style:preserve-3d;transform-origin:0 0 0;
  transform:translate3d(var(--x),var(--y),var(--lz,0px)) scale3d(1,1,1);transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.c3-col.on{--lz:9px;transition-duration:.25s}
.c3-f{position:absolute;left:0;top:0;display:block;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.c3-f.t{width:100%;height:100%;background-image:linear-gradient(135deg,rgba(255,255,255,.45),rgba(255,255,255,0) 60%)}
.c3-f.f{transform-origin:50% 100%;transform:rotateX(-90deg);background-image:linear-gradient(to top,rgba(35,50,56,.14),rgba(255,255,255,.14))}
.c3-f.b{transform-origin:50% 0;transform:rotateX(90deg)}
.c3-f.r{transform-origin:100% 50%;transform:rotateY(90deg);background-image:linear-gradient(to left,rgba(35,50,56,.12),rgba(35,50,56,0))}
.c3-f.l{transform-origin:0 50%;transform:rotateY(-90deg)}
.c3-col.peak .c3-f.t{box-shadow:0 0 22px 6px rgba(58,200,196,.7)}
.c3-col.on .c3-f.t{box-shadow:0 0 0 2px #fff,0 0 18px 4px rgba(58,200,196,.75)}
.c3-val,.c3-mon{transform-origin:0 0;white-space:nowrap;font-family:Inter,system-ui,sans-serif;line-height:1}
.c3-val{transform:translate3d(var(--x),var(--y),var(--z)) rotateZ(calc(var(--yaw) * -1)) rotateX(calc(var(--tilt) * -1)) translate(-50%,-100%);
  font-size:11px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;transition:transform .9s cubic-bezier(.2,.8,.2,1),opacity .4s}
.c3-val.peak{font-size:12.5px;font-weight:700;color:var(--brand-text)}
.c3-val.on{opacity:0;transition-delay:0s!important}
.c3-mon{transform:translate3d(var(--x),var(--y),1px) rotateZ(calc(var(--yaw) * -1)) rotateX(calc(var(--tilt) * -1)) translate(-50%,-100%);
  font-size:11px;font-weight:600;color:var(--muted)}
.c3-mon.peak{color:var(--brand-text)}
.c3-stage.has-on .c3-col:not(.on) .c3-f{filter:saturate(.7) brightness(1.04)}
/* growth start state (removed once the chart is in view) */
.c3-stage.pre .c3-col{transform:translate3d(var(--x),var(--y),0) scale3d(1,1,.002)}
.c3-stage.pre .c3-refl{transform:translateZ(.6px) scaleY(0)}
.c3-stage.pre .c3-val{--z:6px!important;opacity:0}
/* small screens: fewer labels (value on the peak only, others in the tooltip) */
.c3-stage.sm .c3-val:not(.peak){opacity:0}
.c3-stage.sm .c3-mon{font-size:9.5px}
.c3-stage.sm .c3-val.peak{font-size:11px}
/* glassy tooltip */
.c3-tip{position:absolute;left:0;top:0;z-index:3;min-width:156px;padding:10px 13px 11px;border-radius:12px;pointer-events:none;
  background:rgba(255,255,255,.74);-webkit-backdrop-filter:blur(10px) saturate(1.4);backdrop-filter:blur(10px) saturate(1.4);
  border:1px solid rgba(255,255,255,.9);box-shadow:0 12px 32px -8px rgba(35,50,56,.28),inset 0 1px 0 #fff;font-size:.8rem;color:var(--muted);line-height:1.35}
.c3-tip b{display:block;font-family:"Space Grotesk",Inter,sans-serif;font-size:.95rem;color:var(--ink)}
.c3-tip .l{display:block;margin-top:2px}
.c3-tip strong{display:block;font-family:"Space Grotesk",Inter,sans-serif;font-size:1.25rem;color:var(--ink);font-variant-numeric:tabular-nums}
.c3-tip .s{display:block;color:var(--brand-text);font-weight:600}

/* "Para onde vai a receita": peeling bar */
.es-replay{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:.84rem;font-weight:600;color:var(--brand-text);background:#fff;border:1.5px solid #cfe0e0;border-radius:999px;padding:6px 12px;min-height:36px;cursor:pointer}
.es-replay:hover{border-color:var(--brand)}
.es-replay:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(58,200,196,.4)}
.es-replay svg{width:16px;height:16px}
.fl-card{background:var(--soft);border-radius:16px;padding:16px 16px 18px;margin-bottom:6px}
.fl-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin-bottom:12px}
.fl-head .k{font-size:.86rem;font-weight:600;color:var(--muted)}
.fl-head b{font-family:"Space Grotesk",Inter,sans-serif;font-size:1.7rem;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}
.es-flow.fl-done .fl-head b{color:var(--brand-text)}
.fl-bar{display:flex;height:56px}
.fl-seg{position:relative;min-width:0;display:flex;align-items:center;justify-content:center;outline:none;cursor:default;
  transition:background-color .5s,margin .5s cubic-bezier(.2,.8,.2,1),transform .3s,box-shadow .4s,opacity .3s}
.fl-seg+.fl-seg{margin-left:3px}
.fl-seg:first-child{border-radius:12px 0 0 12px}
.fl-seg:last-child{border-radius:0 12px 12px 0}
.fl-pct{font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums;transition:opacity .4s}
.s-net{background:var(--brand);color:var(--ink)}
.s-iva{background:#56666B;color:#fff}
.s-mgmt{background:var(--ink);color:#fff}
.s-portal{background:repeating-linear-gradient(135deg,#cfdcde 0 6px,#bccbce 6px 12px);color:var(--ink)}
.s-gross{background:linear-gradient(90deg,var(--brand) 60%,var(--ink) 60% 85%,#bccbce 85%)}
.fl-seg.lit{box-shadow:0 0 0 3px rgba(58,200,196,.28),0 10px 26px -6px rgba(58,200,196,.75)}
.fl-seg.peeled{animation:fl-peel .8s cubic-bezier(.2,.8,.2,1)}
@keyframes fl-peel{35%{transform:translateY(-14px) rotate(-1.5deg)}100%{transform:none}}
.fl-seg:focus-visible{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--brand-text)}
.es-flow.has-hl .fl-seg:not(.hl){opacity:.35}
.fl-seg.hl{transform:translateY(-4px)}
/* pending state: one continuous gross bar */
.fl-pre .fl-seg:not(.peeled){background:var(--brand);color:var(--ink)}
.fl-pre .fl-seg:not(.peeled){margin-left:0}
.fl-pre .fl-seg:not(.peeled) .fl-pct{opacity:0}
.es-flow .es-scn tr{transition:opacity .45s,background-color .25s}
.fl-pre .es-scn tr[data-seg]:not(.in){opacity:.35}
.es-flow .es-scn tr.hl td{background:var(--soft)}
.es-flow .es-scn tr.hl td:first-child{box-shadow:inset 3px 0 0 var(--brand)}
.es-flow .es-scn td:first-child{padding-left:4px}
.sw{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:8px;vertical-align:-1px}

@media (prefers-reduced-motion:reduce){
  .es-kpi,.c3-col,.c3-val,.c3-refl,.fl-seg,.fl-pct,.es-flow .es-scn tr{transition:none!important;animation:none!important}
  .c3-glow{animation:none}
  .c3-stage{cursor:default}
}
@media print{
  .c3-stage,.es-hint,.es-replay,.fl-card{display:none}
  .fl-pre .es-scn tr{opacity:1!important}
}

@media (min-width:640px){
  .es-card{padding:30px 32px}
  .es-grid.two{grid-template-columns:1fr 1fr}
  .es-grid.two .full{grid-column:1/-1}
  .es-kpis{grid-template-columns:1.3fr 1fr 1fr}
}

/* very narrow phones (360px): keep stepper and header inside the viewport */
@media (max-width:400px){
  .es-steps{gap:6px;font-size:.8rem}
  .es-steps li{gap:5px}
  .es-steps li+li::before{width:10px}
  .lg-head nav{gap:8px!important}
  .lg-head .in>a img{width:118px;height:auto}
  .lg-head nav>a{font-size:.82rem;line-height:1.15;max-width:4.5em}
}
