/* ==========================================================
   INSTITUTO FAIR — CSS
   Edite a identidade visual alterando apenas as variáveis abaixo.
   ========================================================== */
:root{--deep:#123b5d;--blue:#2878a8;--petrol:#2c7068;--mint:#ddece7;--gray:#66727a;--bg:#f5f8f7;--white:#fff;--text:#17242c;--line:#d8e1e3;--shadow:0 24px 60px rgba(18,59,93,.12);--title:"Manrope",sans-serif;--body:"Inter",sans-serif;--max:1200px}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:400 1rem/1.65 var(--body)}body.locked{overflow:hidden}img{display:block;max-width:100%}button,input,select{font:inherit}button{color:inherit}a{color:inherit}:focus-visible{outline:3px solid #63bcdc;outline-offset:3px}.skip{position:fixed;z-index:999;top:.5rem;left:.5rem;padding:.8rem;background:#fff;transform:translateY(-150%)}.skip:focus{transform:none}.progress{position:fixed;z-index:200;top:0;left:0;width:var(--progress,0);height:3px;background:#49b6a8}
.header{position:sticky;z-index:100;top:0;min-height:76px;display:flex;align-items:center;justify-content:space-between;padding:.8rem 5vw;border-bottom:1px solid rgba(255,255,255,.12);background:rgba(18,59,93,.96);color:#fff;backdrop-filter:blur(14px)}.logo{display:flex;align-items:center;gap:.7rem;text-decoration:none;font:600 1.05rem/1 var(--title)}.logo small{display:block;margin-top:.3rem;color:#bbd2df;font:500 .55rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase}.logo-mark{display:grid;width:43px;aspect-ratio:1;place-items:center;border-radius:50% 50% 50% 12%;background:#49b6a8;color:#0e3048;font-size:1.25rem}.menu-toggle{min-height:44px;border:0;background:transparent}.menu{position:absolute;top:100%;left:0;width:100%;display:none;padding:1rem 5vw;background:var(--deep)}.menu.open{display:grid}.menu a{min-height:44px;display:flex;align-items:center;text-decoration:none}
.button{min-height:50px;padding:.8rem 1.3rem;border:1px solid var(--petrol);border-radius:8px;background:var(--petrol);color:#fff;font-weight:600;cursor:pointer;transition:transform .25s,background .25s}.button:hover{transform:translateY(-2px);background:#245e58}.button-small{min-height:44px;padding:.5rem 1rem}.button-white{border-color:#fff;background:#fff;color:var(--deep)}.link{min-height:44px;display:inline-flex;align-items:center;border:0;background:none;color:var(--deep);font-weight:600;text-decoration:underline;text-underline-offset:.3rem;cursor:pointer}.kicker{display:block;margin-bottom:1rem;color:var(--petrol);font-size:.73rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.kicker.light{color:#8bd4ca}.section,.hero{padding:clamp(4.5rem,8vw,8rem) 5vw}.heading{max-width:780px;margin-bottom:clamp(2rem,5vw,4rem)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--title);line-height:1.08}h1{font-size:clamp(2.7rem,6.3vw,5.8rem);letter-spacing:-.055em}h1 em{color:var(--petrol);font-style:normal}h2{font-size:clamp(2.1rem,4.7vw,4.2rem);letter-spacing:-.04em}h3{font-size:1.35rem}.heading>p{max-width:680px;color:var(--gray)}
.hero{position:relative;display:grid;gap:2rem;background:linear-gradient(125deg,#f5f8f7 58%,#ddece7);overflow:hidden}.hero-copy{align-self:center}.hero-copy>p{max-width:720px;font-size:1.08rem;color:#4d606b}.hero-copy small,.beard small{display:block;margin-top:1rem;color:var(--gray)}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.hero-photo{position:relative;margin:0;min-height:400px;border-radius:140px 20px 20px 20px;overflow:hidden;box-shadow:var(--shadow);background:#dbe5e7}.hero-photo img{width:100%;height:100%;min-height:400px;object-fit:cover}.hero-photo figcaption{position:absolute;right:.8rem;bottom:.8rem;left:.8rem;padding:.65rem;border-radius:6px;background:rgba(18,59,93,.88);color:#fff;font-size:.67rem}.quick-unit{display:grid;gap:.7rem;padding:1rem;border-radius:12px;background:#fff;box-shadow:var(--shadow)}.quick-unit label,label{font-size:.8rem;font-weight:600}.unit-select,select,input{width:100%;min-height:50px;padding:.7rem;border:1px solid #b9c8cc;border-radius:7px;background:#fff;color:var(--text)}
.intro,.split,.beard{display:grid;gap:2.5rem}.intro-copy{max-width:650px}.chips{display:flex;flex-wrap:wrap;gap:.6rem}.chips span{padding:.55rem .8rem;border:1px solid var(--line);border-radius:999px;background:#fff}.section-blue{background:var(--deep);color:#fff}.section-blue .heading>p,.section-blue p{color:#c9d9e2}.diagram{display:grid;gap:1rem}.diagram div{display:grid;gap:.3rem;padding:1.4rem;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(255,255,255,.05)}.diagram b,.factor-grid b,.timeline b{color:#70cbbf}.diagram span{font:600 1.25rem var(--title)}.diagram small{color:#b9ccd7}.diagram i{display:none}.notice,.pending{margin-top:2rem;padding:1rem;border-left:4px solid #70cbbf;background:rgba(255,255,255,.07);font-size:.88rem}.factor-grid{display:grid;gap:1rem}.factor-grid article{padding:1.5rem;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 12px 36px rgba(18,59,93,.06)}.factor-grid p{color:var(--gray)}.section-soft{background:var(--mint)}.timeline{margin:0;padding:0;list-style:none;border-top:1px solid #b9d0cb}.timeline li{display:grid;grid-template-columns:50px 1fr;gap:1rem;padding:1.4rem 0;border-bottom:1px solid #b9d0cb}.timeline h3{margin-bottom:.3rem}.timeline p{margin:0;color:#526a6f}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin-bottom:1.5rem}.gallery button{position:relative;min-height:220px;padding:0;border:0;border-radius:10px;overflow:hidden;background:#dce6e8;cursor:zoom-in}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery button:hover img{transform:scale(1.035)}.gallery span{position:absolute;right:.5rem;bottom:.5rem;padding:.35rem .5rem;border-radius:4px;background:rgba(18,59,93,.88);color:#fff;font-size:.65rem}.empty-state,.case-warning,.unit-detail{padding:clamp(1.4rem,4vw,2.5rem);border:1px solid var(--line);border-radius:14px;background:#fff}.empty-state{display:flex;align-items:center;gap:1.3rem}.empty-state img{width:76px;height:76px;border-radius:50%;object-fit:cover}.case-warning{max-width:800px;border-color:#b7cdc7}.beard img{width:100%;max-height:520px;border-radius:16px;object-fit:cover}.accordion{max-width:900px}details{border-top:1px solid var(--line)}details:last-child{border-bottom:1px solid var(--line)}summary{min-height:68px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font:600 1rem var(--title)}summary::after{content:"+";color:var(--petrol);font-size:1.4rem}details[open] summary::after{content:"−"}details p{max-width:760px;color:var(--gray)}.cta-band,.final-cta{display:grid;gap:2rem;align-items:center;padding:clamp(3rem,7vw,6rem) 5vw;background:var(--petrol);color:#fff}.cta-band h2,.final-cta h2{margin:0}.final-cta{background:linear-gradient(120deg,var(--deep),#1d6289)}.final-cta p{color:#d0e0e8}
.unit-tabs{display:flex;gap:.5rem;margin-bottom:1rem;padding-bottom:.5rem;overflow-x:auto}.unit-tab{min-height:44px;flex:0 0 auto;padding:.6rem .9rem;border:1px solid var(--line);border-radius:999px;background:#fff;cursor:pointer}.unit-tab.active{border-color:var(--deep);background:var(--deep);color:#fff}.unit-detail dl{display:grid;grid-template-columns:auto 1fr;gap:.6rem 1rem}.unit-detail dt{font-weight:600}.unit-detail dd{margin:0;color:var(--gray)}.footer{display:grid;gap:1.5rem;padding:3rem 5vw 6rem;background:#0d2d44;color:#fff}.footer>p{max-width:500px;color:#bcd0db;font-size:.84rem}.footer div{display:flex;flex-wrap:wrap;gap:1rem}.footer button{padding:0;border:0;background:none;color:#d7e6ed;text-decoration:underline;cursor:pointer}.kyvion{width:fit-content;color:#8bd4ca;text-underline-offset:.3rem}.mobile-cta{position:fixed;z-index:90;right:.7rem;bottom:.7rem;left:.7rem;min-height:54px;border:0;border-radius:9px;background:var(--petrol);color:#fff;font-weight:700;box-shadow:var(--shadow)}
dialog{width:min(560px,94vw);padding:2.5rem 1.3rem 1.3rem;border:0;border-radius:16px;background:#fff;color:var(--text);box-shadow:0 30px 90px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(12,35,50,.72);backdrop-filter:blur(4px)}.close{position:absolute;top:.6rem;right:.6rem;width:44px;height:44px;border:0;border-radius:50%;background:var(--mint);font-size:1.5rem;cursor:pointer}.schedule-dialog form{display:grid;gap:1rem}.schedule-dialog label{display:grid;gap:.4rem}.consent{grid-template-columns:auto 1fr!important;align-items:start}.consent input{width:20px;min-height:20px}.status{color:#a23b48;font-size:.85rem}.cookie-dialog{bottom:1rem;margin-bottom:0}.cookie-dialog .button{margin-right:.7rem}.gallery-dialog{width:min(900px,94vw);padding:0}.gallery-dialog img{width:100%;max-height:80vh;object-fit:contain;background:#e6edef}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:none}
@media(min-width:760px){.menu-toggle{display:none}.menu{position:static;width:auto;display:flex;align-items:center;gap:1.2rem;padding:0;background:none}.hero{grid-template-columns:1.1fr .9fr}.hero-photo{height:66vh}.quick-unit{grid-column:1/-1;grid-template-columns:1fr 1.3fr auto;align-items:end}.intro,.split,.beard{grid-template-columns:1fr 1fr}.factor-grid{grid-template-columns:repeat(4,1fr)}.diagram{grid-template-columns:1fr auto 1fr auto 1fr;align-items:center}.diagram i{display:block;color:#70cbbf;font-style:normal}.gallery{grid-template-columns:repeat(4,1fr)}.gallery button:nth-child(3n+1){grid-row:span 2;min-height:450px}.timeline li{grid-template-columns:100px 1fr}.cta-band,.final-cta{grid-template-columns:1fr auto}.footer{grid-template-columns:1fr 1fr auto;align-items:center;padding-bottom:3rem}.footer .logo{grid-row:span 2}.kyvion{justify-self:end}.mobile-cta{display:none}}
@media(min-width:1200px){.section,.hero,.cta-band,.final-cta{padding-right:max(5vw,calc((100vw - var(--max))/2));padding-left:max(5vw,calc((100vw - var(--max))/2))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal{opacity:1;transform:none}}
