/* comsur — study 02. Official point grid, solid colour and generous crops. */
body{background:#fff}
.site-header{background:#fff;border-bottom-color:#14213d18}
.hero{padding:48px 4.2% 32px;min-height:560px;overflow:hidden;display:grid;grid-template-columns:1.16fr 1fr;column-gap:42px;align-items:center}
.hero-copy{width:100%;padding:0;align-self:center}
.hero h1{font-size:clamp(58px,7.1vw,106px);line-height:1.045;letter-spacing:-.065em;font-weight:550}
.hero-bottom{width:100%;gap:26px;justify-content:space-between;margin-top:32px;align-items:flex-end}
.hero-bottom p{font-size:13px;line-height:1.9}
.round-link{gap:10px;white-space:nowrap}
.round-icon{--round-icon-size:42px;width:var(--round-icon-size);min-width:var(--round-icon-size);max-width:var(--round-icon-size);height:var(--round-icon-size);min-height:var(--round-icon-size);flex:0 0 var(--round-icon-size);aspect-ratio:1;line-height:1}
.round-icon svg{display:block;width:20px;height:20px}
.hero-art.brand-field{position:relative;top:auto;right:auto;width:100%;height:498px;max-height:none;margin:0;background:transparent;overflow:hidden;align-self:stretch;min-width:0;isolation:isolate}
.brand-field canvas,.brand-field .field-fallback{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;visibility:visible;display:block;cursor:default}
.brand-field.canvas-ready .field-fallback{display:none}
.hero-foot{grid-column:2;justify-content:flex-end;margin:8px 0 -16px;padding:0;min-height:24px}
.motion-toggle{font-size:10px;min-height:24px;padding:0;color:#596273}
.connection{background:#fff;color:#14213d;border-top:1px solid #14213d25;padding-top:76px;padding-bottom:70px}
.connection-intro{margin-bottom:44px;gap:70px}
.connection h2{font-size:clamp(48px,5.3vw,76px);line-height:1.07;font-weight:500}
.connection h2 em{color:#173fd1}
.connection-intro>p{color:#596273;max-width:385px;font-size:15px;line-height:1.8}
.journey,.journey-buttons{border-color:#14213d28}
.journey-buttons button{border:0!important;background:transparent!important;box-shadow:none!important;color:#596273!important;padding:21px 0;font-size:22px;transition:color .2s;position:relative}
.journey-buttons button:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:#173fd1;transform:scaleX(0);transition:transform .25s ease}
.journey-buttons button[aria-selected=true]{color:#173fd1!important}
.journey-buttons button[aria-selected=true]:after{transform:scaleX(1)}
.journey-buttons button:focus-visible{outline-color:#173fd1}
.journey-panel{min-height:350px;grid-template-columns:1fr 1fr;gap:7%}
.journey-visual{height:310px;padding:30px 15px 15px 0;justify-content:flex-start}
.journey-field{position:relative;width:100%;height:100%;overflow:hidden}
.journey-field img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:left center;transform:scaleX(-1)}
.journey-field canvas{position:absolute;inset:0;display:block;width:100%;height:100%}
.journey-field.canvas-ready img{visibility:hidden}
.journey-motion-toggle{display:block;margin:0 0 10px;padding:5px 0;min-height:34px;background:transparent;border:0;color:#596273;font:inherit;font-size:11px;cursor:pointer;text-underline-offset:4px}
.journey-motion-toggle:hover{text-decoration:underline}
.journey-motion-toggle:focus-visible{outline:2px solid #173fd1;outline-offset:4px}
.journey-field .field-focus{clip-path:inset(0 0 0 0);transition:clip-path .5s ease}
.journey[data-stage="1"] .field-focus{clip-path:inset(14% 28% 14% 15%)}
.journey[data-stage="2"] .field-focus{clip-path:inset(31% 50% 31% 30%)}
.journey-text{padding:20px 0}
.journey-text h3{font-size:clamp(34px,3.5vw,48px);line-height:1.1;margin-top:0;color:#14213d}
.journey-text>p{color:#596273;line-height:1.8;font-size:15px}
.stage-tags{border-color:#14213d25;color:#596273;font-size:11px}
.services{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;background:#eef2fa;padding-top:72px;padding-bottom:76px}
.services-heading{grid-column:1/-1;display:flex;gap:60px;justify-content:space-between;margin:0 0 52px;align-items:center}
.services-heading h2{font-size:clamp(44px,5vw,70px);line-height:1.07}
.services-heading>.catalog-link{width:300px;min-height:65px;font-size:14px;padding:18px 24px;box-shadow:none;border-radius:0}
.service-row{display:flex;flex-direction:column;gap:28px;padding:28px 0 0;border-top:1px solid #14213d36;border-bottom:0;min-width:0}
.service-main h3{font-size:clamp(28px,2.7vw,39px);line-height:1.15;margin-bottom:22px}
.service-main>p{font-size:15px;max-width:470px;line-height:1.8;min-height:81px}
.service-tags{margin:22px 0}
.service-tags span{border:0;border-radius:0;padding:0;margin-right:18px;color:#596273;font-size:11px}
.service-main details{max-width:none;font-size:13px}
.service-main summary{padding:16px 0}
.service-detail-link{font-size:13px;margin-top:18px}
.service-art{position:relative;min-height:0;height:auto;aspect-ratio:1.88;background:transparent;overflow:hidden;margin-top:auto;border-radius:0;display:block}
.service-art img{width:100%;height:100%;object-fit:cover;display:block}
.manifesto{background:#14213d;padding:78px 6.4%;overflow:hidden}
.manifesto:before{background:url(direction/grade-gelo.svg) left center/cover no-repeat;mask-image:none;transform:none;right:-230px;top:0;left:auto;width:600px;height:100%;opacity:.1}
.manifesto:after{display:none}
.manifesto>p{font-size:clamp(34px,4.1vw,61px);line-height:1.2;max-width:1100px;letter-spacing:-.04em;margin-bottom:30px}
.manifesto-bottom{min-height:0;justify-content:flex-start}
.manifesto-bottom p{font-size:13px;line-height:1.8;color:#b6c4e5}
.diagnostic{background:#fff;padding-top:82px;padding-bottom:82px}
.diagnostic h2{font-size:clamp(43px,4.6vw,65px);line-height:1.08}
.question-box h3{font-size:30px}
.quiz-options button{background:#fff;border-color:#14213d2c;padding:21px 23px;min-height:76px;font-size:14px}
.contact{position:relative;isolation:isolate;padding-top:68px;padding-bottom:52px;overflow:hidden;background:#173fd1}
.contact:before{content:"";position:absolute;inset:0 0 0 auto;width:32%;z-index:-1;background:url(direction/grade-branca.svg) left center/cover;opacity:.12}
.contact-big{font-size:clamp(40px,6.1vw,86px);padding:0 0 50px;max-width:1120px;line-height:1.1}
.contact-bottom{border-top:1px solid #ffffff50;padding-top:25px}
.site-footer{background:#fff;padding-top:34px}
.site-footer .preview-note{display:block;width:100%;font-size:10px;color:#596273;margin-top:8px}
.catalog-page .catalog-hero{padding-top:54px;padding-bottom:45px}
.catalog-page .catalog-hero h1{max-width:1050px;font-size:clamp(48px,5.7vw,82px)}
.catalog-page .catalog-intro{align-items:start;margin-top:28px}
.catalog-page .catalog-intro>.catalog-hint{border:0;padding:0;font-size:12px}
.catalog-mosaic-wrap{padding-bottom:80px}
.service-mosaic{gap:20px}
.service-tile{border-radius:0;background:#eef2fa;color:#14213d;--tile-ink:#14213d;--tile-soft:#596273}
.service-tile summary{padding:26px;min-height:400px}
.service-tile .tile-art{top:0!important;left:0!important;translate:none!important;width:100%!important;height:200px!important;object-fit:contain;transform:none!important;max-width:none}
.service-tile h2{margin-bottom:19px;font-size:clamp(27px,2.8vw,40px);max-width:96%;line-height:1.12;font-weight:500}
.tile-traffic summary,.tile-web summary{min-height:430px;padding:28px}
.tile-traffic .tile-art,.tile-web .tile-art{height:260px!important}
.tile-traffic{background:#173fd1;color:#fff;--tile-ink:#fff;--tile-soft:#dce5ff}
.tile-brand{background:#14213d;color:#fff;--tile-ink:#fff;--tile-soft:#dce5ff}
.tile-social{background:#dce5ff}
.tile-email{background:#fff;border:1px solid #14213d24}
.tile-slides{background:#173fd1;color:#fff;--tile-ink:#fff;--tile-soft:#dce5ff}
.tile-action{font-size:12px;min-height:30px}
.tile-action i{width:30px;height:30px}
.mosaic-panel-content{background:#eef2fa;border:0;border-top:2px solid #173fd1;border-radius:0;padding:34px}
.mosaic-panel-header h3{font-size:32px}
.mosaic-panel .tile-body p{font-size:15px}
.about-intro{min-height:410px;gap:50px;padding-top:48px;padding-bottom:48px}
.about-intro h1{font-size:clamp(74px,9vw,130px)}
.about-field{width:40%;height:290px;max-width:none;object-fit:cover;object-position:left center}
.about-content{padding-top:62px}
.about-pattern img{max-height:280px;object-fit:cover;object-position:left center;opacity:1}
.editorial-card-cover,.article-image img{border-radius:0}
.editorial-card-cover img{object-fit:cover!important}
.editorial-card-cover.art-brand{background:#14213d}
@media(min-width:1550px){.hero{grid-template-columns:1.1fr 1fr;gap:60px;padding-top:62px;padding-bottom:36px}.hero-art.brand-field{height:570px}.hero h1{font-size:112px}.hero-bottom p{font-size:15px}}
@media(min-width:761px) and (max-width:1050px){.hero{gap:25px;padding-top:40px;min-height:490px}.hero h1{font-size:7vw}.hero-art.brand-field{height:420px}.hero-bottom{display:block}.round-link{margin-top:20px}.services{gap:0 36px}.service-main h3{font-size:30px}.services-heading>.catalog-link{width:265px}.service-main>p{min-height:110px}.service-tile h2{font-size:28px}.service-tile summary{min-height:390px}.tile-traffic summary,.tile-web summary{min-height:420px}}
@media(max-width:760px){
 .hero{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:33px 6% 22px;min-height:0}
 .hero h1{font-size:clamp(39px,10.5vw,68px);line-height:1.07;letter-spacing:-.06em}
 .hero-bottom{margin-top:24px;gap:16px;align-items:center;display:flex}
 .hero-bottom p{font-size:11px;line-height:1.85}
 .round-link{font-size:9px;white-space:normal;max-width:98px;gap:8px}
 .round-icon{--round-icon-size:35px}
 .round-icon svg{width:18px;height:18px}
 .hero-art.brand-field{height:250px;margin:28px 0 0;width:100%;min-height:0}
 .hero-foot{margin:7px 0 0;min-height:22px}
 .connection{padding-top:42px;padding-bottom:42px}
 .connection-intro{display:block;margin-bottom:30px}
 .connection h2{font-size:46px;line-height:1.08}
 .connection-intro>p{margin-top:24px;font-size:14px}
 .journey-buttons button{font-size:17px;padding:16px 0}
 .journey-panel{grid-template-columns:1fr;gap:0;min-height:0}
 .journey-visual{height:clamp(100px,28vw,140px);padding:12px 0 0;margin-bottom:0}
 .journey-text{padding:16px 0 0}
 .journey-text h3{font-size:34px}
 .journey-text>p{font-size:14px}
 .stage-tags{font-size:10px}
 .services{grid-template-columns:1fr;padding-top:45px;padding-bottom:48px;gap:38px}
 .services-heading{display:block;margin:0;grid-column:1}
 .services-heading h2{font-size:44px}
 .services-heading>.catalog-link{width:100%;min-height:62px;font-size:14px;margin-top:25px}
 .service-row{gap:25px;padding-top:25px}
 .service-main h3{font-size:30px}
 .service-main>p{min-height:0;font-size:14px}
 .service-tags{margin:19px 0}
 .service-tags span{font-size:10px}
 .service-art{min-height:0;aspect-ratio:1.8;height:auto;grid-column:auto}
 .manifesto{padding:45px 6%}
 .manifesto>p{font-size:32px;line-height:1.25;margin-bottom:26px}
 .manifesto:before{width:360px;right:-230px;opacity:.08}
 .manifesto-bottom p{font-size:12px}
 .diagnostic{padding-top:48px;padding-bottom:48px}
 .diagnostic h2{font-size:45px}
 .diagnostic-layout{gap:34px}
 .question-box h3{font-size:27px}
 .quiz-options button{font-size:13px;min-height:72px;padding:17px}
 .contact{padding-top:42px;padding-bottom:35px}
 .contact-big{font-size:39px;padding:0 0 32px;line-height:1.12}
 .contact:before{width:48%;opacity:.08}
 .contact-bottom{font-size:12px;padding-top:25px}
 .catalog-page .catalog-hero{padding:36px 6% 32px}
 .catalog-page .catalog-hero h1{font-size:42px;line-height:1.07}
 .catalog-page .catalog-intro{margin-top:24px}
 .catalog-page .catalog-intro>p{font-size:14px}
 .catalog-page .catalog-intro>.catalog-hint{font-size:12px;margin-top:20px}
 .service-mosaic{gap:15px}
 .service-tile summary,.tile-traffic summary,.tile-web summary,.tile-email summary,.tile-slides summary{min-height:385px;padding:24px}
 .service-tile .tile-art{height:215px!important}
 .service-tile h2,.tile-traffic h2,.tile-web h2,.tile-slides h2{font-size:30px;max-width:100%;line-height:1.12}
 .tile-web summary{min-height:425px}
 .tile-action{font-size:12px}
 .mosaic-panel-content{padding:24px}
 .mosaic-panel-header h3{font-size:27px}
 .about-intro{display:block;min-height:0;padding:38px 6%}
 .about-intro h1{font-size:66px}
 .about-field{display:block;width:100%;height:160px;margin:30px 0 0}
 .about-content{padding-top:42px}
 .about-pattern{max-width:none;margin-top:35px}
 .about-pattern img{height:180px;width:100%;object-fit:cover}
}
@media(prefers-reduced-motion:reduce){.field-focus{transition:none}}

/* Focus is expressed through circular crops of the same grid. */
.journey-field .field-focus{clip-path:circle(69% at 50% 50%)}
.journey[data-stage="1"] .field-focus{clip-path:circle(36% at 48% 50%)}
.journey[data-stage="2"] .field-focus{clip-path:circle(16% at 48% 50%)}

/* The offer and contact remain visible before the interactive artwork. */
.hero-bottom{display:block;margin-top:26px}
.hero-bottom .hero-offer{max-width:535px;font-size:15px;line-height:1.7}
.hero-offer strong{display:block;font-size:clamp(17px,1.5vw,21px);font-weight:650;line-height:1.4;letter-spacing:-.025em;margin-bottom:10px}
.hero-offer>span{display:block;max-width:475px;color:#455069}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px 25px;margin-top:24px}
.hero-contact{background:#173fd1;color:#fff;border-color:#173fd1;min-height:52px;padding:15px 22px;font-size:13px;pointer-events:auto}
.hero-contact:hover{background:#14213d;border-color:#14213d}
.hero-actions .round-link{margin:0;font-size:11px;max-width:none}
.hero-actions .round-icon{--round-icon-size:36px}
.hero-art.brand-field{height:auto;min-height:498px}
.contact-bottom>p{max-width:660px}

/* Service benefits are readable without opening the mosaic. Artwork stays in flow. */
.service-tile summary,.tile-traffic summary,.tile-web summary,.tile-email summary,.tile-slides summary{justify-content:flex-start;min-height:0;height:100%;padding:26px}
.service-tile .tile-art{position:static!important;inset:auto!important;translate:none!important;height:170px!important;flex:0 0 170px;object-fit:contain;margin:0 0 22px;transition:none}
.tile-traffic .tile-art,.tile-web .tile-art{height:205px!important;flex-basis:205px}
.service-tile h2{margin-bottom:13px;font-size:clamp(26px,2.55vw,38px)}
.service-tile .tile-benefit{font-size:14px;line-height:1.65;color:var(--tile-ink);max-width:42ch;margin:0 0 22px}
.service-tile .tile-action{margin-top:auto;padding-top:0;width:100%;gap:15px}
.service-mosaic{align-items:stretch}
.service-tile{align-self:stretch;display:flex;flex-direction:column}
.service-tile[open]>.tile-body{height:auto}
.tile-actions{display:flex;flex-wrap:wrap;gap:18px 25px;align-items:start}
.tile-pages{display:flex;flex-wrap:wrap;gap:12px 22px;width:100%}
.tile-pages a,.tile-contact{min-height:44px;display:inline-flex;align-items:center;padding:9px 0}
.tile-contact{font-weight:650}
.mosaic-panel .tile-body>.tile-actions{grid-column:1;align-self:start}
.mosaic-panel .tile-body .tile-actions a{font-size:13px;min-height:44px;align-self:auto}
.mosaic-panel .tile-body ul{grid-row:1/span 2}
.mosaic-panel .tile-body p{max-width:48ch}

.about-editorial ul{list-style:none;padding:0;margin:28px 0 42px;border-top:1px solid #14213d25}
.about-editorial li{padding:18px 0;border-bottom:1px solid #14213d25;font-size:16px;line-height:1.75}
.about-contact{border-top:1px solid #14213d25;display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:32px;padding-bottom:45px}
.about-contact p{font-size:20px;line-height:1.5;max-width:560px}
.about-contact .catalog-link{background:#173fd1;color:#fff;flex-shrink:0}
.about-contact .catalog-link:hover{background:#14213d;border-color:#14213d}

@media(min-width:761px) and (max-width:1050px){
 .hero-bottom .hero-offer{font-size:14px}
 .hero-offer strong{font-size:17px}
 .hero-actions{gap:16px}
 .hero-contact{font-size:12px;padding:13px 17px}
 .hero-actions .round-link{font-size:10px}
 .hero-art.brand-field{min-height:490px}
 .service-tile summary{padding:23px}
 .service-tile .tile-benefit{font-size:13px}
 .tile-traffic .tile-art,.tile-web .tile-art{height:175px!important;flex-basis:175px}
}
@media(max-width:760px){
 .hero-bottom{display:block;margin-top:23px}
 .hero-bottom .hero-offer{font-size:14px;line-height:1.7}
 .hero-offer strong{font-size:17px;line-height:1.45;max-width:310px;margin-bottom:10px}
 .hero-actions{gap:17px;margin-top:22px;align-items:center}
 .hero-contact{width:100%;min-height:50px;font-size:13px;padding:14px 18px}
 .hero-actions .round-link{max-width:none;font-size:11px;gap:10px;min-height:40px}
 .hero-actions .round-icon{--round-icon-size:35px}
 .hero-art.brand-field{height:210px;min-height:0;margin-top:22px}
 .service-tile summary,.tile-traffic summary,.tile-web summary,.tile-email summary,.tile-slides summary{min-height:0;height:auto;padding:22px}
 .service-tile .tile-art,.tile-traffic .tile-art,.tile-web .tile-art{height:155px!important;flex-basis:155px;margin-bottom:19px}
 .service-tile h2,.tile-traffic h2,.tile-web h2,.tile-slides h2{font-size:29px;margin-bottom:12px}
 .service-tile .tile-benefit{font-size:14px;line-height:1.7;margin-bottom:19px;max-width:none}
 .tile-actions,.tile-pages{gap:12px 20px}
 .mosaic-panel .tile-body>.tile-actions{grid-column:auto}
 .mosaic-panel .tile-body ul{grid-row:auto}
 .contact-bottom>p br{display:none}
 .about-editorial li{font-size:15px}
 .about-contact{display:block;padding-top:28px;padding-bottom:35px}
 .about-contact p{font-size:18px;margin-bottom:22px}
 .about-contact .catalog-link{width:100%}
}
