/* =========================================================================
   ROCTRIP — Design system do portal
   Skin herdada da LP roctrip.vercel.app: dark premium + vermelho #ED3237
   Montserrat (títulos) + Open Sans (corpo)
   ========================================================================= */

:root {
  --vermelho: #ED3237;
  --vermelho-esc: #c9282d;
  --escuro: #212934;
  --preto: #0c0f13;
  --fundo: #0a0d11;
  --branco: #f6f7f5;
  --areia: #e6e3dc;
  --cinza: #7a828e;
  --card-borda: rgba(255,255,255,.08);
  --verde: #3ddc7a;
  --amarelo: #ffb300;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: 'Open Sans', sans-serif;
  background: var(--fundo);
  color: var(--branco);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; }
a { color: inherit; }

/* fundo com curvas topográficas + gradientes (mesma assinatura da LP) */
.bg-topo {
  background-color: #0a0d11;
  background-image:
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27720%27%20height%3D%27720%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23ffffff%27%20stroke-opacity%3D%270.05%27%20stroke-width%3D%271.1%27%3E%3Cpolyline%20points%3D%27205.1%2C205.0%20206.5%2C208.8%20206.8%2C212.8%20205.6%2C216.6%20203.1%2C219.7%20199.6%2C222.1%20195.5%2C223.5%20191.4%2C224.3%20187.7%2C224.7%20184.7%2C225.2%20182.2%2C226.1%20180.0%2C227.5%20177.9%2C229.4%20175.6%2C231.5%20173.0%2C233.4%20170.0%2C234.8%20166.8%2C235.4%20163.6%2C235.1%20160.5%2C234.2%20157.6%2C232.9%20154.8%2C231.3%20152.1%2C229.7%20149.3%2C228.0%20146.6%2C226.1%20144.1%2C223.9%20141.9%2C221.2%20140.5%2C218.2%20139.9%2C214.8%20140.3%2C211.3%20141.3%2C208.0%20142.8%2C205.0%20144.3%2C202.3%20145.3%2C199.7%20145.7%2C197.1%20145.5%2C194.1%20145.1%2C190.6%20144.9%2C186.7%20145.2%2C182.6%20146.4%2C178.8%20148.7%2C175.7%20151.9%2C173.6%20155.6%2C172.7%20159.6%2C172.9%20163.4%2C174.0%20166.9%2C175.5%20170.0%2C177.0%20172.8%2C178.3%20175.5%2C179.3%20178.1%2C180.0%20180.8%2C180.8%20183.4%2C181.8%20185.8%2C183.2%20188.0%2C185.0%20189.9%2C187.1%20191.6%2C189.3%20193.3%2C191.5%20195.3%2C193.7%20197.6%2C196.0%20200.1%2C198.6%20202.8%2C201.6%20205.1%2C205.0%27%2F%3E%3Cpolyline%20points%3D%27244.8%2C205.0%20247.9%2C213.2%20248.4%2C221.7%20245.9%2C229.7%20240.6%2C236.4%20233.0%2C241.4%20224.4%2C244.5%20215.7%2C246.1%20207.8%2C247.0%20201.3%2C248.1%20196.0%2C249.9%20191.4%2C253.0%20186.9%2C257.0%20182.0%2C261.5%20176.4%2C265.6%20170.0%2C268.5%20163.2%2C269.8%20156.3%2C269.3%20149.7%2C267.4%20143.5%2C264.5%20137.6%2C261.2%20131.8%2C257.6%20125.9%2C254.0%20120.1%2C249.9%20114.6%2C245.2%20110.1%2C239.6%20107.0%2C233.1%20105.8%2C225.9%20106.6%2C218.5%20108.9%2C211.4%20112.0%2C205.0%20115.1%2C199.2%20117.3%2C193.8%20118.1%2C188.1%20117.8%2C181.8%20116.9%2C174.4%20116.3%2C166.0%20117.0%2C157.3%20119.7%2C149.1%20124.5%2C142.4%20131.3%2C138.0%20139.3%2C136.1%20147.8%2C136.6%20155.9%2C138.9%20163.4%2C142.0%20170.0%2C145.3%20176.0%2C148.0%20181.7%2C150.1%20187.3%2C151.7%20193.0%2C153.4%20198.5%2C155.6%20203.7%2C158.6%20208.4%2C162.4%20212.4%2C166.8%20216.1%2C171.5%20219.8%2C176.3%20223.9%2C181.0%20228.8%2C185.9%20234.3%2C191.3%20239.9%2C197.7%20244.8%2C205.0%27%2F%3E%3Cpolyline%20points%3D%27289.2%2C205.0%20294.2%2C218.0%20295.0%2C231.6%20291.0%2C244.3%20282.5%2C255.1%20270.5%2C263.0%20256.7%2C268.0%20242.8%2C270.6%20230.3%2C272.0%20219.9%2C273.6%20211.4%2C276.6%20204.1%2C281.5%20196.9%2C287.9%20189.1%2C295.1%20180.1%2C301.5%20170.0%2C306.2%20159.2%2C308.2%20148.2%2C307.5%20137.7%2C304.4%20127.8%2C299.9%20118.3%2C294.5%20109.1%2C288.9%2099.7%2C283.0%2090.5%2C276.6%2081.8%2C269.1%2074.5%2C260.1%2069.6%2C249.7%2067.7%2C238.2%2068.9%2C226.5%2072.6%2C215.2%2077.6%2C205.0%2082.5%2C195.8%2085.9%2C187.1%2087.3%2C178.1%2086.9%2C168.0%2085.4%2C156.2%2084.5%2C142.9%2085.6%2C129.0%2089.8%2C116.0%2097.5%2C105.3%20108.3%2C98.1%20121.1%2C95.1%20134.6%2C96.0%20147.6%2C99.6%20159.5%2C104.6%20170.0%2C109.8%20179.6%2C114.1%20188.6%2C117.5%20197.6%2C120.1%20206.6%2C122.8%20215.5%2C126.2%20223.8%2C131.0%20231.2%2C137.1%20237.6%2C144.1%20243.5%2C151.6%20249.3%2C159.2%20256.0%2C166.7%20263.7%2C174.5%20272.5%2C183.2%20281.4%2C193.3%20289.2%2C205.0%27%2F%3E%3Cpolyline%20points%3D%27340.6%2C205.0%20347.7%2C223.7%20348.9%2C243.0%20343.2%2C261.3%20331.0%2C276.7%20313.8%2C288.0%20294.1%2C295.1%20274.2%2C298.9%20256.3%2C300.9%20241.4%2C303.3%20229.2%2C307.5%20218.7%2C314.5%20208.6%2C323.7%20197.4%2C333.9%20184.5%2C343.2%20170.0%2C349.8%20154.5%2C352.8%20138.8%2C351.7%20123.7%2C347.3%20109.5%2C340.8%2096.0%2C333.1%2082.8%2C325.1%2069.4%2C316.7%2056.2%2C307.5%2043.7%2C296.8%2033.3%2C283.9%2026.3%2C269.0%2023.5%2C252.6%2025.3%2C235.8%2030.6%2C219.7%2037.7%2C205.0%2044.7%2C191.8%2049.7%2C179.4%2051.7%2C166.6%2051.0%2C152.0%2048.9%2C135.1%2047.6%2C116.1%2049.2%2C96.2%2055.2%2C77.5%2066.3%2C62.2%2081.7%2C52.1%20100.0%2C47.8%20119.3%2C48.9%20137.9%2C54.1%20154.9%2C61.3%20170.0%2C68.7%20183.7%2C74.9%20196.6%2C79.7%20209.5%2C83.4%20222.4%2C87.3%20235.1%2C92.3%20247.0%2C99.1%20257.6%2C107.7%20266.8%2C117.8%20275.2%2C128.6%20283.6%2C139.4%20293.0%2C150.2%20304.2%2C161.4%20316.7%2C173.8%20329.5%2C188.2%20340.6%2C205.0%27%2F%3E%3Cpolyline%20points%3D%27399.0%2C205.0%20408.6%2C230.1%20410.2%2C256.0%20402.5%2C280.6%20386.1%2C301.2%20363.1%2C316.5%20336.5%2C326.0%20309.9%2C331.0%20285.9%2C333.7%20265.8%2C336.9%20249.5%2C342.7%20235.4%2C352.0%20221.8%2C364.4%20206.8%2C378.0%20189.5%2C390.5%20170.0%2C399.4%20149.2%2C403.3%20128.1%2C402.0%20107.9%2C396.1%2088.8%2C387.3%2070.7%2C377.0%2052.9%2C366.2%2035.0%2C354.9%2017.2%2C342.6%200.5%2C328.2%20-13.5%2C311.0%20-23.0%2C290.9%20-26.6%2C268.9%20-24.3%2C246.3%20-17.2%2C224.7%20-7.6%2C205.0%201.8%2C187.3%208.5%2C170.7%2011.2%2C153.4%2010.2%2C133.9%207.5%2C111.2%205.7%2C85.6%207.8%2C59.0%2015.9%2C33.9%2030.8%2C13.3%2051.5%2C-0.3%2076.0%2C-6.1%20101.9%2C-4.5%20126.9%2C2.4%20149.7%2C12.1%20170.0%2C22.0%20188.4%2C30.4%20205.8%2C36.8%20223.0%2C41.8%20240.4%2C47.0%20257.4%2C53.6%20273.3%2C62.8%20287.6%2C74.4%20300.0%2C88.0%20311.2%2C102.4%20322.5%2C117.0%20335.2%2C131.5%20350.1%2C146.5%20367.0%2C163.1%20384.2%2C182.5%20399.0%2C205.0%27%2F%3E%3Cpolyline%20points%3D%27563.9%2C520.0%20562.3%2C522.9%20561.0%2C525.5%20559.8%2C528.1%20558.8%2C530.6%20557.6%2C533.1%20556.2%2C535.4%20554.4%2C537.4%20552.2%2C539.1%20549.9%2C540.5%20547.5%2C541.6%20545.1%2C542.7%20542.8%2C544.1%20540.5%2C545.7%20537.9%2C547.6%20535.0%2C549.4%20531.8%2C550.9%20528.3%2C551.5%20524.9%2C551.1%20521.8%2C549.5%20519.4%2C547.0%20517.8%2C543.7%20516.8%2C540.2%20516.2%2C536.9%20515.7%2C534.0%20514.8%2C531.6%20513.5%2C529.6%20511.5%2C527.6%20509.3%2C525.5%20507.0%2C522.9%20505.3%2C520.0%20504.2%2C516.8%20504.2%2C513.4%20505.0%2C510.3%20506.6%2C507.4%20508.7%2C504.8%20510.9%2C502.5%20513.2%2C500.4%20515.5%2C498.4%20517.9%2C496.5%20520.5%2C494.9%20523.3%2C493.8%20526.3%2C493.3%20529.4%2C493.7%20532.3%2C494.6%20535.0%2C496.1%20537.4%2C497.6%20539.5%2C498.8%20541.7%2C499.4%20544.2%2C499.4%20547.1%2C499.0%20550.7%2C498.4%20554.7%2C498.2%20558.7%2C498.7%20562.3%2C500.1%20565.1%2C502.6%20566.8%2C505.8%20567.3%2C509.5%20566.8%2C513.2%20565.5%2C516.8%20563.9%2C520.0%27%2F%3E%3Cpolyline%20points%3D%27597.0%2C520.0%20593.6%2C526.2%20590.7%2C531.8%20588.2%2C537.3%20586.0%2C542.7%20583.5%2C548.0%20580.4%2C553.0%20576.5%2C557.4%20571.9%2C561.0%20566.9%2C563.8%20561.7%2C566.3%20556.7%2C568.7%20551.8%2C571.6%20546.7%2C575.1%20541.2%2C579.1%20535.0%2C583.0%20528.1%2C586.1%20520.6%2C587.5%20513.3%2C586.7%20506.8%2C583.3%20501.6%2C577.8%20498.1%2C570.8%20496.0%2C563.4%20494.7%2C556.3%20493.6%2C550.1%20491.8%2C545.0%20488.8%2C540.6%20484.7%2C536.3%20479.9%2C531.7%20475.1%2C526.3%20471.3%2C520.0%20469.1%2C513.1%20469.0%2C506.0%20470.8%2C499.1%20474.2%2C492.9%20478.5%2C487.4%20483.4%2C482.5%20488.3%2C477.9%20493.2%2C473.6%20498.4%2C469.6%20504.0%2C466.2%20510.0%2C463.8%20516.4%2C462.9%20523.0%2C463.5%20529.3%2C465.7%20535.0%2C468.7%20540.1%2C471.9%20544.7%2C474.5%20549.3%2C475.9%20554.6%2C475.9%20561.0%2C474.9%20568.6%2C473.7%20577.1%2C473.2%20585.7%2C474.3%20593.5%2C477.5%20599.6%2C482.7%20603.2%2C489.6%20604.3%2C497.5%20603.1%2C505.5%20600.4%2C513.1%20597.0%2C520.0%27%2F%3E%3Cpolyline%20points%3D%27636.2%2C520.0%20630.7%2C530.1%20625.9%2C539.3%20622.0%2C548.3%20618.3%2C557.1%20614.3%2C565.8%20609.2%2C573.9%20602.8%2C581.0%20595.3%2C586.9%20587.0%2C591.6%20578.6%2C595.6%20570.4%2C599.5%20562.4%2C604.2%20554.1%2C610.0%20545.1%2C616.5%20535.0%2C622.9%20523.6%2C628.0%20511.6%2C630.3%20499.6%2C628.9%20489.0%2C623.4%20480.5%2C614.4%20474.7%2C603.0%20471.2%2C590.8%20469.2%2C579.2%20467.4%2C569.1%20464.4%2C560.8%20459.6%2C553.6%20452.9%2C546.7%20445.0%2C539.1%20437.2%2C530.3%20430.9%2C520.0%20427.4%2C508.7%20427.1%2C497.1%20430.1%2C485.9%20435.7%2C475.8%20442.8%2C466.8%20450.6%2C458.7%20458.7%2C451.3%20466.8%2C444.3%20475.2%2C437.7%20484.3%2C432.2%20494.2%2C428.3%20504.7%2C426.7%20515.4%2C427.8%20525.7%2C431.2%20535.0%2C436.2%20543.3%2C441.5%20550.8%2C445.7%20558.4%2C447.9%20567.1%2C447.9%20577.5%2C446.4%20589.9%2C444.4%20603.8%2C443.6%20617.9%2C445.4%20630.6%2C450.5%20640.5%2C459.1%20646.4%2C470.4%20648.1%2C483.2%20646.2%2C496.4%20641.8%2C508.8%20636.2%2C520.0%27%2F%3E%3Cpolyline%20points%3D%27679.6%2C520.0%20671.7%2C534.4%20664.9%2C547.6%20659.2%2C560.4%20654.0%2C573.0%20648.2%2C585.4%20641.0%2C597.0%20631.8%2C607.2%20621.1%2C615.6%20609.3%2C622.3%20597.3%2C628.0%20585.6%2C633.6%20574.1%2C640.3%20562.3%2C648.5%20549.5%2C657.8%20535.0%2C667.0%20518.8%2C674.3%20501.5%2C677.6%20484.5%2C675.5%20469.2%2C667.7%20457.2%2C654.8%20448.9%2C638.6%20443.9%2C621.2%20441.0%2C604.6%20438.4%2C590.2%20434.2%2C578.2%20427.3%2C568.0%20417.7%2C558.1%20406.4%2C547.3%20395.2%2C534.7%20386.3%2C520.0%20381.2%2C503.8%20380.9%2C487.2%20385.2%2C471.3%20393.1%2C456.8%20403.3%2C443.9%20414.5%2C432.4%20426.0%2C421.8%20437.6%2C411.8%20449.6%2C402.5%20462.6%2C394.5%20476.7%2C389.0%20491.7%2C386.7%20507.0%2C388.3%20521.7%2C393.2%20535.0%2C400.3%20546.8%2C407.8%20557.6%2C413.8%20568.5%2C417.0%20580.8%2C417.1%20595.7%2C414.8%20613.5%2C412.0%20633.3%2C410.9%20653.4%2C413.4%20671.6%2C420.7%20685.7%2C433.0%20694.2%2C449.1%20696.6%2C467.5%20693.9%2C486.2%20687.5%2C504.0%20679.6%2C520.0%27%2F%3E%3Cpolyline%20points%3D%27729.1%2C520.0%20718.6%2C539.3%20709.5%2C557.1%20701.8%2C574.2%20694.8%2C591.2%20687.0%2C607.8%20677.3%2C623.4%20665.0%2C637.1%20650.6%2C648.4%20634.8%2C657.4%20618.7%2C665.0%20602.9%2C672.6%20587.5%2C681.6%20571.7%2C692.6%20554.5%2C705.1%20535.0%2C717.5%20513.2%2C727.2%20490.0%2C731.6%20467.1%2C728.9%20446.7%2C718.4%20430.5%2C701.0%20419.3%2C679.2%20412.7%2C655.8%20408.8%2C633.6%20405.3%2C614.3%20399.6%2C598.2%20390.3%2C584.4%20377.4%2C571.2%20362.3%2C556.7%20347.3%2C539.7%20335.3%2C520.0%20328.5%2C498.3%20328.1%2C476.0%20333.8%2C454.6%20344.4%2C435.2%20358.1%2C417.9%20373.2%2C402.4%20388.6%2C388.2%20404.2%2C374.7%20420.3%2C362.2%20437.7%2C351.5%20456.7%2C344.0%20476.8%2C341.0%20497.4%2C343.1%20517.1%2C349.7%20535.0%2C359.3%20550.8%2C369.4%20565.3%2C377.4%20579.9%2C381.7%20596.5%2C381.8%20616.6%2C378.7%20640.4%2C375.0%20667.0%2C373.4%20694.0%2C376.8%20718.4%2C386.7%20737.4%2C403.2%20748.7%2C424.8%20752.1%2C449.5%20748.3%2C474.7%20739.8%2C498.5%20729.1%2C520.0%27%2F%3E%3Cpolyline%20points%3D%27780.8%2C520.0%20767.4%2C544.4%20755.9%2C566.9%20746.2%2C588.6%20737.3%2C610.1%20727.5%2C631.1%20715.1%2C650.9%20699.6%2C668.2%20681.3%2C682.5%20661.4%2C693.9%20641.0%2C703.5%20621.0%2C713.2%20601.5%2C724.6%20581.4%2C738.5%20559.6%2C754.3%20535.0%2C770.0%20507.4%2C782.3%20478.1%2C787.9%20449.1%2C784.4%20423.2%2C771.1%20402.7%2C749.2%20388.6%2C721.6%20380.2%2C692.0%20375.3%2C663.8%20370.7%2C639.3%20363.6%2C619.0%20351.9%2C601.5%20335.5%2C584.8%20316.3%2C566.5%20297.4%2C545.0%20282.2%2C520.0%20273.6%2C492.5%20273.0%2C464.3%20280.3%2C437.2%20293.7%2C412.6%20311.1%2C390.7%20330.1%2C371.2%20349.7%2C353.1%20369.4%2C336.1%20389.8%2C320.2%20411.9%2C306.7%20435.8%2C297.2%20461.4%2C293.4%20487.4%2C296.0%20512.3%2C304.4%20535.0%2C316.6%20555.0%2C329.3%20573.4%2C339.5%20591.9%2C344.9%20612.9%2C345.0%20638.3%2C341.1%20668.4%2C336.4%20702.1%2C334.5%20736.3%2C338.8%20767.2%2C351.3%20791.2%2C372.1%20805.6%2C399.5%20809.8%2C430.7%20805.1%2C462.6%20794.3%2C492.7%20780.8%2C520.0%27%2F%3E%3Cpolyline%20points%3D%27644.8%2C105.0%20646.2%2C108.3%20646.4%2C111.7%20645.4%2C114.9%20643.4%2C117.6%20640.7%2C119.8%20637.8%2C121.5%20634.9%2C122.9%20632.2%2C124.1%20629.7%2C125.3%20627.4%2C126.5%20625.1%2C127.6%20622.6%2C128.5%20620.1%2C129.0%20617.5%2C129.0%20615.0%2C128.6%20612.6%2C127.9%20610.3%2C127.2%20608.0%2C126.7%20605.5%2C126.4%20602.7%2C126.3%20599.7%2C126.1%20596.4%2C125.6%20593.3%2C124.6%20590.6%2C122.8%20588.7%2C120.2%20587.8%2C117.1%20587.9%2C113.8%20588.9%2C110.5%20590.4%2C107.6%20592.0%2C105.0%20593.1%2C102.7%20593.8%2C100.5%20593.9%2C98.1%20593.7%2C95.5%20593.4%2C92.6%20593.6%2C89.4%20594.4%2C86.4%20595.8%2C83.7%20598.0%2C81.6%20600.6%2C80.0%20603.4%2C79.0%20606.4%2C78.4%20609.3%2C78.0%20612.1%2C77.7%20615.0%2C77.5%20617.9%2C77.6%20620.7%2C78.1%20623.4%2C79.3%20625.7%2C81.1%20627.4%2C83.4%20628.7%2C86.1%20629.5%2C88.9%20630.2%2C91.3%20631.0%2C93.4%20632.2%2C95.0%20634.2%2C96.5%20636.7%2C97.9%20639.6%2C99.8%20642.5%2C102.1%20644.8%2C105.0%27%2F%3E%3Cpolyline%20points%3D%27679.3%2C105.0%20682.3%2C112.1%20682.7%2C119.4%20680.4%2C126.3%20676.1%2C132.2%20670.3%2C137.0%20664.0%2C140.6%20657.8%2C143.6%20652.1%2C146.2%20646.8%2C148.7%20641.7%2C151.3%20636.7%2C153.7%20631.5%2C155.6%20626.0%2C156.7%20620.4%2C156.7%20615.0%2C155.9%20609.8%2C154.4%20604.8%2C152.9%20599.8%2C151.7%20594.5%2C151.0%20588.6%2C150.8%20582.0%2C150.5%20575.0%2C149.4%20568.2%2C147.2%20562.4%2C143.2%20558.3%2C137.8%20556.3%2C131.1%20556.7%2C123.9%20558.9%2C116.9%20562.1%2C110.6%20565.4%2C105.0%20567.9%2C100.1%20569.3%2C95.3%20569.5%2C90.2%20569.0%2C84.5%20568.6%2C78.2%20568.9%2C71.5%20570.6%2C65.0%20573.8%2C59.2%20578.3%2C54.5%20583.9%2C51.2%20590.1%2C49.0%20596.4%2C47.7%20602.6%2C46.8%20608.8%2C46.1%20615.0%2C45.8%20621.2%2C46.0%20627.3%2C47.1%20633.0%2C49.6%20637.9%2C53.5%20641.8%2C58.6%20644.5%2C64.4%20646.3%2C70.2%20647.7%2C75.6%20649.4%2C80.0%20652.1%2C83.6%20656.3%2C86.6%20661.8%2C89.8%20668.1%2C93.7%20674.2%2C98.8%20679.3%2C105.0%27%2F%3E%3Cpolyline%20points%3D%27720.6%2C105.0%20725.5%2C116.6%20726.1%2C128.6%20722.5%2C139.9%20715.4%2C149.7%20705.9%2C157.5%20695.6%2C163.5%20685.4%2C168.4%20675.9%2C172.6%20667.2%2C176.8%20658.9%2C181.1%20650.6%2C185.1%20642.0%2C188.2%20633.1%2C189.9%20623.9%2C190.0%20615.0%2C188.6%20606.5%2C186.2%20598.3%2C183.7%20590.1%2C181.7%20581.3%2C180.7%20571.6%2C180.2%20560.7%2C179.7%20549.3%2C178.0%20538.1%2C174.2%20528.5%2C167.8%20521.8%2C158.8%20518.6%2C147.9%20519.2%2C136.1%20522.8%2C124.6%20528.1%2C114.1%20533.5%2C105.0%20537.7%2C96.9%20539.9%2C89.0%20540.3%2C80.7%20539.5%2C71.4%20538.7%2C61.0%20539.3%2C50.0%20542.0%2C39.3%20547.2%2C29.7%20554.8%2C22.1%20564.0%2C16.6%20574.1%2C13.0%20584.4%2C10.8%20594.7%2C9.3%20604.8%2C8.3%20615.0%2C7.7%20625.2%2C8.1%20635.2%2C10.0%20644.6%2C14.0%20652.7%2C20.4%20659.0%2C28.7%20663.5%2C38.3%20666.4%2C47.9%20668.7%2C56.7%20671.5%2C63.9%20676.0%2C69.8%20682.8%2C74.8%20691.8%2C80.0%20702.2%2C86.5%20712.3%2C94.8%20720.6%2C105.0%27%2F%3E%3Cpolyline%20points%3D%27766.5%2C105.0%20773.5%2C121.7%20774.5%2C138.9%20769.3%2C155.1%20759.0%2C169.1%20745.5%2C180.3%20730.6%2C189.0%20715.9%2C195.9%20702.4%2C202.0%20689.9%2C208.1%20678.0%2C214.2%20666.1%2C219.9%20653.8%2C224.4%20640.9%2C226.9%20627.8%2C227.0%20615.0%2C224.9%20602.8%2C221.5%20591.0%2C217.9%20579.2%2C215.1%20566.7%2C213.5%20552.7%2C212.9%20537.1%2C212.2%20520.7%2C209.8%20504.7%2C204.4%20490.9%2C195.1%20481.2%2C182.2%20476.8%2C166.6%20477.6%2C149.6%20482.7%2C133.1%20490.3%2C118.1%20498.0%2C105.0%20504.0%2C93.3%20507.3%2C82.1%20507.8%2C70.2%20506.6%2C56.7%20505.6%2C41.8%20506.3%2C26.1%20510.2%2C10.7%20517.8%2C-3.0%20528.6%2C-13.9%20541.8%2C-21.8%20556.2%2C-27.0%20571.1%2C-30.2%20585.8%2C-32.2%20600.4%2C-33.7%20615.0%2C-34.6%20629.6%2C-34.1%20644.0%2C-31.4%20657.4%2C-25.6%20669.1%2C-16.4%20678.2%2C-4.4%20684.6%2C9.2%20688.8%2C23.1%20692.0%2C35.6%20696.1%2C46.1%20702.5%2C54.5%20712.3%2C61.7%20725.2%2C69.2%20740.1%2C78.4%20754.7%2C90.3%20766.5%2C105.0%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),
    radial-gradient(1100px 520px at 82% 6%, rgba(237,50,55,.10), transparent 62%),
    radial-gradient(1000px 620px at 12% 34%, rgba(46,74,110,.18), transparent 60%),
    linear-gradient(180deg, #12161d 0%, #0b0e13 42%, #090c10 100%);
  background-repeat: repeat, no-repeat, no-repeat, no-repeat;
  background-size: 720px 720px, auto, auto, auto;
  background-attachment: fixed;
}

/* ============================ NAVBAR ============================ */
.nav {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; gap: 26px;
  padding: 12px 28px;
  background: rgba(10,13,17,.92);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--card-borda);
}
.nav .logo img { height: 46px; width: auto; display: block; border-radius: 10px; }
.nav-links { display: flex; gap: 4px; margin-left: 8px; }
.nav-links a {
  font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 12.5px;
  letter-spacing: .07em; text-transform: uppercase; text-decoration: none;
  color: var(--areia); padding: 9px 13px; border-radius: 8px;
  transition: color .2s ease, background .2s ease;
}
.nav-links a:hover { color: #fff; background: rgba(255,255,255,.06); }
.nav-links a.ativo { color: #fff; background: rgba(237,50,55,.16); box-shadow: inset 0 -2px 0 var(--vermelho); }
.nav-cta {
  margin-left: auto; display: inline-flex; align-items: center; gap: 8px;
  background: var(--vermelho); color: #fff; text-decoration: none;
  font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 13px;
  padding: 10px 20px; border-radius: 999px;
  box-shadow: 0 8px 24px rgba(237,50,55,.4);
  transition: transform .2s ease, background .2s ease;
  white-space: nowrap;
}
.nav-cta:hover { transform: translateY(-2px); background: var(--vermelho-esc); }

/* link de blog + botão de busca (canto direito do nav) */
.nav-blog {
  margin-left: auto; flex-shrink: 0;
  font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 12.5px;
  letter-spacing: .07em; text-transform: uppercase; text-decoration: none;
  color: var(--areia); padding: 9px 13px; border-radius: 8px;
  transition: color .2s ease, background .2s ease;
}
.nav-blog:hover { color: #fff; background: rgba(255,255,255,.06); }
.nav-busca {
  flex-shrink: 0;
  background: none; border: none; cursor: pointer;
  color: rgba(255,255,255,.80); padding: 8px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 8px; transition: color .2s ease, background .2s ease;
}
.nav-busca:hover { color: #fff; background: rgba(255,255,255,.08); }
.nav-busca svg { width: 22px; height: 22px; }

/* ícone "Minha conta" — silhueta de pessoa, mesmo padrão do botão de busca */
.nav-conta {
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.80); padding: 8px; margin-left: 4px;
  border-radius: 8px; text-decoration: none;
  transition: color .2s ease, background .2s ease;
}
.nav-conta:hover { color: #fff; background: rgba(255,255,255,.08); }
.nav-conta svg { width: 22px; height: 22px; }

/* hambúrguer (mobile) */
.nav-burger { display: none; background: none; border: 0; cursor: pointer; padding: 8px; }
.nav-burger span { display: block; width: 24px; height: 2.5px; background: #fff; border-radius: 2px; margin: 5px 0; transition: transform .3s ease, opacity .3s ease; }
.nav.aberto .nav-burger span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.nav.aberto .nav-burger span:nth-child(2) { opacity: 0; }
.nav.aberto .nav-burger span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* ============================ HERO ============================ */
.hero {
  position: relative; min-height: 62vh; display: flex; align-items: flex-end; overflow: hidden;
}
.hero-slides { position: absolute; inset: 0; z-index: 0;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 60%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 60%, transparent 100%); }
.hero-slides picture { position: absolute; inset: 0; display: block; }
.hero-slides img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.4s ease; }
.hero-slides img.on { opacity: 1; }
.hero::after { content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background: linear-gradient(180deg, rgba(10,13,17,.4) 0%, rgba(10,13,17,.05) 30%, rgba(10,13,17,.55) 78%, rgba(10,13,17,0) 100%); }
.hero-inner { position: relative; z-index: 2; max-width: 1480px; width: 100%; margin: 0 auto; padding: 90px 28px 56px; }
.eyebrow {
  font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 13px;
  letter-spacing: .26em; text-transform: uppercase; color: var(--vermelho); margin-bottom: 14px;
}
.hero h1 {
  font-family: 'Montserrat', sans-serif; font-weight: 900; text-transform: uppercase; color: #fff;
  font-size: clamp(32px, 4.2vw, 58px); line-height: 1.02;
  text-shadow: 0 4px 30px rgba(0,0,0,.7);
}
.hero p { color: var(--areia); font-size: 16.5px; margin-top: 16px; max-width: 590px; line-height: 1.55; text-shadow: 0 2px 12px rgba(0,0,0,.6); }
.hero-ctas { display: flex; gap: 14px; margin-top: 24px; flex-wrap: wrap; }

.btn {
  display: inline-flex; align-items: center; gap: 9px;
  font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 14.5px;
  padding: 14px 28px; border-radius: 999px; text-decoration: none; cursor: pointer; border: 0;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.btn-red { background: var(--vermelho); color: #fff; box-shadow: 0 12px 34px rgba(237,50,55,.4); }
.btn-red:hover { transform: translateY(-3px); background: var(--vermelho-esc); box-shadow: 0 18px 44px rgba(237,50,55,.55); }
.btn-ghost { background: rgba(255,255,255,.09); color: #fff; border: 1px solid rgba(255,255,255,.35); backdrop-filter: blur(6px); }
.btn-ghost:hover { transform: translateY(-3px); background: rgba(255,255,255,.16); }

/* ============================ SEÇÕES ============================ */
.secao { max-width: 1480px; margin: 0 auto; padding: 64px 28px; }
.secao-titulo {
  font-family: 'Montserrat', sans-serif; font-weight: 800; text-transform: uppercase; color: #fff;
  font-size: clamp(20px, 2.2vw, 28px); margin-bottom: 8px;
  display: flex; align-items: center; gap: 12px;
}
.secao-titulo::before { content: ''; width: 26px; height: 3px; background: var(--vermelho); border-radius: 3px; flex: 0 0 auto; }
.secao-sub { color: var(--cinza); font-size: 15px; margin-bottom: 30px; max-width: 640px; line-height: 1.55; }

/* revelação ao rolar */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

/* ============================ CARDS DE ROTEIRO ============================ */
.grade { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
@media (max-width: 1240px) { .grade { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 920px)  { .grade { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .grade { grid-template-columns: 1fr; } }

.card-rot {
  position: relative; display: block; text-decoration: none; border-radius: 18px; overflow: hidden;
  aspect-ratio: 3 / 4; background: #12161c; border: 1px solid var(--card-borda);
  box-shadow: 0 16px 40px rgba(0,0,0,.45);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.card-rot:hover {
  transform: translateY(-6px); border-color: rgba(237,50,55,.55);
  animation: ambilight 2.4s ease-in-out infinite;
}
/* ambilight: aura vermelha pulsante com luz central atrás do card */
@keyframes ambilight {
  0%, 100% { box-shadow: 0 26px 60px rgba(0,0,0,.6), 0 0 26px rgba(237,50,55,.42), 0 0 70px 10px rgba(237,50,55,.22), 0 0 130px 30px rgba(237,50,55,.10); }
  50%      { box-shadow: 0 26px 60px rgba(0,0,0,.6), 0 0 42px rgba(237,50,55,.60), 0 0 100px 22px rgba(237,50,55,.34), 0 0 170px 44px rgba(237,50,55,.16); }
}
@keyframes ambilight-soft {
  0%, 100% { box-shadow: 0 14px 34px rgba(0,0,0,.4), 0 0 18px rgba(237,50,55,.30), 0 0 50px 8px rgba(237,50,55,.16); }
  50%      { box-shadow: 0 14px 34px rgba(0,0,0,.4), 0 0 30px rgba(237,50,55,.45), 0 0 76px 16px rgba(237,50,55,.24); }
}
@media (prefers-reduced-motion: reduce) { .card-rot:hover, .cartao:hover, .cuida-item:hover, .review-g:hover, .numero:hover { animation: none; } }
.card-rot img.foto, .card-rot video.foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.card-rot:hover img.foto, .card-rot:hover video.foto { transform: scale(1.07); }
/* placeholder para roteiros sem foto: gradiente + iniciais */
.card-rot .ph { position: absolute; inset: 0; display: grid; place-items: center;
  background: radial-gradient(420px 300px at 30% 20%, rgba(237,50,55,.30), transparent 60%),
              linear-gradient(160deg, #1d242e 0%, #10141a 100%); }
.card-rot .ph span { font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: 54px; color: rgba(255,255,255,.14); text-transform: uppercase; }
.card-rot::after { content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(12,15,19,.28) 0%, rgba(12,15,19,0) 30%, rgba(12,15,19,.12) 55%, rgba(12,15,19,.94) 100%); }
.card-tag {
  position: absolute; top: 16px; left: 16px; z-index: 2;
  font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 11px;
  letter-spacing: .12em; text-transform: uppercase; color: #fff;
  background: var(--vermelho); border-radius: 6px; padding: 5px 11px;
  box-shadow: 0 6px 18px rgba(237,50,55,.4);
}
.card-tag.consulta { background: rgba(12,15,19,.75); border: 1px solid rgba(255,255,255,.3); box-shadow: none; }
.card-corpo { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 20px 20px 22px; }
.card-corpo h3 {
  font-family: 'Montserrat', sans-serif; font-weight: 900; text-transform: uppercase;
  color: #fff; font-size: 19px; line-height: 1.1;
}
.card-meta { display: flex; gap: 8px; align-items: center; margin-top: 9px; flex-wrap: wrap; }
.card-meta span { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #fff; opacity: .9; }
.card-meta i { width: 3px; height: 3px; border-radius: 50%; background: rgba(255,255,255,.5); }
.card-preco { margin-top: 10px; }
.card-preco .x { font-family: 'Montserrat', sans-serif; font-size: 11.5px; font-weight: 600; color: rgba(255,255,255,.85); }
.card-preco b { font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: 23px; color: #fff; line-height: 1; margin-left: 5px; }
.card-preco .tot { display: block; margin-top: 4px; font-size: 10.5px; color: rgba(255,255,255,.6); }
.card-link {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 13px;
  background: var(--vermelho); color: #fff;
  font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 12.5px;
  padding: 9px 17px; border-radius: 999px; box-shadow: 0 8px 22px rgba(237,50,55,.4);
  transition: background .2s ease;
}
.card-rot:hover .card-link { background: var(--vermelho-esc); }

/* badge de dificuldade */
.dif { padding: 3px 9px !important; border-radius: 999px; font-size: 10px !important; }
.dif-facil    { background: rgba(61,220,122,.16); color: var(--verde) !important; border: 1px solid rgba(61,220,122,.4); }
.dif-moderado { background: rgba(255,179,0,.14);  color: var(--amarelo) !important; border: 1px solid rgba(255,179,0,.4); }
.dif-dificil  { background: rgba(237,50,55,.16);  color: #ff8a80 !important; border: 1px solid rgba(237,50,55,.45); }

/* ============================ SELETOR DE MESES (AGENDA) ============================ */
/* timeline com nós — "etapas da trilha" */
.tl-agenda {
  display: flex; overflow-x: auto; overflow-y: hidden; padding: 14px 6px 8px; touch-action: pan-x pan-y;
  scrollbar-width: none; -ms-overflow-style: none;
}
.tl-agenda::-webkit-scrollbar { display: none; }
.tl-mes {
  position: relative; flex: 1 0 auto; min-width: 96px;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  background: none; border: 0; cursor: pointer; padding: 0 10px;
  font-family: 'Montserrat', sans-serif;
}
/* segmentos da linha (metade esquerda e direita de cada item) */
.tl-mes::before, .tl-mes::after {
  content: ''; position: absolute; top: 10px; height: 3px;
  background: rgba(237,50,55,.18); transition: background .4s ease;
}
.tl-mes::before { left: 0; width: 50%; }
.tl-mes::after { left: 50%; width: 50%; }
.tl-mes:first-child::before { display: none; }
.tl-mes:last-child::after { display: none; }
/* trecho já percorrido da jornada */
.tl-mes.done::before, .tl-mes.done::after,
.tl-mes.on::before { background: var(--vermelho); }
/* nó */
.no-wrap { position: relative; z-index: 1; width: 24px; height: 24px; display: grid; place-items: center; }
.tl-mes .no {
  width: 13px; height: 13px; border-radius: 50%;
  background: var(--fundo); border: 3px solid rgba(237,50,55,.5);
  transition: all .3s ease;
}
.tl-mes:hover .no { border-color: var(--vermelho); transform: scale(1.2); }
.tl-mes.done .no { background: var(--vermelho); border-color: var(--vermelho); width: 11px; height: 11px; }
.tl-mes.on .no {
  width: 22px; height: 22px; background: var(--vermelho); border-color: var(--vermelho);
  box-shadow: 0 0 0 6px rgba(237,50,55,.22), 0 8px 22px rgba(237,50,55,.5);
}
/* rótulos — efeito dock: cresce gradualmente sob o mouse; o ativo fica só um pouco maior */
.tl-mes .m { font-weight: 800; font-size: 14px; letter-spacing: .07em; text-transform: uppercase; color: var(--cinza); line-height: 1; transition: color .25s ease, font-size .3s cubic-bezier(.22,1,.36,1); }
.tl-mes .a { font-weight: 700; font-size: 12px; letter-spacing: .1em; color: #fff; line-height: 1; font-variant-numeric: tabular-nums; transition: color .25s ease, font-size .3s cubic-bezier(.22,1,.36,1); }
.tl-mes.done .m { color: var(--areia); }
/* ativo: ligeiramente maior que os demais */
.tl-mes.on .m { color: #fff; font-weight: 900; font-size: 16.5px; }
.tl-mes.on .a { font-size: 13px; }
/* dock: item sob o mouse cresce mais; vizinhos crescem gradualmente menos */
.tl-agenda .tl-mes:hover .m { font-size: 21px; color: #fff; }
.tl-agenda .tl-mes:hover .a { font-size: 14px; }
.tl-agenda .tl-mes:hover .no { transform: scale(1.35); border-color: var(--vermelho); }
.tl-agenda .tl-mes:hover + .tl-mes .m,
.tl-agenda .tl-mes:has(+ .tl-mes:hover) .m { font-size: 17.5px; color: var(--areia); }
.tl-agenda .tl-mes:hover + .tl-mes .a,
.tl-agenda .tl-mes:has(+ .tl-mes:hover) .a { font-size: 13px; }
.tl-agenda .tl-mes:hover + .tl-mes + .tl-mes .m,
.tl-agenda .tl-mes:has(+ .tl-mes + .tl-mes:hover) .m { font-size: 15.5px; }
@media (max-width: 820px) {
  .tl-mes { min-width: 68px; padding: 0 5px; }
  .tl-mes .m { font-size: 12.5px; }
  .tl-mes.on .m { font-size: 15px; }
  .tl-mes.on .a { font-size: 12.5px; }
}

/* (legado — barra segmentada, mantido para compat) */
.sel-meses {
  display: flex; align-items: center; gap: 10px;
  background: rgba(255,255,255,.04); border: 1px solid var(--card-borda);
  border-radius: 20px; padding: 10px;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 18px 46px rgba(0,0,0,.35);
}
.sel-trilha {
  position: relative; display: flex; gap: 4px; flex: 1;
  overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none;
}
.sel-trilha::-webkit-scrollbar { display: none; }
.sel-indicador {
  position: absolute; top: 0; left: 0; height: 100%; width: 0;
  background: var(--vermelho); border-radius: 13px; z-index: 0;
  box-shadow: 0 10px 26px rgba(237,50,55,.45);
  transition: transform .45s cubic-bezier(.22,1,.36,1), width .45s cubic-bezier(.22,1,.36,1);
}
.sel-mes {
  position: relative; z-index: 1; flex: 1 0 auto;
  display: flex; flex-direction: row; align-items: baseline; justify-content: center; gap: 6px;
  background: none; border: 0; cursor: pointer;
  padding: 14px 20px; border-radius: 13px;
  font-family: 'Montserrat', sans-serif; color: var(--areia);
  transition: color .3s ease;
}
.sel-mes .m {
  font-weight: 800; font-size: 18px; letter-spacing: .055em;
  text-transform: uppercase; line-height: 1;
}
.sel-mes .a {
  font-weight: 700; font-size: 11.5px; letter-spacing: .08em;
  color: var(--cinza); line-height: 1;
  font-feature-settings: 'tnum'; font-variant-numeric: tabular-nums;
  transition: color .3s ease;
}
.sel-mes:hover { color: #fff; }
.sel-mes:hover .a { color: var(--areia); }
.sel-mes.on { color: #fff; }
.sel-mes.on .m { font-weight: 900; }
.sel-mes.on .a { color: rgba(255,255,255,.85); }
.sel-seta {
  flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255,255,255,.06); border: 1px solid var(--card-borda);
  color: #fff; font-size: 20px; line-height: 1; cursor: pointer;
  display: grid; place-items: center; padding-bottom: 3px;
  transition: background .25s ease, border-color .25s ease, transform .2s ease;
}
.sel-seta:hover { background: var(--vermelho); border-color: var(--vermelho); transform: scale(1.08); }
@media (max-width: 820px) {
  .sel-meses { padding: 8px; border-radius: 16px; }
  .sel-mes { padding: 12px 15px; gap: 5px; }
  .sel-mes .m { font-size: 16px; letter-spacing: .045em; }
  .sel-mes .a { font-size: 10.5px; }
  .sel-seta { width: 34px; height: 34px; font-size: 17px; }
}

/* painel dos resultados do mês */
.agenda-painel { min-height: 320px; }
.agenda-painel.trocando .grade { opacity: 0; transform: translateY(18px); }
.agenda-painel .grade { transition: opacity .35s ease, transform .35s ease; }
.agenda-vazio {
  text-align: center; padding: 70px 20px; color: var(--cinza);
  border: 1px dashed rgba(255,255,255,.14); border-radius: 18px;
}
.agenda-vazio b { display: block; font-family: 'Montserrat', sans-serif; color: var(--areia); font-size: 17px; margin-bottom: 8px; }
.agenda-vazio a { color: var(--vermelho); font-weight: 700; text-decoration: none; }

/* ============================ FILTROS (catálogos) ============================ */
.filtros { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; }
.filtro {
  background: rgba(255,255,255,.05); border: 1px solid var(--card-borda); color: var(--areia);
  font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 12px;
  letter-spacing: .05em; text-transform: uppercase;
  padding: 9px 16px; border-radius: 999px; cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.filtro:hover { background: rgba(255,255,255,.1); }
.filtro.on { background: var(--vermelho); border-color: var(--vermelho); color: #fff; }

/* ============================ BLOCOS INSTITUCIONAIS ============================ */
.faixa { background: linear-gradient(180deg, rgba(237,50,55,.07), transparent 70%); border-top: 1px solid var(--card-borda); }
.cols-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: center; }
@media (max-width: 880px) { .cols-2 { grid-template-columns: 1fr; } }
.texto-inst { color: var(--areia); font-size: 15.5px; line-height: 1.7; }
.texto-inst p + p { margin-top: 14px; }
.texto-inst strong { color: #fff; }

.numeros { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 880px) { .numeros { grid-template-columns: repeat(2, 1fr); } }
.numero { text-align: center; background: rgba(255,255,255,.04); border: 1px solid var(--card-borda); border-radius: 16px; padding: 26px 12px; transition: border-color .3s ease, transform .3s ease; }
.numero:hover { border-color: rgba(237,50,55,.4); transform: translateY(-3px); animation: ambilight-soft 2.4s ease-in-out infinite; }
.numero .n { font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: clamp(26px, 3vw, 40px); color: var(--vermelho); line-height: 1; }
.numero .l { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--cinza); margin-top: 9px; }

/* cartões genéricos (diferenciais, cursos, equipe) */
.cartoes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 1040px) { .cartoes { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .cartoes { grid-template-columns: 1fr !important; } }
.cartao {
  background: rgba(255,255,255,.04); border: 1px solid var(--card-borda);
  border-radius: 18px; padding: 26px; overflow: hidden;
  transition: transform .3s ease, border-color .3s ease;
}
.cartao:hover { transform: translateY(-4px); border-color: rgba(237,50,55,.4); animation: ambilight-soft 2.4s ease-in-out infinite; }
.cartao .icone { width: 46px; height: 46px; border-radius: 12px; background: rgba(237,50,55,.14); display: grid; place-items: center; font-size: 22px; margin-bottom: 16px; }
.cartao h3 { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 16px; text-transform: uppercase; color: #fff; margin-bottom: 9px; }
.cartao p { color: var(--cinza); font-size: 14px; line-height: 1.6; }
.cartao .preco-curso { font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: 24px; color: var(--vermelho); margin-top: 14px; }

/* depoimentos */
.depos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 1040px) { .depos { grid-template-columns: 1fr; } }
.depo { background: rgba(255,255,255,.04); border: 1px solid var(--card-borda); border-left: 4px solid var(--vermelho); border-radius: 16px; padding: 24px; }
.depo .estrelas { color: var(--amarelo); font-size: 14px; letter-spacing: 2px; margin-bottom: 12px; }
.depo p { color: var(--areia); font-size: 14.5px; line-height: 1.6; font-style: italic; }
.depo .autor { margin-top: 14px; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 13px; color: #fff; }
.depo .autor small { display: block; font-family: 'Open Sans', sans-serif; font-weight: 400; color: var(--cinza); font-size: 11.5px; margin-top: 3px; }

/* CTA final */
.cta-final { text-align: center; padding: 80px 28px; }
.cta-final h2 { font-family: 'Montserrat', sans-serif; font-weight: 900; text-transform: uppercase; font-size: clamp(24px, 3vw, 40px); color: #fff; line-height: 1.1; }
.cta-final p { color: var(--cinza); margin: 14px auto 26px; max-width: 520px; font-size: 15.5px; line-height: 1.6; }

/* ============================ FOOTER ============================ */
.footer { border-top: 1px solid var(--card-borda); background: #080b0e; }
.footer-grid { max-width: 1480px; margin: 0 auto; padding: 52px 28px 34px; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 36px; }
@media (max-width: 980px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; } }
.footer .logo-f img { height: 52px; border-radius: 10px; margin-bottom: 14px; }
.footer p, .footer a { color: var(--cinza); font-size: 13.5px; line-height: 1.7; text-decoration: none; }
.footer a:hover { color: var(--areia); }
.footer h4 { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; color: #fff; margin-bottom: 14px; }
.footer ul { list-style: none; }
.footer li { margin-bottom: 8px; }
.contato-icones li a { display: inline-flex; align-items: center; gap: 9px; }
.contato-icones svg { width: 19px; height: 19px; flex: 0 0 auto; }
.footer-base { border-top: 1px solid var(--card-borda); text-align: center; padding: 20px 28px; color: var(--cinza); font-size: 12.5px; }
.footer-base a { color: var(--vermelho); text-decoration: none; font-weight: 600; }

/* botão flutuante do WhatsApp */
.zap-flutua {
  position: fixed; right: 22px; bottom: 22px; z-index: 60;
  width: 58px; height: 58px; border-radius: 50%;
  background: #25d366; display: grid; place-items: center;
  box-shadow: 0 12px 34px rgba(37,211,102,.45);
  transition: transform .2s ease;
}
.zap-flutua:hover { transform: scale(1.1); }
.zap-flutua svg { width: 30px; height: 30px; fill: #fff; }

/* ============================ CAIXA SOMBREADA DO HERO (home) ============================ */
.hero-card {
  display: inline-block; max-width: 760px;
  background: rgba(10,12,15,.38);
  backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px);
  border-radius: 16px;
  padding: 26px 30px 28px;
  box-shadow: 0 18px 50px rgba(0,0,0,.45);
}
.hero-card h1 { font-size: clamp(28px, 3.4vw, 46px); }
.hero-card p { margin-top: 12px; }
@media (max-width: 820px) {
  .hero-card { padding: 18px 20px 20px; }
  .hero-card h1 { font-size: 21px; line-height: 1.15; }
  .hero-card p { font-size: 13px; line-height: 1.5; margin-top: 9px; }
  .hero h1 { font-size: clamp(24px, 7vw, 30px); }
  .hero p { font-size: 14px; }
  /* iOS: sem backdrop-filter sobre slideshow (flicker) */
  .hero-card { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(10,12,15,.5); }
}

/* ============================ HERO CENTRALIZADO (home) ============================ */
.hero-centro { display: flex; align-items: center; justify-content: center; text-align: center; }
.hero-centro .hero-inner { display: flex; flex-direction: column; align-items: center; padding: 90px 28px; }
.hero-centro .hero p { margin-left: auto; margin-right: auto; }

/* ============================ REVIEWS GOOGLE ============================ */
.google-head { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; text-decoration: none; color: inherit; cursor: pointer; }
.review-g { flex: 0 0 240px; background: rgba(255,255,255,.04); border: 1px solid var(--card-borda); border-radius: 12px; padding: 14px; transition: border-color .3s ease; display: block; text-decoration: none; color: inherit; }
.google-badge { display: inline-flex; align-items: center; gap: 7px; background: #fff; border-radius: 9px; padding: 6px 11px; }
.google-badge svg { width: 17px; height: 17px; }
.google-badge .gtxt { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 12px; color: #202124; }
.google-nota { display: flex; align-items: center; gap: 6px; }
.google-nota b { font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: 16px; color: #fff; }
.google-nota .estrelas { color: var(--amarelo); font-size: 12px; letter-spacing: 1.5px; }
/* carrossel ticker infinito */
@keyframes ticker { from { transform: translateX(0) } to { transform: translateX(calc(-1 * var(--ticker-w, 3780px))) } }
.reviews-ticker-wrap { overflow: hidden; mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%); -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%); }
.reviews-ticker { display: flex; gap: 12px; width: max-content; animation: ticker 40s linear infinite; }
.reviews-ticker:hover { animation-play-state: paused; }
.review-g:hover { border-color: rgba(237,50,55,.4); }
@media (max-width: 560px) { .review-g { flex-basis: 220px; } }
.review-g .topo { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; }
.review-g .avatar { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; background: #222; }
.review-g .quem b { display: block; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 11.5px; color: #fff; }
.review-g .quem span { font-size: 9.5px; color: var(--cinza); }
.review-g .estrelas { color: var(--amarelo); font-size: 11px; letter-spacing: 1.5px; margin-bottom: 6px; }
.review-g p { color: var(--areia); font-size: 11px; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }

/* ============================ BOX "NÓS CUIDAMOS DE TUDO" ============================ */
.box-cuidamos { background: rgba(255,255,255,.03); border: 1px solid var(--card-borda); border-radius: 24px; padding: 40px 34px; box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.cuidamos-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 880px) {
  .box-cuidamos { padding: 26px 18px; }
  .cuidamos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .cuida-item { padding: 14px 12px; gap: 10px; }
  .cuida-item svg { width: 30px; height: 30px; }
  .cuida-item h3 { font-size: 10px !important; letter-spacing: .02em; }
}
.cuida-item { display: flex; align-items: center; gap: 14px; background: rgba(255,255,255,.04); border: 1px solid var(--card-borda); border-radius: 16px; padding: 18px 20px; transition: transform .3s ease, border-color .3s ease; }
.cuida-item:hover { transform: translateY(-3px); border-color: rgba(237,50,55,.45); animation: ambilight-soft 2.4s ease-in-out infinite; }
.cuida-item svg { flex: 0 0 auto; width: 38px; height: 38px; }
.cuida-item { min-width: 0; }
.cuida-item h3 { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 13.5px; text-transform: uppercase; color: #fff; line-height: 1.3; min-width: 0; }

/* ============================ FEED INSTAGRAM ============================ */
.ig-head { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; flex-wrap: wrap; }
.ig-icone { width: 44px; height: 44px; border-radius: 13px; background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285AEB 90%); display: grid; place-items: center; }
.ig-icone svg { width: 24px; height: 24px; stroke: #fff; fill: none; stroke-width: 2; }
.ig-head .quem b { display: block; font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 16px; color: #fff; }
.ig-head .quem span { font-size: 13px; color: var(--cinza); }
.ig-head .btn { margin-left: auto; }
.ig-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
@media (max-width: 880px) {
  .ig-grid { display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 0; touch-action: pan-x pan-y; }
  .ig-grid::-webkit-scrollbar { display: none; }
  .ig-grid a { flex: 0 0 44vw; scroll-snap-align: start; }
}
/* miniatura retangular 9:16 — formato tela de celular (reel) */
.ig-grid a { position: relative; display: block; aspect-ratio: 9 / 16; border-radius: 14px; overflow: hidden; border: 1px solid var(--card-borda); }
.ig-play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(10,12,15,.55); backdrop-filter: blur(4px);
  display: grid; place-items: center; pointer-events: none;
  opacity: .85; transition: opacity .3s ease, transform .3s ease;
}
.ig-play svg { width: 18px; height: 18px; fill: #fff; margin-left: 2px; }
.ig-grid a:hover .ig-play { opacity: 1; transform: translate(-50%,-50%) scale(1.15); background: rgba(237,50,55,.85); }
.ig-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ig-grid a:hover img { transform: scale(1.08); }
.ig-grid a::after { content: ''; position: absolute; inset: 0; background: rgba(12,15,19,0); transition: background .3s ease; }
.ig-grid a:hover::after { background: rgba(214,36,159,.25); }

/* ============================ CTA FINAL COM YOUTUBE ============================ */
.cta-video { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: center; max-width: 1180px; margin: 0 auto; text-align: left; }
@media (max-width: 880px) { .cta-video { grid-template-columns: 1fr; text-align: center; } .cta-video .yt-lite { order: -1; } }
.yt-lite { position: relative; width: 100%; aspect-ratio: 16/9; border-radius: 18px; overflow: hidden; background: #000; cursor: pointer; border: 1px solid var(--card-borda); box-shadow: 0 20px 50px rgba(0,0,0,.5); }
.yt-lite img { width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.yt-lite .play { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 68px; height: 48px; background: #f00; border-radius: 12px; display: grid; place-items: center; box-shadow: 0 10px 30px rgba(0,0,0,.5); transition: transform .2s ease; }
.yt-lite:hover .play { transform: translate(-50%,-50%) scale(1.1); }
.yt-lite .play svg { width: 22px; height: 22px; fill: #fff; margin-left: 2px; }
.yt-lite iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ============================ CARROSSEL MOBILE ============================ */
@media (max-width: 820px) {
  .carrossel-m { display: flex !important; grid-template-columns: none !important; overflow-x: auto; overflow-y: hidden; gap: 14px; scroll-snap-type: x mandatory; padding-bottom: 0; scrollbar-width: none; touch-action: pan-x pan-y; }
  .carrossel-m::-webkit-scrollbar { display: none; }
  .carrossel-m .card-rot { flex: 0 0 78vw; scroll-snap-align: center; }
  /* miniaturas: cards menores nos destaques */
  .carrossel-mini .card-rot { flex: 0 0 46vw; border-radius: 14px; }
  .carrossel-mini .card-corpo { padding: 12px 12px 14px; }
  .carrossel-mini .card-corpo h3 { font-size: 13px; }
  .carrossel-mini .card-preco b { font-size: 16px; }
  .carrossel-mini .card-preco .x { font-size: 10px; }
  .carrossel-mini .card-preco .tot { font-size: 9px; }
  .carrossel-mini .card-link { font-size: 10.5px; padding: 7px 12px; margin-top: 9px; }
  .carrossel-mini .card-tag { font-size: 9px; padding: 4px 8px; top: 10px; left: 10px; }
  .carrossel-mini .card-meta span { font-size: 9.5px; }
}

/* ============================ NAV — HAMBURGER (tablet e desktop estreito) ============================ */
@media (max-width: 1140px) {
  .nav-burger { display: block; }
  .nav-blog { margin-left: auto; }
  .nav-links {
    display: none; position: absolute; top: 100%; left: 0; right: 0; z-index: 10;
    flex-direction: column; gap: 2px; padding: 12px 18px 18px;
    background: rgba(10,13,17,.98); border-bottom: 1px solid var(--card-borda);
  }
  .nav.aberto .nav-links { display: flex; }
  .nav-links a { padding: 13px 14px; font-size: 14px; }
}

/* ============================ MOBILE ============================ */
@media (max-width: 820px) {
  .nav { padding: 10px 18px; gap: 14px; }
  .nav .logo img { height: 40px; }
  .nav-blog { font-size: 12px; padding: 9px 8px; }
  .hero-inner { padding: 70px 20px 44px; }
  .secao { padding: 46px 20px; }
  .meses-wrap { top: 61px; }
  .meses { padding: 4px 18px 10px; }
  .cta-final { padding: 60px 20px; }
}
/* ============================ RODAPÉ MOBILE (empilhado, 1 coluna, compacto) ============================ */
@media (max-width: 820px) {
  .f-col-exp, .f-li-inst, .f-tit-roc { display: none !important; }
  .footer-grid { grid-template-columns: 1fr; gap: 20px; padding: 34px 22px 20px; }
  .footer .logo-f img { height: 44px; margin-bottom: 10px; }
  .footer p { font-size: 12.5px; line-height: 1.55; }
  .footer li { margin-bottom: 6px; }
  .footer h4 { margin-bottom: 10px; }
}

/* mobile: contato só com ícones grandes em linha única */
@media (max-width: 820px) {
  .contato-icones { display: flex; flex-direction: row; gap: 18px; align-items: center; flex-wrap: nowrap; }
  .contato-icones li { margin: 0; }
  .contato-icones li a { font-size: 0; gap: 0; }
  .contato-icones svg { width: 34px; height: 34px; }
}

/* mobile: esconde a segunda dobra da home (cards de números) */
@media (max-width: 820px) {
  .dobra-numeros { display: none !important; }
}

/* ============================ TEXTOS DO HERO ANIMADOS (caixa única) ============================ */
.hero-card .txt-esq, .hero-card .txt-dir { opacity: 0; }
.hero-card .txt-esq { animation: entra-esq .8s cubic-bezier(.22,1,.36,1) .1s forwards; }
.hero-card .txt-dir { animation: entra-dir .8s cubic-bezier(.22,1,.36,1) .3s forwards; }
@keyframes entra-esq { from { opacity: 0; transform: translateX(-70px); } to { opacity: 1; transform: translateX(0); } }
@keyframes entra-dir { from { opacity: 0; transform: translateX(70px); }  to { opacity: 1; transform: translateX(0); } }
@media (prefers-reduced-motion: reduce) { .hero-card .txt-esq, .hero-card .txt-dir { animation: none; opacity: 1; } }
/* mobile: fontes reduzidas */
@media (max-width: 820px) {
  .hero-card h1 { font-size: 13px; line-height: 1.2; }
  .hero-card p { font-size: 10px; line-height: 1.5; }
}

/* destaques da home: card limpo — só nome do roteiro + botão */
#destaques .card-tag, #destaques .card-meta, #destaques .card-preco { display: none !important; }

/* ============================ HERO — FRASES EM SEQUÊNCIA ============================ */
.hero-frases { display: flex; flex-direction: column; gap: 8px; }
.hero-frases .fr {
  display: block; opacity: 0;
  font-family: 'Montserrat', sans-serif; font-weight: 800; text-transform: uppercase;
  color: #fff; line-height: 1.1; letter-spacing: .04em;
  font-size: clamp(20px, 2.4vw, 32px);
  text-shadow: 0 3px 22px rgba(0,0,0,.75), 0 1px 8px rgba(0,0,0,.6);
  transform: translateY(24px);
  animation: fr-entra .7s cubic-bezier(.22,1,.36,1) forwards;
}
.hero-frases .fr1 { animation-delay: .15s; }
.hero-frases .fr2 { animation-delay: .55s; }
.hero-frases .fr3 { animation-delay: .95s; color: var(--vermelho); font-weight: 900; font-size: clamp(24px, 2.9vw, 38px); }
@keyframes fr-entra { to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .hero-frases .fr { animation: none; opacity: 1; transform: none; } }
@media (max-width: 820px) {
  .hero-frases { gap: 5px; }
  .hero-frases .fr { font-size: 16px; }
  .hero-frases .fr3 { font-size: 19px; }
}

/* hero da home — formato LP: eyebrow + título + sub com entrada sequencial */
.au { opacity: 0; transform: translateY(22px); animation: fr-entra .7s cubic-bezier(.22,1,.36,1) forwards; }
.au1 { animation-delay: .1s; }
.au2 { animation-delay: .3s; }
.au3 { animation-delay: .55s; }
@media (prefers-reduced-motion: reduce) { .au { animation: none; opacity: 1; transform: none; } }

/* dropdown de filtro (catálogos) */
.filtro-drop {
  appearance: none; -webkit-appearance: none;
  background: rgba(255,255,255,.05) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23e6e3dc' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 16px center;
  border: 1px solid var(--card-borda); color: var(--areia);
  font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 12px;
  letter-spacing: .05em; text-transform: uppercase;
  padding: 9px 42px 9px 16px; border-radius: 999px; cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease;
}
.filtro-drop:hover { border-color: rgba(237,50,55,.5); }
.filtro-drop.on { background-color: var(--vermelho); border-color: var(--vermelho); color: #fff; }
.filtro-drop option { background: #12161c; color: #e6e3dc; text-transform: none; }

/* catálogos no celular: cards menores, 2 por linha */
@media (max-width: 560px) {
  .grade-compacta { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .grade-compacta .card-rot { border-radius: 14px; }
  .grade-compacta .card-corpo { padding: 11px 11px 13px; }
  .grade-compacta .card-corpo h3 { font-size: 12.5px; }
  .grade-compacta .card-meta span { font-size: 9px; }
  .grade-compacta .card-preco b { font-size: 15px; }
  .grade-compacta .card-preco .x { font-size: 9.5px; }
  .grade-compacta .card-preco .tot { font-size: 8.5px; }
  .grade-compacta .card-link { font-size: 10px; padding: 6px 11px; margin-top: 8px; }
  .grade-compacta .card-tag { font-size: 8.5px; padding: 3px 7px; top: 9px; left: 9px; }
  .grade-compacta .dif { font-size: 8px !important; padding: 2px 6px !important; }
}

/* ============================ FOTO NO TOPO DO CARTAO ============================ */

/* cursos: wrapper de foto com altura fixa */
.cartao-foto-wrap {
  margin: -26px -26px 22px -26px;
  height: 260px;
  border-radius: 18px 18px 0 0;
  overflow: hidden;
}
.cartao-foto-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* guias (sobre.html) — foto full-card com gradiente no rodapé */
.guia-card {
  position: relative;
  aspect-ratio: 3 / 4;
  background: #12161c;
  padding: 0 !important;
  cursor: default;
}
.guia-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}
.guia-card::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(10,13,17,.25) 0%, transparent 35%);
}
.guia-info {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  z-index: 2;
  padding: 18px 20px 22px;
  background: rgba(10,13,17,.78);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
.guia-info p {
  font-size: 13px;
  line-height: 1.55;
  color: rgba(230,227,220,.88);
  margin-top: 6px;
}

/* ============================ CARD COM RESUMO (catálogos filtrados) ============================ */
.card-com-resumo { display: flex; flex-direction: column; }
.card-resumo {
  margin-top: 14px;
  color: var(--areia);
  font-size: 15.5px;
  line-height: 1.65;
}
@media (max-width: 560px) {
  .card-resumo { font-size: 13px; margin-top: 10px; }
}

/* ============================ EMPRESAS — LAYOUT REVISADO ============================ */
/* formatos: box único, 3 itens lado a lado no desktop, empilhados no mobile */
.formatos-box { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.formato-item { display: flex; gap: 14px; align-items: flex-start; }
.formato-item .icone { flex: 0 0 auto; }
.formato-item h3 { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 15px; text-transform: uppercase; color: #fff; margin-bottom: 7px; }
.formato-item p { color: var(--cinza); font-size: 13px; line-height: 1.55; }
/* competências: 3 colunas sempre; no mobile viram tiles compactos só com o título */
.comp-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* módulos: 2 colunas desktop, 1 no mobile */
.mod-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 820px) {
  .formatos-box { grid-template-columns: 1fr; gap: 0; padding: 8px 18px; }
  .formato-item { padding: 16px 0; border-bottom: 1px solid var(--card-borda); }
  .formato-item:last-child { border-bottom: 0; }
  .comp-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .comp-grid .cartao { padding: 12px 8px; text-align: center; border-radius: 12px; }
  .comp-grid .cartao h3 { font-size: 9.5px; margin-bottom: 0; }
  .comp-grid .cartao p { display: none; }
  .mod-grid { grid-template-columns: 1fr; gap: 10px; }
  .mod-grid .cartao { padding: 16px 18px; }
  .mod-grid .cartao h3 { font-size: 13px; }
  .mod-grid .cartao p { font-size: 12.5px; }
}

/* ============================ BUSCA OVERLAY ============================ */
.busca-overlay {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(10,13,17,.82);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  display: flex; align-items: flex-start; justify-content: center;
  padding-top: 84px;
  opacity: 0; pointer-events: none;
  transition: opacity .22s ease;
}
.busca-overlay.on { opacity: 1; pointer-events: all; }
.busca-caixa {
  width: min(680px, 92vw);
  background: #12161c;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 30px 90px rgba(0,0,0,.75);
}
.busca-topo {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 20px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.busca-ico { width: 20px; height: 20px; flex-shrink: 0; color: var(--cinza); }
.busca-input {
  flex: 1; background: none; border: none; outline: none;
  color: #fff; font-size: 18px; font-family: 'Open Sans', sans-serif;
}
.busca-input::placeholder { color: var(--cinza); }
.busca-fechar {
  background: none; border: none; cursor: pointer; color: var(--cinza);
  padding: 4px; display: flex; align-items: center;
  border-radius: 6px; transition: color .2s ease, background .2s ease;
}
.busca-fechar:hover { color: #fff; background: rgba(255,255,255,.08); }
.busca-fechar svg { width: 18px; height: 18px; }
.busca-resultados { max-height: 420px; overflow-y: auto; }
.busca-item {
  display: flex; flex-direction: column; gap: 4px;
  padding: 14px 20px; color: #fff; text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.05);
  transition: background .15s ease;
}
.busca-item:last-child { border-bottom: 0; }
.busca-item:hover { background: rgba(237,50,55,.12); }
.busca-item strong { font-size: 15px; font-family: 'Montserrat', sans-serif; font-weight: 700; }
.busca-item span { font-size: 13px; color: var(--cinza); }
.busca-vazio { padding: 24px 20px; color: var(--cinza); font-size: 14px; margin: 0; }
@media (max-width: 820px) {
  .busca-overlay { padding-top: 70px; }
  .busca-input { font-size: 16px; }
  .busca-item strong { font-size: 14px; }
}

/* ---------- HERO: slides de vídeo (desktop e mobile) ----------
   o vídeo só fica visível quando .on (slide ativo) e .rodando (reprodução real);
   fora disso, o poster/img embaixo segura o visual — sem botão de play do iOS */
.hero-slides .slide-video { position: absolute; inset: 0; display: block; }
.hero-slides .slide-video video { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.4s ease; }
.hero-slides .slide-video video.on.rodando { opacity: 1; }

/* vídeos de card/hero nunca mostram o botão de play nativo (iOS) */
video.card-video::-webkit-media-controls { display: none !important; }
video.card-video::-webkit-media-controls-start-playback-button { display: none !important; -webkit-appearance: none; }
